我的目标是打开一个PDF文档,填写一些表单字段,然后将其呈现为图像。我正在使用带有Java的PDFBox来实现它。我开始使用版本2.0.2(最新版本),并填写表单字段。当我保存它,然后用PDF阅读器打开它时,表单字段有值。但当我将其呈现为图像时,表单字段有黑色边框,内部没有文本。然后我在1.8.12上尝试了同样的方法,它起作用了。不过,我真的很想使用2.x中的新特性。
我使用1.8.12呈现的代码:
public class Main {
public static void main(String[] args) throws Exception {
PDDocument doc = PDDocument.loadNonSeq(new File("test.pdf"), null);
doc.setAllSecurityToBeRemoved(true);
PDDocumentCatalog cat = doc.getDocumentCatalog();
PDAcroForm form = cat.getAcroForm();
for (Object _field : form.getFields()) {
PDField field = (PDField) _field;
System.out.println(field.getFullyQualifiedName());
field.setValue(field.getFullyQualifiedName());
}
List<PDPage> pdPages = doc.getDocumentCatalog().getAllPages();
int page = 0;
for (PDPage pdPage : pdPages) {
++page;
BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 96);
ImageIOUtil.writeImage(bim, "rendered" + "-" + page + ".png", 96);
}
doc.close();
}
}
public class Main {
public static void main(String[] args) throws Exception {
PDDocument doc = PDDocument.load(new File("test.pdf"));
doc.setAllSecurityToBeRemoved(true);
PDDocumentCatalog cat = doc.getDocumentCatalog();
PDAcroForm form = cat.getAcroForm();
for (PDField field : form.getFields()) {
System.out.println(field.getFullyQualifiedName());
if (field instanceof PDTextField) {
field.setValue(field.getFullyQualifiedName());
}
}
// Doesn't work with or without these
form.setNeedAppearances(true);
form.refreshAppearances();
PDDocument renderDoc = doc;
PDFRenderer pdfRenderer = new PDFRenderer(renderDoc);
for (int page = 0; page < renderDoc.getNumberOfPages(); ++page) {
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 96, ImageType.RGB);
ImageIOUtil.writeImage(bim, "rendered" + "-" + (page + 1) + ".png", 96);
}
}
}
这是PDFBox 2.0.2中的一个错误。它在2.0.4中得到了解决,因此解决方案是将版本升级到最新。
问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt
所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。
因此,下面的代码适用于一个活动,但当我使用onCreateView将其添加到一个片段中时,应用程序就会崩溃 Fragment公共类步骤扩展Fragment{ 12-13 15:17:15.062 984-984/com.stephenh.daytrack.daytrack.daytrackstephenh E/AndroidRuntime:致命异常:主进程:com.stephenh.daytrac
列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。
我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P
我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 请帮助整理这些例外 问候, KP