【问题标题】:Run Ghostscript (GS) with PostScript as a command line argument (but not a file)使用 PostScript 作为命令行参数(但不是文件)运行 Ghostscript (GS)
【发布时间】:2017-04-12 19:25:32
【问题描述】:

我使用以下参数执行 Ghostscript (gs) 命令:

gs -q -dBATCH -dNOPAUSE -sDEVICE=jpeg -dJPEGQ=98 -r96 -dTextAlphaBits=4 \
   -dGraphicsAlphaBits=4 -sOutputFile=target.jpg -f watermark.ps input.pdf

watermark.ps 是一个 PostScript 文件,其脚本如下:

Is it possible in Ghostscript to add watermark to every page in PDF

是否可以使用 PostScript 内联,我的意思是将 watermark.ps 文本直接放在命令行中以避免文件读取?

根据此文档http://www.ghostscript.com/doc/9.18/Use.htm#Input_control,可以使用-c-s 开关,但我不知道如何将该.ps 文件合并到一行? PS中的新行如何处理?也许我应该为每一行使用-c?我无法使用内联 PS 搜索任何 gs 示例。

【问题讨论】:

    标签: pdf jpeg ghostscript watermark postscript


    【解决方案1】:

    相当杂乱的问题......

    是的,可以为每一页添加水印,当输入为 PDF 时,这并不简单,但是我对您引用的问题的回答应该有效。

    我应该放弃尝试使用 -c 和 -f 来执行此操作。你认为你通过这种方式获得了什么?然而,简单的答案是换行符(毫不奇怪)只是 PostScript 中的一个空白字符。它不是特殊标记,您可以将其替换为任何其他空白字符。

    如果你想使用 PostScript,那么在谷歌上搜索 Ghostscript 是没有意义的,你需要寻找 PostScript。它是一种编程语言,Adobe 在 1980 年代生产早期解释器时发布了规范。该规范(现在处于第 3 级)仍可在线获取。

    【讨论】:

    • 我用谷歌搜索了 post 和 ghost 脚本 - 几乎我所有的请求都重定向到 ghostscript.com/doc/9.18/Use.htm 或只是纯 Post Script 规范
    • 嗯,PostScript 规范是您回答有关 PostScript 问题所需要的。
    【解决方案2】:

    根据您的命令行,我假设您有一个 unix shell。您可以将大多数 shell 中的命令结果替换为 `cmd args...`$(cmd args)

    bash> echo $(cat watermark.ps)
    

    使用 gs 的 -c <ps-code> 选项,您可以在此时将代码注入到执行中。

    【讨论】:

    • “我假设你有一个 unix shell” - 不。实际上它甚至不是 gs 命令,它是一个 Java 库 Ghost4J。它使用与命令行相同的命令界面,但显然我不能在那里使用输入/输出流管道。
    • >此时将代码注入执行,您能解释一下这是什么意思(注入代码)吗?
    • “注入”可能是错误的词。我的意思是“插入”。 ...您可以将-c code 选项放在两个文件名之间,gs 将执行文件之间的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多