如何在PHP中将html转换为doc

时间:2011-02-11 23:58:52

标签: php html doc

我需要将html文件转换为doc。 我正在使用html2pdf进行pdf转换。

html2doc是否有任何类型的库?

(PS必须是免费/开源的)

修改

在Mark Eirich评论之后......

这是两个截图。 Word文档没有正确对齐。检查word文档中的y滚动。 WORD document, check y scroll..

html file, on browser..

身体标签是: -

<body style="margin-left:350px; margin-right:350px;">

我试图调整它但没有效果..

编辑2

在Mark Eirich第二次发表评论之后,我开始知道单词是在像素中处理事物而不是在%年龄。我有最后一期背景..任何帮助..请检查两个屏幕截图。不同的是外盒。那就是html生成的文档看起来很奇怪。

Original word file

html generated doc file

2 个答案:

答案 0 :(得分:5)

答案IMO不会,原因如下:

Microsoft Office Documents的设计方式非常复杂,不仅有一个带有对象(如图像)引用的格式化文件,本身还有一个类型od文件系统来管理这些对象的二进制数据。

让我从我们自己的乔尔那里引用一句话:

  

如果您开始阅读这些文档,希望花一个周末写一些可以将Word文档导入您的博客系统的漂亮代码,或者使用您的个人财务数据创建Excel格式的电子表格,那么规范的复杂性和长度可能会得到解决你的那种愿望很快就会变得很快。一个普通的程序员会得出Office的二进制文件格式:

  • 故意混淆
  • 是痴呆Borg心灵的产物
  • 是由疯狂的程序员创建的
  • 并且无法正确阅读或创建。
  

你在四个方面都错了......

进一步了解可能的解决方案:

  

如果您真的想要生成花哨的格式化Word文档,最好的办法是创建一个RTF文档。 Word可以做的所有事情都可以用RTF表达,但它是一种文本格式,而不是二进制格式,因此您可以更改RTF文档中的内容并且它仍然有效。您可以使用Word中的占位符创建格式良好的文档,另存为RTF,然后使用简单的文本替换,即时替换占位符。现在你有一个RTF文档,每个版本的Word都会愉快地打开。

@source:http://www.joelonsoftware.com/items/2008/02/19.html

您旅程中可能感兴趣的一些链接:

虽然,尝试使用winrar打开word文件;),也许创建包含某些标题的存档然后更改扩展就足够了,从不尝试

答案 1 :(得分:1)

要转换为Microsoft Word,您需要启用COM的服务器(在其上运行Windows和Office)。如果你有这样的服务器

$word = new COM("word.application") or die ("couldnt create an instance of word"); 

应该工作!请阅读http://php.net/manual/en/book.com.php了解详情。

否则,您在html2doc上的最佳镜头是html2rtf,这是通过http://paggard.com/projects/rtf.generator/http://sourceforge.net/projects/phprtf/等库实现的。

然后在创建RTF之后,使用doc标题

将其提供给浏览器
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");

如果用户有单词,那么它将打开以处理该文件。

同样保存rtf作为doc是可以的,并且在布局视图中将打开单词而不会有任何抱怨。 您也可以使用上面的标题提供HTML,但问题是Word将在Web视图中打开,这很糟糕:)