我在使用PdfBox生成分层pdf页面时遇到了问题。我看到这里有几篇帖子讨论了这个问题,但它们都集中在从另一个pdf导入页面到目标文档上。
我的情况有点不同(至少我认为是这样的 :))。我创建了一个名为MapImage的类,其中包含纸张大小(以像素为单位)和我想要添加到单个pdf页面的BufferedImages列表。
以下是我尝试的代码:
我的情况有点不同(至少我认为是这样的 :))。我创建了一个名为MapImage的类,其中包含纸张大小(以像素为单位)和我想要添加到单个pdf页面的BufferedImages列表。
以下是我尝试的代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PDDocument document = new PDDocument();
for (MapImage image : images) {
PDPage page = new PDPage(new PDRectangle(image.getPaperWidth(), image.getPaperHeight()));
page.setResources(new PDResources(new COSDictionary()));
document.addPage(page);
LayerUtility layerUtility = new LayerUtility(document);
int i=1;
for(BufferedImage layer : image.getLayers()) {
PDJpeg img = new PDJpeg(document, layer);
layerUtility.appendFormAsLayer(page, new PDXObjectForm(img.getCOSStream()), new AffineTransform(), "Layer " + i++);
}
}
document.save(baos);
document.close();
很遗憾,生成的PDF文件已经损坏。 我设法创建了一个只有一张图片(没有图层)的页面,但不幸的是我不知道如何做到这一点。
是否有人遇到过这样的问题?