Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fonts PDFBox:克隆字体_Fonts_Clone_Pdfbox - Fatal编程技术网

Fonts PDFBox:克隆字体

Fonts PDFBox:克隆字体,fonts,clone,pdfbox,Fonts,Clone,Pdfbox,我正在用以下代码克隆一个文档进行编辑 cloneDoc = new PDDocument() PDFCloneUtility cloner = new PDFCloneUtility(cloneDoc); for(int pageIndex = 0; pageIndex < mainDoc.getNumberOfPages(); ++pageIndex) { PDPage page = mainDoc.getPage(pageIndex); PDPage newPa

我正在用以下代码克隆一个文档进行编辑

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);
}
cloneDoc=newpddocument()
PDFCloneUtility cloner=新的PDFCloneUtility(cloneDoc);
对于(int pageIndex=0;pageIndex
文档已正确克隆,但字体未被克隆。由于此文本,字体和字号看起来不同,并且包含缺少的字符


mainDoc在mainDoc.getFontsToSubset()中有两种字体,cloneDoc中没有这两种字体。

我怀疑pdfbox类是为克隆仍在生成过程中的文档数据部分而设计的,而子集的字体就是这样一种未完成的实体。人们通常可以从通过从文件(或流)加载创建的
PDDocument
对象中克隆数据,而无需进行大量编辑。这不是克隆的目的。您可以直接将页面添加到目标,只需避免在目标文档之前关闭源文档。可能还有其他缺点,您无法正确获取表单字段。该类(由我!)在中公开以解决一个问题。后来发现克隆不是解决方案,这被还原了,但我无法删除public,因为这会破坏API。提醒我再次将3.0的包本地化:-)