CN109582250B - 存储实现打印机驱动的指令的非暂时性计算机可读介质和控制信息处理设备的方法 - Google Patents
存储实现打印机驱动的指令的非暂时性计算机可读介质和控制信息处理设备的方法 Download PDFInfo
- Publication number
- CN109582250B CN109582250B CN201810789270.3A CN201810789270A CN109582250B CN 109582250 B CN109582250 B CN 109582250B CN 201810789270 A CN201810789270 A CN 201810789270A CN 109582250 B CN109582250 B CN 109582250B
- Authority
- CN
- China
- Prior art keywords
- data
- command
- transformation matrix
- generating
- commands
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000010365 information processing Effects 0.000 title claims abstract description 12
- 239000011159 matrix material Substances 0.000 claims abstract description 121
- 230000009466 transformation Effects 0.000 claims abstract description 120
- 230000004048 modification Effects 0.000 claims abstract description 55
- 238000012986 modification Methods 0.000 claims abstract description 55
- 230000010354 integration Effects 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 48
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000009467 reduction Effects 0.000 claims description 13
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 abstract description 71
- 230000000007 visual effect Effects 0.000 abstract description 57
- QFTYEBTUFIFTHD-UHFFFAOYSA-N 1-[6,7-dimethoxy-1-[1-(6-methoxynaphthalen-2-yl)ethyl]-3,4-dihydro-1H-isoquinolin-2-yl]-2-piperidin-1-ylethanone Chemical compound C1=CC2=CC(OC)=CC=C2C=C1C(C)C(C1=CC(OC)=C(OC)C=C1CC1)N1C(=O)CN1CCCCC1 QFTYEBTUFIFTHD-UHFFFAOYSA-N 0.000 description 14
- 230000004044 response Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 3
- 238000012905 input function Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1206—Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1214—Improving printing performance achieving reduced delay between job submission and print start at the submitting node
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1228—Printing driverless or using generic drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1246—Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1248—Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1254—Automatic configuration, e.g. by driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1275—Print workflow management, e.g. defining or changing a workflow, cross publishing
- G06F3/1277—Print workflow management, e.g. defining or changing a workflow, cross publishing using filter pipeline, e.g. outside the driver, adding traps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
- G06K15/1811—Receiving print data characterized by its formatting, e.g. particular page description languages including high level document description only
- G06K15/1813—Page description language recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1849—Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1867—Post-processing of the composed and rasterized print image
- G06K15/1872—Image enhancement
- G06K15/1873—Increasing spatial resolution; Anti-aliasing
- G06K15/1874—Increasing spatial resolution; Anti-aliasing with provisions for treating some of the print data differently
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/393—Enlarging or reducing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明涉及存储实现打印机驱动的指令的非暂时性计算机可读介质和控制信息处理设备的方法。打印机驱动具有一个过滤器。该过滤器包括用于基于打印票据构建由多个阶段构成的流水线的程序。在多个阶段中的一个或多个阶段中,打印目标数据的内容框被修改。当内容框被修改时,生成分别指示仿射变换矩阵的命令(S21,S31,S41)。这些命令被推入到命令栈(S22,S32,S42)。推入的命令用于视觉元素修改(S81)。具体地说,仿射变换矩阵相乘,从而生成整合变换矩阵。视觉元素通过将视觉元素的仿射变换矩阵乘以整合变换矩阵来修改。
Description
技术领域
本公开涉及存储实现打印机驱动的指令的非暂时性计算机可读介质。
背景技术
已知Microsoft采用称为XPS打印机驱动“XPSDrv”的体系架构。XPSDrv通常包括具有分别具有不同功能的多个过滤器的流水线。例如,多个功能包括放大/缩小由打印目标数据表示的图像的功能和旋转由打印目标数据表示的图像的功能等。
这种用于XPSDrv的流水线的过滤器可以由打印机的供应商开发。在日本专利临时公报No.2015-225481中公开了这种技术的示例。
发明内容
由XPSDrv创建的XPS数据包括指示诸如字符、图形、图像的描画对象(graphicalobjects)的对象数据以及指令要应用于对象数据的变换的变换指令数据。过滤器基于变换指令数据向对象数据应用包括旋转处理、放大/缩小处理和平移处理的转换处理。指示单个页面的XPS数据包括多条对象数据,并且多条对象数据分别指示配置页面的多个对象。对象数据包括矩阵。变换处理是将描画对象中包括的矩阵乘以与变换处理相对应的矩阵的处理。因此,当对XPS数据的单个页面应用多个变换处理时,应当执行N(对象数量)×M(变换处理的数量)次矩阵运算。因此从变换处理开始到打印数据的生成要求相对较长的时间段。
考虑到以上内容,本公开的各方面提供了减少创建打印数据所需的时间段的改进技术。
根据本公开的各方面,提供了一种存储实现打印机驱动的计算机可读指令的非暂时性计算机可读介质。打印机驱动在被执行时使得控制器执行接收打印目标数据的接收处理,该打印目标数据包括指示描画对象的第一对象数据和指令执行描画对象的多个修改的修改指令数据,以及分别生成对应于所述多个修改的多个第一命令的生成处理。第一对象数据包括指示描画对象的位置和大小中的至少一个的矩阵。多个第一命令分别指示变换矩阵,变换矩阵中的每一个基于多个修改中的一个来变换第一对象数据的矩阵。打印机驱动当被执行时还使得控制器执行整合处理以通过将多个变换矩阵相乘来生成整合变换矩阵,以及修改处理以通过将第一对象数据的矩阵乘以整合变换矩阵来修改第一对象数据。
根据本公开的各方面,提供了一种信息处理设备。信息处理设备包括控制器,所述控制器被配置为接收打印目标数据,该打印目标数据包括指示描画对象的第一对象数据和指令执行描画对象的多个修改的修改指令数据,以及分别生成对应于所述多个修改的多个第一命令。第一对象数据包括指示描画对象的位置和大小中的至少一个的矩阵。多个第一命令分别指示变换矩阵,变换矩阵中的每一个基于多个修改中的一个来变换第一对象数据的矩阵。该控制器还被配置为通过将多个变换矩阵相乘来生成整合变换矩阵,以及修改处理以通过将第一对象数据的矩阵乘以整合变换矩阵来修改第一对象数据。
根据本公开的各方面,提供了一种可在与信息处理设备耦合的处理器上实现的方法。该方法包括:接收打印目标数据,该打印目标数据包括指示描画对象的第一对象数据和指令执行描画对象的多个修改的修改指令数据;以及分别生成与多个修改对应的多个第一命令。第一对象数据包括指示描画对象的位置和大小中的至少一个的矩阵。多个第一命令分别指示变换矩阵,变换矩阵中的每一个基于多个修改中的一个来变换第一对象数据的矩阵。该方法还包括通过将多个变换矩阵相乘来生成整合变换矩阵,并且通过将第一对象数据的矩阵乘以整合变换矩阵来修改第一对象数据。
根据本公开的各方面,由于通过乘法生成整合变换矩阵,并且将包括在第一对象数据中的矩阵乘以所生成的整合变换矩阵,所以与通过每个变换矩阵修改第一对象数据的情况相比,可以减少信息处理设备的CPU的运算次数。因此,可以缩短打印数据的生成时间。
附图说明
图1是示出根据说明性实施例的PC的功能配置的框图。
图2是示出在OS和打印机驱动之间执行的数据通信的顺序图。
图3A、3B和3C是分别示出根据说明性实施例的流水线的第一、第二和第三阶段的流程图。
图4A是示出流水线的第四阶段的流程图。
图4B是示出根据说明性实施例的N-up处理的流程图。
图5是示出流水线的最后阶段的流程图。
图6是示出变换处理的流程图。
图7A和图7B示出了具体示出变换处理的流程图。
图8A、8B、8C和8D示出了内容框的旋转。
图9A、9B、9C和9D示出了N-up处理。
图10A和10B示出了被推入到命令栈的命令的示例。
图10C-10J示出了解析命令的处理。
图11A示出了根据变型实施例的打印机驱动的配置。
图11B是示出根据变型实施例的流水线的最后阶段的流程图。
具体实施方式
在下文中,将参照附图描述根据本公开的说明性实施例。应当指出,下面描述的说明性实施例仅仅是本公开的示例,并且可以以各种方式修改而不背离本公开的方面。例如,稍后描述的处理的顺序可以在不脱离本公开的方面的情况下被任意地改变。
<说明性实施例>
图1示意性地示出其中安装了根据说明性实施例的打印机驱动32的PC 10的配置。PC 10例如是个人计算机。在以下描述中,将仅解释执行打印处理所需的配置。PC 10是信息处理设备的示例。
PC 10设有输入I/F 21、通信I/F 22、CPU 23、存储器24、主存储器25和总线26。
输入I/F 21通过有线或无线连接与用户I/F 11连接。用户I/F 11可以包括键盘和鼠标。用户I/F 11被配置为接收诸如打印指令、打印设置的用户输入等的用户输入。用户I/F 11接收到的用户输入通过输入I/F 21被传送到PC 10。
通信I/F 22通过使用USB电缆或LAN电缆的有线连接或通过无线LAN的无线连接而连接到打印机12,并且执行与打印机12的数据通信。例如,打印数据通过通信I/F22从PC10传送到打印机12。又例如,指示发生卡纸的信息通过通信I/F22从打印机12传送到PC10。
CPU 23被配置为执行计算操作。存储器24被配置为存储程序,如稍后将描述的。当CPU 23执行存储在存储器24中的各个程序时使用主存储器25。存储器24例如是可以存储大量数据的硬盘。主存储器25例如是诸如DRAM的RAM,其中数据的高速存取是可用的。
CPU 23被配置为执行存储在存储器24中的各个程序。具体地,存储在存储器24中并且将被执行的程序在主存储器25中被展开,并且CPU 23顺序地执行在程序的各个地址中描述的命令。CPU 23是控制器的示例。
存储器24存储OS 31、打印机驱动32、文档创建程序33和图像创建程序34。
存储器24和主存储器25中的每一个可以是计算机可读存储介质。计算机可读存储介质是非暂时性介质。除了上述计算机可读存储介质之外,非暂时性介质还包括诸如CD-ROM、DVD-ROM等的存储介质。还指出,非暂时性介质是有形介质。相反,携带从因特网上的服务器等下载的程序的电信号是作为计算机可读存储介质中的一种的计算机可读信号介质,它不包括在非暂时性计算机可读存储器中。
文档创建程序33是用于创建文档的程序。图像创建程序34是用于处理诸如照片的图像的程序。在下面的描述中,为了描述,文档创建程序33或图像创建程序34有时将被称为“编辑程序”。响应于PC10的用户通过用户I/F 11指令打印所创建的文档或所创建的图像,编辑程序输出代表被指令要打印的所创建的文档或所创建的图像的图像数据作为打印目标数据。打印目标数据具有可由OS 31解释/处理的特定格式。此外,指示由用户通过用户I/F 11选择的打印机的所选打印机信息以及已经通过用户I/F 11输入的打印设置与打印目标数据一起输出。当由CPU 23执行时,编辑程序在PC 10的显示器上显示用于请求用户选择打印机并输入打印设置的设置窗口,通过用户I/F 11接收输入,并且在存储器24中存储所选择的打印机信息和打印设置。
此外,除了或代替文档创建程序33和图像创建程序34,电子表格程序或另一程序可以是编辑程序的示例。编辑程序可以从与所选择的打印机相对应的打印机驱动32接收打印设置,并将打印设置与打印目标数据一起输出。OS 31可以显示设置窗口,通过用户I/F11接收用户的输入,并且将选择的打印机信息和打印设置存储在存储器24中。在这种情况下,当接收到从编辑程序传送的打印目标数据时,OS 31检索来自存储器24的所选择的打印机信息和打印设置。
打印设置包括纸张尺寸(例如,A4、B5等)设置、放大/缩小比率设置、水印设置、打印方向设置(例如,纵向或者横向)、颜色设置(例如单色或全彩)、N-up设置等。
打印票据(print ticket)(稍后描述)是从打印设置转换的数据,并且是变型指令数据的示例。图9A中示出了打印票据的示例。图9A所示的打印票据指示(1)对由打印目标数据表示的全部页面设定2合1打印,(2)设定添加水印并且将打印方向设置为对于第一页面纵向,和(3)未添加水印并且将打印方向设置为对于第二页面横向。应指出的是,打印票据可指示其他设置。例如,打印票据可以指示打印尺寸、单面打印/双面打印的设置、彩色打印/单色打印的设置等。
基本上,打印票据包括在第一到第四阶段(稍后描述)中生成命令所需的全部信息。例如,在图9A所示的打印票据中,第一页的设置不仅包括指示水印添加的信息,还包括指示基于文本数据形成水印的信息,该文本数据代表要用作水印的字符串“水印”,指示水印的位置和大小的信息。注意,指示水印位置的信息可以指示内容框(稍后描述)内的相对位置。在这种情况下,指示包括在XPS数据(稍后描述)中的内容框的位置的信息也用于生成命令。
水印是要在打印在打印纸上的原始字符和/或(一个或多个)图像上叠印的(一个或多个)半透明字符或(一个或多个)图形。例如,使用水印来表明版权存在。
N-up是将多个页面——例如两页或四页——共同打印到一个页面中的打印设置。N-up也被称为N合1。
OS 31包括用于将由编辑程序输出的打印目标数据转换为具有XPS(XML纸张规格)格式的打印目标数据的DLL。OS 31还包括用于基于由编辑程序输出的打印设置来生成打印票据的DLL。OS31还包括用于根据OPC(Open Packaging Conventions:开放打包约定)打包具有XPS格式的打印目标数据和打印票据的DLL。
XPS是开发的格式,用作打印过程的文件格式,并且是XAML(可扩展应用程序标记语言)的子集。XAML是基于XML的标记语言。XML格式数据包括用于仿射变换的仿射变换矩阵,并且可以放大/缩小和/或旋转图像而不损害其图像质量。
XPS格式打印目标数据是通过将由编辑程序输出的打印目标数据转换为XPS格式数据而生成的XAML文档。在下文中,XPS格式打印目标数据也被称为XPS数据。在XPS数据中,一个页面被指示为装置固定页面而调用的数据单元。因此,指示多个页面的打印目标数据被转换为包括多个固定页面的XPS数据。
图9B和图9C中示出了固定页面的示例。每个固定页面包括代表页面的宽度的页面宽度(Page Width)、代表页面的高度的页面高度(Page Height)、代表页面内的内容框的内容框(Content Box)、和视觉元素。在指示图9B所示的第一页面的固定页面中,页面宽度为210,页面高度为297。内容框例如指示图像被渲染的区域,并且包括指示从页面的边缘到内容框的边缘的空间的边距数据(data of Margin)、指示内容框的宽度的宽度(Width)、以及指示内容框的高度的高度(Height)。在图9B所示的示例中,定义第一页面的内容框,使得宽度方向上的边距为5,高度方向上的边距为5,宽度为200,并且高度为287。
视觉元素包括Path元素,Glyphs元素和Canvas元素中的至少一个。每个视觉元素都包括仿射变换矩阵作为渲染变换。仿射变换矩阵是定义视觉元素的位置和大小的矩阵。也就是说,视觉元素可以是包括定义其位置和大小的数据的图像数据。例如,通过将包括在视觉元素中的仿射变换矩阵乘以定义缩小的仿射变换矩阵来减小视觉元素。又例如,通过将包括在视觉元素中的仿射变换矩阵乘以定义旋转的仿射变换矩阵来旋转视觉元素。视觉元素是代表描画对象的第一对象数据的示例,并且仿射变换矩阵是变换矩阵的示例。图9B示出了第一页面的固定页面包括指示“A”的图像的视觉元素,并且图9C示出了第二页面的固定页面包括指示“B”的图像的视觉元素。在图9B和图9C中,围绕“A”和“B”的外侧正方形分别指示页面的区域,并且围绕“A”和“B”的内侧正方形分别指示内容框的区域。每个内容框的区域是相应视觉元素被渲染的区域。
打印机驱动32是所谓的XPS打印机驱动“XPSDrv”。打印机驱动32设有过滤器41。过滤器41是DLL。过滤器41根据打印设置来修改具有XPS格式的输入打印目标数据以生成PDL格式打印数据,并输出生成的PDL格式数据。也就是说,根据打印设置修改打印目标数据,并且将修改的打印目标数据转换成PDL格式打印数据仅由过滤器41执行。过滤器41是第一过滤器的示例。
为了执行图6所示的修改处理,过滤器41采用命令被推入到或弹出的命令栈和视觉元素栈的数据结构。将命令推入到栈对应于将命令存储在栈中,而从栈弹出命令对应于从栈中提取命令。
参照图2,解释由PC 10的OS 31和打印机驱动32执行的处理。响应于接收到由编辑程序创建的文档文件或图像文件(打印目标数据)和接收到打印设置的输入(S11),OS 31使用上述DLL将打印目标数据转换为具有XPS格式的打印目标数据,并从打印设置创建打印票据(S12)。
打印机驱动32使用输入功能(DLL)(未示出)接收由OS 31创建的XPS格式打印目标数据和打印票据的输入(S13)。在这个阶段,打印机驱动32接收作为流输入的数据。基于由打印机驱动32指定的输入功能来确定数据是作为流输入还是XPS输入被接收到。应指出,打印机驱动32可以接收数据作为XPS输入。
由于OS31和打印机驱动32在主存储器25上执行,因此“从OS31到打印机驱动32的输入”作为数据处理被执行,并且与诸如从用户I/F 11到PC 10的打印设置的输入的或者从PC 10到打印机驱动32的打印数据的输入的物理执行的输入不同。打印机驱动32接收XPS格式打印目标数据和打印票据的处理是接收处理的示例。
在本说明书中,将基本上描述根据程序中记载的指令的CPU 23的处理。例如,在下面的描述中,“判断”、“提取”、“选择”、“计算”、“确定”、“指定”、“获取”、“接收”、“控制”、或“设置”代表CPU 23的处理。CPU 23的处理包括经由OS 31对硬件的控制。此外,术语“获取”将用作没有要求的概念。因此,CPU23没有要求地接收数据的处理被包括在“CPU23获取数据”的概念中。另外,说明书中的“数据”由计算机可读比特串表示。多个含义基本相同但格式彼此不同的数据被视为相同的数据。说明书中的术语“信息”被视为与“数据”相似的方式。另外,诸如“指示”、“响应”和“要求”的处理是通过将指示“指令”、“响应”和“要求”的信息分别进行通信来执行的。术语“指令”、“响应”和“要求”可以分别在指示“指令”、“响应”和“要求”的信息本身的含义上来描述。
打印机驱动32基于打印设置修改输入的XPS格式的打印目标数据,并且将修改后的打印目标数据转换成PDL格式打印数据(参见S14-S16,以及图3A-图6中所示的处理)。
在S17,在生成PDL格式打印数据之后,打印机驱动32使用未示出的输出功能(DLL)将PDL格式打印数据输出到OS 31。在这个阶段,打印机驱动32输出打印数据作为XPS输出。基于由打印机驱动32指定的输出功能来确定打印数据是作为流输出还是XPS输出进行输出。应指出,打印机驱动32可以输出数据作为流输出。
OS 31经由通信I/F 22将由打印机驱动32输出的PDL格式的打印数据原样传送到打印机12(S18),或者在将PDL格式转换为另一种格式之后将其传送到打印机12(S18)。
在下文中,将参照图3A,3B,3C,图4A,4B和图5至图9,图10A至10J详细描述由打印机驱动32执行的S14-S16的处理。
打印机驱动32接收XPS格式打印目标数据的输入和打印票据。打印机驱动32配置具有第一阶段(图3A)、第二阶段(图3B)、第三阶段(图3C)、第四阶段(图4A和4B)和最后阶段(图5)的流水线。具体而言,打印机驱动32具有阶段管理器(未示出),该阶段管理器被编程为通过以第一至第四阶段的顺序执行第一至第四阶段而将流水线处理应用于XPS数据,并且在流水线处理的第一至第四阶段已应用于整个XPS数据后,将流水线处理的最后阶段应用于XPS数据。具体地,阶段管理器被配置为接收XPS格式的打印目标数据并输入打印票据。
在开始流水线处理之前,阶段管理器将包括在XPS数据中的每个固定页面与命令栈和视觉栈相关联。阶段管理器将与栈相关联的固定页面递送到流水线的初始阶段(S15)。根据说明性实施例,初始阶段是第一阶段。应指出但是“将固定页面与栈相关联”可包括向固定页面添加栈的概念。
S15的处理在首页的固定页面上执行。在一页的固定页面的流水线处理完成之后,阶段管理器将下一页的固定页面递送到流水线的初始阶段(S15)。该处理针对所有固定页面重复执行(循环)(S14,S16)。如稍后将详细描述的那样,发送到流水线的初始阶段的打印目标数据在流水线的每个阶段中被处理。
图3A所示的第一阶段是将视觉元素添加到打印目标数据的阶段。在第一阶段,过滤器41确定打印票据中是否包括要求添加视觉元素的设置(S21)。视觉元素例如是水印。当确定包括要求添加视觉元素的设置时(S21:是),过滤器41根据包括在打印票据中的信息生成将视觉元素添加到固定页面的添加命令(S22),并将生成的添加命令推入到与固定页面相关联的命令栈(S23)。添加命令是第二命令的示例。
在图9C所示的示例中,指示在第一页上形成水印的信息被包括在打印票据中。因此,当从阶段管理器接收到第一页面的固定页面时(S21:是),过滤器41生成将水印添加到固定页面的添加命令(S22)。也就是说,过滤器41根据包括在打印票据中的信息,基于文本“水印”生成图像数据(视觉元素的示例)。然后,过滤器41生成包括所生成的图像数据和指示水印的位置和大小的信息的添加命令。具体而言,指示水印的位置和大小的信息可以被包括在图像数据中。过滤器41将生成的添加命令推入到第一页面的命令栈(S23)。
接下来,过滤器41将固定页面递送给阶段管理器(S24)。阶段管理器根据流水线将接收到的固定页面递送到下一阶段。
另一方面,当过滤器41确定不包括要求添加视觉元素的设置(S21:否)(例如,在图9A中要处理的第二页面)时,处理进行到S24。
第二阶段到第四阶段是用于修改内容框的阶段。根据从第二阶段到第四阶段的打印设置来修改内容框,并生成与所应用的修改相对应的命令。通过最后阶段的修改处理,根据所生成的命令来修改视觉元素(S81)。
图3B所示的第二阶段是旋转内容框的阶段。在第二阶段中,过滤器41确定打印票据中是否包括要求内容框旋转的设置(S31)。当确定要求内容框旋转的设置被包括在打印票据中时(S31:是),过滤器41根据包含在打印票据中的信息生成旋转内容框的命令(S32),并将生成的命令推入到与固定页面相关联的命令栈(S33)。
在图9A所示的示例中,由于第二页面的方向被设置为纵向,所以当过滤器41从阶段管理器接收到第二页面的固定页面时(S31:是),过滤器41根据打印设置将内容框旋转90度。此时,过滤器41生成与内容框的旋转相对应的命令,并将生成的命令推入到与固定页面相关联的命令栈。
接下来,过滤器41将固定页面递送给阶段管理器(S34)。阶段管理器根据流水线将接收到的固定页面递送到下一阶段。
另一方面,当过滤器41确定要求内容框旋转的设置不包括在打印票据中时(S31:否),在图9A所示的示例中,对于第一页面,处理进行到S34。
图3C所示的第三阶段是放大/缩小内容框的阶段。在第三阶段中,过滤器41确定是否在打印票据中包括要求内容框的放大/缩小的设置(S41)。当确定要求放大/缩小内容框的设置被包括在打印票据中时(S41:是),过滤器41根据包含在打印票据中的信息生成放大/缩小内容框的命令(S42),并将生成的命令推入到与固定页面相关联的命令栈(S43)。
接下来,过滤器41将固定页面递送到阶段管理器(S44)。阶段管理器根据流水线将接收到的固定页面递送到下一阶段。
另一方面,当确定要求放大/缩小内容框的设置不包括在打印票据中时(S41:否),也就是说,在图9A的示例中,当在第一页面和第二页面两者上做出确定时,则处理进行到S44。
图4A所示的第四阶段是与将多个页面中的相应页面的内容框收集到一个页面中的“N-up”的打印设置相对应的阶段。阶段管理器将接收到的固定页面存储到存储器24中(S51)。然后,在S51,阶段管理器确定是否已经在存储器24中存储打印目标数据的所有固定页面(S52)。当确定不是打印目标数据的所有固定页面都被存储在存储器24中时(S52:否),阶段管理器确定N页(即,第一页到第N页)的固定页面是否已经被存储在存储器24中(S53)。当阶段管理器确定没有存储N页的固定页面时(S53:否),过滤器41向阶段管理器递送要求下一个固定页面的信息(S56)。例如,在这种情况下,可以将NULL递送给阶段管理器。
另一方面,当确定已将N页的固定页面存储在存储器24中时(S53:是),或者当确定打印目标数据的所有固定页面已经被存储在存储器24中时(S52:是),阶段管理器执行N-up处理(S54)。
参照图4B,将解释在S54中执行的N-up处理。首先,阶段管理器根据打印设置确定第一页面的内容框的放大/缩小比率,并生成指示所确定的放大/缩小比率的仿射变换矩阵的命令(S61)。接下来,阶段管理器将生成的命令推入到第一页面的命令栈(S62)。然后,命令管理器根据打印设置移动第一页面的内容框,并生成命令(S63)。在S63生成的命令指示用于移动的仿射变换矩阵。仿射变换矩阵指示对应于内容框的移动量的移动。因此,与由生成的命令指示的仿射变换矩阵相乘的视觉元素被移动与内容框相同的移动量。然后,阶段管理器将在S63生成的命令推入到第一页面的命令栈(S64)。
接下来,阶段管理器根据打印设置确定第二页面的内容框的放大/缩小比率,并且生成指示所确定的放大/缩小比率的仿射变换矩阵的命令(S66)。应指出的是,下面描述的S66-S70的处理相对于第二页面和后续页面重复执行(S65、S71)。也就是说,例如,当打印设置被设置为4合1时,对于页面2-4中的每一个,循环S66-S70的处理。
接下来,阶段管理器将在S66生成的命令推入到第二页面的命令栈(S67)。接下来,阶段管理器根据打印设置移动第二页面的内容框,并且生成指示与第二页面的内容框的移动量对应的移动用仿射变换矩阵的命令(S68)。阶段管理器将在S68生成的命令推入到第二页面的命令栈(S69)。
然后,阶段管理器生成用于将第二页面的缩小和移动的内容框添加到第一页面的添加命令。生成的添加命令是指示将第二页面的缩小和移动的视觉元素添加到第一页面的命令。阶段管理器将生成的命令推入到第一页面的命令栈(S70)。
阶段管理器相对于每个页面循环S66-S70的处理,并且结束N-up处理。
如图4A所示,在执行N-up处理(S54)之后,阶段管理器根据流水线将固定页面递送到下一阶段(S55)。当从第四阶段接收到固定页面时(S55),阶段管理器根据流水线将固定页面递送到最后阶段。另一方面,当从第四阶段(S56)接收到固定页面的请求时,阶段管理器根据流水线将固定页面递送到第一阶段。
图5所示的最后阶段在所有其他阶段执行后执行。阶段管理器在最后阶段执行修改处理(S81)。修改处理是通过使用在最后阶段之前被推入到其他阶段的命令栈中的命令修改视觉元素的处理。
参照图6,将描述修改处理。针对每个页面,循环下面描述的处理S92-S97,直到没有命令剩下(S91,S98)。此外,针对所有页面,循环S91-S99的处理(S90,S100)。
过滤器41弹出来自第n页的命令栈的命令,并确定弹出命令的类型(S92)(n是自然数)。当确定弹出的命令是指示平移、旋转或放大/缩小的仿射变换矩阵的“m”时,过滤器41将由命令指示的仿射变换矩阵乘以整合仿射变换矩阵A以新生成整合仿射变换矩阵(S93)。整合仿射变换矩阵的初始值是单位矩阵E。
当确定弹出的命令是指示添加视觉元素的“v”时,过滤器41生成命令v'(S94)。具体地,过滤器41将整合仿射变换矩阵乘以由弹出命令指示的视觉元素的仿射变换矩阵,并且将指示具有由乘法生成的仿射变换矩阵的视觉元素的命令定义为命令v'。过滤器41将生成的命令推入到第n页的视觉元素栈中(S95)。
当确定弹出的命令是指示添加页面的“p”时,过滤器41生成命令p'(S96)。具体地,过滤器41继续弹出来自由弹出命令“p”指示的页面的命令栈的命令,直到命令栈变空,并且执行S92至S97的处理。然后,过滤器41生成指示通过执行S92至S97的处理获得的页面添加的命令作为命令p'。过滤器41将生成的命令p'推入到第n页的视觉元素栈中(S97)。
当针对每个页面确定命令栈变空时,过滤器41从视觉元素栈中弹出命令并将由弹出的命令指示的视觉元素添加到固定页面的末尾(S99)。
如图5所示,在完成修改处理(S81)之后,过滤器41将已经由修改处理修改的固定页面转换为具有PDL(页面描述语言)格式的打印数据(这将被称为PDL格式打印数据)(S82)。PDL格式包括PCL(打印机控制语言)格式、PCL/XL格式、ESC/P格式、PDF(便携式文档格式)或XPS格式。S82的处理是第一转换处理的示例。
过滤器41输出通过PDL转换处理(S82)生成的打印数据(S83)并结束最后阶段的处理。
在下文中,参照图7和图10A-10J,将详细描述通过流水线的处理和修改处理改变命令栈,将以图9A所示的打印设置为例。图10A和图10B示出了要被推入到命令栈的命令。图10C-10J示出了解析命令的处理。
当第一阶段接收到第一阶段中的第一页面的固定页面时,过滤器41将向第一页面添加水印的命令v1推入到第一页面的命令栈中,如图10A所示。
接下来,当第二阶段接收到第一页面的固定页面时,过滤器41确定不执行第一页面的旋转。也就是说,在第一页面的第二阶段未生成命令。
接下来,当第三页面接收到第一页面的固定页面时,过滤器41确定不执行第一页面的放大/缩小。也就是说,在第一页面的第三阶段未生成命令。
接下来,当第四阶段接收到第一页面的固定页面时,如图10A所示,过滤器41生成命令m3和m4,并将生成的命令推入到第一页面的命令栈。命令m3是指示缩小的仿射变换矩阵的命令。仿射变换矩阵是用于将图9B所示的第一页面的内容框的大小缩小到图9D所示的内容框的大小的矩阵。命令m4是指示平移的仿射变换矩阵的命令。仿射变换矩阵是用于将图9B中所示的第一页面的内容框的位置改变为图9D中所示的内容框的位置的矩阵。
然后,如图10A所示,过滤器41生成命令p2,以将第二页面的视觉元素添加到第一页面,并将生成的命令p2推入到第一页面的命令栈。
当对第一页面执行第一阶段到第四阶段时,命令v1、命令m3、命令m4和命令p2按图10B所示顺序被推入到第一页面的命令栈。
当第一阶段接收到第二页面的固定页面时,过滤器41确定不将水印添加到第二页面。也就是说,在第二页面的第一阶段中未生成命令。
接下来,当第二阶段接收到第二页面的固定页面时,过滤器41生成命令m1和命令m2,并且将命令m1和m2推入到第二页面的命令栈。命令m1代表用于旋转图9C所示的第二页面的内容框以具有图9D所示的方向的矩阵。也就是说,命令m1是指示90度旋转的仿射变换矩阵的命令。
命令m2是指示平移的仿射变换矩阵的命令,其将参照图8A-图8D详细描述。图8A示出了图像的初始状态。图8B示出了通过彼此交换内容框的宽度(200)和高度(272)将内容框旋转90度的状态。图8C示出了视觉元素“B”已经旋转了90度的状态。如图8C所示,通过将视觉元素“B”旋转90度,视觉元素“B”与内容框之间的相对位置未对齐。命令m2代表用于将视觉元素“B”沿X轴方向平移到适当位置的仿射变换矩阵,其中内容框和视觉元素“B”被适当对齐。平移量是包括在打印目标数据中的页面宽度(210)。
当第三阶段接收到第二页面的固定页面时,过滤器41确定第二页面将不被放大/缩小。也就是说,在第二页面的第三阶段中未生成命令。
当第四阶段接收到第二页面的固定页面时,如图10A所示,过滤器41生成命令m5和m6,并且将生成的命令m5和m6推入到第一页面的命令栈。命令m5是代表缩小的仿射变换矩阵的命令,该矩阵是用于将图9B所示的第二页面的内容框的大小减小到图9D所示的大小的矩阵。命令m6是代表平移的仿射变换矩阵的命令,该矩阵是将图9B中的第二页面的内容框平移到图9D所示的位置的矩阵。
当对第二页面执行第一阶段到第四阶段时,如图10B所示,命令m1、命令m2、命令m5和命令m6按此顺序被推入到第二页面的命令栈。
接下来,将参照图7和图10描述修改处理中的命令的解析。如图10C所示,过滤器41从第一页面的命令栈弹出命令p2(S101)。在解析命令p2时,如图10C和图10D所示,过滤器41从第二页面的命令栈以命令m6、m5、m2和m1的顺序弹出命令以解析该命令。
过滤器41弹出命令m6(S102),并将由弹出的命令m6指示的仿射变换矩阵M6视为整合仿射变换矩阵A2(S103)。具体地,过滤器41将作为单位矩阵E(初始值)的整合仿射变换矩阵A2乘以仿射变换矩阵M6以定义新的整合仿射变换矩阵A2(=M6)。然后,过滤器41弹出命令m5(S104),并将整合后的仿射变换矩阵A2乘以由弹出的命令m5指示的仿射变换矩阵M5,以定义新的整合仿射变换矩阵A2(=M6×M5)(S105)。接下来,过滤器41弹出命令m2(S106),并将整合仿射变换矩阵A2乘以由弹出的命令m2指示的仿射变换矩阵M2,以定义新的整合仿射变换矩阵A2(=M6×M5×M2)(S107)。然后,过滤器41弹出命令m1(S108),并将整合仿射变换矩阵A2乘以由弹出的命令m1指示的仿射变换矩阵M1,以定义新的整合仿射变换矩阵A2(=M6×M5×M2×M1)(S109)。
如图10D所示,响应于第二页面的命令栈变空,过滤器41将整合仿射变换矩阵A2乘以第二页面的相应视觉元素的每个仿射变换矩阵(S110)。如图10E所示,过滤器41将指示通过乘法获得的每个视觉元素的命令p2'推入到第一页面的视觉元素栈(S111)。
在解析命令p2之后,如图10F和图10G所示,过滤器41弹出并解析命令m4,随后弹出并解析命令m3。具体地,过滤器41弹出命令m4(S112),并且将由弹出的命令m4指示的仿射变换矩阵M4视为第一页面的整合仿射变换矩阵A1(S113)。具体地,过滤器41将作为单位矩阵E的整合仿射变换矩阵A1(初始值)乘以仿射变换矩阵M4以定义新的整合仿射变换矩阵A1(=M4)。然后,过滤器41弹出命令m3(S114),并且将由弹出的命令m3指示的仿射变换矩阵M3乘以整合仿射变换矩阵A1以定义新的整合仿射变换矩阵A2(=M 4×M3)(S115)。
接下来,如图10H所示,过滤器41从第一页面的命令栈中弹出命令v1(S116),并解析弹出的命令v1。具体地,如图10I和图10J所示,过滤器41将第一页面的整合仿射变换矩阵A1乘以包括在由命令v1指示的视觉元素中的仿射变换矩阵。然后,过滤器41将指示通过乘法获得的矩阵的命令v1'推入到第一页面的视觉元素栈(S117)。
响应于第一页面的命令栈变空,过滤器41从第一页面的视觉元素栈中弹出命令v1',并将由命令v1'指示的视觉元素添加到第一页面的固定页面的末尾(S119)。
接下来,过滤器41从第一页面的视觉元素栈弹出命令p2'(S120),并将由命令p2'指示的视觉元素添加到第一页面的固定页面的末尾(S121)。
仿射变换矩阵M1、M2、M3、M4、M5和M6是变换矩阵的示例。整合仿射变换矩阵A1和A2是整合变换矩阵的示例。分别指示仿射变换矩阵M1、M2、M3、M4、M5和M6的命令是第一命令的示例。
<实施例的效果>
在上述说明性实施例中,由于整合仿射变换矩阵是通过将多个仿射变换矩阵相乘而生成的,所以与视觉元素被多个仿射变换矩阵单独地修改的情况相比,可以减少PC 10的CPU 23的计算操作的次数。结果,可以缩短打印数据的生成时间。
此外,根据说明性实施例,由于从打印目标数据的接收到PDL格式打印数据的输出的处理仅在过滤器41中执行,因此与由多个过滤器组成的传统打印机驱动相比,可以缩短打印数据的生成时间。也就是说,在由多个过滤器(DLL)组成的传统打印机驱动中,当数据从一个过滤器递送到另一个过滤器时,要求将数据转换为XPS格式数据或二进制数据。因此,在每个过滤器中,当输入或输出数据时,应该转换数据格式。此外,当每个过滤器中的数据的输入和输出是流输入和流输出时,进一步有必要转换(即,串行化和解串行化)每个过滤器中的数据。相反,根据说明性实施例,由于从打印目标数据的接收到PDL格式打印数据的输出的处理仅由过滤器41执行,因此与由多个过滤器组成的传统打印机驱动相比,可以减少PC 10的CPU 23的计算操作的次数,因为在多个过滤器中不要求数据变换。由此,可以缩短打印数据的生成时间。
根据说明性实施例,由于从打印目标数据的接收到PDL格式打印数据的输出的处理仅由过滤器41执行,所以即使过滤器41接收到打印目标数据作为流输入(S13),只需一个解串行处理,就可以输出打印数据。
此外,根据说明性实施例,在修改视觉元素之前,仿射变换矩阵和命令通过修改内容框而生成,该内容框具有比视觉元素少的数据量,修改视觉元素所需的命令和仿射变换矩阵可以通过CPU23的相对少量的计算操作来生成。结果,可以缩短打印数据的生成时间。
此外,根据说明性实施例,由于所生成的命令被推入到命令栈中,所以可以按照命令被指定的顺序来存储命令。结果,在修改处理中,可以从命令栈弹出命令,并且可以通过对由命令分别指示的仿射变换矩阵进行整合来生成整合仿射变换矩阵。
此外,根据该说明性实施例,由于在视觉元素的修改的同时执行添加水印的修改,所以与视觉元素的修改与添加水印的修改分开执行的情况相比,可以减少CPU23的计算操作的次数。因此,根据说明性实施例,可以更加缩短打印数据的生成时间。
<变型例>
在说明性实施例中,描述了仅设有过滤器41的打印机驱动32。在一个变型中,将描述具有第一过滤器61和第二过滤器62的打印机驱动60(参见图11A)。在下文中,相同的附图标记被分配给与说明性实施例相同的结构/组件/构件,并且将省略其说明。
打印机驱动60设有第一过滤器61和第二过滤器62。第二过滤器62是所谓的PDL转换器。可以使用已知的PDL转换器作为第二过滤器62。
根据该变型,第二过滤器62被配置为执行图11B所示的最后阶段的处理以代替图5中所示的最后阶段的处理。在执行修改处理(S81)之后,第一过滤器61执行将固定页面转换为具有第二过滤器62可接收的格式的数据的转换处理(S130)。第二过滤器62可接收的格式可以是XPS格式或二进制格式。S130的转换处理是第二转换处理的示例。之后,第一过滤器61将转换固定页面(S131)递送到第二过滤器62。应指出的是,来自第一过滤器61的输出可以是流输出或XPS输出。
接收由第一过滤器61修改的固定页面的第二过滤器62执行PDL转换处理(S82),并且输出具有PDL格式的打印数据(S83)。
根据该修改,由于可以使用已知的PDL转换器,所以第一过滤器61的编程变得容易。
<其他变型>
在以上说明性实施例中,描述了构建特定流水线的示例。可以修改上述配置,使得过滤器41的阶段管理器可以基于打印票据(打印设置)来配置流水线。例如,当在打印票据中设置命令将由阶段生成时,阶段管理器可以将这样的阶段添加到流水线。在图9A所示的打印票据的示例中,阶段管理器将图3B所示的第一阶段和第二阶段以及图4所示的第四阶段添加到流水线。此外,阶段管理器配置流水线,使得最后阶段必然最后执行。
根据上述变型,由于流水线基于打印设置被适当地配置,因此可以省略不必要的处理。结果,可以进一步缩短打印数据的生成时间。
Claims (12)
1.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储有实现可由信息处理设备的控制器执行的打印机驱动的计算机可读指令,所述打印机驱动在被执行时致使所述控制器执行:
接收打印目标数据的接收处理,所述打印目标数据包括指示描画对象的第一对象数据和指令执行所述描画对象的多个修改的修改指令数据;和
生成处理,生成分别对应于所述多个修改的多个第一命令,所述第一对象数据包括指示所述描画对象的位置和大小中的至少一个的矩阵,所述多个第一命令分别指示变换矩阵,所述变换矩阵中的每一个基于所述多个修改中的一个来变换所述第一对象数据的矩阵,并且
其中,所述打印机驱动在被执行时还致使所述控制器执行:
通过将所述多个变换矩阵相乘来生成整合变换矩阵的整合处理;和
通过将所述第一对象数据的矩阵乘以所述整合变换矩阵来修改所述第一对象数据的修改处理,
其中,所述生成处理包括将所述多个第一命令推入到命令栈的处理,并且
其中,所述修改处理包括:
从所述命令栈弹出所述多个第一命令的处理;和
通过将由所弹出的多个第一命令指示的矩阵相乘来生成所述整合变换矩阵的处理。
2.根据权利要求1所述的非暂时性计算机可读介质,
其中,所述打印机驱动包括第一过滤器,所述第一过滤器致使所述控制器执行所述接收处理、所述生成处理、所述整合处理、和所述修改处理。
3.根据权利要求2所述的非暂时性计算机可读介质,
其中,所述第一过滤器致使所述控制器执行第一转换处理,以将包括经修改的第一对象数据的所述打印目标数据转换为具有特定格式的打印数据。
4.根据权利要求2所述的非暂时性计算机可读介质,
其中,所述打印机驱动包括第二过滤器,所述第二过滤器致使所述控制器执行转换处理,以将输入到所述第二过滤器的数据转换为具有特定格式的打印数据,和
其中,所述第一过滤器致使所述控制器执行第二转换处理,以将包括经修改的第一对象数据的所述打印目标数据转换为具有所述第二过滤器可接收的可接收格式的打印数据。
5.根据权利要求1至4中的任一项所述的非暂时性计算机可读介质,
其中,所述打印目标数据包括指示所述描画对象在其中被渲染的区域的内容框数据,
其中,所述生成处理包括:
基于所述修改指令数据来修改所述内容框数据的处理;和
根据所述内容框的修改来生成所述多个第一命令的处理。
6.根据权利要求5所述的非暂时性计算机可读介质,
其中,所述生成处理包括:
旋转由所述内容框数据指示的内容框、并且根据所述内容框的旋转角度来生成所述变换矩阵的阶段;
放大/缩小由所述内容框数据指示的内容框、并且根据所述内容框的放大/缩小比率来生成所述变换矩阵的阶段;和
在一个页面中收集由所述打印目标数据指示的多个页面、并且根据所述多个页面的收集来生成所述变换矩阵的阶段,并且
其中,从所述阶段中的一个向所述阶段中的另一个提供所述打印目标数据。
7.根据权利要求1所述的非暂时性计算机可读介质,
其中,所述生成处理还包括:
生成与指令添加第二对象数据的修改指令数据相对应的第二命令的处理;和
将所生成的第二命令推入到所述命令栈的处理。
8.根据权利要求1至4中的任一项所述的非暂时性计算机可读介质,
其中,所述接收处理接收所述打印目标数据作为流输入。
9.根据权利要求1至4中的任一项所述的非暂时性计算机可读介质,
其中,所述打印目标数据具有XPS格式。
10.根据权利要求1至4中的任一项所述的非暂时性计算机可读介质,
其中,所述接收处理从安装到所述信息处理设备的操作系统接收所述打印目标数据和所述修改指令数据。
11.一种信息处理设备,所述信息处理设备包括控制器,所述控制器被配置为:
接收打印目标数据,所述打印目标数据包括指示描画对象的第一对象数据和指令执行所述描画对象的多个修改的修改指令数据;和
生成分别对应于所述多个修改的多个第一命令,所述第一对象数据包括指示所述描画对象的位置和大小中的至少一个的矩阵,所述多个第一命令分别指示变换矩阵,所述变换矩阵中的每一个基于所述多个修改中的一个来变换所述第一对象数据的矩阵,并且
其中,所述控制器还被配置为:
通过将所述多个变换矩阵相乘来生成整合变换矩阵;和
通过将所述第一对象数据的矩阵乘以所述整合变换矩阵来修改所述第一对象数据,
其中,所述生成处理包括将所述多个第一命令推入到命令栈的处理,并且
其中,所述修改处理包括:
从所述命令栈弹出所述多个第一命令的处理;和
通过将由所弹出的多个第一命令指示的矩阵相乘来生成所述整合变换矩阵的处理。
12.一种控制信息处理设备的方法,所述方法包括:
接收打印目标数据,所述打印目标数据包括指示描画对象的第一对象数据和指令执行所述描画对象的多个修改的修改指令数据;和
生成分别对应于所述多个修改的多个第一命令,所述第一对象数据包括指示所述描画对象的位置和大小中的至少一个的矩阵,所述多个第一命令分别指示变换矩阵,所述变换矩阵中的每一个基于所述多个修改中的一个来变换所述第一对象数据的矩阵,并且
其中,所述方法还包括:
通过将所述多个变换矩阵相乘来生成整合变换矩阵;和
通过将所述第一对象数据的矩阵乘以所述整合变换矩阵来修改所述第一对象数据,
其中,所述生成处理包括将所述多个第一命令推入到命令栈的处理,并且
其中,所述修改处理包括:
从所述命令栈弹出所述多个第一命令的处理;和
通过将由所弹出的多个第一命令指示的矩阵相乘来生成所述整合变换矩阵的处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017190403A JP6874626B2 (ja) | 2017-09-29 | 2017-09-29 | プリンタドライバ |
JP2017-190403 | 2017-09-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582250A CN109582250A (zh) | 2019-04-05 |
CN109582250B true CN109582250B (zh) | 2022-03-22 |
Family
ID=65896621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810789270.3A Active CN109582250B (zh) | 2017-09-29 | 2018-07-18 | 存储实现打印机驱动的指令的非暂时性计算机可读介质和控制信息处理设备的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10445027B2 (zh) |
JP (1) | JP6874626B2 (zh) |
CN (1) | CN109582250B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6874626B2 (ja) * | 2017-09-29 | 2021-05-19 | ブラザー工業株式会社 | プリンタドライバ |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240798A (ja) * | 2003-02-07 | 2004-08-26 | Fujitsu General Ltd | 色相別色調整処理回路及びその方法 |
CN1557090A (zh) * | 2001-09-21 | 2004-12-22 | ������������ʽ���� | 阈值矩阵产生方法、图像输出系统、存储介质、灰度再现方法、阈值矩阵、图像处理方法、图像处理装置、图像形成装置以及打印机驱动器 |
CN1705976A (zh) * | 2003-10-23 | 2005-12-07 | 微软公司 | 向量图形的标记语言和对象模型 |
CN1728182A (zh) * | 2004-06-29 | 2006-02-01 | 英特尔公司 | 图像边缘过滤处理 |
CN1821949A (zh) * | 2005-02-18 | 2006-08-23 | 佳能株式会社 | 打印系统和文档管理系统 |
JP2008160388A (ja) * | 2006-12-22 | 2008-07-10 | Canon Inc | 情報処理装置、情報処理方法、及びコンピュータプログラム |
CN104238967A (zh) * | 2013-06-07 | 2014-12-24 | 佳能株式会社 | 信息处理装置及控制方法 |
CN105278890A (zh) * | 2014-06-06 | 2016-01-27 | 佳能株式会社 | 信息处理装置及控制方法 |
US9501257B1 (en) * | 2015-06-22 | 2016-11-22 | Lexmark International, Inc. | Pass-through printing with XPS printer driver |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835693A (en) * | 1994-07-22 | 1998-11-10 | Lynch; James D. | Interactive system for simulation and display of multi-body systems in three dimensions |
TWI312130B (en) * | 2004-03-19 | 2009-07-11 | Lite On Technology Corporatio | Printer driving method for fast releasing control privilege |
JP4513888B2 (ja) * | 2008-03-31 | 2010-07-28 | ブラザー工業株式会社 | 画像生成装置および印刷装置 |
US9652820B2 (en) * | 2008-12-18 | 2017-05-16 | Xerox Corporation | Method and system for utilizing transformation matrices to process rasterized image data |
US9317225B2 (en) * | 2011-05-25 | 2016-04-19 | Xerox Corporation | Method and apparatus for dynamically configuring a filter pipeline for a print driver |
JP6303446B2 (ja) * | 2013-11-29 | 2018-04-04 | 株式会社リコー | 情報処理装置、プログラム、情報処理システム、及び情報処理方法 |
AU2013276977A1 (en) * | 2013-12-24 | 2015-07-09 | Canon Kabushiki Kaisha | Asynchronous group processing using z-banding |
JP2015225481A (ja) | 2014-05-28 | 2015-12-14 | キヤノン株式会社 | 印刷設定情報を効率良く編集するためのプログラム |
JP6857040B2 (ja) * | 2017-01-31 | 2021-04-14 | キヤノン株式会社 | 情報処理装置及びプログラム |
JP6938204B2 (ja) * | 2017-05-02 | 2021-09-22 | キヤノン株式会社 | 情報処理装置、プログラム |
JP6874626B2 (ja) * | 2017-09-29 | 2021-05-19 | ブラザー工業株式会社 | プリンタドライバ |
-
2017
- 2017-09-29 JP JP2017190403A patent/JP6874626B2/ja active Active
-
2018
- 2018-06-29 US US16/022,991 patent/US10445027B2/en active Active
- 2018-07-18 CN CN201810789270.3A patent/CN109582250B/zh active Active
-
2019
- 2019-08-30 US US16/556,359 patent/US10860264B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1557090A (zh) * | 2001-09-21 | 2004-12-22 | ������������ʽ���� | 阈值矩阵产生方法、图像输出系统、存储介质、灰度再现方法、阈值矩阵、图像处理方法、图像处理装置、图像形成装置以及打印机驱动器 |
JP2004240798A (ja) * | 2003-02-07 | 2004-08-26 | Fujitsu General Ltd | 色相別色調整処理回路及びその方法 |
CN1705976A (zh) * | 2003-10-23 | 2005-12-07 | 微软公司 | 向量图形的标记语言和对象模型 |
CN1728182A (zh) * | 2004-06-29 | 2006-02-01 | 英特尔公司 | 图像边缘过滤处理 |
CN1821949A (zh) * | 2005-02-18 | 2006-08-23 | 佳能株式会社 | 打印系统和文档管理系统 |
JP2008160388A (ja) * | 2006-12-22 | 2008-07-10 | Canon Inc | 情報処理装置、情報処理方法、及びコンピュータプログラム |
CN104238967A (zh) * | 2013-06-07 | 2014-12-24 | 佳能株式会社 | 信息处理装置及控制方法 |
CN105278890A (zh) * | 2014-06-06 | 2016-01-27 | 佳能株式会社 | 信息处理装置及控制方法 |
US9501257B1 (en) * | 2015-06-22 | 2016-11-22 | Lexmark International, Inc. | Pass-through printing with XPS printer driver |
Also Published As
Publication number | Publication date |
---|---|
CN109582250A (zh) | 2019-04-05 |
JP6874626B2 (ja) | 2021-05-19 |
US20190102118A1 (en) | 2019-04-04 |
JP2019067049A (ja) | 2019-04-25 |
US10445027B2 (en) | 2019-10-15 |
US20190384541A1 (en) | 2019-12-19 |
US10860264B2 (en) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078475B2 (en) | Printer and server | |
EP2677467B1 (en) | Control Device | |
JP5539280B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP2001063155A (ja) | プリンタホスト、印刷コマンド生成装置およびプログラムが記憶されている記憶媒体 | |
JP5366388B2 (ja) | 印刷制御装置、印刷制御方法、及び、プログラム | |
US9141895B2 (en) | Information processing apparatus, data editing method, and computer program product | |
JP2007157121A (ja) | 情報処理装置及びプレビュー表示方法 | |
CN109582250B (zh) | 存储实现打印机驱动的指令的非暂时性计算机可读介质和控制信息处理设备的方法 | |
US10310788B2 (en) | Control method for generating data used for printing and information processing apparatus | |
US20130176597A1 (en) | Information processing apparatus, information processing method, and storage medium storing a program thereof | |
JP2009146321A (ja) | 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム及び記録媒体 | |
JP5734089B2 (ja) | 情報処理装置および制御方法およびプログラム | |
JP2005348205A (ja) | 情報処理装置およびデータ処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム | |
JP2023020591A (ja) | 情報処理装置、その制御方法及びプログラム | |
US9430446B2 (en) | Information processing apparatus, method and storage medium including a function for establishing exceptions applied to print settings when specified conditions are met | |
JP5947508B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2009269179A (ja) | 印刷装置、プログラム及び記録媒体 | |
US20240264782A1 (en) | Information processing apparatus, method, and non-transitory computer-readable storage medium storing program | |
US20240338152A1 (en) | Information processing apparatus and method of controlling the same, and storage medium storing print expansion program | |
JP4290711B2 (ja) | 印刷装置 | |
JP2009037404A (ja) | 電子文書管理システム | |
JP4725597B2 (ja) | 文書処理装置、プログラム、および文書管理装置 | |
JP2001239717A (ja) | デジタル印刷制御装置およびデジタル印刷システム | |
JP5552893B2 (ja) | 情報処理装置 | |
JP2001282482A (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 |