2016-05-15 66 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同名的圖像。所以這些圖像取代了以前的圖像。所以我想給所有的圖像一個獨特的名字,以便它不能被替換。感謝您的上述鏈接! –