Pandoc HTML到DOCX图像在本地加载,但不在服务器

时间:2017-03-27 18:10:27

标签: html ruby-on-rails docker pandoc

我目前正在使用Rails 4.2和pandoc-ruby将我的HTML文档转换为DOCX以供用户下载。不幸的是,服务器创建的docx不显示图像。它在当地确实如此。

编辑:我在本地运行pandoc 1.19(在Mac上)。我让docker安装了新版本的pandoc而没有问题。运行pandoc -vpandoc --version会从docker中获得以下输出:

root@3dd9b57878f1:~# pandoc -v
pandoc 1.19.2.1
Compiled with pandoc-types 1.17.0.4, texmath 0.9, skylighting 0.1.1.4

这是我在我的mac上得到的东西(由brew安装):

~ ❯❯❯ pandoc -v
pandoc 1.19
Compiled with pandoc-types 1.17.0.4, texmath 0.9, highlighting-kate 0.6.3

我的rails应用创建了一个包含从S3下拉的图片的预览页面,因此img src是标准的s3网址,例如“https://xyz.s3.amazonaws.com/xyz/xyz/image.jpg?1234567890

在我的机器上,当我将pandoc-ruby转换为docx时,所有图像都会被拉下来而没有问题,而docx看起来就像预览页面。图像不存储在rails目录中 - 仅通过s3。在码头工人身上,情况并非如此。它改为引用我的图像的ID。根据生成的XML,docker甚至没有相同的XML:

本地:

<w:pPr><w:pStyle w:val="Compact" /></w:pPr><w:r><w:drawing><wp:inline><wp:extent cx="3048000" cy="2286000" />
<wp:effectExtent b="0" l="0" r="0" t="0" /><wp:docPr descr="4" title="" id="1" name="Picture" />
<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic>
<pic:nvPicPr>
<pic:cNvPr descr="http://xyz.s3.amazonaws.com/development/assets/xyz/2345585/4.jpg?123456789" id="0 ...

docker版本:

<w:r><w:t xml:space="preserve">Image</w:t></w:r></w:p><w:p><w:pPr>
<w:pStyle w:val="Compact" /></w:pPr><w:r><w:t xml:space="preserve">475</w:t></w:r></w:p><w:sectPr /></w:body></w:document>

(475是图像的id)

根据this SO question以及this SO question,可能是URL未指向磁盘上的图像。对于旧版本的Pandoc来说,这似乎是一个问题。它没有解释为什么它在本地工作,因为XML使用的是URL。

尽管我手动安装了1.19.x,但是docker容器仍然在运行1.16版本吗?

0 个答案:

没有答案