如何在VB.NET或C#中使用itextsharp dll读取PDF内容?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (173)

我如何使用带有Pdfreader类的itextsharp读取PDF内容?我的PDF可能包含纯文本或图片的文字。

提问于
用户回答回答于

无法像使用iTextSharp一样阅读和分析PDF的内容。

从iTextSharp的SourceForge教程

无法使用iText'解析'现有的PDF文件,只能每页“读取”它的页面。 这是什么意思? PDF格式只是一个放置文本和图形的画布,没有任何结构信息。因此,PDF文件中没有任何“iText对象”。在每个页面中可能会有一些“字符串”,但不能使用这些字符串重建短语或段落。可能绘制了很多线条,但不能根据这些线条检索表格对象。简而言之:解析PDF文件的内容对于iText来说是不可能的。在新闻组新闻上发布你的问题://comp.text.pdf,也许你会从已经构建工具的人那里得到一些答案,这些工具可以解析PDF并提取其中的一些内容,但不要期望工具能够执行子弹无法转换为结构化文本。

用户回答回答于
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;

public string ReadPdfFile(string fileName)
{
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}

扫码关注云+社区

领取腾讯云代金券