Jak pracować z operatorami strumienia zawartości w Java
Ten przewodnik pokazuje, jak analizować i tworzyć strumienie treści stron w Aspose.PDF FOSS dla Java. Nauczysz się odczytywać surowe bajty strony, analizować je za pomocą ContentStreamParser, oraz używać ContentStreamBuilder do tworzenia nowej treści.
Uzyskaj dostęp do strumienia treści
Każdy Page w Document przechowuje swoją zawartość graficzną w strumieniu treści. Strumień zawiera sekwencję operatorów PDF, które określają pozycjonowanie tekstu, polecenia rysowania oraz odniesienia do zasobów. Odczytaj surowe bajty strumienia treści z strony:
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");
}Analizuj za pomocą ContentStreamParser
ContentStreamParser tokenizuje i analizuje strumień treści na obiekty operatorów, co umożliwia inspekcję każdego polecenia rysowania w strumieniu:
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
}Twórz za pomocą ContentStreamBuilder
ContentStreamBuilder tworzy nowe strumienie zawartości przeznaczone do osadzania w Page. Użyj ContentStreamBuilder przy programowym tworzeniu zawartości strony zamiast modyfikowania istniejącego strumienia. Po zbudowaniu strumienia przypisz go z powrotem do strony i zapisz dokument.
Odwołanie operatorów
Operatory strumieni zawartości PDF są zdefiniowane w ISO 32000-1:2008, tabela A.1. Do powszechnych operatorów należą:
- Operatory tekstu:
BT,ET,Tf,Tj - Operatory stanu graficznego:
q,Q,cm - Operatory ścieżek:
m,l,h,f,S