Ich bin neu hier im Forum, weil ich trotz der guten Dokumentation gerade nicht weiter weiß und auf eure Erfahrung hoffe.
Folgende Unsicherheit:
Ich habe hier ein kleines Programm geschrieben, dass zur Erstellung von Rechnungen dient. Man kann es sich als angeordnetes Formular mit ein paar Zusatzfunktionen vorstellen. Einträge werden über Eingabefelder (QLineEdit) vorgenommen und wiederkehrende Informationen und ein Logo sind via Labels realisiert.
Die Rechnung soll dann auch gedruckt werden, was ich zunächst wie folgt gelöst habe:
Code: Alles auswählen
QPixmap pix(widget->size());
widget->render(&pix);
QPrinter drucker(QPrinter::ScreenResolution);
QPrintDialog printDialog(&drucker);
if (printDialog.exec() == QDialog::Accepted) {
QPainter painter;
painter.begin(&drucker);
painter.drawPixmap(0,0,pix);
drucker.setPaperSize(drucker.A4);
painter.end();
}Ich habe das "widget" auf Din A4 und 96 Dpi ausgelegt. Alle Positionsangaben für Labels und LineEdits sind dementsprechend in Pixel umgerechnet.
Wenn ich nun eine höhere Druckqualität haben möchte, wie müsste ich dann vorgehen?
Ist es ratsam, einfach einen höheren Dpi-Wert zu verwenden (z.B. 300)? Oder sollte ich anstelle von QWidget::render den Text aller Elemente auslesen und mit Hilfe von QPainter::drawText zeichnen lassen?
Oder ist am Ende sogar beides ratsam?
Falls ich den Dpi-Wert höher setze, wie würde sich das mit der Schriftgröße verhalten? Skaliert die dann dementsprechend mit? Müsste ich dann z.B. bei 192 Dpi nun eine Schriftgröße von 24 Bildpunkten nehmen, wenn ich vorher bei 96 eine Größe von 12 hatte? So würde ich es annehmen, aber vielleicht geht das auch einfacher und ich muss die Schriftgrößen nicht per Hand ändern?
Abschließend noch eine Frage zu Bildern. Ich lade in dem Programm ein Bild des jpg-Formats. Auf meinem PC funktioniert das ganze auch (wenn die nötigen Bibliotheken, die anfangs per Fehlermeldung beim Ausführen des Programms erscheinen, hinzugefügt wurden). Auf anderen Rechnern funktioniert das nicht. Auch wenn ich einen FileDialog einbaue kann das Bild nicht geladen werden. Fehlt da noch eine Bibliothek? Mit qjpeg4.dll hab ich es schon probiert, geht aber auch nicht.
So, ich hoffe mir kann geholfen werden
Gruß,
dschornae