如何将pdf转换为仅特定页面的灰度?

问题描述 投票:0回答:1

给定一个由许多彩色页面组成的pdf,如何以编程方式仅将某些特定页面转换为灰度?

似乎Ghostscript只允许对整个文件应用转换,无法仅处理特定页面。

有什么提示吗,在 Linux 上工作?

pdf colors ghostscript
1个回答
0
投票

找到以下选项:

-sPageList= 页码 有三个可能的值;偶数、奇数或要处理的页面列表。列表可以包括 单页或页面范围。页面范围使用减号 “-”,各个页面和页面范围以逗号“,”分隔。 尾随减号“-”表示处理所有剩余页面。例如:

-sPageList=1,3,5 表示应处理第 1、3 和 5 页。

-sPageList=5-10 表示应处理第 5、6、7、8、9 和 10 页。

-sPageList=1, 5-10, 12 表示应处理第 1, 5, 6, 7, 8, 9, 10 和 12 以后的页面。

PDF 解释器和其他语言解释器处理这些 以略有不同的方式。因为 PDF 文件可以随机访问 PDF解释器仅解释和呈现文档中的页面 所需的页面。 PCL 和 PostScript 不能以这种方式处理, 因此所有页面都必须被解释。然而只有要求的 渲染页面,这仍然可以节省时间。意识到 对 OutputFile 使用“%d”语法不会反映页面 原始文件中的编号。如果您(例如)选择处理 使用 -sPageList=even 偶数页,然后输出 -sOutputFile=out%d.png 仍然是 out0.png、out1.png、out2.png 等

因为 PostScript 和 PCL 解释器无法确定何时 文档终止,发送多个文件作为命令的输入 行不会重置每个文档之间的 PageList,每个页面 第二个及后续文件按以下方式处理 直接从第一个文档的最后一页开始。 PDF 文件 然而,解释器并不是这样工作的。既然它知道 单个 PDF 文件 PageList 应用于每个 PDF 文件 分别地。因此,如果您要设置 -sPageList=1,2 然后发送两个 PDF 文件,结果将是第一个文件的第 1 页和第 2 页,然后 第二个文件的第 1 页和第 2 页。 PostScript 解释器,由 相反,只会渲染第一个文件中的页面 1 和 2。这 意味着您在使用此开关时必须小心谨慎,并且可能 在处理 PostScript 和 在同一命令行上查看 PDF 文件。

© www.soinside.com 2019 - 2024. All rights reserved.