【问题标题】:How to Convert pdf file to datatable如何将pdf文件转换为数据表
【发布时间】:2011-05-11 06:28:57
【问题描述】:

有什么方法可以将 PDF 文件转换为 DataTable? PDF 文件主要由表格组成,任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net pdf datatable


    【解决方案1】:

    如果 PDF 包含标记的内容(您可以在我的博客文章 http://www.jpedal.org/PDFblog/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/ 中查看如何找到它),您可以从 PDF 文件中提取它。否则,您将需要提取文本并尝试猜测结构。

    【讨论】:

      【解决方案2】:
      using iTextSharp.text;
      using iTextSharp.text.pdf;
      using iTextSharp.text.pdf.parser;
      
       public DataTable ImportPDF(string Filename)
          {
              string strText = string.Empty;
              List<string[]> list = new List<string[]>();
              string[] PdfData = null;
              try
              {
                  PdfReader reader = new PdfReader((string)Filename);
                  for (int page = 1; page <= reader.NumberOfPages; page++)
                  {
                      ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
                      String cipherText = PdfTextExtractor.GetTextFromPage(reader, page, its);
                      cipherText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(cipherText)));
                      strText = strText + "\n" + cipherText;
                      PdfData = strText.Split('\n');
      
                  }
                  reader.Close();
              }
              catch (Exception ex)
              {
              }
      
              List<string> temp = PdfData.ToList();
              temp.RemoveAt(0);
              list = temp.ConvertAll<string[]>(x => x.Split(' ').ToArray());
              List<string> columns = list.FirstOrDefault().ToList();
              DataTable dtTemp = new DataTable();
              columns.All(x => { dtTemp.Columns.Add(new DataColumn(x)); return true; });
              list.All(x => { dtTemp.Rows.Add(dtTemp.NewRow().ItemArray = x); return true; });
              return dtTemp;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 2013-07-11
        • 2016-07-10
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多