我正在使用 C++ 开发适用于 Windows 的 WinRT 应用程序。我有 PDF 文件的路径(存储在磁盘上)和打印机的名称。我的目标是以编程方式(静默)打印此 PDF 文件,而不显示任何窗口或打印机对话框。如何在我的 WinRT 应用程序中实现此目标?
我需要有关完成此任务所需的步骤、API 和技术的指导。任何见解、代码片段或建议将不胜感激。谢谢!
// #include <winrt/Windows.Data.Pdf.h>
// using namespace Windows::Data::Pdf;
winrt::hstring path = L"D:\\test.pdf";
StorageFile storagePdfFile = StorageFile::GetFileFromPathAsync (path).get ();
PdfDocument pdfDocument = PdfDocument::LoadFromFileAsync (storagePdfFile, L"").get ();
int count = pdfDocument.PageCount ();
int nPageIndex = 0;
while (nPageIndex < count) {
PdfPage pdfPage = pdfDocument.GetPage (nPageIndex++);
// This pdfPage need to be passed to the printer somehow, Not able to find a way
}
不幸的是,它无法使用 WinRT API 进行静默打印。未经确认的打印需要在安全/隔离级别进行工作,而不仅仅是 UI 级别。
更多信息请参见:https://github.com/microsoft/WindowsAppSDK/issues/124