CN107015770A - 信息处理设备和打印数据生成方法 - Google Patents

信息处理设备和打印数据生成方法 Download PDF

Info

Publication number
CN107015770A
CN107015770A CN201610944864.8A CN201610944864A CN107015770A CN 107015770 A CN107015770 A CN 107015770A CN 201610944864 A CN201610944864 A CN 201610944864A CN 107015770 A CN107015770 A CN 107015770A
Authority
CN
China
Prior art keywords
xps
data
gdi
printing
forms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610944864.8A
Other languages
English (en)
Other versions
CN107015770B (zh
Inventor
母里南阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN107015770A publication Critical patent/CN107015770A/zh
Application granted granted Critical
Publication of CN107015770B publication Critical patent/CN107015770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1279Controller construction, e.g. aspects of the interface hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1809Receiving job control commands relating to the printing process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • G06K15/1811Receiving print data characterized by its formatting, e.g. particular page description languages including high level document description only
    • G06K15/1813Page description language recognition

Abstract

本发明提供一种信息处理设备和打印数据生成方法。能够防止尽管绘制命令源自GDI应用程序并且是相同的,但是打印结果根据要使用的打印机驱动器而发生不同。信息处理设备包括用于根据所输入的XPS格式绘制数据来生成与打印设备兼容的打印数据的打印机驱动器,并且在所输入的XPS格式绘制数据是转换模块从基于GDI应用程序的打印处理所生成的GDI格式绘制数据转换来的XPS格式绘制数据、并且该XPS格式绘制数据包括用于指定对象宽度为0的图形绘制命令的情况下,该打印机驱动器将图形绘制命令改变成用于指定以打印设备能够表现的最小对象宽度进行绘制的图形绘制命令,并且基于包括该改变之后的图形绘制命令的绘制数据来生成打印数据。

Description

信息处理设备和打印数据生成方法
技术领域
本发明涉及打印机驱动器的绘制控制技术。
背景技术
在微软公司的打印系统中,通常使用被称为GDI(图像设备接口)的图形引擎。使用GDI的通常打印处理流程如下。
1)响应于来自用户的用以进行打印的指示,GDI应用程序调用GDI服务函数组并且发出GDI绘制命令。
2)以被称为EMF(增强型图元文件)的数据格式对所发出的GDI绘制命令进行假脱机,并且将其传送至GDI打印机驱动器(以下称为“GDI驱动器”)。
3)GDI驱动器将包括GDI绘制命令的绘制数据(以下称为“GDI格式绘制数据”)转换成可以被打印设备解释的打印数据(所谓的PDL数据),并且将该打印数据输入至打印设备。
假定将如上所述的从GDI应用程序经由GDI驱动器来进行打印的处理流程称为“GDI打印路径”。近年来,针对该GDI打印路径,已经添加了被称为XPS打印路径的新打印处理流程。XPS是基于XML的电子文档格式,并且支持XML文件规范。在XPS打印路径中,通过兼容XPS的应用程序(以下称为“XPS应用程序”)来生成XPS格式绘制数据,通过XPS打印机驱动器(以下称为“XPS驱动器”)将该XPS格式绘制数据转换成打印数据,并且将该打印数据输出至打印设备。
GDI打印路径和XPS打印路径不是排他关系,并且例如可以将通过使用GDI的GDI应用程序所生成的GDI格式绘制数据转换成XPS格式绘制数据,并且通过XPS驱动器将XPS格式绘制数据转换成打印数据。此外,与此相反,还可以将利用XPS应用程序的XPS格式绘制数据转换成GDI格式绘制数据,并且通过GDI驱动器将GDI格式绘制数据转换成打印数据。即,存在从GDI应用程序经由XPS驱动器来进行打印的打印处理流程和从XPS应用程序经由GDI驱动器来进行打印的打印处理流程。例如,在从GDI应用程序通过使用XPS驱动器来进行打印的情况下,通过转换模块将GDI格式绘制数据转换成XPS格式绘制数据。将该转换模式称为MXDW(微软XPS文档写入器(Microsoft XPS Document Writer))。在将转换成XPS格式的绘制数据存储在XPS假脱机文件中之后,通过XPS驱动器将该绘制数据转换成打印数据。
如上所述,在Windows(注册商标)VISTA之后的操作系统(OS)中,使得能够使用四个打印处理流程。由此,可以通过准备GDI驱动器和XPS驱动器中的至少一个,来应对利用GDI应用程序和XPS应用程序这两者所生成的绘制数据的打印处理。
然而,XPS格式和GDI格式之间的规范有所不同,因此存在与绘制数据的格式转换有关的各种问题。作为其中一个示例,提及以下问题:从GDI应用程序向XPS驱动器发出将要打印的图像分配至可打印区域中凸出的部分的打印请求。针对该问题,提出了如下技术来进行控制,以使得通过判断XPS格式绘制数据是源自GDI应用程序还是XPS应用程序来在可打印区域的范围内打印输入至XPS驱动器的XPS格式绘制数据(日本特开2008-276745)。
此外,作为与绘制数据的格式转换有关的问题,除了上述问题,明显还存在与图形对象的绘制有关的问题。该问题是如下的问题:在图形对象绘制命令中指定对象宽度=0的情况下,是否绘制对象(例如线)取决于打印机驱动器。该问题起因于GDI格式中的对象宽度=0意味着装置可以显示的最小宽度,但是XPS格式中的对象宽度=0意味着完全不绘制对象。即,在由GDI应用程序经由GDI所生成的绘制数据包括用于指定具有对象宽度=0的线的绘制的绘制命令的情况下,在通过GDI驱动器来进行打印的条件下绘制线,但是在通过XPS驱动器来进行打印的情况下不绘制线。在尽管绘制命令从相同的应用程序发出并且相同、但是打印结果根据使用的打印机驱动器的类型而明显不同的情况下,打印质量受到显著影响。
发明内容
根据本发明的信息处理设备是如下的一种信息处理设备,其包括:转换模块,用于将基于GDI应用程序的打印处理所生成的GDI格式绘制数据转换成XPS格式绘制数据;以及打印机驱动器,用于根据所输入的XPS格式绘制数据来生成与打印设备兼容的打印数据,其中,在所输入的XPS格式绘制数据是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据,并且该XPS格式绘制数据包括用于指定对象宽度为0的图形绘制命令的情况下,所述打印机驱动器将所述图形绘制命令改变成用于指定以所述打印设备能够表现的最小对象宽度进行绘制的图形绘制命令,并且基于包括进行了该改变的图形绘制命令的绘制数据来生成所述打印数据。
根据本发明的一种打印数据生成方法,其通过打印机驱动器来进行,所述打印机驱动器用于根据所输入的XPS格式绘制数据来生成与打印设备兼容的打印数据,所述打印数据生成方法包括:判断步骤,用于判断所输入的XPS格式绘制数据是否是转换模块从基于GDI应用程序的打印处理所生成的GDI格式绘制数据转换来的XPS格式绘制数据;改变步骤,用于在所述判断步骤中判断为所输入的XPS格式绘制数据是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据,并且该XPS格式绘制数据包括用于指定对象宽度为0的图形绘制命令的情况下,将所述图形绘制命令改变成用于指定以所述打印设备能够表现的最小对象宽度进行绘制的图形绘制命令;以及生成步骤,用于基于包括进行了该改变的图形绘制命令的绘制数据来生成所述打印数据。
通过以下(参考附图)对典型实施例的说明,本发明的其它特征将变得明显。
附图说明
图1是示出用于生成打印数据的信息处理设备的结构的示例的功能框图;
图2是示出信息处理设备的硬件结构的示例的框图;
图3是示出UI驱动器的内部结构的示例的图;
图4是示出图形驱动器的内部结构的示例的图;
图5是示出打印数据生成处理的流程的流程图;
图6是示出XPS数据的数据结构的图;
图7是示出根据第一实施例的应用程序判断处理的详情的流程图;
图8A是示出搜索字符串设置信息的示例的图以及图8B是示出作为搜索的对象文件的打印票的示例的图;
图9是示出绘制命令改变处理的详情的流程图;
图10是示出XPS驱动器的UI画面的示例的图;
图11是示出根据第二实施例的应用程序判断处理的详情的流程图;以及
图12是根据第二实施例的打印票的示例。
具体实施方式
以下参考附图,根据优选实施例来详细说明本发明。以下实施例示出的结构仅是示例,并且本发明不限于示意性示出的这些结构。
第一实施例
图1是示出根据本实施例的用于生成打印数据的信息处理设备的结构的示例的功能框图。在信息处理设备100上,安装有未示出的操作系统(以下称为“OS”)。在本实施例中,假定Windows(注册商标)作为OS。然后,在信息处理设备100中,作为用于生成绘制数据的软件,在OS上运行有GDI应用程序110和XPS应用程序这两个类型的绘制软件。GDI应用程序110在接收到来自用户的打印指示时调用GDI函数,并且通过使用GDI 111来生成与对象的属性(文本、图形、图像等)相对应的GDI格式绘制数据。通常,将GDI 111称为图形引擎。由于GDI格式绘制数据的输入不会原样被XPS驱动器130接收,因此将GDI格式绘制数据发送至MXDW112。MXDW 112是被配置为将GDI格式绘制数据转换成XPS格式绘制数据的模块的GDI-XPS转换单元,并且由OS提供。将通过MXDW 112而转换成XPS格式的绘制数据输入至XPS驱动器130。XPS应用程序120直接生成XPS格式绘制数据。存在经由被称为WPF(Windows呈现基础)的图形引擎来生成XPS格式绘制数据的情况,但是该情况与本发明的特征不相关,因此省略说明。将通过XPS应用程序120所生成的XPS格式绘制数据原样输入至XPS驱动器130。
XPS驱动器130是用于仅接收XPS格式绘制数据作为输入绘制数据的打印机驱动器。XPS驱动器130管理诸如打印份数和薄片大小等的打印设置,并且根据输入绘制数据来生成可以被打印设备解释的打印数据(PDL数据)。将通过XPS驱动器130所生成的打印数据经由假脱机程序(spooler)140而发送至打印设备。XPS驱动器130包括UI驱动器131、图形驱动器132和设置数据存储单元133。UI驱动器131显示XPS驱动器130的用户界面画面(以下称为“UI画面”),并且保存与从用户输入的打印设置有关的信息。图形驱动器132基于用户在UI驱动器131中所设置的打印设置信息、根据XPS格式绘制数据来生成打印数据。稍后将说明UI驱动器131和图形驱动器132的详情。设置数据存储单元133存储与XPS驱动器130在打印数据的生成时所参照的打印有关的各个类型的设置数据。该设置数据采用XML格式来描述,并且包括与UI驱动器131和图形引擎132的操作设置有关的信息。在本实施例中,将与用于判断应用程序的类型的搜索字符串有关的信息保持为设置数据的一部分,并且在打印数据的生成时参照该信息。
图2是示出信息处理设备100的硬件结构的示例的框图。图2所示的结构是示例,并且信息处理设备100可以是单独的设备或者是包括经由诸如LAN和WAN等的网络而连接的多个设备的系统。信息处理设备100通过CPU 201执行ROM 206或硬盘203中所存储的处理程序来实现各个类型的处理,并且对连接至系统总线210的各单元进行集中控制。此外,CPU 201基于鼠标光标等所指定的命令来进行诸如用以打开预先登录的窗口的处理等的各个类型的处理。例如,在用户给出用以进行打印的指示的情况下,CPU 201打开打印设置的窗口,并且进行针对XPS驱动器的各种设置。RAM 202用作CPU 201的主存储器和工作区域等。在硬盘203中,存储有OS、引导程序、各种应用程序、字体数据、用户文件和编辑文件等。在硬盘203中,还保存有XPS驱动器130。显示操作器204控制未示出的显示器的显示。打印机控制器205经由预定的双向接口(未示出)而连接至打印设备,并且负责控制与打印设备的通信。CPU201例如进行用以将显示信息的轮廓字展开(光栅化)到RAM 202上所设置的RAM上,并且使得能够在显示器上实现WYSIWYG(所见即所得)。外部存储驱动207控制对诸如CD和DVD等的存储介质的访问。键盘控制器209控制来自键盘和指点装置的键输入。
随后,说明UI驱动器131的详情。图3是示出UI驱动器131的内部结构的示例的图。UI驱动器131包括UI显示单元301、UI设置单元302、驱动器初始化单元303和驱动器句柄(handle)返回单元304。
UI显示单元301对用户显示UI画面,以在显示器上进行打印设置。UI设置单元302保存用户经由UI显示单元301所设置或改变的打印设置。驱动器初始化单元303对UI驱动器131进行初始化。当从应用程序或GDI 111接收到用以对驱动器进行初始化的指示时,驱动器初始化单元303将初始化处理中所生成的驱动器句柄传送至应用程序或GDI 111。驱动器句柄是用于唯一地识别驱动器的识别名。将初始化处理中所生成的驱动器句柄返回至已经利用驱动器句柄返回单元304给出了初始化指示的应用程序。已经接收到驱动器句柄的应用程序容许针对用户的打印设置输入,并且将绘制数据输出至XPS驱动器130。存在如下情况:将用以显示UI画面的指示连同用以对驱动器进行初始化的指示一起传送至UI驱动器131,以使用户进行打印设置。在这种情况下,在UI显示单元301上显示UI对话框。
随后,说明图形驱动器132的详情。图4是示出图形驱动器132的内部结构的示例的图。如之前所述,图形驱动器132具有用以接收XPS格式绘制数据(以下称为“XPS数据”)、生成与打印设置信息相对应的打印数据、并且将打印数据经由假脱机程序140发送至打印设备的功能。图形驱动器132包括XPS分析单元401和打印数据生成单元402。
在从MXDW 112或XPS应用程序120输入的XPS数据中,以XML描述了所有的文档信息,并且利用ZIP压缩将针对各个描述内容的多个文件整合到一个文件中。在XPS分析单元401中在对所输入XPS数据进行解压缩之后对其进行分析。分析的内容例如包括用以判断所输入的XPS数据是否源自GDI应用程序110的处理。稍后将说明分析处理的详情。此外,XPS分析单元401还生成作为打印数据的先前阶段的数据的中间数据。打印数据生成单元402基于中间数据和打印设置信息来生成打印数据(PDL数据)。将所生成的打印数据输出至假脱机程序140。
接着,详细说明根据本实施例的XPS驱动器130中的打印数据生成处理。图5是示出打印数据生成处理的流程的流程图。打印数据生成处理响应于打印指示而启动XPS驱动器130。具体地,响应于用户的打印指示,通过将ROM 206中所存储的预定程序展开到RAM 202上并且由CPU 201执行该程序来实现打印数据生成处理。
在步骤S501中,将XPS数据从MXDW 112或XPS应用程序120输入至XPS驱动器130。将所输入的XPS数据发送至图形驱动器132内的XPS分析单元401。此时,该状态下的XPS数据采用ZIP格式。当XPS驱动器130接收到XPS数据的输入时,不知道该XPS数据是从XPS应用程序120直接输入的、还是该XPS数据原始是GDI格式绘制数据并且在通过MXDW 112转换成XPS格式之后输入的。由此,在步骤S503中进行稍后将说明的应用程序判断处理,以识别所输入的XPS数据是源自GDI应用程序110还是XPS应用程序120。
在步骤S502中,XPS分析单元401对ZIP格式的XPS数据进行解压缩。图6是示出XPS数据的数据结构的图。XPS数据具有树结构,并且在root文件夹下的第一层级中,存在诸如“Metadata”、“_rels”和“Documents”等的多个文件夹。
在步骤S503中,XPS分析单元401进行应用程序判断处理。该应用程序判断处理是用以判断所输入的XPS数据的源应用程序是GDI应用程序110还是XPS应用程序120。稍后将说明应用程序判断处理的详情。在判断结果表示所输入的XPS数据的源应用程序是GDI应用程序110的情况下,处理进入步骤S505。另一方面,在所输入的XPS数据的源应用程序是XPS应用程序120的情况下,在不进行针对绘制命令的任何操作的情况下生成中间数据,并且处理进入步骤S507。
在步骤S505中,XPS分析单元401判断在针对通过解压缩而获得的“Documents”文件夹内的各页的文件内,是否存在将作为图形属性的对象的宽度指定为0的绘制命令。这里,图6所示的“1.fpage”或“2.fpage”是针对各页的文件,其中,例如包括下述的“Path”的绘制命令。
<Path Data="F1 M 19.2,19.2 L 96,19.2"Stroke="#ffff0000"StrokeThickness="0"StrokeLineJoin="Round"StrokeStartLineCap="Round"StrokeEndLineCap="Round"Clip="M 0,0 L 0,1083.84 755.2,1083.84 755.2,0z"/>
上述的“Path”是用于指定线的绘制的命令,并且各元素表示线绘制的设置内容。例如,Data元素表示移动(M)至坐标(19.2,19.2),并且针对(96,19.2)绘制线(L)。然后,与作为对象宽度的线宽度相关的元素是“StrokeThickness”,这表示元素值是“0”,即根据XPS规范而不绘制线。
在判断结果表示存在用于指定对象宽度为0的图形绘制命令的情况下,处理进入步骤S506。另一方面,在不存在用于指定对象宽度为0的图形绘制命令的情况下,在不进行针对该文件内的绘制命令的任何操作的情况下生成中间数据,并且处理进入步骤S507。
在步骤S506中,XPS分析单元401进行用以将用于指定对象宽度为0的图形绘制命令改变成用于指定利用最小宽度来绘制对象(例如,线对象)的图形绘制命令的处理。例如,在上述绘制命令“Path”的情况下,将该绘制命令改变成如下。
<Path Data="F1 M 19.2,19.2 L 96,19.2"Stroke="#ffff0000"StrokeThickness="0.16"StrokeLineJoin="Round"StrokeStartLineCap="Round"StrokeEndLineCap="Round"Clip="M 0,0 L 0,1083.84 755.2,1083.84 755.2,0z"/>
在上述具体示例的情况下,将“StrokeThickness”的元素值“0”改变成“0.16”,并且这表示以宽度0.16(单位是点)来绘制线。如上所述,不是通过忠实遵循XPS规范来将用于指定对象宽度为0的图形绘制命令解释为不绘制线,而是通过根据GDI规范将该图像绘制命令重新解释为用于以装置的最小单位绘制线的内容来改变绘制命令的内容。稍后将说明绘制命令改变处理的具体流程。然后,根据绘制命令改变处理的结果或者在绘制命令改变处理的处理中生成中间数据,并且将该中间数据发送至打印数据生成单元402。
在步骤S507中,打印数据生成单元402基于中间数据和打印设置信息来生成打印数据。将所生成的打印数据发送至假脱机程序。
以上是XPS驱动器130中的打印数据生成处理的内容。如上所述,关于用于指定对象宽度=0的图形绘制,可以通过生成与源应用程序的类型相对应的打印数据来利用各应用程序所假定的规范进行打印,其中该规范在GDI和XPS之间有所不同。
随后,说明上述图5的流程图中的应用程序判断处理(步骤S503)的详情。在本实施例的应用程序判断处理中,通过根据与预先设置的搜索条件有关的信息从XPS格式绘制数据内的预定文件搜索指定的字符串,来指定输入至XPS驱动器的XPS数据的源应用程序。图7是示出根据本实施例的应用程序判断处理的详情的流程图。
在步骤S701中,从设置数据存储单元133中获取与用于指定源应用程序的搜索字符串有关的设置信息。图8A示出在该步骤中所要获取的搜索字符串设置信息的示例,并且指定利用XPS数据内的哪个部分(文件)作为对象来搜索哪个字符串。在图8A所示的搜索字符串设置信息中,作为搜索条件的单位的Setting元素801进一步具有三个元素:“SearchString”、“SearchPath”和“Mode”。“SearchString”是用于指定要搜索的字符串的元素,并且这里是表示MXDW 112的字符串。作为“SearchString”的值,设置“microsoftxpsdocumentwriter”。该表示MXDW 112的字符串将会在从GDI格式转换成XPS格式时在MXDW 112中的作业级的打印票中被描述。由此,可以判断为通过GDI应用程序110生成了具有包括该字符串的打印票的XPS数据。由于字符串仅需要表示MXDW 112,因此该字符串不限于“microsoftxpsdocumentwriter”。
“SearchPath”是用于指定如下路径的元素,该路径用于指定从XPS数据的哪个文件搜索该字符串。这里,作为“SearchPath”的值,设置“/MetaData/*_PT.xml”。如之前所述,XPS数据是多个文件被ZIP压缩的数据格式,因此通过利用“SearchPath”来指定搜索目的地的路径,指定搜索哪个文件。如在本实施例中,通过使用正规表达(regularrepresentation),可以设置多个文件(例如,具有诸如“A_PT.xml”和“B_PT.xml”等的文件名的文件)作为搜索对象。作业级的打印票的文件名是“JOB_PT.xml”,因此还可以设置字符串“JOB_PT.xml”作为设置值,而无需使用正规表达。“Mode”是如下元素,该元素用于在与“SearchPath”所指定的路径相对应的文件内存在“SearchString”所指定的字符串的情况下、指定XPS数据源自哪个类型的应用程序。这里,作为“Mode”的值,设置“cpk:GDI”。即,在这种情况下,判断为在包括metadata文件夹内的“_PT.xml”作为文件名的文件内存在字符串“microsoftxpsdocumentwriter”的条件下、XPS数据源自GDI应用程序110。在包括“cpk:XPS”作为“Mode”元素的设置值的情况下,判断为XPS数据源自XPS应用程序120。在图8A所示的示例中,仅设置了一个搜索条件(仅一个Setting元素),但是还可以设置多个搜索条件,并且在满足这多个搜索条件(Setting元素)中的任一搜索条件的情况下指定应用程序的类型。这样,设置信息定义了如下内容:从XPS数据的哪个文件搜索哪个字符串,并且在找到该字符串的情况下判断应用程序的类型。由此,可以通过在程序自身保持不变的情况下改变设置信息中的定义,来改变搜索条件。
在步骤S702中,根据与搜索字符串有关的设置信息,判断在“SearchPath”所指定的路径所表示的文件内是否存在“SearchString”所指定的搜索字符串。图8B是示出作为搜索的对象文件的打印票的示例的图。在图8B所示的示例中,在“psf:PrintTicket”元素的“xmlns:ns0000”元素中,包括了上述的字符串“microsoftxpsdocumentwriter”。在判断结果表示在对象文件内存在搜索字符串的情况下,处理进入步骤S703。另一方面,在对象文件内不存在搜索字符串的情况下,处理进入步骤S704。
在步骤S703中,判断为所输入的XPS数据是通过GDI应用程序110经由MXDW 112而生成的,并且终止本处理。
在步骤S704中,判断为所输入的XPS数据是通过XPS应用程序120而生成的,并且终止本处理。
以上是根据本实施例的应用程序判断处理的内容。
随后,说明上述图5的流程图中的绘制命令改变处理(步骤S506)的详情。图9是示出绘制命令改变处理的详情的流程图。
在步骤S901中,从用户所设置的打印设置信息中获取与打印分辨率和打印薄片尺寸有关的信息。在XPS数据内的被称为上述打印票的部分中描述打印设置信息。XPS分析单元401对打印票进行分析,并且获取与打印分辨率和打印薄片尺寸有关的信息。在图8B中示例中,分别通过“psk:PageResolution”元素来将打印分辨率设置成100(dpi),并且通过“psk:PageMediaSize”将打印薄片尺寸设置成与A4尺寸相对应的尺寸(垂直方向210mm×水平方向297mm)。
在步骤S902中,根据所获取到的与打印分辨率和打印薄片尺寸有关信息,求出一个像素(pixel)的宽度,其中该宽度是可以由装置所表现的最小宽度。例如,在如上所述将打印分辨率设置成100(dpi)并且将打印薄片尺寸设置成A4的情况下,图像的像素数量是垂直方向上827个像素×水平方向上1169个像素。在这种情况下,求出大约0.25mm作为一个像素的宽度。
在步骤S903中,将用于指定对象宽度=0(在XPS格式中表示“不绘制”)的图形绘制命令改变成用于指定利用与一个像素宽度相对应的对象宽度(这里为0.25mm)绘制对象的图形绘制命令。
以上是绘制命令改变处理的内容。由于该改变处理,因此在所输入的XPS数据是通过GDI应用程序而生成的情况下,将内容为不进行任何绘制的绘制命令改变成用于指定如GDI规范那样利用最小对象宽度进行绘制的绘制命令。
在上述示例中,通过计算而求出一个像素宽度,但是取决于打印设备或要生成的打印数据的规范,存在如下情况:预先准备用于指定利用最小宽度来绘制诸如线等的图形属性的对象的专用绘制命令。在这样的情况下,还可以省略上述的步骤S902中的求出处理,并且在图5的流程中的打印数据的生成时(步骤S507),在将用于指定对象宽度为0的图形绘制命令改变成上述专用绘制命令之后生成打印数据。在这种情况下,在打印设备侧计算对象宽度。
此外,在本实施例中,信息处理设备上所安装的打印机驱动器仅包括XPS驱动器,但是还可以安装GDI驱动器。通过应用本实施例,即使在将这些打印机驱动器中的任一个用于通过GDI应用程序所生成的绘制数据的情况下,也可以获得相同的打印结果。
根据本实施例,在输入至XPS驱动器的XPS数据源自GDI应用程序的情况下,将用于指定对象宽度=0的绘制命令改变成用于按照GDI应用程序规范来指定利用最小宽度绘制对象的图形绘制命令。由此,可以使用GDI应用程序、经由XPS驱动器进行打印来获得用户所期望的内容的打印结果。
第二实施例
第一实施例是如下方面:通过根据与预先设置的搜索条件有关的信息从XPS数据内的预定文件中搜索指定字符串来指定输入至XPS驱动器的XPS数据的源应用程序,并且根据需要改变绘制命令。接着,将说明作为第二实施例的方面,其中基于用户在打印时所使用的XPS驱动器的用户界面画面上所进行的设置的内容,来指定XPS数据的源应用程序。基本结构与第一实施例共通,并且在下文中,主要说明应用程序判断处理,这是与第一实施例的不同点。
首先,说明用户在打印时所使用的XPS驱动器130的用户界面画面(以下为“UI画面”)。图10是示出XPS驱动器130的UI画面的示例的图。通过UI驱动器131的UI显示单元301将UI画面1000显示在信息处理设备100的显示器上。在打印时,用户通过从文档等的创建应用程序使用如图10所示的UI画面1000,来进行诸如输出薄片尺寸和打印的方向等的各种打印设置。在UI画面1000上,可以在位于右上位置处的“输出模式”的项1001中选择“打印(GDI-XPS互换)”作为输出模式。“打印(GDI-XPS互换)”是在打印并输出GDI应用程序所生成的绘制数据的用户期望获得与通过GDI驱动器经由XPS驱动器进行打印的打印时相同的打印结果的情况下选择的模式。在用户未选择“打印(GDI-XPS互换)”的情况下(例如,在用户选择表示正常打印的“打印(正常)”的情况下),一切都遵循XPS规范。即,即使在通过GDI应用程序来生成绘制数据的情况下,也按照XPS规范,将用于指定对象宽度=0的图形绘制命令视为用于指定不绘制对象的图形绘制命令。
图11是示出根据本实施例的应用程序判断处理的详情的流程图。
在步骤S1101中,从所接收到的XPS数据,获取作为描述了打印设置信息的文件的打印票,并且对内容进行分析。此时,获取用户在打印设置时在上述UI画面1000上的项1001中所选择的输出模式的设置值。图12是根据本实施例的XPS数据的打印票的示例。这里,通过XPS数据的打印票上的“psk:OutputMode”来描述在UI画面1000上的输出模式的项1001。在图12的示例中,将“GDI”设置为“psk:OutputMode”的元素值,并且这表示选择“打印(GDI-XPS互换)”作为输出模式。这使得XPS分析单元401可以通过读取打印票上的“psk:OutputMode”元素的设置值,来指定XPS数据的源应用程序的类型。
在步骤S1102中,判断所获取到的输出模式的设置值(“psk:OutputMode”的元素值)是否为“GDI”。在判断结果表示“GDI”的情况下,处理进入步骤S1103。另一方面,在设置值不是“GDI”的情况下,处理进入步骤S1104。
在步骤S1103中,判断为所输入的XPS数据是通过GDI应用程序110经由MXDW 112而生成的XPS数据,并且终止本处理。
在步骤S1104中,判断为所输入的XPS数据通过XPS应用程序120而生成的XPS数据,并且终止本处理。
以上是根据本实施例的应用程序判断处理的内容。
通过本实施例,与第一实施例相同,也能够在GDI应用程序中通过经由XPS驱动器进行打印来获得用户所期望的内容的打印结果。
其它实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
根据本发明,在通过XPS驱动器生成包括用于指定对象宽度=0的图形绘制命令的打印数据时,在绘制命令源自GDI应用程序的情况下,将绘制命令改变成用于指定利用装置中的最小宽度来进行绘制的绘制命令。由此,能够防止尽管绘制命令源自GDI应用程序并且是相同的,但是打印结果根据要使用的打印机驱动器而发生差异。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。

Claims (9)

1.一种信息处理设备,包括:
转换模块,用于将基于GDI应用程序的打印处理所生成的GDI格式绘制数据转换成XPS格式绘制数据;以及
打印机驱动器,用于根据所输入的XPS格式绘制数据来生成与打印设备兼容的打印数据,
其特征在于,在所输入的XPS格式绘制数据是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据,并且该XPS格式绘制数据包括用于指定对象宽度为0的图形绘制命令的情况下,所述打印机驱动器将所述图形绘制命令改变成用于指定以所述打印设备能够表现的最小对象宽度进行绘制的图形绘制命令,并且基于包括进行了该改变的图形绘制命令的绘制数据来生成所述打印数据。
2.根据权利要求1所述的信息处理设备,其中,
所述打印机驱动器还包括判断单元,所述判断单元用于判断所输入的XPS格式绘制数据是否是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据。
3.根据权利要求2所述的信息处理设备,其中,
所述判断单元通过根据预先设置的搜索条件信息从所输入的XPS格式绘制数据内的预定文件中搜索指定的字符串,来判断该XPS格式绘制数据是否是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据。
4.根据权利要求2所述的信息处理设备,其中,
所述判断单元基于用户在所述打印机驱动器的用户界面画面上所进行的与输出模式相关的设置内容,来判断所输入的XPS格式绘制数据是否是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据。
5.根据权利要求1所述的信息处理设备,其中,
所述打印机驱动器包括用于通过从所输入的XPS格式绘制数据内的打印票获取与打印分辨率和打印薄片尺寸有关的信息来求出所述最小对象宽度的求出单元,并且所述打印机驱动器将用于指定对象宽度为0的图形绘制命令改变成用于指定以所求出的对象宽度进行绘制的图形绘制命令。
6.根据权利要求1所述的信息处理设备,其中,
所述打印机驱动器将用于指定对象宽度为0的图形绘制命令改变成用于指定以所述打印设备能够表现的所述最小对象宽度进行绘制的预定专用图形绘制命令。
7.根据权利要求1所述的信息处理设备,其中,
用于指定对象宽度为0的图形绘制命令是线对象图形绘制命令。
8.根据权利要求1所述的信息处理设备,其中,
在所输入的XPS格式绘制数据是基于XPS应用程序的打印处理所生成的XPS格式绘制数据的情况下,所述打印机驱动器不改变该XPS格式绘制数据中所包括的用于指定对象宽度为0的图形绘制命令。
9.一种打印数据生成方法,其通过打印机驱动器来进行,所述打印机驱动器用于根据所输入的XPS格式绘制数据来生成与打印设备兼容的打印数据,所述打印数据生成方法的特征在于包括:
判断步骤,用于判断所输入的XPS格式绘制数据是否是转换模块从基于GDI应用程序的打印处理所生成的GDI格式绘制数据转换来的XPS格式绘制数据;
改变步骤,用于在所述判断步骤中判断为所输入的XPS格式绘制数据是所述转换模块从GDI格式绘制数据转换来的XPS格式绘制数据,并且该XPS格式绘制数据包括用于指定对象宽度为0的图形绘制命令的情况下,将所述图形绘制命令改变成用于指定以所述打印设备能够表现的最小对象宽度进行绘制的图形绘制命令;以及
生成步骤,用于基于包括进行了该改变的图形绘制命令的绘制数据来生成所述打印数据。
CN201610944864.8A 2015-10-26 2016-10-26 信息处理设备和打印数据生成方法 Active CN107015770B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015209846A JP6234417B2 (ja) 2015-10-26 2015-10-26 情報処理装置及びその制御方法とプログラム
JP2015-209846 2015-10-26

Publications (2)

Publication Number Publication Date
CN107015770A true CN107015770A (zh) 2017-08-04
CN107015770B CN107015770B (zh) 2020-03-03

Family

ID=58559028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610944864.8A Active CN107015770B (zh) 2015-10-26 2016-10-26 信息处理设备和打印数据生成方法

Country Status (3)

Country Link
US (2) US9754197B2 (zh)
JP (1) JP6234417B2 (zh)
CN (1) CN107015770B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275683A (zh) * 2018-03-15 2019-09-24 佳能株式会社 控制方法和信息处理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6938204B2 (ja) * 2017-05-02 2021-09-22 キヤノン株式会社 情報処理装置、プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038534A (zh) * 2006-03-17 2007-09-19 佳能株式会社 信息处理设备及其控制方法
CN101467123A (zh) * 2006-06-09 2009-06-24 佳能株式会社 信息处理装置、信息处理方法及程序
CN102147716A (zh) * 2010-02-10 2011-08-10 佳能株式会社 信息处理方法及信息处理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1210159C (zh) * 2000-05-24 2005-07-13 西尔弗布鲁克研究有限公司 打印引擎/控制器和集成了引擎/控制器的打印头接口芯片
JP4624087B2 (ja) * 2004-12-06 2011-02-02 京セラミタ株式会社 描画処理装置及びプログラム
JP4667280B2 (ja) * 2006-03-17 2011-04-06 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US8233162B2 (en) * 2007-04-02 2012-07-31 Seiko Epson Corporation Printer controller and method of printing print document which scale down a print image so that an entire area of a print sheet fits into a printable area
JP4367561B2 (ja) 2007-04-02 2009-11-18 セイコーエプソン株式会社 印刷制御装置及び印刷文書の印刷方法
JP4375459B2 (ja) * 2007-08-03 2009-12-02 ブラザー工業株式会社 印刷制御装置およびプリンタドライバのプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038534A (zh) * 2006-03-17 2007-09-19 佳能株式会社 信息处理设备及其控制方法
CN101467123A (zh) * 2006-06-09 2009-06-24 佳能株式会社 信息处理装置、信息处理方法及程序
CN102147716A (zh) * 2010-02-10 2011-08-10 佳能株式会社 信息处理方法及信息处理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275683A (zh) * 2018-03-15 2019-09-24 佳能株式会社 控制方法和信息处理装置
US11429331B2 (en) 2018-03-15 2022-08-30 Canon Kabushiki Kaisha Control method and information processing apparatus extending the function of a printer driver

Also Published As

Publication number Publication date
US9754197B2 (en) 2017-09-05
US20170116501A1 (en) 2017-04-27
US20170316290A1 (en) 2017-11-02
CN107015770B (zh) 2020-03-03
US9990572B2 (en) 2018-06-05
JP6234417B2 (ja) 2017-11-22
JP2017083996A (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
JP5531531B2 (ja) 画像処理システム及び画像処理プログラム
JP2017168140A (ja) 端末の制御方法
JP5901704B2 (ja) 情報処理装置、情報処理方法、プログラム
JP5072676B2 (ja) 情報処理装置、情報処理方法及び印刷システム
JP2007310877A (ja) プリンタに印刷ジョブを提示するための自動ジョブサブミッタ
CN102681802B (zh) 信息处理设备及打印方法
JP2011165010A (ja) 情報処理方法および情報処理装置、プログラム
JP6576224B2 (ja) 情報処理装置及びその制御方法とプログラム
US20120140249A1 (en) Information processing device, information processing method, and computer program product
US7941750B2 (en) Method and system for defining separate print quality regions within a print job
EP2544127B1 (en) Parallel rip processing for sheet images that include graphics defined by a job ticket
CN107015770A (zh) 信息处理设备和打印数据生成方法
US9606752B2 (en) Associating print settings to individual print objects in a print preview
CN105373356B (zh) 信息处理装置及其控制方法
JP6939304B2 (ja) 制御プログラム
CN110196697A (zh) 信息处理设备、信息处理方法和存储介质
JP6437076B2 (ja) 情報処理装置及びその制御方法とプログラム
US9384173B2 (en) Information processing apparatus having page preview function, method of controlling the same, and storage medium
US7710602B2 (en) Systems and methods for context-based adaptive image processing using segmentation
JP2005182694A (ja) 割付印刷システム
JP2010105191A (ja) 画像処理装置
JP6376876B2 (ja) 情報処理装置、プログラム及び制御方法
JP2013161459A (ja) 文書処理方法
JP5494561B2 (ja) 情報処理装置、画像形成装置、プログラム、及び、情報処理方法
JP2007261172A (ja) 画像形成装置及び画像形成方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant