Beheer presentatie inktobjecten in Python
Inleiding
PowerPoint biedt een inktfunctie waarmee je vrije penstreken kunt tekenen. Inkt kan worden gebruikt om andere objecten te markeren, verbindingen en processen te tonen, en de aandacht te vestigen op specifieke items op een dia.
De aspose.slides.ink namespace bevat de klassen die nodig zijn om met inktobjecten te werken. De Ink klasse vertegenwoordigt bijvoorbeeld een inktobject op een dia.
Verschillen tussen gewone objecten en inktobjecten
Objecten op een PowerPoint‑dia worden meestal weergegeven door vormobjecten. In de eenvoudigste vorm is een vorm een container die het gebied van het object zelf (het frame) definieert, samen met eigenschappen zoals de container‑grootte, vorm en achtergrond. Zie voor meer informatie Shape Layout Format.
Wanneer PowerPoint echter een inktobject verwerkt, negeert het alle eigenschappen van het objectframe (container) behalve de grootte. De grootte van het containergebied wordt bepaald door de standaard Ink.width‑ en Ink.height‑eigenschappen:

Inktracés
Een inktracé is een basiselement dat de traject van een pen registreert terwijl een gebruiker digitale inkt schrijft. Een tracé slaat een reeks verbonden punten op.
De eenvoudigste vorm van codering geeft de X‑ en Y‑coördinaten van elk monsterpunt weer. Wanneer alle verbonden punten worden gerenderd, ontstaat een afbeelding zoals deze:

Penseel‑eigenschappen voor tekenen
Een penseel wordt gebruikt om lijnen te tekenen die de punten van een inktracé verbinden. De InkBrush.color‑ en InkBrush.size‑eigenschappen bepalen respectievelijk de kleur en de grootte.
Kleur van inktpenseel instellen
Deze Python‑code toont hoe je de kleur van een inktpenseel instelt:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation("pres.pptx") as presentation:
ink = presentation.slides[0].shapes[0]
brush = ink.traces[0].brush
brush.color = draw.Color.red
Grootte van inktpenseel instellen
Deze Python‑code toont hoe je de grootte van een inktpenseel instelt:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation("pres.pptx") as presentation:
ink = presentation.slides[0].shapes[0]
brush = ink.traces[0].brush
brush.size = draw.SizeF(5.0, 10.0)
Over het algemeen komen de breedte en hoogte van een penseel niet overeen, waardoor PowerPoint de penseelgrootte niet weergeeft (de corresponderende gegevenssectie is grijs). Wanneer de breedte en hoogte van het penseel wel overeenkomen, toont PowerPoint de grootte op deze manier:

Voor duidelijkheid verhogen we de hoogte van het inktobject en bekijken we de belangrijke afmetingen:

De container (frame) houdt geen rekening met de grootte van de pennen – hij gaat er altijd van uit dat de lijndikte nul is (zie de vorige afbeelding).
Daarom moet, om het zichtbare gebied van het volledige inktobject te bepalen, de penseelgrootte van de tracés in aanmerking worden genomen. Hier is het doelobject (de handgeschreven teksttracé) geschaald naar de grootte van de container (frame). Wanneer de grootte van de container verandert, blijft de penseelgrootte constant, en omgekeerd.

PowerPoint hanteert vergelijkbaar gedrag voor tekstobjecten:

Controle over weergave van inkt tijdens export en rendering
Aspose.Slides levert de InkOptions‑klasse om te bepalen hoe inktobjecten verschijnen in geëxporteerde of gerenderde uitvoer. Je kunt de eigenschappen gebruiken om inkt volledig te verbergen of om te bepalen hoe inktpenseel‑maskerbewerkingen worden geïnterpreteerd.
Ink‑opties zijn beschikbaar via de export‑ of renderopties voor diverse uitvoertypen:
| Uitvoer | Eigenschap Ink‑opties |
|---|---|
PdfOptions.ink_options |
|
| HTML | HtmlOptions.ink_options |
| SVG | SVGOptions.ink_options |
| TIFF | TiffOptions.ink_options |
| Dia‑afbeelding | RenderingOptions.ink_options |
Via deze eigenschappen zijn dezelfde twee instellingen beschikbaar:
InkOptions.hide_inkbepaalt of inktobjecten worden opgenomen in de uitvoer. Standaardwaarde isFalse.InkOptions.interpret_mask_op_as_opacitybepaalt of een maskerbewerking wordt geïnterpreteerd als doorzichtigheid bij het renderen van een inktpenseel. Standaardwaarde isTrue; stel in opFalseom in plaats daarvan de ROP‑bewerking te gebruiken.
Inktobjecten verbergen in PDF‑uitvoer
Standaard blijven inktobjecten zichtbaar tijdens export. Stel InkOptions.hide_ink in op True wanneer je een schone uitvoer wilt zonder handgeschreven aantekeningen of andere inktinhoud.
De volgende Python‑voorbeeld exporteert een presentatie naar PDF terwijl alle inktobjecten verborgen blijven:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
pdf_options = slides.export.PdfOptions()
pdf_options.ink_options.hide_ink = True
presentation.save("presentation_without_ink.pdf", slides.export.SaveFormat.PDF, pdf_options)
Inktobjecten verbergen bij het renderen van een dia als afbeelding
Om inktobjecten te verbergen bij het renderen van dia’s als bitmap‑afbeeldingen, configureer je RenderingOptions.ink_options en geef je de renderopties door aan de Slide.get_image‑methode.
De volgende Python‑voorbeeld rendert de eerste dia als PNG‑afbeelding zonder inktobjecten:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
rendering_options = slides.export.RenderingOptions()
rendering_options.ink_options.hide_ink = True
with presentation.slides[0].get_image(rendering_options) as image:
image.save("slide_without_ink.png", slides.ImageFormat.PNG)
Rendering van inktmaskers beheren
De eigenschap InkOptions.interpret_mask_op_as_opacity bepaalt hoe maskerbewerkingen worden geïnterpreteerd bij het renderen van inktpenseels. De standaardwaarde is True, waardoor doorzichtigheid wordt gebruikt. Stel de eigenschap in op False om de ROP‑bewerking te gebruiken.
De volgende Python‑voorbeeld exporteert een dia naar SVG en gebruikt ROP‑gebaseerde rendering voor inktmaskerbewerkingen:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
svg_options = slides.export.SVGOptions()
svg_options.ink_options.interpret_mask_op_as_opacity = False
with open("slide.svg", "wb") as svg_stream:
presentation.slides[0].write_as_svg(svg_stream, svg_options)
Dezelfde instelling kan worden toegepast via TiffOptions.ink_options bij het exporteren van een presentatie of het renderen van een dia naar TIFF.
Kiezen of je ink wilt verbergen of behouden
Stel InkOptions.hide_ink in op True wanneer het geëxporteerde bestand een schone versie van een geannoteerde presentatie moet zijn, bijvoorbeeld een definitieve kopie bedoeld voor distributie zonder review‑markeringen.
Laat InkOptions.hide_ink op de standaardwaarde False wanneer inktannotaties deel uitmaken van de beoogde inhoud, zoals review‑commentaren, handgeschreven notities, markeringen of tekeningen die zichtbaar moeten blijven in de geëxporteerde uitkomst. Dit stelt applicaties in staat om gescheiden review‑ en definitieve uitvoer te genereren vanuit dezelfde presentatie zonder de bron‑inkobjecten te wijzigen.
FAQ
Kan ik de kleur of grootte van een bestaande inktstreep wijzigen?
Ja. Haal het tracé op via Ink.traces, wijzig vervolgens het InkTrace.brush. Je kunt de InkBrush.color‑ en InkBrush.size‑eigenschappen instellen.
Verandert het verbergen van inkt de bronpresentatie?
Nee. InkOptions.hide_ink heeft alleen invloed op het gerenderde of geëxporteerde resultaat; het verwijdert of wijzigt geen inktobjecten in de bronpresentatie.
Welke exportformaten ondersteunen inktopties?
Je kunt inktopties configureren voor PDF, HTML, SVG, TIFF en bitmap‑dia‑afbeeldingen via de hierboven getoonde export‑ of renderopties.
Verder lezen
- Voor algemene informatie over vormen, zie de sectie PowerPoint Shapes.
- Voor meer informatie over effectieve waarden, zie Shape Effective Properties.
- Voor details over PDF‑export, zie Convert PPT and PPTX to PDF.
- Voor details over HTML‑export, zie Convert PowerPoint Presentations to HTML.
- Voor details over SVG‑export, zie Render Presentation Slides as SVG Images.
- Voor details over TIFF‑export, zie Convert PowerPoint Presentations to TIFF.
- Voor details over dia‑naar‑afbeelding rendering, zie Convert Presentation Slides to Images.