是否可以从postscript文件(从带有可读文本和图像的pdf文档创建)创建tiff文件到没有图像和文本的tiff文件中?
喜欢添加一个maxbuffer,这样图像就会被删除,只留下文字吗?
如果文本周围的方框和线条也可以删除,那就太棒了。
祝你好运!
答案 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提供了一种不同的方法,不需要像素处理。