在pypandoc(pandoc)中将较大的HTML文件转换为docx的问题

D.比奇卡尔

我的问题与如何在pandoc执行中增加堆内存有关?,但添加了特定于Python的组件。

背景:我正在尝试自动生成科学报告。我已将数据写入HTML文件,并且想使用Pandoc.exe(文件转换程序)转换为.docx Word文档。我已经有了处理包含图片,表格等的较小HTML文件的过程。该文件为307KB。

当我尝试转换嵌入了多个图形的更大文件(〜4.5MB)时,问题就开始了。我一直在进行pypandoc转换,就像这样:

import pypandoc
PANDOC_PATH = r"C:\Program Files\RStudio\bin\pandoc"

infile = savepath + os.sep + 'Results ' + name + '.html'
outfile = savepath + os.sep + 'Results ' + name + '.docx'

output = pypandoc.convert(source=infile, format='html', to='docx', \
outputfile=outfile, extra_args=["+RTS", "-K64m", "-RTS"])

但是我遇到了各种各样的错误。通常:

RuntimeError: Pandoc died with exitcode "2" during conversion: 
b"Stack space overflow: current size 33692 bytes.\nUse `+RTS -Ksize -RTS' to increase it.\n"

或者,如果我将-Ksize的值提高到256m,则如下所示:

RuntimeError: Pandoc died with exitcode "1" during conversion: b'pandoc: out of memory\r\n'

有人可以在这里解释发生了什么事,以及我可以解决该困难的某种方式吗?我考虑过的一种解决方案是使图像缩小很多。我一直在按比例缩小(80-500KB)原始图像,其中每个图像的宽度和高度取决于其原始尺寸:

data_uri = base64.b64encode(open(formats[graph][0], 'rb').read()).decode('utf-8')

img_tag = ('<img src="data:image/jpg;base64,{0}" height='+formats[graph][2][0]+'
             width='+formats[graph][2][1]+'>').format(data_uri) 

谢谢你的帮助

D.比奇卡尔

非常感谢user2407038对此的帮助

最终,有两个修复程序使我可以使用以下命令将较大的HTML文件转换为docx文件pypandoc

如所建议的,第一个是

增加堆的最大大小,例如,将-M2GB添加到extra_args

那是:

output = pypandoc.convert(source=infile, format='html', to='docx', outputfile=outfile, extra_args=["-M2GB", "+RTS", "-K64m", "-RTS"])


增加堆大小后,我还有第二个问题,因此我不确定该解决方案是否有效。Python返回了这样的错误消息:

RuntimeError:转换期间Pandoc退出代码为“ 1”:b“ pandoc:无法解码字节'\ x91':Data.Text.Internal.Encoding.Fusion.streamUtf8:无效的UTF-8流\ n”

首先更改了html文件的打开方式即可修复该问题。encoding关键字参数设置'utf8'可以进行转换:

report = open(savepath + os.sep + 'Results ' + name + '.html', 'w', encoding='utf8')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Pandoc中将.odt转换为.docx

来自分类Dev

pandoc:将HTML表转换为DOCX

来自分类Dev

pandoc:将HTML表转换为DOCX

来自分类Dev

在Pandoc中将docx转换为pdf时,如何保持样式?

来自分类Dev

pypandoc + pandoc-citeproc将bib转换为rst

来自分类Dev

ruby pandoc将html字符串转换为docx临时文件

来自分类Dev

在Swift中将Docx文件转换为文本

来自分类Dev

从docx转换为HTML时,如何修改pandoc输出的HTML?

来自分类Dev

使用 Pandoc 转换为 docx 后如何保留 HTML 样式

来自分类Dev

vbscript 将 html 文件转换为 docx

来自分类Dev

使用pandoc将.docx转换为.pdf

来自分类Dev

pandoc将带有样式表的html转换为docx

来自分类Dev

docx4j在将html文档转换为docx时出现某些样式问题

来自分类Dev

在python中使用pandoc将docx转换为pdf

来自分类Dev

如何在php中将html文件转换为word文件

来自分类Dev

如何在不写入文件的情况下使用 pypandoc 将 JSON 对象转换为 Markdown?

来自分类Dev

我正在使用Pandoc将Markdown转换为.docx-如何从生成的文件名中删除.md?

来自分类Dev

我们如何在Django中将上传的docx文件转换为pdf

来自分类Dev

在Java中将docx或doc文件转换为txt的最佳方法是什么?

来自分类Dev

在Windows上将Rmarkdown转换为HTML:DT :: DataTable无法呈现(可疑Pandoc问题)

来自分类Dev

Pandoc:转换为HTML时无换行

来自分类Dev

在Play框架中转换文件(特别是将.doc / .docx转换为.html)

来自分类Dev

将Docx文件转换为图像

来自分类Dev

将docx文件批量转换为pdf

来自分类Dev

使用JAVA将.docx转换为HTML

来自分类Dev

将docx转换为html(颜色丢失)

来自分类Dev

使用 pandoc 通过 LaTeX 转换为 PDF 的表格间距问题

来自分类Dev

如何在C#中将.docx转换为.pdf

来自分类Dev

我想在Android中将“编辑文本”的文本转换为Docx

Related 相关文章

  1. 1

    在Pandoc中将.odt转换为.docx

  2. 2

    pandoc:将HTML表转换为DOCX

  3. 3

    pandoc:将HTML表转换为DOCX

  4. 4

    在Pandoc中将docx转换为pdf时,如何保持样式?

  5. 5

    pypandoc + pandoc-citeproc将bib转换为rst

  6. 6

    ruby pandoc将html字符串转换为docx临时文件

  7. 7

    在Swift中将Docx文件转换为文本

  8. 8

    从docx转换为HTML时,如何修改pandoc输出的HTML?

  9. 9

    使用 Pandoc 转换为 docx 后如何保留 HTML 样式

  10. 10

    vbscript 将 html 文件转换为 docx

  11. 11

    使用pandoc将.docx转换为.pdf

  12. 12

    pandoc将带有样式表的html转换为docx

  13. 13

    docx4j在将html文档转换为docx时出现某些样式问题

  14. 14

    在python中使用pandoc将docx转换为pdf

  15. 15

    如何在php中将html文件转换为word文件

  16. 16

    如何在不写入文件的情况下使用 pypandoc 将 JSON 对象转换为 Markdown?

  17. 17

    我正在使用Pandoc将Markdown转换为.docx-如何从生成的文件名中删除.md?

  18. 18

    我们如何在Django中将上传的docx文件转换为pdf

  19. 19

    在Java中将docx或doc文件转换为txt的最佳方法是什么?

  20. 20

    在Windows上将Rmarkdown转换为HTML:DT :: DataTable无法呈现(可疑Pandoc问题)

  21. 21

    Pandoc:转换为HTML时无换行

  22. 22

    在Play框架中转换文件(特别是将.doc / .docx转换为.html)

  23. 23

    将Docx文件转换为图像

  24. 24

    将docx文件批量转换为pdf

  25. 25

    使用JAVA将.docx转换为HTML

  26. 26

    将docx转换为html(颜色丢失)

  27. 27

    使用 pandoc 通过 LaTeX 转换为 PDF 的表格间距问题

  28. 28

    如何在C#中将.docx转换为.pdf

  29. 29

    我想在Android中将“编辑文本”的文本转换为Docx

热门标签

归档