CUPS 打印服务完全指南 / 第 5 章:PPD 文件详解
第 5 章:PPD 文件详解
PPD(PostScript Printer Description)文件是 CUPS 打印系统的核心配置文件之一,它定义了打印机的能力、选项和默认设置。本章将深入解析 PPD 文件的结构和高级自定义方法。
5.1 PPD 文件概述
5.1.1 什么是 PPD 文件
PPD 文件是 Adobe 定义的标准格式,用于描述 PostScript 打印机的能力:
| 属性 | 说明 |
|---|---|
| 全称 | PostScript Printer Description |
| 格式 | ASCII 文本文件 |
| 扩展名 | .ppd |
| 标准 | Adobe PPD Specification 4.3 |
| 位置 | /usr/share/ppd/ 或 /etc/cups/ppd/ |
| 用途 | 定义打印机功能、选项和默认值 |
5.1.2 PPD 文件位置
# 系统 PPD 文件目录
ls /usr/share/ppd/
# 按制造商组织子目录
# CUPS 安装的打印机 PPD
ls /etc/cups/ppd/
# 查看所有可用 PPD
find /usr/share/ppd -name "*.ppd" | wc -l
# 通常有数千个
# Gutenprint PPD
ls /usr/share/ppd/gutenprint/5.3/
# HP PPD
ls /usr/share/ppd/HP/
# 搜索特定打印机 PPD
find /usr/share/ppd -name "*.ppd" | grep -i "laserjet.*m404"
5.1.3 PPD 版本历史
| 版本 | 年份 | 主要变化 |
|---|---|---|
| PPD 4.0 | 1994 | 初始版本 |
| PPD 4.1 | 1996 | 增加颜色管理 |
| PPD 4.2 | 2000 | 增加自定义纸张 |
| PPD 4.3 | 2003 | 最终独立版本 |
注意:PPD 格式已被 PWG(打印工作组)标记为过时,推荐使用 IPP Everywhere。但目前大多数 CUPS 安装仍然依赖 PPD 文件。
5.2 PPD 文件结构
5.2.1 PPD 文件头部
*PPD-Adobe: "4.3"
*% 打印机基本信息
*FormatVersion: "4.3"
*FileVersion: "2.5"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName: "hpm404.ppd"
*Manufacturer: "HP"
*Product: "(HP LaserJet Pro M404)"
*ModelName: "HP LaserJet Pro M404"
*NickName: "HP LaserJet Pro M404, hpcups 3.22.10"
*ShortNickName: "HP LaserJet Pro M404"
*PSVersion: "(3010.106) 3"
*LanguageLevel: "3"
*ColorDevice: False
*DefaultColorSpace: Gray
*TTRasterizer: Type42
*Resolution: 600
关键字段说明:
| 字段 | 说明 | 示例 |
|---|---|---|
*PPD-Adobe | PPD 版本 | "4.3" |
*Manufacturer | 制造商 | "HP" |
*ModelName | 模型名称 | "HP LaserJet Pro M404" |
*NickName | 显示名称 | "HP LaserJet Pro M404, hpcups 3.22.10" |
*ColorDevice | 是否彩色 | True/False |
*LanguageLevel | PS 语言级别 | "3" |
*Resolution | 默认分辨率 | 600 |
5.2.2 选项定义 (OpenUI)
*OpenUI *PageSize/Page Size: PickOne
*DefaultPageSize: A4
*PageSize Letter/Letter: "<</PageSize[612 792]>>setpagedevice"
*PageSize A4/A4: "<</PageSize[595.28 841.89]>>setpagedevice"
*PageSize Legal/Legal: "<</PageSize[612 1008]>>setpagedevice"
*PageSize A3/A3: "<</PageSize[841.89 1190.55]>>setpagedevice"
*CloseUI: *PageSize
常用纸张尺寸:
| 纸张名称 | 宽度 (点) | 高度 (点) | 尺寸 (mm) |
|---|---|---|---|
| Letter | 612 | 792 | 216 × 279 |
| A4 | 595.28 | 841.89 | 210 × 297 |
| Legal | 612 | 1008 | 216 × 356 |
| A3 | 841.89 | 1190.55 | 297 × 420 |
| A5 | 419.53 | 595.28 | 148 × 210 |
| B5 | 498.90 | 708.66 | 176 × 250 |
| Executive | 522 | 756 | 184 × 267 |
| Env #10 | 297 | 684 | 105 × 241 |
| Env DL | 311.81 | 623.62 | 110 × 220 |
5.2.3 分辨率定义
*OpenUI *Resolution/Output Resolution: PickOne
*DefaultResolution: 600dpi
*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]>>setpagedevice"
*Resolution 1200dpi/1200 DPI: "<</HWResolution[1200 1200]>>setpagedevice"
*CloseUI: *Resolution
5.2.4 双面打印定义
*OpenUI *Duplex/Double-Sided Printing: PickOne
*DefaultDuplex: None
*Duplex None/Off: "<</Duplex false>>setpagedevice"
*Duplex DuplexNoTumble/Long-Edge (Standard): "<</Duplex true/Tumble false>>setpagedevice"
*Duplex DuplexTumble/Short-Edge (Flip): "<</Duplex true/Tumble true>>setpagedevice"
*CloseUI: *Duplex
5.2.5 输入纸盒定义
*OpenUI *InputSlot/Paper Source: PickOne
*DefaultInputSlot: Auto
*InputSlot Auto/Auto-Select: "<</ManualFeed false/MediaPosition 7>>setpagedevice"
*InputSlot Tray1/Tray 1: "<</ManualFeed false/MediaPosition 1>>setpagedevice"
*InputSlot Tray2/Tray 2: "<</ManualFeed false/MediaPosition 4>>setpagedevice"
*InputSlot Manual/Manual Feed: "<</ManualFeed true/MediaPosition 2>>setpagedevice"
*CloseUI: *InputSlot
5.3 自定义 PPD 选项
5.3.1 添加自定义纸张
# 备份原始 PPD 文件
sudo cp /etc/cups/ppd/myprinter.ppd /etc/cups/ppd/myprinter.ppd.backup
# 编辑 PPD 文件
sudo vim /etc/cups/ppd/myprinter.ppd
添加自定义纸张尺寸:
*% 添加自定义纸张尺寸 210mm x 1000mm (条幅)
*PageSize Banner/条幅 (210x1000mm): "<</PageSize[595.28 2834.65]>>setpagedevice"
*PageRegion Banner/条幅 (210x1000mm): "<</PageSize[595.28 2834.65]>>setpagedevice"
*ImageableArea Banner/条幅 (210x1000mm): "0 0 595.28 2834.65"
*PaperDimension Banner/条幅 (210x1000mm): "595.28 2834.65"
*% 添加 5x7 英寸照片纸
*PageSize Photo5x7/照片纸 5x7: "<</PageSize[360 504]>>setpagedevice"
*PageRegion Photo5x7/照片纸 5x7: "<</PageSize[360 504]>>setpagedevice"
*ImageableArea Photo5x7/照片纸 5x7: "0 0 360 504"
*PaperDimension Photo5x7/照片纸 5x7: "360 504"
纸张尺寸计算公式:
点 (point) = 毫米 × 72 / 25.4
示例:
A4 (210mm × 297mm) = 595.28 × 841.89 点
Letter (8.5" × 11") = 612 × 792 点
5.3.2 添加水印选项
# 在 PPD 文件中添加自定义水印选项
sudo vim /etc/cups/ppd/myprinter.ppd
*% 水印选项
*OpenUI *Watermark/Watermark: PickOne
*DefaultWatermark: None
*Watermark None/无水印: ""
*Watermark Confidential/机密: "/cupsWM/conf def /cupsWM true def"
*Watermark Draft/草稿: "/cupsWM/draft def /cupsWM true def"
*Watermark Copy/副本: "/cupsWM/copy def /cupsWM true def"
*Watermark Original/原件: "/cupsWM/original def /cupsWM true def"
*Watermark Top Secret/绝密: "/cupsWM/topsecret def /cupsWM true def"
*CloseUI: *Watermark
*% 水印位置
*OpenUI *WatermarkPosition/Watermark Position: PickOne
*DefaultWatermarkPosition: Center
*WatermarkPosition Center/居中: ""
*WatermarkPosition TopLeft/左上角: ""
*WatermarkPosition TopRight/右上角: ""
*WatermarkPosition BottomLeft/左下角: ""
*WatermarkPosition BottomRight/右下角: ""
*CloseUI: *WatermarkPosition
*% 水印角度
*OpenUI *WatermarkAngle/Watermark Angle: PickOne
*DefaultWatermarkAngle: 45
*WatermarkAngle 0/0度: ""
*WatermarkAngle 45/45度: ""
*WatermarkAngle 90/90度: ""
*WatermarkAngle 315/315度: ""
*CloseUI: *WatermarkAngle
5.3.3 添加打印质量选项
*% 打印质量
*OpenUI *PrintQuality/Print Quality: PickOne
*DefaultPrintQuality: Normal
*PrintQuality Draft/草稿: "<</HWResolution[300 300]>>setpagedevice"
*PrintQuality Normal/普通: "<</HWResolution[600 600]>>setpagedevice"
*PrintQuality High/高: "<</HWResolution[1200 1200]>>setpagedevice"
*PrintQuality Best/最佳: "<</HWResolution[1200 1200]>>setpagedevice"
*CloseUI: *PrintQuality
5.3.4 添加颜色选项
*% 颜色模式
*OpenUI *ColorModel/Color Mode: PickOne
*DefaultColorModel: Gray
*ColorModel Gray/Grayscale: "<</cupsColorSpace 3/cupsBitsPerColor 8>>setpagedevice"
*ColorModel RGB/Color: "<</cupsColorSpace 1/cupsBitsPerColor 8>>setpagedevice"
*ColorModel CMYK/CMYK: "<</cupsColorSpace 6/cupsBitsPerColor 8>>setpagedevice"
*CloseUI: *ColorModel
*% 色调调节
*OpenUI *Hue/Hue Adjustment: PickOne
*DefaultHue: 0
*Hue -100/-100: ""
*Hue -50/-50: ""
*Hue 0/0: ""
*Hue 50/+50: ""
*Hue 100/+100: ""
*CloseUI: *Hue
*% 饱和度
*OpenUI *Saturation/Saturation: PickOne
*DefaultSaturation: 0
*Saturation -100/-100: ""
*Saturation 0/0: ""
*Saturation 100/+100: ""
*CloseUI: *Saturation
5.3.5 添加每页多版选项
*% 每页多版 (N-up)
*OpenUI *NumberUp/Pages Per Sheet: PickOne
*DefaultNumberUp: 1
*NumberUp 1/1 Page Per Sheet: ""
*NumberUp 2/2 Pages Per Sheet: ""
*NumberUp 4/4 Pages Per Sheet: ""
*NumberUp 6/6 Pages Per Sheet: ""
*NumberUp 9/9 Pages Per Sheet: ""
*NumberUp 16/16 Pages Per Sheet: ""
*CloseUI: *NumberUp
*% 布局
*OpenUI *NumberUpLayout/N-Up Layout: PickOne
*DefaultNumberUpLayout: Lrtb
*NumberUpLayout Lrtb/Left to Right, Top to Bottom: ""
*NumberUpLayout Lrbt/Left to Right, Bottom to Top: ""
*NumberUpLayout Rltb/Right to Left, Top to Bottom: ""
*NumberUpLayout Rlbt/Right to Left, Bottom to Top: ""
*NumberUpLayout Tblr/Top to Bottom, Left to Right: ""
*NumberUpLayout Tbrl/Top to Bottom, Right to Left: ""
*CloseUI: *NumberUpLayout
5.4 PPD 常用选项参考
5.4.1 纸张相关选项
# 使用选项打印
lp -d myprinter \
-o media=A4 \
-o media=Letter \
-o media=A3 \
document.pdf
# 自定义纸张尺寸(单位:点)
lp -d myprinter -o media=Custom.210x400mm document.pdf
lp -d myprinter -o media=Custom.5x7in document.pdf
5.4.2 双面打印选项
# 双面打印
lp -d myprinter -o sides=one-sided document.pdf # 单面
lp -d myprinter -o sides=two-sided-long-edge document.pdf # 双面(长边翻转)
lp -d myprinter -o sides=two-sided-short-edge document.pdf # 双面(短边翻转)
# 使用 PPD 选项名
lp -d myprinter -o Duplex=DuplexNoTumble document.pdf
lp -d myprinter -o Duplex=DuplexTumble document.pdf
lp -d myprinter -o Duplex=None document.pdf
双面打印翻转方向说明:
长边翻转 (Long-Edge / Standard):
┌─────────┐ ┌─────────┐
│ Page 1 │ │ Page 2 │
│ │ │ │
│ 正面 │翻转│ 背面 │
│ │←──│ │
└─────────┘ └─────────┘
(像书本一样翻页)
短边翻转 (Short-Edge / Flip):
┌─────────┐ ┌─────────┐
│ Page 1 │翻转│ Page 2 │
│ │↑──│ │
│ 正面 │ │ 背面 │
│ │ │ │
└─────────┘ └─────────┘
(像日历一样翻页)
5.4.3 方向选项
# 纵向打印(默认)
lp -d myprinter -o orientation-requested=3 document.pdf
# 横向打印
lp -d myprinter -o orientation-requested=4 document.pdf
# 反向纵向(旋转 180°)
lp -d myprinter -o orientation-requested=5 document.pdf
# 反向横向
lp -d myprinter -o orientation-requested=6 document.pdf
# 简写
lp -d myprinter -o portrait document.pdf # 纵向
lp -d myprinter -o landscape document.pdf # 横向
5.4.4 页面范围选项
# 打印全部
lp -d myprinter -o page-ranges=all document.pdf
# 打印指定页
lp -d myprinter -o page-ranges=1-5 document.pdf
lp -d myprinter -o page-ranges=1,3,5,7 document.pdf
lp -d myprinter -o page-ranges=2- document.pdf # 从第 2 页到最后
lp -d myprinter -o page-ranges=-10 document.pdf # 到第 10 页
# 奇偶页
lp -d myprinter -o page-set=odd document.pdf # 奇数页
lp -d myprinter -o page-set=even document.pdf # 偶数页
5.4.5 纸盒选择
# 自动选择纸盒
lp -d myprinter -o InputSlot=Auto document.pdf
# 使用纸盒 1
lp -d myprinter -o InputSlot=Tray1 document.pdf
# 使用纸盒 2
lp -d myprinter -o InputSlot=Tray2 document.pdf
# 手动送纸
lp -d myprinter -o InputSlot=Manual document.pdf
5.4.6 媒体类型
# 普通纸
lp -d myprinter -o MediaType=Plain document.pdf
# 厚纸
lp -d myprinter -o MediaType=CardStock document.pdf
# 信封
lp -d myprinter -o MediaType=Envelope envelope.pdf
# 透明胶片
lp -d myprinter -o MediaType=Transparency document.pdf
# 照片纸
lp -d myprinter -o MediaType=Photo photo.jpg
# 标签纸
lp -d myprinter -o MediaType=Labels labels.pdf
5.5 使用 ppdc 编译 PPD 文件
5.5.1 PPD 编译器简介
# ppdc 是 CUPS 的 PPD 编译器
# 可以从 .drv 文件生成 .ppd 文件
# 查看 ppdc 帮助
ppdc --help
# 编译 .drv 文件为 .ppd
ppdc -d /tmp/ppds myprinter.drv
# 反编译 PPD 文件(提取选项)
ppdhtml myprinter.ppd > myprinter.html
ppdi -I myprinter myprinter.ppd -o myprinter.drv
5.5.2 驱动信息文件 (.drv)
# 创建 .drv 文件
cat << 'EOF' > /tmp/myprinter.drv
# My Printer Driver
Manufacturer "MyBrand"
ModelName "My Printer 1000"
NickName "My Printer 1000, CUPS driver"
PCFileName "myprinter1000.ppd"
% Resolution options
HWMargins 9 36 9 9
*Resolution k 0 0 0 0 "300dpi/300 DPI - Draft": ""
*Resolution k 0 0 0 0 "600dpi/600 DPI - Normal": ""
*Resolution k 0 0 0 0 "1200dpi/1200 DPI - High": ""
% Paper sizes
*PageSize Letter/US Letter: "<< /PageSize [612 792] >> setpagedevice"
*PageSize A4/A4: "<< /PageSize [595 842] >> setpagedevice"
*PageSize Legal/US Legal: "<< /PageSize [612 1008] >> setpagedevice"
*PageRegion Letter/US Letter: "<< /PageSize [612 792] >> setpagedevice"
*PageRegion A4/A4: "<< /PageSize [595 842] >> setpagedevice"
*PageRegion Legal/US Legal: "<< /PageSize [612 1008] >> setpagedevice"
*ImageableArea Letter/US Letter: "18 36 594 756"
*ImageableArea A4/A4: "18 36 577 806"
*ImageableArea Legal/US Legal: "18 36 594 972"
*PaperDimension Letter/US Letter: "612 792"
*PaperDimension A4/A4: "595 842"
*PaperDimension Legal/US Legal: "612 1008"
% Duplex
*OpenUI *Duplex/Duplex: PickOne
*DefaultDuplex: None
*Duplex None/Off: "<< /Duplex false >> setpagedevice"
*Duplex DuplexNoTumble/Long Edge: "<< /Duplex true /Tumble false >> setpagedevice"
*Duplex DuplexTumble/Short Edge: "<< /Duplex true /Tumble true >> setpagedevice"
*CloseUI: *Duplex
EOF
# 编译生成 PPD 文件
ppdc -d /tmp/ppds /tmp/myprinter.drv
# 查看生成的 PPD 文件
ls /tmp/ppds/
cat /tmp/ppds/myprinter1000.ppd
5.5.3 PPD 文件合并
# 合并两个 PPD 文件的选项
# 使用 ppdi 导入选项
ppdi -o combined.drv file1.ppd
ppdi -I model2 file2.ppd -o combined.drv
# 编译合并后的文件
ppdc -d /tmp/merged combined.drv
5.6 PPD 文件验证
5.6.1 验证 PPD 文件
# 使用 cupsfilter 验证 PPD 文件
sudo cupsfilter -m application/vnd.cups-postscript \
-p myprinter.ppd /dev/null 2>&1
# 使用 cupstestppd 验证(CUPS 2.x)
# 注意:某些版本可能没有此命令
cupstestppd /etc/cups/ppd/myprinter.ppd
# 使用 ppdpo 检查 PPD 选项
ppdpo -o /tmp/options.txt /etc/cups/ppd/myprinter.ppd
# 检查 PPD 文件语法
grep -c "^\*" /etc/cups/ppd/myprinter.ppd
# 统计 PPD 指令数量
5.6.2 常见 PPD 错误
# 错误 1: 缺少必需字段
# PPD 文件必须包含以下字段:
# *PPD-Adobe
# *FormatVersion
# *NickName
# *PageSize (至少一个)
# 错误 2: 无效的 PostScript 代码
# 确保所有 setpagedevice 命令正确闭合
# 错误 3: 编码问题
# PPD 文件应使用 ISO-8859-1 编码
file myprinter.ppd
# 应显示: ISO-8859-1 或 ASCII
# 错误 4: 选项冲突
# 检查 Default* 值是否与对应的选项定义一致
grep "Default" myprinter.ppd
5.7 高级 PPD 配置
5.7.1 安装自定义 PPD 文件
# 将自定义 PPD 文件复制到 CUPS 目录
sudo cp myprinter.ppd /usr/share/ppd/custom/
# 或复制到打印机特定目录
sudo cp myprinter.ppd /etc/cups/ppd/
# 使用自定义 PPD 添加打印机
sudo lpadmin -p CustomPrinter -E \
-v socket://192.168.1.100:9100 \
-P /usr/share/ppd/custom/myprinter.ppd
# 替换现有打印机的 PPD
sudo lpadmin -p myprinter -P /path/to/new.ppd
5.7.2 使用 cupsfilter 转换文档
# 使用指定 PPD 转换文档为 PostScript
cupsfilter -p myprinter.ppd -m application/postscript document.pdf > output.ps
# 使用指定打印机转换文档
cupsfilter -d myprinter -m application/postscript document.pdf > output.ps
# 转换为光栅数据
cupsfilter -d myprinter -m application/vnd.cups-raster document.pdf > output.raster
5.7.3 PPD 文件中的自定义命令
*% 在作业开始和结束时执行的 PostScript 命令
*% 设置作业分隔页
*JCLBegin "<1B>%-12345X@PJL JOB<0A>"
*JCLEnd "<1B>%-12345X@PJL EOJ<0A>"
*JCLToPDFInterpreter ""
*% 自定义页面设置命令
*CustomPageSize True: "pop pop pop << /PageSize [5 -2 roll] /ImagingBBox null >> setpagedevice"
*ParamCustomPageSize Width: 1 points 36 1224
*ParamCustomPageSize Height: 2 points 36 1224
*ParamCustomPageSize Orientation: 3 int 0 0
5.8 业务场景
5.8.1 场景一:企业信头纸配置
# 需求:配置专用信头纸纸盒
# 步骤 1: 在 PPD 中添加信头纸类型
sudo vim /etc/cups/ppd/myprinter.ppd
# 添加以下内容
# *OpenUI *MediaType/Media Type: PickOne
# *DefaultMediaType: Plain
# *MediaType Plain/普通纸: "<</MediaType(Plain)>>setpagedevice"
# *MediaType Letterhead/信头纸: "<</MediaType(Letterhead)>>setpagedevice"
# *MediaType Preprinted/预印纸: "<</MediaType(Preprinted)>>setpagedevice"
# *CloseUI: *MediaType
# 步骤 2: 使用信头纸打印
lp -d myprinter -o MediaType=Letterhead -o InputSlot=Tray2 report.pdf
# 步骤 3: 创建打印脚本
cat << 'SCRIPT' > ~/print-letterhead.sh
#!/bin/bash
lp -d myprinter -o MediaType=Letterhead -o InputSlot=Tray2 \
-o sides=one-sided "$@"
SCRIPT
chmod +x ~/print-letterhead.sh
5.8.2 场景二:标签打印配置
# 需求:配置标签打印机
# 创建标签尺寸 PPD
# 编辑 PPD 文件
sudo vim /etc/cups/ppd/label-printer.ppd
# 添加自定义标签尺寸
# *% 标签尺寸定义
# *PageSize Label4x6/标签 4x6: "<</PageSize[288 432]>>setpagedevice"
# *PageRegion Label4x6/标签 4x6: "<</PageSize[288 432]>>setpagedevice"
# *ImageableArea Label4x6/标签 4x6: "0 0 288 432"
# *PaperDimension Label4x6/标签 4x6: "288 432"
# *PageSize Label2x4/标签 2x4: "<</PageSize[144 288]>>setpagedevice"
# *PageRegion Label2x4/标签 2x4: "<</PageSize[144 288]>>setpagedevice"
# *ImageableArea Label2x4/标签 2x4: "0 0 144 288"
# *PaperDimension Label2x4/标签 2x4: "144 288"
# 打印标签
lp -d label-printer -o media=Label4x6 shipping-label.pdf
5.8.3 场景三:批量打印优化
# 需求:大批量打印优化配置
# 创建优化的 PPD 选项
# 使用草稿模式快速打印
lp -d myprinter -o Resolution=300dpi -o ColorModel=Gray large-document.pdf
# 使用每页多版节省纸张
lp -d myprinter -o number-up=4 -o sides=two-sided-long-edge document.pdf
# 创建优化脚本
cat << 'SCRIPT' > ~/print-eco.sh
#!/bin/bash
# 环保打印模式:草稿、双面、每页 2 版
lp -d myprinter \
-o Resolution=300dpi \
-o ColorModel=Gray \
-o sides=two-sided-long-edge \
-o number-up=2 \
"$@"
SCRIPT
chmod +x ~/print-eco.sh
5.9 扩展阅读
| 资源 | 链接 |
|---|---|
| Adobe PPD 规范 | https://www.adobe.com/content/dam/acom/en/devnet/actionscript/articles/5001.PPD_Spec_v4.3.pdf |
| CUPS PPD 参考 | https://www.cups.org/doc/spec-ppd.html |
| OpenPrinting PPD | https://www.openprinting.org/ppd-o-matic.php |
| PPD 编译器手册 | man ppdc |
5.10 本章小结
| 主题 | 关键要点 |
|---|---|
| PPD 文件 | 定义打印机能力和选项的文本配置文件 |
| 文件结构 | 头部信息 + 选项定义(纸张、分辨率、双面等) |
| 自定义选项 | 可添加水印、自定义纸张、特殊介质等 |
| 常用选项 | media(纸张)、sides(双面)、Resolution(分辨率) |
| ppdc | PPD 编译器,用于从 .drv 文件生成 PPD |
| 验证 | 使用 cupstestppd 验证 PPD 文件语法 |
下一章预告:我们将深入学习 IPP 协议,包括 IPP Everywhere、AirPrint 以及移动打印和远程打印配置。
5.11 练习题
结构题:分析一个 PPD 文件,识别其中定义的所有选项类型。
自定义题:创建一个包含自定义纸张尺寸(210mm × 500mm)的 PPD 文件。
双面题:配置打印机默认双面打印,并解释长边翻转和短边翻转的区别。
编译题:使用 ppdc 从 .drv 文件编译生成 PPD 文件。
场景题:为企业配置一个包含普通纸、信头纸和标签纸三种介质类型的打印机 PPD 文件。