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

用PDFBox填充景观PDF

鄢翰藻
2023-03-14
PDDocument pdfDoc = PDDocument.load(MY_FILE);
PDDocumentCatalog docCatalog = pdfDoc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();

acroForm.getField("aAddressLine1").setValue("ADDRESS1_HERE");
acroForm.getField("aAddressLine2").setValue("ADDRESS1_HERE");
acroForm.getField("country").setValue("COUNTRY_HERE");

pdfDoc.save(PATH_HERE);
pdfDoc.close();

您是否设法在横向模式下填充PDF文档?

谢谢你的帮助。

共有1个答案

翟奇
2023-03-14

简短的回答

恐怕PDFBox还不能(从1.8.2版开始)允许您填写像您提供的那样的横向PDF,因为它似乎不能查询和考虑关于表单字段所在页面的信息。

冗长的回答

/MediaBox [0, 0, 842, 595]
/Rect[23.1711 86.8914 292.121 100.132]
/MediaBox [0, 0, 595, 842]
/Rotate 90
/Rect[86.8914 23.1711 100.132 292.121]

它应该做的是查看字段所在的页面。如果该页面有一个/Rotate条目,它应该为字段创建一个外观流,该字段显示以相反方向旋转的文本。

备选方案

你在评论中还问到

    PdfReader reader = new PdfReader(MY_FILE);
    OutputStream os = new FileOutputStream(PATH_HERE);
    PdfStamper stamper = new PdfStamper(reader, os);

    AcroFields acroFields = stamper.getAcroFields();
    acroFields.setField("aAddressLine1", "ADDRESS1_HERE");
    acroFields.setField("aAddressLine2", "ADDRESS1_HERE");
    stamper.close();
File file = new File(MY_FILE);

Document document = file.getDocument();
Form form = document.getForm();
form.getFields().get("aAddressLine1").setValue("ADDRESS1_HERE");
form.getFields().get("aAddressLine2").setValue("ADDRESS1_HERE");

file.save(new java.io.File(PATH_HERE), SerializationModeEnum.Incremental);
file.close();
 类似资料:
  • 当我使用这个长字段名时,我没有得到任何错误,但是得到的PDF不包含我放在字段中的值。我想可能字段名有问题,所以我使用了Pdftk工具,它只给出了作为字段名。但是当我仅仅使用它时,我会得到error。救命?

  • 我有一个pdf文件,其中包含一些我想从java填写的表单字段。现在我正在尝试填写一个我通过其名称找到的表单。我的代码如下所示: 这是: 作为系统。out状态下,该值设置正确,但在生成的pdf文件中,新值未显示(显示原始字符串),因此我猜增量保存无法正常工作。我错过了什么? 我使用2.0.2版本的pdfbox,下面是我使用的pdf文件:pdf

  • 我正在尝试用来自可观察列表的数据填充TableView。我以前做过这个,但由于某种原因我现在无法让它工作。我没有得到任何异常或任何东西,但它根本不会向表添加任何东西。 这个问题很相似,但我发现了JPA引起的另一个问题,这使得提到的的构造函数永远不会执行。相反,JPA会神奇地分配值。 这是我的代码-我剪下了与问题无关的代码: FXML 主要的Java语言 修改Java语言 任何帮助解决这个问题将不胜

  • 我想知道是否可以使用来填充?我使用了而不是,因为我需要经常添加和删除,所以我需要最小化成本。 我的hashMap使用一个大整数作为键字段,一个具有许多属性的类型作为值字段。在我的tableView中,我只想显示每个属性都有一列的值。我希望你说清楚了 谢谢

  • 我正在尝试使用Apache PDFBox库以编程方式创建PDF文档。PDPageContentStream类包含写入文本、绘制直线、贝塞尔曲线和矩形的方法。但我找不到一种方法来画一个简单的实心圆。有没有办法用这个库来绘制它?如果没有,您能否建议一个免费的Java库,它提供灵活的API以编程方式创建PDF文档?提前谢谢。

  • 问题内容: 是否可以为SVG 元素设置a ? 例如,如果设置了element ,则CSS样式有效,但都不起作用。 问题答案: 您可以通过将背景变成图案来实现: 根据您的图像调整宽度和高度,然后从这样的路径中引用它: