こんにちは、ここで解析するときにこのエラーが発生しました:エラーのためにページを無視します:「TableBlock」オブジェクトには属性「lines」がありません。試してみたところ、0.5.0を解析できることがわかりましたが、効果はそれほど良くありません(ただし、無害です)が、現在使用している0.5.1バージョンでは上記のエラーが発生します。バージョン反復プロセス中にコードが変更されたために新しい問題が発生したかどうかはわかりません。
テストファイルをメールボックスに送信しました。
ありがとう!
質問をして、テスト文書を提供していただきありがとうございます。
0.5.1
バージョンでは、ネストされたテーブルのサポートが改善され、元々はテキストブロックのみであった領域が作成され、テキストブロックとテーブルブロックの両方が存在する可能性があるため、テキストブロックのみの以前のデフォルト処理では機能しません。フォームで適用します。変更方法は、テキストブロックを追加するかどうかの判断を追加することです。
Shape.py
ファイルを見つけます。>>> import pdf2docx
>>> pdf2docx.shape.Shape.__file__
semantic_type()
メソッド(89行目あたり)を見つけ、以下のコメントに従って行を追加しますfor block in blocks:
if not block.is_text_block(): continue # 增加这一行判断
# not intersect yet
if block.bbox.y1 < self.bbox.y0: continue
# check it when intersected
rect_type = self._check_semantic_type(block)
if rect_type != RectType.UNDEFINED: break
# no intersection any more
if block.bbox.y0 > self.bbox.y1: break
問題を指摘していただきありがとうございます。これら2つの問題の最近の修正は、次のバージョンに追加されます。
さらに、 0.5.0
と0.5.1
の変換効果を比較したところ、あまり改善されていないことがわかりました。 PDFからWordへの変換、テキストの抽出、書式設定の維持、またはテキストの編集の容易化に対するあなたのニーズが何であるかわかりませんか?一部のPDFツール(PDF-xchange、Foxitなど)でもテキストを直接変更できます。これは比較的便利です。そのため、 pdf2docx
ライブラリの方向性についてはよくわかりません。ありがとう。
ありがとう、私はちょうどそれを試しました、そしてそれは私の問題を完全に解決しました。
私の現在の要求は、特定の種類のドキュメントをバッチ変換し、可能な限りフォーマットを保持することです。単にアクロバットや他のツールを使用するのはもっと面倒です。だから私はそれをコードで解決したいと思います。堅実なフレームワークを見ることができると思います。pdf2docxライブラリは比較的近いライブラリだと思います。将来的には、ユーザーによる自己変更(jsonの変更など)の機能を高めることができると思います。ファイルの種類やニーズの種類によって、誰もが自分の状況に応じていくつかのパラメーターや条件を最適化できます。
とても良い提案、ありがとう。