C# 如何读取和显示PDF?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何读取和显示PDF?相关的知识,希望对你有一定的参考价值。

你要是读取的话,可以参考下面这个例子,用的是Spire.PDF来读取读取PDF,要是你要显示PDF,需要用Spire.PDFViewer

参考技术A 先安装Acrobat Reader,工具箱上选择项,添加一个Adobe PDF Reader

在Form上放置一个Adobe PDF Reader控件,代码:
private void Form1_Load(object sender, EventArgs e)

axAcroPDF1.LoadFile(@"D:\美国国家地理.pdf");
axAcroPDF1.setShowToolbar(false);
axAcroPDF1.setShowScrollbars(false);
axAcroPDF1.setPageMode("pages only");

效果:

iTextSharp PDF 使用 C# 读取突出显示的文本(突出显示注释)

【中文标题】iTextSharp PDF 使用 C# 读取突出显示的文本(突出显示注释)【英文标题】:iTextSharp PDF Reading highlighed text (highlight annotations) using C# 【发布时间】:2014-06-14 01:59:18 【问题描述】:

我正在开发一个将 pdf 内容转换为文本的 C# winform 应用程序。除了在 pdf 的突出显示文本中找到的内容外,所有必需的内容都被提取出来。 请帮助获取工作示例以提取 pdf 中的突出显示文本。 我在项目中使用 iTextSharp.dll

【问题讨论】:

你说的是注解吗?你需要更清楚。注释是不属于页面内容流的元素。它们始终添加在页面顶部并具有自己的外观流。您可以在 Adob​​e Reader 的单独面板中列出它们。我们在谈论那种内容吗? 【参考方案1】:

假设您在谈论评论。请试试这个:

for (int i = pageFrom; i <= pageTo; i++) 
    PdfDictionary page = reader.GetPageN(i);
    PdfArray annots = page.GetAsArray(iTextSharp.text.pdf.PdfName.ANNOTS);
    if (annots!=null)
        foreach (PdfObject annot in annots.ArrayList) 
            PdfDictionary annotation = (PdfDictionary)PdfReader.GetPdfObject(annot);
            PdfString contents = annotation.GetAsString(PdfName.CONTENTS);
            // now use the String value of contents
        
    

这是从内存中编写的(我是 Java 开发人员,而不是 C# 开发人员)。

【讨论】:

以上是关于C# 如何读取和显示PDF?的主要内容,如果未能解决你的问题,请参考以下文章

从内存流中读取存储的 PDF

求助,c#如何利用iTextSharp.dll读取PDF的书签信息

如何从浏览器 Selenium C# 中读取 pdf 内容

如何在 C# 中从外部站点的 url 读取 PDF 文件 [关闭]

C# iTextSharp PDFReader 总是从 PDF 的开头读取

如何批量读取文件(PDF或Word)页数并自动显示在文件名称中?