Я клонирую документ для редактирования со следующим кодом.
cloneDoc = new PDDocument()
PDFCloneUtility cloner = new PDFCloneUtility(cloneDoc);
for(int pageIndex = 0; pageIndex < mainDoc.getNumberOfPages(); ++pageIndex) {
PDPage page = mainDoc.getPage(pageIndex);
PDPage newPage = new PDPage((COSDictionary) cloner.cloneForNewDocument(page.getCOSObject()));
newPage.setCropBox(page.getCropBox());
newPage.setMediaBox(page.getMediaBox());
newPage.setRotation(page.getRotation());
if(null != page.getResources()) {
newPage.setResources(new PDResources((COSDictionary) cloner.cloneForNewDocument(page.getResources())));
} else {
newPage.setResources(new PDResources());
}
cloneDoc.addPage(newPage);
}
Документ клонируется правильно, но шрифты не клонируются.Из-за этого текста шрифт и размер шрифта выглядят по-разному и содержат пропущенный символ.
В mainDoc есть два шрифта в mainDoc.getFontsToSubset (), которые отсутствуют в cloneDoc.