【问题标题】:How to exchange text in PostScript如何在 PostScript 中交换文本
【发布时间】:2011-09-24 14:45:00
【问题描述】:

我确实有以下 PostScript 代码内容,该代码最初由 Windows XP 上的Ghostscript 打印机生成。

/Euro /Times-BoldItalic /Times-BoldItalic-Copy BuildNewFont
} if
F /F1 0 /256 T /Times-BoldItalic mF 
/F1S52 F1 [82.664 0 0 -82.664 0 0 ] mFS
F1S52 Ji 
581 547 M (This is just a little test content)[55 42 42 23 46 37 42 37 28 21 51 42 21 51 46 42 32 66 42 21 60 42 55 21 21 21 55 37 32 46 55 42
23  0]xS 
; 

我只想编辑文本,但如果我尝试更改括号之间的文本,无论新文本是长还是短,文本都会失真。

我试图理解上面的代码是做什么的,但我没有找到相应的文档。

您能否帮助我理解代码的含义——尤其是以“581”开头的行的含义以及如何在不破坏布局的情况下编辑文本?

提前谢谢你!

PS:我需要这个用于自动交换一些段落的 python 脚本,因此我不需要第三方编辑工具、PDF 编辑工具或类似的东西;)

【问题讨论】:

    标签: postscript


    【解决方案1】:

    以“581”开头的行显然移动到点 581 547,然后以某种方式推送xS 使用的字符串和数组。我怀疑xS 是使用该数组的show 的扩展版本,但我不知道怎么做。您必须查看 PS 文件的开头才能找到 xS 的定义。 mFS 也像是一个转换,因为它得到了一个矩阵。

    无论如何,如果 PS 文件包含排版文本,您不太可能能够在不破坏排版的情况下更改其中的文本。

    【讨论】:

    • @Ihf 谢谢你的提示,你是对的!最后一个问题:请问Postscript中冒号和分号是什么意思?我也没有在任何参考资料中找到它们。提前致谢!
    • 我不认为冒号和分号有任何预设含义,但它们可以定义为任何内容,就像命名过程一样。查看 PS 文件的开头找到定义。
    • @muffel,我找到了一个可以使用here 的文件。 xs 就是 xshow,它使用数组来替换字母。因此,当您更改文本长度(即使您不这样做)时会出现混乱。冒号表示gsave,分号表示grestore。定义在%%BeginResource: file Pscript_Win_Basic 附近。
    【解决方案2】:

    xS 几乎可以肯定只是xshow,它使用字符串和数组并使用数组来紧缩文本。您可以使用简单的show 替换文本。您在哪里看到:

    (This is just a little test content)[...]xS 
    

    将其替换为:

    (This is my replacement content) show
    

    文件的序言将有一些show 的简写名称,但您不必使用它。该文本可能仍然不合适,但如果您只是更改表单中的条目或同样孤立的内容(标题、脚注等),它可能会很好。

    如果您想变得花哨,您可以利用 PostScript 是一种成熟的编程语言这一事实​​。你可以编写一个函数来确定旧字符串的宽度(对于这个xshow,你会从数组的最后一个元素中找到右边缘加上字符串最后一个字符的stringwidth),然后计算长度您的新字符串 (stringwidth),然后使用 ashow 将您的字符串压缩/拉伸到它的位置。

    【讨论】:

      【解决方案3】:

      我同意@lhf。你真的应该在后记级别进行这种“上游”编辑。无论源应用程序是什么,这都是脚本需要生效。如果应用程序没有本机脚本,那么您仍然可以使用 WinBatch 之类的东西与之交互。我使用 WinBatch 制作宏向导,将击键输入到 telnet3270 客户端:通过交互式系统启用“批处理”操作。对于 unix,有期望。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多