Asp.net 如何将pdf文件转换为datatable

Asp.net 如何将pdf文件转换为datatable,asp.net,pdf,datatable,Asp.net,Pdf,Datatable,有没有办法将PDF文件转换为DataTable?PDF文件主要由表格组成,如有任何帮助,将不胜感激 如果PDF包含标记的内容(你可以在我的博客文章中找到),你可以从PDF文件中提取它。否则,您需要提取文本并尝试猜测结构。使用iTextSharp.text; using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.pdf.parser; public DataTable ImportPDF(string F

有没有办法将PDF文件转换为DataTable?PDF文件主要由表格组成,如有任何帮助,将不胜感激

如果PDF包含标记的内容(你可以在我的博客文章中找到),你可以从PDF文件中提取它。否则,您需要提取文本并尝试猜测结构。

使用iTextSharp.text;
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;
    }
使用iTextSharp.text.pdf; 使用iTextSharp.text.pdf.parser; 公共数据表ImportPDF(字符串文件名) { string strText=string.Empty; 列表=新列表(); 字符串[]PdfData=null; 尝试 { PdfReader reader=新的PdfReader((字符串)文件名); 对于(int page=1;page x.Split(“”).ToArray()); 列表列=List.FirstOrDefault().ToList(); DataTable dtTemp=新DataTable(); columns.All(x=>{dtTemp.columns.Add(newdatacolumn(x));返回true;}); list.All(x=>{dtTemp.Rows.Add(dtTemp.NewRow().ItemArray=x);返回true;}); 返回dtTemp; }