【发布时间】:2012-08-03 15:17:13
【问题描述】:
我的应用程序正在使用 PyQt4 和 Python3(我不知道如何将其反向移植到 python2.7)。我需要导出 PDF 并打印到纸上。由于 ReportLab 和 POD 都支持 python3,因此我对报告工具的搜索无处可去。不知何故,我设法用这种……麻烦的方式创建了 PDF 文件。
tekstStampa = (str("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%sIme stranke: %s%sBroj predmeta: %s%sSudski broj: %s%s%sPredmet otvoren: %s%sDatum rasprave: %s u %s sati%s%sStatus stranke: %s%sStatus predmeta: %s%sTip postupka: %s%sVrednost spora: %s dinara.%s%sSud: %s%sSudska jedinica: %s%sSudija: %s%s%sNapomena: %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s" %
(zaglavlje1,'<br>',zaglavlje2,'<br>',zaglavlje3,'<br>',zaglavlje4,'<br>','<br>',
linija,'<br>','<br>','<br>',prazno50,zaglavlje5,brPredmeta,'<br>',prazno51,'<font size="1">datum štampanja: ',datumStampe,'</font><br>','<br>',
tempime, '<br>',brPredmeta,'<br>', tempsudskibr,'<br>','<br>',
tempdatumtuzba, '<br>', tempdatumRas,tempvreme,'<br>','<br>',
tempstatusstr,'<br>',tempstatusPredmeta,'<br>',temptip,'<br>',tempvrednost,'<br>','<br>',
tempsud,'<br>',tempsudska,'<br>',tempsudija,'<br>','<br>',
'<br>',tempnapomena,'<br>','<br>',
linija, '<br>', '<br>',futer1,'<br>',
futer2,'<br>',
futer3,'<br>',
futer4,'<br>',
futer5,'<br>',)))
self.ui.textStampa.setHtml(str(tekstStampa).replace('\\n','\r'))
如您所见,它非常混乱,但输出看起来可以接受。不太好,只能接受。 Example
现在,我需要生成一些东西like this。列应放置在固定位置,列宽是预先确定的。行是从列表中生成的,列表是从数据库中查询的。查询很好,我可以得到数据,但是页面格式正在杀死我。
我曾尝试使用 HTML 标签(即预格式化文本的 PRE,但它看起来很难看)但我无法完成我想要的。
提前谢谢你。
【问题讨论】:
-
好的,我发现了一些有用的东西;可以(呃!)编写纯 HTML 并像这样格式化它。好的! stackoverflow.com/questions/9263556/…
-
这个解决了。使用 HTML 语法,将其放入 QTextEdit,然后打印它是要走的路。
-
几个小时后,SO应该让您自己发布答案并接受它。
标签: pdf python-3.x pyqt reporting