0

Django 1.4 を使用して Web アプリを作成しています。次のコードを使用して、ビューの 1 つに mirosoft ワード ドキュメントを出力させたいと考えています。

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作成する必要があります(したがって、文字列がすべてユニコードであることを確認してください)。

于 2012-05-04T07:40:24.320 に答える