pandoc把word转为html,在pypandoc(pandoc)中将较大的HTML文件转换为docx时出现问题

背景:我正在尝试自动生成科学报告。我已经将数据写入了一个HTML文件,我想使用潘多克.exe(文件转换程序)转换为.docx Word文档。我有一个过程来处理一个较小的HTML文件,包括图像、表格等。那个文件是307KB。在

当我试图转换一个更大的文件(约4.5MB)并嵌入多个图时,问题就开始了。{我一直在用这个来转换: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"])

但是我有很多错误。通常:

^{pr2}$

或者如果我把-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 = ('

width='+formats[graph][2][1]+'>').format(data_uri)

谢谢你的帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache POI提供了一种将HTML文件转换Word文档的方法。下面是一个简单的示例代码: ```java import java.io.*; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.converter.HtmlDocumentFacade; import org.apache.poi.hwpf.converter.WordToHtmlConverter; import org.apache.poi.hwpf.usermodel.Range; public class HtmlToWordConverter { public static void main(String[] args) throws Exception { // 读取HTML文件 FileInputStream fis = new FileInputStream("input.html"); BufferedReader in = new BufferedReader(new InputStreamReader(fis, "UTF-8")); // 创建Word文档对象 HWPFDocument doc = new HWPFDocument(); Range range = doc.getRange(); // 将HTML文件转换Word文档 WordToHtmlConverter converter = new WordToHtmlConverter(doc); converter.setPicturesManager((content, pictureType, suggestedName, widthInches, heightInches) -> { // 保存图片 try (FileOutputStream out = new FileOutputStream(suggestedName)) { out.write(content); } catch (IOException e) { e.printStackTrace(); } // 将图片插入Word文档 try { range.insertAfter(converter.createPicture(suggestedName, widthInches, heightInches)); } catch (Exception e) { e.printStackTrace(); } }); converter.processDocument(new HtmlDocumentFacade(fis)); // 保存Word文档 FileOutputStream fos = new FileOutputStream("output.doc"); doc.write(fos); fos.close(); } } ``` 在上面的代码中,我们首先读取HTML文件,然后创建一个空的Word文档对象,并获取文档的范围。接着,我们创建一个WordToHtmlConverter对象,并设置其PicturesManager属性,以便将HTML文件中的图片保存到本地,并将图片插入Word文档中。最后,我们将HTML文件转换Word文档,并将其保存到本地。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值