Innehåll Stream Operatorer
Denna guide visar hur man kan komma åt och manipulera PDF-innehållströmoperatörer med hjälp av ContentStreamParser och ContentStreamBuilder i Aspose.PDF FOSS för Java. Du lär dig att läsa råsidebytter och använda parser för att inspektera ritning. kommandon är.
innehåll Streams
PDF-sidens innehåll kodas som en sekvens av operatörer i ett innehållsflöde. Page ger tillgång till dess innehållsoperatörer via getContents() och egendom.
ContentStreamParser
ContentStreamParser parser råinnehållström byter till operatörobjekt, möjliggör programmatisk inspektion av sidanslag kommandon. pass de rå byterna från page.getContents().toByteArray() Till parserkonstruktorn:
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
}ContentStreamBuilder
ContentStreamBuilder skapar nya innehållströmmar för att integrera i en Page. Användning ContentStreamBuilder När du bygger innehåll på sidan programmerar du mer ändra en befintlig ström. Efter att ha byggt strömen, tilldela den tillbaka till sidan och spara dokumentet.
Operatör Referens
PDF-innehållsströmoperatörer definieras i ISO 32000-1:2008, tabell A.1. Företaget omfattar även arbetsgivare (BT, ET, Tf, TjGrafiska statliga operatörer (q, Q, cmoch företagsförvaltning (m, l, h, f, S).
Innehållsströmoperatörer följer PDF-spesifikationen (ISO 32000-1:2008, §8). Användning ContentStreamParser att iterera över operatörerna i en befintlig ström.
Tillgång till råsida innehåll
För att läsa de rå byterna av en sida innehåll ström, ringa page.getContents().toByteArray(). Bytterna kan sedan inspekteras, dekoderas eller överföras till ContentStreamParser:
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");
}