Werk Met Beelde
Aspose.Words laat gebruikers toe om op’n baie buigsame manier met beelde te werk. In hierdie artikel kan jy slegs sommige van die moontlikhede van werk met beelde verken.
Voeg’n Prent in
DocumentBuilder bied verskeie oorladings van die die insert_image metode wat jou toelaat om’n inlyn of drywende beeld in te voeg. As die beeld’n EMF of WMF metafile is, sal dit in die dokument in metafile-formaat ingevoeg word. Alle ander beelde sal in PNG formaat gestoor word. Die insert_image metode kan beelde van verskillende bronne gebruik:
- Van’n lêer of
URL
deur’n string parameter - Van’n stroom deur’n
Stream
parameter te slaag - Van’n byte skikking deur’n byte skikking parameter
Vir elk van die insert_image metodes, is daar verdere oorladings wat jou toelaat om’n beeld met die volgende opsies in te voeg:
- Inlyn of swaai op’n spesifieke posisie, byvoorbeeld, insert_image
- Persentasieskaal of pasgemaakte grootte; verder gee die DocumentBuilder.insert_image - metode’n Shape - voorwerp terug wat pas geskep en ingevoeg is, sodat u die eienskappe van die Shapeverder kan verander
Voeg’n Inlynbeeld in
Gee’n enkele string wat’n lêer verteenwoordig wat die beeld bevat na insert_image om die beeld in die dokument as’n inlyngrafiek in te voeg.
Die volgende kode voorbeeld toon hoe om’n inline beeld by die wyser posisie in’n dokument in te voeg:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.insert_image(docs_base.images_dir + "Logo.jpg")
doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_inline_image.doc")
Voeg’n Drywende (Absoluut Geposisioneer) Beeld in
Die volgende kode voorbeeld toon hoe om’n drywende beeld van’n lêer of URL
in’n gespesifiseerde posisie en grootte in te voeg:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.insert_image(docs_base.images_dir + "Logo.jpg",
aw.drawing.RelativeHorizontalPosition.MARGIN,
100,
aw.drawing.RelativeVerticalPosition.MARGIN,
100,
200,
100,
aw.drawing.WrapType.SQUARE)
doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_floating_image.doc")
Hoe Om Foto’s Uit’n Dokument Te Neem
Alle beelde word gestoor binne Shape nodes in a Document. Volg hierdie stappe om alle beelde of beelde met spesifieke tipe uit die dokument te onttrek:
- Gebruik die Document.get_child_nodes metode om alle Shape nodes te kies.
- Iterate deur die gevolglike node versamelings.
- Gaan die Shape.has_image booleaanse eienskap na.
- Onttrek beelddata met behulp van die Shape.image_data eienskap.
- Stoor beelddata na’n lêer.
Die volgende kode voorbeeld toon hoe om beelde uit’n dokument te onttrek en stoor hulle as lêers:
Jy kan die sjabloon lêer van hierdie voorbeeld aflaai van hier is.
Hoe Om Strepieskode Op elke Bladsy Van’n Dokument In Te Voeg
Hierdie voorbeeld toon dat jy dieselfde of verskillende strepieskode op alle of spesifieke bladsye van’n Word-dokument moet byvoeg. Daar is geen direkte manier om strepieskode op alle bladsye van’n dokument by te voeg nie, maar jy kan die move_to_section, move_to_header_footer en insert_image metodes gebruik om na enige afdeling of koptekste/voetskrifte te beweeg en die strepieskode-beelde in te voeg soos jy in die volgende kode kan sien.
Die volgende kode voorbeeld Voeg’n barcode beeld op elke bladsy van’n dokument.
Sluit Aspekverhouding Van Beeld
Die aspekverhouding van’n meetkundige vorm is die verhouding van sy groottes in verskillende dimensies. U kan die beeldverhouding met aspect_ratio_locked sluit. Die standaard waarde van die vorm se aspek verhouding hang af van die ShapeType. Dit is True
vir ShapeType.IMAGE en False
vir ander vorm tipes.
Die volgende kode voorbeeld toon hoe om te werk met aspek verhouding:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False
doc.save(docs_base.artifacts_dir+"WorkingWithImages.set_aspect_ratio_locked.doc")
Hoe Om Werklike Grense Van Vorm In Punte Te Kry
As jy die werklike grens boks van die vorm wil hê soos op die bladsy weergegee, kan jy dit bereik deur die bounds_in_points eienskap te gebruik.
Die volgende kode voorbeeld toon hoe om hierdie eiendom te gebruik:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False
print("\nGets the actual bounds of the shape in points.")
rect = shape.get_shape_renderer().bounds_in_points
print(f"{rect.x}, {rect.y}, {rect.width}, {rect.height}")
Sny Beelde
Die sny van’n beeld verwys gewoonlik na die verwydering van die ongewenste buitenste dele van’n beeld om die raamwerk te verbeter. Dit word ook gebruik vir die verwydering van sommige van die dele van’n beeld om die fokus op’n spesifieke gebied te verhoog.
Die volgende kode voorbeeld toon hoe om dit te bereik met behulp van Aspose.Words API:
# The path to the documents directory.
inputPath = docs_base.images_dir + "Logo.jpg"
outputPath = docs_base.artifacts_dir + "cropped_logo.jpg"
self.crop_image(inputPath,outputPath, 100, 90, 200, 200)
@staticmethod
def crop_image(inPath : str, outPath : str, left : int, top : int, width : int, height : int) :
doc = aw.Document();
builder = aw.DocumentBuilder(doc)
croppedImage = builder.insert_image(inPath)
src_width_points = croppedImage.width
src_height_points = croppedImage.height
croppedImage.width = aw.ConvertUtil.pixel_to_point(width)
croppedImage.height = aw.ConvertUtil.pixel_to_point(height)
widthRatio = croppedImage.width / src_width_points
heightRatio = croppedImage.height / src_height_points
if (widthRatio< 1) :
croppedImage.image_data.crop_right = 1 - widthRatio
if (heightRatio< 1) :
croppedImage.image_data.crop_bottom = 1 - heightRatio
leftToWidth = aw.ConvertUtil.pixel_to_point(left) / src_width_points
topToHeight = aw.ConvertUtil.pixel_to_point(top) / src_height_points
croppedImage.image_data.crop_left = leftToWidth
croppedImage.image_data.crop_right = croppedImage.image_data.crop_right - leftToWidth
croppedImage.image_data.crop_top = topToHeight
croppedImage.image_data.crop_bottom = croppedImage.image_data.crop_bottom - topToHeight
croppedImage.get_shape_renderer().save(outPath, aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG))
Stoor Beelde as WMF
Aspose.Words bied funksionaliteit om al die beskikbare beelde in’n dokument te stoor WMF formaat terwyl die omskakeling van DOCX na RTF.
Die volgende kode voorbeeld toon hoe om beelde te stoor as WMF met RTF stoor opsies: