기존의 여러 PDF를 하나의 새 PDF로 가져와야합니다. 코드의 일부는 액션 2 판에 이 iText의 섹션 6.2.1에있는 샘플 코드와 비슷한 일 :iText를 사용하여 특수 효과가있는 PDF 복사
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(
document, new FileOutputStream(RESULT));
document.open();
PdfPTable table = new PdfPTable(2);
PdfReader reader = new PdfReader(MovieTemplates.RESULT);
int n = reader.getNumberOfPages();
PdfImportedPage page;
for (int i = 1; i <= n; i++) {
page = writer.getImportedPage(reader, i);
table.addCell(Image.getInstance(page));
}
document.add(table);
document.close();
그러나, 우리가 실현 우리의 경우에 (주석으로 채우기 할 수 PDF 파일을 처리 할 때, 그 PDF에 이미 데이터가 채워져 있음) 모든 채워진 데이터는 새 PDF에서 손실됩니다.
그것은 페이지의 내용과 페이지의 대화 형 기능을 렌더링하는 데 필요한 자원의 차이를 이해하는 것이 중요합니다 :
우리는이 책의 같은 섹션에서 답을 찾아 냈다. 일반적으로 이러한 기능을 주석이라고합니다. 여기에는 링크, 텍스트 주석 및 양식 필드가 포함됩니다. 어노테이션은 컨텐츠 스트림의 일부가 아닙니다. 이들은 페이지의 자원 사전에 있지 않지만 주석 사전에 나열됩니다. 이 대화 형 기능은PdfImportedPage
을 사용할 때 복사되지 않으므로 메서드가있는PdfWriter
클래스의 페이지를 복사 할 때 모든 대화 형 작업이 손실된다는 것을 의미합니다.
하지만 이러한 주석을 유지하는 솔루션은 무엇입니까?
6 장의 PdfCopy 샘플을보십시오. – mkl