摘要:pdf向html的文档格式转换是网络阅读平台较为常用的技术,具体实现的方法比较多,该文主要介绍了基于pdf2htmlEX免费工具在.NET平台中使用C#语言实现pdf向html的格式转换的方法。该方法实现的pdf向html格式转换的效果良好,生成的html文档字体清晰,排版准确,与pdf原文档效果差别不大。
关键词:pdf2htmlEX;pdf;html;格式转换
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)09-0102-03
1 背景
目前,网络阅读平台在线阅读pdf文档的较为流行的解决方案是将pdf文档转换成swf格式,然后使用flash播放器进行播放。该解决方案的缺点较多:一,对于没有安装flash播放器的用户,pdf文档内容可能不能正常显示;二,使用flash在线播放容易导致清晰度降低,影响阅读;三,用户无法复制其中的内容;四,对屏幕尺寸各异的移动设备缺乏自适应能力。将pdf转换成html文档则可以解决上述问题。
网络上和文献中分享的该领域的技术大部分是通过Java语言实现的。笔者通过查阅文献和相关技术资料,结合本人的开发实践,提供了.NET(C#)中基于pdf2htmlEX开源工具的格式转换器的实现技术。
2 使用pdf2htmlEX在.NET(C#)中实现pdf向html的转换
2.1 pdf2htmlEX介绍
pdf 转换为html(下文部分地方简称为pdf2html)的技术思路是将pdf文档中的文字、图片、字体等信息提取出来,然后按照html的语法写入html文档中[1]。pdf2htmlEX是免费使用的可高保真地对pdf至html转换的工具,作者为王璐,在网上能找到较多的版本,笔者所使用的版本的下载地址是:http:///detail/zhouyifan2009/8552783。pdf2htmlEX的主要特点有以下四个:首先,它能准确提取字体,保证最大限度地原样输出;第二,保证渲染准确性,针对Web进行优化,如对文件进行必要的压缩等;第三,其他内容用背景图片的形式显示;第四,单文件输出,即转换结果是生成一个html文件,图片等信息不存放在单独的文件中。[2]
2.2 实现步骤
pdf2htmlEX工具是控制台程序,没有自己的用户界面(点击pdf2htmlEX.exe文件时,程序窗口一闪而过,用户不能直接使用),必须由操作系统自带的cmd.exe调用或者其他第三方程序调用来实现它的功能。本文将介绍C#语言编写程序调用pdf2htmlEX.exe实现pdf2html的功能。具体步骤如下。
1)创建项目
通过Visual Studio 2013(笔者的开发工具,也可以使用其他版本的Visual Studio),创建Windows窗体应用程序。
2)添加控件和修改属性
创建项目后,在默认生成的Form1窗体添加Label和Button控件,并且修改它们的(Name)和Text属性。如图1所示。
窗体界面简单,共有4个Label控件和1个Button控件。其中“选择文件”Label控件的作用是,用户点击后弹出一个打开文件的对话框,以选择需要转换格式的pdf文件;“选择保存路径”Label控件的作用是,用户点击后弹出保存文件对话框,以指定生成的html文件的保存路径。“格式转换”Button控件用于执行文件的格式转换。
3)编写实现代码
实现代码分为三部分,一是选择文件的实现代码,二是选择文件保存路径的实现代码,三是进行文件格式转换(pdf2html)的实现代码。
①选择文件的实现代码。鼠标双击“选择文件”Label控件,进入代码编写界面,添加实现代码如下:
//定义string类型的变量,以存放pdf文件路径
string pdfFilePath = null;