Stampare PDF (QPrintDialog)
-
Salve a tutti.
Sto cercando di stampare un PDF però , nel momento in cui mi si dovrebbe aprire il dialog per la scelta della stampante, ricevo il seguente errore:QPrintDialog: Cannot be used on non-native printers
Il codice che sto utilizzando è il seguente:
QTextDocument *document = new QTextDocument(); document->setHtml(strStream); QPrinter printer(QPrinter::HighResolution); printer.setPageSize(QPrinter::A4); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName("Report.pdf"); document->print(&printer); QPrintDialog *dialog = new QPrintDialog(&printer, NULL); if (dialog->exec() == QDialog::Accepted) { document->print(&printer); } delete document;
Premetto che il file viene creato correttamente.
Il dialog per la selezione della stampante mi viene fuori solo se modifico questi parametri
printer.setOutputFormat(QPrinter::NativeFormat); printer.setOutputFileName("Report");
A quel punto però mi genera un file che è tutto che un PDF.
Qualcuno sa darmi qualche dritta? Grazie per il tempo che mi dedicherete :)
PS: Ovviamente ho incluso
#include <QPrinter>
#include <QPainter>
#include <QProgressDialog>E
printsupport nel .PRO file
-
Non mi e' chiaro lo scopo finale.
Vuoi che il tuo documento venga salvato in pdf o vuoi prendere un pdf esistente e stamparlo su una stampante fisica?
Nel frattempo: https://wiki.qt.io/Handling_PDF
-
Ok quindi la prima stampante stampa su pdf ora te ne serve un'altra che stampi fisicamente:
QTextDocument document; document.setHtml(strStream); QPrinter pdfPrinter(QPrinter::HighResolution); pdfPrinter.setPageSize(QPrinter::A4); pdfPrinter.setOutputFormat(QPrinter::PdfFormat); pdfPrinter.setOutputFileName("Report.pdf"); document.print(&printer); QPrinter printer; QPrintDialog dialog (&printer); if (dialog.exec() == QDialog::Accepted) { document.print(&printer); }