提前致谢。
的背景:
我正在开发一个控制台应用程序,该应用程序从 pdf 文档的特定部分中提取数据。为此,我首先需要将该 pdf 转换为要使用的字符串。为此,我求助于 iTextSharp。pdf 布局为每页两列,因此我使用 SimpleTextExtractionStratgey()(我尝试了 iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();但发现它对页面布局无效)。
转换为文本的内容说明:
我似乎遇到问题的页面有一个“标题”张贴在页面的一侧。带有页眉的页面间歇性地分散在文档中。
页面布局图片:http: //postimg.org/image/b7i25v0g1/
问题:
似乎当它完成浏览页面上的列然后移动到该侧标题时。然后它会跳转到带有侧页眉的下一页,将其转换为文本,然后从遇到第一个页眉的页面顶部重新开始。
我最终会得到如下所示的文本:
第 1 页内容
第一个标题
第二个标题
第 1 页内容
第 2 页内容
等等
这是pdf:http ://www.filedropper.com/dd35-completeadventurer
我没有嫁给 iTextSharp 我只需要一种可靠的方法来将这种格式的文档转换为文本。解决方法或替代方法将不胜感激。
static public string ToTxt(string @filePath)
{
string strText = string.Empty;
try
{
PdfReader reader = new PdfReader(filePath);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
Widgets.ProgressBar(page);
//Convert PDF to Text
ITextExtractionStrategy its = new SimpleTextExtractionStrategy(); //iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
String s = PdfTextExtractor.GetTextFromPage(reader, page, its);
strText = strText + s;
}
reader.Close();
Console.WriteLine("File Extracted");
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
finally
{
Console.Clear();
}
return strText;
}