- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须自动对 PDF 文档进行预检检查。预检包括:
只是想知道这是否可以使用 PoDoFo 或任何其他开源项目来完成。或者,如果我确实需要订购一些 2000 美元到 6000 美元之间的专有软件。我的托管环境位于 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 can do that 的最新版本。另请参阅most recent Ghostscript documentation描述其对 ICC 的支持。
嵌入未嵌入的字体。
运行(并评估其结果)pdffonts some.pdf
将显示哪些字体未嵌入。
Ghostscript 可以 embed un-embedded fonts .
因此,可以满足您大部分要求的 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
此命令将对分辨率高于双倍所需分辨率 (*ImageDownSampleThreshold=2
) 的所有图像进行下采样。此外,它会将所有这些设置应用于任何输入文件(除非某些特殊的 PDF 印前检查软件会根据特殊属性“检查”的结果应用选择性“修复”)。
最后,我不明白是什么让您认为您必须花费 2000 美元到 6000 美元,以防您不得不求助于闭源商业预检软件。 (在这个领域我最喜欢的是非常强大的 callas pdfToolbox6 (甚至有一个在 Linux 上作为 CLI 运行的版本)——它的基本版本售价 500 欧元。)
关于pdf - 使用 PoDoFo 或其他开源软件进行 PDF 预检程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12661093/
去年(2023年)年底我初学flutter,看了一些文档和教程,想找个东西*练练手。 小时候看过一个关于历史名人儿时事迹的短片,有一集是讲*总理的,有一个细节我记得很清楚:幼年***经常要做一个游戏
今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下: image 如上图,右键菜单多了几个我自定义的菜单
书接上回,今天继续和大家享一些关于枚举操作相关的常用扩展方法。 今天主要分享通过枚举值转换成枚举、枚举名称以及枚举描述相关实现。 我们首先修改一下上一篇定义用来测试的正常枚举,新增一个枚举项,
今天和大家享一些关于枚举操作相关的常用扩展方法。 我们平时用的比较多的是正常枚举,同时还有加[Flags]特性的位标志枚举,因此以下所有扩展方法同时适用正常枚举以及位标志枚举。 我们首先定义两
书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法。 01、获取当前日期所在月的第一个指定星期几 该方法和前面介绍的获取当前日期所在周的第一天(周一)核心思想是一样的,只是把求周一改成
书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法。 01、获取当天的开始时间 当天的开始时间指00:00:00时刻,因此只需要获取DateTime的Date属性只获取时间即可,具体代
书接上回,我们继续来分享一些关于时间转换的常用扩展方法。 01、时间转日期时间 TimeOnly 该方式是把TimeOnly类型转为DateTime类型,其中日期部分使用系统当前日期,时间部分
从事软件开发这么多年,平时也积累了一些方便自己快速开发的帮助类,一直在想着以什么方式分享出来,因此有了这个系列文章,后面我将以《开源-Ideal库》系列文章分享一些我认为比较成熟、比较方便、比较好的代
任何人都可以建议我应该使用什么程序/方法? 我需要有一个像谷歌地图这样的 map ,我可以在其中显示 map 、添加标记多边形等。 但是我不能依赖这样的在线服务,因为客户担心这样的服务会消失,我们的系
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 11年前关闭。 Improve this qu
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
您知道 EDA(电子设计自动化)领域有哪些开源项目正在寻找 C++ 程序员吗? 最佳答案 如果您经常关注 gEDA 的邮件列表,您也许能够加入 gEDA。详情:http://www.gpleda.or
如果现有Hadoop群集上有10个数据节点,则可以在4个或6个数据节点上安装NiFi吗? NiFi的主要目的是每天将数据从RDBMS加载到高容量的HDFS。 数据节点将配置为具有100 GB的高RAM
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
Closed. This question is off-topic。它当前不接受答案。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
【Github源码】 《上一篇》 介绍了Xmtool工具库中的图形验证码类库,今天我们继续为大家介绍其中的扩展动态对象类库。 扩展动态对象是整个工具库中最重要的一个设计。
【Github源码】 《上一篇》 介绍了Xmtool工具库中的Web操作类库,今天我们继续为大家介绍其中的图形验证码类库。 图形验证码是为了抵御恶意攻击出现的一种设计;例如用
我是一名优秀的程序员,十分优秀!