印表支援虛擬印表機的 MSIX 指令清單規格
此功能可讓您列印到虛擬印表機,而不需要舊版 V3/V4 印表驅動程式,因為 Windows 正計劃取代第三方 V3/V4 印表驅動程式。 如需詳細資訊,請參閱 關於 Windows 上第三方印表機驅動程式停止服務的計劃。
虛擬印表機架構可協助實作沒有第三方驅動程式的軟體印表機。 透過此架構,ISV(獨立軟體廠商)能夠實作軟體印表機作為應用程式,實作第三方 V3/V4 驅動程式目前支援的功能。
本文說明應用程式如何在指令清單中將本身註冊為軟體印表機。
如需詳細資訊,請參閱下列文章:
主題 | 描述 |
---|---|
列印支援應用程式設計指南 | 針對為裝置實作印表支援應用程式 (PSA) 的印表機 OEM 和 IHD 提供指引和範例。 |
列印支援應用程式 v3 API 設計指南 | 提供指引和範例給印表機 OEM 和 IHV,以便針對其裝置實作 v3 印表支援應用程式 (PSA)。 |
列印支援應用程式 v4 API 設計指南 | 提供針對其裝置實作 v4 印表支援應用程式(PSA)的印表機 OEM 和 IHV 的指引和範例。 |
列印支持的應用程式關聯 | 提供將列印支援應用程式 (PSA) 與印表機產生關聯的指引和範例。 |
印表支援應用程式(PSA) 是一種架構,旨在協助獨立硬體供應商在不使用第三方驅動程式的情況下,將自訂新增至 IPP 印表機。 為了簡化軟體印表機的轉換,所有 API 都是 PrintSupportApp API 命名空間的一部分,並重複使用一些適用於虛擬印表機架構的PSA合約。
新的清單合約類似於 Windows.printSupportWorkflow 合約,但此合約需要更多條目,因為它用於安裝虛擬印表機。
新的 Windows 部署延伸模組處理程式 (DEH) 會根據指令清單宣告安裝虛擬印表機,而 Windows 列印元件會在使用者列印到已安裝的虛擬印表機時叫用應用程式。
清單屬性
printSupport:Extension - 虛擬印表機的擴展項目
類別 - Windows.printSupportVirtualPrinterWorkflow 為實作虛擬印表機的應用程式訂立的新合約
PrintSupportVirtualPrinter - 每個項目都會指定要與應用程式一起安裝的一個軟體端點列印佇列。 每個 PrintSupportVirtualPrinter 專案都可以有下列屬性:
PreferredInputFormat - 此屬性表示虛擬印表機慣用的輸入 PDL 格式。 Windows 列印系統會在將所有列印路徑的 PDL 資料提供給虛擬印表機之前,先產生此格式。 欄位只能是下列其中一個值:application/oxps 或 application/postscript。 如果在此欄位中指定其他格式,則安裝會失敗。 如果未指定欄位,應用程式/oxps 會設定為已安裝虛擬印表機的慣用 PDL 格式。
OutputFileTypes - 在 appx 指令清單中指定此屬性時,Windows 列印系統會建立標示為檔案列印機的印表機佇列,並在應用程式開始列印至虛擬印表機時向用戶顯示 [另存新檔] 對話框。 此欄位的值應該包含目標擴展名,例如 pdf/pwgr/ps 等。這些值會儲存在驅動程序數據中,並新增至 [另存新檔] 對話框作為允許的延伸模組。 如果虛擬印表機不想要檔案列印行為(這包括將列印數據儲存至雲端的虛擬印表機,或將數據傳送至 OneNote 之類的應用程式的印表機),則不應該將此字段新增至指令清單。
支援的格式 - 這個元素可以使用虛擬印表機來指定它可以處理的所有 PDL 格式。 這用於直通列印應用程式,例如 Microsoft Edge,以識別支援的格式,如 PDF,並直接將 PDF 資料流傳遞至虛擬印表機,而不需要在 Windows 列印系統之間進行任何變更。 此欄位可以有 SupportedFormat 做為子元素。
SupportedFormat - 元素會指定單一傳遞 PDL 格式,而且可以具有下列屬性。
類型 - 此屬性可用來指定虛擬印表機支援的 MIME 類型
MaxVersion - 此屬性會指定虛擬印表機可以接收的 PDL 格式上限版本。 MaxVersion 值的格式必須是 MajorVersion.MinorVersion。 如果 Windows 列印系統為任何其他格式,則列印機安裝會失敗。 MajorVersion 和 MinorVersion 只能是數字。 如果有任何字元存在,版本欄位就會失效並忽略。
PdcFile - 此屬性必須指向應用程式套件內的資源檔。 檔案應包含印表裝置功能 XML 格式的內容,這是用來定義印表機功能,並且應該用來定義任何自定義功能/選項或參數。 這是強制欄位,如果值不存在,或檔案內容不是有效的 PDC 格式,則印表機安裝會失敗。
PdrFile - 如果提供,此屬性必須指向應用程式套件內的資源檔。 檔案應包含 XML 格式的列印裝置資源。 如果應用程式想要當地語系化自定義列印喜好設定,則應該提供此欄位。 此欄位為選擇性欄位,如果此欄位不存在,則列印系統會處理列印喜好設定的資源當地語系化。
DisplayName - 指定要安裝的虛擬印表機佇列名稱。 此字串的限制與 Windows 印表機名稱的限制相同。
PrinterUri - 指定由PSA應用程式用來識別印表機的唯一 URI。 單一虛擬印表機應用程式可以指定多個軟體端點,這會導致安裝多個印表機。 PrinterUri 欄位可用來區分這些印表機。 此 URI 輸出來自 IppPrintDevice::PrinterUri API。 如果未指定 URI,Windows 會將任意唯一 URI 指派給印表機。
清單範例
<Extensions>
<printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
<PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME1" PrinterUri="contoso-psa:printer1" PreferredInputFormat="application/postscript" OutputFileTypes="ps;pdf" PdcFile="Config\PRINTER_PDC1.xml" PdrFile="Config\PRINTER_PDR1.xml">
<SupportedFormats>
<SupportedFormat Type="application/postscript" />
<SupportedFormat Type="application/pdf" MaxVersion="1.7" />
</SupportedFormats>
</PrintSupportVirtualPrinter>
</printsupport2:Extension>
<printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
<PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME2" PrinterUri ="contoso-psa:printer2" PreferredInputFormat="application/oxps" OutputFileTypes="pwgr;pdf" PdcFile="ms-appx:///PRINTER_PDC2.xml" PdrFile="ms-appx:///PRINTER_PDR2.xml">
<SupportedFormats>
<SupportedFormat Type="application/pdf" MaxVersion="1.7" />
</SupportedFormats>
</PrintSupportVirtualPrinter>
</printsupport2:Extension>
<printsupport:Extension Category="windows.printSupportExtension" EntryPoint="Tasks.PrintSupportExtensionBackGroundTask"/>
<printsupport:Extension Category="windows.printSupportSettingsUI" EntryPoint="PrintSupportApp.App"/>
<printsupport:Extension Category="windows.printSupportJobUI" EntryPoint="PrintSupportApp.App"/>
</Extensions>
相關文章
Windows 上第三方印表機驅動程式的服務計劃結束