2009-07-07 9 views
6

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

Cela nécessiterait-il d'écrire une application ou y a-t-il un moyen automatisé de le faire?

+0

Pas de réponse précise ici, Fermin, avez-vous eu les outils pour extraire? – CallMeLaNN

+1

@CallMeLaNN - Mon entreprise a conclu un accord avec la 3ème partie qui fournit les données de sorte que je n'ai pas été obligé d'écrire quoi que ce soit pour le faire. – Fermin

Répondre

4

Tout dépend de la façon dont ils ont inclus les données dans le PDF. En général, il y a deux scénarios possibles ici:

  1. Les données sont juste un objet texte dans un fichier PDF. Vous devrez utiliser un outil pour extraire le texte du fichier PDF, puis l'insérer dans votre base de données.

  2. Les données sont contenues dans les champs de formulaire d'un fichier PDF. Vous devrez utiliser un outil pour extraire les données des champs de formulaire et l'insérer dans votre base de données.

Espérons que le scénario n ° 2 s'applique à vous parce que c'est précisément pour cela que les formulaires PDF sont conçus. Le scénario n ° 1 est vraiment un hack que vous utiliseriez uniquement si vous n'aviez pas d'autres options. L'extraction de texte en clair à partir d'un fichier PDF n'est pas aussi simple et précise que vous pourriez l'imaginer.

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

Serait-ce besoin d'écrire une application ou est-il un moyen automatisé de faire cela?

Oui, ces deux options nécessitent l'écriture d'une application ou l'achat d'une application. Si vous écrivez votre propre application, vous devez trouver une bibliothèque PDF tierce qui prend en charge la récupération des données à partir des champs de formulaire ou l'extraction de texte à partir d'un fichier PDF.

0

Je pense que vous devrez écrire une application pour cela. Cette question parle de extracting data from PDF. Après cela, vous pouvez exporter les données au format Excel afin que vous puissiez conserver le format existant.

0

Rechercher des informations sur "Grattage" les données du PDF. Je crois qu'Adobe a quelques outils qui vous permettent de faire ceci pour le texte simple mais je ne les ai pas employés. Honnêtement, je ferais tout ce que vous pouvez pour obtenir ces données dans un format brut auprès de votre fournisseur.

5

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

Cependant, si vous faites voulez extraire les données du PDF, je l'ai utilisé iText et trouvé qu'il était très puissant, fiable et surtout - sans . Il vient en Java et les saveurs .Net - iTextSharp est la version .Net. Il vous permet de manipuler par programmation les documents PDF et il expose le contenu du PDF à l'application que vous écrivez.

+2

itext/itextsharp puisque la version 5.0 n'est plus gratuite – Bobrovsky

1

En utilisant iTextSharp, 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()); 
    } 
3

Disclaimer: Je suis affilié aux fabricants de ByteScout PDF Extractor SDK outil

Je voulais juste partager quelques scénarios de la vie réelle supplémentaires pour l'extraction de données texte à partir de PDF :

  1. Image numérisée sans texte pouvant être recherché: doit être traitée par un moteur OCR (par exemple Tesseract from Google)
  2. XFA forms: c'est le sous-ensemble de PDF qui est principalement supporté par les outils Adobe. Mais les données peuvent être extraites en tant que données XML avec des outils de traitement PDF de bas niveau comme iTextSharp ou des outils similaires.
  3. ZUGFeRD fichiers PDF qui ne sont que des documents PDF avec la copie des données de formulaire ci-joint sous forme de fichier XML (qui peut être extrait avec des outils comme this)
  4. Texte mal codé par certains générateurs de PDF (peut être restauré via le moteur OCR un taux d'erreur acceptable cependant).
Questions connexes