如何正确裁剪文本边距不均匀的PDF

如何正确裁剪文本边距不均匀的PDF,pdf,Pdf,我有这样的PDF: %%BoundingBox: 91 259 474 757 %%HiResBoundingBox: 91.000000 259.000000 474.000000 757.000000 %%BoundingBox: 85 224 470 768 %%HiResBoundingBox: 85.000000 224.000000 469.375000 768.000000 %%BoundingBox: 102 217 489 768 %%HiResBoundingBox: 102

我有这样的PDF:

%%BoundingBox: 91 259 474 757
%%HiResBoundingBox: 91.000000 259.000000 474.000000 757.000000
%%BoundingBox: 85 224 470 768
%%HiResBoundingBox: 85.000000 224.000000 469.375000 768.000000
%%BoundingBox: 102 217 489 768
%%HiResBoundingBox: 102.000000 217.000000 488.457031 768.000000
...

其中,与文本内容相关的所有页边距在每页上都是不同的

有什么工具可以帮我纠正这个问题吗

我知道ScanTailor可以在位图上实现这一点,但这是一个只有文本层的PDF格式,所以我不想在任何阶段都涉及位图的解决方案


更新

好的,对于我来说,没有必要尝试在Windows上运行PDFCrop,因为主要功能是由ghostscript提供的。此命令(取自pdfcrop perl脚本):

gswin32c.exe-dSAFER-dNOPAUSE-dBATCH-q-r72-sDEVICE=bbox-f input.pdf 2>bbox.txt

生成bbox.txt文件,其中包含文本内容维度,就像没有边距一样(边界框)。看起来是这样的:

%%BoundingBox: 91 259 474 757
%%HiResBoundingBox: 91.000000 259.000000 474.000000 757.000000
%%BoundingBox: 85 224 470 768
%%HiResBoundingBox: 85.000000 224.000000 469.375000 768.000000
%%BoundingBox: 102 217 489 768
%%HiResBoundingBox: 102.000000 217.000000 488.457031 768.000000
...
其中第一个数字是左下角的x、y值,其余两个和右上角,从左下边缘测量(以像素/点为单位)


这可以通过用户选择的语言读取,然后根据需要更正B框,并再次传递给ghostscript,如此处所述:

如果您确定只涉及文本(而不涉及在其上绘制文本的图像或路径绘制符号),则可以使用iText轻松地在Java中构建这样的工具(或者很可能是某些使用iTextSharp的.NET语言)使用解析器包功能

第15.3.4章中的第二版iText in Action一书介绍了如何查找文本边距,示例代码可以在SourceForge iText SVN存储库中找到


通过操纵各个页面的MediaBox条目,您可以根据需要调整页边距。

如果您确定只涉及文本(而不涉及在其上绘制文本的图像或绘制符号的路径),则可以使用iText(或者很可能使用iTextSharp的某些.NET语言)在Java中非常轻松地构建这样的工具使用解析器包功能

第15.3.4章中的第二版iText in Action一书介绍了如何查找文本边距,示例代码可以在SourceForge iText SVN存储库中找到


通过操纵各个页面的MediaBox条目,您可以根据需要调整页边距。

您尝试过PDFCrop吗?它会自动裁剪图形和文本周围的所有空白。您尝试过PDFCrop吗?它会自动裁剪图形和文本周围的所有空白。谢谢您的建议,但java或.net不是我的选择Robert关于pdfcrop的建议似乎很有趣,因为perl脚本使用了ghostscript,我也使用了ghostscript,所以我将对此进行检查并推断出一些有用的东西,因为从我的角度来看,在与PDFedit通信的Windows上运行perl并不是很有前途谢谢你的建议,但java或.net不是我的专长。Robert关于pdfcrop的建议似乎很有趣,因为perl脚本使用了ghostscript,我也使用了ghostscript,所以我将对此进行检查,并可能推断出一些有用的东西,因为在与PDFedit通信的Windows上运行perl在我看来并不是很有希望