我正在使用unix机器。我有一个.eps
文件格式的名单。我知道我可以轻松地用grep显示行来提取我的名字,但它们与图中的顺序不同。有没有办法在保留订单的同时从图中提取名称?
示例:
/ArialMT-ISOLatin1 findfont
32 scalefont
setfont
0 0 0 setrgbcolor
newpath
0 0 moveto
(King James) show
grestore
grestore
grestore
0 0 0 setrgbcolor
[] 0 setdash
5 setlinewidth
0 setlinejoin
1 setlinecap
newpath
-1013.087 5437.645 moveto
-574.44269 5148.3467 lineto
stroke
0 0 0 setrgbcolor
[] 0 setdash
5 setlinewidth
0 setlinejoin
1 setlinecap
newpath
-801.10602 5042.689 moveto
-683.66547 4973.3872 lineto
stroke
0 0 0 setrgbcolor
[] 0 setdash
5 setlinewidth
0 setlinejoin
0 setlinecap
newpath
-764.50114 5103.5574 moveto
-789.24211 5063.1816 -813.3093 5022.3968 -836.69272 4981.22 curveto
stroke
gsave [0.8480481 -0.52991926 0.52991926 0.8480481 -3204.0386 27.010243]
concat
gsave [1 0 0 -1 -1554.9214 5600.4102] concat
gsave
/ArialMT-ISOLatin1 findfont
32 scalefont
setfont
0 0 0 setrgbcolor
newpath
0 0 moveto
(M. L. King) show
...
M.L.King应该先走到詹姆斯国王面前,但是我可以通过利用坐标系来做到这一点吗?
日Thnx
答案 0 :(得分:0)
首先,我想建议跟踪移动,即PostScript解释器放置文本的位置,但这可能很棘手,因为postscript是一种完全成熟的编程语言。另一种方法是注释您的.eps文件:
一个。通过' currentpoint'获得当前的坐标。这会在堆栈上留下坐标
湾'写'这两个值到您的文件中(可能是.csv?)和将要显示的文本
通过PS解释器运行带注释的.eps文件。使用Unix'排序'在坐标上对生成的文件进行排序。命令,不要忘记两个键的-n选项(即y坐标和x坐标)。你完成了。