Hierfür benutze ich den QPainter, da meine Pdf von Informationen aus einer Destopapplikation entsteht welche ich mit PyQt5 erstellt habe.
Kopfzeile und und Fußzeile bekomme ich hin.
Leider mach ich noch etwas falsch ein Bild und eine horizontale Linie einzufügen.
Ich möchte gerne oben rechts ein Logo stehen haben und darunter über die ganze Seite einen horizontalen Strich.
Hier mein code
Code: Alles auswählen
def paintPage(self,pageNumber, pageCount, painter, doc, textRect, footerHeight):
painter.save()
textPageRect = QtCore.QRectF(QtCore.QPointF(0, pageNumber * doc.pageSize().height()), doc.pageSize())
painter.setClipRect(textRect)
painter.translate(0, -textPageRect.top())
painter.translate(textRect.left(), textRect.top())
doc.drawContents(painter)
painter.restore()
footerRect = QtCore.QRectF(textRect)
footerRect.setTop(textRect.bottom())
footerRect.setHeight(footerHeight)
headerRect = QtCore.QRectF(textRect)
headerRect.setTop(textRect.top())
headerRect.setHeight(2 * footerHeight)
# draw footer
painter.save()
pen = painter.pen()
pen.setColor(QtCore.Qt.black)
painter.setPen(pen)
painter.drawText(footerRect, QtCore.Qt.AlignCenter, "Seite {} von {}".format(pageNumber + 1, pageCount))
painter.drawText(headerRect, QtCore.Qt.AlignLeft, "{}\n{}".format('Projektname:', 'Projektnummer:'))
painter.drawPicture(headerRect, QtCore.Qt.AlignRight, "beispiel_bild.png") ## funktioniert leider nicht
painter.drawLine(headerRect, QtCore.Qt.AlignCenter) ## funktioniert leider nicht
painter.restore()