如何从图中提取名称

时间:2014-06-16 15:05:33

标签: regex grep eps

我正在使用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

1 个答案:

答案 0 :(得分:0)

首先,我想建议跟踪移动,即PostScript解释器放置文本的位置,但这可能很棘手,因为postscript是一种完全成熟的编程语言。另一种方法是注释您的.eps文件:

  1. 使用'打开'打开文件。命令
  2. 每个节目
  3. 一个。通过' currentpoint'获得当前的坐标。这会在堆栈上留下坐标

    湾'写'这两个值到您的文件中(可能是.csv?)和将要显示的文本

  4. 使用' closefile'
  5. 关闭文件

    通过PS解释器运行带注释的.eps文件。使用Unix'排序'在坐标上对生成的文件进行排序。命令,不要忘记两个键的-n选项(即y坐标和x坐标)。你完成了。