Ghostscript将pdf转换为文本并保留PDF文件表格式

时间:2015-07-13 04:03:27

标签: pdf ghostscript ghostscriptsharp

我有这个代码将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。

此外,我愿意接受其他方式存档的建议。

干杯

1 个答案:

答案 0 :(得分:0)

PDf中没有“表格格式”,只是一系列文字和位置。 txtwrite的一种可能的输出格式是尝试创建Unicode文本文件,其中间距由空格字符重新创建。请注意,这假定为固定间距字体,因此如果您不使用它,它将无法正常工作。

如果没有看到输入的PDF文件,就不可能猜出为什么它没有像你期望的那样产生输出。

您可以自己解决此问题。首先,因为还有其他潜在的输出格式,其中一种是类似XML的格式,它发出文本序列和位置,您可以使用它并自己重新创建格式(甚至只是直接存档)。或者,由于Ghostscript是开源的,您可以自己阅读和调试源代码并找出PDF文件导致问题的原因。