Ich möchte öffnen und drucken Sie eine PDF-Datei von bestimmten Pfad, Meine vorherigen Code arbeiten perfekt geöffnet und senden Sie direkt Druckbefehl zum Drucker. Nun, was ich will, ist mehrere Drucker sind da und ich muss eine auswählen, und danach möchte ich Druckbefehl senden, möchte ich nicht verwenden QPrintDialog, Mein Druckername sind in einer TextBox gespeichert und diesen Namen abrufen und drucken durch den Drucker, die ich in Textbox gesetzt:Drucken Sie eine PDF-Datei mit Qt
meine vorherigen Code Erwähnung unter:
#include <QSettings>
#include <QProcess>
#include <QDebug>
int main(int argc, char *argv[])
{
const QString classesRoot = "HKEY_CLASSES_ROOT";
// get ID of .pdf extension
QSettings pdfSettings(classesRoot + "\\.pdf", QSettings::NativeFormat);
QString pdfId = pdfSettings.value("Default").toString();
// get path to default program that associated with PDF files
QString printPath = QSettings(classesRoot + "\\" + pdfId + "\\shell\\print\\command", QSettings::NativeFormat).value("Default").toString();
QString openPath = QSettings(classesRoot + "\\" + pdfId + "\\shell\\open\\command", QSettings::NativeFormat).value("Default").toString();
qDebug() << "print path" << printPath;
qDebug() << "open path" << openPath;
// open .pdf file
QProcess::startDetached(openPath.arg("full path to pdf file.pdf"));
// print .pdf file
QProcess printProcess;
printProcess.start(printPath.arg("full path to pdf file.pdf"));
printProcess.waitForFinished(-1);
return 0;
}
Sie können ** Ghostscript ** verwenden, um eine PDF-Datei zu drucken: http://stackoverflow.com/questions/2599925/how-to-print-pdf-on-default-network-printer- using-ghostscript-gswin32c-exe-she – Yoonian