Wie man mit Inhaltsstromoperatoren in Java arbeitet
Dieser Leitfaden zeigt, wie man Seiten-Content-Streams in Aspose.PDF FOSS für Java analysiert und erstellt. Sie werden lernen, rohe Seitenbytes zu lesen, sie mit ContentStreamParser zu analysieren und ContentStreamBuilder zu verwenden, um neue Inhalte zu erstellen.
Zugriff auf den Content-Stream
Jeder Page in einem Document hält seinen grafischen Inhalt in einem Content-Stream. Der Stream enthält eine Sequenz von PDF-Operatoren, die Textpositionierung, Zeichenbefehle und Ressourcenreferenzen definieren. Lesen Sie die rohen Content-Stream-Bytes einer Seite aus:
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
System.out.println("Content stream size: " + contentBytes.length + " bytes");
}Parsen mit ContentStreamParser
ContentStreamParser tokenisiert und parst einen Content-Stream in Operator-Objekte, wodurch es möglich wird, jeden Zeichenbefehl im Stream zu untersuchen:
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
ContentStreamParser parser = new ContentStreamParser(contentBytes);
// Iterate over parsed operators
}Erstellen mit ContentStreamBuilder
ContentStreamBuilder erstellt neue Inhalts-Streams zum Einbetten in ein Page. Verwenden Sie ContentStreamBuilder, wenn Sie Seiteninhalt programmgesteuert erstellen, anstatt einen bestehenden Stream zu ändern. Nach dem Erstellen des Streams weisen Sie ihn der Seite zu und speichern das Dokument.
Operatorreferenz
PDF-Inhalts-Stream-Operatoren sind in ISO 32000-1:2008, Tabelle A.1, definiert. Häufige Operatoren umfassen:
- Textoperatoren:
BT,ET,Tf,Tj - Grafikzustandsoperatoren:
q,Q,cm - Pfadoperatoren:
m,l,h,f,S