(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-20
(45)【発行日】2022-09-29
(54)【発明の名称】情報処理装置、画像形成装置、印刷システム、プログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20220921BHJP
B41J 5/30 20060101ALI20220921BHJP
【FI】
G06F3/12 341
B41J5/30 Z
G06F3/12 312
G06F3/12 350
G06F3/12 345
(21)【出願番号】P 2018170601
(22)【出願日】2018-09-12
【審査請求日】2021-07-12
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】飯田 浩一
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2004-348622(JP,A)
【文献】特開2016-112822(JP,A)
【文献】特開2012-058795(JP,A)
【文献】特開2004-287763(JP,A)
【文献】特開2008-262543(JP,A)
【文献】特開2008-262546(JP,A)
【文献】特開2015-026134(JP,A)
【文献】特開2018-124869(JP,A)
【文献】特開2009-237695(JP,A)
【文献】特開2018-094750(JP,A)
【文献】特開2007-060505(JP,A)
【文献】特開2012-113356(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
B41J 5/30
(57)【特許請求の範囲】
【請求項1】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段と、を有し、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページを、データサイズの小さい順にソートすることを特徴とする情報処理装置。
【請求項2】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段と、を有し、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページをデータサイズの小さい順にソートして、最もデータサイズが小さいページのデータを前記面付け対象ページ群における先頭に配置し、
前記面付け対象ページ群の各ページに共通のデータが隣接するように前記面付け対象ページ群の残りのページのデータを配置することを特徴とする情報処理装置。
【請求項3】
前記生成手段は、各ページのデータがどのページのものかを示す情報を、前記第2の文書ファイルにおいてページのデータよりも先頭側に追加することを特徴とする
請求項1又は2に記載の情報処理装置。
【請求項4】
前記生成手段は、前記第1の文書ファイルにおけるページの順に配置された前記第2の文書ファイルであることを示す判断情報を、ページのデータよりも先頭側に追加することを特徴とする
請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記生成手段は、前記第2の文書ファイルにおいてページのデータよりも末尾側に、前記第2の文書ファイルにおける各ページのデータのアドレス情報、及び、前記アドレス情報の位置情報を追加することを特徴とする請求項
1~4のいずれか1項に記載の情報処理装置。
【請求項6】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを、情報処理装置から受信する受信手段と、
前記受信手段が受信した前記第2の文書ファイルの先頭から前記境界情報に基づいて検出されたページの描画を、検出された順に開始する処理手段と、を有し、
前記第2の文書ファイルは、面付け対象ページ群のデータが所定の基準に基づく順番で配置されており、
前記処理手段は、面付け対象ページ群のデータから前記境界情報に基づいて検出されたページの描画を、検出された順に開始し、
前記第2の文書ファイルは、各ページのデータがどのページのものかという情報を各ページのデータよりも先頭側に有しており、
前記処理手段は、面付け対象ページ群のデータから前記境界情報に基づいて検出されたページを、どのページのものかという情報に基づいて1物理ページの予め定められた位置に描画することを特徴とする画像形成装置。
【請求項7】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段と、を有し、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページを、データサイズの小さい順にソートする情報処理装置と、
前記第2の文書ファイルを情報処理装置から受信する受信手段と、
前記受信手段が受信した前記第2の文書ファイルの先頭から前記境界情報に基づいて検出されたページの描画を、検出された順に開始する処理手段と、
を有する画像形成装置と、を有することを特徴とする印刷システム。
【請求項8】
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段と、を有し、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページをデータサイズの小さい順にソートして、最もデータサイズが小さいページのデータを前記面付け対象ページ群における先頭に配置し、
前記面付け対象ページ群の各ページに共通のデータが隣接するように前記面付け対象ページ群の残りのページのデータを配置する情報処理装置と、
前記第2の文書ファイルを情報処理装置から受信する受信手段と、
前記受信手段が受信した前記第2の文書ファイルの先頭から前記境界情報に基づいて検出されたページの描画を、検出された順に開始する処理手段と、
を有する画像形成装置と、を有することを特徴とする印刷システム。
【請求項9】
情報処理装置を、
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段
と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段、として機能させ、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページを、データサイズの小さい順にソートすることを特徴とするプログラム。
【請求項10】
情報処理装置を、
面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、
前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段
と、
前記面付け対象ページ群の各ページを所定の基準でソートするソート手段、として機能させ、
前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、
前記ソート手段は、前記面付け対象ページ群の各ページをデータサイズの小さい順にソートして、最もデータサイズが小さいページのデータを前記面付け対象ページ群における先頭に配置し、
前記面付け対象ページ群の各ページに共通のデータが隣接するように前記面付け対象ページ群の残りのページのデータを配置することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、画像形成装置、印刷システム、及び、プログラムに関する。
【背景技術】
【0002】
画像形成装置は、PCL(Printer Control Language)、PS(PostScript)、又はPDF(Portable Document Format)などの各種ファイルを受信して、印刷処理を実行する。PCL及びPSなどのシーケンシャルアクセス形式のファイルについては、各ページのコンテンツがページ順に配置される。このため、画像形成装置は、シーケンシャルアクセス形式のファイルを受信したときに、データをスプールしつつ、データ順に各ページのコンテンツを読み出して印刷する。これに対し、PDFファイルなどのランダムアクセス形式のデータについては、各ページのコンテンツがページ順とは関係なく配置され得るので、画像形成装置は、受信したファイルのスプールが完了してから、ファイルの後方に配置されたデータ(PDFではオブジェクトという)の位置情報を参照し、各ページのデータにアクセスして印刷する。
【0003】
このようなPDFファイルの構造のため、PDFファイルの全体を受信しないと画像形成装置が印刷を開始できない。そこで、印刷開始までの時間を短縮する技術が考案されている(例えば、特許文献1参照。)。特許文献1には、PDFを複数のデータブロックに分割し、最後尾のデータブロックを先に画像形成装置に転送し、相互参照表を画像形成装置が受信したことを示す通知を当該画像形成装置から受信した後に最初のデータブロックから送信する。これにより、画像形成装置側では、従来は相互参照表を取得するためにPDFの最後尾まで受信した後でなければ印刷を開始できなかったが、最初に相互参照表を取得できるため、その後はデータの受信と平行して印刷を開始することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、面付けが行われるファイルの高速化については考慮されていないという問題がある。面付けとは1つの用紙(片面)に複数のページを配置することをいう。例えば集約印刷で行われる処理であり、4in1の集約印刷を例にすると、4ページ分のデータを受信してからでないと印刷に関する処理を開始できなかった。
【0005】
本発明は上記課題に鑑み、面付けが行われるファイルの印刷時間を短縮できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題に鑑み、本発明は、面付け対象ページ群の各ページのデータの境界を識別するための境界情報がページのデータの間に配置された第2の文書ファイルを第1の文書ファイルから生成する生成手段と、前記生成手段によって生成された前記第2の文書ファイルを画像形成装置へ送信する送信手段と、前記面付け対象ページ群の各ページを所定の基準でソートするソート手段と、を有し、前記生成手段は、前記面付け対象ページ群のデータを前記所定の基準の順番で配置し、前記境界情報をデータとデータの間に配置した前記第2の文書ファイルを生成し、前記ソート手段は、前記面付け対象ページ群の各ページを、データサイズの小さい順にソートすることを特徴とする情報処理装置を提供する。
【発明の効果】
【0007】
面付けが行われるファイルの印刷時間を短縮できる情報処理装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】シリアライズを模式的に説明する図の一例である。
【
図2】シリアライズされたPDFファイルの印刷性能を説明する図の一例である。
【
図3】印刷に必要なメモリサイズを説明する図の一例である。
【
図4】印刷に面付けが必要なPDFファイルの印刷時の手順を説明する図である。
【
図7】画像形成装置の一例のハードウェア構成図である。
【
図8】画像形成装置及びクラウドサービスの一例の機能ブロック図である。
【
図9】PDFファイルの構造の一例を示す概念図である。
【
図10】ボディに存在するオブジェクトがどのような論理構造になっているかを簡略化して示す図の一例である。
【
図11】PDFファイルを生成する処理の一例を示すシーケンス図である。
【
図12】PDFファイルの構造の一例を示す概念図である。
【
図13】PDFファイルを生成する処理の一例を示すシーケンス図である。
【
図14】
図13のようなシリアライズの処理により作成されたPDFファイルの一例である。
【
図15】画像形成装置における印刷処理の一例を示すシーケンス図である。
【
図16】分割ファイルを生成する処理の一例を示すフロー図である。
【
図17】分割ファイルを印刷する処理の一例を示すフロー図である。
【
図18】画像を印刷する処理の一例を示すシーケンス図である(実施例2)。
【
図19】面付け対象ページ群のページの整列処理を説明するフローチャート図の一例である。
【
図20】シリアライズされたPDFファイルの一例を示す図である。
【
図21】シリアライズされたPDFファイルの印刷性能を説明する図の一例である。
【
図22】PDFファイルを生成する処理の一例を示すシーケンス図である(実施例3)。
【
図23】面付けが必要なPDFファイルのシリアライズの一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0010】
<PDFファイルのシリアライズについて>
まず、ランダムアクセスファイルの一例としてPDFファイル(第1の文書ファイルの一例)のシリアライズについて説明する。PDFファイルではページデータのアドレス情報となる相互参照表がボディと呼ばれるページデータよりもPDFファイルの末尾側に付随するため、画像形成装置はPDFファイルのほぼ最後尾まで受信した後でなければ印刷を開始できなかった。
【0011】
そこで、本出願人は、PDFファイルをページ毎に分割して、ページ順にオブジェクト(PDFファイルにおいてページデータに相当する)が配置されたPDFファイルに変換する技術を考案した。後述するクラウドサービスは、PDFファイルのオブジェクトをページ順に並べてページの区切りに境界情報を設定する。また、ページ順にオブジェクトが配置されたPDFファイルであることを意味する判断情報をオブジェクトよりもPDFファイルの先頭側に設定する。
【0012】
クラウドサービスは、ページ順にオブジェクトが配置されたPDFファイルを通常通りにPDFファイルの先頭から画像形成装置に送信する。画像形成装置は、PDFファイルの後方にある相互参照表を参照することなく、PDFファイルの先頭から順にページの区切りに基づいてページ順に受信しながら印刷を開始することができる。以下、このようにページ順にオブジェクトが配置されたPDFファイル(第2の文書ファイルの一例)に変換することをシリアライズという。
【0013】
図1は、シリアライズを模式的に説明する図の一例である。複数ページ(3ページ)の原稿を画像形成装置がスキャンして印刷する場合を想定して説明する。
(1)画像形成装置はページ順にオブジェクトが配置され、ページごとにデータの区切り「%Page1 Object」等(境界情報)を設定したPDFファイルを生成する。なお、通常のPDFファイルと同様に、相互参照表とトレイラー等がPDFファイルの最後尾に付随している。相互参照表はオブジェクトのファイル内アドレス情報を有し、トレイラーはファイル全体のオブジェクトの数、先頭のオブジェクト(どこから処理を開始するか)、及び、相互参照表の位置情報を指定している。
(2)シリアライズされたPDFファイルを受信した画像形成装置は、判断情報(後述する「%Enable Page Split Mode」)を検出すると、PDFファイルの先頭から(受信した順に)、境界情報に基づいて各ページのオブジェクトを特定する。したがって、PDFファイルの全体を受信しなくても各ページの印刷を開始できる。
(3)画像形成装置は、不足データを補ってページ毎にPDFファイルを作成する。
図1ではP1~P3のそれぞれに相互参照表とトレイラーが補われ、3つのPDFファイルが作成されている。
【0014】
なお、画像形成装置が判断情報を検出しない場合、画像形成装置は相互参照表とトレイラーを参照すれば従来と同様に印刷できる。
【0015】
また、シリアライズされたPDFファイルはISOの規格を満たすため、シリアライズされたPDFファイルに画像形成装置が対応していない場合でも、相互参照表とトレイラーを参照すれば従来と同様に印刷できる。したがって、シリアライズされたPDFファイルを生成するクラウドサービスは、送信先の画像形成装置がシリアライズされたPDFファイルに対応しているか否かを意識する必要がない。処理に必要なメモリサイズが変化することもない。
【0016】
図2は、シリアライズされたPDFファイルの印刷性能を説明する図の一例である。
図2(a)はシリアライズされる前のPDFファイルが印刷される際のタイムチャート図を示し、
図2(b)はシリアライズされたPDFファイルが印刷される際のタイムチャート図を示す。なお、印刷は、スプール(spool)、パース(parse)、描画(Rend)、及び、排紙(feed)のプロセスを経る。なお、パースとはデータの構造を解析して処理に必要な情報を抽出することをいう。
【0017】
図2では3ページを含む印刷ジョブを例にしている。シリアライズされていないPDFファイルの場合、3ページ分の印刷ジョブの全体のスプールが終わるまで画像形成装置は1ページ目のパース、レンダリング及び印刷を開始することができない。
・1ページ目の印刷開始=印刷ジョブのスプール完了+1ページ目の描画完了
これに対し、シリアライズされたPDFファイルは、1ページ目のスプールが終われば1ページ目のパース、描画及び排紙を開始することができる。
・1ページ目の印刷開始=1ページ目のスプール完了+1ページ目の描画完了
したがって、シリアライズされたPDFファイルは1ページ目の印刷開始までの時間を短縮できる。
【0018】
図3は、印刷に必要なメモリサイズを説明する図の一例である。
図3(a)はシリアライズされる前のPDFファイルの印刷に必要なメモリサイズを示し、
図3(b)はシリアライズされたPDFファイルの印刷に必要なメモリサイズを示す。シリアライズされる前のPDFファイルではジョブ全体のデータサイズを格納するメモリが必要である。
・印刷に必要なメモリ=印刷ジョブのデータサイズ
これに対し、シリアライズされたPDFファイルでは、1ページ分のデータサイズを格納するメモリがあればよい。
・印刷に必要なメモリ=1ページ分のデータサイズ
このように、シリアライズされたPDFファイルは、1ページ目の印刷開始までの時間の短縮、必要なメモリの削減、ISOの規格に従ったPDFファイルであること、という多くのメリットを有する。
【0019】
なお、特許文献1の技術では、送信元がPDFファイルを分割して最後尾から先に送信し、相互参照表の受信通知を受けてから残りを送信するという独自のフローでのPDFファイルを送信するため、この送信方法に対応している画像形成装置にしか当該フローでPDFファイルを送信できない。このため、送信元は、この送信方法に対応している画像形成装置と非対応の画像形成装置とで送信処理を分ける必要がある。
【0020】
また、特許文献1の技術では、PDFファイルのボディのオブジェクトがページ順に並んでいるとは限らないため、画像形成装置が相互参照表を先に受け取ったとしても、1ページ目のオブジェクトが最後尾近くに配置されている場合には、印刷開始が遅れる。本実施形態の画像形成装置はこれら従来技術の課題を解決することができる。
【0021】
<シリアライズされたPDFファイルの印刷に面付けが必要な場合>
しかしながら、シリアライズされたPDFファイルであっても印刷に面付けが行われる場合、印刷の高速化についてはこれまでは考慮されていなかった。
図4を用いて説明する。
【0022】
図4は印刷に面付けが必要なPDFファイルの印刷時の手順を説明する図である。
図4(a)は4in1で面付けされた4ページ分のPDFファイルのスプール、描画、及び排紙の流れを示す。4in1で1物理ページ(排紙される1用紙の片面)なので、4ページごとに区切りが設定されている。このため、画像形成装置は、4ページ目のオブジェクトが読み込まれるまで区切りを検出できず、面付けが必要な場合、シリアライズされたPDFファイルでも4ページ分のスプールが終わるまでは描画を開始できなかった。
【0023】
そこで、本実施形態では、集約印刷を指示されたPDFファイルが印刷される場合、後述するクラウドサービスは、面付け設定ページ群(4in1の場合、1~4ページ目)の各ページごとに区切りを設定する。また、クラウドサービスは面付け設定ページ群の各ページをページサイズでソートして、ページサイズの小さい順にPDFファイルに配置する。
【0024】
図4(b)は集約印刷を指示されたPDFファイルのスプール、描画、排紙の流れを示す。
図4(b)に示すように、面付け設定ページ群の各ページごとに区切りが設定される。区切りがあれば、区切りまでにスプールされたオブジェクトの描画を開始できる。
【0025】
また、
図4(b)ではデータサイズの小さい順(P4、P2、P3、P1の順)にページのオブジェクトがソートされている。画像形成装置はP4のスプールが終了するとP4の描画を開始できる。データサイズが小さいページはスプールされるまでの時間も短いので、単にページごとに区切りが設定されるよりも1ページ目の印刷開始までの時間を短縮できる。
【0026】
P2,P3,P1についても同様で、当該ページのスプールと前のページの描画が終了したタイミングで、画像形成装置がすぐに印刷を開始できる。
【0027】
図4(a)と
図4(b)とを比較すると、スプールと描画を並列に実行できる分、各ページの印刷開始までの時間を短縮できることがわかる。なお、必ずしもページサイズの小さい順にPDFファイルに配置しなくても、各ページごとに区切りが設定されることで印刷開始までの時間を短縮できる。
【0028】
<用語について>
面付けとは、1つの用紙(片面)に複数の描画対象物を配置することをいう。描画対象物は例えば1ページである。例えば、ファイルの集約印刷において面付けが必要になる。PDFファイルは集約印刷や面付けの設定に関する情報を有するわけではなく、集約印刷や面付けの設定は印刷設定(PJL:Printer Job Language)などで指示される。
【0029】
本実施形態では1ページとは印刷対象の文書ファイルの1ページをいい、1物理ページとは1つの用紙(片面)をいう。1物理ページに複数のページが印刷されることを集約印刷という。
【0030】
面付け対象ページ群とは、1物理ページに印刷される複数のページをいう。
【0031】
境界情報とは、各ページのオブジェクトの境界位置を示す何らかの情報をいう。
【0032】
<印刷システム>
図5は、本発明の一実施形態に係る印刷システム1の全体構成図である。以下、通信端末を単に端末と表す。
図1に示されているように、印刷システム1は、端末10A,10B、画像形成装置20A,20B、及びクラウドサービス50を有している。端末10A,10Bのうち任意のものを端末10と表す。画像形成装置20A,20Bのうち任意のものを画像形成装置20と表す。印刷システム1において、端末10、画像形成装置20、及びクラウドサービス50の数は、特に限定されない。
【0033】
端末10は、通信機能を有する情報処理装置であり、例えば、タブレット、スマートフォンなどのスマートデバイス、ノートPC(Personal Computer)、テレビ会議端末、電子黒板、又はカメラである。
図5において、端末10Aは、例えば、ノートPCであり、端末10Bは、例えば、スマートデバイスである。
【0034】
画像形成装置20は、画像処理機能及び通信機能を有する情報処理装置であり、例えば、MFP(Multifunction Peripheral/Printer/Product)、ファクシミリ、スキャナ、又はプリンタである。
図5において、画像形成装置20Aは、例えば、ファクシミリ、スキャナ、及びプリンタ機能を有するMFPであり、画像形成装置20Bは、例えば、プリンタである。
【0035】
クラウドサービス50は、通信機能を有する情報処理装置である(特許請求の範囲の情報処理装置の一例)。クラウドサービス50は、端末10又は画像形成装置20からの要求に基づいてPDF(Portable Document Format)ファイルなどの文書ファイルを管理し、画像形成装置20へ送信するプリントサーバとして機能する。また、クラウドサービス50は、文書ファイルをシリアライズする変換機能を有する。
【0036】
端末10及び画像形成装置20は、直接、あるいは無線LANルータ2Rを介して、LAN2L(Local Area Network)に接続している。端末10及び画像形成装置20は、LAN2Lからインターネット2Iに接続し、インターネット2I上のクラウドサービス50に接続する。LAN2L及びインターネット2Iのうち任意のものを通信ネットワーク2と表す。通信ネットワーク2の全部又は一部には、Wi-Fi(Wireless Fidelity)などの無線による通信が行われる箇所があってもよい。
【0037】
端末10、及びクラウドサービス50は、任意のアプリケーション又はプリンタドライバを用いて、PDFファイルなどのランダムアクセス形式の文書ファイルを生成する。端末10及びクラウドサービス50は、文書ファイルを含む印刷要求を画像形成装置20へ送信する。画像形成装置20は、端末10又はクラウドサービス50によって送信された文書ファイルを受信して印刷処理を実行する。
【0038】
<ハードウェア構成>
図6は、一実施形態に係る端末のハードウェア構成図である。
図6を用いて、端末10
のハードウェア構成について説明する。
【0039】
端末10は、CPU101(Central Processing Unit)と、ROM102(Read Only Memory)と、RAM103(Random Access Memory)と、SSD104(Solid State Drive)と、メディアI/F105(Interface)と、ネットワークI/F107と、ユーザI/F108と、バスライン110と、を有する。
【0040】
CPU101は、端末10全体の動作を制御する。ROM102は、端末10上で動作する各種プログラム及びアプリケーションを記憶する。以下、アプリケーションを単にアプリと表す。RAM103は、CPU101のワークエリアとして使用される。SSD104は、各種プログラム又はアプリで利用されるデータを記憶する。メディアI/F105は、外部メモリなどの記録メディア106に記憶されている情報を読み出したり、記録メディア106に情報を書き込んだりするためのインタフェースである。ネットワークI/F107は、通信ネットワーク2を介して他の装置と通信するためのインタフェースである。ユーザI/F108は、ユーザによる操作入力を受け付けるためのインタフェースである。ユーザI/F108は、例えば、タッチパネル機能を搭載した液晶表示装置又は有機EL(Electro Luminescence)表示装置、もしくはキーボード及びマウスである。バスライン110は、上記各構成要素を
図6に示されているように電気的に接続するためのアドレスバス又はデータバスである。
【0041】
クラウドサービス50のハードウェア構成は、端末10のハードウェア構成と同様であるので説明を省略する。ただし、SSD104は、HDD(Hard Disk Drive)などの任意の不揮発性の記憶装置に置き換え可能である。
【0042】
図7は、一実施形態に係る画像形成装置20のハードウェア構成図である。
図7を用いて、画像形成装置20のハードウェア構成について説明する。
【0043】
画像形成装置20のコントローラ200は、CPU201と、ROM202と、RAM203と、NVRAM204(Non-volatile RAM)と、HDD205と、ネットワークI/F206と、エンジンI/F207と、パネルI/F208と、スキャナI/F209と、メディアI/F215と、バスライン210と、を有する。また、画像形成装置20は、プロッタエンジン211と、操作パネル212と、スキャナエンジン213と、を有する。
【0044】
CPU201は、画像形成装置20全体の動作を制御する。ROM202は、画像形成装置20上で動作する各種プログラム及びアプリを記憶する。RAM203は、CPU201のワークエリアとして使用される。NVRAM204及びHDD205は、各種プログラム又はアプリで利用されるデータを記憶する。ネットワークI/F206は、通信ネットワーク2を介して他の装置と通信するためのインタフェースである。エンジンI/F207は、プロッタエンジン211と接続するためのインタフェースである。パネルI/F208は、操作パネル212と接続するためのインタフェースである。スキャナI/F209は、スキャナエンジン213と接続するためのインタフェースである。メディアI/F215は、外部メモリなどの記録メディア216に記憶されている情報を読み出したり、記録メディア216に情報を書き込んだりするためのインタフェースである。バスライン210は、上記各構成要素を
図7に示されているように電気的に接続するためのアドレスバス又はデータバスである。
【0045】
プロッタエンジン211は、記録媒体への画像の印刷処理において、画像形成装置20のプロッタの動作を制御する。プロッタは、任意の印刷装置であり、インクジェット方式の場合、例えば、インクジェットヘッドであり、レーザープリンタ方式の場合、例えば、感光体、レーザー照射装置、あるいは転写装置である。操作パネル212は、ユーザから設定、条件、指示などの入力を受け付けるためのパネルであり、例えば、タッチパネル機能を搭載した液晶表示装置又は有機EL表示装置、もしくはキーボード及びマウスである。スキャナエンジン213は、画像形成装置20におけるスキャナの動作を制御する。なお、スキャナは、特に限定されないが、例えば、圧版、ADF(Auto Document Feeder)、及び撮像素子を有する公知のものが例示される。
【0046】
<機能構成>
次に、
図8を用いて一実施形態に係る画像形成装置20及びクラウドサービス50の機能構成について説明する。
図8は、一実施形態に係る画像形成装置20及びクラウドサービス50の機能ブロック図である。
【0047】
<<画像形成装置>>
画像形成装置20は、通信部2100と、ページデータ生成部2210と、印刷データ処理部2220と、印刷部2230とを有する。これら各部は、
図7に示されている各構成要素のいずれかが、ROM202からRAM203上に展開された画像形成装置20用のプログラム又はアプリに従ったCPU201からの命令によって動作することで実現される機能である。また、画像形成装置20は、ROM202、RAM203、NVRAM204、又はHDD205により構築される記憶部2000を有する。
【0048】
通信部2100は、CPU201からの命令、及びネットワークI/F206の処理により、通信ネットワーク2を介した他の装置との通信を制御する。
【0049】
ページデータ生成部2210は、CPU201からの命令に基づいて、複数ページを有するPDFファイル(シリアライズ済み)から、ページごとに分割されたPDFファイルを生成する。ただし、集約印刷を指示されたPDFファイルに関しては、面付け対象ページ群ごとのPDFファイルを生成する。これら1ページ又は面付け対象ページ群に分割されたPDFファイルを分割ファイルという。
【0050】
印刷データ処理部2220は、CPU201からの命令に基づいて、分割ファイル(PDLファイル)のパース、及び、描画(レンダリング)等のデータ処理を行う。集約印刷を指示されたPDFファイルに関しては、何ページ目かに基づいて面付けする。
【0051】
印刷部2230は、CPU201からの命令に基づくプロッタエンジン211の動作により、印刷データ処理部2220により描画された画像を用紙などのシート材に形成する印刷処理を行う。
【0052】
<<クラウドサービス>>
クラウドサービス50は、通信部5100と、ファイル生成部5200と、を有する。これら各部は、
図6に示されている各構成要素のいずれかが、ROM102からRAM103上に展開されたクラウドサービス50用のプログラム又はアプリに従ったCPU101からの命令によって動作することで実現される機能である。また、クラウドサービス50は、ROM102、RAM103、又はSSD104により構築される記憶部5000を有する。
【0053】
通信部5100は、CPU101からの命令、及びネットワークI/F107の処理により、通信ネットワーク2を介した他の装置との通信を制御する。
【0054】
ファイル生成部5200は、CPU101からの命令に基づいて、PDFファイルをシリアライズし、ページごと又は面付け対象ページ群ごとのPDFファイルに分割可能な、PDFファイルを生成する。また、印刷に面付けが必要なPDFファイルにおいてページごとに区切りを設定する。
【0055】
ファイル生成部5200はページソート部5300を有している。ページソート部5300は面付け対象ページ群を所定の基準でソートする。所定の基準は例えばページサイズの小さい順である。描画時間の小さい順にソートしてもよい。ページサイズ又は描画時間大きい順にソートしてもよい。
【0056】
<ファイル構造>
図9は、PDFファイルの構造の一例を示す概念図である。PDFファイルは、国際標準化機構(ISO: International Organization for Standardization)で管理されているオープンスタンダードに準拠して、先頭から順に、ヘッダPH、ボディPB、相互参照表PR、及びトレイラーPTを有する。なお、
図9において、ヘッダPH、ボディPB、相互参照表PR、及びトレイラーPTに含まれる情報は一例である。
【0057】
ヘッダPHには、PDFのバージョン情報などが含まれる。
【0058】
ボディPBには、オブジェクト番号ごとに、ドキュメントカタログ、ページツリーオブジェクト、各ページのオブジェクト情報などが定義されている。オブジェクト番号は、オブジェクトの識別子であり、例えば、「1 0 obj」のように、参照番号(x)、生成番号(y)、及び「obj」が左から順に並んだものである。ドキュメントカタログは、オブジェクト階層のルート(最上位)である。ページツリーオブジェクトには、各ページのオブジェクト情報への参照などが含まれる。各ページのオブジェクト情報には、各ページを描画するためのデータ(ページデータ)が含まれる。
【0059】
相互参照表PRには、ボディPBに定義されている各オブジェクト番号のオブジェクトのアドレス情報が含まれている。アドレス情報は、オブジェクトがヘッダPHの先頭から何バイト目かを示すオフセット情報である。したがって、アドレス情報によりオブジェクトの位置が分かる。画像形成装置20は、相互参照表PRに基づいて、オブジェクトの位置を特定し、アクセスする。
【0060】
トレイラーPTには、相互参照表PRの位置を示す位置情報(startxref)、ドキュメントカタログのオブジェクト番号(Root)、及びPDFファイルの作成日時への参照(Info)などが含まれている。
【0061】
このようなPDFファイルの構造上、画像形成装置20は、ドキュメントカタログのオブジェクト番号をトレイラーPTから特定し、このオブジェクト番号に対応するアドレス情報を相互参照表PRから特定することで、ドキュメントカタログにアクセスする。すなわち、画像形成装置20による通常の動作では、PDFファイルのトレイラーPTまでを読み込んだ上で、PDFファイルに係る画像処理を開始する。
【0062】
このようなPDFの言語仕様上、オブジェクト情報はページ順に並んでいなくてもよく、オブジェクト番号も連番である必要はない。例えば、
図9において、「5 0 obj,18 0 obj,7 0 obj」は、それぞれ文書における5ページ目、1ページ目、又は3ページ目を描画するためのオブジェクト情報であってもよい。オブジェクト情報が整列されていないので、画像形成装置20は、オブジェクト情報におけるどこまでが何ページ目か相互参照表PRなしに判断できない。
【0063】
図10は、ボディに存在するオブジェクトがどのような論理構造になっているかを簡略化して示す図の一例である。説明の便宜上、ページツリーオブジェクトが1つの例で記載しているが、言語仕様としてはページツリーオブジェクトにも階層構造を持たせる事ができる。
【0064】
一番上にドキュメントカタログのオブジェクト番号(Root)の位置を示すトレイラー辞書(トレイラー辞書のみ、
図9のトレイラー部分に定義される)が存在し、それにより論理構造のルートとなるドキュメントカタログと呼ばれるオブジェクトが指定される。ドキュメントカタログはページツリーオブジェクトを指定するので、ページツリーオブジェクトが各ページの情報を示すページオブジェクトを指示する。
【0065】
ページオブジェクトは、フォントや画像等のリソースを定義するオブジェクトや、描画情報が記載されるコンテントストリームを有する。
【0066】
このような構成のため、ページツリーオブジェクトがないと各ページがどのオブジェクト情報を有するかを特定できない。
【0067】
<動作手順>
続いて、
図11を用いて印刷システム1における処理について説明する。
図11は、PDFファイルを生成する処理の一例を示すシーケンス図である。
【0068】
<<集約印刷の設定がない場合>>
比較のため、まず、集約印刷の設定がない印刷要求が端末10から送信された場合を説明する。以下、端末10による要求に基づいて、クラウドサービス50において管理されている文書ファイルを画像形成装置20へ送信し、画像形成装置20において印刷する一例の処理について説明する。
【0069】
ただし、端末10が、クラウドサービス50と同様の機能を有している場合、端末10から直接、画像形成装置20へ印刷要求を送信することもできる。この場合、
図11におけるクラウドサービス50の処理は、端末10の処理に置き換えられる。また、画像形成装置20による印刷要求に基づいて、クラウドサービス50から画像形成装置20へ文書ファイルを送信し、画像形成装置20において印刷処理を実行してもよい。この場合、
図11における端末10の処理は画像形成装置20の処理に置き換えられる。
【0070】
端末10は、ユーザによる印刷要求の入力に応じて、通信ネットワーク2を介してクラウドサービス50へ印刷要求を送信する(ステップS1)。印刷要求には、印刷するファイルのファイル名が含まれている。以下、印刷するファイルがPDFファイルである場合について説明する。
【0071】
クラウドサービス50の通信部5100は、端末10によって送信された印刷要求を受信する。クラウドサービス50のファイル生成部5200は、印刷要求に含まれるファイル名のPDFファイルを記憶部5000から読み込む(ステップS11)。
【0072】
クラウドサービス50のファイル生成部5200は、読み込まれたPDFファイルのヘッダに、複数のPDFファイルに分割可能なファイルであることを特定するための判断情報として、予め定められたコメントを挿入する(ステップS12)。
【0073】
図12は、PDFファイルの構造の一例を示す概念図である。
図12(A)は、判断情報(%Enable Page Split Mode)が挿入されたヘッダPHiを示す。ただし、
図12(A)の判断情報は一例に過ぎず、分割可能なファイルであることが画像形成装置で検出できればよい。
【0074】
図11に戻って説明する。続いて、クラウドサービス50のファイル生成部5200は、ステップS11で読み込まれたPDFファイルに含まれる各ページのデータについて、以下のループ処理を繰り返す。
【0075】
まず、クラウドサービス50のファイル生成部5200は、ステップS11で読み込まれたPDFファイルを検索して、文書の1ページ目を描画するためのオブジェクト情報を読み込む(ステップS21)。このとき、検索されたオブジェクト情報が圧縮されていた場合でも、ファイル生成部5200は、オブジェクト情報を解凍せず、圧縮されたままの状態で読み込む。
【0076】
クラウドサービス50のファイル生成部5200は、ステップS21で読み込まれた1ページ目を描画するためのオブジェクトを、PDFファイルにおけるボディPBの先頭側に移動することにより、ボディPBの記述がページ順になるように整列する(ステップS22)。
【0077】
クラウドサービス50のファイル生成部5200は、PDFファイルにおけるボディPBに、1ページ目のオブジェクトの境界位置を示す境界情報(区切り位置を示すページ区切情報ともいう)を付加する(ステップS23)。境界情報を付加する方法の2つの例について説明する。
【0078】
境界情報を付加する1つ目の方法では、予め定められたオブジェクト情報を境界情報として用いる。
図12(B-1)は、PDFファイルのボディPBを示す概念図である。
図12(B-2)は、PDFファイルのnページ目のオブジェクト群を示す概念図である。
【0079】
図12(B-1)及び(B-2)の例では、「/Pageオブジェクト」を境界情報として用いる。すなわち、クラウドサービス50のファイル生成部5200は、
図12(B-1)のボディPBにおける「/Pagesオブジェクト」から、nページにかかる「/Pageオブジェクト」を抽出して、nページ目のオブジェクト群PBnの後端に挿入することにより(
図12(B-2)参照)、「/Pageオブジェクト」を境界情報とする。なお、ファイル生成部5200は、nページにかかる「/Pageオブジェクト」を、nページ目のオブジェクト群PBnの先端に挿入することにより、「/Pageオブジェクト」を境界情報としてもよい。なお、「/Pageオブジェクト」は、PDFの言語仕様で定義されているものである。ファイル生成部5200は、「/Pageオブジェクト」以外の「/Contentsオブジェクト」などの他のオブジェクト情報を、オブジェクト群の先端又は後端に挿入することで境界情報としてもよい。
【0080】
境界情報を付加する2つ目の方法では、ページの区切りを示すコメントを境界情報として用いる。ページの区切りを示すコメントは、PDF言語において、ページの描画内容に直接影響を与えないコメントである。
図12(C-1)及び(C-2)は、ページの区切りを示すコメントが付加されたPDFファイルのボディの概念図である。
【0081】
図12(C-1)の例では、各ページのオブジェクト群の後端に、ページの区切りを示すコメント「%End Page」が付加されている。
図12(C-2)の例では、各ページのオブジェクト群の先端に、ページの区切りを示すコメント「%Start Page」が付加されている。画像形成装置20は、PDFファイルを読み込むときに、これらの判断情報によりページ区切り位置を判断できるので、シリアライズされたPDFファイルの末尾のトレイラーPTと相互参照表PRを読み取らなくても(全体を読み取らなくても)PDFファイルの1ページ目から分割ファイルを作成できる。
【0082】
ステップS23の処理が完了すると、クラウドサービス50のファイル生成部5200は、ステップS11で読み込まれたPDFファイルにおいて、未処理のデータがあるか判断する。未処理のデータがある場合、ファイル生成部5200は、未処理のデータに対しループ処理を繰り返す。このとき、クラウドサービス50のファイル生成部5200は、ステップS21で読み込まれたnページ目のオブジェクト群を、PDFファイルにおけるボディPBのn-1ページ目のオブジェクト群の後に挿入することにより、ボディPBの記述がページ順になるように整列する(ステップS22)。すなわち、シリアライズする。
【0083】
ループ処理が完了してから、クラウドサービス50のファイル生成部5200は、境界情報が付加されたPDFファイルに対し、ファイル構造情報を追加して、更新する(ステップS31)。ファイル構造情報は、PDF言語で規定されているページツリー、ドキュメントカタログ、相互参照表PR、トレイラーPTなどを含む。ファイル構造情報が追加されたファイルは、PDF言語仕様を満たすものとなる。
【0084】
クラウドサービス50のファイル生成部5200は、印刷ジョブに必要なページツリーを生成して追加する。この場合、ページツリーのオブジェクト番号には、予め定められた値が割り当てられる。ページツリーには、ページ数と、ページを描画するためのオブジェクトへの参照が含まれる。
【0085】
クラウドサービス50のファイル生成部5200は、印刷ジョブに必要なジョブ情報としてドキュメントカタログを生成して生成過程にあるPDFファイルに追加する。ドキュメントカタログのオブジェクト番号は予め定められた値が割り当てられる。印刷ジョブに必要なジョブ情報には、ページツリーのオブジェクトへの参照が含まれる。上記のように、ページツリーのオブジェクトのオブジェクト番号は予め定められているので、ページツリーへの参照は予め定められた値となる。
【0086】
クラウドサービス50のファイル生成部5200は、相互参照表PRを生成して、境界情報が付加された生成過程にあるPDFファイルにおけるボディPBの後に追加する。相互参照表PRは、ボディPBにおける各オブジェクトの位置をオフセット情報として表したアドレス情報である。ページデータ生成部2210は、先に生成したボディPBから、各オブジェクトを検索し、検索された各オブジェクトの位置を示すアドレス情報をオフセット情報として記述することで、相互参照表PRを生成する。
【0087】
クラウドサービス50の通信部5100は、ファイル構造情報が追加されたPDF形式のファイルを含む印刷要求を画像形成装置20へ送信する(ステップS41)。ファイル構造情報が追加されたPDF形式のファイルを変換ファイルと表す。
【0088】
クラウドサービス50のファイル生成部5200は、変換ファイルを記憶部5000に記憶する(ステップS42)。変換ファイルは、PDFの言語仕様にしたがっているので、記憶部5000に記憶されている変換ファイルをビュアーにより読み出して、文書の全体を閲覧することができる。
【0089】
<<集約印刷の設定がある場合>>
続いて、印刷要求に集約印刷の設定が含まれる場合にクラウドサービスが生成するPDFファイルについて説明する。
【0090】
図13は、PDFファイルを生成する処理の一例を示すシーケンス図である。なお、
図13の説明では
図11との相違を主に説明する。
【0091】
端末10は、ユーザによる印刷要求の入力に応じて、通信ネットワーク2を介してクラウドサービス50へ印刷要求を送信する(ステップS1)。この印刷要求には、4in1などの集約印刷の設定が含まれている。
【0092】
続く、ステップS11、S12の処理は
図11と同様でよい。ただし、クラウドサービス50のファイル生成部5200は、PDFファイルを読み込む際に集約印刷の設定も読み込む。
【0093】
次に、ファイル生成部5200はどのオブジェクトが何ページ目かという情報(/pages)を出力バッファに入れる(S13)。このような情報はページツリーオブジェクトに含まれる。これにより各ページとこのページに含まれるオブジェクトの対応が特定される。本実施形態ではシリアライズされても、ページ順にオブジェクトが整列されるとは限らないので、ボディよりもPDFファイルの先頭側にページツリーオブジェクトが必要になる。ページツリーオブジェクトがボディよりも末尾側にあると、画像形成装置20がPDFファイルの全体を受信するまで印刷を開始できない。
【0094】
どのオブジェクトが何ページ目かという情報はページツリーと呼ばれ、PDFファイルのページツリーオブジェクトに記述されている。ページツリーオブジェクトは「/pages」という記述を有する。出力バッファとは、PDFファイルを生成するために一時的にファイルのオブジェクトをオブジェクトの順番に保存するメモリである。
【0095】
続く、ステップS21~S23は面付け対象ページ群に対し繰り返して実行される。例えば、4in1の集約印刷の場合、1~4ページ、5~8ページ、…のように4ページ分のオブジェクトに対し実行される。
【0096】
まず、クラウドサービス50のファイル生成部5200は、ステップS11で読み込まれたPDFファイルを検索して、面付け対象ページ群(例えば1~4ページ目)を描画するためのオブジェクト情報を読み込む(ステップS21)。
【0097】
次に、クラウドサービスのページソート部5300は、面付け対象ページ群(例えば1~4ページ)の各ページサイズを算出する(ステップS21-2)。各ページサイズは各ページが含むオブジェクトのバイト数であるので、相互参照表のバイトオフセットにより求めることができる。相互参照表にはオブジェクトが何バイト目から始まるかが記述されているので、バイトオフセットの差分が各ページのバイト数(ページサイズ)である。
【0098】
続く、ステップS22,S23は
図11と同様の処理であるが、S22,S23は面付け対象ページ群に含まれる各ページに対し繰り返し実行される。
【0099】
クラウドサービス50のファイル生成部5200は、ステップS21-2で算出した各ページサイズの小さい順にこのページを描画するためのオブジェクトを、PDFファイルにおけるボディPBの先頭側に移動することにより、ボディPBの記述がページサイズの順番になるように整列する(ステップS22)。つまり、面付け対象ページ群が4ページなら、1~4ページのオブジェクトに着目し、1~4ページのうちページサイズの小さい順にオブジェクトを整列する。したがって、PDFファイルの全体のオブジェクトをページ順に整列する処理と、面付け対象ページ群内でページサイズの小さい順にオブジェクトを整列する2つの処理が含まれている。
【0100】
クラウドサービス50のファイル生成部5200は、PDFファイルにおけるボディPBに、各ページのオブジェクトの境界位置を示す境界情報を付加する(ステップS23)。つまり、面付け対象ページ群内で各ページの境界が設定される。境界情報は
図11と同様でよい。
【0101】
以降のステップS31、S41,S42の処理については
図11と同様でよい。ページツリーオブジェクトは設定済みなのでステップS31では追加されないくてよいが、追加されても構わない。
【0102】
<面付けが必要なPDFファイルのシリアライズの一例>
図14は、
図13のようなシリアライズの処理により作成されたPDFファイルの一例である。なお、
図14の説明では、4in1の面付け対象ページ群のうち、4ページ目、2ページ目、3ページ目、1ページ目の順にページサイズが小さいものとする。
【0103】
図14のPDFファイルはファイルの構成を先頭から順番に示している。
PDFヘッダ:
図12(A)のヘッダPHである。
高速PDF識別子:判断情報に相当し、
図12(A)の「%Enable Page Split Mode」である。
ページツリー:ページツリーオブジェクトである。
4ページ目オブジェクト群:最もページサイズが小さい4ページ目のオブジェクト群である。
ページ区切り:4ページ目のオブジェクト群と2ページ目のオブジェクト群の境界を示す境界情報である。境界情報は、例えば、
図12(C-1)又は(C-2)の「%End Page」「%Start Page」であるがこれらには限られない。
【0104】
3ページ目、2ページ目、1ページ目の構成も同様であり、ページとページの境界(データとデータの間)にページ区切り(境界情報)が設定される。
【0105】
図14ではnページ目まで存在するが、面付け対象ページ群の4ページごとに、ページサイズでソートされた各ページのオブジェクトがページ区切りで区切られてPDFファイルに設定されている。図示するように、集約印刷に関する設定(例えば4in1など)はPDFファイルには含まれない。集約印刷であることの判断はPDFファイルからではなくPJLなどに基づいて画像形成装置20が行う。
【0106】
<シリアライズされたPDFファイルの印刷>
続いて、
図15を用いて、印刷要求を受信した画像形成装置20の処理について説明する。
図15は、画像形成装置20における印刷処理の一例を示すシーケンス図である。
【0107】
画像形成装置20の通信部2100は、端末10によって送信されたクラウドサービス50からの印刷要求の受信を開始すると、印刷要求に含まれるPDFファイルを、バッファとしてRAM203に順次記憶(バッファリング)する。画像形成装置20は、バッファリングの完了を待機することなく、以下の印刷処理を継続する。
【0108】
通信部2100は、印刷を開始するための印刷開始通知をページデータ生成部2210へ送信する(ステップS52)。
【0109】
ページデータ生成部2210は、印刷開始通知を受信すると、印刷要求に含まれるPDFファイルから、印刷する各ページのデータが分割されたPDFファイル(分割ファイル)を生成可能であるか判断する(ステップS53)。例えば、印刷要求に含まれるPDFファイルのページ数が10であり、全ページを印刷する場合、ページデータ生成部2210は、10個のページごとの分割ファイルを生成可能であるか判断する。
【0110】
ページデータ生成部2210は、受信バッファにおけるヘッダPHiの部分を読み込んだ時点で、判断情報を検知すれば、分割ファイルを生成可能であると判断する。
【0111】
ステップS53において分割ファイルを生成可能でないと判断された場合、ページデータ生成部2210はPDFファイルの全体を印刷データ処理部2220に送信する(ステップS54)。
【0112】
印刷データ処理部2220は従来と同様にPDFファイルの末尾から読み取って構造を解析し(パースし)、プロッタエンジン211に印刷を指示する(ステップS55)。このように、画像形成装置20は、ヘッダに判断情報がない場合、最後尾まで受信後に相互参照表を参照して印刷を行うことができるため、クラウドサービス50は送信先の画像形成装置がシリアライズされたPDFファイルに対応している画像形成装置か否かを意識する必要がない。
【0113】
ステップS53において、分割ファイルを生成可能であると判断された場合、画像形成装置20のページデータ生成部2210は、PDFファイルにおける各ページのオブジェクトが受信されるたびに、1物理ページごとの分割ファイルを生成する(ステップS61)。ステップS61の処理については
図16を用いて詳細に説明する。
【0114】
1物理ページ分の分割ファイルが完成すると、ページデータ生成部2210は、生成された分割ファイルを印刷データ処理部2220へ送信する(ステップS62)。
【0115】
印刷データ処理部2220は、受信された分割ファイルを解析し、データにアクセスしながらフレームメモリに1ページ分の画像を描画することで印刷画像を生成する。印刷データ処理部2220は、印刷画像を含む印刷指示を印刷部2230へ送信して、印刷処理を実行させる(ステップS63)。印刷部2230は印刷処理の指示を受けると、プロッタエンジンを制御して用紙に1ページの印刷画像を転写し、排紙する。ステップS63の処理については
図17を用いて詳細に説明する。
【0116】
ページデータ生成部2210は、印刷対象のページのデータのうち、分割ファイルの生成が完了していない未処理のページのデータがバッファに含まれているか判断する。未処理のページのデータが含まれていると判断された場合には、画像形成装置20は、ステップS61乃至S63の処理を繰り返す。このようにして、印刷する各ページの画像コンテンツに対応する分割ファイルが生成され、1物理ページずつ印刷処理が実行される。
【0117】
印刷対象のすべてのページの印刷処理が完了してから、ページデータ生成部2210は、バッファとして残っている情報を削除する(ステップS64)。これにより、バッファがクリアされた状態で、次のデータの受信待ち状態に遷移するので、バッファに必要な容量は、1ページ分の受信データで足りることになる。
【0118】
<<分割ファイルの生成>>
図15のステップS61の処理について
図16を用いて詳細に説明する。
図16は、分割ファイルを生成する処理の一例を示すフロー図である。なお、ステップS61の処理は、クラウドサービス50から送られてきたPDFファイルの受信の完了を待つことなく実行される。
【0119】
ページデータ生成部2210は送信されたPDFファイル及び印刷設定を読み込んで集約印刷の設定を確認する(S61-1)。
【0120】
ページデータ生成部2210はPDFファイルからPDFヘッダ、高速PDF識別子(判断情報)、及びページツリーオブジェクトを退避する(S61-2)。面付け対象ページ群ごとにこれらを追加するためである。
【0121】
ステップS61-3は面付け対象ページ群ごとに実行される。ページデータ生成部2210はPDFヘッダ、高速PDF識別子、及び、ページツリーオブジェクトを1物理ページのPDFファイルの先頭に設定する(S61-3)。PDFヘッダと高速PDF識別子は退避したものと同じでよい。ページツリーオブジェクトは面付け対象ページ群を指定するため、1~4ページ、5~8ページのように1物理ページごとに異なる内容になる。
【0122】
RAM203には、通信部2100によって受信されたPDFファイルの一部が、バッファとして順次記憶される。ページデータ生成部2210は、バッファをレコード(オブジェクト)ごとに読み込む(ステップS61-4)。
【0123】
ページデータ生成部2210は、読み込まれたレコードが、相互参照表PR、ドキュメントカタログ、又はトレイラーPTに該当するか判断する(ステップS61-5)。
【0124】
ステップS61-2において、レコードが、相互参照表PR、ドキュメントカタログ、又はトレイラーPTのいずれかに該当すると判断された場合(Yes)、ページデータ生成部2210は、読み込まれたレコードを削除する(ステップS61-6)。相互参照表PR、ドキュメントカタログ、及びトレイラーPTの各レコードは、後述の処理で、分割ファイルを作成する際に、新たに生成されるためである。
【0125】
ステップS61-5において、該当しないと判断された場合(No)、ページデータ生成部2210は、読み込まれたレコードを、記憶部2000に記憶する(ステップS61-7)。
【0126】
ページデータ生成部2210は、ステップS61-4乃至S61-7の処理を、1ページ分のレコード、すなわちオブジェクトを読み終えるまで繰り返す。なお、ページデータ生成部2210は、ボディPBにおける境界情報を読み込むことで、1ページ分のレコードを読み終えたか判断することができる。
【0127】
また、ページデータ生成部2210は、ステップS61-4乃至S61-7の処理を、面付け対象ページ群のオブジェクトを読み終えるまで繰り返す。4in1の場合は4ページ分のオブジェクトを読み終えるまで繰り返す。
【0128】
上記のループ処理が完了した時点で、記憶部2000にはPDFファイルから抽出された面付け対象ページ群のレコードのうち、相互参照表PR、ドキュメントカタログ、又はトレイラーPTが除かれた各レコード、すなわち1ページを描画するための各データを含むオブジェクトが記憶される。ページデータ生成部2210は、記憶部2000に記憶されたレコードを、分割ファイルにおけるボディとする。
【0129】
このボディには、ステップS61-6の処理で読み捨てられる相互参照表PR、ドキュメントカタログ、及びトレイラーPTなどが含まれない。このボディを分割ファイルとして、印刷データ処理部2220に送信しても、PDF言語に準拠していないため、印刷データ処理部2220は、印刷処理を実行できない。そこで、ページデータ生成部2210は、ボディに、必要な情報を追加して、PDF言語仕様に基づいたPDFファイルを完成させる。
【0130】
ページデータ生成部2210は生成されたドキュメントカタログをボディの後端に追加する(ステップS61-8)。ドキュメントカタログはページツリーオブジェクトを指定するが、本実施形態ではページツリーオブジェクトはボディよりも前方に配置されるので、ドキュメントカタログは参照されない場合がある。
【0131】
続いて、ページデータ生成部2210は、相互参照表を生成して、生成過程にある分割ファイルにおけるボディの後に追加する(ステップS61-9)。
【0132】
ページデータ生成部2210は、分割ファイルにおけるトレイラーを生成し、生成過程にある分割ファイルにおける相互参照表PRの後に追加することで、PDF言語に従った分割ファイルを完成させる(ステップS61-10)。
【0133】
ステップS61-8乃至S61-10の処理は、
図13のステップS31のファイル構造情報を追加する処理と同様である。
【0134】
ページデータ生成部2210は、PDFファイルの最後まで終了したか否かを判断し(ステップS61-11)、終了していなければ面付け対象ページ群に対するループ処理から繰り返す。
【0135】
以上の処理で面付け対象ページ群ごとに1物理ページのPDFファイルが作成される。画像形成装置20は1物理ページずつ印刷する。
【0136】
<<印刷指示>>
図15のステップS63の処理について
図17を用いて詳細に説明する。
図17は、分割ファイルを印刷する処理の一例を示すフロー図である。
【0137】
まず、画像形成装置20の印刷データ処理部2220は、どのオブジェクトが何ページ目かという情報(ページツリーオブジェクト)をパースする(ステップS63-1)。
【0138】
次に、PDFファイルの先頭からページ(オブジェクト)の区切り(%PageEndなど)までパースする(ステップS63-2)。この時点でこのページが何ページ目かわかる。
【0139】
次に、印刷データ処理部2220はページツリーオブジェクトに基づいて、パースしたページが何ページ目なのか判断する(ステップS63-3)。これは、パースしたページを元の文書のページ順に、1物理ページに配置するためである。
【0140】
印刷データ処理部2220は、パースしたページを1物理ページの適切な位置(4in1であれば、左上/右上/左下/右下のどこか)に描画する(ステップS63-4)。例えば、1、5、9…ページ目であれば左上、例えば、2、6、10…ページ目であれば右上、例えば、3、7、11…ページ目であれば左下、例えば、4、8、12…ページ目であれば右下に配置する。こうすることで、PDFファイル内の配置順とは関係なく、元の文書のページ順に、各ページを配置できる。
【0141】
印刷データ処理部2220は面付け対象ページ群が終了したか否かを判断し(ステップS63-5)、終了していなければステップS63-2以降の処理を繰り返す。終了した場合は、印刷部2230は1物理ページを排紙する(S63-6)。
【0142】
このように、印刷データ処理部2220は、面付け対象ページ群がデータサイズの小さい順に配置されたPDFファイルをページ区切りに基づいて先頭から描画するので、4in1の集約印刷だとしても4ページ分のスプールを待つことなく、1ページ分のスプールが完了すれば描画を開始でき、1物理ページの排紙までの時間を短縮できる。
【0143】
なお、画像形成装置20が集約印刷を含む印刷設定を受け付ける機能を有していてもよい。この場合、ユーザが新たに設定した集約印刷の設定で印刷される。
【0144】
<まとめ>
以上説明したように、本実施例の印刷システム1は、面付け対象ページ群においてページ間にページ区切りを設定し、データサイズの小さい順にソートするので、スプールと描画を並列に実行できるため、印刷開始までの時間を短縮できる。
【実施例2】
【0145】
本実施例では、ページサイズに加えて各ページの描画時間を考慮し、プリンタが効率よく分割できる並びにページをシリアライズしたPDFファイルを生成する印刷システム1について説明する。
【0146】
なお、本実施例においては、上記の実施例にて説明した
図6、
図7のハードウェア構成図、及び、
図8に示した機能ブロック図を援用できるものとして説明する。
【0147】
図18は、画像を印刷する処理の一例を示すシーケンス図である。なお、
図18の説明では
図13との相違を主に説明する。
【0148】
ステップS1、S11~S13、S21,S21-2の処理は
図13と同様である。ステップS21-2で面付け対象ページ群の各ページサイズを算出すると、ステップS21-3において、クラウドサービス50のページソート部5300は面付け対象ページ群で各ページの共通オブジェクト数と描画時間を算出する(ステップS21-3)。ページの共通オブジェクトとは、ページが異なっても共通に描画されるオブジェクト(例えばロゴマーク、共通の画像、ヘッダなどである)。描画時間は、オブジェクトの種類と各オブジェクトの数から算出される。例えば、1文字、単位面積当たりの画像、及び、1図形の描画に必要な時間が決まっており、各オブジェクトの描画時間を文字数、画像の大きさ、図形の数から算出する。
【0149】
次に、ファイル生成部5200はオブジェクトを整列するが、この処理の詳細を
図19に基づいて説明する。
図19は、面付け対象ページ群のページの整列処理を説明するフローチャート図の一例である。
【0150】
まず、ファイル生成部5200はページごとに面付け対象ページ群の先頭か否かを判断する(ステップS21-31)。面付け対象ページ群の先頭のページは描画時間を考慮しないためである。面付け対象ページ群の先頭のページは、例えば4in1であれば4ページごとのデータサイズに基づく先頭のページである。
【0151】
面付け対象ページ群の先頭のページでない場合(ステップS21-31のYes)、ファイル生成部5200は最もサイズの小さいページを出力バッファに入れる(ステップS21-32)。
【0152】
面付け対象ページ群の先頭のページの場合(ステップS21-31のNo)、ファイル生成部5200は共通オブジェクトの描画時間が長いページ同士が隣接するように出力バッファに入れる(ステップS21-33)。
【0153】
例えば、2ページ目で利用する描画オブジェクトを4ページ目でも利用しているケースにおいて、2ページ目の後に4ページ目を配置した方が、2ページ目で描画したオブジェクトを4ページ目で使い回せるため、描画時間が短縮できる。また、2ページ目と4ページ目に共通のオブジェクトの描画時間が10ミリ秒で、1ページ目と3ページ目に共通のオブジェクトの描画時間が20ミリ秒の場合、1ページ目と3ページ目を隣接させることが優先される。先頭のページはページサイズで決まってしまうので、先頭のページと共通のオブジェクトを有するページが優先される場合もある。
【0154】
以降は
図13と同様に、ページ毎に境界情報が付加され、ファイル構造情報が追加され、シリアライズされたPDFファイルが生成される。
【0155】
なお、画像形成装置20側の処理は実施例1と同様になる。
【0156】
<シリアライズされたPDFファイル>
図20は、シリアライズされたPDFファイルの一例を示す図である。なお、
図20の説明では主に
図14との相違を説明する。PDFヘッダからページツリーまでは
図14と同様でよい。
【0157】
図20では、4<2<3<1の順でページサイズが大きくなる。1ページ目の印刷開始まで(1stプリント)の時間を最も効果的に高速化するため先頭のページはページサイズが一番小さいページ(今回の例では4ページ目)である。
【0158】
2ページ以降は、描画時間が短くなる並びにする。
図20では、4ページ目と1ページで多くの共通オブジェクトがあり、4ページ目の次に1ページ目を印刷すると描画時間が短縮できるため、4ページ目の後に1ページ目が配置されている。1ページ目の後は、3ページ目と2ページ目のうち共通のオブジェクトがある方が先に配置される。共通のオブジェクトがない場合はページサイズの順で配置される。
【0159】
<シリアライズされたPDFファイルの印刷性能>
図21は、本実施例において、シリアライズされたPDFファイルの印刷性能を説明する図の一例である。
図21(a)は実施例1の方法でシリアライズされたPDFファイルの印刷時のタイムチャート図を示し、
図21(b)は本実施例の方法でシリアライズされたPDFファイルのタイムチャート図を示す。
【0160】
図21(a)では2ページ目の描画に25秒かかっているが、
図21(b)では2ページ目の描画に15秒しかかからない。これは、4ページ目と1ページ目で多くの共通オブジェクトを利用しており、続きで印刷する事で描画時間を短縮できるためである。
【0161】
このように先頭のページは描画を早く開始するため、最小のページサイズのページを配置して、その後に続くページは描画時間で決定することで、実施例1よりも1ページ目の印刷開始まで(1stプリント)の時間を短縮できる。
【0162】
<まとめ>
以上説明したように、本実施例の印刷システム1は、面付け対象ページ群において先頭ページをデータサイズの最も小さいページに配置し、以降のページを共通オブジェクトの描画時間が長いページ同士が隣接するように配置するので、描画時間を短縮し、印刷開始までの時間を短縮できる。
【実施例3】
【0163】
実施例1は、どのオブジェクトが何ページ目かという情報(ページツリーオブジェクト))を、PDFファイルの先頭に配置したが、本実施例では面付け単位でページツリーオブジェクトを配置する印刷システムについて説明する。
【0164】
図22は、PDFファイルを生成する処理の一例を示すシーケンス図である。なお、
図22の説明では
図13との相違を主に説明する。
【0165】
図22の処理では、ステップS13の「どのオブジェクトが何ページ目かという情報(/pages)を出力バッファに入れる」処理が面付け対象ページ群のループ内で実行されている。したがって、面付け単位でページツリーオブジェクトが配置される。以降の処理は
図13と同様でよい。
【0166】
図23は、面付けが必要なPDFファイルのシリアライズの一例を示す図である。
図23では
図14との相違を主に説明する。
図23のPDFファイルは、1つ目のページツリーオブジェクトの後に4ページ目~1ページ目のオブジェクトがあり、その次に更に2つめのページツリーオブジェクトが配置されている。すなわち、面付け対象ページ群ごとにページツリーオブジェクトが配置される。
【0167】
先頭のページツリーオブジェクトはルートのページツリーオブジェクトであり、2つ目以降のページツリーオブジェクトは、ルートのページツリーオブジェクトの子ノードとなるページツリーである。PDFファイルでは仕様として、ページツリーオブジェクトの子ノードに他のページツリーオブジェクトを指定することができる。
【0168】
このようにページツリーオブジェクトを配置することで、先頭のページツリーオブジェクトのサイズを小さくでき、1物理ページ分のPDFファイルを受信する時間を短くできる。
【0169】
なお、本実施例のように、面付け単位でPDFファイルにページツリーオブジェクトが配置された場合、
図16のPDFファイルの生成処理ではステップS61-3の処理においてページツリーオブジェクトを設定しなくてよい。ステップS61-5、61-6でページツリーオブジェクトは読み捨てられないので、PDFファイルに設定される。
【0170】
<まとめ>
本実施例によれば、実施例1の効果に加え、1物理ページ分のPDFファイルを受信する時間を短くできる。
【0171】
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0172】
例えば、本実施形態ではPDFファイルを例にして説明したが、ランダムアクセスファイルであれば好適に適用できる。例えば、XPSファイルでもよい。
【0173】
また、
図8などの構成例は、クラウドサービス50及び画像形成装置20による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。クラウドサービス50及び画像形成装置20の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
【0174】
なお、印刷システム1が複数のクラウドサービス50を有していてもよく、クラウドサービス50の機能が複数のサーバに分散して設置されていてもよい。
【0175】
なお、ファイル生成部5200は生成手段の一例であり、通信部5100は送信手段の一例であり、ページソート部5300はソート手段の一例であり、通信部2100は受信手段の一例であり、印刷データ処理部2220は処理手段の一例である。
【符号の説明】
【0176】
1 印刷システム
2 通信ネットワーク
10 端末
20 画像形成装置
50 クラウドサービス
【先行技術文献】
【特許文献】
【0177】