完美的 pdfcrop

完美的 pdfcrop

我需要一个“完美”的 pdfcrop,可以裁剪确切地在其他程序中,将图片或文本的边缘对齐为图形对齐问题。我知道 standalone包裹pdfcrop,并已完成所有包含选项的问题--hires。两种解决方案都无法解决确切地到边缘。例如,使用standalone

\documentclass[crop]{standalone}
\begin{document}
Hi
\end{document}

在此处输入图片描述

并使用pdfcrop --hires

在此处输入图片描述

如您所见,pdfcrop很接近,但我需要精确的。我认为standalone只知道字形给出的宽度并pdfcrop从 中获取其信息gs。是否可以使用 LaTeX 或任何外部工具实现完美裁剪?

答案1

为了能够可靠地裁剪矢量图形,您必须“打印”它才能查看黑点的位置。

“印刷”总是涉及分辨率:黑点必须具有正尺寸。

pdfcrop 使用 ghostscript 的 bbox 设备。根据 ghostscript 的文档,该设备的默认分辨率为 4000 dpi。

您可以更改此分辨率,但简单地放大它并不意味着您会得到更“完美”的结果:为了能够确定裁剪是否“完美”,您必须将其“打印”到屏幕上以查看黑点的位置,并且在较低的屏幕分辨率下,只有在非常大的缩放下您才能看到“精确”的裁剪。

答案2

扩展 Ulrike 的精彩答案:

之所以只能在将字体渲染为实际像素图后才能保证这一点,是因为原则上,字形的墨水及其边界框

这是一个例子;URW Nimbus Sans 中的小写字母“m”:

字形 m 的字体视图

显示了左侧和右侧边距(墨水和边界框之间的空间)。当然,TeX 设置为边界框,而不是墨水,这是“出于印刷原因”。

如果精密排版最终的像素图渲染对你来说很重要,XeTeX 提供了一种允许你访问边距值的解决方案,如下所述在这个问题上。但这并不能 100% 保证。

答案3

扩展@ulrike-fischer 的评论,因为它包含了在我处理的大多数情况下有效的解决方案——而且我猜这可能在许多类似情况下有所帮助:

如果您的目标是没有边距,并且如果pdfcrop裁剪/剪辑/移动部分内容超出图像边界,或者如果保留一些边距,则更高分辨率 ( --hires)的组合更大的图像缩放(--resolution WIDTHxHEIGHT)可能是一种快速而实用的解决方案:

pdfcrop --hires --resolution 1000x1000 my.pdf

如果需要更精确,则进一步增加分辨率:

pdfcrop --hires --resolution 50000x50000 my.pdf

在大多数情况下,我都会以一种快速而实用的方式解决问题,但在某些特殊情况下,这种方法可能不够准确。

相关内容