0

我正在使用 Django 1.4 编写一个 Web 应用程序。我希望我的一个视图使用以下代码输出 mirosoft word 文档:

response = HttpResponse(view_data, content_type='application/vnd.ms-word')
response['Content-Disposition'] = 'attachment; filename=file.doc'
return response

然后,我可以成功下载file.doc,但是当我打开.doc文件时,我只找到这样的原始html

<h1>some contents</h1>

不是标题1 标题。

我是 python 和 Django 的新手,我知道这可能是 html 转义的一些问题,有人可以帮我解决这个问题吗?谢谢 !:)

4

1 回答 1

2

除非您有某种方法将您的响应(这里我假设为 HTML)转换为 .doc 文件,否则您将得到的只是一个包含扩展名为 .doc 的响应的文本文件。如果您愿意使用 .docx 文件,那么您应该查看一个名为python-docx的精彩 Python 库,它允许您使用 lxml 库生成格式良好的 docx 文件。

或者,使用模板,例如:

<html>
<head>
<META HTTP-EQUIV=""Content-Type"" CONTENT=""text/html; charset=UTF-8"">
<meta name=ProgId content=Word.Document>
<meta name=Generator content=""Microsoft Word 9"">
<meta name=Originator content=""Microsoft Word 9"">
<style>
@page Section1 {size:595.45pt 841.7pt; margin:1.0in 1.25in 1.0in 1.25in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-paper-source:0;}
div.Section1 {page:Section1;}
@page Section2 {size:841.7pt 595.45pt;mso-page-orientation:landscape;margin:1.25in 1.0in 1.25in 1.0in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-paper-source:0;}
div.Section2 {page:Section2;}
</style>
</head>
<body>
<div class=Section2>
'Section1: Portrait, Section2: Landscape

[your text here]

</div>
</body>
</html>

根据这个 asp.net 论坛帖子application/msword,当使用charset 作为 mime 类型返回时,这应该会生成一个有效的 .doc 文件UTF-8(因此请确保字符串都是 unicode)。

于 2012-05-04T07:40:24.320 回答