(第1の実施形態)
以下、本発明を実施するための第1形態について図面を用いて説明する。
まず、本実施形態を説明する際に前提となる用語について説明する。本実施形態において、「ダイレクトプリント」とは、印刷対象のデータを、PCなどのコンピュータを介さずに印刷装置で印刷する方法をいう。また、本実施形態において、「PDFダイレクトプリント」とは、ISOが規定するPDF(Portable Document Format)ファイルをダイレクトプリントする方法をいう。本実施形態では、PDFダイレクトプリントの例として、USBメモリ内に保存されたPDFファイルを印刷装置で直接印刷する例を説明する。なお、USBメモリはリムーバブルメディアの一例である。USBメモリの代わりに、SDカードや、メモリースティック、スマートメディア、PCカードなどのメモリカードなどのリムーバブルメディアを用いてもよい。また、リムーバブルメディアではなく、印刷装置に内蔵するHDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)等の記憶装置を用いてもよい。
ところで、PDFファイルには、添付ファイルが添付され利用される場合がある。PDFの添付ファイルは、例えば、注釈としてのファイルや、参考資料として添付されることができる。本実施形態では、このように添付ファイルが添付されているPDFのダイレクトプリントを行う画像形成装置について説明する。
なお、PDFファイルには、様々なファイルフォーマットのファイルを添付することが可能である。例えば、JPEGファイルや、TIFFファイル、DOCファイルなどをPDFファイルに添付することが可能である。添付ファイルは、例えば注釈や参考資料として利用される場合がある。なお、本実施形態では、添付ファイルが添付されているPDFファイルの部分を本体PDFと称することとする。添付ファイルは、本体PDFの特定のページに添付することもできる。以下では、ファイルが添付されているPDFのことを添付ファイル付きPDFと称する。
図1は、本実施形態における画像形成装置の一例としての印刷装置1000のハードウェア構成図である。印刷装置1000はコントローラユニット2000を有し、コントローラユニット2000は、画像形成デバイスであるプリンタ2095を接続している。コントローラユニット2000は、さらに、LAN(ローカルエリアネットワーク)1005に接続することによって、画像データやデバイス情報の入出力を行う。
コントローラユニット2000は、CPU2001を有し、CPU2001は、HDD2004に格納されているブートプログラムによりオペレーションシステム(OS)を立ち上げる。その後、このOS上でHDD2004に格納されているアプリケーションプログラムを実行することによって各種処理を実行する。このCPU2001の作業領域としてはRAM2002が用いられる。RAM2002は、作業領域とともに、画像データを一時記憶するための画像メモリ領域を提供する。HDD2004は、上記アプリケーションプログラムとともに、画像データやユーザ情報、装置設定情報を格納する記憶装置である。本実施形態では、HDD2004はハードディスクドライブを用いるものとする。しかし、HDDと同様のSATA(Serial Advanced Technology Attachment)のインターフェースで接続可能なSSD(ソリッドステートドライブ)を使用することもできる。CPU2001には、システムバス2007を介してRAM2002が接続されている。CPU2001には、さらに、操作部I/F(操作部インターフェース)2006、ネットワークI/F(ネットワークインタフェース)2010およびイメージバスI/F(イメージインタフェース)2005が接続されている。システムバス2007にはさらに、USB I/F(ユニバーサルシリアルバスインターフェイス)2011が接続されている。USB I/F2011にはUSBコネクタが備えつけられている。USBコネクタに接続されたUSBメモリ1006からファイルを読出しCPU2001に転送したり、CPU2001からUSBメモリ1006にファイルを書き込んだりできる。操作部I/F2006は、タッチパネルおよび複数のハードウェアキー(ハードキーともいう)を有する操作部2012とのインターフェースであり、操作部2012に表示する画面データを操作部2012に対して出力する。また、操作部I/F2006は、操作部2012においてユーザにより入力された情報をCPU2001に送出する。次に、ネットワークI/F2010は、LAN1005に接続され、LAN1005を介してLAN1005上の各装置との間で情報の入出力を行う。イメージバスI/F2005は、システムバス2007と、画像データを高速で転送する画像バス2008とを接続する、データ構造を変換するためのバスブリッジである。画像バス2008は、PCIバスまたはIEEE1394から構成される。画像バス2008上には、ラスタイメージプロセッサ(RIP)2060、デバイスI/F2020、プリンタ画像処理部2090、画像回転部2030、画像圧縮部2040が設けられている。RIP2060は、PDLコードをビットマップイメージに展開するプロセッサである。デバイスI/F2020には、画像形成を行うプリンタ2095が接続され、デバイスI/F2020は、画像データの同期系/非同期系の変換を行う。プリンタ画像処理部2090は、プリント出力画像データに対してプリンタ2095の補正、解像度変換などを行う。画像回転部2030は、画像データの回転を行う。画像圧縮部2040は、多値画像データをJPEGデータに、2値画像データをJBIG、MMR、MHなどのデータに圧縮するとともに、その伸張処理を行う。
図2は、印刷装置1000で動作するアプリケーションプログラムのソフトウェア構成の主要部分を説明するソフトウェア構成図である。
印刷装置1000は、操作部アプリケーション3010、デバイス制御部3030、ネットワーク制御部3035、画像処理部3037、USB制御部3038、ファイル変換処理部3017、データ管理部3100から構成される。
操作部アプリケーション3010は、操作部2012のユーザ操作に応じた処理を行うソフトウェアである。操作部アプリケーション3010は、主制御部3011およびダイレクト印刷処理部3015から構成される。主制御部3011は、操作部2012への画面表示や、ユーザのハードキー操作又はタッチパネル操作の受け付けなどの基本的な入出力を行う。ダイレクト印刷処理部3015は、内蔵のHDD2004やリムーバブルメディアとしてのUSBメモリ1006に保存されているデータ(例えばPDFファイル)の表示、印刷設定、印刷等の制御を行う。
データ管理部3100は、HDD2004に格納されている各種データを管理するためのソフトウェアである。データ管理部3100は文書管理部3050と文書情報3051で構成される。文書管理部3050は、HDD2004に保存された画像データなどのファイルからなる文書の作成・変更・削除・閲覧処理や、文書を格納するフォルダの作成・変更・削除・閲覧、文書やフォルダの属性情報の変更、文書や文書の一時保管などの処理を行う。また、ファイルやフォルダやその属性情報は文書情報3051で管理される。
デバイス制御部3030は、プリンタ制御部3033を利用してプリンタ2095を制御するソフトウェアである。ネットワーク制御部3035は、ネットワークI/F2010等のLANアダプタを制御するLANドライバである。画像処理部3037は、フルカラー画像を白黒画像、単色画像、2色画像などへの変換や、拡大、縮小を行うソフトウェアである。また画像処理部3037は、画像データから印刷データへの変換処理も行う。USB制御部3038は、USBメモリ1006等のUSBデバイスを制御するUSBドライバである。
ファイル変換処理部3017は、Portable Document Format(PDF)やXML Paper Specification(XPS)から画像データへの変換を行うソフトウェアである。
図3は、USBメモリ1006内のフォルダに保存されているファイルを一覧するための「ファイル一覧画面」の一例である。この画面は、USBメモリ1006がUSB I/F2011のUSBコネクタに接続されたときに、操作部2012のタッチパネルディスプレイに表示される。
4001は、現在表示中のファイルを格納するフォルダの名称を表示する領域である。この例では、Aドライブの“/2012/November”というフォルダ内のファイル一覧を表示していることを示している。4002はフォルダ内のファイル一覧を表示する領域である。この例では、“REPORT.PDF”および“NEWS.PDF”という2つのファイルがフォルダ内に格納されていることを示している。また、日付/時刻欄にはファイルの作成日付/時刻が表示されている。
図3の画面で、非選択状態のファイル名をタッチすると、1つのファイルを選択可能である。選択状態のファイルは反転表示され、選択状態であることをユーザが識別できるように表示される。図3の例では“REPORT.PDF”が色反転されており、このファイルが選択状態であることを示している。一方、図3の画面で、選択状態のファイル名をタッチすることにより、非選択状態に変更できる。
図3の画面で、「上へ」ボタン4003をタッチすると、4001、4002の内容を現在表示しているフォルダの上位の階層のフォルダの内容に更新する処理を行う。図3の画面を表示している状態でユーザが「上へ」ボタン4003をタッチするとフォルダ名称4001が、“A:/2012/November”から“A:/2012”へ変更される。そして、ファイル一覧表示部4002には“/2012”内のフォルダ“November”が表示される。また“November”フォルダ以外にファイルやフォルダがあればそれも一緒にファイル一覧表示部4002に表示される。
図3の画面で、「詳細情報」ボタン4004をタッチすると、選択状態のファイルの詳細情報を表示する。詳細情報には、例えばファイル作成者、ファイルのデータサイズなどが含まれる。「ファイル編集」ボタン4005をタッチすると選択状態のファイルに対するファイル編集のメニューが表示される。ファイル編集では、ファイル名の変更やファイルの削除などができるようになっている。「画像表示」ボタン4006をタッチすると選択中のファイル内容を表示するビューアが表示される。
図3の画面で、「印刷する」ボタン4007をタッチすると、図4の画面、すなわち、選択状態のファイルの印刷設定を行うための「印刷設定画面」が表示される。
図4を用いて「ファイル印刷画面」の一例を説明する。図4は、ファイルを図3の画面で「印刷する」ボタン4007をタッチされると、操作部2012のタッチパネルディスプレイに表示される。
5001はファイル名を表示する領域である。ここには、ファイル一覧表示部4002で選択した印刷対象ファイルのファイル名が表示される。ここでは、“REPORT.PDF”が印刷対象ファイルであることを示している。出力用紙5002では印刷出力を行う記録紙のサイズをユーザの指示に従い選択することが可能になっている。ここには、印刷装置1000の給紙カセットに登録されている記録紙のサイズの中から1つをプルダウン形式で選択可能になっている。図4の例では、A4サイズを選択している例を示している。カラー選択5003は、出力時の印刷がカラー印刷かモノクロ印刷かをユーザの指示に従い選択可能になっている。ここでは、カラー印刷を選択している例を示している。印刷方法5004は、出力時の印刷が片面印刷か両面印刷かをユーザの指示に従い選択可能になっている。片面印刷では記録紙の表面のみに印刷を行い、両面印刷では記録紙の表面と裏面の両面に印刷を行う。ここでは、片面印刷を選択している例を示している。ページ集約5005はページ集約の設定をユーザの指示に従い選択可能になっている。ページ集約とは記録紙面に1面以上の論理ページを配置する印刷方法である。1in1では記録紙面に1面の論理ページを配置し、2in1では記録紙面に2面の論理ページを配置するというようにNin1では記録紙面にN面の論理ページを配置する。ページ集約を行うことにより、印刷に必要なページ数を減らすことができるため、省コストで印刷ができるようになる。ただし、論理ページの面数(N)が大きくなれば、その分論理ページの面積は小さくなるので文字や図形が小さくなり読みにくくなる。ここでは、1in1を選択している例を示している。部数5006では印刷する部数を設定可能である。数値表示部をタッチし数字が刻印されたハードキー(テンキー)を操作することにより数値を変更できる。また、画面に表示されている上向き三角のボタンをタッチすると1部増加し、下向き三角のボタンをタッチすると1部減少する。この例では印刷部数として1部が設定されている。「添付ファイルを印刷する」ボタン5007をタッチすると図5で示す「添付ファイルの印刷順指定画面」が表示される。ただし、選択中のファイルに添付ファイルが内包されていない場合には、ボタンをタッチすると添付ファイルを内包しない旨の表示を行った後、このボタンを選択不可状態に変更する。「その他設定」ボタン5008をタッチすると「ファイル印刷画面」には表示されていない印刷設定を行うための画面が表示される。例えば画像の向きが縦向きか横向きかの設定や、綴じ方の設定が可能である。「キャンセル」ボタン5009をタッチするとこの画面で行われた変更を反映せずにこの画面を閉じ、図3の「ファイル一覧画面」を表示する。「印刷開始」ボタン5010をタッチするとこの画面および「その他設定画面」で設定された印刷設定を一時的に保存し、指定された印刷設定に従った印刷処理を開始する。
図5は選択中のファイルに添付されている添付ファイル一覧、および添付ファイルの印刷順を設定するための「添付ファイルの印刷順指定画面」の一例である。この画面を描画するためには選択中のファイルの解析を行う必要がある。ファイルの解析処理については図7のフローチャートを用いて後述する。
図5の印刷順指定画面において、6001は選択中のファイルに添付される添付ファイルの一覧を表示する領域である。添付ファイル一覧6001には、添付ファイル毎に、ファイル名6005、添付ファイルの添付元のPDFファイルのページ番号としての添付元頁(ページ)6006、印刷順6007、主な印刷設定6008が表示される。添付元頁6006の欄には、添付ファイルが本体PDFの特定のページに関連づけされている場合にのみ、本体PDFのページ番号が表示される。一方、その添付ファイルが本体PDFの特定ページに関連づけられていない場合は、添付元頁6006の欄は空欄になる。図5の例では、“File1.JPG”が本体PDFの1ページ目に添付されていることを示している。そして、他のファイル“File2.TIF”、“File3.PDF”、“File4.JPG”、“File5.DOC”の添付元頁6006の欄は空欄であるため、本体PDFの特定のページに関連づけされていないことを示している。
印刷順6007の欄には、「添付元」、「数値」、「空欄」のいずれかの値が表示される。添付ファイルを添付元頁6006で示されるページの直後に印刷する場合には「添付元」の値が表示される。図5の例では、“File1.JPG”を添付元の“REPORT.PDF”の添付元頁の後(すなわち1ページ目の直後)に印刷することを示している。
印刷順6007の欄に特定の数値が示されている場合には、本体PDFを全ページ印刷した後に添付ファイルを順番に印刷する際の印刷順番が表示される。例えば「1」が示されている場合には、本体PDFを全ページ印刷した直後に印刷される。数値は印刷順が指定されるので本体PDFの後に印刷する添付ファイルの数分だけ1から順番に番号付けされる。
図5の例では、本体PDF“REPORT.PDF”の1ページ目を印刷した後に、添付ファイル“File.JPG”が印刷される。そして、本体PDF“REPORT.PDF”を全ページ印刷した後に、“File4.JPG”、“File2.TIF”をこの順番で印刷する。
印刷順6007の欄が空欄である場合はその添付ファイルを印刷しないことを意味する。図5の例では“File3.PDF”、“File5.DOC”の印刷順6007の欄は空欄になっており、印刷しないことを示している。
印刷設定6008には各添付ファイルの主な印刷設定が表示される。この例では、“File1.JPG”を、出力用紙A4、カラー印刷、片面印刷、1in1の設定に従って印刷することを示している。他のファイルについても設定に従った印刷設定が表示されている。“File3.PDF”、“File5.DOC”は印刷しないため、空欄になっている。
なお、図5の画面で、“File1.JPG”のファイルは色反転されており、このファイルが選択状態であることを示している。また、“File5.DOC”の文字色がグレーになっており、印刷装置1000でサポートしていないファイル形式であることを示している。添付ファイル一覧6001を表示するためのデータはRAM2002に確保された領域に保持されている。「印刷設定」ボタン6002をタッチすると、図6の「添付ファイルの印刷設定画面」が表示される。「OK」ボタン6003をタッチするとこの画面を閉じる。
図6は各添付ファイルの印刷設定を指定するための「添付ファイルの印刷設定画面」の一例である。図6の画面は、図5の「印刷設定」ボタン6002がタッチされたときに操作部2012のタッチパネルディスプレイに表示される。
図6の画面において、ファイル名7001には、図5の「添付ファイルの印刷順指定」画面で選択した添付ファイルの名称が表示される。図6の画面では、この選択中の添付ファイルに対する印刷設定を指定することが可能である。
印刷順7002は、印刷順の指定がプルダウン形式で選択可能になっている。本実施形態では、「添付元頁」、「数値」、「印刷しない」のいずれかを選択可能になっている。なお、「添付元頁」が選択できるのは、その添付ファイルが本体PDFの特定のページに関連づけされている時のみである。つまり、図5の添付元頁6006の欄に数値が指定されている時のみである。「添付元頁」を選択すると、添付元の頁の直後(指定されたページを印刷した直後)にその添付ファイルを印刷することを意味する。
「数値」は添付元ファイルを印刷した後に何番目に選択中の添付ファイルを印刷するのかを指定する数値である。「印刷しない」を選択すると、選択中の添付ファイルを印刷しないことを意味する。
出力用紙7003、カラー選択7004、印刷方法7005、ページ集約7006は、それぞれ、出力用紙5002、カラー選択5003、印刷方法5004、ページ集約5005と同様の選択肢を選択可能である。これらは、選択中の添付ファイルに対する印刷設定を指定するものであり、本体PDFに対する印刷設定とは独立に指定可能である。
「その他設定」ボタン7008をタッチすると「その他設定」ボタン5008をタッチした時に表示されるのと同様の画面が表示される。また、「キャンセル」ボタン7009をタッチするとこの画面で行われた設定の変更を反映せずに画面を閉じ、図5の「添付ファイルの印刷順指定画面」に戻る。「OK」ボタン7010をタッチするとこの画面で行った設定変更を一時的に保存し、図5の「添付ファイルの印刷順指定画面」に戻る。この時「添付ファイルの印刷順指定画面」にはこの画面で指定した印刷設定などが反映された状態で表示される。
ユーザがそれぞれの添付ファイルについて、図5「添付ファイルの印刷順指定画面」および図6の「添付ファイルの印刷設定画面」を操作して所望の印刷設定を終えると、図4「ファイル印刷画面」に戻る。そして図4「ファイル印刷画面」で「印刷開始」ボタン5010をタッチすると、印刷が開始される。なお印刷処理の詳細については、別途、図8のフローチャートを用いて詳細を説明する。
ここで、図9を用いてPDFファイルの構造を説明する。ファイルの先頭にこのファイルがPDFファイルであることを意味するヘッダー9010が配置される。ファイルの末尾にはトレーラ9040が配置され相互参照表9030をすばやく見つけられるようになっている。
相互参照表9030にはファイル内のオブジェクトのリストが記載されており、これを参照することにより、ファイル内のオブジェクト(9020、9021、9022)にアクセスできるようになっている。オブジェクトとは、フォント、頁、サンプリングイメージ、埋め込みファイルストリームなど文書を構成するコンポーネントである。
次に図12を用いて、添付ファイルが添付されているPDFファイルを表現するオブジェクトについて説明する。12000はREPORT.Pのページ構造を表すページツリーオブジェクトである。12010は12000がページツリーオブジェクトであることを示すため“Type”を“Pages”としている。ページツリーリストの2番目の要素として“Kids”が配置される。ここにはページオブジェクトへの間接参照が、ページ順に記載される。Report.PDFは3頁で構成されているので、ここには1ページ目のページオブジェクト(12100)、2ページ目のページオブジェクト(12200)、3ページ目のページオブジェクト(図示していない)への間接参照が記載される。最後の要素はページ数を表す“Count”12030である。ここでは“3”が記載される。次に1ページ目のページオブジェクト12100について説明する。12110は12100がページオブジェクトを示すため“Type”を“Page”としている。2番目の要素として12120は親のページツリーを参照する“Parent”を記載する。ここで親のページツリーは12000なので、12000への間接参照が記載される。12130はこのページで参照されるコンテンツストリームである。ここでは、コンテンツの配列などへの参照が順番に記載されている。ここではコンテンツのひとつとして図10で説明した添付ファイル(File1.jpg)を含むので10010への間接参照が記載されている。
このように、1ページ目のページオブジェクトから参照されることで添付ファイル“File1.jpg”が1ページ目に添付されていることが判別できる。ページオブジェクトからの参照がない場合は、添付元頁なしと判別できる。
次に図11を用いて添付ファイルを表現するオブジェクトについて説明する。ここではFile1.JPGを表現する例を説明する。添付ファイルは2つのオブジェクトを用いて表現される。まず図11の左側の図で表現されるファイル指定オブジェクト10000でファイルを参照することを表現する。ファイル指定オブジェクト10000は以下の要素から構成される。Type10010はこのオブジェクトがファイル辞書であることを示す“Filespec”である。F10020はファイル名が“File1.JPG”であることを意味する。EF10030は埋め込みファイルストリームオブジェクト10100を参照するようになっている。埋め込みファイルストリームオブジェクトは埋め込むファイルを表現するオブジェクトである。Type10110はこのオブジェクトが埋め込みファイルストリームであることを示す“EmbeddedFile”である。Length10120はストリームの長さを表現するここではストリームの長さが1000000バイトであることを示している。SubType10130は“image−jpeg”となっておりこのファイルがJPEGファイルであることを示している。ストリーム10140にはファイルの実データが書かれている。
図5の「添付ファイルの印刷順指定画面」を表示するには、ファイルの構造を解析する必要がある。ここで、図7のフローチャートを用いてファイル構造の解析処理について説明する。
図7のフローチャートの処理は、ユーザが操作部2012の画面に表示されている図4の「ファイル印刷画面」の「添付ファイルを印刷する」ボタン5007をタッチすると開始される。このフローチャートで説明される処理は、CPU2001がHDD2004からRAM2002にロードされたプログラムを実行して処理するものとする。
S1010では、CPU2001は、ファイルの構造を解析するために、USBメモリI/F 2011に接続されているUSBメモリ1006内に格納されているPDFファイルのうち、選択状態にあるPDFファイルを読出してRAM2002に書き込む。
S1020では、CPU2001は、RAM2002に書き込んだPDFファイルの相互参照表9030から1つのオブジェクトを順次読み出す。
S1030では、これ以上処理するオブジェクトがなければ、S1130で、ファイルをクローズするとともに、メモリの解放処理を行い、このフローを終了する。
S1040では、読み出したオブジェクトが添付ファイルかどうかを判定する。オブジェクトのTypeが10010のようにFilespecであればEF要素の参照先オブジェクトのTypeを参照する。これが10110のようにEmbeddedFileであれば添付ファイルであると判断する。添付ファイルでないと判断した場合は、S1120に処理を進め、オブジェクトの種類に応じた処理を施す。この処理については従来から行われているよく知られた処理である。
S1050では、S1040で添付ファイルと判断されたオブジェクトのファイル名を読み出すとともに、1ファイルの分の情報を書き込むための領域を確保し、添付ファイル一覧6001の表示領域に読み出したファイル名を追記する。図5のREPORT.PDFの例では、“File1.JPG”、“File2.TIF”、“File3.PDF”、“File4.PDF”、“File5.DOC”の添付ファイルが順次読み出され、添付ファイル一覧6001の表示領域に表示される。
S1060では、添付ファイルのオブジェクトを参照している頁オブジェクトを検索し、参照元の有無を検査する。参照元の頁があればS1070に、なければS1100に処理を進める。
S1070では、参照元の頁番号を添付ファイル一覧6001の添付元頁6006の領域に書き込む。S1100では、添付元頁6006の領域に参照元頁がないことを表す空白データを書き込む。
S1080では、添付ファイルのファイル名10020の拡張子を読出し、ファイルを印刷可能であるかどうかを判定する。本実施形態では、拡張子が“JPG”、“TIF”、“PDF”は印刷可能であるが、それ以外は印刷できないものと判断する。印刷可能であればS1090に、そうでなければS1110に処理を進める。
S1090では、添付ファイル一覧6001のデータ保存領域の印刷可能データ部に印刷可能であることを書き込む。さらに、ストリーム10140を読出し、文書管理部3050を用いて文書情報3051に一時的なファイル情報として保存する。
S1110では添付ファイル一覧6001のデータ保存領域の印刷可能データ部に印刷可能でないことを書き込む。
以上で、添付ファイルの印刷順指定画面を表示する例について説明した。図7の処理手順を実施することにより例えば図5のような画面が表示され、本体PDFに添付ファイルが添付されているか否かをユーザが識別することができる。なお、図7の処理は、図4の画面上で「添付ファイルを印刷する」ボタン5007をユーザがタッチすると開始するが、USBメモリ1006がUSB I/F2011に接続されたことに応じて開始してもよい。
次に、USBメモリ1006内に格納されているPDFファイルを印刷する際の処理手順について説明する。図8のフローチャートは添付ファイルを指定された順番で印刷する処理を説明している。このフローチャートで説明される処理は、CPU2001がHDD2004からRAM2002にロードされたプログラムを実行して処理するものとする。
図8のフローチャートは、図4のファイル印刷画面の「印刷開始」のボタン5010が押下された場合に処理を開始する。
S2010では、S1010でRAM2002に保存したファイルから1頁分のデータを読み出し、ファイル変換処理部3017、画像処理部3037を用いて指定の印刷形式に変換する。このとき、図4の「ファイル印刷画面」で指定された印刷設定に従った変換を行う。さらに、印刷形式データを、文書管理部3050を用いて文書情報3051に保存する。
S2020では添付ファイル一覧6001のデータ保存領域の添付元頁部を参照して、対象の頁の後に印刷すべき添付ファイルがあるかどうかを判定する。図5の画面で設定した印刷順6007の欄に「添付元」の値が設定されている場合には、S2020でYESと判定される。
S2020でNOと判定した場合は、S2040に処理を進め、YESと判定した場合はS2030に処理を進める。S2030では、S2020で見つけた添付ファイルを、文書管理部3050を用いて文書情報3051から読み出す。次に、読み出した添付ファイルをファイル変換処理部3017、画像処理部3037を用いて印刷形式に変換する。このとき図6の「添付ファイルの印刷設定画面」で指定された印刷設定に従って印刷形式に変換する。さらに、印刷形式データを、文書管理部3050を用いて文書情報3051に保存する。
S2040では、最終頁まで処理したかどうかを判定し、最終頁まで処理が終わっていれば、S2050に処理を進め、まだ処理すべき頁が残っていればS2010に処理を進める。S2050、S2060では、添付元頁がない添付ファイル、すなわち、添付ファイルが本体PDFの特定ページに関連づけされている添付ファイルを印刷データに変換する処理を行う。
S2050では、最初にループカウンタを1に設定し、印刷する添付ファイルがあるかどうかの判定を行い、あればS2060に進め、なければS2070に処理を進める。この判定は添付ファイル一覧6001のデータ保存領域の印刷順部を参照しループカウンタと一致するものがあるかどうかで行う。S2060では印刷頁部がループカウンタと一致するファイルを印刷形式に変換し、文書情報3051に保存する。この処理はS2030と同様の処理である。ここではさらにループカウンタを1だけ増加させる。
S2070では、S2010、S2030、S2060で文書情報3051に保存した印刷データを1つの印刷データに結合する処理を行い、1つの印刷ジョブとして実行できるようにする。
S2080では、S2070で作成した印刷ジョブを実行し、プリンタ2095で画像形成を行い、画像を用紙に印字する。このとき、本体PDFは図5で受け付けた印刷設定に従い印刷され、添付ファイルが添付されている場合はその添付ファイルは図6で受け付けた印刷設定に従い印刷される。
図12に本実施形態による印刷例を示す。図12は、次の4つのファイルを印刷する例である。すなわち、
・3頁からなる“REPORT.PDF”(本体PDF)、
・本体PDFの1頁目に添付されている“File1.JPG”の添付ファイル、
・特定の頁に関連づけされていない“File4.JPG”、“File2.TIF”の添付ファイル
である。図12の例は、図5の画面で設定した順序に従って印刷を行う例である。
図12において、まず、“REPORT.PDF”の1頁目が印刷され、その後に“File1.JPG”が印刷される。次に“REPORT.PDF”の2頁目、3頁目が印刷される。“REPORT.PDF”の全頁の印刷が終わると、引き続き、1番目に指定されている“File4.JPG”が印刷される。最後に“File2.TIF”を印刷する。“File2.TIF”は8頁のファイルであるが、両面、4in1での印刷設定がなされているため、1枚の記録紙に印刷されている。ここでは、表面に論理4面の頁が印刷されていることしか図示されていないが、裏面にも論理4面の頁が印刷されている。
以上で、第1の実施形態について説明した。第1の実施形態によれば、ファイルが添付されているPDFファイルを印刷する際に添付ファイルの印刷順および添付ファイルの印刷設定をファイル毎に指定可能になる。これにより、添付ファイルを含むファイルを直接印刷する場合のユーザの使い勝手が向上する。
(第2の実施形態)
次に第2の実施形態について図面を用いて説明する。
第2の実施形態では、ユーザがパーソナルコンピュータに保存されたPDFファイルをWebブラウザで動作するWebアプリケーションを用いて直接印刷する例を説明する。
PDFファイルには複数の添付ファイルが内包されており、本体部とともに添付ファイルも印刷する。
図13は、第2の実施形態における印刷装置1000を含むシステム構成を表すシステム構成図である。印刷装置1000はローカルエリアネットワーク(LAN)1005に接続されている。またLAN1005にはパーソナルコンピュータ(PC)1002が接続されており、印刷装置1000と通信可能になっている。LAN1005には無線LANルータ1007が接続されている。なお、印刷装置1000の構成は第1の実施形態と同様であるため説明は省略する。
また、スマートフォン1003、タブレット端末1004は無線LANルータ1007を介して、印刷装置1000と通信可能になっている。
PC1002、スマートフォン1003、タブレット端末1004にはWebブラウザが組み込まれており、ネットワーク上のWebサーバが提供するWebページを表示し、操作可能に構成されている。
図14は、PC1002で動作しているWebブラウザに表示されるファイル印刷画面の一例である。このファイル印刷画面は、ユーザがWebブラウザを使用して提供するWebページ実行のためのURL(Unified Resource Locator)にアクセスし、ダイレクト印刷の操作を行った時に表示される。この画面は、印刷装置1000のWebサーバ部(不図示)で作成しPC1002に返送される。このときHTML(Hypertext Markup Language)などを用いて画面を作成し、HTTP(Hypertext Transfer Protocol)を用いて画面や画面の操作情報を送受信する。
図14において、15001はファイル名表示部である。ここは、印刷対象となるファイルのファイル名を入力する部分である。キーボードなどを用いて直接文字入力可能である。また、「参照」ボタンを操作することによりWebブラウザが提供するファイル選択用の画面から、PC1002のファイルシステムに保存されているファイルの一覧からファイルを選択して入力することもできる。ここでは「REPORT.PDF」というファイル名が印刷対象となっていることを示している。出力部数指定部では印刷出力を行う部数を指定可能になっている。印刷する部数をキーボードなどを用いて直接入力可能である。また、「上向き三角」ボタンを操作することで部数を増やしたり、「下向き三角」ボタンを操作することで部数を減らしたりすることもできる。ここには正整数のみを入力可能である。ここでは、「1部」が指定されている例を示している。出力用紙選択部では印刷出力を行う記録紙のサイズを選択可能になっている。ここには印刷装置が保持している記録紙のサイズの中から1つを選択可能になっている。ここでは、A4サイズを選択している例を示している。
両面印刷指定部では出力時の印刷が片面印刷か両面印刷かを選択可能になっている。片面印刷では記録紙の表面のみに印刷を行い、両面印刷では記録紙の表面と裏面の両面に印刷を行う。ここでは、片面印刷を選択している例を示している。
とじ方向指定部ではとじ方向を指定可能である。とじ方向としては「長辺とじ(上)」、「長辺とじ(下)」、「短辺とじ(左)」、「短辺とじ(右)」などが指定可能である。ここでは「長辺とじ(上)」が指定されている例を示している。「キャンセル」ボタン15009を操作するとキャンセルボタンを操作したことをWebUI操作部3016に通知する。
「印刷」ボタンを操作するとこの画面で設定された印刷設定を印刷装置1000のWebサーバ部に送付する。このとき、ファイル名表示部5001で指定されたファイルもWebUI操作部に送付される。
図15は選択中のファイルに内包される添付ファイル一覧およびファイルを印刷するかどうかを指定するための添付ファイル一覧画面の一例である。この画面を描画するためには印刷対象に指定されたファイルの解析を行う必要がある。ファイルの解析処理については図16のフローチャートを用いて後述する。16000は選択中のファイルに内包される添付ファイルの一覧を表示する。添付ファイル毎にファイル名、印刷指定欄が表示されている。
印刷指定欄には印刷可能かどうかが表示され、印刷可能な場合は印刷するかどうかを指定するためのチェックボックスが表示されるようになっている。
16001の行ではファイル名“File1.JPG”のファイルが含まれており、印刷指定欄に「印刷可」と表示され、チェックボックスが選択状態になっている。この例では、File1.JPGを印刷することを指定している。16002の行ではファイル名“File2.TIF”のファイが含まれており、印刷指定欄に「印刷可」と表示され、チェックボックスが非選択状態となっている。この例ではFile2.TIFは印刷可能であるが、印刷しないことを指定している。6003の行では、ファイル名“File5.DOC”がグレー表示され、また印刷指定欄に「印刷不可」と表示することでFile5.DOCが含まれているが、印刷可能なファイルではないことを示している。
16010の「キャンセル」ボタンを操作すると、キャンセル操作が行われたことが印刷装置1000のWebサーバに通知される。16020の「OK」ボタンを操作すると、この画面で指定した内容がWebサーバに送付される。
図15「添付ファイル一覧」画面を表示するには、ファイルの構造を解析する必要がある。ここで、図16のフローチャートを用いてファイル構造の解析処理について説明する。このフローチャートで説明される処理はすべてCPU2001がダイレクト印刷処理部3015のソフトウエアを実行して処理するものとする。
この処理はユーザがPC1002で動作しているWebブラウザに表示されている図14「ファイル印刷画面」の「印刷」ボタン15010を操作すると開始される。Webブラウザで「印刷」ボタン15010を操作すると画面で指定された内容と画面で指定されたファイルの実体がLAN1005を経由して印刷装置1000に送信される。1001は送信されたデータをネットワークI/F2010を経由して受信する。このデータ受信処理は主に印刷装置のWebサーバで処理される。
S11010では、印刷装置1000がPC1002から受信したPDFファイルおよび図14の「ファイル印刷」画面で指定された印刷設定をRAM2002に保存する。
S11020では、RAM2002に保存したPDFファイルの相互参照表9030から1つのオブジェクトを読み出す。
S11030では、これ以上処理するオブジェクトがなければ、S11125に処理を進める。S11040では、読み出したオブジェクトが添付ファイルかどうかを判定する。オブジェクトのTypeが10010のようにFilespecであればEF要素の参照先オブジェクトのTypeを参照する。これが10110のようにEmbeddedFileであれば添付ファイルであると判断する。添付ファイルでないと判断した場合は、S1120に処理を進めオブジェクトの種類に応じた処理を施す。この処理については従来から行われているよく知られた処理であるので、ここでは特に説明は行わない。
S11050では、添付ファイルのファイル名“File1.JPG”を読出し、添付ファイル一覧6001のデータ保存領域に1ファイル分の情報を書き込むための領域を確保し、ファイル名部に書き込む。
S11060では、添付ファイルのオブジェクトを参照しているページオブジェクトを検索し、参照元の有無を検査する。参照元の頁があればS11070に、なければS11100に処理を進める。S11070では参照元の頁番号を添付ファイル一覧6001のデータ保存領域の添付元頁部に書き込む。S11100では参照元頁番号部に参照元頁がないことを表す空白データを書き込む。
S11080では添付ファイルのファイル名10020の拡張子を読出し、ファイルを印刷可能であるかどうかを判定する。本実施例では、拡張子が“JPG”、“TIF”、”PDF”は印刷可能であるが、それ以外は印刷できないものと判断する。印刷可能であればS11090に、そうでなければS11110に処理を進める。
S11090では、添付ファイル一覧6001のデータ保存領域の印刷可能データ部に印刷可能であることを書き込む。さらに、ストリーム10140を読出し、これを文書管理部3050を用いて文書情報3051に一時的なファイル情報として保存する。
S11110では添付ファイル一覧6001のデータ保存領域の印刷可能データ部に印刷可能でないことを書き込む。
S11125では解析中のファイルについてS11040で添付ファイルありと判定したかどうかを検査し、添付ファイルありであればS11130に、そうでなければS11135に処理を分岐する。S11130では、図15の「添付ファイル一覧」画面を作成し、PC1002に送付する。S11135では、RAM2002に保存したPDFファイルを、RAM2002に保存されたダイレクト印刷実行画面、および添付ファイル一覧画面の設定に従って印刷する。そして、PC1002には印刷を開始したことを知らせる画面を返送する。 なお、上述した実施形態では、USBメモリ1006に添付ファイル付きPDFが格納されている例を説明したが、HDD2004に格納されている添付ファイル付きPDFについても同様の方法で実施することが可能である。この場合、USB制御部3038の代わりに、文書管理部3050にアクセスするように変更すればよい。
また、上述した実施形態では、PDFファイルのダイレクトプリントの例を説明したが、例えばマイクロソフト社のOFFICEアプリケーションファイル(docx、pptx等)のダイレクトプリントにも適用することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。