So ganz ist mir Dein Problem immer noch nicht klar. Mit dem folgenden Code kann ich alles einstellen, was ich aus Deinen Posts an Anforderungen herauslese:
Code
Ich hab die Sache mit print-to-PDF getestet, sogar das Bildchen hat er mitgedruckt. Alles, was an Rand dann bei einem physischen Drucker bleibt, müßte dessen Harwarebeschränkung sein.
Wie mir scheint, ist QTextDocument auch zum Drucken von Bildern geeignet, wie weit hier die HTML-Unterstützung geht, weiß ich allerdings nicht (zur Not gäbe es da ja auch noch QWebKit). Sollte Dein Problem in nicht allzu exotischem HTML darstellbar sein, ist der Weg über QTextDocument sicher der einfachste. (Vllt. kannst Du ja einen Dummyausdruck posten, so, wie er am Ende aussehen soll)
zum Randproblem:
Assoziiere doch mal den Drucker mit dem QPainter, laß Dir den Viewport ausgeben, und zeichne da mal ein leeres Rechteck in Viewportgröße. So müßtest Du für alle Drucker den Rand finden können.
Irgendwie so:
Code: Alles auswählen
painter = QPainter(<QPrinter-Instanz>)
rect = painter.viewport()
# zeichne Rechteck in rect-Größe usw.
Opensuse zeigt den bedruckbaren Bereich eines CUPS-Druckers mit einer Testseite an, was natürlich einfacher wäre.