Django output word files(.doc),only show raw html in the contents

后端 未结 1 1148
春和景丽
春和景丽 2021-01-01 08:16

I am writing a web app using Django 1.4.I want one of my view to output mirosoft word docs using the follwoing codes:

response = HttpResponse(view_data, cont         


        
相关标签:
1条回答
  • 2021-01-01 08:43

    Unless you have some method of converting your response (here HTML I assume) to a .doc file, all you will get is a text file containing your response with the extension .doc. If you are willing to go for .docx files there is a wonderful python library called python-docx you should look in to that allows you to generate well formed docx files using the lxml library.

    Alternatively, use a template such as:

    <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>
    

    This should, according to this asp.net forum post make a valid .doc file when returned as mime type application/msword using UTF-8 charset (so make sure strings are all unicode).

    0 讨论(0)
提交回复
热议问题