我正在使用pdfbox 2.0.8-需要创建一个层,并在那里添加一些图形。
我从如何修改pdf中的现有层(可选内容组)开始?
然而,这是基于1.8。我试图适应2.0,并设法创建了该层,但完全不清楚如何创建新资源并将其添加到该层,即如何创建道具。putMapping(resourceName,layer);必须重写1.8中的内容
OP引用的答案中的PDFBox 1.8代码相当于以下代码:
void addTextToLayer(PDDocument document, int pageNumber, String layerName, float x, float y, String text) throws IOException
{
PDDocumentCatalog catalog = document.getDocumentCatalog();
PDOptionalContentProperties ocprops = catalog.getOCProperties();
if (ocprops == null)
{
ocprops = new PDOptionalContentProperties();
catalog.setOCProperties(ocprops);
}
PDOptionalContentGroup layer = null;
if (ocprops.hasGroup(layerName))
{
layer = ocprops.getGroup(layerName);
}
else
{
layer = new PDOptionalContentGroup(layerName);
ocprops.addGroup(layer);
}
PDPage page = (PDPage) document.getPage(pageNumber);
PDResources resources = page.getResources();
if (resources == null)
{
resources = new PDResources();
page.setResources(resources);
}
PDFont font = PDType1Font.HELVETICA;
PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true, true);
contentStream.beginMarkedContent(COSName.OC, layer);
contentStream.beginText();
contentStream.setFont(font, 12);
contentStream.newLineAtOffset(x, y);
contentStream.showText(text);
contentStream.endText();
contentStream.endMarkedContent();
contentStream.close();
}
(AddContentToOCG)
可以这样使用:
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
addTextToLayer(document, 0, "MyLayer", 30, 600, "Text in new layer 'MyLayer'");
addTextToLayer(document, 0, "MyOtherLayer", 230, 550, "Text in new layer 'MyOtherLayer'");
addTextToLayer(document, 0, "MyLayer", 30, 500, "Text in existing layer 'MyLayer'");
addTextToLayer(document, 0, "MyOtherLayer", 230, 450, "Text in existing layer 'MyOtherLayer'");
document.save(new File(RESULT_FOLDER, "TextInOCGs.pdf"));
document.close();
(AddContentToOCG测试TestAddContentToneworexistingCG
)
正如你在下面的代码片段中看到的,我很难让蓝色覆盖贴在图像上,但是正如你所看到的,在左侧,由于某种原因,它没有贴在图片上。是的,我希望一整列的位置比另一列低/高一点,所以这里我尝试将整列1定位70px,但它撕裂了蓝色覆盖层和图像。有什么想法吗? null null
对于一个项目,我正在创建不同的层,这些层都应该被写入一个geopackage。我正在使用QGIS 3.16.1和运行在Python 3.7上的QGIS中的Python控制台 我尝试了很多事情,但不知道如何做到这一点。这是我目前使用的。 问题是,在“测试”中。“gpkg”创建的层称为“测试”,而不是“点1”或“点2”。和第二个QgsVectorFileWriter。writeAsVectorForm
我正在使用PDFBox从我的webapp中提取数据并将其放入PDF。我有一个方法,在每个PDF页面上绘制标题。但是,当我向每个页面添加图像时,文档的内存就会耗尽。我想知道有没有人有什么解决的办法?下面是我的drawHeader方法: public static void drawHeader(PDDocument doc,PDPage page,PDPageContentStream conten
有没有办法在Apache Pdfbox中添加额外的字体样式? 我们目前正在尝试在系统中打印PDF(目前正在使用PDF渲染器)我一直在寻找各种替代方案(pdfbox、jpedal、jPDFPrint) 我们希望有一个免费的GPL兼容库可以使用,因此我们倾向于使用pdfbox。我已经能够编写一些示例代码来打印出“有效”的pdf。见下文: 正如我提到的,这是有效的,但我遇到的问题是PdfBox似乎无法识
嗨,我正在尝试重新创建一个足球锦标赛,已经能够创建一个地图的集团,但现在想要添加到每个国家的点数。有人有什么好主意吗?请看看我已经做了什么。
单击 按钮,可以将你已上传的数据添加到地图中。同一份数据可以多次添加到一个和多个不同地图中,你可以分别设置这些图层的不同显示样式而不必担心他们互相影响。但是请注意,修改图层的数据记录会导致不同图层的记录同时发生变化。 如果数据集合列表中没有你要添加的数据集合,你可以点击创建数据按钮立即创建,这和在数据管理中创建数据是同样的效果。 部分新创建的数据可能需要系统后台处理,你需要等待他处理完成才能将其添