Come lavorare con gli operatori di flusso di contenuto in Java
Questa guida mostra come analizzare e costruire i flussi di contenuto delle pagine in Aspose.PDF FOSS per Java. Imparerai a leggere i byte grezzi della pagina, a analizzarli con ContentStreamParser e a usare ContentStreamBuilder per creare nuovo contenuto.
Accedi al flusso di contenuto
Ogni Page in un Document contiene il suo contenuto grafico in un flusso di contenuto. Il flusso contiene una sequenza di operatori PDF che definiscono il posizionamento del testo, i comandi di disegno e i riferimenti alle risorse. Leggi i byte grezzi del flusso di contenuto da una pagina:
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");
}Analizza con ContentStreamParser
ContentStreamParser tokenizza e analizza un flusso di contenuto in oggetti operatore, rendendo possibile ispezionare ogni comando di disegno nel flusso:
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
}Costruisci con ContentStreamBuilder
ContentStreamBuilder crea nuovi flussi di contenuto per l’incorporamento in un Page. Usa ContentStreamBuilder quando costruisci il contenuto della pagina in modo programmatico anziché modificare un flusso esistente. Dopo aver creato il flusso, assegnalo nuovamente alla pagina e salva il documento.
Riferimento agli operatori
Gli operatori dei flussi di contenuto PDF sono definiti nella ISO 32000-1:2008, Tabella A.1. Gli operatori comuni includono:
- Operatori di testo:
BT,ET,Tf,Tj - Operatori dello stato grafico:
q,Q,cm - Operatori di percorso:
m,l,h,f,S