(57)【要約】【課題】面付けが行われるファイルの印刷時間を短縮できる情報処理装置を提供すること。【解決手段】面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを第１の文書ファイルから生成する生成手段５２００と、前記生成手段によって生成された前記第２の文書ファイルを画像形成装置へ送信する送信手段５１００と、を有することを特徴とする情報処理装置５０を提供する。【選択図】図４
2020042630.tif 000002
【特許請求の範囲】
【請求項１】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを第１の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第２の文書ファイルを画像形成装置へ送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段を有し、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第２の文書ファイルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ソート手段は、前記面付け対象ページ群の各ページを、データサイズの小さい順にソートすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ソート手段は、前記面付け対象ページ群の各ページをデータサイズの小さい順にソートして、最もデータサイズが小さいページのデータを前記面付け対象ページ群における先頭に配置し、
前記面付け対象ページ群の各ページに共通のデータが隣接するように前記面付け対象ページ群の残りのページのデータを配置することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記生成手段は、各ページのデータがどのページのものかを示す情報を、前記第２の文書ファイルにおいてページのデータよりも先頭側に追加することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記生成手段は、前記第１の文書ファイルにおけるページの順に配置された前記第２の文書ファイルであることを示す判断情報を、ページのデータよりも先頭側に追加することを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記生成手段は、前記第２の文書ファイルにおいてページのデータよりも末尾側に、前記第２の文書ファイルにおける各ページのデータのアドレス情報、及び、前記アドレス情報の位置情報を追加することを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを、情報処理装置から受信する受信手段と、
前記受信手段が受信した前記第２の文書ファイルの先頭から前記境界情報に基づいて検出されたページの描画を、検出された順に開始する処理手段と、
を有することを特徴とする画像形成装置。
【請求項９】
前記第２の文書ファイルは、面付け対象ページ群のデータが所定の基準に基づく順番で配置されており、
前記処理手段は、面付け対象ページ群のデータから前記境界情報に基づいて検出されたページの描画を、検出された順に開始することを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記第２の文書ファイルは、各ページのデータがどのページのものかという情報を各ページのデータよりも先頭側に有しており、
前記処理手段は、面付け対象ページ群のデータから前記境界情報に基づいて検出されたページを、どのページのものかという情報に基づいて１物理ページの予め定められた位置に描画することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを第１の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第２の文書ファイルを画像形成装置へ送信する送信手段と、を有する情報処理装置と、
前記第２の文書ファイルを情報処理装置から受信する受信手段と、
前記受信手段が受信した前記第２の文書ファイルの先頭から前記境界情報に基づいて検出されたページの描画を、検出された順に開始する処理手段と、
を有する画像形成装置と、を有することを特徴とする印刷システム。
【請求項１２】
情報処理装置を、
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを第１の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第２の文書ファイルを画像形成装置へ送信する送信手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置、印刷システム、及び、プログラムに関する。
【背景技術】
【０００２】
画像形成装置は、ＰＣＬ（Printer Control Language）、ＰＳ（PostScript）、又はＰＤＦ（Portable Document Format）などの各種ファイルを受信して、印刷処理を実行する。ＰＣＬ及びＰＳなどのシーケンシャルアクセス形式のファイルについては、各ページのコンテンツがページ順に配置される。このため、画像形成装置は、シーケンシャルアクセス形式のファイルを受信したときに、データをスプールしつつ、データ順に各ページのコンテンツを読み出して印刷する。これに対し、ＰＤＦファイルなどのランダムアクセス形式のデータについては、各ページのコンテンツがページ順とは関係なく配置され得るので、画像形成装置は、受信したファイルのスプールが完了してから、ファイルの後方に配置されたデータ（ＰＤＦではオブジェクトという）の位置情報を参照し、各ページのデータにアクセスして印刷する。
【０００３】
このようなＰＤＦファイルの構造のため、ＰＤＦファイルの全体を受信しないと画像形成装置が印刷を開始できない。そこで、印刷開始までの時間を短縮する技術が考案されている（例えば、特許文献１参照。）。特許文献１には、ＰＤＦを複数のデータブロックに分割し、最後尾のデータブロックを先に画像形成装置に転送し、相互参照表を画像形成装置が受信したことを示す通知を当該画像形成装置から受信した後に最初のデータブロックから送信する。これにより、画像形成装置側では、従来は相互参照表を取得するためにＰＤＦの最後尾まで受信した後でなければ印刷を開始できなかったが、最初に相互参照表を取得できるため、その後はデータの受信と平行して印刷を開始することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、面付けが行われるファイルの高速化については考慮されていないという問題がある。面付けとは１つの用紙（片面）に複数のページを配置することをいう。例えば集約印刷で行われる処理であり、4in1の集約印刷を例にすると、４ページ分のデータを受信してからでないと印刷に関する処理を開始できなかった。
【０００５】
本発明は上記課題に鑑み、面付けが行われるファイルの印刷時間を短縮できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題に鑑み、本発明は、面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第２の文書ファイルを第１の文書ファイルから生成する生成手段と、前記生成手段によって生成された前記第２の文書ファイルを画像形成装置へ送信する送信手段と、を有することを特徴とする情報処理装置を提供する。
【発明の効果】
【０００７】
面付けが行われるファイルの印刷時間を短縮できる情報処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】シリアライズを模式的に説明する図の一例である。
【図２】シリアライズされたＰＤＦファイルの印刷性能を説明する図の一例である。
【図３】印刷に必要なメモリサイズを説明する図の一例である。
【図４】印刷に面付けが必要なＰＤＦファイルの印刷時の手順を説明する図である。
【図５】印刷システムの一例の全体構成図である。
【図６】端末の一例のハードウェア構成図である。
【図７】画像形成装置の一例のハードウェア構成図である。
【図８】画像形成装置及びクラウドサービスの一例の機能ブロック図である。
【図９】ＰＤＦファイルの構造の一例を示す概念図である。
【図１０】ボディに存在するオブジェクトがどのような論理構造になっているかを簡略化して示す図の一例である。
【図１１】ＰＤＦファイルを生成する処理の一例を示すシーケンス図である。
【図１２】ＰＤＦファイルの構造の一例を示す概念図である。
【図１３】ＰＤＦファイルを生成する処理の一例を示すシーケンス図である。
【図１４】図１３のようなシリアライズの処理により作成されたＰＤＦファイルの一例である。
【図１５】画像形成装置における印刷処理の一例を示すシーケンス図である。
【図１６】分割ファイルを生成する処理の一例を示すフロー図である。
【図１７】分割ファイルを印刷する処理の一例を示すフロー図である。
【図１８】画像を印刷する処理の一例を示すシーケンス図である（実施例２）。
【図１９】面付け対象ページ群のページの整列処理を説明するフローチャート図の一例である。
【図２０】シリアライズされたＰＤＦファイルの一例を示す図である。
【図２１】シリアライズされたＰＤＦファイルの印刷性能を説明する図の一例である。
【図２２】ＰＤＦファイルを生成する処理の一例を示すシーケンス図である（実施例３）。
【図２３】面付けが必要なＰＤＦファイルのシリアライズの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１０】
＜ＰＤＦファイルのシリアライズについて＞
まず、ランダムアクセスファイルの一例としてＰＤＦファイル（第１の文書ファイルの一例）のシリアライズについて説明する。ＰＤＦファイルではページデータのアドレス情報となる相互参照表がボディと呼ばれるページデータよりもＰＤＦファイルの末尾側に付随するため、画像形成装置はＰＤＦファイルのほぼ最後尾まで受信した後でなければ印刷を開始できなかった。
【００１１】
そこで、本出願人は、ＰＤＦファイルをページ毎に分割して、ページ順にオブジェクト（ＰＤＦファイルにおいてページデータに相当する）が配置されたＰＤＦファイルに変換する技術を考案した。後述するクラウドサービスは、ＰＤＦファイルのオブジェクトをページ順に並べてページの区切りに境界情報を設定する。また、ページ順にオブジェクトが配置されたＰＤＦファイルであることを意味する判断情報をオブジェクトよりもＰＤＦファイルの先頭側に設定する。
【００１２】
クラウドサービスは、ページ順にオブジェクトが配置されたＰＤＦファイルを通常通りにＰＤＦファイルの先頭から画像形成装置に送信する。画像形成装置は、ＰＤＦファイルの後方にある相互参照表を参照することなく、ＰＤＦファイルの先頭から順にページの区切りに基づいてページ順に受信しながら印刷を開始することができる。以下、このようにページ順にオブジェクトが配置されたＰＤＦファイル（第２の文書ファイルの一例）に変換することをシリアライズという。
【００１３】
図１は、シリアライズを模式的に説明する図の一例である。複数ページ（３ページ）の原稿を画像形成装置がスキャンして印刷する場合を想定して説明する。
（１）画像形成装置はページ順にオブジェクトが配置され、ページごとにデータの区切り「%Page1 Object」等（境界情報）を設定したＰＤＦファイルを生成する。なお、通常のＰＤＦファイルと同様に、相互参照表とトレイラー等がＰＤＦファイルの最後尾に付随している。相互参照表はオブジェクトのファイル内アドレス情報を有し、トレイラーはファイル全体のオブジェクトの数、先頭のオブジェクト（どこから処理を開始するか）、及び、相互参照表の位置情報を指定している。
（２）シリアライズされたＰＤＦファイルを受信した画像形成装置は、判断情報（後述する「%Enable Page Split Mode」）を検出すると、ＰＤＦファイルの先頭から（受信した順に）、境界情報に基づいて各ページのオブジェクトを特定する。したがって、ＰＤＦファイルの全体を受信しなくても各ページの印刷を開始できる。
（３）画像形成装置は、不足データを補ってページ毎にＰＤＦファイルを作成する。図１ではＰ１〜Ｐ３のそれぞれに相互参照表とトレイラーが補われ、３つのＰＤＦファイルが作成されている。
【００１４】
なお、画像形成装置が判断情報を検出しない場合、画像形成装置は相互参照表とトレイラーを参照すれば従来と同様に印刷できる。
【００１５】
また、シリアライズされたＰＤＦファイルはＩＳＯの規格を満たすため、シリアライズされたＰＤＦファイルに画像形成装置が対応していない場合でも、相互参照表とトレイラーを参照すれば従来と同様に印刷できる。したがって、シリアライズされたＰＤＦファイルを生成するクラウドサービスは、送信先の画像形成装置がシリアライズされたＰＤＦファイルに対応しているか否かを意識する必要がない。処理に必要なメモリサイズが変化することもない。
【００１６】
図２は、シリアライズされたＰＤＦファイルの印刷性能を説明する図の一例である。図２（ａ）はシリアライズされる前のＰＤＦファイルが印刷される際のタイムチャート図を示し、図２（ｂ）はシリアライズされたＰＤＦファイルが印刷される際のタイムチャート図を示す。なお、印刷は、スプール（spool）、パース（parse）、描画（Rend）、及び、排紙（feed）のプロセスを経る。なお、パースとはデータの構造を解析して処理に必要な情報を抽出することをいう。
【００１７】
図２では３ページを含む印刷ジョブを例にしている。シリアライズされていないＰＤＦファイルの場合、３ページ分の印刷ジョブの全体のスプールが終わるまで画像形成装置は１ページ目のパース、レンダリング及び印刷を開始することができない。
・１ページ目の印刷開始＝印刷ジョブのスプール完了＋１ページ目の描画完了
これに対し、シリアライズされたＰＤＦファイルは、１ページ目のスプールが終われば１ページ目のパース、描画及び排紙を開始することができる。
・１ページ目の印刷開始＝１ページ目のスプール完了＋１ページ目の描画完了
したがって、シリアライズされたＰＤＦファイルは１ページ目の印刷開始までの時間を短縮できる。
【００１８】
図３は、印刷に必要なメモリサイズを説明する図の一例である。図３（ａ）はシリアライズされる前のＰＤＦファイルの印刷に必要なメモリサイズを示し、図３（ｂ）はシリアライズされたＰＤＦファイルの印刷に必要なメモリサイズを示す。シリアライズされる前のＰＤＦファイルではジョブ全体のデータサイズを格納するメモリが必要である。
・印刷に必要なメモリ＝印刷ジョブのデータサイズ
これに対し、シリアライズされたＰＤＦファイルでは、１ページ分のデータサイズを格納するメモリがあればよい。
・印刷に必要なメモリ＝１ページ分のデータサイズ
このように、シリアライズされたＰＤＦファイルは、１ページ目の印刷開始までの時間の短縮、必要なメモリの削減、ＩＳＯの規格に従ったＰＤＦファイルであること、という多くのメリットを有する。
【００１９】
なお、特許文献１の技術では、送信元がＰＤＦファイルを分割して最後尾から先に送信し、相互参照表の受信通知を受けてから残りを送信するという独自のフローでのＰＤＦファイルを送信するため、この送信方法に対応している画像形成装置にしか当該フローでＰＤＦファイルを送信できない。このため、送信元は、この送信方法に対応している画像形成装置と非対応の画像形成装置とで送信処理を分ける必要がある。
【００２０】
また、特許文献１の技術では、ＰＤＦファイルのボディのオブジェクトがページ順に並んでいるとは限らないため、画像形成装置が相互参照表を先に受け取ったとしても、１ページ目のオブジェクトが最後尾近くに配置されている場合には、印刷開始が遅れる。本実施形態の画像形成装置はこれら従来技術の課題を解決することができる。
【００２１】
＜シリアライズされたＰＤＦファイルの印刷に面付けが必要な場合＞
しかしながら、シリアライズされたＰＤＦファイルであっても印刷に面付けが行われる場合、印刷の高速化についてはこれまでは考慮されていなかった。図４を用いて説明する。
【００２２】
図４は印刷に面付けが必要なＰＤＦファイルの印刷時の手順を説明する図である。図４（ａ）は4in1で面付けされた４ページ分のＰＤＦファイルのスプール、描画、及び排紙の流れを示す。4in1で１物理ページ（排紙される１用紙の片面）なので、４ページごとに区切りが設定されている。このため、画像形成装置は、４ページ目のオブジェクトが読み込まれるまで区切りを検出できず、面付けが必要な場合、シリアライズされたＰＤＦファイルでも４ページ分のスプールが終わるまでは描画を開始できなかった。
【００２３】
そこで、本実施形態では、集約印刷を指示されたＰＤＦファイルが印刷される場合、後述するクラウドサービスは、面付け設定ページ群（4in1の場合、１〜４ページ目）の各ページごとに区切りを設定する。また、クラウドサービスは面付け設定ページ群の各ページをページサイズでソートして、ページサイズの小さい順にＰＤＦファイルに配置する。
【００２４】
図４（ｂ）は集約印刷を指示されたＰＤＦファイルのスプール、描画、排紙の流れを示す。図４（ｂ）に示すように、面付け設定ページ群の各ページごとに区切りが設定される。区切りがあれば、区切りまでにスプールされたオブジェクトの描画を開始できる。
【００２５】
また、図４（ｂ）ではデータサイズの小さい順（Ｐ４、Ｐ２、Ｐ３、Ｐ１の順）にページのオブジェクトがソートされている。画像形成装置はＰ４のスプールが終了するとＰ４の描画を開始できる。データサイズが小さいページはスプールされるまでの時間も短いので、単にページごとに区切りが設定されるよりも１ページ目の印刷開始までの時間を短縮できる。
【００２６】
Ｐ２，Ｐ３，Ｐ１についても同様で、当該ページのスプールと前のページの描画が終了したタイミングで、画像形成装置がすぐに印刷を開始できる。
【００２７】
図４（ａ）と図４（ｂ）とを比較すると、スプールと描画を並列に実行できる分、各ページの印刷開始までの時間を短縮できることがわかる。なお、必ずしもページサイズの小さい順にＰＤＦファイルに配置しなくても、各ページごとに区切りが設定されることで印刷開始までの時間を短縮できる。
【００２８】
＜用語について＞
面付けとは、１つの用紙（片面）に複数の描画対象物を配置することをいう。描画対象物は例えば１ページである。例えば、ファイルの集約印刷において面付けが必要になる。ＰＤＦファイルは集約印刷や面付けの設定に関する情報を有するわけではなく、集約印刷や面付けの設定は印刷設定（ＰＪＬ：Printer Job Language）などで指示される。
【００２９】
本実施形態では１ページとは印刷対象の文書ファイルの１ページをいい、１物理ページとは１つの用紙（片面）をいう。１物理ページに複数のページが印刷されることを集約印刷という。
【００３０】
面付け対象ページ群とは、１物理ページに印刷される複数のページをいう。
【００３１】
境界情報とは、各ページのオブジェクトの境界位置を示す何らかの情報をいう。
【００３２】
＜印刷システム＞
図５は、本発明の一実施形態に係る印刷システム１の全体構成図である。以下、通信端末を単に端末と表す。図１に示されているように、印刷システム１は、端末１０Ａ，１０Ｂ、画像形成装置２０Ａ，２０Ｂ、及びクラウドサービス５０を有している。端末１０Ａ，１０Ｂのうち任意のものを端末１０と表す。画像形成装置２０Ａ，２０Ｂのうち任意のものを画像形成装置２０と表す。印刷システム１において、端末１０、画像形成装置２０、及びクラウドサービス５０の数は、特に限定されない。
【００３３】
端末１０は、通信機能を有する情報処理装置であり、例えば、タブレット、スマートフォンなどのスマートデバイス、ノートＰＣ(Personal Computer)、テレビ会議端末、電子黒板、又はカメラである。図５において、端末１０Ａは、例えば、ノートＰＣであり、端末１０Ｂは、例えば、スマートデバイスである。
【００３４】
画像形成装置２０は、画像処理機能及び通信機能を有する情報処理装置であり、例えば、ＭＦＰ(Multifunction Peripheral/Printer/Product)、ファクシミリ、スキャナ、又はプリンタである。図５において、画像形成装置２０Ａは、例えば、ファクシミリ、スキャナ、及びプリンタ機能を有するＭＦＰであり、画像形成装置２０Ｂは、例えば、プリンタである。
【００３５】
クラウドサービス５０は、通信機能を有する情報処理装置である（特許請求の範囲の情報処理装置の一例）。クラウドサービス５０は、端末１０又は画像形成装置２０からの要求に基づいてＰＤＦ（Portable Document Format）ファイルなどの文書ファイルを管理し、画像形成装置２０へ送信するプリントサーバとして機能する。また、クラウドサービス５０は、文書ファイルをシリアライズする変換機能を有する。
【００３６】
端末１０及び画像形成装置２０は、直接、あるいは無線ＬＡＮルータ２Ｒを介して、ＬＡＮ２Ｌ（Local Area Network）に接続している。端末１０及び画像形成装置２０は、ＬＡＮ２Ｌからインターネット２Ｉに接続し、インターネット２Ｉ上のクラウドサービス５０に接続する。ＬＡＮ２Ｌ及びインターネット２Ｉのうち任意のものを通信ネットワーク２と表す。通信ネットワーク２の全部又は一部には、Ｗｉ−Ｆｉ（Wireless Fidelity）などの無線による通信が行われる箇所があってもよい。
【００３７】
端末１０、及びクラウドサービス５０は、任意のアプリケーション又はプリンタドライバを用いて、ＰＤＦファイルなどのランダムアクセス形式の文書ファイルを生成する。端末１０及びクラウドサービス５０は、文書ファイルを含む印刷要求を画像形成装置２０へ送信する。画像形成装置２０は、端末１０又はクラウドサービス５０によって送信された文書ファイルを受信して印刷処理を実行する。
【００３８】
＜ハードウェア構成＞
図６は、一実施形態に係る端末のハードウェア構成図である。図６を用いて、端末１０
のハードウェア構成について説明する。
【００３９】
端末１０は、ＣＰＵ１０１(Central Processing Unit)と、ＲＯＭ１０２(Read Only Memory)と、ＲＡＭ１０３(Random Access Memory)と、ＳＳＤ１０４（Solid State Drive）と、メディアＩ／Ｆ１０５（Interface）と、ネットワークＩ／Ｆ１０７と、ユーザＩ／Ｆ１０８と、バスライン１１０と、を有する。
【００４０】
ＣＰＵ１０１は、端末１０全体の動作を制御する。ＲＯＭ１０２は、端末１０上で動作する各種プログラム及びアプリケーションを記憶する。以下、アプリケーションを単にアプリと表す。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＳＳＤ１０４は、各種プログラム又はアプリで利用されるデータを記憶する。メディアＩ／Ｆ１０５は、外部メモリなどの記録メディア１０６に記憶されている情報を読み出したり、記録メディア１０６に情報を書き込んだりするためのインタフェースである。ネットワークＩ／Ｆ１０７は、通信ネットワーク２を介して他の装置と通信するためのインタフェースである。ユーザＩ／Ｆ１０８は、ユーザによる操作入力を受け付けるためのインタフェースである。ユーザＩ／Ｆ１０８は、例えば、タッチパネル機能を搭載した液晶表示装置又は有機ＥＬ（Electro Luminescence）表示装置、もしくはキーボード及びマウスである。バスライン１１０は、上記各構成要素を図６に示されているように電気的に接続するためのアドレスバス又はデータバスである。
【００４１】
クラウドサービス５０のハードウェア構成は、端末１０のハードウェア構成と同様であるので説明を省略する。ただし、ＳＳＤ１０４は、ＨＤＤ(Hard Disk Drive)などの任意の不揮発性の記憶装置に置き換え可能である。
【００４２】
図７は、一実施形態に係る画像形成装置２０のハードウェア構成図である。図７を用いて、画像形成装置２０のハードウェア構成について説明する。
【００４３】
画像形成装置２０のコントローラ２００は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＮＶＲＡＭ２０４（Non−volatile RAM）と、ＨＤＤ２０５と、ネットワークＩ／Ｆ２０６と、エンジンＩ／Ｆ２０７と、パネルＩ／Ｆ２０８と、スキャナＩ／Ｆ２０９と、メディアＩ／Ｆ２１５と、バスライン２１０と、を有する。また、画像形成装置２０は、プロッタエンジン２１１と、操作パネル２１２と、スキャナエンジン２１３と、を有する。
【００４４】
ＣＰＵ２０１は、画像形成装置２０全体の動作を制御する。ＲＯＭ２０２は、画像形成装置２０上で動作する各種プログラム及びアプリを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＮＶＲＡＭ２０４及びＨＤＤ２０５は、各種プログラム又はアプリで利用されるデータを記憶する。ネットワークＩ／Ｆ２０６は、通信ネットワーク２を介して他の装置と通信するためのインタフェースである。エンジンＩ／Ｆ２０７は、プロッタエンジン２１１と接続するためのインタフェースである。パネルＩ／Ｆ２０８は、操作パネル２１２と接続するためのインタフェースである。スキャナＩ／Ｆ２０９は、スキャナエンジン２１３と接続するためのインタフェースである。メディアＩ／Ｆ２１５は、外部メモリなどの記録メディア２１６に記憶されている情報を読み出したり、記録メディア２１６に情報を書き込んだりするためのインタフェースである。バスライン２１０は、上記各構成要素を図７に示されているように電気的に接続するためのアドレスバス又はデータバスである。
【００４５】
プロッタエンジン２１１は、記録媒体への画像の印刷処理において、画像形成装置２０のプロッタの動作を制御する。プロッタは、任意の印刷装置であり、インクジェット方式の場合、例えば、インクジェットヘッドであり、レーザープリンタ方式の場合、例えば、感光体、レーザー照射装置、あるいは転写装置である。操作パネル２１２は、ユーザから設定、条件、指示などの入力を受け付けるためのパネルであり、例えば、タッチパネル機能を搭載した液晶表示装置又は有機ＥＬ表示装置、もしくはキーボード及びマウスである。スキャナエンジン２１３は、画像形成装置２０におけるスキャナの動作を制御する。なお、スキャナは、特に限定されないが、例えば、圧版、ＡＤＦ（Auto Document Feeder）、及び撮像素子を有する公知のものが例示される。
【００４６】
＜機能構成＞
次に、図８を用いて一実施形態に係る画像形成装置２０及びクラウドサービス５０の機能構成について説明する。図８は、一実施形態に係る画像形成装置２０及びクラウドサービス５０の機能ブロック図である。
【００４７】
＜＜画像形成装置＞＞
画像形成装置２０は、通信部２１００と、ページデータ生成部２２１０と、印刷データ処理部２２２０と、印刷部２２３０とを有する。これら各部は、図７に示されている各構成要素のいずれかが、ＲＯＭ２０２からＲＡＭ２０３上に展開された画像形成装置２０用のプログラム又はアプリに従ったＣＰＵ２０１からの命令によって動作することで実現される機能である。また、画像形成装置２０は、ＲＯＭ２０２、ＲＡＭ２０３、ＮＶＲＡＭ２０４、又はＨＤＤ２０５により構築される記憶部２０００を有する。
【００４８】
通信部２１００は、ＣＰＵ２０１からの命令、及びネットワークＩ／Ｆ２０６の処理により、通信ネットワーク２を介した他の装置との通信を制御する。
【００４９】
ページデータ生成部２２１０は、ＣＰＵ２０１からの命令に基づいて、複数ページを有するＰＤＦファイル（シリアライズ済み）から、ページごとに分割されたＰＤＦファイルを生成する。ただし、集約印刷を指示されたＰＤＦファイルに関しては、面付け対象ページ群ごとのＰＤＦファイルを生成する。これら１ページ又は面付け対象ページ群に分割されたＰＤＦファイルを分割ファイルという。
【００５０】
印刷データ処理部２２２０は、ＣＰＵ２０１からの命令に基づいて、分割ファイル（ＰＤＬファイル）のパース、及び、描画（レンダリング）等のデータ処理を行う。集約印刷を指示されたＰＤＦファイルに関しては、何ページ目かに基づいて面付けする。
【００５１】
印刷部２２３０は、ＣＰＵ２０１からの命令に基づくプロッタエンジン２１１の動作により、印刷データ処理部２２２０により描画された画像を用紙などのシート材に形成する印刷処理を行う。
【００５２】
＜＜クラウドサービス＞＞
クラウドサービス５０は、通信部５１００と、ファイル生成部５２００と、を有する。これら各部は、図６に示されている各構成要素のいずれかが、ＲＯＭ１０２からＲＡＭ１０３上に展開されたクラウドサービス５０用のプログラム又はアプリに従ったＣＰＵ１０１からの命令によって動作することで実現される機能である。また、クラウドサービス５０は、ＲＯＭ１０２、ＲＡＭ１０３、又はＳＳＤ１０４により構築される記憶部５０００を有する。
【００５３】
通信部５１００は、ＣＰＵ１０１からの命令、及びネットワークＩ／Ｆ１０７の処理により、通信ネットワーク２を介した他の装置との通信を制御する。
【００５４】
ファイル生成部５２００は、ＣＰＵ１０１からの命令に基づいて、ＰＤＦファイルをシリアライズし、ページごと又は面付け対象ページ群ごとのＰＤＦファイルに分割可能な、ＰＤＦファイルを生成する。また、印刷に面付けが必要なＰＤＦファイルにおいてページごとに区切りを設定する。
【００５５】
ファイル生成部５２００はページソート部５３００を有している。ページソート部５３００は面付け対象ページ群を所定の基準でソートする。所定の基準は例えばページサイズの小さい順である。描画時間の小さい順にソートしてもよい。ページサイズ又は描画時間大きい順にソートしてもよい。
【００５６】
＜ファイル構造＞
図９は、ＰＤＦファイルの構造の一例を示す概念図である。ＰＤＦファイルは、国際標準化機構（ISO: International Organization for Standardization）で管理されているオープンスタンダードに準拠して、先頭から順に、ヘッダＰＨ、ボディＰＢ、相互参照表ＰＲ、及びトレイラーＰＴを有する。なお、図９において、ヘッダＰＨ、ボディＰＢ、相互参照表ＰＲ、及びトレイラーＰＴに含まれる情報は一例である。
【００５７】
ヘッダＰＨには、ＰＤＦのバージョン情報などが含まれる。
【００５８】
ボディＰＢには、オブジェクト番号ごとに、ドキュメントカタログ、ページツリーオブジェクト、各ページのオブジェクト情報などが定義されている。オブジェクト番号は、オブジェクトの識別子であり、例えば、「1 0 obj」のように、参照番号（ｘ）、生成番号（ｙ）、及び「obj」が左から順に並んだものである。ドキュメントカタログは、オブジェクト階層のルート(最上位)である。ページツリーオブジェクトには、各ページのオブジェクト情報への参照などが含まれる。各ページのオブジェクト情報には、各ページを描画するためのデータ（ページデータ）が含まれる。
【００５９】
相互参照表ＰＲには、ボディＰＢに定義されている各オブジェクト番号のオブジェクトのアドレス情報が含まれている。アドレス情報は、オブジェクトがヘッダＰＨの先頭から何バイト目かを示すオフセット情報である。したがって、アドレス情報によりオブジェクトの位置が分かる。画像形成装置２０は、相互参照表ＰＲに基づいて、オブジェクトの位置を特定し、アクセスする。
【００６０】
トレイラーＰＴには、相互参照表ＰＲの位置を示す位置情報（startxref）、ドキュメントカタログのオブジェクト番号（Root）、及びＰＤＦファイルの作成日時への参照（Info）などが含まれている。
【００６１】
このようなＰＤＦファイルの構造上、画像形成装置２０は、ドキュメントカタログのオブジェクト番号をトレイラーＰＴから特定し、このオブジェクト番号に対応するアドレス情報を相互参照表ＰＲから特定することで、ドキュメントカタログにアクセスする。すなわち、画像形成装置２０による通常の動作では、ＰＤＦファイルのトレイラーＰＴまでを読み込んだ上で、ＰＤＦファイルに係る画像処理を開始する。
【００６２】
このようなＰＤＦの言語仕様上、オブジェクト情報はページ順に並んでいなくてもよく、オブジェクト番号も連番である必要はない。例えば、図９において、「5 0 obj,18 0 obj,7 0 obj」は、それぞれ文書における５ページ目、１ページ目、又は３ページ目を描画するためのオブジェクト情報であってもよい。オブジェクト情報が整列されていないので、画像形成装置２０は、オブジェクト情報におけるどこまでが何ページ目か相互参照表ＰＲなしに判断できない。
【００６３】
図１０は、ボディに存在するオブジェクトがどのような論理構造になっているかを簡略化して示す図の一例である。説明の便宜上、ページツリーオブジェクトが１つの例で記載しているが、言語仕様としてはページツリーオブジェクトにも階層構造を持たせる事ができる。
【００６４】
一番上にドキュメントカタログのオブジェクト番号（Root）の位置を示すトレイラー辞書(トレイラー辞書のみ、図９のトレイラー部分に定義される)が存在し、それにより論理構造のルートとなるドキュメントカタログと呼ばれるオブジェクトが指定される。ドキュメントカタログはページツリーオブジェクトを指定するので、ページツリーオブジェクトが各ページの情報を示すページオブジェクトを指示する。
【００６５】
ページオブジェクトは、フォントや画像等のリソースを定義するオブジェクトや、描画情報が記載されるコンテントストリームを有する。
【００６６】
このような構成のため、ページツリーオブジェクトがないと各ページがどのオブジェクト情報を有するかを特定できない。
【００６７】
＜動作手順＞
続いて、図１１を用いて印刷システム１における処理について説明する。図１１は、ＰＤＦファイルを生成する処理の一例を示すシーケンス図である。
【００６８】
＜＜集約印刷の設定がない場合＞＞
比較のため、まず、集約印刷の設定がない印刷要求が端末１０から送信された場合を説明する。以下、端末１０による要求に基づいて、クラウドサービス５０において管理されている文書ファイルを画像形成装置２０へ送信し、画像形成装置２０において印刷する一例の処理について説明する。
【００６９】
ただし、端末１０が、クラウドサービス５０と同様の機能を有している場合、端末１０から直接、画像形成装置２０へ印刷要求を送信することもできる。この場合、図１１におけるクラウドサービス５０の処理は、端末１０の処理に置き換えられる。また、画像形成装置２０による印刷要求に基づいて、クラウドサービス５０から画像形成装置２０へ文書ファイルを送信し、画像形成装置２０において印刷処理を実行してもよい。この場合、図１１における端末１０の処理は画像形成装置２０の処理に置き換えられる。
【００７０】
端末１０は、ユーザによる印刷要求の入力に応じて、通信ネットワーク２を介してクラウドサービス５０へ印刷要求を送信する（ステップＳ１）。印刷要求には、印刷するファイルのファイル名が含まれている。以下、印刷するファイルがＰＤＦファイルである場合について説明する。
【００７１】
クラウドサービス５０の通信部５１００は、端末１０によって送信された印刷要求を受信する。クラウドサービス５０のファイル生成部５２００は、印刷要求に含まれるファイル名のＰＤＦファイルを記憶部５０００から読み込む（ステップＳ１１）。
【００７２】
クラウドサービス５０のファイル生成部５２００は、読み込まれたＰＤＦファイルのヘッダに、複数のＰＤＦファイルに分割可能なファイルであることを特定するための判断情報として、予め定められたコメントを挿入する（ステップＳ１２）。
【００７３】
図１２は、ＰＤＦファイルの構造の一例を示す概念図である。図１２（Ａ）は、判断情報（%Enable Page Split Mode）が挿入されたヘッダＰＨｉを示す。ただし、図１２（Ａ）の判断情報は一例に過ぎず、分割可能なファイルであることが画像形成装置で検出できればよい。
【００７４】
図１１に戻って説明する。続いて、クラウドサービス５０のファイル生成部５２００は、ステップＳ１１で読み込まれたＰＤＦファイルに含まれる各ページのデータについて、以下のループ処理を繰り返す。
【００７５】
まず、クラウドサービス５０のファイル生成部５２００は、ステップＳ１１で読み込まれたＰＤＦファイルを検索して、文書の１ページ目を描画するためのオブジェクト情報を読み込む（ステップＳ２１）。このとき、検索されたオブジェクト情報が圧縮されていた場合でも、ファイル生成部５２００は、オブジェクト情報を解凍せず、圧縮されたままの状態で読み込む。
【００７６】
クラウドサービス５０のファイル生成部５２００は、ステップＳ２１で読み込まれた１ページ目を描画するためのオブジェクトを、ＰＤＦファイルにおけるボディＰＢの先頭側に移動することにより、ボディＰＢの記述がページ順になるように整列する（ステップＳ２２）。
【００７７】
クラウドサービス５０のファイル生成部５２００は、ＰＤＦファイルにおけるボディＰＢに、１ページ目のオブジェクトの境界位置を示す境界情報（区切り位置を示すページ区切情報ともいう）を付加する（ステップＳ２３）。境界情報を付加する方法の２つの例について説明する。
【００７８】
境界情報を付加する１つ目の方法では、予め定められたオブジェクト情報を境界情報として用いる。図１２（Ｂ−１）は、ＰＤＦファイルのボディＰＢを示す概念図である。図１２（Ｂ−２）は、ＰＤＦファイルのｎページ目のオブジェクト群を示す概念図である。
【００７９】
図１２（Ｂ−１）及び（Ｂ−２）の例では、「/Pageオブジェクト」を境界情報として用いる。すなわち、クラウドサービス５０のファイル生成部５２００は、図１２（Ｂ−１）のボディＰＢにおける「/Pagesオブジェクト」から、ｎページにかかる「/Pageオブジェクト」を抽出して、ｎページ目のオブジェクト群ＰＢｎの後端に挿入することにより（図１２（Ｂ−２）参照）、「/Pageオブジェクト」を境界情報とする。なお、ファイル生成部５２００は、ｎページにかかる「/Pageオブジェクト」を、ｎページ目のオブジェクト群ＰＢｎの先端に挿入することにより、「/Pageオブジェクト」を境界情報としてもよい。なお、「/Pageオブジェクト」は、ＰＤＦの言語仕様で定義されているものである。ファイル生成部５２００は、「/Pageオブジェクト」以外の「/Contentsオブジェクト」などの他のオブジェクト情報を、オブジェクト群の先端又は後端に挿入することで境界情報としてもよい。
【００８０】
境界情報を付加する２つ目の方法では、ページの区切りを示すコメントを境界情報として用いる。ページの区切りを示すコメントは、ＰＤＦ言語において、ページの描画内容に直接影響を与えないコメントである。図１２（Ｃ−１）及び（Ｃ−２）は、ページの区切りを示すコメントが付加されたＰＤＦファイルのボディの概念図である。
【００８１】
図１２（Ｃ−１）の例では、各ページのオブジェクト群の後端に、ページの区切りを示すコメント「%End Page」が付加されている。図１２（Ｃ−２）の例では、各ページのオブジェクト群の先端に、ページの区切りを示すコメント「%Start Page」が付加されている。画像形成装置２０は、ＰＤＦファイルを読み込むときに、これらの判断情報によりページ区切り位置を判断できるので、シリアライズされたＰＤＦファイルの末尾のトレイラーＰＴと相互参照表ＰＲを読み取らなくても（全体を読み取らなくても）ＰＤＦファイルの１ページ目から分割ファイルを作成できる。
【００８２】
ステップＳ２３の処理が完了すると、クラウドサービス５０のファイル生成部５２００は、ステップＳ１１で読み込まれたＰＤＦファイルにおいて、未処理のデータがあるか判断する。未処理のデータがある場合、ファイル生成部５２００は、未処理のデータに対しループ処理を繰り返す。このとき、クラウドサービス５０のファイル生成部５２００は、ステップＳ２１で読み込まれたｎページ目のオブジェクト群を、ＰＤＦファイルにおけるボディＰＢのｎ−１ページ目のオブジェクト群の後に挿入することにより、ボディＰＢの記述がページ順になるように整列する（ステップＳ２２）。すなわち、シリアライズする。
【００８３】
ループ処理が完了してから、クラウドサービス５０のファイル生成部５２００は、境界情報が付加されたＰＤＦファイルに対し、ファイル構造情報を追加して、更新する（ステップＳ３１）。ファイル構造情報は、ＰＤＦ言語で規定されているページツリー、ドキュメントカタログ、相互参照表ＰＲ、トレイラーＰＴなどを含む。ファイル構造情報が追加されたファイルは、ＰＤＦ言語仕様を満たすものとなる。
【００８４】
クラウドサービス５０のファイル生成部５２００は、印刷ジョブに必要なページツリーを生成して追加する。この場合、ページツリーのオブジェクト番号には、予め定められた値が割り当てられる。ページツリーには、ページ数と、ページを描画するためのオブジェクトへの参照が含まれる。
【００８５】
クラウドサービス５０のファイル生成部５２００は、印刷ジョブに必要なジョブ情報としてドキュメントカタログを生成して生成過程にあるＰＤＦファイルに追加する。ドキュメントカタログのオブジェクト番号は予め定められた値が割り当てられる。印刷ジョブに必要なジョブ情報には、ページツリーのオブジェクトへの参照が含まれる。上記のように、ページツリーのオブジェクトのオブジェクト番号は予め定められているので、ページツリーへの参照は予め定められた値となる。
【００８６】
クラウドサービス５０のファイル生成部５２００は、相互参照表ＰＲを生成して、境界情報が付加された生成過程にあるＰＤＦファイルにおけるボディＰＢの後に追加する。相互参照表ＰＲは、ボディＰＢにおける各オブジェクトの位置をオフセット情報として表したアドレス情報である。ページデータ生成部２２１０は、先に生成したボディＰＢから、各オブジェクトを検索し、検索された各オブジェクトの位置を示すアドレス情報をオフセット情報として記述することで、相互参照表ＰＲを生成する。
【００８７】
クラウドサービス５０の通信部５１００は、ファイル構造情報が追加されたＰＤＦ形式のファイルを含む印刷要求を画像形成装置２０へ送信する（ステップＳ４１）。ファイル構造情報が追加されたＰＤＦ形式のファイルを変換ファイルと表す。
【００８８】
クラウドサービス５０のファイル生成部５２００は、変換ファイルを記憶部５０００に記憶する（ステップＳ４２）。変換ファイルは、ＰＤＦの言語仕様にしたがっているので、記憶部５０００に記憶されている変換ファイルをビュアーにより読み出して、文書の全体を閲覧することができる。
【００８９】
＜＜集約印刷の設定がある場合＞＞
続いて、印刷要求に集約印刷の設定が含まれる場合にクラウドサービスが生成するＰＤＦファイルについて説明する。
【００９０】
図１３は、ＰＤＦファイルを生成する処理の一例を示すシーケンス図である。なお、図１３の説明では図１１との相違を主に説明する。
【００９１】
端末１０は、ユーザによる印刷要求の入力に応じて、通信ネットワーク２を介してクラウドサービス５０へ印刷要求を送信する（ステップＳ１）。この印刷要求には、4in1などの集約印刷の設定が含まれている。
【００９２】
続く、ステップＳ１１、Ｓ１２の処理は図１１と同様でよい。ただし、クラウドサービス５０のファイル生成部５２００は、ＰＤＦファイルを読み込む際に集約印刷の設定も読み込む。
【００９３】
次に、ファイル生成部５２００はどのオブジェクトが何ページ目かという情報(/pages）を出力バッファに入れる（Ｓ１３）。このような情報はページツリーオブジェクトに含まれる。これにより各ページとこのページに含まれるオブジェクトの対応が特定される。本実施形態ではシリアライズされても、ページ順にオブジェクトが整列されるとは限らないので、ボディよりもＰＤＦファイルの先頭側にページツリーオブジェクトが必要になる。ページツリーオブジェクトがボディよりも末尾側にあると、画像形成装置２０がＰＤＦファイルの全体を受信するまで印刷を開始できない。
【００９４】
どのオブジェクトが何ページ目かという情報はページツリーと呼ばれ、ＰＤＦファイルのページツリーオブジェクトに記述されている。ページツリーオブジェクトは「/pages」という記述を有する。出力バッファとは、ＰＤＦファイルを生成するために一時的にファイルのオブジェクトをオブジェクトの順番に保存するメモリである。
【００９５】
続く、ステップＳ２１〜Ｓ２３は面付け対象ページ群に対し繰り返して実行される。例えば、4in1の集約印刷の場合、１〜４ページ、５〜８ページ、…のように４ページ分のオブジェクトに対し実行される。
【００９６】
まず、クラウドサービス５０のファイル生成部５２００は、ステップＳ１１で読み込まれたＰＤＦファイルを検索して、面付け対象ページ群（例えば１〜４ページ目）を描画するためのオブジェクト情報を読み込む（ステップＳ２１）。
【００９７】
次に、クラウドサービスのページソート部５３００は、面付け対象ページ群（例えば１〜４ページ）の各ページサイズを算出する（ステップＳ２１−２）。各ページサイズは各ページが含むオブジェクトのバイト数であるので、相互参照表のバイトオフセットにより求めることができる。相互参照表にはオブジェクトが何バイト目から始まるかが記述されているので、バイトオフセットの差分が各ページのバイト数（ページサイズ）である。
【００９８】
続く、ステップＳ２２，Ｓ２３は図１１と同様の処理であるが、Ｓ２２，Ｓ２３は面付け対象ページ群に含まれる各ページに対し繰り返し実行される。
【００９９】
クラウドサービス５０のファイル生成部５２００は、ステップＳ２１−２で算出した各ページサイズの小さい順にこのページを描画するためのオブジェクトを、ＰＤＦファイルにおけるボディＰＢの先頭側に移動することにより、ボディＰＢの記述がページサイズの順番になるように整列する（ステップＳ２２）。つまり、面付け対象ページ群が４ページなら、１〜４ページのオブジェクトに着目し、１〜４ページのうちページサイズの小さい順にオブジェクトを整列する。したがって、ＰＤＦファイルの全体のオブジェクトをページ順に整列する処理と、面付け対象ページ群内でページサイズの小さい順にオブジェクトを整列する２つの処理が含まれている。
【０１００】
クラウドサービス５０のファイル生成部５２００は、ＰＤＦファイルにおけるボディＰＢに、各ページのオブジェクトの境界位置を示す境界情報を付加する（ステップＳ２３）。つまり、面付け対象ページ群内で各ページの境界が設定される。境界情報は図１１と同様でよい。
【０１０１】
以降のステップＳ３１、Ｓ４１，Ｓ４２の処理については図１１と同様でよい。ページツリーオブジェクトは設定済みなのでステップＳ３１では追加されないくてよいが、追加されても構わない。
【０１０２】
＜面付けが必要なＰＤＦファイルのシリアライズの一例＞
図１４は、図１３のようなシリアライズの処理により作成されたＰＤＦファイルの一例である。なお、図１４の説明では、4in1の面付け対象ページ群のうち、４ページ目、２ページ目、３ページ目、１ページ目の順にページサイズが小さいものとする。
【０１０３】
図１４のＰＤＦファイルはファイルの構成を先頭から順番に示している。
ＰＤＦヘッダ：図１２（Ａ）のヘッダＰＨである。
高速ＰＤＦ識別子：判断情報に相当し、図１２（Ａ）の「%Enable Page Split Mode」である。
ページツリー：ページツリーオブジェクトである。
４ページ目オブジェクト群：最もページサイズが小さい４ページ目のオブジェクト群である。
ページ区切り：４ページ目のオブジェクト群と２ページ目のオブジェクト群の境界を示す境界情報である。境界情報は、例えば、図１２（Ｃ−１）又は（Ｃ−２）の「%End Page」「%Start Page」であるがこれらには限られない。
【０１０４】
３ページ目、２ページ目、１ページ目の構成も同様であり、ページとページの境界（データとデータの間）にページ区切り（境界情報）が設定される。
【０１０５】
図１４ではｎページ目まで存在するが、面付け対象ページ群の４ページごとに、ページサイズでソートされた各ページのオブジェクトがページ区切りで区切られてＰＤＦファイルに設定されている。図示するように、集約印刷に関する設定（例えば4in1など）はＰＤＦファイルには含まれない。集約印刷であることの判断はＰＤＦファイルからではなくＰＪＬなどに基づいて画像形成装置２０が行う。
【０１０６】
＜シリアライズされたＰＤＦファイルの印刷＞
続いて、図１５を用いて、印刷要求を受信した画像形成装置２０の処理について説明する。図１５は、画像形成装置２０における印刷処理の一例を示すシーケンス図である。
【０１０７】
画像形成装置２０の通信部２１００は、端末１０によって送信されたクラウドサービス５０からの印刷要求の受信を開始すると、印刷要求に含まれるＰＤＦファイルを、バッファとしてＲＡＭ２０３に順次記憶（バッファリング）する。画像形成装置２０は、バッファリングの完了を待機することなく、以下の印刷処理を継続する。
【０１０８】
通信部２１００は、印刷を開始するための印刷開始通知をページデータ生成部２２１０へ送信する（ステップＳ５２）。
【０１０９】
ページデータ生成部２２１０は、印刷開始通知を受信すると、印刷要求に含まれるＰＤＦファイルから、印刷する各ページのデータが分割されたＰＤＦファイル（分割ファイル）を生成可能であるか判断する（ステップＳ５３）。例えば、印刷要求に含まれるＰＤＦファイルのページ数が１０であり、全ページを印刷する場合、ページデータ生成部２２１０は、１０個のページごとの分割ファイルを生成可能であるか判断する。
【０１１０】
ページデータ生成部２２１０は、受信バッファにおけるヘッダＰＨｉの部分を読み込んだ時点で、判断情報を検知すれば、分割ファイルを生成可能であると判断する。
【０１１１】
ステップＳ５３において分割ファイルを生成可能でないと判断された場合、ページデータ生成部２２１０はＰＤＦファイルの全体を印刷データ処理部２２２０に送信する（ステップＳ５４）。
【０１１２】
印刷データ処理部２２２０は従来と同様にＰＤＦファイルの末尾から読み取って構造を解析し（パースし）、プロッタエンジン２１１に印刷を指示する（ステップＳ５５）。このように、画像形成装置２０は、ヘッダに判断情報がない場合、最後尾まで受信後に相互参照表を参照して印刷を行うことができるため、クラウドサービス５０は送信先の画像形成装置がシリアライズされたＰＤＦファイルに対応している画像形成装置か否かを意識する必要がない。
【０１１３】
ステップＳ５３において、分割ファイルを生成可能であると判断された場合、画像形成装置２０のページデータ生成部２２１０は、ＰＤＦファイルにおける各ページのオブジェクトが受信されるたびに、１物理ページごとの分割ファイルを生成する（ステップＳ６１）。ステップＳ６１の処理については図１６を用いて詳細に説明する。
【０１１４】
１物理ページ分の分割ファイルが完成すると、ページデータ生成部２２１０は、生成された分割ファイルを印刷データ処理部２２２０へ送信する（ステップＳ６２）。
【０１１５】
印刷データ処理部２２２０は、受信された分割ファイルを解析し、データにアクセスしながらフレームメモリに１ページ分の画像を描画することで印刷画像を生成する。印刷データ処理部２２２０は、印刷画像を含む印刷指示を印刷部２２３０へ送信して、印刷処理を実行させる（ステップＳ６３）。印刷部２２３０は印刷処理の指示を受けると、プロッタエンジンを制御して用紙に１ページの印刷画像を転写し、排紙する。ステップＳ６３の処理については図１７を用いて詳細に説明する。
【０１１６】
ページデータ生成部２２１０は、印刷対象のページのデータのうち、分割ファイルの生成が完了していない未処理のページのデータがバッファに含まれているか判断する。未処理のページのデータが含まれていると判断された場合には、画像形成装置２０は、ステップＳ６１乃至Ｓ６３の処理を繰り返す。このようにして、印刷する各ページの画像コンテンツに対応する分割ファイルが生成され、１物理ページずつ印刷処理が実行される。
【０１１７】
印刷対象のすべてのページの印刷処理が完了してから、ページデータ生成部２２１０は、バッファとして残っている情報を削除する（ステップＳ６４）。これにより、バッファがクリアされた状態で、次のデータの受信待ち状態に遷移するので、バッファに必要な容量は、１ページ分の受信データで足りることになる。
【０１１８】
＜＜分割ファイルの生成＞＞
図１５のステップＳ６１の処理について図１６を用いて詳細に説明する。図１６は、分割ファイルを生成する処理の一例を示すフロー図である。なお、ステップＳ６１の処理は、クラウドサービス５０から送られてきたＰＤＦファイルの受信の完了を待つことなく実行される。
【０１１９】
ページデータ生成部２２１０は送信されたＰＤＦファイル及び印刷設定を読み込んで集約印刷の設定を確認する（Ｓ６１−１）。
【０１２０】
ページデータ生成部２２１０はＰＤＦファイルからＰＤＦヘッダ、高速ＰＤＦ識別子（判断情報）、及びページツリーオブジェクトを退避する（Ｓ６１−２）。面付け対象ページ群ごとにこれらを追加するためである。
【０１２１】
ステップＳ６１−３は面付け対象ページ群ごとに実行される。ページデータ生成部２２１０はＰＤＦヘッダ、高速ＰＤＦ識別子、及び、ページツリーオブジェクトを１物理ページのＰＤＦファイルの先頭に設定する（Ｓ６１−３）。ＰＤＦヘッダと高速ＰＤＦ識別子は退避したものと同じでよい。ページツリーオブジェクトは面付け対象ページ群を指定するため、１〜４ページ、５〜８ページのように１物理ページごとに異なる内容になる。
【０１２２】
ＲＡＭ２０３には、通信部２１００によって受信されたＰＤＦファイルの一部が、バッファとして順次記憶される。ページデータ生成部２２１０は、バッファをレコード（オブジェクト）ごとに読み込む（ステップＳ６１−４）。
【０１２３】
ページデータ生成部２２１０は、読み込まれたレコードが、相互参照表ＰＲ、ドキュメントカタログ、又はトレイラーＰＴに該当するか判断する（ステップＳ６１−５）。
【０１２４】
ステップＳ６１−２において、レコードが、相互参照表ＰＲ、ドキュメントカタログ、又はトレイラーＰＴのいずれかに該当すると判断された場合（Ｙｅｓ）、ページデータ生成部２２１０は、読み込まれたレコードを削除する（ステップＳ６１−６）。相互参照表ＰＲ、ドキュメントカタログ、及びトレイラーＰＴの各レコードは、後述の処理で、分割ファイルを作成する際に、新たに生成されるためである。
【０１２５】
ステップＳ６１−５において、該当しないと判断された場合（Ｎｏ）、ページデータ生成部２２１０は、読み込まれたレコードを、記憶部２０００に記憶する（ステップＳ６１−７）。
【０１２６】
ページデータ生成部２２１０は、ステップＳ６１−４乃至Ｓ６１−７の処理を、１ページ分のレコード、すなわちオブジェクトを読み終えるまで繰り返す。なお、ページデータ生成部２２１０は、ボディＰＢにおける境界情報を読み込むことで、１ページ分のレコードを読み終えたか判断することができる。
【０１２７】
また、ページデータ生成部２２１０は、ステップＳ６１−４乃至Ｓ６１−７の処理を、面付け対象ページ群のオブジェクトを読み終えるまで繰り返す。４in1の場合は４ページ分のオブジェクトを読み終えるまで繰り返す。
【０１２８】
上記のループ処理が完了した時点で、記憶部２０００にはＰＤＦファイルから抽出された面付け対象ページ群のレコードのうち、相互参照表ＰＲ、ドキュメントカタログ、又はトレイラーＰＴが除かれた各レコード、すなわち１ページを描画するための各データを含むオブジェクトが記憶される。ページデータ生成部２２１０は、記憶部２０００に記憶されたレコードを、分割ファイルにおけるボディとする。
【０１２９】
このボディには、ステップＳ６１−６の処理で読み捨てられる相互参照表ＰＲ、ドキュメントカタログ、及びトレイラーＰＴなどが含まれない。このボディを分割ファイルとして、印刷データ処理部２２２０に送信しても、ＰＤＦ言語に準拠していないため、印刷データ処理部２２２０は、印刷処理を実行できない。そこで、ページデータ生成部２２１０は、ボディに、必要な情報を追加して、ＰＤＦ言語仕様に基づいたＰＤＦファイルを完成させる。
【０１３０】
ページデータ生成部２２１０は生成されたドキュメントカタログをボディの後端に追加する（ステップＳ６１−８）。ドキュメントカタログはページツリーオブジェクトを指定するが、本実施形態ではページツリーオブジェクトはボディよりも前方に配置されるので、ドキュメントカタログは参照されない場合がある。
【０１３１】
続いて、ページデータ生成部２２１０は、相互参照表を生成して、生成過程にある分割ファイルにおけるボディの後に追加する（ステップＳ６１−９）。
【０１３２】
ページデータ生成部２２１０は、分割ファイルにおけるトレイラーを生成し、生成過程にある分割ファイルにおける相互参照表ＰＲの後に追加することで、ＰＤＦ言語に従った分割ファイルを完成させる（ステップＳ６１−１０）。
【０１３３】
ステップＳ６１−８乃至Ｓ６１−１０の処理は、図１３のステップＳ３１のファイル構造情報を追加する処理と同様である。
【０１３４】
ページデータ生成部２２１０は、ＰＤＦファイルの最後まで終了したか否かを判断し（ステップＳ６１−１１）、終了していなければ面付け対象ページ群に対するループ処理から繰り返す。
【０１３５】
以上の処理で面付け対象ページ群ごとに１物理ページのＰＤＦファイルが作成される。画像形成装置２０は１物理ページずつ印刷する。
【０１３６】
＜＜印刷指示＞＞
図１５のステップＳ６３の処理について図１７を用いて詳細に説明する。図１７は、分割ファイルを印刷する処理の一例を示すフロー図である。
【０１３７】
まず、画像形成装置２０の印刷データ処理部２２２０は、どのオブジェクトが何ページ目かという情報(ページツリーオブジェクト)をパースする（ステップＳ６３−１）。
【０１３８】
次に、ＰＤＦファイルの先頭からページ（オブジェクト）の区切り(%PageEndなど)までパースする（ステップＳ６３−２）。この時点でこのページが何ページ目かわかる。
【０１３９】
次に、印刷データ処理部２２２０はページツリーオブジェクトに基づいて、パースしたページが何ページ目なのか判断する（ステップＳ６３−３）。これは、パースしたページを元の文書のページ順に、１物理ページに配置するためである。
【０１４０】
印刷データ処理部２２２０は、パースしたページを１物理ページの適切な位置(4in1であれば、左上/右上/左下/右下のどこか)に描画する（ステップＳ６３−４）。例えば、１、５、９…ページ目であれば左上、例えば、２、６、１０…ページ目であれば右上、例えば、３、７、１１…ページ目であれば左下、例えば、４、８、１２…ページ目であれば右下に配置する。こうすることで、ＰＤＦファイル内の配置順とは関係なく、元の文書のページ順に、各ページを配置できる。
【０１４１】
印刷データ処理部２２２０は面付け対象ページ群が終了したか否かを判断し（ステップＳ６３−５）、終了していなければステップＳ６３−２以降の処理を繰り返す。終了した場合は、印刷部２２３０は１物理ページを排紙する（Ｓ６３−６）。
【０１４２】
このように、印刷データ処理部２２２０は、面付け対象ページ群がデータサイズの小さい順に配置されたＰＤＦファイルをページ区切りに基づいて先頭から描画するので、4in1の集約印刷だとしても４ページ分のスプールを待つことなく、１ページ分のスプールが完了すれば描画を開始でき、１物理ページの排紙までの時間を短縮できる。
【０１４３】
なお、画像形成装置２０が集約印刷を含む印刷設定を受け付ける機能を有していてもよい。この場合、ユーザが新たに設定した集約印刷の設定で印刷される。
【０１４４】
＜まとめ＞
以上説明したように、本実施例の印刷システム１は、面付け対象ページ群においてページ間にページ区切りを設定し、データサイズの小さい順にソートするので、スプールと描画を並列に実行できるため、印刷開始までの時間を短縮できる。
【実施例２】
【０１４５】
本実施例では、ページサイズに加えて各ページの描画時間を考慮し、プリンタが効率よく分割できる並びにページをシリアライズしたＰＤＦファイルを生成する印刷システム１について説明する。
【０１４６】
なお、本実施例においては、上記の実施例にて説明した図６、図７のハードウェア構成図、及び、図８に示した機能ブロック図を援用できるものとして説明する。
【０１４７】
図１８は、画像を印刷する処理の一例を示すシーケンス図である。なお、図１８の説明では図１３との相違を主に説明する。
【０１４８】
ステップＳ１、Ｓ１１〜Ｓ１３、Ｓ２１，Ｓ２１−２の処理は図１３と同様である。ステップＳ２１−２で面付け対象ページ群の各ページサイズを算出すると、ステップＳ２１−３において、クラウドサービス５０のページソート部５３００は面付け対象ページ群で各ページの共通オブジェクト数と描画時間を算出する（ステップＳ２１−３）。ページの共通オブジェクトとは、ページが異なっても共通に描画されるオブジェクト（例えばロゴマーク、共通の画像、ヘッダなどである）。描画時間は、オブジェクトの種類と各オブジェクトの数から算出される。例えば、１文字、単位面積当たりの画像、及び、１図形の描画に必要な時間が決まっており、各オブジェクトの描画時間を文字数、画像の大きさ、図形の数から算出する。
【０１４９】
次に、ファイル生成部５２００はオブジェクトを整列するが、この処理の詳細を図１９に基づいて説明する。図１９は、面付け対象ページ群のページの整列処理を説明するフローチャート図の一例である。
【０１５０】
まず、ファイル生成部５２００はページごとに面付け対象ページ群の先頭か否かを判断する（ステップＳ２１−３１）。面付け対象ページ群の先頭のページは描画時間を考慮しないためである。面付け対象ページ群の先頭のページは、例えば4in1であれば４ページごとのデータサイズに基づく先頭のページである。
【０１５１】
面付け対象ページ群の先頭のページでない場合（ステップＳ２１−３１のＹｅｓ）、ファイル生成部５２００は最もサイズの小さいページを出力バッファに入れる（ステップＳ２１−３２）。
【０１５２】
面付け対象ページ群の先頭のページの場合（ステップＳ２１−３１のＮｏ）、ファイル生成部５２００は共通オブジェクトの描画時間が長いページ同士が隣接するように出力バッファに入れる（ステップＳ２１−３３）。
【０１５３】
例えば、２ページ目で利用する描画オブジェクトを４ページ目でも利用しているケースにおいて、２ページ目の後に４ページ目を配置した方が、２ページ目で描画したオブジェクトを４ページ目で使い回せるため、描画時間が短縮できる。また、２ページ目と４ページ目に共通のオブジェクトの描画時間が１０ミリ秒で、１ページ目と３ページ目に共通のオブジェクトの描画時間が２０ミリ秒の場合、１ページ目と３ページ目を隣接させることが優先される。先頭のページはページサイズで決まってしまうので、先頭のページと共通のオブジェクトを有するページが優先される場合もある。
【０１５４】
以降は図１３と同様に、ページ毎に境界情報が付加され、ファイル構造情報が追加され、シリアライズされたＰＤＦファイルが生成される。
【０１５５】
なお、画像形成装置２０側の処理は実施例１と同様になる。
【０１５６】
＜シリアライズされたＰＤＦファイル＞
図２０は、シリアライズされたＰＤＦファイルの一例を示す図である。なお、図２０の説明では主に図１４との相違を説明する。ＰＤＦヘッダからページツリーまでは図１４と同様でよい。
【０１５７】
図２０では、４<２<３<１の順でページサイズが大きくなる。１ページ目の印刷開始まで（１ｓｔプリント）の時間を最も効果的に高速化するため先頭のページはページサイズが一番小さいページ(今回の例では４ページ目)である。
【０１５８】
２ページ以降は、描画時間が短くなる並びにする。図２０では、４ページ目と１ページで多くの共通オブジェクトがあり、４ページ目の次に１ページ目を印刷すると描画時間が短縮できるため、４ページ目の後に１ページ目が配置されている。１ページ目の後は、３ページ目と２ページ目のうち共通のオブジェクトがある方が先に配置される。共通のオブジェクトがない場合はページサイズの順で配置される。
【０１５９】
＜シリアライズされたＰＤＦファイルの印刷性能＞
図２１は、本実施例において、シリアライズされたＰＤＦファイルの印刷性能を説明する図の一例である。図２１（ａ）は実施例１の方法でシリアライズされたＰＤＦファイルの印刷時のタイムチャート図を示し、図２１（ｂ）は本実施例の方法でシリアライズされたＰＤＦファイルのタイムチャート図を示す。
【０１６０】
図２１（ａ）では２ページ目の描画に２５秒かかっているが、図２１（ｂ）では２ページ目の描画に１５秒しかかからない。これは、４ページ目と１ページ目で多くの共通オブジェクトを利用しており、続きで印刷する事で描画時間を短縮できるためである。
【０１６１】
このように先頭のページは描画を早く開始するため、最小のページサイズのページを配置して、その後に続くページは描画時間で決定することで、実施例１よりも１ページ目の印刷開始まで（１ｓｔプリント）の時間を短縮できる。
【０１６２】
＜まとめ＞
以上説明したように、本実施例の印刷システム１は、面付け対象ページ群において先頭ページをデータサイズの最も小さいページに配置し、以降のページを共通オブジェクトの描画時間が長いページ同士が隣接するように配置するので、描画時間を短縮し、印刷開始までの時間を短縮できる。
【実施例３】
【０１６３】
実施例１は、どのオブジェクトが何ページ目かという情報(ページツリーオブジェクト))を、ＰＤＦファイルの先頭に配置したが、本実施例では面付け単位でページツリーオブジェクトを配置する印刷システムについて説明する。
【０１６４】
図２２は、ＰＤＦファイルを生成する処理の一例を示すシーケンス図である。なお、図２２の説明では図１３との相違を主に説明する。
【０１６５】
図２２の処理では、ステップＳ１３の「どのオブジェクトが何ページ目かという情報(/pages）を出力バッファに入れる」処理が面付け対象ページ群のループ内で実行されている。したがって、面付け単位でページツリーオブジェクトが配置される。以降の処理は図１３と同様でよい。
【０１６６】
図２３は、面付けが必要なＰＤＦファイルのシリアライズの一例を示す図である。図２３では図１４との相違を主に説明する。図２３のＰＤＦファイルは、１つ目のページツリーオブジェクトの後に４ページ目〜１ページ目のオブジェクトがあり、その次に更に２つめのページツリーオブジェクトが配置されている。すなわち、面付け対象ページ群ごとにページツリーオブジェクトが配置される。
【０１６７】
先頭のページツリーオブジェクトはルートのページツリーオブジェクトであり、２つ目以降のページツリーオブジェクトは、ルートのページツリーオブジェクトの子ノードとなるページツリーである。ＰＤＦファイルでは仕様として、ページツリーオブジェクトの子ノードに他のページツリーオブジェクトを指定することができる。
【０１６８】
このようにページツリーオブジェクトを配置することで、先頭のページツリーオブジェクトのサイズを小さくでき、１物理ページ分のＰＤＦファイルを受信する時間を短くできる。
【０１６９】
なお、本実施例のように、面付け単位でＰＤＦファイルにページツリーオブジェクトが配置された場合、図１６のＰＤＦファイルの生成処理ではステップＳ６１−３の処理においてページツリーオブジェクトを設定しなくてよい。ステップＳ６１−５、６１−６でページツリーオブジェクトは読み捨てられないので、ＰＤＦファイルに設定される。
【０１７０】
＜まとめ＞
本実施例によれば、実施例１の効果に加え、１物理ページ分のＰＤＦファイルを受信する時間を短くできる。
【０１７１】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１７２】
例えば、本実施形態ではＰＤＦファイルを例にして説明したが、ランダムアクセスファイルであれば好適に適用できる。例えば、ＸＰＳファイルでもよい。
【０１７３】
また、図８などの構成例は、クラウドサービス５０及び画像形成装置２０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。クラウドサービス５０及び画像形成装置２０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１７４】
なお、印刷システム１が複数のクラウドサービス５０を有していてもよく、クラウドサービス５０の機能が複数のサーバに分散して設置されていてもよい。
【０１７５】
なお、ファイル生成部５２００は生成手段の一例であり、通信部５１００は送信手段の一例であり、ページソート部５３００はソート手段の一例であり、通信部２１００は受信手段の一例であり、印刷データ処理部２２２０は処理手段の一例である。
【符号の説明】
【０１７６】
１            印刷システム
２            通信ネットワーク
１０          端末
２０          画像形成装置
５０          クラウドサービス
【先行技術文献】
【特許文献】
【０１７７】
【特許文献１】特開２００４−３４８４２３号公報
【図１】
2020042630.tif 000003
【図２】
2020042630.tif 000004
【図３】
2020042630.tif 000005
【図４】
2020042630.tif 000006
【図５】
2020042630.tif 000007
【図６】
2020042630.tif 000008
【図７】
2020042630.tif 000009
【図８】
2020042630.tif 000010
【図９】
2020042630.tif 000011
【図１０】
2020042630.tif 000012
【図１１】
2020042630.tif 000013
【図１２】
2020042630.tif 000014
【図１３】
2020042630.tif 000015
【図１４】
2020042630.tif 000016
【図１５】
2020042630.tif 000017
【図１６】
2020042630.tif 000018
【図１７】
2020042630.tif 000019
【図１８】
2020042630.tif 000020
【図１９】
2020042630.tif 000021
【図２０】
2020042630.tif 000022
【図２１】
2020042630.tif 000023
【図２２】
2020042630.tif 000024
【図２３】
2020042630.tif 000025