use*_*627 5 printing pdf preflight podofo
我必须自动对PDF文档进行预检检查.预检包括:
只是想知道是否可以使用PoDoFo或其他任何开源项目来完成.或者,如果我真的需要订购一些介于$ 2K到$ 6K之间的专有软件.我的托管环境在Linux上,支持PHP,Perl,Python,Ruby,Java.
有任何想法吗?
我不知道任何现成的开源软件满足您的要求.
只有一部分可以通过编写自己的shell脚本(或其他程序)来解决.
检测图像的分辨率.
运行pdfimages -list some.pdf以输出PDF中包含的图像列表及其尺寸......看似.但是关于它的不明显的是:这些维度是原始图像的维度(嵌入在PDF中).这可能是720x720像素.但是,如果渲染到页面的10x10英寸的正方形上,则该图像将在页面上为72 DPI.如果在1x1英寸的正方形上渲染,则为720 DPI.PDF中的两种"渲染"类型都可以使用相同的嵌入原始图像,而当前"图形状态"的上下文决定了应用哪种类型.因此,要确定页面上显示的图像的实际DPI,需要进行一些额外的PDF解析...
在任何情况下,您都可以告诉Ghostscript将图像重新采样到300 dpi,并为此使用"阈值".(Ghostscript永远不会"上采样"一个图像,只会对这些超出阈值的下采样进行下采样.上采样几乎从来没有意义 - 它只会炸掉文件大小,而不会提高质量.)
使用ICC配置文件将颜色转换为色彩空间CMYK.
最新版本的Ghostscript可以做到这一点.另请参阅描述其对ICC支持的最新Ghostscript文档.
嵌入非嵌入字体.
运行(并评估结果)pdffonts some.pdf将显示未嵌入哪些字体.
Ghostscript可以嵌入非嵌入字体.
因此,一个满足您大部分要求的Ghostscript命令是:
gs \
-o cmyk.pdf \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=CMYK \
-sProcessColorModel=DeviceCMYK \
-sOutputICCProfile=/path/to/your.icc \
-sColorImageDownsampleThreshold=2 \
-sColorImageDownsampleType=Bicubic \
-sColorImageResolution=300 \
-sGrayImageDownsampleThreshold=2 \
-sGrayImageDownsampleType=Bicubic \
-sGrayImageResolution=300 \
-sMonoImageDownsampleThreshold=2 \
-sMonoImageDownsampleType=Bicubic \
-sMonoImageResolution=1200 \
-dSubsetFonts=true \
-dEmbedAllFonts=true \
-sCannotEmbedFontPolicy=Error \
-c ".setpdfwrite<</NeverEmbed[ ]>> setdistillerparams" \
-f some.pdf
Run Code Online (Sandbox Code Playgroud)
此命令将对所有图像进行缩减采样,其分辨率高于双想要的分辨率(*ImageDownSampleThreshold=2).此外,它会将所有这些设置应用于任何输入文件(除非某些特殊的PDF预检软件会根据特殊属性的'检查'结果应用选择性'修正').
最后,我不知道是什么让你认为你必须花费2千美元到6千美元,以防你不得不求助于闭源商业预检软件.(我在这个领域最喜欢的是非常强大的callas pdfToolbox6(它甚至有一个在Linux上作为CLI运行的版本) - 它的基本版本需要500欧元.)
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |