2015-07-13 77 views
0

我有这样的代码,其转换PDF到文本文件:Ghostscript的转换PDF文本,并保持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

没有一个“表格式”以PDF,只是一个文本和位置的序列。 txtwrite可能的输出格式之一将尝试创建一个Unicode文本文件,其中间距由空格字符重新创建。请注意,这是假设一个固定间距的字体,所以如果你不使用它,它将不会工作。

没有看到输入的PDF文件,它不可能做出任何猜测,为什么这不会产生你期望的输出。

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

相关问题