科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Windows系统打印选项在Linux上的移植 (1)

Windows系统打印选项在Linux上的移植 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

移植是实现传统高层应用程序跨平台运行的一项核心技术。打印子系统移植是应用程序移植的重要组成部分。实现打印选项设置模块在不同平台上的用户接口UI(User Interface)转换是实现打印子系统移植过程中的一项核心技术。

作者:龚奕平 来源:IBM DW中国 2007年10月18日

关键字: 操作系统 Linux 打印 Windows

  • 评论
  • 分享微博
  • 分享邮件
 

移植是实现传统高层应用程序跨平台运行的一项核心技术。打印子系统移植是应用程序移植的重要组成部分。实现打印选项设置模块在不同平台上的用户接口UI(User Interface)转换是实现打印子系统移植过程中的一项核心技术。本文将重点阐述一种使用GNOME Print在Linux平台上实现Windows打印选项设置的移植方法。

本文第一节将简要介绍Windows平台上的打印设置和相关数据结构;第二节介绍Linux平台上GNOME Print的打印设置和相关数据结构;第三节介绍GNOME Print打印设置的移植架构;第四节介绍移植的细节;第五节则进一步讨论Linux平台上GNOME Print以外的打印设置方法;本文的简要总结在第六节中给出。

1. Windows打印选项设置

图1 Windows系统打印设置对话框

在Windows平台上,用户可以通过Windows系统打印设置对话框(如图1所示)来完成对打印选项的设置。程序员可以通过调用Windows API DocumentProperties() 来获得该系统打印设置对话框。图1为一款EPSON打印机的打印设置对话框,用户可以通过该对话框来设置打印属性,如打印纸张的大小和纸张的方向等等。该对话框是Windows为用户提供的一个友好的前台UI界面;与之相对应的后台核心数据则被存储在Windows标准数据结构DEVMODE中。 DEVMODE结构的原形定义如下:

typedef struct _devicemode { 
  BCHAR  dmDeviceName[CCHDEVICENAME]; 
  WORD   dmSpecVersion; 
  WORD   dmDriverVersion; 
  WORD   dmSize; 
  WORD   dmDriverExtra; 
  DWORD  dmFields; 
  union {
    struct {
      short dmOrientation; //打印纸张方向
      short dmPaperSize;   //打印纸张名称
      short dmPaperLength; //打印纸张长度
      short dmPaperWidth;  //打印纸张宽度
      short dmScale; 
      short dmCopies; 
      short dmDefaultSource; 
      short dmPrintQuality; 
    };
    POINTL dmPosition;
    DWORD  dmDisplayOrientation;
    DWORD  dmDisplayFixedOutput;
  };
…
}

在此简要介绍DEVMODE结构的三个重要参数:打印纸张名称,打印纸张方向,和打印纸张大小(长度和宽度)。其他参数由于篇幅限制,在此不作逐一解析,有兴趣的读者请参考MSDN。以下以n_DevMode为例进行说明:

DEVMODE n_DevMode;

(1) 打印纸张名称在Windows中被定义为:

n_DevMode.dmPaperSize

Windows将纸张名称预定义为一系列整数宏,如DMPAPER_LETTER,DMPAPER_A4等等。

(2) 打印纸张方向在Windows中被定义为:

n_DevMode.dmOrientation

该参数可以取如下两个值:DMORIENT_PORTRAIT表示纸张方向为纵向;DMORIENT_LANDSCAPE表示纸张方向为横向。

(3) 打印纸张的长度和宽度在Windows中被定义为:

n_DevMode.dmPaperLength
n_DevMode. dmPaperWidth

这两个参数的单位为0.1毫米。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章