PDF 转 HTML
环境安装 docker版
安装docker
# 通过yum安装
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
yum install docker-ce
# 启动server服务
systemctl start docker
# 设置开机启动
systemctl enable docker
# 修改镜像源为国内
vim /etc/docker/daemon.json
# 增加如下内容
{
"registry-mirrors": [
"http://f1361db2.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
# 保存 重启
systemctl daemon-reload
systemctl restart docker
拉取镜像
docker pull bwits/pdf2htmlex
# 查看镜像
docker images
使用
docker run -ti --rm -v [html文件输入路径]:/pdf bwits/pdf2htmlex pdf2htmlEX --zoom 1.3 test.pdf
# 在使用exec或其它语言调用docker时,取消-t参数
编译安装版(centos7)
安装依赖
yum install cmake gcc gnu-getopt java-1.8.0-openjdk libpng-devel fontforge-devel cairo-devel poppler-devel libspiro-devel freetype-devel poppler-data libjpeg-turbo-devel git make gcc-c++
开始安装
git clone git://github.com/coolwanglu/pdf2htmlEX.git
cd pdf2htmlEX
cmake .
错误 package 'libfontforge>=2.0.0' not found
需要编译安装libfontforge
需要使用作者提供的分支,官网的版本不行 https://github.com/coolwanglu/fontforge/tree/pdf2htmlEX
注意 这里不要使用git clone ,需要下载压缩包
wget https://github.com/coolwanglu/fontforge/archive/pdf2htmlEX.zip
unzip pdf2htmlEX.zip
cd fontforge-pdf2htmlEX/
./autogen.sh
# 出现错误 Preparing build ... ERROR: libtoolize failed
# 执行 yum install libtool-ltdl-devel 然后再次执行 ./autogen.sh
./configure
# 出现错误 configure: error: Package requirements (pango >= 1.10 pangoxft) were not met:
# 执行 yum install pango-devel 然后再次执行 ./configure
make
make install
# 如上图 成功安装了 libfontforge 切换到pdf2htmlEX 目录 继续执行 cmake .
# 依然报错 package 'libfontforge>=2.0.0' not found, 执行如下语句
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# 继续执行 cmake .
make
make install
# pdf2htmlEX 已安装到了 usr/local/bin 目录下
pdf2htmlEX -h
# 报错 pdf2htmlEX: error while loading shared libraries: libfontforge.so.2: cannot open shared object file: No such file or directory 执行如下语句即可, 可以将 LD_LIBRARY_PATH 写入到 /etc/profile 中
export LD_LIBRARY_PATH=/usr/local/lib
pdf2htmlEX -h
其它参数
-f,--first-page <int> 需要转换的起始页 (默认: 1)
-l,--last-page <int> 需要转换的最后一页 (默认: 2147483647)
--zoom <fp> 缩放比例
--fit-width <fp> 适合宽度 <fp> 像素
--fit-height <fp> 适合高度 <fp> 像素
--use-cropbox <int> 使用剪切框 (default: 1)
--hdpi <fp> 图像水平分辨率 (default: 144)
--vdpi <fp> 图像垂直分辨率 (default: 144)
--embed <string> 指定哪些元素应该被嵌入到输出
--embed-css <int> 将CSS文件嵌入到输出中 (default: 1)
--embed-font <int> 将字体文件嵌入到输出中 (default: 1)
--embed-image <int> 将图片文件嵌入到输出中 (default: 1)
--embed-javascript <int> 将javascript文件嵌入到输出中 (default: 1)
--embed-outline <int> 将链接嵌入到输出中 (default: 1)
--split-pages <int> 将页面分割为单独的文件 (default: 0)
--dest-dir <string> 指定目标目录 (default: ".")
--css-filename <string> 生成的css文件的文件名 (default: "")
--page-filename <string> 分割的网页名称 (default:"")
--outline-filename <string> 生成的链接文件名称 (default:"")
--process-nontext <int> 渲染图行,文字除外 (default: 1)
--process-outline <int> 在html中显示链接 (default: 1)
--printing <int> 支持打印 (default: 1)
--fallback <int> 在备用模式下输出 (default: 0)
--embed-external-font <int> 嵌入局部匹配的外部字体 (default: 1)
--font-format <string> 嵌入的字体文件后缀 (ttf,otf,woff,svg) (default: "woff")
--decompose-ligature <int> 分解连字-> fi (default:0)
--auto-hint <int> 使用fontforge的autohint上的字体时不提示 (default: 0)
--external-hint-tool <string> 字体外部提示工具 (overrides --auto-hint) (default: "")
--stretch-narrow-glyph <int> 伸展狭窄的字形,而不是填充 (default: 0)
--squeeze-wide-glyph <int> 收缩较宽的字形,而不是截断 (default: 1)
--override-fstype <int> clear the fstype bits in TTF/OTF fonts (default:0)
--process-type3 <int> convert Type 3 fonts for web (experimental) (default: 0)
--heps <fp> 合并文本的水平临界值,单位:像素(default: 1)
--veps <fp> vertical threshold for merging text, in pixels (default: 1)
--space-threshold <fp> 断字临界值 (临界值 * em) (default:0.125)
--font-size-multiplier <fp> 一个大于1的值增加渲染精度 (default: 4)
--space-as-offset <int> 把空格字符作为偏移量 (default: 0)
--tounicode <int> 如何处理ToUnicode的CMap (0=auto, 1=force,-1=ignore) (default: 0)
--optimize-text <int> 尽量减少用于文本的HTML元素的数目 (default: 0)
--bg-format <string> 指定背景图像格式 (default: "png")
-o,--owner-password <string> 所有者密码 (为了加密文件)
-u,--user-password <string> 用户密码 (为了加密文件)
--no-drm <int> 覆盖文档的 DRM 设置 (default: 0)
--clean-tmp <int> 转换后删除临时文件 (default: 1)
--data-dir <string> 指定的数据目录 (default: ".\share\pdf2htmlEX")
--debug <int> 打印调试信息 (default: 0)
-v,--version 打印版权和版本信息
-h,--help 打印使用帮助信息