(57)【要約】【課題】原稿サイズ混在文書を集約印刷する場合に、ユーザが意図する出力結果を出力させること。【解決手段】印刷データを受信する受信ステップと、受信された印刷データから、新しい用紙に印刷することを表すポストスクリプトコマンドを検索する検索ステップと、検索されたポストスクリプトコマンドを削除する削除ステップと、をコンピュータに実行させる。【選択図】図８
2013054574.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを受信する受信ステップと、
受信された前記印刷データから、新しい用紙に印刷することを表すポストスクリプトコマンドを検索する検索ステップと、
検索された前記ポストスクリプトコマンドを削除する削除ステップと、
をコンピュータに実行させるためのプログラム。
【請求項２】
前記受信ステップは、
前記印刷データを所定単位毎に受信し、
前記検索ステップは、
前記所定単位の印刷データの最後尾に、前記ポストスクリプトコマンドの一部があった場合、前記ポストスクリプトコマンドの一部を次の所定単位の印刷データの先頭に追加して前記ポストスクリプトコマンドを検索する請求項１記載のプログラム。
【請求項３】
前記削除ステップは、
前記ポストスクリプトコマンドの一部の追加後に前記ポストスクリプトコマンドが検索された場合、前記所定単位の印刷データの最後尾にある前記ポストスクリプトコマンドの一部を削除する請求項２記載のプログラム。
【請求項４】
印刷データを受信する受信手段と、
受信された前記印刷データから、新しい用紙に印刷することを表すポストスクリプトコマンドを検索する検索手段と、
検索された前記ポストスクリプトコマンドを削除する削除手段と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データを制御するプログラム及び情報処理装置に関する。
【背景技術】
【０００２】
プリンタを用いて文書を印刷する際に、紙資源の節約を図りたいという高いニーズがある。そこで、プリンタドライバでは、印刷設定画面を通して、複数ページ（２，４，６，９，１６ｐ）を１枚の紙に面付けして印刷する集約印刷を設定することができる。
【０００３】
しかしながら、集約印刷時にドライバやプリントプロセッサで印刷するページの回転、縮小を行うと、パススルー系では文字や図形は回転、縮小せず、ユーザの所望しない印刷結果となるという問題があった。
【０００４】
そこで、プリンタで集約印刷を行うことで、このパススルー系で生じる問題を解決することができる。
【０００５】
ここで、パススルー系とは、アプリケーション自身がＰＤＬ（Ｐａｇｅ Ｄｅｓｃｒｉｐｔｉｏｎ Ｌａｎｇｕａｇｅ：ページ記述言語）コードを直接生成し、プリンタドライバ経由でプリンタにＰＤＬコードを送信する処理系である。
【０００６】
パススルー系では特定のページで印刷属性が変わり、その印刷属性に対応させるためにプリンタドライバやプリントプロセッサによってページの回転や拡大縮小をした場合、パススルーデータ以外が回転や拡大縮小される。パススルーデータとは、パススルー対象のオブジェクトであり、パススルーオブジェクトともいう。
【０００７】
しかし、パススルーデータは、プリンタドライバやプリントプロセッサにより手を加えられることはないため、印刷結果としてパススルーデータ以外のデータだけが回転や拡大縮小され、ユーザが所望するように出力されない。
【０００８】
図１は、パススルーオブジェクトの問題を説明するための図である。図１に示す例では、全２ページの文書で、非パススルーオブジェクト１２が１ページ目にあり、パススルーオブジェクト１１が２ページにある。また、１ページ目の用紙方向は縦であり、２ページ目の用紙方向は横である。
【０００９】
このとき、パススルーオブジェクト１１を含むデータの印刷において、プリントプロセッサで反時計回りに９０度回転処理を行い、プリンタで４ｉｎ１集約するケースを考える。このケースでは、図１に示すように、非パススルーオブジェクト１２は縮小されるが、パススルーオブジェクト１１は回転せず縮小もされず、集約処理が行われない。よって、印刷結果の画像が崩れてしまう。そこで、集約印刷時にはプリンタ側で面付け処理などを行わせることで、上記の問題を回避できる。
【００１０】
また、集約印刷時の他の問題として、プレビューの画像表示において、集約時の割付け方向を変えたい場合に集約時の割付方向を変えることができないという問題がある。この問題に対し、特許文献１には、集約印刷機能を選択しているとき、集約の割り付け配置をユーザの指示により設定することができる技術が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術では、原稿サイズが混在した文書（原稿サイズ混在文書とも呼ぶ）を集約印刷する場合に、ユーザが意図するように集約されないという問題点がある。従来技術では、プリンタ側でページの拡大、縮小処理を行うため、プリントプロセッサ又はプリンタドライバのグラフィックドライバでは印刷データに処理を加えない。この処理を加えないために、プリントプロセッサ又はグラフィックドライバは、所定の処理を行う。所定の処理を行うことで、以下に示すような問題が発生する。
【００１２】
図２は、印刷処理における一部の処理の一例を示すフローチャートである。図２に示す例は、１ページ目と２ページ目はＡ４サイズとし、３ページ目はＡ３サイズの原稿サイズが混在している文書を集約印刷することを想定する。
【００１３】
図２（Ａ）は、１ページ目を印刷する場合のフローチャートである。図２（Ａ）に示すように、１ページ目（Ａ４）のスプールデータが、例えばプリントプロセッサに受け取られると（Ｓ１１）、プリントプロセッサは、ＧＤＩに対して、描画データをＧＤＩコールで渡す（Ｓ１２）。
【００１４】
図２（Ｂ）は、２ページ目を印刷する場合のフローチャートである。図２（Ｂ）に示す処理は、図２（Ａ）に示す処理であるため、その説明を省略する。
【００１５】
図２（Ｃ）は、３ページ目を印刷する場合のフローチャートである。図２（Ｃ）に示すように、例えばプリントプロセッサが、３ページ目（Ａ３）のスプールデータを受けると（Ｓ３１）、ＧＤＩが提供するＧｄｉＲｅｓｅｔＤＣＥＭＦ（）を呼び出し、縮小されていない３ページ目のスプールデータを受け取る（Ｓ３２）。プリントプロセッサは、ＧＤＩに対して、描画データをＧＤＩコールでＧＤＩに渡す（Ｓ３３）。
【００１６】
なお、ＧｄｉＲｅｓｅｔＤＣＥＭＦ（）が呼び出されるとき、ポストスクリプトドライバは、「ｆｉｎａｌｐａｇｅ」というポストスクリプトコマンドを出力する。これにより、ｆｉｎａｌｐａｇｅコマンドは、印刷データの中に含まれる。ポストスクリプトドライバとは、ポストスクリプト対応のプリンタドライバのことである。
【００１７】
プリンタが印刷する際に、印刷データに含まれるｆｉｎａｌｐａｇｅコマンドが認識されると、新しい用紙に印刷される。よって、１ページ目から３ページ目までは、１枚の用紙に集約印刷されず、ユーザが意図しない印刷結果となる。
【００１８】
図３は、原稿サイズ混在文書を４ｉｎ１で印刷した結果を示す図である。図３に示すように、従来技術では、原稿サイズが異なる３ページ目が、別の用紙に印刷されてしまう。これは、１、２ページとは原稿サイズが異なる３ページ目の印刷データに、ＧｄｉＲｅｓｅｔＤＣＥＭＦ（）が呼び出されることでｆｉｎａｌｐａｇｅコマンドが含まれることに起因する。
【００１９】
よって、従来技術では、原稿サイズ混在文書を集約印刷する場合に、ユーザが意図するような印刷結果が得られないという問題があった。
【００２０】
そこで、本発明は上記問題に鑑みてなされたものであり、原稿サイズ混在文書を集約印刷する場合でも、ユーザが意図する出力結果を出力させることができるプログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明における一態様のプログラムは、印刷データを受信する受信ステップと、受信された前記印刷データから、新しい用紙に印刷することを表すポストスクリプトコマンドを検索する検索ステップと、検索された前記ポストスクリプトコマンドを削除する削除ステップと、をコンピュータに実行させる。
【００２２】
また、本発明における他の態様の情報処理装置は、印刷データを受信する受信手段と、受信された前記印刷データから、新しい用紙に印刷することを表すポストスクリプトコマンドを検索する検索手段と、検索された前記ポストスクリプトコマンドを削除する削除手段と、を備える。
【００２３】
また、本発明の情報処理装置は、コンピュータにより実行可能なプログラムにより実現することができ、また、プログラムを記録した記録媒体をコンピュータに読み取らせて実現することも可能である。
【発明の効果】
【００２４】
本発明によれば、原稿サイズ混在文書を集約印刷する場合に、ユーザが意図する出力結果を出力させることができる。
【図面の簡単な説明】
【００２５】
【図１】パススルーオブジェクトの問題を説明するための図。
【図２】印刷処理における一部の処理の一例を示すフローチャート。
【図３】原稿サイズ混在文書を４ｉｎ１で印刷した結果を示す図。
【図４】実施例における印刷制御システムの構成一例を示すブロック図。
【図５】実施例における情報処理装置のハードウェアの一例を示すブロック図。
【図６】実施例におけるＰＣ側の印刷制御処理の一例を説明する図。
【図７】実施例におけるプリンタドライバの構成の一例を示すブロック図。
【図８】グラフィックドライバの構成の一例を示すブロック図。
【図９】印刷データの途中に所定のポストスクリプトコマンドがある場合を示す図。
【図１０】複数の印刷データに跨って、所定のポストスクリプトコマンドがある場合を示す図。
【図１１】コマンド制御部の処理の一例を示す図。
【図１２】実施例における原稿サイズ混在文書の集約印刷結果の一例を示す図。
【図１３】情報処理装置における印刷制御処理の一例を示すフローチャート。
【発明を実施するための形態】
【００２６】
以下、添付図面を参照して、本発明にかかる実施例について説明する。
【００２７】
また、以下に示す実施例では、画像データを出力する装置として、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能を一つの筐体に搭載した複合機（ＭＦＰ：Multifunction Peripheral）でもよいし、画像データを出力する機能を少なくとも有する印刷装置（例えばプリンタ）などでもよい。以下では、プリンタを例にして説明する。
【００２８】
［実施例］
＜システム＞
まず、実施例における印刷制御システムのシステム構成について説明する。図４は、実施例における印刷制御システムの構成一例を示すブロック図である。
【００２９】
図４に示すように、本発明における印刷制御システムは、ネットワークを介して情報処理装置１００と、プリンタ２００とが接続されている。ネットワークは、情報処理装置１００とプリンタ２００とで双方向に通信可能なネットワークである。なお、図４に示す例では、情報処理装置が１つ、プリンタが１つ接続されているが、情報処理装置やプリンタの数は、この例に限られない。情報処理装置１００は、例えばＰＣ（Personal Computer）である。
【００３０】
＜ハードウェア＞
図５は、実施例における情報処理装置１００のハードウェアの一例を示すブロック図である。情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、ネットワークＩ／Ｆ部１０４、入力部１０５、表示部１０６、外部記録装置Ｉ／Ｆ部１０７を含む。
【００３１】
ＣＰＵ１０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行う演算装置である。ＣＰＵ１０１は、ＲＡＭ１０２に記憶されたプログラムを実行する演算装置で、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【００３２】
ＲＡＭ１０２は、ＣＰＵ１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００３３】
ＨＤＤ１０３は、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００３４】
ネットワークＩ／Ｆ部１０４は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワーク（例えばＥｔｈｅｒｎｅｔ（登録商標））を介して接続された通信機能を有するプリンタ２００と情報処理装置１００とのインタフェースである。
【００３５】
入力部１０５は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部１０６の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部１０５は、ユーザがＣＰＵ１０１に操作指示を与えたり、データを入力したりするためのユーザインタフェースである。
【００３６】
表示部１０６は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ１０１から入力される表示データに応じた表示が行われる。
【００３７】
外部記録装置Ｉ／Ｆ部１０７は、ＵＳＢ（Universal Serial Bus）などのデータ伝送路を介して接続された記録媒体１０８（例えば、フラッシュメモリなど）と情報処理装置１００とのインタフェースである。
【００３８】
また、記録媒体１０８に、所定のプログラムを格納し、記録媒体１０８に格納されたプログラムは外部記録装置Ｉ／Ｆ部１０７を介して情報処理装置１００にインストールされ、インストールされた所定のプログラムは情報処理装置１００により実行可能となる。
【００３９】
＜印刷制御処理＞
図６は、実施例におけるＰＣ側の印刷制御処理の一例を説明する図である。図６に示すように、ＰＣ１００は、プリンタドライバのＵＩ部（ドライバ（ＵＩ部）ともいう）３０２、アプリケーション３０３、描画部（ＧＤＩ：Graphical Device Interface）３０４、スプーラ３０５、プリントプロセッサ３０６、グラフィックドライバ３０７を有する。スプーラ３０５から出力されるデータは、プリンタ２００で出力（印刷）される。
【００４０】
ユーザは、アプリケーション３０３を通して印刷を行う。ＰＣ側での印刷制御手順を以下に示す。
（１）ユーザは、印刷の設定をドライバ（ＵＩ部）３０２の提供するＵＩ、または、アプリケーション３０３が提供するページ設定のＵＩ上にて行う
（２）ユーザは、アプリケーション３０３に対して印刷指示をする
（３）アプリケーション３０３は、オペレーティングシステム（以下ＯＳ）のＧＤＩ３０４、ドライバ（ＵＩ部）３０２に対してＤＥＶＭＯＤＥを渡す
（４）アプリケーション３０３は、ＧＤＩ３０４に対して文書の描画命令（ＧＤＩコール）をする
（５）ＧＤＩ３０４は、アプリケーション３０３からＧＤＩコールを受け取ると、中間データ（ＥＭＦデータ）を生成し、スプーラ３０５にスプールする
（６）プリントプロセッサ３０６は、スプーラ３０５からスプールデータ（中間データ）を受け取る
（７）プリントプロセッサ３０６は、スプールデータに対し、ユーザが指定した印刷設定を元に画像処理を行い、ＧＤＩ３０４に対しＧＤＩコールをする
（８）ＧＤＩ３０４は、ＧＤＩコールを受け取ると、ＤＤＩ（Device Driver Interface）コールに変換し、グラフィックドライバ３０７に渡す
（９）グラフィックドライバ３０７は、ＤＤＩコールを受け取ると、プリンタ３１０の解釈可能な言語（ＰＤＬ）に変換しスプーラ３０５に渡す
（１０）スプーラ３０５は、グラフィックドライバ３０７から受け取ったＲＡＷデータをプリンタ３１０に出力する。
【００４１】
なお、ドライバ（ＵＩ部）３０２、アプリケーション３０３、ＧＤＩ３０４、スプーラ３０５、プリントプロセッサ３０６、グラフィックドライバ３０７は、例えばＣＰＵ１０１及びワークメモリとしてのＲＡＭ１０２により実現されうる。
【００４２】
＜プリンタドライバ＞
図７は、実施例におけるプリンタドライバ４００の構成の一例を示すブロック図である。図７に示す例では、プリンタドライバ４００は、ドライバ（ＵＩ部）３０２、グラフィックドライバ３０７を含む。
【００４３】
プリンタドライバ４００は、ポストスクリプト形式に対応したプリンタドライバであり、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ（登録商標））プリンタドライバとも呼ばれる。
【００４４】
図８は、グラフィックドライバ３０７の構成の一例を示すブロック図である。図８に示すグラフィックドライバ３０７は、コア部５０１とプラグイン部５０２とを有する。
【００４５】
コア部５０１は、例えばＰｏｓｔＳｃｒｉｐｔ（登録商標）  Ｒｅｎｄｅｒｉｎｇ  Ｃｏｒｅであり、ＰＤＬ言語に変換したりする。コア部５０１は、ＤＤＩコールにより印刷データを受け取る。コア部５０１は、印刷データとしてのＲＡＷデータを、ＡＰＩ（Application Program Interface）を用いてプラグイン部５０２に送信する。このＡＰＩは、例えばＩＰｒｉｎｔＯｅｍＰＳ２：：ＷｒｉｔｅＰｒｉｎｔｅｒである。
【００４６】
また、コア部５０１は、印刷データの原稿サイズが変更されたことを検知した場合には、ｆｉｎａｌｐａｇｅコマンドを出力し、印刷データの中に含める。よって、コア部５０１は、ｆｉｎａｌｐａｇｅコマンドを作成するコマンド作成部としての機能を有する。また、コア部５０１は、ＯＳが管理する部である。ｆｉｎａｌｐａｇｅコマンドは、新しい用紙に印刷することを表すポストスクリプトコマンドである。
【００４７】
プラグイン部５０２は、例えばＰｏｓｔＳｃｒｉｐｔ（登録商標）  Ｒｅｎｄｅｒｉｎｇ  Ｐｌｕｇｉｎであり、ベンダーがプラグインとして作成した機能を有する。プラグイン部５０１は、受信部５２１、コマンド制御部５２２、文字列保存部５２５、送信部５２６を有する。
【００４８】
受信部５２１は、コア部５０１から印刷データを受信する。印刷データは、所定単位毎に送信される。受信部５２１は、取得した印刷データをコマンド制御部５２２に出力する。
【００４９】
コマンド制御部５２２は、ポストスクリプトコマンドを制御する機能を有する。コマンド制御部５２２は、検索部５２３、削除部５２４を有する。
【００５０】
検索部５２３は、印刷データを取得し、印刷データの中に、所定のポストスクリプトコマンドがないかを検索する。所定のポストスクリプトコマンドとは、例えばｆｉｎａｌｐａｇｅコマンドである。
【００５１】
ここで、印刷データは、必ずしもページの区切りで送られてくるわけではないので、ｆｉｎａｌｐａｇｅコマンドが途中で分割されて送られる場合もある。よって、検索部５２３は、所定単位の印刷データの最後尾にｆｉｎａｌｐａｇｅコマンドの一部が存在するかを検索する。
【００５２】
検索部５２３は、所定単位の印刷データの最後尾に、ｆｉｎａｌｐａｇｅコマンドの一部が存在する場合、その一部の文字列を文字列保存部５２５に保存する。検索部５２３は、文字列保存部５２５に保存した一部の文字列を、次の所定単位の印刷データの先頭に追加する。
【００５３】
検索部５２３は、次の所定単位の印刷データの先頭に、文字列を追加した後、次の所定単位の印刷データの中に、ｆｉｎａｌｐａｇｅコマンドが存在するかを検索する。検索部５２３は、ｆｉｎａｌｐａｇｅコマンドが検索された場合、そのコマンドの位置を削除部５２４に通知する。
【００５４】
削除部５２４は、検索部５２３により検索されたｆｉｎａｌｐａｇｅコマンドを削除する。削除部５２４は、検索部５２３により通知された位置のポストスクリプトコマンドを削除すればよい。
【００５５】
また、削除部５２４は、検索部５２３がコマンドの文字列を追加してｆｉｎａｌｐａｇｅコマンドを削除した場合、１つ前の所定単位の印刷データの最後尾にあるｆｉｎａｌｐａｇｅコマンドの一部も削除する。これにより、印刷データの切れ目にｆｉｎａｌｐａｇｅコマンドがある場合でも、ｆｉｎａｌｐａｇｅコマンドを適切に検索することができる。
【００５６】
削除部５２４は、ｆｉｎａｌｐａｇｅコマンドを削除した後の印刷データを、送信部５２６に出力する。
【００５７】
なお、検索部５２３は、集約に関する印刷を表すポストスクリプトコマンドが印刷データの中にあるか否かを検索し、このポストスクリプトコマンドが場合に、ｆｉｎａｌｐａｇｅコマンドを検索するようにしてもよい。集約に関する印刷とは、集約印刷、製本印刷などである。
【００５８】
送信部５２６は、Ｗｉｎｄｏｗｓ（登録商標）のＡＰＩを用いて、コマンド制御部５２２から取得した印刷データとしてのＲＡＷデータを、スプーラ３０５を介してプリンタ２００に送信する。このＡＰＩは、例えばＷｉｎｄｏｗｓ（登録商標）のＷｒｉｔｅＰｒｉｎｔｅｒである。
【００５９】
なお、プラグイン部５０２は、上記以外にも、画像操作以外の縮小処理や回転処理を行うことができる。
【００６０】
これにより、ＯＳが管理するコア部５０１から出力されるｆｉｎａｌｐａｇｅコマンドを、プラグイン部５０２により削除することができる。ｆｉｎａｌｐａｇｅコマンドがあることで、原稿サイズ混在文書では、ユーザが意図する集約印刷を行うことができなかった。しかし、この原因となるｆｉｎａｌｐａｇｅコマンドを削除することで、原稿サイズ混在文書であっても、ユーザが意図する印刷結果を得ることができる。
【００６１】
＜データ例＞
次に、印刷データの例について説明する。図９は、印刷データの途中に所定のポストスクリプトコマンドがある場合を示す図である。図９に示すｆｉｎａｌｐａｇｅコマンドは、検索部５２３により検索される。
【００６２】
図１０は、複数の印刷データに跨って、所定のポストスクリプトコマンドがある場合を示す図である。図１０（Ａ）は、ｎ回目にコア部５０１から送信された印刷データである。図１０（Ｂ）は、ｎ＋１回目にコア部５０１から送信された印刷データである。図１０（Ａ）に示す例では、ｎ回目の印刷データの最後尾に、ｆｉｎａｌｐａｇｅコマンドの一部である「ｆｉｎａｌｐ」が存在する。図１０（Ｂ）に示す例では、ｎ＋１回目の印刷データの先頭にｆｉｎａｌｐａｇｅコマンドの一部である「ａｇｅ」が存在する。
【００６３】
＜コマンド制御部の処理概要＞
図１１は、コマンド制御部５２２の処理の一例を示す図である。図１０の例を用いてコマンド制御部５２２の処理概要について説明する。図１１に示すように、以下の手順でコマンド制御部５２２は処理を行う。
【００６４】
検索部５２３は、ｎ回目に取得した印刷データの最後尾に、所定のポストスクリプトコマンドの一部があるかを検索する。所定のポストスクリプトコマンドをｆｉｎａｌｐａｇｅコマンドとする。
【００６５】
検索部５２３は、「ｆｉｎａｌｐ」の文字列を見つけた場合、この文字列「ｆｉｎａｌｐ」を文字列保存部５２５に保存する。削除部５２４は、文字列が保存された場合、保存された文字列に対応する「ｆｉｎａｌｐ」をｎ回目の印刷データから削除する。
【００６６】
検索部５２３は、ｎ＋１回目の印刷データが取得された場合、文字列保存部５２５から文字列「ｆｉｎａｌｐ」を読出し、この文字列「ｆｉｎａｌｐ」をｎ＋１回目の印刷データの先頭に追加する。
【００６７】
検索部５２３は、ｎ＋１回目の印刷データの中からｆｉｎａｌｐａｇｅコマンドを検索する。このとき、コマンドの一部を追加することで、ｎ＋１回目の印刷データの先頭にｆｉｎａｌｐａｇｅコマンドが検索されたとする。検索部５２３は、検索されたｆｉｎａｌｐａｇｅコマンドの位置を削除部５２４に通知する。
【００６８】
削除部５２４は、検索部５２３により検索されたｆｉｎａｌｐａｇｅコマンドをｎ＋１回目の印刷データの中から削除する。これにより、ｆｉｎａｌｐａｇｅコマンドが削除された印刷データがプリンタ２００に送信され、ユーザが意図する印刷結果を得ることができる。
【００６９】
図１２は、実施例における原稿サイズ混在文書の集約印刷結果の一例を示す図である。図１２に示す例では、３ページ目が１、２ページ目と原稿サイズが異なるが、適切に集約印刷ができるようになる。これは、印刷データの中に含まれるｆｉｎａｌｐａｇｅコマンドを削除したからである。
【００７０】
＜動作＞
次に、情報処理装置１００の動作について説明する。図１３は、情報処理装置１００における印刷制御処理の一例を示すフローチャートである。
【００７１】
図１３に示すステップＳ１０１で、検索部５２３は、受信部５２１がコア部５０１から受信した印刷データの中に、検索対象の文字列が存在するかを判定する。検索対象の文字列は、例えばｆｉｎａｌｐａｇｅというポストスクリプトコマンドである。
【００７２】
検索対象の文字列があれば（ステップＳ１０１−ＹＥＳ）、ステップＳ１０８に進み、検索対象の文字列がなければ（ステップＳ１０１−ＮＯ）、ステップＳ１０２に進む。
【００７３】
ステップＳ１０２で、検索部５２３は、印刷データの最後尾から検索対象の文字数以内に、検索対象の先頭文字が存在するかを判定する。検索対象の先頭文字が存在すれば（ステップＳ１０２−ＹＥＳ）ステップＳ１０３に進み、検索対象の先頭文字が存在しなければ（ステップＳ１０２−ＮＯ）ステップＳ１０９に進む。
【００７４】
ステップＳ１０３で、検索部５２３は、その先頭文字が印刷データの最後尾から数えて何文字目（例えばＸ文字目とする）かを数える。
【００７５】
ステップＳ１０４で、検索部５２３は、検索対象の先頭文字からＸ文字目までの文字列と、ステップＳ１０２で見つけた検索対象の先頭文字の位置から最後尾までの文字列（例えばＹとする）が同一であるかを判定する。
【００７６】
同一であれば（ステップＳ１０４−ＹＥＳ）、ステップＳ１０５に進み、同一でなければ（ステップＳ１０４−ＮＯ）、ステップＳ１０９に進む。
【００７７】
ステップＳ１０５で、検索部５２３は、文字列Ｙを文字列保存部５２５に保存し、削除部５２４は、文字列Ｙを印刷データから削除する。
【００７８】
ステップＳ１０６で、送信部５２６は、印刷データをスプーラ３０５に送信する。ステップＳ１０７で、検索部５２３は、次の印刷データの先頭に文字列Ｙを追加する。ステップＳ１０７の処理が終わると、ステップＳ１０１に戻り、検索部５２３は、次の印刷データに対して検索対象の文字列を検索する。
【００７９】
ステップＳ１０８で、削除部５２４は、印刷データから検索対象の文字列を削除する。ステップＳ１０８の処理が終わると、ステップＳ１０１に戻り、検索部５２３は、次に印刷データに対して検索対象の文字列を検索する。
【００８０】
ステップＳ１０９で、送信部５２６は、印刷データをスプーラ３０５に送信する。これにより、原稿サイズ混合文書において、ユーザが意図する集約印刷ができない原因とするｆｉｎａｌｐａｇｅコマンドを削除することができる。
【００８１】
以上、実施例によれば、原稿サイズ混在文書を集約印刷する場合に、ユーザが意図する出力結果を出力させることができる。
【００８２】
ここで、パススルー系について簡単に説明する。例えば、米国Ａｄｏｂｅ社のアプリケーションは、ＰｏｓｔＳｃｒｉｐｔ（以下、ＰＳ）形式の印刷データを生成することが可能である。
【００８３】
プリンタドライバでもＰＳデータを生成することは可能であるが、Ａｄｏｂｅ社のアプリケーションで作成された文書（画像）は、ＯＳのＧＤＩに合わせて描画命令を発行すると、ＧＤＩの機能に依存してしまうため、画質が劣化してしまうことがある。
【００８４】
例えばＧＤＩはグラデーション表現に弱いため、米国マイクロソフト社のＯＳであるＷｉｎｄｏｗｓ（登録商標）のＧＤＩ描画命令に合わせると、段階的に明度や色味が変化させる単位で描画命令を区切る必要がある。そのため、なめらかに階調表現等のグラデーション表現を行うことができないという問題がある。
【００８５】
そこで、パススルー系では、アプリケーション自身が印刷データを生成することによりＧＤＩの描画機能にあわせることなく、高品質な印刷データを生成することが可能となっている。
【００８６】
このようにアプリケーションが、プリンタが解釈可能な印刷データを生成するパススルー系である場合、パススルーの対象となるオブジェクトに対し、ＯＳの描画部（ＧＤＩモジュール）及びプリンタドライバは、なんら手を加えることはない。よって、パススルーのオブジェクトを含む印刷データは、プリンタ側で面付け処理などが行われる。
【００８７】
上述した実施例では、プリンタ２００で面付け処理などを行うことを想定しているため、パススルーのオブジェクトを含む印刷データであっても、本実施例を適用することができ、同様の効果を得ることができる。
【００８８】
［変形例］
次に、変形例における情報処理装置について説明する。実施例の情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００８９】
また、実施例の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【００９０】
また、実施例の情報処理装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００９１】
実施例の情報処理装置で実行されるプログラムは、前述した各手段を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１０１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより上記各機能が主記憶装置上にロードされ、上記各機能が主記憶装置上に作成されるようになっている。
【００９２】
なお、本発明は、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。
【符号の説明】
【００９３】
１１  非パススルーオブジェクト
１２  パススルーオブジェクト
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＨＤＤ
１０４  ネットワーク１／Ｆ部
１０５  入力部
１０６  表示部
３０２  ドライバ（ＵＩ部）
３０３  アプリケーション
３０４  ＧＤＩ
３０５  スプーラ
３０６  プリントプロセッサ
３０７  グラフィックドライバ
４００  プリンタドライバ
５０１  コア部
５０２  プラグイン部
５２１  受信部
５２２  コマンド制御部
５２３  検索部
５２４  削除部
５２５  文字列保存部
５２６  送信部
【先行技術文献】
【特許文献】
【００９４】
【特許文献１】特開２００８−２２７５８４号公報
【図１】
2013054574.tif 000003
【図２】
2013054574.tif 000004
【図３】
2013054574.tif 000005
【図４】
2013054574.tif 000006
【図５】
2013054574.tif 000007
【図６】
2013054574.tif 000008
【図７】
2013054574.tif 000009
【図８】
2013054574.tif 000010
【図９】
2013054574.tif 000011
【図１０】
2013054574.tif 000012
【図１１】
2013054574.tif 000013
【図１２】
2013054574.tif 000014
【図１３】
2013054574.tif 000015