Sam*_*mpo 19 linux pdf printing
我们办公室有一台打印机,可以从 U 盘打印 PDF 文件。它可以打印大多数文件,但有些文件存在问题,尤其是使用 Latex 生成的文件。有些 PDF 只是拒绝打印,有些 PDF 使用 courier-type 字体打印,而有些 PDF 打印得很好,除了方程式。
我正在寻找一种方法将 PDF“提炼”成一种绝对可靠的格式进行打印。通过将 PDF 简化/规范化到任何渲染器都可以正确渲染它的程度,或者简单地使每个页面成为 PDF 中的 600dpi 光栅图像。(我可以将 PDF 拆分为单独的光栅图像并手动组合它们,但我想要一些可编写脚本的内容。)
输出文件大小无所谓,只要确定打印,有A4纸大小(或原件)和300~600dpi分辨率即可。
Sam*_*mpo 31
在尝试了一些将字体渲染为轮廓的选项失败后(包括这个问题和 pstoedit),我想出了一种使用 ImageMagick 轻松将 PDF 转换为光栅化形式的方法:
convert -density 600 +antialias input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)
这将创建一个以 600 dpi 呈现的 PDF,并关闭抗锯齿(在该分辨率下是不必要的)。
输出文件很大(8 页文档约 30 MB)并且打印速度极慢,但只要打印机有足够的内存来呈现内容,就应该可以工作。
这是对已接受答案的改进:它还可以gs优化文件,使其不那么大,并修复偶尔的兼容性问题:
convert -render -density 300 input.pdf tmp.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=input-scanned.pdf tmp.pdf
Run Code Online (Sandbox Code Playgroud)
我非常频繁地使用此功能:任何时候我对 PDF 进行注释或在 PDF 上签名等,并且想要修复这些编辑或使它们变得超便携。因此,作为 bash 脚本(即将其放入 ~/.aliases 中并打开一个新的终端窗口):
(脚本evince在最后调用。这是一个 PDF 查看器。您可以将其替换为您最喜欢的 PDF 查看器)。
rasterizePDF() {
echo "Usage: rasterizePDF fromfile.pdf : this makes a 300dpi raster version. And optimizes it with ghostscript. Output is fromfile.pdf-scanned.pdf"
tmpfile=$(mktemp).pdf
echo "Creating raster version... (in $tmpfile)"
convert -render -density 300 $1 $tmpfile
echo "Optimizing to shrink pdf file..."
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1-scanned.pdf $tmpfile
evince $1-scanned.pdf&
echo "Finished; launched viewer."
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8593 次 |
| 最近记录: |