2017-09-29 5 views
0

J'essaie de charger un fichier PDF pour l'extraire en tant qu'image. J'ai essayé quelques paquets en Python, par exemple PyPDF2, mais chaque fois que je rencontre le message "Impossible de trouver la table xréf à l'emplacement spécifié".Impossible de trouver la table x-ref PDF

Je n'ai aucune expérience avec les fichiers PDF et Python, donc des conseils seraient appréciés. Un fichier exemple est donné ici:

https://beta.companieshouse.gov.uk/company/00002404/filing-history

où le PDF est le lien « complet » des comptes.

Un grand merci d'avance!

Répondre

1

Le PDF en question est brisé: le décalage de la table de références croisées et la plupart des décalages d'objet sont complètement faux.

E.g. le PDF indique que la table de références croisées commence à la position de fichier 24732 mais commence réellement à la position 1594356. Et l'entrée de la table de référence de l'objet 208 indique qu'elle est à la position 24713 alors qu'elle est effectivement à 1594337.

message d'erreur observé "Impossible de trouver la table xréf à l'emplacement spécifié" est complètement correct.

Les premiers décalages dans la table sont corrects, cependant, à première vue jusqu'au premier flux d'images.

Il semble que le logiciel produisant le PDF n'a pas compté le contenu du flux d'images lors de la détermination des décalages d'objet. Ou il a fallu un modèle avec de très petites images d'espace réservé et remplacé les flux d'images de ces petites images par des flux beaucoup plus importants sans mettre à jour les décalages de références croisées.

+0

Merci d'avoir jeté un œil. Y at-il une solution de contournement pour moi ici? Je veux juste le convertir en une image pour extraire du texte. –

+1

Ouvrez le fichier PDF dans Adobe Reader. Lorsque vous le fermez à nouveau, Adobe Reader vous demande s'il doit le sauvegarder. La copie enregistrée est réparée. (Il se peut cependant qu'Adobe Reader enregistre le fichier en utilisant les fonctions disponibles dans PDF 1.5, il existe encore des outils et des bibliothèques qui ne peuvent pas gérer ces fonctions.) Vous pouvez également copier les images d'Adobe Reader dans un graphique programme de votre choix. – mkl

+0

Merci, j'apprécie les conseils :) Seriez-vous capable de savoir s'il y aurait une bonne façon d'automatiser cela? Je pourrais travailler avec des milliers de fichiers similaires. –

2

Vous pouvez utiliser QPDF pour cela car il a une méthode de récupération de table xréf défectueuse.

Exécutez simplement qpdf broken.pdf repaired.pdfbroken.pdf est le PDF d'entrée rompu et repaired.pdf est le nouveau nom de fichier.

Je l'ai essayé avec le fichier PDF auquel vous avez lié et cela a bien fonctionné.

+0

Impressionnant - juste ce que je cherchais. Je vous remercie! –

+0

Fonctionne vraiment bien. Merci! – jorgeas80