Vormen en watermerken tekenen

Vormen en watermerken tekenen

Vormen tekenen en watermerken

Word-documenten bewaren AutoShapes, afbeeldingen, tekstvakken en OLE-objecten in een aparte tekenlaag, los van de alinea-/run-tekststroom. Aspose.Words FOSS voor .NET modelleert deze laag met de Shape-klasse (concrete tekenobjecten) en de abstracte basis ShapeBase, beide deel van de Aspose.Words.Drawing namespace. Deze gids behandelt het vormmodel, het invoegen van afbeeldingen en AutoShapes, positionering en omslag, vullingen en effecten, groeperen en watermerken.


Het Shape- en ShapeBase-model

Shape — sealed, en het type waarmee je rechtstreeks werkt — vertegenwoordigt een AutoShape, tekstvak, vrije vorm, OLE-object, ActiveX-besturingselement of afbeelding in de tekenlaag. Het is afgeleid van de abstracte ShapeBase, die de eigenschappen levert die elk tekenobject gemeen heeft: positie (Left, Top, Width, Height, Rotation), de ShapeType-enumwaarde, en opmaak-subobjecten zoals Fill, Stroke, ShadowFormat, Glow en Reflection. GroupShape (ook een ShapeBase) staat voor een groep vormen die als één eenheid wordt behandeld. Maak een zelfstandige vorm direct met new Shape(doc, shapeType), waarbij shapeType een ShapeType-waarde is, zoals Rectangle, Ellipse, Star of TextBox, en voeg deze vervolgens toe aan de boom met DocumentBuilder.InsertNode(node).


Invoegen van afbeeldingen en AutoShapes met DocumentBuilder

Voor afbeeldingen specifiek is DocumentBuilder.InsertImage de directere route: overloads accepteren een Image, een bestands-pad, een Stream of een ruwe byte-array, met extra overloads die expliciete width/height of volledige positionering (horzPos, left, vertPos, top, width, height, wrapType) instellen. Het resulterende Shape maakt zijn afbeeldingsdata beschikbaar via de ImageData-eigenschap — ImageData.SetImage(...) om de afbeelding te vervangen, plus CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast en GrayScale voor eenvoudige aanpassingen. GroupShape-instanties worden gecreëerd met DocumentBuilder.InsertGroupShape(shapes).


Positionering en tekstomslag

De plaatsing van een vorm ten opzichte van de pagina wordt geregeld door RelativeHorizontalPosition en RelativeVerticalPosition (elk ten aanzien van Page, Margin, Column of soortgelijke ankers), samen met de Left/Top offset-eigenschappen. HorizontalAlignment en VerticalAlignment regelen eenvoudige relatieve uitlijning. Hoe omringende tekst rond de vorm stroomt, wordt ingesteld met WrapType en, voor kant-specifieke omsluiting, WrapSide. IsInline geeft aan of de vorm met de tekst meeverplaatst (inline) of onafhankelijk zweeft.


Vullingen, Lijnen en Effecten

Shape.Fill (een Fill object) bepaalt hoe het interieur van de vorm wordt geschilderd: Fill.Solid(color) voor een effen kleur, Fill.OneColorGradient(...)/Fill.TwoColorGradient(...) voor verlopen, Fill.Patterned(patternType) voor een patroon, en Fill.SetImage(...) voor een afbeelding; FillType geeft aan welke hiervan actief is. De omtrek wordt geregeld via de Stroke eigenschap, en visuele effecten worden aangeboden als afzonderlijke opmaakobjecten — ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat), en SoftEdge (SoftEdgeFormat) — elk met een eigen Remove() methode om het effect te wissen.


Groeperen van Vormen en Tekstvakken

Meerdere vormen kunnen worden gecombineerd in een GroupShape, die zelf functioneert als een enkele ShapeBase met zijn eigen Fill, ShadowFormat, Glow en Reflection. Voor een vorm die tekst bevat, biedt Shape.TextBox (een TextBox object) tekst-specifieke lay-out: InternalMarginLeft/Right/Top/Bottom voor opvulling, FitShapeToText om de vorm automatisch te schalen, LayoutFlow voor tekstrichting, en VerticalAnchor voor verticale tekstuitlijning binnen de vorm.


Watermarks

Document.Watermark (een Watermark object) beheert een documentbrede watermerk onafhankelijk van een enkele vorm. Roep Watermark.SetText(text) of SetText(text, options) aan voor een tekst-watermerk, of SetImage(...) voor een afbeelding-watermerk, en Watermark.Remove() om het te verwijderen. Watermark.Type meldt de huidige WatermarkType (Text, Image of None). TextWatermarkOptions regelt FontFamily, FontSize, Color en Layout (WatermarkLayout.Horizontal of Diagonal); ImageWatermarkOptions bepaalt Scale en IsWashout.


Tips en best practices

  • Gebruik ShapeBase bij het schrijven van code die moet werken voor zowel enkele Shape als GroupShape instanties; gebruik Shape rechtstreeks wanneer je picture- of AutoShape-specifieke leden zoals ImageData of Chart nodig hebt.
  • Stel RelativeHorizontalPosition / RelativeVerticalPosition in combinatie met WrapType in wanneer je een vorm laat zweven — een inline-vorm (de standaard voor InsertImage) negeert positioneringseigenschappen totdat je deze laat zweven.
  • Kies bij voorkeur Document.Watermark voor een enkel watermerk dat over het hele document geldt, in plaats van handmatig een Shape achter de tekst in te voegen en te positioneren.
  • Wis een effect met de Remove()-methode van het object (ShadowFormat.Remove(), ReflectionFormat.Remove()) i.p.v. individuele eigenschappen op nul te zetten.
  • Controleer Shape.HasImage, Shape.HasChart of Shape.IsGroup voordat je ImageData, Chart of groepspecifieke leden benadert, omdat een Shape elk van verschillende tekenobjecttypen kan vertegenwoordigen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Het instellen van Left/Top op een vorm heeft geen zichtbaar effectDe vorm is nog steeds inline (IsInline == true)Stel WrapType in op een zwevende waarde en stel RelativeHorizontalPosition/RelativeVerticalPosition in zodat de positioneringseigenschappen effect hebben
Shape.ImageData gooit een uitzondering of is leegDe vorm is geen afbeeldingvormControleer Shape.HasImage voordat u ImageData leest
Watermerktekst komt niet overeen met het aangevraagde lettertypeEr is geen TextWatermarkOptions opgegevenGeef een TextWatermarkOptions-instantie door met FontFamily ingesteld op Watermark.SetText(text, options)
De onderliggende vormen van een groep bewegen niet gezamenlijkKinderen werden direct verplaatst, niet via de groepVerplaats of wijzig de grootte van de GroupShape zelf zodat de coördinatentransformatie op alle kinderen wordt toegepast

FAQ

Wat is het verschil tussen Shape en ShapeBase?

ShapeBase is de abstracte basisklasse die wordt gedeeld door Shape en GroupShape. Gebruik ShapeBase in code die beide soorten uniform moet behandelen; gebruik Shape wanneer je leden nodig hebt die specifiek zijn voor één enkel tekenobject, zoals ImageData of Chart.

Hoe voeg ik een afbeelding toe aan een document?

Gebruik een van de DocumentBuilder.InsertImage-overloads — geef een Image, een bestandspad, een Stream of een byte-array door, eventueel met width/height of volledige positioneringsargumenten.

Hoe kan ik een vorm laten zweven i.p.v. deze in de tekst te laten staan?

Stel zijn WrapType in op een niet-inline waarde en stel RelativeHorizontalPosition / RelativeVerticalPosition zo in dat de Left/Top-offsets van de vorm worden berekend op basis van de pagina, de marge of de kolom.

Kan ik zowel een tekst- als een afbeeldingswatermerk toevoegen?

Document.Watermark.Type geeft het huidige watermerktype weer; een nieuw watermerk instellen met SetText of SetImage vervangt wat er eerder stond, zodat een document maximaal één actief watermerk tegelijk kan hebben.

Hoe verwijder ik een schaduw of reflectie van een vorm?

Roep Remove() aan op het overeenkomstige opmaakobject — Shape.ShadowFormat.Remove() of Shape.Reflection.Remove().


API Reference Samenvatting

Klasse/MethodeBeschrijving
ShapeEen enkel tekenlaag-object — AutoShape, afbeelding, tekstvak of OLE-object.
ShapeBaseAbstracte basisklasse gedeeld door Shape en GroupShape.
GroupShapeEen groep vormen die wordt behandeld als één tekenobject.
DocumentBuilder.InsertImageVoegt een afbeeldingsvorm in op de cursor, met optionele grootte en positionering.
ImageDataDe afbeeldingsgegevens en beeldaanpassingen (bijsnijden, helderheid, contrast) op een Shape.
FillInterne opvulopmaak — effen, verloop, patroon of afbeelding.
RelativeHorizontalPosition / RelativeVerticalPositionWaar de positie van een zwevende vorm ten opzichte van wordt gemeten.
WrapType / WrapSideHoe omringende tekst zich om een vorm wikkelt.
TextBoxTekstopmaakinstellingen voor een vorm die tekst bevat.
Document.WatermarkBeheert het tekst- of afbeeldingswatermerk van het document.
TextWatermarkOptions / ImageWatermarkOptionsStel het uiterlijk van een tekst- of afbeeldingswatermerk in.

Zie ook

 Nederlands