我使用此代码读取pdf内容。但它不适用于某些pdf文件。
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog _of = new OpenFileDialog();
StringBuilder _text = new StringBuilder();
if (_of.ShowDialog() == DialogResult.OK)
{
string _PdfOPath = _of.FileName.ToString();
if (File.Exists(_PdfOPath))
{
PdfReader _pdfReader = new PdfReader(_PdfOPath);
for (int page = 1; page <= _pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(_pdfReader, page, strategy);
_text.Append(currentText);
}
}
}
}
我改变的另一个案例
SimpleTextExtractionStrategy()
到
LocationTextExtractionStrategy()
但总是收到&#34; \ n \ n&#34;。 解决方案是什么?
这是我的PDF文件。PDF file
更新 我尝试了许多网站转换PDF在线,我发现了这一点。 https://www.pdftoexcel.com/
这是如此惊人的服务和免费。我真的很想知道他们如何做到这一点。
答案 0 :(得分:0)
您的问题与回答here的问题有关。虽然字体编码 Identity-H 与ROS Adobe-CNS1-4结合使用,但在你的情况下它是 UniJIS-UCS2-H 与Adobe-Japan1-0 。在这两种情况下,表示亚洲编码的表格不包含在标准iTextSharp发行版中,而是包含在额外文件中,iTextAsian.dll和iTextAsianCmaps.dll,您必须将这些文件添加到项目中并添加到iText的资源搜索路径中
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsian"));
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsianCmaps"));
您可以检索DLL,例如here on SourceForge
应用于您的示例文件,此测试
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsian"));
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsianCmaps"));
var pdfReader = new PdfReader(@"selection.pdf");
var pageText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, new SimpleTextExtractionStrategy());
Console.Out.Write("Content: {0}", pageText);
输出
Content: 東芝 現品票 東芝 現品票
2017/03/09 便 ㈱玉吉製作所 2017/03/09 便 ㈱玉吉製作所
注文番号 受注納期 注文番号 受注納期
53M77062-01 2017/03/14 540117RJ-01 2017/03/14
図番 図番
4X14-22886 WX58-47630*B 1
品名 数量 品名 数量
SPACER G0A
1
LINK
2
東芝 現品票 東芝 現品票
2017/03/09 便 ㈱玉吉製作所 2017/03/09 便 ㈱玉吉製作所
注文番号 受注納期 注文番号 受注納期
540333RJ-01 2017/03/15 540523RF-01 2017/03/13
図番 図番
2X79-36722 WX79-05236 1
品名 数量 品名 数量
COVER
1
PLATEMTG
3
東芝 現品票 東芝 現品票
2017/03/09 便 ㈱玉吉製作所 2017/03/09 便 ㈱玉吉製作所
注文番号 受注納期 注文番号 受注納期
540681RJ-01 2017/03/15 54A87736-01 2017/03/14
図番 図番
3X17-46654*B 3X12-38439*A
品名 数量 品名 数量
PLATEMTG
3
PLATE G00
10