Windows系统下使用pdf2htmlEX Docker镜像转换PDF至HTML的问题
解决Windows下Docker运行pdf2htmlEX无法读取本地PDF文件的问题
Docker容器默认无法直接访问主机本地的文件系统,你遇到的文件找不到错误,本质是容器内的pdf2htmlEX程序看不到你本地的sample_pdf.pdf。必须通过卷挂载将本地目录映射到容器内部,才能实现文件共享。
正确命令格式
假设你的sample_pdf.pdf位于当前命令行的工作目录下,使用以下命令完成转换:
PowerShell环境
docker run -v "$(pwd):/workdir" pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 /workdir/sample_pdf.pdf /workdir/sample_output.html
CMD环境
docker run -v "%cd%:/workdir" pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 /workdir/sample_pdf.pdf /workdir/sample_output.html
命令解释
-v "$(pwd):/workdir":将当前主机的工作目录($(pwd)对应PowerShell当前路径,%cd%对应CMD当前路径)挂载到容器内的/workdir目录,实现本地与容器的文件共享。/workdir/sample_pdf.pdf:容器内的PDF文件路径,对应本地的.\sample_pdf.pdf。/workdir/sample_output.html:指定转换后的HTML输出路径,转换完成后会直接出现在你的本地工作目录中。
简化用法(不指定输出文件名)
如果不需要自定义输出文件名,pdf2htmlEX会默认生成与PDF同名的HTML文件,命令可以简化为:
PowerShell
docker run -v "$(pwd):/workdir" pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 /workdir/sample_pdf.pdf
CMD
docker run -v "%cd%:/workdir" pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 /workdir/sample_pdf.pdf
执行后,本地工作目录会自动生成sample_pdf.html文件。
注意事项
- 容器内的路径必须使用Linux风格的
/,不要使用Windows的\。 - 确保当前用户对目标PDF文件及所在目录有读取权限,避免Docker无法访问文件。
内容的提问来源于stack exchange,提问作者Mohamed Marzook
相关产品推荐
相关产品推荐

