Оператори на потока от съдържание
Това ръководство показва как да получите достъп и манипулирате с PDF съдържание поток оператори, използвайки ContentStreamParser и в) ContentStreamBuilder в Aspose.PDF FOSS за Java. Ще се научите да четете сурови странични съдържание байтове и използвайте парсер за проверка на рисунки Команди.
Потоци от съдържание
Съдържанието на PDF страницата се кодира като последователност от оператори в потока съдържание. Page предоставя достъп до своите оператори на съдържание чрез getContents() собственост.
ContentStreamParser
ContentStreamParser анализира байтовете на потока от сурови съдържания в обекти за оператори, Прехвърляне на суровите байтове от page.getContents().toByteArray() към конструктора на анализатора:
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 създава нови потоци съдържание за вграждане в Page. Използване на: ContentStreamBuilder при конструиране на съдържание на страницата по-скоро програмно, отколкото След като изградите потока, възстановете го обратно към системата. страница и запази документа.
Референтна информация за оператора
Оператори на поток от PDF съдържание са определени в ISO 32000-1:2008, таблица A.1. операторите включват текстови оператори (BT, ET, Tf, Tj), оператори на графични състояния (q, Q, cm), и операторите на маршрута (m, l, h, f, S).
Операторите на потока от съдържание следва спецификацията PDF (ISO 32000-1:2008, §8). Използване на: ContentStreamParser да се повтарят над операторите в съществуващ поток.
Достъп до сурово съдържание на страницата
За да прочетете суровите байтове на стрийма с съдържание от страница, обадете се page.getContents().toByteArray(). Байтите могат да бъдат проверени, декодирани или предадени на 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");
}