2011-03-15 48 views
6

我使用pdftk來解壓縮PDF並將其作爲文本文件打開。
我想編輯我的情況/媒體框領域,這是如何使用pdftk和/ MediaBox裁剪PDF頁邊距

/MediaBox [0 0 612 792] 

我想,以減少利潤,例如

/MediaBox [100 0 512 792] 

遺憾的是它不工作。我可以將0更改爲29,但我不能將100舉例說明。

任何想法爲什麼?

+0

這不是一個編程問題,應該移到網絡的另一個網站 – anddam 2013-11-28 07:48:04

回答

7

使用sed的取代任何發生

sed 's/MediaBox \[0 0 612 792*/MediaBox \[100 0 512 792]/g'<in.pdf >out.pdf

podofobox(內側podofo utils的

無需解壓 PDF流的第一(視需要與PDFTK)

podofobox in.pdf out.pdf media 10000 0 51200 79200

,你可以看到,podofobox使用乘以100媒體框值,因爲它的規模是一個子多,因此,您只需將兩個零()添加到您可以在MediaBox字段中讀取的值

11

字符串100中的數字比0多兩個。您使用文本編輯器並添加字符,這會使文件變長。這就是爲什麼用9或2或任何其他單個數字替換可以正常工作的原因。儘管理論上可以使用文本編輯器來編輯PDF,但這並不簡單,您必須尊重文件的內部結構。外部參照表是靠近PDF末尾的表格,它告訴讀者每個對象所處的位置。只要任何東西的長度或位置發生變化,它都必須更改。

以上使用pdftk的手動方法不起作用的原因是您要在文件的中心添加兩個字節。這打破了xref表。如果你手動更新所有的xref,這將起作用,但它可能非常乏味。使用sed或任何其他文本編輯工具不能解決問題。 podofo爲您計算xref

+0

1-您在「在文件中間添加兩個字節」是什麼意思?xref表是什麼? 2 - 那你有什麼建議? – RockScience 2013-02-26 01:53:20

+0

我推薦做@Dingo和Gorb博士已經提出的建議,即使用旨在操縱pdf的軟件或代碼。 – 2013-02-26 05:32:04

+0

這很有道理,謝謝 – RockScience 2013-02-26 09:53:34