【问题标题】:What's the easiest way to add custom page sizes to a .ppd?将自定义页面大小添加到 .ppd 的最简单方法是什么?
【发布时间】:2010-11-04 23:02:32
【问题描述】:

我想将自定义页面大小添加到我的打印机的 .ppd(PostScript 打印机定义)文件中。我必须添加什么才能使新的页面大小正常工作?

【问题讨论】:

    标签: printing cups ppd


    【解决方案1】:

    您必须在 4 个不同的地方为每个额外的页面大小添加值:

    1. PageSize
    2. PageRegion
    3. ImageableArea
    4. PaperDimension

    最好,您使用一个 PPD 并搜索包含在这些关键字中的部分

    *OpenUI *PaperSize: PickOne
    ....
    *CloseUI *PaperSize
    

    .

    *OpenUI *PageSize: PickOne
    ....
    *CloseUI *PageSize
    

    对于以

    开头的部分
    *DefaultImageableArea: ...
    

    *DefaultPaperDimension: ...
    

    使用您在其中找到的行作为新条目的模板。请注意,尺寸以 PostScript 点数给出(其中 72pt == 1inch ~= 2.54cm)。

    注意事项:

    1. 在 PPD 的 4 个位置中的每一个位置添加新行。
    2. 确保为新的媒体尺寸使用 uniq 名称。
    3. 确保您的 PPD 中没有任何语法错误。
    4. 完成后(或在编辑时),使用 cupstestppd 实用程序(在 Linux 和 Mac OS X 上可用)检查您的 PPD。

    更新

    关于使用cupstestppd 测试 PPD:

    默认情况下,即使它发现一些“不那么重要”的语法问题(PPD 字符串翻译、过滤器、UIConstraints、配置文件、媒体大小),它也会将错误报告为**FAIL**。您可以稍微放宽这些严格检查并使用-W all 以便将所有这些仅报告为警告,而不是错误:

    cupstestppd -W all /path/to/PPDfile.ppd
    

    如果这返回显示WARN size ... 的行,则应密切注意它们并确保修复 PPD。

    【讨论】:

    • 仅供参考 1 英寸正好 2.54cm
    • @kurt 谢谢,您的教程帮助我修复了 Dai Nippon DN80 驱动程序中的纸张大小错误。如果有人对 Dai Nippon DN80 有同样的问题,可以问我。
    • 我想知道,打印机从哪里获得纸张定义,我在哪里可以提交新尺寸?
    • @KurtPfeifle 是的,我明白了。我的意思是软件部分,我假设 CUPS 已经内置了标准纸张尺寸,所以任何版本我们都会找到它们。我的问题是,它们是由杯子、后记、幽灵预设的吗?如果我想提交一个,我会在哪里提交那个尺寸,Paper Size Oficio Mexico,(216mmx340mm),已经多年没有支持了。也许我可以要求加入。谢谢。
    • @Ark74:在 IANA's IPP Registrations Database 中查找该纸张尺寸是否已经“已知”(可能使用不同的名称)。如果没有,请在 CUPS developers mailing list 上询问您可以做些什么来获得支持。
    【解决方案2】:

    我有 HP LaserJet 1200。Foomatic/pxlmono 驱动程序提供的 PPD 文件缺少一些标准纸张尺寸。我用以下语句更新了它:

    *OpenUI *PageSize/Page Size: PickOne
    *FoomaticRIPOption PageSize: enum CmdLine A
    *OrderDependency: 100 AnySetup *PageSize
    *DefaultPageSize: A4
    *PageSize Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter"
    *FoomaticRIPOptionSetting PageSize=Letter: " -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792"
    *End
    *PageSize Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive"
    *FoomaticRIPOptionSetting PageSize=Executive: " -dDEVICEWIDTHPOINTS=522 -dDEVICEHEIGHTPOINTS=756"
    *End
    *PageSize Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal"
    *FoomaticRIPOptionSetting PageSize=Legal: " -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=1008"
    *End
    *PageSize A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
    *FoomaticRIPOptionSetting PageSize=A4: " -dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=842"
    *End
    *PageSize A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5"
    *FoomaticRIPOptionSetting PageSize=A5: " -dDEVICEWIDTHPOINTS=420 -dDEVICEHEIGHTPOINTS=595"
    *End
    *PageSize A6/A6: "%% FoomaticRIPOptionSetting: PageSize=A6"
    *FoomaticRIPOptionSetting PageSize=A6: " -dDEVICEWIDTHPOINTS=298 -dDEVICEHEIGHTPOINTS=420"
    *End
    *PageSize A7/A7: "%% FoomaticRIPOptionSetting: PageSize=A7"
    *FoomaticRIPOptionSetting PageSize=A7: " -dDEVICEWIDTHPOINTS=210 -dDEVICEHEIGHTPOINTS=298"
    *End
    *PageSize EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5"
    *FoomaticRIPOptionSetting PageSize=EnvISOB5: " -dDEVICEWIDTHPOINTS=499 -dDEVICEHEIGHTPOINTS=709"
    *End
    *PageSize EnvISOB6/Envelope B6: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB6"
    *FoomaticRIPOptionSetting PageSize=EnvISOB6: " -dDEVICEWIDTHPOINTS=354 -dDEVICEHEIGHTPOINTS=499"
    *End
    *PageSize EnvISOB7/Envelope B7: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB7"
    *FoomaticRIPOptionSetting PageSize=EnvISOB7: " -dDEVICEWIDTHPOINTS=250 -dDEVICEHEIGHTPOINTS=354"
    *End
    *PageSize B5/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5"
    *FoomaticRIPOptionSetting PageSize=B5: " -dDEVICEWIDTHPOINTS=516 -dDEVICEHEIGHTPOINTS=729"
    *End
    *PageSize B6/B6 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B6"
    *FoomaticRIPOptionSetting PageSize=B6: " -dDEVICEWIDTHPOINTS=363 -dDEVICEHEIGHTPOINTS=516"
    *End
    *PageSize B7/B7 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B7"
    *FoomaticRIPOptionSetting PageSize=B7: " -dDEVICEWIDTHPOINTS=258 -dDEVICEHEIGHTPOINTS=363"
    *End
    *PageSize Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10"
    *FoomaticRIPOptionSetting PageSize=Env10: " -dDEVICEWIDTHPOINTS=297 -dDEVICEHEIGHTPOINTS=684"
    *End
    *PageSize EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL"
    *FoomaticRIPOptionSetting PageSize=EnvDL: " -dDEVICEWIDTHPOINTS=312 -dDEVICEHEIGHTPOINTS=624"
    *End
    *PageSize EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch"
    *FoomaticRIPOptionSetting PageSize=EnvMonarch: " -dDEVICEWIDTHPOINTS=279 -dDEVICEHEIGHTPOINTS=540"
    *End
    *PageSize EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5"
    *FoomaticRIPOptionSetting PageSize=EnvC5: " -dDEVICEWIDTHPOINTS=459 -dDEVICEHEIGHTPOINTS=649"
    *End
    *PageSize EnvC6/Envelope C6: "%% FoomaticRIPOptionSetting: PageSize=EnvC6"
    *FoomaticRIPOptionSetting PageSize=EnvC6: " -dDEVICEWIDTHPOINTS=323 -dDEVICEHEIGHTPOINTS=459"
    *End
    *PageSize EnvC7/Envelope C7: "%% FoomaticRIPOptionSetting: PageSize=EnvC7"
    *FoomaticRIPOptionSetting PageSize=EnvC7: " -dDEVICEWIDTHPOINTS=230 -dDEVICEHEIGHTPOINTS=323"
    *End
    *CloseUI: *PageSize
    
    *OpenUI *PageRegion: PickOne
    *OrderDependency: 100 AnySetup *PageRegion
    *DefaultPageRegion: A4
    *PageRegion Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter"
    *PageRegion Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive"
    *PageRegion Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal"
    *PageRegion A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
    *PageRegion A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5"
    *PageRegion A6/A6: "%% FoomaticRIPOptionSetting: PageSize=A6"
    *PageRegion A7/A7: "%% FoomaticRIPOptionSetting: PageSize=A7"
    *PageRegion EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5"
    *PageRegion EnvISOB6/Envelope B6: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB6"
    *PageRegion EnvISOB7/Envelope B7: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB7"
    *PageRegion B5/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5"
    *PageRegion B6/B6 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B6"
    *PageRegion B7/B7 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B7"
    *PageRegion Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10"
    *PageRegion EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL"
    *PageRegion EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch"
    *PageRegion EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5"
    *PageRegion EnvC6/Envelope C6: "%% FoomaticRIPOptionSetting: PageSize=EnvC6"
    *PageRegion EnvC7/Envelope C7: "%% FoomaticRIPOptionSetting: PageSize=EnvC7"
    *CloseUI: *PageRegion
    
    *DefaultPaperDimension: A4
    *PaperDimension Letter/US Letter: "612 792"
    *PaperDimension Executive/Executive: "522 756"
    *PaperDimension Legal/US Legal: "612 1008"
    *PaperDimension A4/A4: "595 842"
    *PaperDimension A5/A5: "420 595"
    *PaperDimension A6/A6: "298 420"
    *PaperDimension A7/A7: "210 298"
    *PaperDimension EnvISOB5/Envelope B5: "499 709"
    *PaperDimension EnvISOB6/Envelope B6: "354 499"
    *PaperDimension EnvISOB7/Envelope B7: "250 354"
    *PaperDimension B5/B5 (JIS): "516 729"
    *PaperDimension B6/B6 (JIS): "363 516"
    *PaperDimension B7/B7 (JIS): "258 363"
    *PaperDimension Env10/Envelope #10: "297 684"
    *PaperDimension EnvDL/Envelope DL: "312 624"
    *PaperDimension EnvMonarch/Envelope Monarch: "279 540"
    *PaperDimension EnvC5/Envelope C5: "459 649"
    *PaperDimension EnvC6/Envelope C6: "323 459"
    *PaperDimension EnvC7/Envelope C7: "230 323"
    
    *DefaultImageableArea: A4
    *ImageableArea Letter/US Letter: "18 36 594 756"
    *ImageableArea Executive/Executive: "18 36 504 720"
    *ImageableArea Legal/US Legal: "18 36 594 972"
    *ImageableArea A4/A4: "18 36 577 806"
    *ImageableArea A5/A5: "18 36 402 559"
    *ImageableArea A6/A6: "18 36 280 384"
    *ImageableArea A7/A7: "18 36 192 262"
    *ImageableArea EnvISOB5/Envelope B5: "18 36 481 673"
    *ImageableArea EnvISOB6/Envelope B6: "18 36 336 463"
    *ImageableArea EnvISOB7/Envelope B7: "18 36 232 318"
    *ImageableArea B5/B5 (JIS): "18 36 498 693"
    *ImageableArea B6/B6 (JIS): "18 36 345 480"
    *ImageableArea B7/B7 (JIS): "18 36 240 327"
    *ImageableArea Env10/Envelope #10: "18 36 279 648"
    *ImageableArea EnvDL/Envelope DL: "18 36 294 588"
    *ImageableArea EnvMonarch/Envelope Monarch: "18 36 261 504"
    *ImageableArea EnvC5/Envelope C5: "18 36 441 613"
    *ImageableArea EnvC6/Envelope C6: "18 36 305 423"
    *ImageableArea EnvC7/Envelope C7: "18 36 212 287"
    

    【讨论】:

      【解决方案3】:

      如果您尝试打印超出标准文档长度,例如打印到卷筒上。

      打开终端,或命令外壳,或可选的 windows bash 提示符

      cd ..

      cd ..

      cd etc

      cd cups

      cd ppd

      先安装 vim 或使用 nano(程序文件编辑器) (vim 有导师,输入 vimtutor)

      sudo vim Eastman_Kodak_Company_KODAK_ESP_3200_Series_AiO.ppd

      滚动到最大高度宽度和自定义页面参数

      i 插入 ESC 退出插入模式 :wq!保存并退出文件

      注意宽度参数将被命名或按顺序命名 宽度,高度。最大宽度参数应保持不变,否则会使打印机对齐关闭,但您可以将长度设置为我认为的任何值。然后您的打印机将不会在页面设置中创建长度边界,并允许您连续循环打印而没有边距。确保根据您的页面布局剪裁纸张长度,否则它只会吐出剩余的纸卷。 这是我第一次尝试它,我不小心改变了我认为是 712 的宽度参数。

      【讨论】:

        【解决方案4】:

        我有一台三星打印机,所以我将源代码下载到了 SpliX 驱动程序。驱动程序源包含一个 Makefile,用于从更简洁地列出可用页面大小的源中编译 .ppd。现在缺少的纸张尺寸显示在打印对话框的选项中。

        (这并没有解决我在小纸上打印的问题。我在自定义纸张尺寸方面的真正问题可能与应用程序与杯子对话的方式以及从 .ps 切换到 .pdf 作为杯子的首选页面输入的方式有关在 Ubuntu 9.04 中...)

        【讨论】:

        • 与直接编辑(生成的)ppds 相比,打印机驱动程序源代码是一个更容易编辑可用页面大小的地方。
        • 但它只有在你拥有源代码的情况下才有效。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多