扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
注意:以上代码是通过函数gnome_print_config_set()来改变GnomePrintConfig设置的。事实上,每个 GNMOE Print系统打印设置对话框(图2)都会和一个GnomePrintConfig结构相关联。用户对该对话框选项的改变都有可能影响到后台 GnomePrintConfig结构的相关数值。更为具体的说,当用户点击图2中"确定"按钮后,与之相连的GnomePrintConfig结构的相关数值就会根据用户的选择被自动更新。
4.3 获取GNOME Print打印参数和参数转换
在用户设置完打印参数之后,移植程序就需要读取这些参数的具体数值,并把这些数值转化成Windows的数据结构。GNOME Print提供了一系列函数,如gnome_print_config_get()和gnome_print_config_get_page_size (),来读取打印设置数值。
4.3.1 读取打印纸张名称
移植程序可以通过函数gnome_print_config_get() 来获取当前打印纸张的名称。
|
在此,GNMOE Print返回的纸张名称被存储在字符串变量pPaperName中。当然,这里得到的打印纸张名称和Windows定义的打印纸张名称是不一致的: GNOME Print获得的打印纸张名称通常为"A4"或"B5"这样具有明显含义的字符串;而Windows则将纸张的名称定义为一系列宏存储在结构 n_DevMode.dmPaperSize中。因此移植程序还需根据规范进行相应转换。
4.3.2 读取打印纸张尺寸
移植程序可以通过函数gnome_print_config_get_page_size()可以获取当前打印纸张的长度(PaperLength_pt)和宽度(PaperWidth_pt)。
|
从GNOME Print中获取的纸张尺寸是以1/72英寸为单位的;而Windows则把纸张尺寸以0.1毫米为单位存储在结构DEVMODE. dmPaperWidth和DEVMODE.dmPaperLength中。因此,移植程序需要进行如下转换:
|
在此,代码(short)(x+0.5)的含义是返回浮点数x的四舍五入整数值。
4.3.3 读取打印纸张方向
移植程序可以通过函数gnome_print_config_get()来获取当前的打印纸张的方向。在下面的代码中,打印纸张方向称被存储在字符串变量pPaperName中。
|
Windows将打印纸张方向存储在结构DEVMODE.dmOrientation中。移植程序需要进行如下转换:
|
4.4 GNOME Print清理工作
在使用完GNOME Print打印设置后,需要手动释放分配的内存。
|
使用GNOME Print就要遵循GNOME Print的数据接口。当然使用GNOME Print并不是在Linux平台上完成打印选项设置的唯一选择。不少Linux应用程序,无论是移植应用程序还是在Linux平台上直接开发的应用程序,通过自定义打印前台(即打印设置对话框)和打印后台(即打印数据结构)来完成打印设置功能。在此将这种实现方式称为自定义打印设置方法。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者