Je construis actuellement une application de .NET et une de l'exigence est qu'elle doit convertir un dossier de pdf en dossier de XML. Quelqu'un at-il eu du succès en faisant cela? Si oui, qu'avez-vous utilisé?conversion de pdf en xml using. NET
Répondre
je me suis retrouvé à l'aide Byte Scout's PDF Extractor SDK. Cela fonctionne vraiment bien.
Vous pouvez utiliser une bibliothèque pdf telle que iTextSharp pour interroger votre fichier pdf. Une fois que vous avez accédé aux données dont vous avez besoin, vous pouvez facilement créer un fichier XML. Il y a une tonne d'info sur le web sur la façon de créer un fichier xml avec C# et d'autres langages .net. Si vous avez une question spécifique, il suffit de demander ;-)
J'ai fait ce genre de projet plusieurs fois auparavant.
Les choses que vous devez faire:
1.) Vérifiez ce projet Extract Text from PDF in C#. Le projet utilise ITextSharp.
- Il serait préférable que vous téléchargiez l'exemple de projet et que vous voyiez comment cela fonctionne. Dans ce projet, il montre comment extraire des données à partir d'un pdf. Découvrez la classe PDFParser, il a la fonction nommée ExtractTextFromPDFBytes (octet [] entrée) de cette fonction, vous pouvez voir comment le texte est extrait à partir du fichier pdf non compressé. N'oubliez pas d'inclure la DLL ITextSharp.
classe PDFParser
1 using System; 2 using System.IO; 3 using iTextSharp.text.pdf; 4 5 namespace PdfToText 6 { 7 /// 8 /// Parses a PDF file and extracts the text from it. 9 /// 10 public class PDFParser 11 { 12 /// BT = Beginning of a text object operator 13 /// ET = End of a text object operator 14 /// Td move to the start of next line 15 /// 5 Ts = superscript 16 /// -5 Ts = subscript 17 18 #region Fields 19 20 #region _numberOfCharsToKeep 21 /// 22 /// The number of characters to keep, when extracting text. 23 /// 24 private static int _numberOfCharsToKeep = 15; 25 #endregion 26 27 #endregion 28 29 #region ExtractText 30 /// 31 /// Extracts a text from a PDF file. 32 /// 33 /// the full path to the pdf file. 34 /// the output file name. 35 /// the extracted text 36 public bool ExtractText(string inFileName, string outFileName) 37 { 38 StreamWriter outFile = null; 39 try 40 { 41 // Create a reader for the given PDF file 42 PdfReader reader = new PdfReader(inFileName); 43 //outFile = File.CreateText(outFileName); 44 outFile = new StreamWriter(outFileName, false, System.Text.Encoding.UTF8); 45 46 Console.Write("Processing: "); 47 48 int totalLen = 68; 49 float charUnit = ((float)totalLen)/(float)reader.NumberOfPages; 50 int totalWritten= 0; 51 float curUnit = 0; 52 53 for (int page = 1; page = 1.0f) 59 { 60 for (int i = 0; i = 1.0f) 70 { 71 for (int i = 0; i 104 /// This method processes an uncompressed Adobe (text) object 105 /// and extracts text. 106 /// 107 /// uncompressed 108 /// 109 private string ExtractTextFromPDFBytes(byte[] input) 110 { 111 if (input == null || input.Length == 0) return ""; 112 113 try 114 { 115 string resultString = ""; 116 117 // Flag showing if we are we currently inside a text object 118 bool inTextObject = false; 119 120 // Flag showing if the next character is literal 121 // e.g. '\\' to get a '\' character or '\(' to get '(' 122 bool nextLiteral = false; 123 124 //() Bracket nesting level. Text appears inside() 125 int bracketDepth = 0; 126 127 // Keep previous chars to get extract numbers etc.: 128 char[] previousCharacters = new char[_numberOfCharsToKeep]; 129 for (int j = 0; j = ' ') && (c = 128) && (c 235 /// Check if a certain 2 character token just came along (e.g. BT) 236 /// 237 /// the searched token 238 /// the recent character array 239 /// 240 private bool CheckToken(string[] tokens, char[] recent) 241 { 242 foreach(string token in tokens) 243 { 244 if ((recent[_numberOfCharsToKeep - 3] == token[0]) && 245 (recent[_numberOfCharsToKeep - 2] == token[1]) && 246 ((recent[_numberOfCharsToKeep - 1] == ' ') || 247 (recent[_numberOfCharsToKeep - 1] == 0x0d) || 248 (recent[_numberOfCharsToKeep - 1] == 0x0a)) && 249 ((recent[_numberOfCharsToKeep - 4] == ' ') || 250 (recent[_numberOfCharsToKeep - 4] == 0x0d) || 251 (recent[_numberOfCharsToKeep - 4] == 0x0a)) 252 ) 253 { 254 return true; 255 } 256 } 257 return false; 258 } 259 #endregion 260 } 261 }
2.) Parse le texte extrait et de créer et le fichier xml.
Certains de mes soucis avant sont les pdf qui contiennent des liens cassés ou des URLs à l'intérieur des pages. Maintenant, juste au cas où vous êtes également préoccupé par cette question, l'expression régulière peut facilement résoudre votre problème, mais je vous suggère de traiter plus tard.
Maintenant, voici un exemple de code sur la façon de créer un fichier XML. Comprenez comment le code fonctionne plus tard, vous saurez comment gérer votre propre code.
try { //XmlDataDocument sourceXML = new XmlDataDocument(); string xmlFile = Server.MapPath(“DVDlist.xml”); //create a XML file is not exist System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(xmlFile, null); //starts a new document writer.WriteStartDocument(); //write comments writer.WriteComment(“Commentss: XmlWriter Test Program”); writer.Formatting = Formatting.Indented; writer.WriteStartElement(“DVDlist”); writer.WriteStartElement(“DVD”); writer.WriteAttributeString(“ID”, “1″); //write some simple elements writer.WriteElementString(“Title”, “Tere Naam”); writer.WriteStartElement(“Starring”); writer.WriteElementString(“Actor”, “Salman Khan”); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.Close(); } catch (Exception e1) { Page.Response.Write(e1); }
Hope it helps :)
Jetez un coup d'œil à pdf2Data.
http://itextpdf.com/blog/pdf2data-extract-information-invoices-and-templates
Il convertit les fichiers PDF en fichiers XML basés sur un modèle. Les modèles sont définis en utilisant des sélecteurs qui permettent à l'utilisateur final de spécifier des choses comme «sélectionner le tableau sur la 2ème page» ou «sélectionner le texte écrit dans cette police particulière» et ainsi de suite. N'oubliez pas, je suis affilié à iText, même si ma connaissance du PDF est vaste, je peux être considéré comme parti pris envers les produits iText (vu que je les aide à les développer).
vous devez dire que vous êtes affilié à itext. – juFo
J'ai mentionné mon affiliation. –
- 1. Conversion ASP.Net en PDF
- 2. Conversion en PDF
- 3. Html au pdf conversion open source open source en .net
- 4. Conversion aspx en pdf
- 5. Conversion de Freemarker en PDF
- 6. Conversion de pdf en texte
- 7. Conversion de PDF en chaîne
- 8. Conversion de PDF en HTML
- 9. Conversion de fichiers HTML en format PDF
- 10. Datatable to XML using LINQ
- 11. utilisation de 'using' dans .NET
- 12. Conversion de pdf en Pdf/a en Java
- 13. Conversion de html en pdf en php?
- 14. XML compare using xquery
- 15. XML using in C#
- 16. Conversion JTable en fichier PDF
- 17. java excel en pdf conversion
- 18. Cacher l'URL de pdf using JS
- 19. Conversion d'UIImage en fichier PDF
- 20. Servlets using XML
- 21. parse xml using jsoup
- 22. Service de conversion PDF
- 23. Conversion Word XML en RTF
- 24. Conversion vidéo en .net
- 25. Conversion de DOCX avec des balises de document XML et structurées en PDF
- 26. convertir le fichier xml en pdf C#
- 27. C#. Conversion de document en PDF
- 28. Conversion de PDF en PCL5 sous Windows?
- 29. Conversion de PDF délimité gênant en Excel
- 30. Conversion de la vue CodeIgniter en PDF
Quel type de pdf essayez-vous de "convertir"? Les fichiers PDF ne sont pas "structurés", donc en général, il est difficile d'en extraire des informations.Je pense que vous devriez donner plus de détails sur ce que vous essayez d'accomplir. – yms