0

我想知道是否有可用的编程库允许在 PDF 文档中内联编辑文本。在此之后,我不再将文本绘制到文档中,而且我已经知道有许多设施和库可以做到这一点;我正在寻找可以让我进行这样的更改的东西(其中 NEW 没有被绘制,而是被编辑,例如,一个字符串):

“这是我的文件”变成“这是我的新文件”。

...应保留格式(尤其是在页面上的特定区域内未进行编辑的情况下)。自动换行支持也很棒!

那么那里有这样的东西还是我在吠叫错误的树?我已经查看了 FPDF、PdfBox 甚至 GNOME 等一系列工具,但运气不佳(tbh,我确信 GNOME 可能会允许它,但目前了解它太费时了——所以关于这方面的指针将是也很棒)。

谢谢和抱歉,如果这已经被问到了。

在编程语言方面:我愿意使用 C、C++、Java、PHP、Python 和 Perl 中的建议。

4

2 回答 2

0

为了跟进我的评论,这是相当典型的原始 PDF 文本输出的样子——PDF 参考指南 16-v4 第 1213 页的缩水部分:

36451 0 obj  % Contents
% used filter: FlateDecode
/GS2 gs
BT
/F1 1 Tf
8 0 0 8 297.417 105.667 Tm
0 0 0 1 k
0 Tc
0 Tw
(1213) Tj
/F5 1 Tf
24 0 0 24 253.784 617 Tm
[ (C) 19.1 (olophon) ] TJ
/F3 1 Tf
10.505 0 0 10.505 136.5 566 Tm
-0.0014 Tc
0.2018 Tw
[ (This do) -10.1 (c) -7.2 (u) -0.3 (men) 17.6 (t) -1.4 ( was p) 10 (r) 11.9 (o) -10.1 (d) 10.8 (uce) -7.2 (d) -1.3 ( usin) 6.6 (g ) 36.5 (A) 24.6 (d) 0.9 (o) 3.8 (b) -10.1 (e) ] TJ
8.4 0 0 8.4 326.25 570.2 Tm
0 Tc

..这样的几百行省略了。一些兴趣点:Tf设置文本字体(在别处定义,并且可能具有自定义编码——并不总是 ASCII)。Tj“显示”文本;Tm以“当前单位”设置变换矩阵。在不知道两者的实际大小的情况下,不可能立即看到文本“Colophon”是否紧跟在“1213”之后。Tcand设置默认字符和单词间距,Tw并且经常被滥用来插入“空格”。不过,不在这里;该TJ数组指定具有散布字距调整值的文本片段(我猜,基于它们的位置)。

无法确定此单个文本行是单独的一行,还是较长段落的一部分。甚至无法确定它是否是合理的字符串——您需要将其左右边缘与其他行进行比较才能确定。

(此输出是使用我自己从头开始编写的 PDF 阅读器创建的,使用上述参考,仅此而已。)

如您所见,仅查找文本是一项挑战,尽管有些库在这方面或多或少是成功的。他们都没有——如果我是正确的——吹嘘能够编辑“任何 PDF”。

于 2013-08-27T22:47:47.683 回答
-1

只需在 pdf 文件中查找文本并进行修改。如果我没记错的话,字符串文字是这样编码的:(This is my document). 如果您要更改的文本被拆分为多个字符串文字,或者您需要自动换行,那么任何 pdf 库都可能对您没有太大帮助。

于 2013-08-27T16:52:56.707 回答