【发布时间】:2016-12-27 18:18:20
【问题描述】:
我正在使用 Qt4.8,我想要的是打开一个 pdf 并通过 cmd.exe 自动打印该 pdf,而无需使用 QProcess 在 pdf 阅读器中单击打印按钮:
我有两个不同的代码来完成两个不同的任务: OPNE Pdf
QString scmd= "cmd.exe";
list.push_back("/C");
list.push_back("test.pdf");
Process.start(scmd, list);
Sleep(2000);
在不打开的情况下打印 pdf
QString scmd2 = "C:/Program Files (x86)/Adobe/Reader 11.0/Reader/AcroRd32.exe.exe"
list2.push_back("/t");
list2.push_back("test.pdf");
Process.start(scmd2, list2);
Sleep(2000);
所以我想合并这个命令,我不知道该怎么做?请给我一些建议
【问题讨论】:
-
有什么理由使用
Sleep(2000)吗? merging 命令到底是什么意思?如果你只是让这些命令一个接一个地执行会有什么问题? -
没有理由 sleep() 它只是复制粘贴错误忘记删除。合并意味着同时运行,这意味着打开 pdf 文件并打印它。当我一个接一个运行时,这不会执行(两个命令都失败)。
-
我想使用默认的 PDF 阅读器而不是硬编码的一个 scmd2 变量
-
当您一个接一个地运行命令时,究竟是什么失败了?您可以使用
QDesktopServices::openUrl()使用其默认应用程序打开文件。但是没有标准的参数来传递打印(如果用户安装了除 acrobat reader 之外的程序)。如果您想要一个用于打印 PDF 文件的便携式解决方案,我认为您需要在程序中实现它而不是执行类似的命令,请参阅Handling PDF files in Qt。