7
votes

Comment extraire des données d'un PDF?

Mon entreprise reçoit des données d'une société externe via Excel. Nous exportons cela en SQL Server pour exécuter des rapports sur les données. Ils changent maintenant au format PDF, il existe un moyen de porter de manière fiable les données du PDF et d'insérer dans notre base de données SQL Server 2008?

Cela nécessiterait-il d'écrire une application ou existe-t-il une manière automatisée de le faire?


2 commentaires

Pas de réponse précise ici, FERMIN, avez-vous reçu les outils à extraire?


@CallMelann - Ma société est devenue un accord avec la tierce partie qui fournit les données, donc à la fin, je n'étais pas obligé d'écrire quoi que ce soit pour le faire.


6 Réponses :


0
votes

Je pense que vous devrez écrire une demande pour cela. Cette question parle de Extraire des données de PDF . Après cela, vous pouvez exporter les données sur le format Excel afin que vous puissiez conserver le format Import existant.


0 commentaires

-1
votes

Recherchez des informations sur "racler" les données du PDF. Je crois qu'Adobe a quelques outils qui vous permettent de le faire pour un texte simple, mais je ne les ai pas utilisés.

Honnêtement, j'essaierais de faire tout ce que vous pouvez pour obtenir ces données dans un format RAW à partir de votre fournisseur.


0 commentaires

5
votes

Comme déjà mentionné - vous devrez écrire une application pour le faire, mais idéalement, vous seriez en mesure d'obtenir les données brutes de la société externe plutôt que de devoir traiter le PDF.

Cependant, si vous do voulez extraire les données du fichier PDF, j'ai utilisé ITEXT et l'a trouvé très puissant, fiable et surtout - libre . Il est livré en java et .net flavors - ITEXTSTHARP est la version .NET. Il vous permet de manipuler de manière programmable les documents PDF et il exposera le contenu du PDF à l'application que vous écrivez.


1 commentaires

ITEXT / ITEXTSTHARP depuis la version 5.0 n'est plus libre



4
votes

Tout dépend de la manière dont ils ont inclus les données au sein du PDF. De manière générale, il y a deux scénarios possibles ici:

  1. Les données ne sont qu'un objet texte dans un fichier PDF. Vous aurez besoin d'utiliser un outil pour extraire le texte du PDF, puis insérez-le dans votre base de données.

  2. Les données sont contenues dans les champs de formulaire dans un PDF. Vous aurez besoin d'utiliser un outil pour extraire les données des champs de formulaire et insérez-le dans votre base de données.

    Scénario espérons que # 2 s'applique à vous parce que c'est précisément ce que les formulaires PDF sont conçus pour. Scénario # 1 n'est vraiment qu'un piratage que vous utilisiez seulement si vous n'aviez pas d'autres options. Extraire du texte brut d'un PDF n'est pas aussi facile ou précis que vous pourriez vous attendre.

    Si vous recevez un formulaire PDF, tout ce que vous avez à faire est de faire correspondre les bons champs du formulaire PDF avec les champs correspondants de votre base de données, puis sucer les données. Ce processus pourrait être entièrement automatisé si vous avez écrit votre propre application.

    Cela nécessiterait-il d'écrire une application ou Y a-t-il une manière automatisée de faire Ceci?

    Oui, ces deux options nécessiteraient d'écrire une application ou d'acheter une application. Si vous écrivez votre propre application, vous devrez trouver une bibliothèque PDF tiers qui prend en charge la récupération de données de champs de formulaire ou extraire du texte à partir d'un fichier PDF.


0 commentaires

1
votes

Utilisation ITEXTSTHARP, procédez comme suit

using System;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using iTextSharp.text.pdf;

   protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            String FilePath = @"GetFilePath";
            StringBuilder sb = new StringBuilder();

            PdfReader reader = new PdfReader(FilePath);           
            PdfStamper myStamp = new PdfStamper(reader, new FileStream(FilePath + "_TMP",    FileMode.Create));
            AcroFields form = myStamp.AcroFields;

            if (form.GetField("GetFieldIdFromPDF") != null)
               sb.Append(form.GetField("GetFieldIdFromPDF").ToString());
   }


0 commentaires

4
votes

Disclaimer: je suis affilié avec les fabricants de byTescout PDF Extractor SDK outil

Je voulais juste partager certains scénarios réels supplémentaires pour l'extraction de données texte à partir de PDF:

  1. image numérisée sans texte interrogeable: doit être traitée par OCR Engine (comme Gratuit Tesseract de Google)
  2. Formulaires XFA : C'est le sous-ensemble de PDF qui est pris en charge principalement par Adobe Tools. Mais les données peuvent être extraites sous forme de données XML avec des outils de traitement PDF de faible niveau tels que iTextShaparpe ou des outils similaires. < / li>
  3. ZUGFERD fichiers PDF qui ne sont que des documents PDF avec la copie de Données de formulaire jointes en tant que fichier XML (pouvant être extraite avec des outils tels que this )
  4. texte incorrectement codé par certains générateurs PDF (peut être restauré via le moteur OCR avec un taux d'erreur acceptable si).

0 commentaires