Asp.net 如何将pdf文件转换为datatable
有没有办法将PDF文件转换为DataTable?PDF文件主要由表格组成,如有任何帮助,将不胜感激 如果PDF包含标记的内容(你可以在我的博客文章中找到),你可以从PDF文件中提取它。否则,您需要提取文本并尝试猜测结构。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
使用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;
}