共用方式為


建置基本的 v4 印表機驅動程式

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

重要

Microsoft已宣佈終止舊版 v3 和 v4 印表機驅動程式的生命週期服務。

如需詳細資訊,請參閱 Windows 上第三方印表機驅動程式的服務方案結束。

警告

此印表機驅動程式教學課程包含多個錯誤,目前無法使用。

使用 Visual Studio 2019 Microsoft驅動程式開發精靈來建置基本的 v4 印表機驅動程式,以選取要建立功能性印表機驅動程式的最低功能集。

本主題中的指示將著重於建置驅動程式所需的步驟,而且不會說明精靈中可用的許多印表機驅動程序選項。

本主題的意圖是在 Visual Studio 2019 中開發印表機驅動程式時,提供相關程式的簡介。

在探索精靈中的驅動程式選項中,會提供更詳細的印表機驅動程序選項。

必要條件

請遵循下載 Windows 驅動程式套件 (WDK) 中的指引,並確定您已完成下列專案:

  1. 使用 C++ 工作負載的桌面開發以及正確的 Windows 10 SDK 版本來安裝 Visual Studio 2019

  2. 安裝 Windows 10 版本 2004 的 Windows Driver Kit (WDK)。

  3. 安裝適用於 Visual Studio 2019 的 Windows Driver Kit (WDK) 擴充功能。

選取基本驅動程式的功能

  1. 在 Visual Studio 的主功能表中,選取 [檔案>>專案]。

  2. 在 [ 新增專案] 視窗的右上方搜尋方塊中,輸入 印表機驅動程式 v4 ,然後按 Enter。 這會擷取名稱包含搜尋文字的所有驅動程序範本。

  3. 在中間窗格中,選取 [ 印表機驅動程式 V4]。

  4. 在 [ 名稱 ] 欄位中輸入驅動程式的名稱,然後選取 [ 確定]。 例如,您可以輸入 MyV4PrintDriver

  5. 在 [建立 v4 列印驅動程序精靈] 的 [選擇驅動程序轉譯類型]底下,選取 [具有自定義轉譯篩選器的 V4 列印驅動程式] (僅接受 XPS)。

  6. 保留所有其他選項的預設設定,然後選取 [ 下一步]。

  7. 在精靈的 [ 安裝資訊] 區段中,將所有選項保留為其預設設定,然後選取 [ 下一步]。

  8. 在精靈的 [ 安裝資訊(第 2 頁)] 區段中,將所有選項保留為其預設設定,然後選取 [ 下一步]。

Microsoft Visual Studio 會使用上述選取項目來產生 MyV4PrintDriver 的項目檔

確認產生的驅動程式檔案

  1. 流覽至所產生驅動程式檔案的資料夾。 例如,如果您將專案 命名為 MyV4PrintDriver,則預設會將檔案儲存到下列位置: My Documents > Visual Studio 2019 > Projects > MyV4PrintDriver > MyV4PrintDriver

  2. 確認資料夾包含下列檔案:

    File name 檔案類型
    MyV4PrintDriver.gpd 印表機描述檔
    MyV4PrintDriver.inf 安裝資訊檔案
    MyV4PrintDriver.vcxproj C++項目檔
    MyV4PrintDriver.vcxproj.filters C++專案篩選檔案
    MyV4PrintDriver-manifest.ini 組態設定檔 (列印驅動程式指令清單)
    V4PrintDriver-Intellisense.js Intellisense 的 JavaScript 檔案
    V4PrintDriver-Intellisense-Windows8.1.js Intellisense 的 JavaScript 檔案

請注意,上表所建立的其中一個檔案是 INF 檔案。 請注意,Visual Studio 建立了必須完成的基本架構 INF 檔案,以便用來安裝驅動程式。

為驅動程式建立唯一的 PrinterDriverID

  1. 在 [Visual Studio 工具] 功能表中,選取 [ 建立 GUID]。

  2. 選取選項 4。登錄格式 ,然後選取 [ 複製] 按鈕。

  3. 在 Visual Studio 的 方案總管 中,展開 MyV4PrintDriver 節點。

  4. 選取 [ 驅動程式檔案],然後在 [ 屬性 ] 視窗中查看 [唯一 標識符 ] 字段的值。 將此值取代為您使用 [貼上] 產生的 GUID。

完成 INF 檔案

在 MyV4PrintDriver 專案中,驅動程式檔案應該有一個專案。 開啟此檔案,並列出 MyV4PrintDriver.inf 檔案。 開啟此檔案。

INF 檔案的前 2 行是驅動程式套件的著作權聲明。

第 1 行包含貴公司的年份和名稱。 將 YYYYY 字元取代為目前的年份,並將製造商名稱取代 <為您公司的名稱> 。

第 2 行描述驅動程式 INF 的內容,包括製造商名稱和裝置型號資訊。 將製造商名稱取代為公司名稱>的字元<,並將印表機型號>的<字元取代為驅動程式支援的印表機型號名稱。

例如,如果年份是 2021,且公司的名稱是 Fabrikam,而列印裝置型號為 1234,您會輸入下列內容:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

2.確認 [版本] 區段正確

尋找包含 [Version] 的行。

  • 檢查並確定您看到這一行:

    ClassVer=4.0
    
  • 檢查並確定您看到這一行:

    Signature="$WINDOWS NT$"
    

3.設定 [SourceDisksFiles] 區段

尋找包含 [SourceDisksFiles] 的行。

在這裡下方輸入下列幾行:

MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

4.設定 [DriverFiles] 區段

尋找包含 [DriverFiles] 的行。

在這裡下方輸入下列幾行:

MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

5.設定 [Standard.NT$ARCH$] 區段

尋找包含 [Standard.NT$ARCH$] 的行。

本節會參考 Install 每個模型的 INF 區段。 例如,如果印表機的型號是 Fabrikam 1234,則您會輸入下列命令:

"Fabrikam 1234"=DriverInstall, USBPRINT\\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\\Fabrikam1234

6.將 PrinterDriverID 新增至 INF 檔案

在 Visual Studio 的 方案總管 中,展開 [MyV4PrintDriver] 節點。

選取 [ 驅動程式檔案],然後在 [ 屬性 ] 視窗中查看 [唯一 標識符 ] 字段的值。 這是驅動程式識別碼 (GUID)。 反白顯示並複製它。

在 INF 檔案的 [Standard.NT$ARCH$] 區段中,輸入下列這一行:

"Fabrikam 1234"=DriverInstall,

然後在逗號之後,貼上您在上一個步驟中複製的 GUID。 已完成 的 [Standard.NT$ARCH$] 區段看起來應該如下所示:

"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

7. 設定 [字串] 區段

尋找包含 [Strings] 的行。

在此下方,您將找到 ManufacturerName 字串串的定義。 將製造商名稱取代為公司名稱>的字元<,以提供目標列印機的製造商名稱,並刪除包含的其餘行;TODO:

例如,如果您的公司名稱是 Fabrikam,您會輸入下列內容:

ManufacturerName="Fabrikam"

8.儲存 INF 檔案

當您完成 INF 檔案時,它看起來應該如下所示:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=03/17/2014,1.0.0.0
PnpLockdown=1

[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

[DriverInstall]
CopyFiles=DriverFiles

[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

[DestinationDirs]
DefaultDestDir = 66000

[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

[Strings]
ManufacturerName="Fabrikam"
DiskName="MyV4PrintDriver Installation Disk"

更新驅動程式檔案清單

  1. 在 Visual Studio 的 方案總管 中,展開 MyV4PrinterDriver 節點。

  2. 選取 MyV4PrintDriver.gpd 檔案,並將其拖曳至 [驅動程序檔案 ] 節點。

  3. 使用 MyV4PrintDriver-manifest.ini 執行相同的動作。

將管線組態檔新增至驅動程式套件

  1. 方案總管 中,選取並按住 [或以滑鼠右鍵按兩下] MyV4PrintDriver 專案,然後選取 [屬性]。

  2. 在 [ MyV4PrintDriver 屬性頁] 視窗中,展開 左窗格中的 [組態屬性 ]。

  3. 展開 [ 驅動程式安裝],然後選取 [ 封裝檔案]。

  4. 在右窗格中,選取 ,然後按下 <列出的檔案中的 [編輯...]> 資料列。

    選取套件檔案編輯數據列。

  5. 以管線組態檔的相對路徑取代佔位元,例如 ../MyV4PrintDriver Render Filter/MyV4PrintDriverRenderFilter-PipelineConfig.xml,然後按兩下 [ 確定]。

    將佔位元取代為相對路徑。

將轉譯篩選的參考新增至驅動程式套件

  1. 在 Visual Studio 的 方案總管 中,展開 [MyV4PrinterDriver] 節點。

  2. 選取並按住 [參考] 節點,或以滑鼠右鍵按兩下 [參考 ] 節點 -> 選取 [ 新增參考]。

  3. 選取 MyV4PrintDriver 轉譯篩選複選框,然後選取 [確定]。

設定用於偵錯和部署的驅動程序解決方案

  1. 方案總管 中,選取並按住 [或以滑鼠右鍵按兩下] MyV4PrintDriver 專案,然後選取 [屬性]。

  2. 在 [ MyV4PrintDriver 屬性頁] 視窗中,展開 左窗格中的 [組態屬性 ]。

  3. 展開 [ 驅動程式安裝],然後選取 [ 部署]。 在右窗格中執行下列動作:

    • 確定已設定 目標計算機名稱 。 如果沒有,請選取 [...並遵循設定 裝置 精靈中的提示來設定遠端目標電腦。

    • 在部署之前,請先檢查移除先前的驅動程式版本。

    • 選取 [ 安裝/重新安裝並驗證],然後從下拉式方塊中選取 [預設印表機驅動程式套件安裝工作 ]。

    • 在 [選擇性自變數] 字段中輸入驅動程序的名稱(不含名稱前後的任何引號)。

    • 選取 [確定]。

設定驅動程序簽署

  1. 方案總管 中,選取並按住 [或以滑鼠右鍵按兩下] MyV4PrintDriver 專案,然後選取 [屬性]。

  2. 在 [ MyV4PrintDriver 屬性頁] 視窗中,展開 左窗格中的 [組態屬性 ]。

  3. 展開 [ 驅動程序簽署],然後選取 [ 一般]。

  4. 在右窗格中,確認 [簽署模式 ] 已設定為 [測試簽署]。

  5. 選取 [ 測試憑證],然後從下拉式方塊中選取 [建立測試憑證... ]。

  6. 選取 [TimeStampServer],然後從下拉式方塊中選取 [Verisign]。

  7. 選取 [確定]。

建置及部署驅動程式

  1. 方案總管 中,選取並按住 [方案 MyV4PrintDriver] [2 個專案],然後選取 [建置方案]。

  2. 當建置程式完成時,系統會自動安裝驅動程式。 請確定 [ 輸出 ] 視窗中沒有錯誤。

測試驅動程式

使用隨插即用或 新增印表機精靈建立列印佇列。

如需 v4 印表機驅動程式之 INF 檔案的詳細資訊,請參閱 V4 驅動程式 INF

除了上表中的檔案之外,請注意 已建立 MyV4PrintDriver 轉譯篩選 資料夾。 這是轉譯篩選項目範本,可提供建置 XPS 轉譯篩選器和 XPS 篩選管線組態檔的良好基礎。 如需 XPS 轉譯篩選的詳細資訊,請參閱 XPSDrv 轉譯模組