爲什麼Ghostscript pswrite在輸出中編碼我的文本?考慮以下MWE:Ghostscript postscript pswrite是編碼文本
%!PS-Adobe-3.0
%%Title: mwe.ps
%%Pages: 001
%%BoundingBox: 0 0 595 842
%%EndComments
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
0 0 1 setrgbcolor
0 0 595 842 rectfill
1 0 0 setrgbcolor
247 371 100 100 rectfill
/Times-Roman findfont
72 scalefont
setfont
newpath
247 300 moveto
(Chris) show
showpage
保存此MWE到文件,並查看在GSView程序會顯示一個藍色的頁面,紅場和我的名字下面。現在使用以下命令行通過Ghostscript 9.06運行此文件:
"c:\Program Files\gs\gs9.06\bin\gswin64c.exe"^
-dSAFER -dBATCH -dNOPAUSE^
-sDEVICE=pswrite -sPAPERSIZE=a4 -r72 -sOutputFile=mwe_gs.ps mwe.ps
請參閱下面的Ghostscript輸出。有人能解釋一下這裏發生了什麼嗎?雖然兩個rectfill命令仍然顯而易見,但我的文本(Chris)已被編碼並且不再可區分。
是否有替代後記設備,它會保留我的文本嗎?
<snip>
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
%%BeginPageSetup
GS_pswrite_2_0_1001 begin
595 842 /a4 setpagesize
/pagesave save store 197 dict begin
1 1 scale
%%EndPageSetup
gsave mark
255 0 r6
0 0 595 842 rf
255 0 r3
247 371 100 100 rf
Q q
0 0 595 0 0 842^Y
255 0 r3
249 299 43 50 /5D
$C
,6CW56m1G"ZORNkWR*rB:!c2;9rlWTH="2^^[(q"h>cG<omZ2l^=qC[XbO:8_[?kji-8^"N#3q*
jhL~>
,
289 300 41 49 /0P
$C
4r?0p$m<EkK3,0>s8W-!s8W-!s8W,u]<1irI=*p=<t0>[email protected]<)>Is8K6,aTi'$~>
,
325 300 30 33 /5I
$C
49S"pc4+Rhs8W-!s8W)oqdD:saRZq[4+k%):]~>
,
349 300 24 49 /0T
$C
4q%Ms%;PqCs8W-!s8W%1_qkn/K?*sYFSGd:5Q~>
,
377 299 23 34 /5M
$C
-TQR7$&O'!K+D:XribR9;$mr4#[email protected],dX=Y&Llg+F`d^HC#%$"]~>
,
cleartomark end end pagesave restore
showpage
%%PageTrailer
%%Trailer
%%Pages: 1
%%EOF
注:這似乎是一個奇怪的活動,但我用探索的Ghostscript來「清理」從MATLAB應用PostScript輸出的想法..
正如你所看到的,你將很難得到任何清潔劑後記任何自動化的爲此,一旦輸入噪音。我認爲那裏唯一的選擇是,因爲tehere無法控制matlabe如何創建它的文件,所以完全爲了您的數學開發而切換到另一個棧。開源軟件可以讓你控制你的所有工作(包括mathematica算法本身,它們在matlab中是封閉的) – jsbueno 2013-02-14 11:05:45