【问题标题】:Using ghostscript as x11 viewer (gs x11 viewport positioning)?使用 ghostscript 作为 x11 查看器(gs x11 视口定位)?
【发布时间】:2012-06-20 23:12:19
【问题描述】:

我已经知道Ghostscript front end 的观众;但我想知道gs 本身如何用于查看 PDF 文档?

最接近的方法是明确指定x11 窗口作为输出设备,通过-g 指定窗口的宽度和高度,并通过-r 指定光栅化分辨率;或者,像这样的命令行:

gs -sDevice=x11 -g500x500 -r150x150 -dFirstPage=3 fontspec.pdf

... 结果如下:

...事实上,一切都很好——除了,它从左下角开始;并且这里没有键盘快捷键(据我所知)来移动视口或执行一些缩放。

我知道ghostscipt 可能没有鼠标/键盘交互来导航 x11 窗口输出,因为类似的东西是为像 gv 这样的前端查看器保留的。因此,ghostscript 中与(对我而言)最接近的是 - 如何呈现页面的特定区域?通过-d-r 已经指定了最重要的参数——我只想在查看时指定一个不同于0x0 的点(例如,x=100 y=100)作为左下角。

(换句话说,我想对ghostscript说:显示document.pdf的第3页,光栅化为150x150,在500x500的窗口中,从左下角开始x,y= 100,100)。

如何在ghostscript 中做到这一点?是否有命令行开关 - 或者一旦ghostscript 已加载,是否必须在终端中使用postscript 语言命令?

非常感谢您的任何回答,
干杯!

【问题讨论】:

  • 完全不确定这是一个编程问题......
  • 感谢@unwind 的评论 - 我认为它具有编程问题的各个方面,因为人们无法理解为什么 gs 不是真正的查看器,除非将其理解为 PostScript 语言口译员(我经常忘记);但否则我不会有问题将帖子移动到说超级用户......干杯! (PS:标题也编辑了)
  • @sdaau postscript 是一种编程语言,问题是:“打印时移动文本的 post-script 命令是什么。”当然是一个编程问题。也就是说,我非常喜欢关于你真正想做的事情的额外细节,同样的问题已经困扰了我一段时间。好问题。

标签: x11 ghostscript viewer


【解决方案1】:

好的,感谢(#277826) ghostscript - How can I shift page images in PDF files more to the left or to the right?,我可以看到有可能使用postscriptPageOffset 命令/操作符来实现视口的偏移/位移;因此可以使用以下命令行:

gs -sDevice=x11 -g500x500 -r150x150 -dFirstPage=3 -c '<</PageOffset [-150 133]>> setpagedevice' -f fontspec.pdf

请注意,与 OP 中的命令行不同 - 在此处您必须使用-f 开关在此处指定输入文件 - 如果没有,该命令将失败并显示:Error: /undefined in fontspec.pdf

否则,输出如下所示:

所以很高兴知道 - 但我仍然很好奇 ghostscript 是否还没有一些默认开关,这将允许这个视口偏移/重新定位的东西......

希望这对某人有所帮助,
干杯!

【讨论】:

  • AFAIK,Ghostscript 本身并不能提供您想要的。这就是ghostviewgv GUI 前端的用途。 Ghostscript 将 x11 设备(几乎)视为打印页面输出设备,并且打印页面确实具有固定大小,如果不使用不同的设置重新打印它们,您也无法在它们上移动页面图像的“视口”。 :-)
  • 嘿@pipitas - 非常感谢您的评论;这正是我正在寻找的那种确认!实际上,我认为您的评论更好地回答了 OP 问题;因此,如果您愿意,请从此评论中做出回答-我会接受(然后我的此答案发布可以保留作为补充,以供参考)。再次感谢 - 干杯!
【解决方案2】:

不,AFAIK,Ghostscript 本身并不能提供您想要的(“视口”)。这正是 ghostview 和 gv GUI 前端的用途。

Ghostscript 将 x11 设备(几乎)视为打印页面输出设备,并且打印页面确实具有固定大小,您也不能在其上移动页面图像的“视口”——除非您重新打印它们使用不同的设置:这就是不同值的-c "&lt;&lt;/PageOffset [-150 133]&gt;&gt; setpagedevice" 参数发挥作用的地方...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多