2013-08-27 31 views
0

我想知道是否有可用的編程庫,允許在PDF文檔內進行內聯編輯。對文檔繪製文本並不是我在這段時間之後的內容,我已經意識到有許多設施和庫可以完成這些工作;我正在尋找一些能夠讓我做出這樣的改變(其中NEW未被繪製,但是被編輯,例如,一個字符串):在PDF文件內嵌入文本編輯

「這是我的文檔」成爲「這是我的新文件」。

...應保留格式(特別是在頁面上的特定區域內未進行編輯的情況下)。 Word包裝支持也會很棒!

那麼有沒有這樣的事情,或者我吠叫錯了樹?我已經看了一些像FPDF,PdfBox甚至GNOME這樣的範圍設施,但沒有多少好運(tbh,我相信GNOME可能會允許它,但讓我的頭腦在這個時候太費時 - 這樣的指針會是也很棒)。

非常感謝,如果已經有人問過這個問題。

在編程語言方面:我願意使用C,C++,Java,PHP,Python和Perl中的建議。

+0

也許[this](http://stackoverflow.com/a/9393318/1255746)很有幫助。 –

+0

嗯...我將在稍後更新問題,指出格式應該保留在編輯的行內。但首先,你的建議是否保持格式? – tiredone

+0

也許我從錯誤的角度來看待問題,並應該操縱其他標準類型的文檔文本(如Microsoft Word或Libre Office的XML格式),然後將其導出爲PDF,但最好的庫是爲了什麼(即說XML/HTML5爲PDF)? – tiredone

回答

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」之後是不可能的。 TcTw設置默認字符和字間距,並經常被濫用來插入'空格'。雖然不在這裏; TJ數組指定文本片段與散佈字距值(我猜,根據他們的位置)。

這是不可能確定這個單一的文本行本身是一條線,或者是一個較長段落的一部分。甚至不可能確定它是否是正確的字符串 - 您需要比較其左邊和右邊的其他行以找出。

(此輸出與PDF閱讀我寫我自己從頭開始,使用上述基準,而不是更多的創建。)

正如你所看到的,只是發現文本是一個挑戰,雖然有圖書館在這方面或多或少是成功的。 沒有他們 - 如果我是正確的 - 吹噓能夠編輯「任何PDF」。

+0

你的答案已經接近事實的真相。除了已經提出的各種意見之外,我向其他人尋求類似的建議是使用真正可編輯的格式,然後將其導出爲PDF。我要從這裏進一步調查我的選擇,如果我找到了一個快速解決方案,我會留下另一條評論。 – tiredone

+0

我將繼續使用LibreOffice的unoconv命令行程序(現在)以及libreoffice的.fodt格式。有些像這樣: 'unoconv -f pdf -o out.pdf MyDocument.fodt' – tiredone

+0

唯一的缺點是,除非我使用監聽器,否則我將不得不每次在shell環境中執行此命令,已知臨時文件。 unoconv3.py看起來很有趣。 – tiredone

-1

只需查找PDF文件中的文本並對其進行修改即可。如果我沒有弄錯,字符串文字是這樣編碼的:(This is my document)。如果你想改變的文本被分割成多個字符串文字,或者你需要自動換行,那麼任何pdf庫都可能不會對你有很大的幫助。

+0

它就像'(這是我的文檔)',只是在最簡單的文檔中,即僅在具有標準編碼且不具有字距的文檔中。 – mkl

+0

文本在幾乎*任何* PDF文檔被分解成多個字符串。考慮字體,大小或顏色更改,文字和字母間距以及左側,右側,居中或對齊文本。沒有兩個PDF生產者遵循相同的例程來做同樣的事情。 「自動換行」...忘記它。 PDF並不意味着可以通過這種方式進行編輯。 – usr2564301

+0

我擁有的文檔實際上並不包含純文本,其全部編碼。該文檔使用的PDF版本爲1.5(PDF-1.5)。我應該使用哪種版本的PDF來編碼pdf,以便明文可見?單詞包裝的限制可能是一個看起來像阻礙者。 – tiredone