PDF文件中的内联文本编辑

时间:2013-08-27 15:53:55

标签: java c linux pdf lamp

我想知道是否有可用的编程库允许在PDF文档中内联编辑文本。在文档之后绘制文本并不是我在此之后所做的事情,而且我已经知道有许多设施和库可以完成这项工作;我正在寻找一些可以让我做出这样的改变的东西(其中没有画出NEW但是编辑过,例如,字符串):

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

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

那么有没有这样的东西,或者我在错误的树上吠叫?我已经看过像FPDF,PdfBox甚至GNOME这样的范围设施而没有太多运气(tbh,我相信GNOME可能会允许它,但是现在让我的头脑过于耗费时间 - 所以关于这一点的指示将是也很棒)。

如果已经提出要求,请致谢和抱歉。

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

2 个答案:

答案 0 :(得分: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以“当前单位”设置转换矩阵。在不知道两者的实际大小的情况下,不可能立即看到'1213'之后的文本'Colophon'是否紧随其后。 TcTw设置默认字符和字间距,并且经常被滥用来插入“空格”。不过这里不是; TJ数组指定带有散布的字距值的文本片段(我猜,根据它们的位置)。

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

(这个输出是用我自己写的PDF阅读器创建的,使用上述参考而不是更多。)

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

答案 1 :(得分:-1)

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

相关问题