0

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

フォーマットを維持するために必要です。フォーマットを維持する方法はありますか?

Ghostscript gswin32cWindows 7 マシンで使用しています。バージョンは 9.16 です。

また、他の方法でアーカイブするための提案も受け付けています。

乾杯

4

1 に答える 1

0

PDF には「表形式」はなく、テキストと位置のシーケンスだけです。txtwrite の可能な出力形式の 1 つは、Unicode テキスト ファイルを作成しようとするもので、空白文字によって間隔が再作成されます。これは固定ピッチ フォントを想定しているため、固定ピッチ フォントを使用しないとうまく動作しないことに注意してください。

入力 PDF ファイルを見ないと、期待どおりに出力が生成されない理由を推測することはできません。

この問題は自分で取り組むことができます。まず、他の潜在的な出力形式があるため、そのうちの 1 つはテキスト シーケンスと位置を出力する XML に似た形式です。それを使用して、自分で形式を再作成できます (または直接アーカイブすることもできます)。別の方法として、Ghostscript はオープンソースであるため、自分でソースを読んでデバッグし、PDF ファイルが問題を引き起こしている理由を突き止めることができます。

于 2015-07-13T07:05:49.840 に答える