Windows系统打印选项在Linux上的移植
天新网 【转载】 2009年03月24日 19:01
移植是实现传统高层应用程序跨平台运行的一项核心技术。打印子系统移植是应用程序移植的重要组成部分。实现打印选项设置模块在不同平台上的用户接口UI(User Interface)转换是实现打印子系统移植过程中的一项核心技术。本文将重点阐述一种使用GNOME Print在Linux平台上实现Windows打印选项设置的移植方法。
本文第一节将简要介绍Windows平台上的打印设置和相关数据结构;第二节介绍Linux平台上GNOME Print的打印设置和相关数据结构;第三节介绍GNOME Print打印设置的移植架构;第四节介绍移植的细节;第五节则进一步讨论Linux平台上GNOME Print以外的打印设置方法;本文的简要总结在第六节中给出。
1. Windows打印选项设置

在Windows平台上,用户可以通过Windows系统打印设置对话框(如图1所示)来完成对打印选项的设置。程序员可以通过调用Windows API DocumentPropertIEs() 来获得该系统打印设置对话框。图1为一款EPSON打印机的打印设置对话框,用户可以通过该对话框来设置打印属性,如打印纸张的大小和纸张的方向等等。该对话框是Windows为用户提供的一个友好的前台UI界面;与之相对应的后台核心数据则被存储在Windows标准数据结构DEVMODE中。 DEVMODE结构的原形定义如下:
在此简要介绍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中被定义为:
这两个参数的单位为0.1毫米。
- 相关阅读:
- ·游戏不支持Linux咋办?3种方法告诉你
 //server.zol.com.cn/552/5525279.html
- ·当不同国家遇到Linux时 会有什么结果?
 //server.zol.com.cn/554/5545203.html
- ·进阶:Windows 10“六脉神剑”使用说明
 //server.zol.com.cn/554/5548376.html
- ·互联网时代 金融机构IT系统如何转型?
 //server.zol.com.cn/553/5534660.html
- ·操作系统免费装 IBM x3850 X6服务器促销
 //server.zol.com.cn/553/5534436.html

 推荐:12款超棒的乌班图 Linux GTK主题
推荐:12款超棒的乌班图 Linux GTK主题 Z拆机:杰和GCR2524MP-RF服务器图赏
Z拆机:杰和GCR2524MP-RF服务器图赏 2022龙芯生态大会专题
2022龙芯生态大会专题 2021浪潮专题
2021浪潮专题 宝德 NVIDIA 协同赋能,为您的AI之旅保驾护
宝德 NVIDIA 协同赋能,为您的AI之旅保驾护 OCP CHINA DAY 2019
OCP CHINA DAY 2019