怎么用C语言读取PDF文件

怎么用C语言读取PDF文件,第1张

1.pdf(Portable Document Format的简称,意为“便携式文档格式”),是由Adobe Systems用于与应用程序、 *** 作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。

2.对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。

C语言里有一系列文件 *** 作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。

3.fopen的函数原型:FILE * fopen(const char * path,const char * mode)

fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该梁岩文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即坦历文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,橡信御而非纯文字文件。

强烈推荐Adobe Reader 8打开PDF。

在网上的许多资料都是以CAJ、PDF等文件格式提供的,其中的文本不能被直接编辑。网上提供了许多处理这种情况的软件,但是它们不是效率低,就是只能提取其中部分文本。本文所述利用微软提供的OCR识别技术从CAJ、蠢握PDF等文件中提取全部文本的方法,简便快捷,效率很高。

从不同格式的文件中提取文本前需要做好以下准备工作,安装CAJViewer5.5浏览器软件和acrobat 5 专业版浏览器软件安装Office2003,并完全安装Of?鄄fice工具Microsoft Office Document Imaging,然后在打印机里面会增加Microsoft Office Document Image Writer打印机。 Microsoft Office Document Image可以非常准确的全文件识别转化中文、英文、表格。

一、CAJ文件的识别

(一)首先,从网上下载CAJ格式的资料文件保存到本地硬盘上。

(二)然后,启动CAJViewer浏览器程序,并在该程序中打开刚才保存的CAJ格式的文件。浏览文件到最后一页后,不要关闭CAJ浏览器程序。

(三)在CAJ浏览器程序窗口中,选择“文件”→“打印”,并选择打印机为Microsoft Office Document Image Writer打印机,勾选打印到文漏毁件选项和确定打印页数。

(四)保存打印文件(*.prn)到适当位置。等待打印完成后,Microsoft Office Document Image 自动打开刚才保存的打印文件。

(五)在Microsoft Office Document Image窗口中,选择“页面”菜单中的“选择所有页面”菜单项,然后选择“工具”菜单中的“使用OCR识别文本”提取文本。

(六)选择“工具”下的 “将文本发送到word”,最后将把整个CAJ文件识别输出到word文件中。

二、PDF文件的识别

(一)以文本形式保存的PDF文件,用acrobat 5 专业版,识别整个文件。直接打开从网上下载的PDF格式文件另存为RTF文件,或者选择工具栏上的文字选择按钮,然后选择文字区域,然后复制到Word中即可。

(带搜庆二)以图片形式保存的PDF文件,将PDF文件打印到Microsoft Office Document Image Writer打印机,选择打印形成的文件的保存位置,然后会自动形成一个MDI文件,并且自动用Microsoft Office Document Image打开此文件,然后在Microsoft Office Document Im?鄄age中选择“工具”菜单中的“使用OCR识别文本”,识别完成后,在选择“工具”下的,“将文本发送到word”,最后将把整个PDF文件识别输出到word文件中。

(三)加密的PDF文件先下载解密软件,解密后在参照上述步骤1),2) 进行。

(四)繁体PDF文件用上述步骤2)的方法识别到word后,用word中的“工具”→“语言”→“中文繁简转换”

三、超星文件的识别

(一)全文件识别打印到Microsoft Office Document Image Writer打印机,然后按上述PDF文件的识别步骤中第二点 *** 作,要注意的是,超星打印功能有点区别,因为超星是目录和全文分开的,所以打印时,需要分别把目录和正文识别到Word中,再合并到一起。打印时要填入打印页码从1到最后一页,不要选择打印全部。在打印选项中,要将页面比例设成真实大小,而不是整宽。注意识别速度比其他格式要慢很多,请保持耐心。一般一本200多页的书,识别需要几分钟的时间。

(二)超星文件识别相对比较麻烦一些,如果还有问题,可以先把超星打印成完整的PDF文件,然后再用上述识别PDF文件的方法转成Word。

四、后记

经过试验,发现Microsoft Office Document Image 存在一些不稳定的问题,如在用CAJ打印到Microsoft Office Document Image Writer时,发现用CAJ5.5版本比较快,而CAJ5.0有时出现假死机。页面显示大时,转化的识别率较高。如果页数多的文件,包括超星,可以分多次转化。

由于虚拟打印到Microsoft Office Document Image Writer 比较慢,并且形成的虚拟文件很大,1本200多页的书大约是60M,因此会严重影响机器的运行速度、C盘和内存空间。建议配置好的机器一次转化不要超过200页,配置差的不要超过100页,同时打印时在任务栏中会出现打印机图标,可以双击,看到打印任务的进度,避免误以为死机。转化完成后请删除c:\windows\temp目录下的虚拟打印文件,否则C盘很快会被用光。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12162347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存