在django中输出doc文件

时间:2014-05-24 05:54:04

标签: python django

我想将结果输出到doc文件中。我已经在pdf中得到了结果 使用

pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), dest=result, link_callback=fetch_resources )

我想在python-docx中使用上面的替代代码。请提供任何链接,其中给出了python docx的详细示例。 但同样的文件在天秤座办公室开放。我不知道怎么做。 我用了

report_mail(request,result,email,message)
            response = HttpResponse(result.getvalue(), content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document')
            response['Content-Disposition'] = 'attachment; filename=file.docx'
            return response

也将输出作为file.docx。但它没有在ms office professional 2010开放。 我收到错误"文件无法打开,因为内容细节存在问题: - 文件已损坏且无法打开"

content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document'
response['Content-Disposition'] = 'attachment; filename=file.doc'

将原始数据存入文件

%PDF-1.4
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary 
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
 /F2 3 0 R >>
endobj
% 'F1': class PDFType1Font 
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
 /Encoding /WinAnsiEncoding
 /Name /F1
 /Subtype /Type1
 /Type /Font >>
endobj

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

Pisa是一种将HTML转换为PDF的工具。它读取html源并提供pdf文件。这就是你得到的。到目前为止一切都很好。

将文件扩展名从.pdf更改为.doc.docx不会更改其内容。你很幸运LibreOffice能够打开pdf文件。 Microsoft Office不是。

使用docx创建python-docx与使用pisa获取pdf不同。再次:pisa将html转换为pdf,python-docx不会将html转换为docx。这需要更多步骤。

根据python-docx文档,您需要使用Document这样的对象:

from docx import Document
[...]

document = Document()

document.add_heading('Document Title', 0)
[...]
document.save('demo.docx')

您需要逐步向文档中添加内容。