gpt4 book ai didi

java - 读取 PDF、接收文本以及写入新 PDF 的简单方法。 ( java )

转载 作者:行者123 更新时间:2023-12-01 14:02:22 26 4
gpt4 key购买 nike

免责声明:我一直在尝试使用 iText 来做到这一点。为了完成这项工作,我阅读、研究、提问、询问、实验,并做了我能想到的一切。我很生气。请不要以为我没有尝试过,只是来这里让别人帮我做这件事;事实并非如此。我想学习,我想弄清楚这个问题。我正在寻找有这方面经验的人提供好的指导。

我有一个包含可编辑文本字段的 PDF。我想要做的是以编程方式读取该 PDF,并从已有的文本字段中获取文本,从应用程序中的其他位置获取文本,然后将先前的信息 + 新的文本信息写回原始 PDF。

我尝试过的:
- 使用 PdfReader 读取 PDF
- 使用 PdfStamper(PdfReader, FileOutputStream) 写入 PDF
- 使用 reader.getAcroFields() 获取文本字段。

我已经在网上搜索了好几天了,但无法解决这个问题。当我这样做时:

String in = "C:/Users/me/Desktop/file.pdf";
String out = "C:/Users/me/Desktop/file.pdf";
PdfReader reader = new PdfReader(in);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(out));
AcroFields form = stamper.getAcroFields();
form.setField("dateDisc1", "5/21");

最终创建的 PDF (file.pdf) 已损坏。

如果有更简单的方法可以做到这一点,请帮助我对此进行一些说明。

谢谢!

最佳答案

是的,抱歉,我没有注意到文件名。

原始答案:

好吧,没有简单的方法,我很多个月前就发现了这一点。

PDF 实际上是 PostScript 的某种包装器(它包含字体等),并且将 PDF 转换为 PostScript 非常容易(我只需运行一个命令并从那里处理 PostScript)

它不像 LaTeX,PostScript 用于打印机,它有一个堆栈,您可以在其中推送状态等,每个字母都是绝对定位的,PostScript 是打印机然后解释的虚拟机的一组指令。

文本突出显示等来自于文本从左到右流动等更高层次的知识。我阅读了 PostScript 标准,得到了我想要的东西,从那以后就没有再碰过它,这不是一个很好的答案,但肯定会为您指明正确的方向。

请记住,PDF 和 PostScript(文档)不是用来编辑的,它们不会进行文本换行等操作,如果缩放,则必须平移,它们的存在是为了保留打印机等的格式。

关于java - 读取 PDF、接收文本以及写入新 PDF 的简单方法。 ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com