我有这个代码将PDF转换为文本文件:
gswin32c -dBATCH -dNOPAUSE -dSAFER -dDELAYBIND -dWRITESYSTEMDICT
-dSIMPLE -sDEVICE=txtwrite -dTextFormat=2 -dFirstPage=1 -dLastPage=1
-sOutputFile=C:\out.txt C:\in.pdf
它工作得很好,唯一没有保留PDF表格格式。
示例:
在PDF文件中:
Type From Name Name2 Code Week
Regular 30/03/15 KNOWLES, BEN HOOT KNOWLES, ANGELA 367-739-746 80.00
Regular 30/03/15 RICHARDS, COLE ROBERT HARRIS, BRADIE 401-844-307 108.00
Regular 30/03/15 SKEELS, MATT BISHOP, JASON GREGSON 413-980-291 112.00
将其转换为文本文件后,文本将包含如下:
Type From Name Name2 Code Week
Regular30/03/15KNOWLES, BENHOOT KNOWLES, ANGELA367-739-74680.00
Regular30/03/15RICHARDS, COLEROBERT HARRIS, BRADIE401-844-307108.00
Regular30/03/15SKEELS, MATTBISHOP, JASON GREGSON413-980-291112.00
我需要它来保持格式化。知道如何保持格式化吗?
我在Windows 7机器上使用Ghostscript gswin32c
,版本是9.16。
此外,我愿意接受其他方式存档的建议。
干杯
答案 0 :(得分:0)
PDf中没有“表格格式”,只是一系列文字和位置。 txtwrite的一种可能的输出格式是尝试创建Unicode文本文件,其中间距由空格字符重新创建。请注意,这假定为固定间距字体,因此如果您不使用它,它将无法正常工作。
如果没有看到输入的PDF文件,就不可能猜出为什么它没有像你期望的那样产生输出。
您可以自己解决此问题。首先,因为还有其他潜在的输出格式,其中一种是类似XML的格式,它发出文本序列和位置,您可以使用它并自己重新创建格式(甚至只是直接存档)。或者,由于Ghostscript是开源的,您可以自己阅读和调试源代码并找出PDF文件导致问题的原因。