Wie man mit Inhaltsstromoperatoren in Java arbeitet

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

Siehe auch

 Deutsch