Làm thế nào để làm việc với các nhà điều hành dòng nội dung trong Java
Hướng dẫn này cho thấy cách phân phối và xây dựng các dòng nội dung trang trong Aspose.PDF FOSS cho Java. bạn sẽ học cách đọc các byte trang nguyên, chia chúng với ContentStreamParser, và sử dụng ContentStreamBuilder tạo nội dung mới.
Truy cập Content Stream
Each Page trong a Document giữ nội dung đồ họa của nó trong một dòng nội bộ. chứa một chuỗi các nhà điều hành PDF định nghĩa vị trí văn bản, lệnh vẽ và tham khảo tài nguyên. đọc các byte dòng nội dung thô từ một trang:
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");
}Tải về ContentStreamParser
ContentStreamParser tokenize và phân phối một dòng nội dung vào các đối tượng vận hành, làm cho nó có thể kiểm tra mỗi lệnh vẽ trong dòng:
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
}Tạo với ContentStreamBuilder
ContentStreamBuilder tạo ra các dòng nội dung mới để tích hợp trong một Page. Sử dụng ContentStreamBuilder Khi xây dựng nội dung trang lập trình thay vì thay đổi một dòng hiện có. Sau khi xây dựng dòng, gán nó trở lại với dòng Trang và lưu tài liệu.
Reference Nhà điều hành
Các nhà điều hành lưu lượng nội dung PDF được định nghĩa trong ISO 32000-1:2008, bảng A.1.:
- Text Operator: Các nhà điều hành văn bản:
BT,ET,Tf,Tj - Nhà khai thác đồ họa:
q,Q,cm - Các nhà điều hành đường:
m,l,h,f,S