C#winform adobe PDF reader 控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#winform adobe PDF reader 控件相关的知识,希望对你有一定的参考价值。

C#winform adobe PDF reader 控件显示了pdf的内容,我现在想对这个内容进行操作,应该怎么做呢?比如说我要把每一页的页码去掉,然后截取其中的一段文字内容显示到textbox里面。在AxAcroPDF这个类里面没有找到gettext()这样的方法。。。求赐教,本人菜鸟

private static string GetText(AcroPDDoc pdDoc)
        
            AcroPDPage page;
            int pages = pdDoc.GetNumPages();
            string pageText = "";
 
 
            for (int i = 0; i < pages; i++)
            
                page = (AcroPDPage)pdDoc.AcquirePage(i);
                object jso, jsNumWords, jsWord;
                List<string> words = new List<string>();
 
 
                try
                
                    jso = pdDoc.GetJSObject();
 
 
                    if (jso != null)
                    
                        object[] args = new object[]  i ;
                        jsNumWords = jso.GetType().InvokeMember("getPageNumWords", BindingFlags.InvokeMethod, null, jso, args, null);
                        int numWords = Int32.Parse(jsNumWords.ToString());
 
 
                        for (int j = 0; j <= numWords; j++)
                        
                            object[] argsj = new object[]  i, j, false ;
                            jsWord = jso.GetType().InvokeMember("getPageNthWord", BindingFlags.InvokeMethod, null, jso, argsj, null);
                            words.Add((string)jsWord);
                        
                    
 
 
                    foreach (string word in words)
                    
                        pageText += word;
                    
                
                catch
                
                
            
 
 
            return pageText;
        

追问

你好,这个需要添加什么引用呢?我添加了这两个
using AxAcroPDFLib;
using AcroPDFLib;
没有你这里的AcroPDDoc类型和BindingFlags

追答

using Acrobat;

追问

我添加了组件,也用了引用了,但是运行时报了一个错误,帮忙看下是什么问题,谢谢!

检索 COM 类工厂中 CLSID 为 72498821-3203-101B-B02E-04021C009402 的组件失败,原因是出现以下错误: 80040154 没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

参考技术A 卸载了重新安装一次试试

C# 基础— 解决 "winForm 引用 Adobe PDF Reader控件不显示pdf 文件" 问题

前言

     公司的CS 终端需要显示 PDF 文件 ,在换用了“Adobe PDF Reader” 这个控件后,运行程序不报错,窗体控件区显示一片空白,PDF 文件就是不显示,这是怎么回事呢?

正文

一 、原因一步步排除,先来看是不是按照教程引用的控件:

     1、下载 Adobe PDF Reader 安装包
     2、按照提示进行安装
     3、打开VS2012 程序 → 工具箱→右击→选择项→ com 组件

     4、这时候工具箱中应该有控件了,再查看引用中是不是多了两个引用

     5、如果这两个都有的话,那就接着往下看

二、代码写的有问题

     为什么PDF 文件不显示呢? 还有两个原因: pdf 文件的路径不存在;代码有bug !
     看了一遍文件,路径对着呢;再来看代码:

 private void frmTest_Load(object sender, EventArgs e)
        
            //加载方式一
            axAcroPDF1.LoadFile(@"C:\\Users\\Ting\\Desktop\\The Little Prince (EN).pdf");

            //加载方式二
            axAcroPDF1.src = "C:\\\\Users\\\\Ting\\\\Desktop\\\\The Little Prince (EN).pdf";
        

     百度了一下,代码没有问题,那就再接着往下看:

三、怀疑是系统的问题,软件的问题?

     可能是软件的问题,没有正确安装? 版本不兼容? 让一旁的Peter 和 Flip 大侠帮忙装了一下,还是不行;俗话说: 小事重装,大事重启 ,在百度了几番没有解决后,我,我,我选择了找老大帮忙。

四 、程序的运行平台问题

     老大很快就解决了,佩服的不行;
     将客户端的目标平台改成了 “x86”

总结

    通过这件事情,觉得还有很多很多的地方需要提高,检索能力,排错速度,思考问题的方式等,小树成长中,需要更多的阳光和养分,更需要扎根!

以上是关于C#winform adobe PDF reader 控件的主要内容,如果未能解决你的问题,请参考以下文章

C# 基础— 解决 "winForm 引用 Adobe PDF Reader控件不显示pdf 文件" 问题

在 Adob​​e AxAcroPDFLib 中启用注释

怎样把PPT转换成adobe presenter

在C#winform窗体中,放入一控件axAcroPDF1,

Word转不了PDF文件,提示PDFMaker文件遗失? word 是2003,pdf是Adobe Acrobat 8.0 !

.net PDF 查看器控件 [关闭]