php實現word轉html文檔的例子

來源:互聯網
上載者:User

要想完美解決,office轉pdf或者html,最好還是用windows office軟體,libreoffice不能完美轉換,wps沒有api。

先確認com模組是不是開啟,phpinfo裡面如果有com_dotnet模組,說明已開啟,如果沒有,修改php.ini,
com.allow_dcom = true

前面的注釋去掉,重啟就OK了,php官方網站說,php5.4.5之前,com模組是內建的,其實也不一定全是,官網下的php 5.3.39,com模組就沒有內建。

如果不是內建模組的話,php.ini加上,前提你的ext檔案夾下,有該擴充

extension=php_com_dotnet.dll

然後重啟就OK了


function word2html($wordname,$htmlname) 
 { 
 $word = new COM("word.application") or die("Unable to instanciate Word"); 
 $word->Visible = 1; 
 $word->Documents->Open($wordname); 
 $word->Documents[1]->SaveAs($htmlname,8); 
 $word->Quit(); 
 $word = null; 
 unset($word); 
 } 
 
word2html('D:/www/test/6.docx','D:/www/test/6.html'); 

注意:

1,轉換出來的html,查看源碼,比較亂的
2,轉換過程中會調用winword.exe
3,如果頁面一直在載入,把文檔重新命名,然後在重新轉。

補充一個例子


function lego_clean($text) {  
 
    $text = implode("\r",$text);  
 
    // normalize white space  
    $text = eregi_replace("[[:space:]]+", " ", $text);  
    $text = str_replace("> <",">\r\r<",$text);  
    $text = str_replace("<br>","<br>\r",$text);  
 
    // remove everything before <body>  
    $text = strstr($text,"<body");  
 
    // keep tags, strip attributes  
    $text = ereg_replace("<p [^>]*BodyTextIndent[^>]*>([^\n|\n\015|\015\n]*)</p>","<p>\\1</p>",$text);  
    $text = eregi_replace("<p [^>]*margin-left[^>]*>([^\n|\n\015|\015\n]*)</p>","<blockquote>\\1</blockquote>",$text);  
    $text = str_replace(" ","",$text);  
 
    //clean up whatever is left inside <p> and <li>  
    $text = eregi_replace("<p [^>]*>","<p>",$text);  
    $text = eregi_replace("<li [^>]*>","<li>",$text);  
 
    // kill unwanted tags  
    $text = eregi_replace("</?span[^>]*>","",$text);  
    $text = eregi_replace("</?body[^>]*>","",$text);  
    $text = eregi_replace("</?div[^>]*>","",$text);  
    $text = eregi_replace("<\![^>]*>","",$text);  
    $text = eregi_replace("</?[a-z]\:[^>]*>","",$text);  
 
    // kill style and on mouse* tags  
    $text = eregi_replace("([ \f\r\t\n\'\"])style=[^>]+", "\\1", $text);  
    $text = eregi_replace("([ \f\r\t\n\'\"])on[a-z]+=[^>]+", "\\1", $text);  
 
    //remove empty paragraphs  
    $text = str_replace("<p></p>","",$text);  
 
    //remove closing </html>  
    $text = str_replace("</html>","",$text);  
 
    //clean up white space again  
    $text = eregi_replace("[[:space:]]+", " ", $text);  
    $text = str_replace("> <",">\r\r<",$text);  
    $text = str_replace("<br>","<br>\r",$text);  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.