Pdf2docx: Ignorer la page en raison d'une erreur : l'objet 'TableBlock' n'a pas d'attribut 'lines'

Créé le 4 févr. 2021  ·  5Commentaires  ·  Source: dothinking/pdf2docx

Bonjour, j'ai rencontré cette erreur lors de l'analyse ici : Ignorer la page en raison d'une erreur : l'objet "TableBlock" n'a pas d'attribut "lignes". Je viens de l'essayer et j'ai trouvé que 0.5.0 peut être analysé, mais l'effet n'est pas particulièrement bon (mais il est inoffensif), mais la version 0.5.1 que j'utilise maintenant aura l'erreur ci-dessus. Je ne sais pas si certains changements de code au cours du processus d'itération de version ont causé de nouveaux problèmes.

J'ai envoyé le fichier de test dans votre boîte aux lettres.

Merci!

bug

Tous les 5 commentaires

Merci de poser des questions et de fournir des documents de test.

0.5.1 a apporté des améliorations dans la prise en charge des tableaux imbriqués, résultant en des zones qui n'étaient à l'origine que des blocs de texte, et il peut y avoir à la fois des blocs de texte et des blocs de tableau, de sorte que le traitement par défaut précédent pour les blocs de texte uniquement ne fonctionne pas. appliquer dans le formulaire. La méthode de modification consiste à ajouter le jugement d'ajout ou non d'un bloc de texte :

  1. Trouvez le fichier Shape.py :
>>> import pdf2docx
>>> pdf2docx.shape.Shape.__file__
  1. Repérez la méthode semantic_type() (autour de la ligne 89), ajoutez une ligne selon le commentaire ci-dessous
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

Merci encore d'avoir signalé le problème, les correctifs récents de ces deux problèmes seront ajoutés à la prochaine version.

De plus, nous avons comparé les effets de conversion de 0.5.0 et 0.5.1 , et constaté qu'il n'y a pas beaucoup d'amélioration. Je ne sais pas quels sont vos besoins en matière de conversion de pdf en mot, d'extraction de texte, de mise en forme ou de facilitation de l'édition de texte ? Certains outils PDF (PDF-xchange, Foxit, etc.) peuvent également modifier directement le texte, ce qui est relativement plus pratique. Je ne suis donc pas sûr de la direction de la bibliothèque pdf2docx . Merci.

Merci, je viens d'essayer et cela a parfaitement résolu mon problème.

Ma demande actuelle porte sur la conversion par lots de types de documents spécifiques, puis sur la préservation du format autant que possible. Il sera plus difficile d'utiliser simplement Acrobat ou d'autres outils. Je veux donc le résoudre avec du code. Je pense que vous pouvez jeter un œil au framework solide, la bibliothèque pdf2docx, je pense, est une bibliothèque relativement proche. A l'avenir, je pense qu'il est possible d'augmenter la fonction d'auto-modification par les utilisateurs (comme changer de json).Pour différents types de fichiers et différents types de besoins, chacun peut optimiser certains paramètres et conditions en fonction de ses propres circonstances.

Très bonne proposition, merci.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

startxc picture startxc  ·  4Commentaires

Jalkhov picture Jalkhov  ·  5Commentaires

JoHnTsIm picture JoHnTsIm  ·  7Commentaires

echan00 picture echan00  ·  9Commentaires

ipython picture ipython  ·  3Commentaires