我正在为需要预先存在的HTML页面的客户端编写一个PHP应用程序,该页面已经创建为“导出”为Word文件。简单地说,这是它是如何做:使用HTML文件作为Word文件时的新行格式?
if (isset($_GET["word"])) {
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=some_file.doc");
}
这当然会,如果一个“字”标志位于页面查询字符串调用,如:
whateverpage.php?somequery=string&someother=test&word
不管怎么说,我的问题是,尽管这个HTML页面实际上有多复杂,但它通过改变内容类型实际上很好地转换为格式良好的Word文件。我遇到的唯一问题是新的换行符(HTML <br>标签)格式不正确。例如: - 在我的HTML,如果我有东西,看起来像
Aug 01
与线之间的BR,它最终总是显示
Aug 01在生成的Word文件
。
我已经做了一些谷歌搜索和大量的测试与其他各种东西,但似乎没有什么格式正确的简单的新行。
有谁知道如何正确格式化从HTML文件创建的Word文件中的新行字符?
任何帮助是极大的赞赏。
编辑:
我已经试过包裹所述线路在P标签,鼻翼:
<p>Aug<br>01</p>
没有运气。我还尝试制作基本文档和Word,将其保存为HTML文件并查看生成的(即草率的)Word HTML源代码。那里有一些我认为可能会给我提供线索的CSS,但我尝试了一切,似乎没有任何东西可以正常工作。 Word似乎添加了一个'MsoNormal'类来包装段落,我试图添加这个,但它只是删除任何字体格式,我有和没有帮助。这里是CSS Word创建自己:
p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;}
好吧,我只是试过这个,但它仍然是在Word文件中的输出。我会编辑我的原始问题,以表明我以前尝试过的内容。 尽管感谢您的协助。 – theotherlight
对不起,我忍不住。也许你应该尝试研究一个Word文件的工作方式以及你的浏览器如何渲染Word文档。 – Eddie
对于它的价值,Word文件不会在浏览器中呈现。切换内容类型会强制HTML文件在Microsoft Word中呈现(弹出“打开/另存为”对话框),这导致我相信它不应该与浏览器呈现有关? – theotherlight