日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html无损转换pdf,Pdf2html :高保真PDF至HTML转换

發布時間:2024/7/5 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html无损转换pdf,Pdf2html :高保真PDF至HTML转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高保真PDF至HTML轉換

pdf2htmlEX介紹

傳統pdf2html有兩種:

一種相當于pdf2text加一些比較弱的格式,基本跟pdf2text也差不了多少

另一種是把所有渲染成圖片然后嵌到一個html,結果是文字信息都丟失(不能選擇,拷貝),生成的文件還巨大。

pdf2htmlEX結合二者優點,既保留了文字,又保留了格式。

具體來說有如下特性

1.從pdf提取字體

2.保證渲染準確性,針對web進行優化(包括減少文件大小,文字行合并,(為HTML文字選擇)字體重編碼等等)

3.其他內容用圖片顯示

4.單文件輸出,一個HTML搞定一切

pdf2htmlEX開源主頁地址

詳細介紹

中文討論組

編譯流程:

官方編譯文檔:https://github.com/coolwanglu/pdf2htmlEX/wiki/Building

對環境要求較高,建議使用最新機器,本例安裝采用centos7

YUM基本包:

yum install cmake gcc gcc-c++ gnu-getopt java-1.8.0-openjdk libpng-devel fontforge-devel cairo-devel poppler-devel libspiro-devel poppler-data libjpeg-turbo-devel git fontconfig-devel glibc-static glibc-devel libtool-ltdl-devel zlib-devel poppler-glib-devel mk-configure.noarch libjpeg-turbo libtiff giflib-devel libXt-devel automake bzip2 libuninameslist-devel libspiro dbus-python-devel pango-devel chrpath uuid-c++ uuid uthash-devel.noarch jpackage-utils.noarch gettext libxml2-python27 libxml2-python26 python27-python-devel libxslt-python26 libxslt libxslt-devel python-devel python-javapackages.noarch –nogpgcheck poppler-cpp poppler-cpp-devel libstdc++48-static openjpeg-devel libjpeg libjpeg-devel libpng freetype freetype-devel libxml2 libxml2-devel zlib glibc glib2 glib2-devel bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel libtool libtool-libs libevent-devel libevent openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool-ltdl bison vim wget make crontabs mlocate ntp lrzsz autoconf libx* qt-* qt4-devel libtiff libopen* gtk2 gtk2-devel gtk2-devel-docs kernel-devel gtk-doc cjkuni-uming-fonts cjkuni-ukai-fonts

編譯openjpeg:

wget http://downloads.sourceforge.net/openjpeg.mirror/openjpeg-2.1.0.tar.gz;

tar -xzf openjpeg-2.1.0.tar.gz;

cd openjpeg-2.1.0;

cmake .;

make && make install;

編譯poppler:

wget http://poppler.freedesktop.org/poppler-0.35.0.tar.xz;

tar -xf poppler-0.35.0.tar.xz;

cd poppler-0.35.0;

./configure --enable-xpdf-headers --enable-libopenjpeg ;

make && make install;

ln -s /usr/local/lib/libpoppler.so.54 /usr/lib64/libpoppler.so.54

ln -sv /usr/share/poppler /usr/local/share

編譯 fontforge

git clone https://github.com/coolwanglu/fontforge.git fontforge;

cd fontforge;

git checkout pdf2htmlEX && ./autogen.sh;

./configure && make V=1 && make install

cp fontforge.pc /usr/local/lib/pkgconfig/;

ln -s /usr/local/lib/libfontforge.so.2 /usr/lib64/libfontforge.so.2

#設置環境變量

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

編譯pdf2htmlEX

git clone git://github.com/coolwanglu/pdf2htmlEX.git;

cd pdf2htmlEX;

cmake . ;

make && make install;

FQA

1.pdf2htmlEX 自動隱藏轉碼后沒有找到字體庫的字,導致html中文字無法顯示的解決辦法

如果系統沒有安裝字體時,pdf2htmlEX會默認隱藏該字段內容。轉換的html沒有內容。

通過修改源碼:

./src/HTMLRenderer/font.cc

// TODO: this function is called when some font is unable to process, may use the name there as a hint

void HTMLRenderer::export_remote_default_font(long long fn_id)

{

f_css.fs << "." << CSS::FONT_FAMILY_CN << fn_id << "{font-family:sans-serif;visibility:visible;}" << endl;

// f_css.fs << "." << CSS::FONT_FAMILY_CN << fn_id << "{font-family:sans-serif;visibility:hidden;}" << endl;

}

pdf2htmlEX --help 中文解釋

help:

用法: pdf2htmlEX [options] []

-f,--first-page 需要轉換的起始頁 (默認: 1)

-l,--last-page 需要轉換的最后一頁 (默認: 2147483647)

--zoom 縮放比例

--fit-width 適合寬度 像素

--fit-height 適合高度 像素

--use-cropbox 使用剪切框 (default: 1)

--hdpi 圖像水平分辨率 (default: 144)

--vdpi 圖像垂直分辨率 (default: 144)

--embed 指定哪些元素應該被嵌入到輸出

--embed-css 將CSS文件嵌入到輸出中 (default: 1)

--embed-font 將字體文件嵌入到輸出中 (default: 1)

--embed-image 將圖片文件嵌入到輸出中 (default: 1)

--embed-javascript 將javascript文件嵌入到輸出中 (default: 1)

--embed-outline 將鏈接嵌入到輸出中 (default: 1)

--split-pages 將頁面分割為單獨的文件 (default: 0)

--dest-dir 指定目標目錄 (default: ".")

--css-filename 生成的css文件的文件名 (default: "")

--page-filename 分割的網頁名稱 (default:"")

--outline-filename 生成的鏈接文件名稱 (default:"")

--process-nontext 渲染圖行,文字除外 (default: 1)

--process-outline 在html中顯示鏈接 (default: 1)

--printing 支持打印 (default: 1)

--fallback 在備用模式下輸出 (default: 0)

--embed-external-font 嵌入局部匹配的外部字體 (default: 1)

--font-format 嵌入的字體文件后綴 (ttf,otf,woff,svg) (default: "woff")

--decompose-ligature 分解連字-> fi (default:0)

--auto-hint 使用fontforge的autohint上的字體時不提示 (default: 0)

--external-hint-tool 字體外部提示工具 (overrides --auto-hint) (default: "")

--stretch-narrow-glyph 伸展狹窄的字形,而不是填充 (default: 0)

--squeeze-wide-glyph 收縮較寬的字形,而不是截斷 (default: 1)

--override-fstype clear the fstype bits in TTF/OTF fonts (default:0)

--process-type3 convert Type 3 fonts for web (experimental) (default: 0)

--heps 合并文本的水平臨界值,單位:像素(default: 1)

--veps vertical threshold for merging text, in pixels (default: 1)

--space-threshold 斷字臨界值 (臨界值 * em) (default:0.125)

--font-size-multiplier 一個大于1的值增加渲染精度 (default: 4)

--space-as-offset 把空格字符作為偏移量 (default: 0)

--tounicode 如何處理ToUnicode的CMap (0=auto, 1=force,-1=ignore) (default: 0)

--optimize-text 盡量減少用于文本的HTML元素的數目 (default: 0)

--bg-format 指定背景圖像格式 (default: "png")

-o,--owner-password 所有者密碼 (為了加密文件)

-u,--user-password 用戶密碼 (為了加密文件)

--no-drm 覆蓋文檔的 DRM 設置 (default: 0)

--clean-tmp 轉換后刪除臨時文件 (default: 1)

--data-dir 指定的數據目錄 (default: ".\share\pdf2htmlEX")

--debug 打印調試信息 (default: 0)

-v,--version 打印版權和版本信息

-h,--help 打印使用幫助信息

3.常用命令:

1.轉碼操作

1.1 pdf2htmlEX pdf/test.pdf --debug=1 #開啟debug模式,用于監控轉碼過程

1.2. pdf2htmlEX -f 3 -l 5 --fit-width=1024 --bg-format=jpg pdf/test.pdf #只有第三,第四和第五頁轉換,該頁的寬度為1024像素。生成JPEG格式背景圖像

1.3. pdf2htmlEX --embed=cfijo --dest-dir=out pdf/test.pdf # 分離所有資源(字體,圖片,CSS和JavaScript)并將存儲在指定的out文件中

1.4. pdf2htmlEX --embed=cfijo --split-pages=1 --dest-dir=out --page-filename=test-%d.page pdf/test.pdf #分離所有資源(字體,圖片,CSS和JavaScript) 并按照--split-pages分離所有頁面test-%d.page,存放在指定out目錄

1.5 pdf2htmlEX pdf/test.pdf --optimize-text =1 #分欄時每一行文字生成在一個div標簽內

查看pdf字體

#emb 意思: 字體是否內置

[root@localhost ]# pdffonts 3.pdf

name type encoding emb sub uni object ID

----------------- ------------- ---------- --- --- --- ---------- --- ---------- --- ---------

_GBK CID TrueType GBK-EUC-H no no no 16 0

_GBK CID TrueType GBK-EUC-H no no no 17 0

SSJ0+ZCNHHr-1 Type 1 Custom yes no yes 19 0

E-BZ+ZCNHHr-3 Type 1 Custom yes no yes 18 0

E-BX+ZCNHHs-5 Type 1 Custom yes no yes 43 0

SSJ0+ZCNHHs-6 Type 1 Custom yes no yes 21 0

E-FZ+ZCNHHs-7 Type 1 Custom yes no yes 20 0

DY2+ZCNHHs-8 Type 1 Custom yes no yes 44 0

減少生成的html的字體的大小

https://github.com/yu-liang-kono/pdf2htmlEXOptimize

總結

以上是生活随笔為你收集整理的html无损转换pdf,Pdf2html :高保真PDF至HTML转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。