Verwalten von Präsentations‑Tintenobjekten auf Android
Einleitung
PowerPoint bietet eine Tintenfunktion, mit der Sie Freihandlinien zeichnen können. Tinte kann verwendet werden, um andere Objekte hervorzuheben, Verbindungen und Prozesse zu zeigen und die Aufmerksamkeit auf bestimmte Elemente einer Folie zu lenken.
Aspose.Slides stellt die Typen bereit, die zum Arbeiten mit Tintenobjekten benötigt werden. Das IInk‑Interface stellt beispielsweise ein Tintenobjekt auf einer Folie dar.
Unterschiede zwischen regulären Objekten und Tintenobjekten
Objekte auf einer PowerPoint‑Folien werden typischerweise durch Shape‑Objekte dargestellt. In seiner einfachsten Form ist ein Shape ein Container, der den Bereich des eigentlichen Objekts (seinen Rahmen) zusammen mit Eigenschaften wie Containergröße, Form und Hintergrund definiert. Weitere Informationen finden Sie unter Shape Layout Format.
Wenn PowerPoint jedoch ein Tintenobjekt verarbeitet, ignoriert es alle Eigenschaften des Objekt‑Rahmens (Containers) außer seiner Größe. Die Größe des Container‑Bereichs wird durch die Standardmethoden IShape.getWidth und IShape.getHeight bestimmt:

Tintenverläufe
Ein Tintenverlauf ist ein Basiselement, das die Bahn eines Stifts aufzeichnet, während ein Benutzer digitale Tinte schreibt. Ein Verlauf speichert eine Sequenz zusammenhängender Punkte.
Die einfachste Form der Codierung gibt die X‑ und Y‑Koordinaten jedes Abtastpunkts an. Werden alle verbundenen Punkte gerendert, entsteht ein Bild wie dieses:

Pinsel‑Eigenschaften zum Zeichnen
Ein Pinsel wird verwendet, um Linien zu zeichnen, die die Punkte eines Tintenverlaufs verbinden. Der Pinsel verfügt über eine eigene Farbe und Größe, die durch die Methoden IInkBrush.getColor und IInkBrush.getSize bereitgestellt werden.
Farbe des Tintenpinsels festlegen
Dieser Java‑Code zeigt, wie die Farbe eines Tintenpinsels festgelegt wird:
import android.graphics.Color;
import com.aspose.slides.*;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
brush.setColor(Color.RED);
} finally {
presentation.dispose();
}
Größe des Tintenpinsels festlegen
Dieser Java‑Code zeigt, wie die Größe eines Tintenpinsels festgelegt wird:
import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
SizeF brushSize = new SizeF(5, 10);
brush.setSize(brushSize);
} finally {
presentation.dispose();
}
In der Regel stimmen Breite und Höhe eines Pinsels nicht überein, sodass PowerPoint die Pinselgröße nicht anzeigt (der entsprechende Datenbereich ist ausgegraut). Stimmen Breite und Höhe überein, zeigt PowerPoint die Größe folgendermaßen an:

Zur Veranschaulichung erhöhen wir die Höhe des Tintenobjekts und betrachten die wichtigen Abmessungen:

Der Container (Rahmen) berücksichtigt die Größe der Pinsel nicht – er geht stets davon aus, dass die Linienstärke null ist (siehe das vorherige Bild).
Daher muss zur Bestimmung des sichtbaren Bereichs des gesamten Tintenobjekts die Pinselgröße seiner Verläufe berücksichtigt werden. Hier wurde das Zielobjekt (der handschriftliche Textverlauf) auf die Größe des Containers (Rahmens) skaliert. Ändert sich die Größe des Containers, bleibt die Pinselgröße konstant und umgekehrt.

PowerPoint verwendet ein ähnliches Verhalten für Textobjekte:

Darstellung von Tinte beim Export und Rendering steuern
Aspose.Slides stellt das IInkOptions‑Interface bereit, um zu kontrollieren, wie Tintenobjekte in exportierten oder gerenderten Ausgaben erscheinen. Mit dessen Eigenschaften können Sie Tinte vollständig ausblenden oder ändern, wie Pinsel‑Masken‑Operationen interpretiert werden.
Tintenoptionen stehen über die Export‑ bzw. Rendering‑Optionen für mehrere Ausgabeformate zur Verfügung:
| Ausgabe | Eigenschaft der Tintenoptionen |
|---|---|
| PdfOptions.getInkOptions | |
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Folien‑Bild | RenderingOptions.getInkOptions |
Die folgenden IInkOptions‑Methoden stellen dieselben beiden Einstellungen bereit:
- IInkOptions.getHideInk bestimmt, ob Tintenobjekte in die Ausgabe einbezogen werden. Der Standardwert ist
false. - IInkOptions.getInterpretMaskOpAsOpacity bestimmt, ob eine Masken‑Operation beim Rendern eines Tintenpinsels als Opazität interpretiert wird. Der Standardwert ist
true; rufen Sie IInkOptions.setInterpretMaskOpAsOpacity mitfalseauf, um stattdessen die ROP‑Operation zu verwenden.
Tintenobjekte in PDF‑Ausgabe ausblenden
Standardmäßig bleiben Tintenobjekte beim Export sichtbar. Um eine saubere Ausgabe ohne handschriftliche Anmerkungen oder andere Tinteninhalte zu erzeugen, rufen Sie IInkOptions.setHideInk mit true auf.
Das folgende Java‑Beispiel exportiert eine Präsentation nach PDF und blendet dabei alle Tintenobjekte aus:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Tintenobjekte beim Rendering einer Folie als Bild ausblenden
Um Tintenobjekte beim Rendern von Folien als Bitmap‑Bilder auszublenden, konfigurieren Sie RenderingOptions.getInkOptions und übergeben Sie die Rendering‑Optionen an ISlide.getImage.
Das folgende Java‑Beispiel rendert die erste Folie als PNG‑Bild ohne Tintenobjekte:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Masken‑Rendering für Tinte steuern
Die Einstellung IInkOptions.getInterpretMaskOpAsOpacity legt fest, wie Masken‑Operationen beim Rendern von Tintenpinseln interpretiert werden. Der Standardwert ist true, wodurch Opazität verwendet wird. Um stattdessen die ROP‑Operation zu nutzen, rufen Sie IInkOptions.setInterpretMaskOpAsOpacity mit false auf.
Das folgende Java‑Beispiel exportiert eine Folie nach SVG und verwendet ROP‑basiertes Rendering für Tintenmasken‑Operationen:
import com.aspose.slides.*;
import java.io.FileOutputStream;
Presentation presentation = new Presentation("presentation.pptx");
try {
SVGOptions svgOptions = new SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
ISlide slide = presentation.getSlides().get_Item(0);
FileOutputStream stream = new FileOutputStream("slide.svg");
try {
slide.writeAsSvg(stream, svgOptions);
} finally {
stream.close();
}
} finally {
presentation.dispose();
}
Die gleiche Einstellung kann über TiffOptions.getInkOptions beim Export einer Präsentation oder beim Rendern einer Folie nach TIFF angewendet werden.
Auswählen, ob Tinte ausgeblendet oder erhalten bleiben soll
Wenn Sie eine bereinigte Version einer annotierten Präsentation für die Verteilung ohne Review‑Markierungen benötigen, rufen Sie IInkOptions.setHideInk mit true während des Exports auf.
Lassen Sie IInkOptions.getHideInk auf seinem Standardwert false, wenn Tintenantworten Teil des beabsichtigten Inhalts sind, z. B. Review‑Kommentare, handschriftliche Notizen, Hervorhebungen oder Zeichnungen, die im exportierten Ergebnis sichtbar bleiben sollen. Dadurch können Anwendungen separate Review‑ und Endausgaben aus derselben Präsentation erzeugen, ohne die Quell‑Tintenobjekte zu ändern.
FAQ
Kann ich die Farbe oder Größe eines vorhandenen Tintenstrichs ändern?
Ja. Rufen Sie den Verlauf über IInk.getTraces ab und ändern Sie anschließend dessen IInkTrace.getBrush. Verwenden Sie IInkBrush.setColor oder IInkBrush.setSize, um den Pinsel zu ändern.
Verändert das Ausblenden von Tinte die Quell‑Präsentation?
Nein. Der Aufruf von IInkOptions.setHideInk wirkt sich nur auf das gerenderte oder exportierte Ergebnis aus; er entfernt oder ändert keine Tintenobjekte in der Quell‑Präsentation.
Welche Exportformate unterstützen Tintenoptionen?
Sie können Tintenoptionen für PDF, HTML, SVG, TIFF und bitmap‑Folien‑Bilder über die entsprechenden Export‑ bzw. Rendering‑Optionen konfigurieren, die oben aufgeführt sind.
Weiterführende Literatur
- Um allgemeine Informationen zu Shapes zu erhalten, lesen Sie den Abschnitt PowerPoint Shapes.
- Für weitere Details zu effektiven Werten siehe Shape Effective Properties.
- Details zum PDF‑Export finden Sie unter Convert PPT and PPTX to PDF.
- Details zum HTML‑Export finden Sie unter Convert PowerPoint Presentations to HTML.
- Details zum SVG‑Export finden Sie unter Render Presentation Slides as SVG Images.
- Details zum TIFF‑Export finden Sie unter Convert PowerPoint Presentations to TIFF.
- Details zum Rendering von Folien zu Bildern finden Sie unter Convert Presentation Slides to Images.