如何将图像添加到php创建的MS Word文档中?

时间:2010-01-29 23:25:22

标签: php image ms-word

这是我的代码,大大被截断了。

<?php
    session_start(); 
    header("Content-Type: application/msword");
    header('Content-Disposition: attachment; filename="Contrat d\'étude.doc"');
?>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>

    <body>
        <p align="right">Version: A</p>
        <img src="img/logoPoly.png" alt="École Polytechnique de Montréal" />

        <h1>CONTRAT D'ÉTUDES HORS QUÉBEC</h1>
        ............

我在这里尝试使用常规img标签添加图像,但是一旦在用户的计算机上,路径就不起作用了,显然..那我怎么能这样做呢?

顺便说一句,元标记是设置字符集的好方法吗?或者有更好的方法,也许使用php头函数?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您的代码中是否有截断的内容将所有HTML转换为MS Word文件?

因为......呃...你知道保存一个带有.doc扩展名的HTML文件实际上并不是一个Word文件,对吗?

如果你有HTML,只需将其作为HTML提供,用户可以使用浏览器自己的“保存带图像的网页”功能来保存图像。或者你可以写一个MHTML文件,包括里面的图像。

但HTML文件隐藏在DOC文件扩展名下并不是真正有效的格式。如果Word设法加载/导入该东西,那么你不应该依赖它;要求它拖动图像也是要求用棍子上的月亮。

是的,meta是在提供您希望人们保存的HTML文件时设置字符集的唯一方法。 Content-Type标题通常也是放置它的好地方,但是一旦文件保存在不支持保存类型元数据的文件系统上(当前,所有受欢迎的文件),该信息将丢失文件系统)。

顺便提一下,像é这样的非ASCII字符完全不可靠,不能包含在filename标头参数中。它们被视为不同的编码,具体取决于浏览器(以及IE,也包括语言环境),并且没有标准的方法来转义它们。将非ASCII字符放在下载文件的文件名中的唯一可靠方法是将它们保留为尾随URL部分,编码为UTF-8。例如:

http://www.example.com/download.php/Contrat%20d%27%C3%A9tude.doc

答案 1 :(得分:0)

在MS WORD上创建模板(添加一些图像),并将其另存为doc文件。在notepad ++或smth代码编辑器上打开此文件,将所有代码复制到php文件中并添加您的php变量。 要添加图像,您需要将图像转换为base64格式。如果你注意到word文件代码,添加的图像是一些基于字符的格式。