我使用RedMon(重定向端口监视器),HP Universal Driver PS和GhostScript拦截文档打印。
但是,对于以下情况:
档案PDF - > HP Universal Driver PS - > RedMon - > PostScript文件** - > GhostScript创建文件printed.pdf *。
*无法从PDF文件中提取文字: gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE = txtwrite -sOutputFile = output.txt printed.pdf
** PostScript文件创建为压缩文件,无法提取文本。
问题是?
将PDF发送到打印机时,是否可以在不压缩的情况下创建PostScript文件?
观察:Printed.pdf - >图像(TIFF) - > Tesseract(OCR) - >文本文件......工作!但它很慢。
答案 0 :(得分:0)
正如Dweeberly在评论中所说,如果你想从PDF文件中提取文字,请先打印不。特别是不要把它变成PostScript。
PDF文件可以在(可选)中包含ToUnicode CMaps,这些文件可以提供可靠的文本。 PostScript不支持这些,因此如果您从PDF创建PostScript文件(无论您使用什么方式创建hte PostScript),信息都会丢失。
此外,PostScript程序通常会使用子集字体,非标准编码和对文本的其他修改来创建,这些修改将难以或不可能从中提取文本。
由于Ghostscript可以接受PostScript 和 PDF作为输入,因此在将PDF转换为txtwrite设备之前将PDF转换为PostScript没有任何价值。您所做的只是让设备的生活更加艰难,并丢弃有用的信息。
只需使用Ghostscript和txtwrite设备,并将PDF文件作为输入。
当然OCR可以工作,因为它扫描文本的形状以确定角色,但是它很慢。另一方面,它将使用PDF文件,其中只包含文本图像,而不是txtwrite设备赢得的实际文本。