
1 C0VN 2013 年 11 月 17 日 |
2 beordle 2013 年 11 月 18 日 这个问题我倒是非常有发言权。reportlab 我使用过。他对中文支持存在一定问题。在网上找到一定的解决方案后,也是在中文排版上有很大缺陷的。我最后使用了python-docx.但是这个库只能从0开始生成docx. 查阅资料后发现2007版本的docx是zip压缩的开放xml。所以我这样来做。虽然使用了python-docx库。。但是只用到了一个常量。进行模板生成。大概这样唯一的缺陷就是只能office2007+以上版本使用了吧。 from docx import * def replace_docx(zip_buf,dict): memory=StringIO.StringIO() memory.write(zip_buf) mydoc = zipfile.ZipFile(memory) xmlcOntent= mydoc.read('word/document.xml') document = etree.fromstring(xmlcontent) body = document.xpath('/w:document/w:body', namespaces=nsprefixes)[0] for key,value in dict.items(): body = replace(body, key, value) xmlcOntent= etree.tostring(document, pretty_print=True) mydoc.close() zf = zipfile.ZipFile(memory, "a", zipfile.ZIP_DEFLATED, False) zf.writestr('word/document.xml',xmlcontent) zf.close() return memory.getvalue() |
3 tywtyw2002 OP @beordle 但是 docx怎么生成pdf呢 因为文件不能更改呀 |
4 ericls 2013 年 11 月 18 日 via Android 我一直用django生成pdf |
5 chuangbo 2013 年 11 月 18 日 如果不一定用 Python 库的话,http://www.princexml.com/ 挺好的 |
6 2013 年 11 月 18 日 要求不高的话,reportlab应该够用了。 中文加个字体就解决了。 排版的话,不清楚二楼说的缺陷是什么,只是感觉所有内容都是用函数画的,比较费力,没有直观一点的可视化编辑 |
8 beordle 2013 年 11 月 19 日 @wuyazi @tywtyw2002 得用msoffice或是 openoffice的程接口弄.但不符合pure python要求.我做程序的候倒是不一定要求pdf格式.在我做的.那些reportlab可以解.可能是我弄好.因reportlab是唯一的python pdf了 |
9 wangyongbo 2013 年 11 月 21 日 pyPdf 也可以操作 pdf。reportlab 自己加上中文字体 就好了。大部分都能解决。 |
10 beordle 2013 年 11 月 23 日 @wangyongbo pypdf只是切割pdf 不能渲染生成啊 |
11 hit9 2013 年 12 月 10 日 See pdfkit & wkhtmltopdf 不过wkhtmltopdf的issues很多!但是速度好,生成的也漂亮 |