2013-01-24 87 views
7

將內容發送到我的網站的用戶使用Word,因此我得到大量Word文檔以轉換爲HTML。我只想保存基本格式 - 標題,列表和重點 - 沒有圖像。從MS Word或Libre Office清除HTML

當我轉換他們與自由報辦公室「另存爲HTML」,生成的文件是巨大的,例如,112K一個doc文件變成450K HTML,大部分無用字體和SPAN標籤(出於某種原因,每一個標點符號被包含在它自己的範圍內!)。

我試過這個腳本:基於tidy和sed的http://www.techrepublic.com/blog/opensource/how-to-convert-doc-and-odf-files-to-clean-and-lean-html/3708,它將尺寸縮小到約150K,但仍然有許多無用的SPAN。

我試着複製並過去Kompozer--一個HTML編輯器,然後另存爲HTML;但它將所有非拉丁文(希伯來語)字母轉換爲實體,例如「ְ」,其大小增加到750K!

我試圖docvert:https://github.com/holloway/docvert/issues/6但發現它需要一個Python庫,需要另一個庫等,這似乎是依賴無盡的路線......

有一個簡單的方法來創建乾淨的HTML來自Office文檔?

+0

這可能是一個重複:http://stackoverflow.com/questions/67964/what-is-the-best-free-way-to-clean-up-word-html/1813798#1813798 –

回答

0

在您的情況下,您可能需要逐行轉換Word文檔的主要部分,然後返回並清除所有其他標籤。如果你不介意這種方法,然後再考慮這種解決方案

  1. 保存Word文檔作爲一個網頁後,在記事本中打開同一網頁 ++。
  2. 然後使用該文檔
  3. 替換功能,在查找內容框中,鍵入< [^>] +>
  4. 在此同一 窗口搜索模式中,選擇「正則表達式」

現在您只需點擊查找下一步,直到您想要替換的標籤,然後單擊需要替換的每個標籤的替換。確保「替換爲:」框爲空。

我不知道是否有更方便的方法,但這種方式是100%免費和簡單的HTML標記清理處理通過Notepad ++。

至於將內聯樣式外部CSS(我建議作爲替代不必要的標籤後的第二個過程),試試這個程序... http://inlinecssextractor.com/home.html

好運

+0

使用Notepad ++可以成爲單個文檔的解決方案,但是,由於每週都有新文檔發佈,因此我不希望對每個文檔重複同樣的替換。 –

0

,我發現這兩個清潔工相當有效。首先,我跑過濾HTML字通過

http://textism.com/wordcleaner/

然後我用了一些正則表達式來一些項目符號段落的項目轉換爲列表(LI)。然後我跑的結果通過

http://infohound.net/tidy/

包裝與無序列表(UL)標籤列表項和清理其他錯誤。我對從1.5M到225K的結果感到非常滿意。

0

我一直在使用http://word2cleanhtml.com/,直到我意識到MS Word本身提供了將文檔保存爲HTML的選項。

選擇此項時,.docx文件將變爲.html,並且是我見過的word文檔的最佳html版本。它當然比所有這些在線工具都好。

1

我意識到這個問題是舊的,但其他答案從來沒有真正回答過這個問題。如果您不是不利編寫一些PHP代碼中,CubicleSoft終極網站刮板工具包有一類叫做TagFilter:

https://github.com/cubiclesoft/ultimate-web-scraper/blob/master/support/tag_filter.php

您傳遞兩兩件事:選擇和數據的數組解析爲HTML。

爲了清理破損的HTML,TagFilter :: GetHTMLOptions()的默認選項將作爲一個很好的起點。這些選項構成了有效HTML內容的基礎,除此之外,它將把所有輸入數據清理成其他工具,如Simple HTML DOM可以在DOM模型中正確解析的內容。

但是,使用該類的另一種方式是修改默認選項並向選項數組添加「回調」選項。對於HTML中的每個標記,都會調用指定的回調函數。預計回調將會返回每個標籤的處理方式,TagFilter的真正威力在哪裏發揮作用。您可以保留任何給定標籤及其部分或全部屬性(或修改它們),擺脫標籤但保留內容,保留標籤但擺脫內容,修改內容(關閉標籤)或擺脫標籤和內部內容。這種方法可以非常精確地控制那些最複雜的HTML,並一次處理輸入。有關TagFilter的示例用法,請參閱同一存儲庫的測試套件。

唯一的缺點是回調必須跟蹤每次調用之間的位置,而像Simple DOM DOM這樣的東西會根據類似DOM的模型來選擇東西。但這只是一個缺點,如果正在處理的文檔具有'id'和'class's之類的東西......大多數Word/Libre HTML內容不會,這意味着它是一個巨大的無法識別/不可解析的HTML blob,就DOM處理工具而言走。

0

以下是一組PowerShell腳本,它們將清理Word過濾的HTML,並在95%的時間內正確標記超/下標。 (不,你不能得到比這更好的,將Word打印製作。)

https://github.com/suzumakes/replaceit

指令是那裏的自述,如果你碰巧遇到需要被捕獲或者來任何其他字符隨着任何調整/改進,我很樂意看到你的拉動請求。

0

ophir.php在從.odt文件製作乾淨的HTML方面做得非常好。你需要一個PHP宿主環境來運行它。