将HTML(tinyMCE)转换为WORD(.docx)

时间:2012-02-22 10:23:09

标签: php html ms-word tinymce

我已经成功地使用https://github.com/djpate/docxgen生成.docx文档,但只要我尝试包含TinyMCE文本,我就再也无法打开该文档了。 (无效的char)。

在将HTML文本提供给docxgen以避免此类错误之前,有没有办法转换HTML文本?

3 个答案:

答案 0 :(得分:6)

最后,我决定使用这个答案来创建一个doc(只需输出html,Word就能识别它):

    header( 'Content-Type: application/msword' ); 
    header("Content-disposition: attachment; filename=" .date("Y-m-d").".doc");  
    /*
    header("Content-type: application/vnd.ms-word");
    header("Content-disposition: attachment; filename=" .date("Y-m-d").".rtf");
    */
    $html = preg_replace('%/[^\\s]+\\.(jpg|jpeg|png|gif)%i', 'http://www.akubocrm.com\\0', $html);

    print "<html xmlns:v=\"urn:schemas-microsoft-com:vml\"";
    print "xmlns:o=\"urn:schemas-microsoft-com:office:office\"";
    print "xmlns:w=\"urn:schemas-microsoft-com:office:word\"";
    print "xmlns=\"http://www.w3.org/TR/REC-html40\">";
    print "<xml>
     <w:WordDocument>
      <w:View>Print</w:View>
      <w:DoNotHyphenateCaps/>
      <w:PunctuationKerning/>
      <w:DrawingGridHorizontalSpacing>9.35 pt</w:DrawingGridHorizontalSpacing>
      <w:DrawingGridVerticalSpacing>9.35 pt</w:DrawingGridVerticalSpacing>
     </w:WordDocument>
    </xml>
    ";

    die($html);

答案 1 :(得分:3)

我决定使用库http://www.phpdocx.com/的专业版,因为它简化了整个过程。我希望它能满足我的需求。

答案 2 :(得分:0)

另一种解决方案是使用刚刚出版的http://htmltodocx.codeplex.com/

然而,我尝试了它并且弄乱了我的发票(授予我使用的桌子,我不应该这样)

吉姆