2016-05-15 28 views
1

我正在使用python的Pypandoc模块。我使用的转换代码是:如何修改从docx转换为HTML时由pandoc输出的HTML?

html = pypandoc.convert(
      tmp_loc, 
      'html5', 
      extra_args=['--extract-media='] 
      ) 

此代码的docx转换成存储在“HTML”,并在同一时间的HTML由名字image01提取从DOCX图像并存储到媒体库.JPG。在HTML中的IMG SRC是:

<img src="/media/image01.jpg" /> 

现在我想要做的是改变形象的名字,那就是image01.jpg到更方便的名字。我可以轻松更改存储库中图像的名称。但是,如何更新pypandoc输出的HTML中的img src标签?

谢谢

回答

0

我只是把每个上传到自己的目录(uploadX/index.htmluploadX/media/imageY.jpg等)。

或者至少在转换为HTML之后进行重命名(比docx更适合工作),例如,在文件名前加一个唯一的ID,如uploadX_imageY.jpg,然后使用类似HTMLParser的东西来调整链接。

+0

谢谢。我用美丽的汤来修改HTML。有效。 –

+0

@ ArunabhGhosh太棒了!然后随时接受并upvote答案:) – mb21

0

我认为问题实际上是连接到docx。在这些文档中,每个图像都有自己的名称,即使它是隐藏的。你可以用图像处理来检查它 - 当然,自动命名是! - imageXX!所以,我建议改变文档本身的图像名称,然后再次转换。

如果你有太多的图像,你想以某种方式自动执行此过程,请尝试一些十六进制编辑器(我建议在Linux中使用ghex)以及“搜索和替换”功能。你可以用“东西”替换“图像”,结果文件将是“somethingXX.jpg”

+0

我可以在python中做上述事情吗?情况是我要求用户上传docx文件。我收到docx文件,然后将其转换为python。那么是否有一个编辑器拥有一个可以搜索图像并更改其名称的Python模块? –

+0

当然这是可能的,但我不确定它是否真的是你的情况中的一个功能。你想要达到什么?假设用户在他的docx中正确地命名了他的照片 - 然后他得到了好名称的文件。在其他情况下 - 他获得imageXX的东西。这听起来对我来说完全没问题。 无论如何:尝试https://github.com/mikemaccana/python-docx –

+0

当用户上传另一个文件时,它也具有与image01.jpg同名的图像。所以这些图像取代了以前的图像。所以我想给所有的图像一个独特的名字,以便它不能被替换。感谢您的上述链接! –