李金峰
摘要: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語言實現的。筆者通過查閱文獻和相關技術資料,結合本人的開發(fā)實踐,提供了.NET(C#)中基于pdf2htmlEX開源工具的格式轉換器的實現技術。
2 使用pdf2htmlEX在.NET(C#)中實現pdf向html的轉換
2.1 pdf2htmlEX介紹
pdf 轉換為html(下文部分地方簡稱為pdf2html)的技術思路是將pdf文檔中的文字、圖片、字體等信息提取出來,然后按照html的語法寫入html文檔中[1]。pdf2htmlEX是免費使用的可高保真地對pdf至html轉換的工具,作者為王璐,在網上能找到較多的版本,筆者所使用的版本的下載地址是:http://download.csdn.net/detail/zhouyifan2009/8552783。pdf2htmlEX的主要特點有以下四個:首先,它能準確提取字體,保證最大限度地原樣輸出;第二,保證渲染準確性,針對Web進行優(yōu)化,如對文件進行必要的壓縮等;第三,其他內容用背景圖片的形式顯示;第四,單文件輸出,即轉換結果是生成一個html文件,圖片等信息不存放在單獨的文件中。[2]
2.2 實現步驟
pdf2htmlEX工具是控制臺程序,沒有自己的用戶界面(點擊pdf2htmlEX.exe文件時,程序窗口一閃而過,用戶不能直接使用),必須由操作系統自帶的cmd.exe調用或者其他第三方程序調用來實現它的功能。本文將介紹C#語言編寫程序調用pdf2htmlEX.exe實現pdf2html的功能。具體步驟如下。
1)創(chuàng)建項目
通過Visual Studio 2013(筆者的開發(fā)工具,也可以使用其他版本的Visual Studio),創(chuàng)建Windows窗體應用程序。
2)添加控件和修改屬性
創(chuàng)建項目后,在默認生成的Form1窗體添加Label和Button控件,并且修改它們的(Name)和Text屬性。如圖1所示。
窗體界面簡單,共有4個Label控件和1個Button控件。其中“選擇文件”Label控件的作用是,用戶點擊后彈出一個打開文件的對話框,以選擇需要轉換格式的pdf文件;“選擇保存路徑”Label控件的作用是,用戶點擊后彈出保存文件對話框,以指定生成的html文件的保存路徑?!案袷睫D換”Button控件用于執(zhí)行文件的格式轉換。
3)編寫實現代碼
實現代碼分為三部分,一是選擇文件的實現代碼,二是選擇文件保存路徑的實現代碼,三是進行文件格式轉換(pdf2html)的實現代碼。
①選擇文件的實現代碼。鼠標雙擊“選擇文件”Label控件,進入代碼編寫界面,添加實現代碼如下:
//定義string類型的變量,以存放pdf文件路徑
string pdfFilePath = null;