当前位置: 首页 > 知识库问答 >
问题:

添加的文本不会出现在PDF文档[重复]

简嘉赐
2023-03-14

我正在使用PDFBox 1.8.10将文本添加到PDF文档中。它可以很好地工作,除了在某些文档中添加文本(使用pdf structure inspector检查),但不以pdf格式显示。样本文件如下:https://kali-docs.ks2.fr/share/s/Ut_LdO8LR4WEeEd1y2k58Q

因为我想将一些自定义AlphaConstant设置为文本(和矩形),所以我使用图形状态参数字典来添加文本。

使用的代码:

PDPageContentStream contentStream = new PDPageContentStream(pdfDoc, pdfPage, true, true);                

this.textGraphicState = new PDExtendedGraphicsState();
textGraphicState.setNonStrokingAlphaConstant(1f);
Map<String, PDExtendedGraphicsState> graphicsStatesMap = pdfPage.getResources().getGraphicsStates();
if (graphicsStatesMap == null)
{
    graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>();
}
graphicsStatesMap.put("textGraphicState", textGraphicState);
pdfPage.getResources().setGraphicsStates(graphicsStatesMap);
contentStream.appendRawCommands("/textGraphicState gs\n");
contentStream.setNonStrokingColor(fontColor);
contentStream.beginText();
contentStream.setFont( font, fontSize );
contentStream.moveTextPositionByAmount( pagePosX, pagePosY );
contentStream.drawString(text);
contentStream.endText();
contentStream.close();

知道吗?

谢谢,文森特

共有1个答案

南门欣怡
2023-03-14

重置图形状态解决了我的问题(PDPageContentStream构造函数的第五个参数)。

PDPageContentStream=new PDPageContentStream(pdfDoc, pdfPage, true, true);

 类似资料:
  • 我正在尝试从Android中的一个遗留应用程序打开一个标准的PDF表单,使用iText覆盖表单字段,并传递到Android上的Adobe Reader来填写表单。 我已经能够手动创建文本字段,但我更希望有一个pdf文件作为模板,以加快过程和更好地控制质量。 这是我到目前为止的代码,遵循itext的例子。 我遇到的问题在最后一行。cb.addTemplate(第0,0页); Eclipse报告以下错

  • 问题内容: 我需要有关iText的帮助。我需要在其他现有的iText文档或PDF文档中添加现有的pdf封面。有人可以帮助我吗?我已经搜索了一些书籍(iText在使用中),但有些复杂。 问题答案: 假设我们有一个名为pages.pdf的文档,并且我们想添加封面hero.pdf作为本文档的封面。 方法1: 使用 看一下AddCover1示例: 结果是一个文档,在这里您首先有封面,然后是文档的其余部分:

  • 我需要添加一些文本内容的底部现有的。带有iText的pdf文档。我有一个工作方法,但新内容显示在左上角,与现有内容重叠: 如何“移动”最后一页底部的,而不是第一页的开头?我对iText不熟悉,令人惊讶的是,在网上找不到解决方案。

  • 主要内容:加密PDF文档,示例在前一章中,我们已经看到了如何在PDF文档中插入图像。 在本章中,我们将学习如何加密PDF文档。 加密PDF文档 使用和类提供的方法加密PDF文档。 类用于通过为其分配访问权限来保护PDF文档。 使用此教程,您可以限制用户执行以下操作。 打印文档 修改文档的内容 复制或提取文档的内容 添加或修改注释 填写交互式表单域 提取文字和图形以便视障人士使用 汇编文件 打印质量下降 类用于向文档添加基于密码

  • 我正在熟悉PDFBOX的口味。我想知道是否有一种方法可以将pdf-layout元素放入PDDocument对象中。pdf-layout元素使用Document作为父元素,PDFBox使用PDDocument作为父元素。 使用的库:https://pdfbox.apache.org/2.0/examples.html和https://github.com/ralfstuckert/pdfbox-la

  • 主要内容:将文本添加到现有的PDF文档,示例在前一章中,我们讨论了如何将页面添加到PDF文档。 在本章中,我们将讨论如何将文本添加到现有的PDF文档。 将文本添加到现有的PDF文档 可以使用PDFBox库将内容添加到文档,它提供一个名称为的类,其中包含在的页面中插入文本,图像和其他类型内容所需的方法。 以下是创建空白文档并将内容添加到其中的页面的步骤。 第1步:加载现有文档 使用类的方法加载现有文档。 因此,请实例化此类并加载所需的文档,如