在PHP中将HTML转换为DOC

时间:2014-12-09 07:15:53

标签: php html docx doc

我正在通过php header函数进行html到doc转换。转换后的文件以doc格式保存。但是当我编辑并保存它时,它会创建一个与doc文件名同名的文件夹,其中包含三个文件(themedata.thmx,filelist.xml,colorschememapping.xml)。 我正在使用以下代码生成doc。

header("Cache-Control: ");
header("Pragma: ");
header('Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Disposition: attachment; filename="'.$filename.'.doc"');

我想在纯doc文件中转换它,请帮助解决这个问题。

我已尝试过许多其他插件将HTML转换为DOC,例如: - 1. Pandoc: - 它将html转换为docx但不从html文件中挑选样式和图像 2. PHPWord: - 我没有在PHPWord中找到任何选项来将完全样式化的HTML转换为docx。它是按功能创建docx(addTable,addCell),我不想要它 3. htmltodocx.codeplex.com: - 这个插件需要一些特定的风格。它不支持所有的CSS 4. unoconv: - 找不到工作。
5.开放办公室: - 没有找到任何功能性命令。

1 个答案:

答案 0 :(得分:2)

只需更改文件扩展名即可更改文件格式。你认为你可以通过将文件名从.pdf更改为.mp4来将PDF转换为电影吗?我希望不会,因为它没有任何意义。

发生的事情是您告诉浏览器保存扩展名为.doc的HTML文件的数据。当您双击该文件以将其打开时,Word将打开(因为它与.doc扩展名相关联)。 Word是愚蠢 误导宽容,足以识别该文件实际上并不包含Word DOC数据,而是HTML,并且它会在不告诉您的情况下即时为您转换。<登记/> 当您保存此文件时,它会为其创建一个实际的DOC / DOCX文件;但显然这种情况并不干净,容器正在破裂。

你在Microsoft Word中看到的是一种不当行为(在几个层面上)。

您应该开始做的是创建一个实际的Word文档,例如使用https://github.com/PHPOffice/PHPWord