Оператори потоку контенту

Оператори потоку контенту

Цей керівництво показує, як отримати доступ і маніпулювати контентом 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");
}

See Also

 Українська