Оператори на потока от съдържание

Това ръководство показва как да получите достъп и манипулирате с 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");
}

Вижте също:

 Български