我正在尝试将ghostscript用于其预期目的,以解释postscript文件和输出png.我想要一个命令,将单个特定页面从多页ps文件转换为单个png.我已经在infile是pdf文件的情况下完成了这个,但是当infile是ps时却没有.
此行将ps转换为由连接的png文件组成的文件.
gs -dSAFER -dBATCH -sDEVICE=png256 -r96x96 -sOutputFile=out.png in.ps
这将从pdf中获取单个特定页面并将其转换为png.
gs -q -dSAFER -dBATCH -dFirstPage=2 -dLastPage=2 -sDEVICE=png256 -SOut=fileout.png in.pdf
简单地将dFirstPage=标志放在后脚本输入案例中什么都不做.输出与标志不存在的输出相同.
我想知道是否有一种标准方法可以将postscript文件包含到另一个文件中。例如,假设我有一个由第三方程序生成的数据文件:
%!PS
\mydata [ 1 2 3 4 5 6
(...)
1098098
1098099
] def
Run Code Online (Sandbox Code Playgroud)
我想将它包含到主要的 PS 文档中
%PS
\processData
{
mydata { (..) } foreach
}
(...)
(data.ps) include %<=== ???
Run Code Online (Sandbox Code Playgroud)
谢谢
我放了文本示例使用以下 PostScript 代码
\n\n<<\n /EndPage {\n exch pop 2 lt { \n gsave\n /Arial-Bold 120 selectfont\n .5 setgray 100 100 moveto 45 rotate (Sample) show\n grestore\n true}\n {false}\n ifelse\n } bind\n>> setpagedevice\nRun Code Online (Sandbox Code Playgroud)\n\n这会将文本置于 [100; 100]位置。但我需要将此文本居中(会计文本被旋转)。
\n\n如何在页面中央对齐45\xc2\xb0 旋转文本?
\n我在使用 ps2pdf 将 postscript 转换为 pdf 时遇到了一个奇怪的问题。这是导致问题的最小代码片段。
/Times findfont 40 scalefont setfont
-1 1 scale
15 15 moveto (R) show
Run Code Online (Sandbox Code Playgroud)
这应该显示字母,水平反射。当我查看附言时,这就是我所看到的。但是如果我采用上面的代码,将其保存为文件“bad.ps”并在其上运行以下命令
ps2pdf bad.ps
Run Code Online (Sandbox Code Playgroud)
我得到一个垂直反射的字母 R。
其他字体也有同样的问题。但是当我只画线等时,问题就消失了。有任何想法吗?
如何在 postscript 中设置页面大小?如何将文档旋转到宽度?. .
%!
%% Example 1
newpath
100 200 moveto
200 250 lineto
100 300 lineto
2 setlinewidth
stroke
showpage
Run Code Online (Sandbox Code Playgroud)
谢谢你。
ImageMagick 报告该文件的大小如下:
03072004.TIF EPT 1251x403=>1252x401 1252x401+0+0 16-bit ColorSeparation DirectClass 2.008MB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚尺寸 1252x401 是如何计算的。我假设边界框定义了图像的尺寸(因为它是少数强制性元数据属性之一)。但事实显然并非如此。那么这些值的确切含义是什么呢?以及如何计算宽度和高度?
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Adobe Photoshop Version 4.0.1
%%Title: 03072004.TIF
%%CreationDate: 16.04.1999 12:18 Uhr
%%BoundingBox: 0 0 287 92
%%HiResBoundingBox: 0 0 286.8535 92.4076
%%SuppressDotGainCompensation
%%DocumentProcessColors: Cyan Magenta Yellow Black
%%EndComments
%%BeginProlog
%%EndProlog
%%BeginSetup
%%EndSetup
%ImageData: 1251 403 8 4 1 1251 1 "beginimage"
%BeginPhotoshop: 5828
%3842494D040400000000001B1C0200000200021C0278000F303330373230300D
Run Code Online (Sandbox Code Playgroud)
但请注意,我的一些示例文件%%BoundingBox定义了 ImageMagick(和其他工具)报告的尺寸。
我正试图将我的头放在立即执行和延迟执行上。据我所知,解释器维护一个标志,知道它是否处于延迟执行状态。
过程的延迟执行可能是因为名称查找返回了一个过程。
现在我试图找出控制这个解释器标志的类型、动作或操作。
例如,下面的这段代码在末尾有一个立即评估的名称,它返回一个过程。但是这个过程是被推送的,而它是可执行的(xcheck):
/setdata
{
/a 1 def
/b 0 def
/foo
a 0 ne
b 0 ne
and
def
{ foo false and }
} def
//setdata
Run Code Online (Sandbox Code Playgroud)
我知道有一个特殊的规则:
直接出现的过程(作为从文件中读取的程序的一部分,或作为内存中某个较大过程的一部分)通常是定义或结构的一部分,例如条件,显式地对过程进行操作。但是间接获得的过程——例如,作为查找名称的结果——通常是为了执行。PostScript 程序可以在必要时覆盖这些语义。
我知道如果你直接遇到一个过程,你必须推送它(即使它是可执行的)。(立即计算的名称返回一个过程,该过程直接遇到,因此应将其推送到操作系统。)
现在,如果我想在代码中在解释器中实现这个逻辑,我可以想到这样的事情:
如果我有一个字面名称查找,设置解释器的 DeferredFlag = true; 现在我怎么知道延迟执行何时结束?如果遇到“def”名称,我可以进行硬编码,但可能还有其他名称。
(+ 万一过程嵌套在正在执行的过程中。等等...)
我找不到一种方法来控制解释器中的 DeferredFlag 以了解当前的执行模式。
希望问题很清楚。
更新:
我尝试调试的一些额外代码示例没有成功。
代码1:
/foo { 2 3 add } def
foo
% result: 5
Run Code Online (Sandbox Code Playgroud)
代码2:
/foo { 2 3 add } def
//foo
% result: { 2 3 add }
Run Code Online (Sandbox Code Playgroud)
代码3:
/foo { 2 3 …Run Code Online (Sandbox Code Playgroud) 我想提取postscript图像文件中包含的文本信息(我的轴标签的标题).这些图像是用pgplot生成的.我在Ubuntu上尝试过ps2ascii和ps2txt,但它们没有产生任何有用的结果.有谁知道另一种方法?
谢谢
我有一个相对复杂的分类树,我正在尝试输出.由此产生的postscript输出看起来非常混乱.
> fit = rpart(virility ~ friend_count + recip_count + twitter_handles + has_email +
has_bio + has_foursquare + has_linkedin + auto_tweet +
interaction_visibility + site_own_cnt + site_rec_cnt + has_url +
has_linkedin_url + lb_cnt, + mob_own_cnt + mob_rec_cnt +
twt_own_cnt + twt_rec_cnt, method="class", data=vir)
> fit
n= 9704
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 9704 3742 virile (0.39970092 0.60029908)
2) recip_count< 15.5 9610 3159 mule (0.52005469 0.47994531)
4) site_own_cnt< 0.5 7201 1372 mule (0.65423387 0.34576613) …Run Code Online (Sandbox Code Playgroud) 我在libreoffice和goffice下找到了乳胶作为保存格式和绘图框架.
我也遇到过djvu作为pdf的替代品,它使用latex而不是postscript.现在,postscript是adobe的flash动画基础,因此在脚本下标记了矢量图形.
所以对我来说,乳胶看起来像是postscript的替代品.或者乳胶可以替代后记吗?
postscript ×10
ghostscript ×2
image ×2
text ×2
center ×1
eps ×1
include ×1
latex ×1
linux ×1
metadata ×1
pdf ×1
preprocessor ×1
python ×1
r ×1
rotation ×1
typesetting ×1