创建一个只包含文本的tiff,并且没有带有ghostscript的postscript文件中的图像

时间:2011-06-22 09:15:53

标签: tiff ghostscript postscript

是否可以从postscript文件(从带有可读文本和图像的pdf文档创建)创建tiff文件到没有图像和文本的tiff文件中?

喜欢添加一个maxbuffer,这样图像就会被删除,只留下文字吗?

如果文本周围的方框和线条也可以删除,那就太棒了。

祝你好运!

2 个答案:

答案 0 :(得分:3)

您可以重新定义各种“图像”运算符,以便它们不执行任何操作:

/image {
 type /dicttype eq not { % uses up argument, only one if dict form
   pop pop pop pop   % remove the arguments for the non-dictionary form.
 } ifelse
} bind def

/imagemask {
 type /dicttype eq not { % uses up argument, only one if dict form
   pop pop pop pop   % remove the arguments for the non-dictionary form.
 } ifelse
} bind def

/colorimage {
  type /integertype eq {
    pop                  % multi
    0 1 3 -1 roll {pop} for % one for each colour component
  } {
    pop pop pop
  } ifelse
} bind def

将其另存为文件,并将文件添加到GS调用中。

您可以通过重新定义笔画操作符来删除线条:

/stroke {
  newpath
} bind def

rectstroke更难,我建议你阅读PLRM,如果你需要那个。

也可能是填充操作员:

/fill {
  newpath
} bind def

/eofill {
  newpath
} bind def

小心!某些文本不是使用文本“show”运算符绘制的,而是由线条构建或绘制为图像。如果您重新定义如上所示的运算符,这些技术将被取消。

请注意,PDF解释器通常不允许重新定义运算符,因此您可能首先必须使用ps2write设备将PDF文件转换为PostScript,然后通过GS运行生成的文件以获取TIFF文件。

答案 1 :(得分:1)

gs -sDEVICE=bitrgbtags -o out.tags <myfile>

将创建带有标签的ppm文件 - 标签将每个像素标记为文本,矢量,图像等。

然后你可以使用ghostpdl / tools / GOT中的C程序来处理图像。听起来你想要编写一个新的C程序来将每个非文本像素设置为背景颜色或者可能只是白色,这在GOT子目录中的示例C程序作为指南(如果您是程序员)是相当简单的。然后你将ppm转换为tiff。 Ken提供了一种不同的方法,不需要像素处理。