Roc*_*nce 7 pdf resize crop margins pdftk
我曾经pdftk解压PDF,然后将其作为文本文件打开.
我想编辑/ MediaBox字段,这是我的情况
/MediaBox [0 0 612 792]
Run Code Online (Sandbox Code Playgroud)
例如,我想减少利润
/MediaBox [100 0 512 792]
Run Code Online (Sandbox Code Playgroud)
不幸的是它不起作用.我可以0改成一个2或一个,9但我不能举个100例子.
知道为什么吗?
Jam*_*all 14
字符串100中还有两个数字而不是0.当您使用文本编辑器并添加字符时,会使文件更长.这就是为什么替换9或2或任何其他单个数字工作正常.虽然理论上可以使用文本编辑器来编辑pdf,但这并不简单,您必须尊重文件的内部结构.外部参照表是靠近pdf末尾的表格,它告诉读者每个对象的确切位置.每当任何东西的长度或位置发生变化时,都必须进行更改.
上面使用的手动方法pdftk不起作用的原因是您在文件的中心添加了两个字节.这打破了xref桌子.如果您手动更新所有xrefs,这将有效,但它可能非常繁琐.使用sed或任何其他文本编辑工具将无法解决问题. 为你podofo做xref计算.
使用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使用MediaBox值乘以100,因为它的比例是一个子倍数,因此,您只需要将两个零(00)添加到您可以在MediaBox字段中读取的值
有更好的方法来改变PDF的边缘:
希望你找到答案,因为张贴:-)
| 归档时间: |
|
| 查看次数: |
14352 次 |
| 最近记录: |