JP2015197826A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2015197826A
JP2015197826A JP2014075826A JP2014075826A JP2015197826A JP 2015197826 A JP2015197826 A JP 2015197826A JP 2014075826 A JP2014075826 A JP 2014075826A JP 2014075826 A JP2014075826 A JP 2014075826A JP 2015197826 A JP2015197826 A JP 2015197826A
Authority
JP
Japan
Prior art keywords
data
data source
information
variable
pdf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014075826A
Other languages
English (en)
Inventor
直弘 磯部
Naohiro Isobe
直弘 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014075826A priority Critical patent/JP2015197826A/ja
Priority to US14/675,388 priority patent/US20150277825A1/en
Publication of JP2015197826A publication Critical patent/JP2015197826A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1242Image or content composition onto a page
    • G06F3/1243Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】バリアブルデータ印刷(可変データ印刷)において、レコード数が多い場合でも印刷データのデータ量を抑える。
【解決手段】データソースオブジェクトをデータソース情報に基づいて生成する第1の生成手段と、前記第1の生成手段により生成された前記データソースオブジェクトへの参照情報を、可変データ印刷における可変印刷データに記述する第1の記述手段と、前記第1の記述手段で記述された前記参照情報により参照される前記データソースオブジェクトに基づく印刷オブジェクトの生成に係るプレースホルダオブジェクトを、プレースホルダ情報に基づいて生成する第2の生成手段と、前記第2の生成手段により生成された前記プレースホルダオブジェクトへの参照情報を、前記可変印刷データのページオブジェクトに記述する第2の記述手段と、を有することによって課題を解決する。
【選択図】図3

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
バリアブルデータ印刷(Variable Data Printing:以下、VDPと表記する)として知られる印刷方法が行なわれている。VDPに使用される文書は、固定部分と可変部分とに分かれており、可変部分のデータがRDB(Relational Database)やCSV(Comma Separated Values)ファイル等のデータソースから供給される。VDPでは、データソースの列(カラム)がテンプレート文書の可変部分と関連付けられ、それがデータソースの行(レコード)毎に適用されることで、異なる内容の印刷が行われる。ここで、ひとつのVDPに必要なページレイアウトやデータソース等の論理的な情報の集まりをVDP文書と呼び、VDP文書を物理的な電子データにしたものをVDPデータと呼ぶ。
VDPデータは、一般的にはどのようなページ記述言語(Page Description Language:以下、PDLと表記する)でもよいが、VDP専用のPDLを用いる場合が多い。なぜなら、VDP専用のPDLは、VDP文書の固定部分のオブジェクト(以下、固定オブジェクトと表記する)を予め定義しておき、その固定オブジェクトを後から参照する参照情報の記述が可能だからである。このようなPDLを印刷処理する際には、個々の固定オブジェクトの解釈処理結果を保持しておき、それが参照される度に解釈処理結果をコピーするだけでよい。こうすることで、VDPデータ全体の処理が速くなることが期待できる。つまり、VDP専用のPDLは、VDPデータを解析処理するアプリケーションにとって処理効率のよいVDP文書を表現することができる。
特許文献1には、バリアブルデータ印刷(可変データ印刷)を効率的に行う技術が開示されている。より具体的に説明すると、特許文献1には、ページ情報は1つのレコード分だけを持ち、各ページにはレコードデータの内容によって動的に変化するプレースホルダを持たせることで、データ量を1レコード分だけに削減する技術が開示されている。
特開2013−134748号公報
しかしながら、特許文献1で提案されているフォーマットでは、データソースを持たないため、完全なページ記述言語となっていない。即ち、このフォーマットのデータのみではバリアブル印刷を実行することができず、ユーザーがデータソースを別途与えなければならない。一方、データソースを持つフォーマットでは、データソースのレコード数が多い場合、印刷データのデータ量が多くなってしまうという問題がある。
本発明は、バリアブルデータ印刷(可変データ印刷)において、レコード数が多い場合でも印刷データのデータ量を抑えることを目的とする。
そこで、本発明の情報処理装置は、データソースオブジェクトをデータソース情報に基づいて生成する第1の生成手段と、前記第1の生成手段により生成された前記データソースオブジェクトへの参照情報を、可変データ印刷における可変印刷データに記述する第1の記述手段と、前記第1の記述手段で記述された前記参照情報により参照される前記データソースオブジェクトに基づく印刷オブジェクトの生成に係るプレースホルダオブジェクトを、プレースホルダ情報に基づいて生成する第2の生成手段と、前記第2の生成手段により生成された前記プレースホルダオブジェクトへの参照情報を、前記可変印刷データのページオブジェクトに記述する第2の記述手段と、を有する。
本発明によれば、バリアブルデータ印刷(可変データ印刷)において、レコード数が多い場合でも印刷データのデータ量を抑えることができる。
拡張PDF/VTの情報の一例を示す図である。 レコード数分のページにおける描画結果の一例を示す図である。 拡張PDF/VTの構造の一例を示す図である。 データソース内部保持型拡張PDF/VTスクリプトの一例を示す図である。 データソース外部参照型拡張PDF/VTスクリプトの一例を示す図である。 システム構成の一例を示す図である。 ハードウェア構成の一例を示す図である。 実施形態1のアプリケーション処理概要の一例を示す図である。 実施形態1の入力データと出力のデータとの関係の一例を示す図である。 実施形態1における処理の一例を示すフローチャート(その1)である。 ユーザーインターフェースの一例を示す図(その1)である。 プレースホルダ情報ファイルの一例を示す図である。 実施形態1における処理の一例を示すフローチャート(その2)である。 実施形態2のアプリケーション処理概要の一例を示す図である。 実施形態2の入力データと出力のデータとの関係の一例を示す図である。 実施形態2における処理の一例を示すフローチャート(その1)である。 ユーザーインターフェースの一例を示す図(その2)である。 実施形態2における処理の一例を示すフローチャート(その2)である。
以下、本発明を実施するための形態について図面を用いて説明する。なお、以降の説明では、印刷内容の一部を差し替えながら印刷を行うバリアブルデータ印刷(可変データ印刷)(Variable Data Printing)をVDPと呼ぶ。また、ひとつのVDPに必要なページレイアウトやデータソース等の論理的な情報の集まりをVDP文書と呼び、VDP文書を物理的な電子データにしたものをVDPデータ(可変印刷データ)と呼ぶ。更に、以降の説明では、VDPデータフォーマットとして、図1等を用いて後述するPDF/VTデータにプレースホルダとデータソース情報とを付加する形態を用いて説明する。以降、このフォーマットを拡張PDF/VTと呼ぶ。なお、PDF/VTは、Variable Transactionの略称である。
<実施形態1>
(拡張PDF/VTの内容)
図1は、本実施形態における拡張PDF/VTの持つ情報の概念の一例を示す図である。
拡張PDF/VTは、1レコード分のページ(図1(a))と、データソース(図1(b))と、ページに配置されているプレースホルダ情報(図1(c)、(d))を持っている。1レコード分のページ(図1(a))は、1ページでも複数ページでもよいが、図1(a)では1ページだけの例が示されている。
ページ101は、通常のPDF/VTのページのように、画像やグラフィック等の描画オブジェクト102を配置するほかに、プレースホルダと呼ばれる領域(103、104)を配置できる。プレースホルダ103、104は、そこに描画される描画内容が、データソースから供給されるレコード情報の内容に従って、動的に変化する領域を表している。
データソース(図1(b))は、このバリアブル印刷ジョブで扱うレコード分のデータを持っている。
図1(c)、(d)は、それぞれプレースホルダ103、104に対応するプレースホルダ情報である。プレースホルダ情報は、対応するプレースホルダに描画される描画オブジェクトをデータソースのレコード情報から生成するための情報を持っている。例えば、図1(c)のプレースホルダ情報は、描画領域(BBox)が座標(20,100)の位置から(50,80)の位置までのサイズ(BBox=(20,100,50,80))であることを示している。また、前記プレースホルダ情報は、描画オブジェクトのタイプ(ObjectType)が「イメージ」(ObjectType=IMAGE)であることを示している。また、前記プレースホルダ情報は、イメージのファイル名がデータソースの"image"列から取得することができる(Column=image)であることを示している。更に、前記プレースホルダ情報は、描画領域内の描画位置(Alignment)は左上隅を基準とする(Alignment=TopLeft)であることを示している。なお、プレースホルダ情報はこの例に示すものに限らない。また、プレースホルダ情報とレコード情報とに基づいてプレースホルダを描画オブジェクト(印刷オブジェクト)に置換することを、以降の説明では「インスタンス化」と呼ぶ。
(拡張PDF/VTのインスタンス化結果)
図2は、図1の拡張PDF/VTをインスタンス化した場合の、レコード数分のページの描画結果の一例を示す図である。
図1の拡張PDF/VTのデータソース(図1(b))には4個のレコード(105、106、107、108)がある。図1の拡張PDF/VTの場合、インスタンス化は次のように行われる。
id=001のレコード(105)では、プレースホルダ1(103)には「a.jpeg」という名前のファイルに記述されたイメージ、プレースホルダ2(104)には文字列「あああ」が描画され、ページ201が生成される。id=002のレコード(106)では、プレースホルダ1(103)には「b.pdf」という名前のファイルに記述されたイメージ、プレースホルダ2(104)には文字列「いいい」が描画され、ページ202が生成される。id=003レコード(107)では、プレースホルダ1(103)には「c.png」という名前のファイルに記述されたイメージ、プレースホルダ2(104)には文字列「ううう」が描画され、ページ203が生成される。id=004のレコード(108)では、プレースホルダ1(103)には「d.tiff」という名前のファイルに記述されたイメージ、プレースホルダ2(104)には文字列「えええ」が描画され、ページ204が生成される。
拡張PDF/VTが持つ1レコード分のページ群は、インスタンス化の雛形となるものであるため、以降の説明では、拡張PDF/VTが持つ1レコード分のページ群を「テンプレート」と呼ぶ。
(拡張PDF/VTの内部構造)
本実施形態の拡張PDF/VTに限らず、PDFでは、一定の意味のある情報のかたまりを「オブジェクト」として表現し、オブジェクトがオブジェクトを参照する構成とすることで、ドキュメント全体を表現している。本実施形態の拡張PDF/VTは、従来のPDF/VTの構造に、新たなオブジェクトやオブジェクト間の参照を追加することで、図1で示したような、データソースやページ内にプレースホルダを持つといった特徴を備えている。
図3を用いて、拡張PDF/VTの構造を説明する。図3は、拡張PDF/VTの内部のオブジェクトと、その参照構造との一例を模式的に表した図である。拡張PDF/VTには、「データソース内部保持型」(図3(a))と、「データソース外部参照型」(図3(b))との2つの種類がある。
(データソース内部保持型拡張PDF/VTの内部構造)
まず、図3(a)の「データソース内部保持型」について説明する。
オブジェクト参照構造の最上位のオブジェクトは、Catalogオブジェクト301である。Catalogオブジェクト301は、DataSourceオブジェクト302を参照している。
DataSourceオブジェクト302は、拡張PDF/VT固有のオブジェクトであり、その拡張PDF/VTで使われるデータソースの情報を保持する。「データソース内部保持型」では、DataSourceオブジェクト302が図1(b)で表されるようなデータソースの実体303を持つ。
Catalogオブジェクト301は、更に、DPartRootオブジェクト304を参照している。DPartRootオブジェクト304、及びDPartオブジェクト305、306は、後述するPageオブジェクト(ページオブジェクト)を構造化するためのオブジェクトである。この構造について、PDF/VTでの仕様は公知であるため詳細な説明を省略し、ここでは本実施形態の拡張PDF/VTでの仕様について説明する。DPartRootオブジェクト304は、配下にDPart階層を持つことができ、どの階層がレコードレベルを表すかを示す属性情報「RecordLevel」を持つことができる。なお、DPart階層の数に制限はない。拡張PDF/VTでは、このRecordLevel属性の値を「1」固定とし、DPartRootオブジェクト304が参照するDPartオブジェクト305は、ただ1つのDPartオブジェクト306を参照するように制限する。こうすることで、拡張PDF/VTは、1つのレコード分のPageオブジェクトのみを持つことになる。
DPartRootオブジェクト304とDPartオブジェクト305、306とで構成される階層構造の末端には、Pageオブジェクト307が存在する。Pageオブジェクト307は、従来のPDFのように描画オブジェクトを持つほかに、PHInfoオブジェクト308を複数持つことができる。
PHInfoオブジェクト308は、図1(c)、(d)で表されるページ内のプレースホルダ情報を格納するためのオブジェクトである。
(データソース内部保持型拡張PDF/VTスクリプト例)
図4は、「データソース内部保持型」の拡張PDF/VT(図3(a))のスクリプトの一例を示す図である。より具体的には、図4は、Catalogオブジェクト301、DataSourceオブジェクト302、Pageオブジェクト307、PHInfoオブジェクト308の記述例を示している。
Catalogオブジェクト401は、「/DataSource 2 0 R」の部分が示す参照情報402で、DataSourceオブジェクト403を参照している。
DataSourceオブジェクト403は、「/ColumnName」以降の部分(記述404)で、データの実体を表現している。
Pageオブジェクト405は、「/PHInfo [9 0 R 10 0 R]」の部分が示す参照情報406で、PHInfoオブジェクト407、408を参照している。
PHInfoオブジェクト407、408は、各プレースホルダのプレースホルダ情報を持つ。各PHInfoオブジェクトの「/Column(image)」の部分(記述409)や、「/Column(text)」の部分(記述410)は、DataSourceオブジェクト403内のデータの実体(記述404)のどの列を参照するかを示している。
上記は、データソース内部保持型の拡張PDF/VTの構造を表現するためのスクリプトの一例であり、オブジェクトの名称、参照方法、データの実体の表現方法等は、PDFの記述文法に従っていれば、この例に限らなくてもよい。
(データソース外部参照型拡張PDF/VTの内部構造)
次に、図3(b)の「データソース外部参照型」について説明する。
「データソース外部参照型」の拡張PDF/VTが、「データソース内部保持型」の拡張PDF/VTと異なる点は、DataSourceオブジェクト309の内容である。「データソース外部参照型」では、DataSourceオブジェクト309はデータソースの実体を持たず、外部の別の拡張PDF/VT310を参照する。
外部の拡張PDF/VT310は、Catalogオブジェクト311とそれが参照するDataSourceオブジェクト312を持つ。このDataSourceオブジェクト312は、データソースの実体317を持つ。その結果、拡張PDF/VTのテンプレート部分と、データソースの実体部分とは、別ファイルとして分離される。また、外部の拡張PDF/VT310がデータソースの実体を持つという制限があるので、外部の拡張PDF/VT310が更に別の外部の拡張PDF/VTを参照することはない。これによって、ファイル間の参照が無限に続くといった不都合は発生しない。
以降の説明では、データソース外部参照型の拡張PDF/VTの、参照元側ファイル316を「本体側ファイル」又は単に「本体側」、参照先ファイル310を「データ側ファイル」又は単に「データ側」と呼ぶ。
(データソース外部参照型拡張PDF/VTスクリプト例)
図5(a)は、「データソース外部参照型」の拡張PDF/VT(図3(b))における、本体側ファイル316の各オブジェクトのスクリプトの一例を示す図である。より具体的には、Catalogオブジェクト313、DataSourceオブジェクト309、Pageオブジェクト314、PHInfoオブジェクト315の記述例を示している。
また、図5(b)は、「データソース外部参照型」の拡張PDF/VT(図3(b))における、データ側ファイル310の各オブジェクトのスクリプトの一例を示す図である。より具体的には、Catalogオブジェクト311、DataSourceオブジェクト312の記述例を示している。
以下では、「データソース内部保持型」の拡張PDF/VTのスクリプト記述例(図4)と異なる部分のみ説明する。
本体側ファイル501のDataSourceオブジェクト502は、「/Ref」以降の部分が示す参照情報503で、データ側ファイル504への参照を表現している。この参照方法は、PDFの仕様に含まれる「Reference XObject」の仕組みを利用している。
データ側ファイル504のCatalogオブジェクト505は、「/DataSource 2 0 R」の部分が示す参照情報506で、DataSourceオブジェクト507を参照している。
データ側ファイル504のDataSourceオブジェクト507は、「/ColumnName」以降の部分(記述508)で、データの実体を表現している。
上記は、データソース外部参照型の拡張PDF/VTの構造を表現するためのスクリプトの一例であり、オブジェクトの名称、参照方法、データの実体の表現方法等は、PDFの記述文法に従っていれば、この例に限らなくてもよい。
(拡張PDF/VTの種類による利点の違い)
データソース内部保持型の拡張PDF/VTでは、テンプレートとデータソースの実体とが1つのファイルとなっているので、ファイルの管理が行いやすい利点がある。データソース外部参照型拡張PDF/VTでは、ユーザーが本体側のファイルを編集することなく、データ側のファイルのみを差し替えることで、別の印刷結果が得られるという利点がある。これは、ユーザーが、オブジェクトの配置(レイアウト)を変えず、中身のテキストや画像のみを変えて印刷を行いたい場合等に有効である。例としては、毎月1回利用者に送られるクレジットカードの利用明細等が挙げられる。
(システム構成)
上記で説明した拡張PDF/VTを使って、印刷データの生成から印刷までを行うシステムについて説明する。図6は、システムの構成と、データの流れとに関する一例を模式的に表した図である。この例では、ネットワーク601に接続されたクライアントPC602、プリントサーバー603、プリンタ604が存在している。
クライアントPC(情報処理装置)602は、後述する拡張PDF/VTを生成するアプリケーションにより拡張PDF/VT605を生成し、生成した拡張PDF/VT605をプリントサーバー603へ送信する。
プリントサーバー(情報処理装置)603は、クライアントPCから受信した拡張PDF/VT605を解析し、プリンタ604で印刷するための印刷コマンド(印刷命令)を生成し、生成した印刷コマンドをプリンタ604へ送信する。なお、クライアントPC602とプリントサーバー603とは同一の情報処理装置で構成されていてもよい。
プリンタ(画像形成装置)604は、プリントサーバー603から受信した印刷コマンドにしたがって印刷を行い、印刷物606を出力する。
ここで、拡張PDF/VTに関わる処理は、クライアントPC602で実行される拡張PDF/VTの生成処理と、プリントサーバー603で実行される拡張PDF/VTの解析処理とである。実施形態1では、クライアントPC602での拡張PDF/VTを生成する処理を実行するアプリケーションについて説明する。なお、プリントサーバー603での拡張PDF/VTを解析する処理を実行するアプリケーションについては実施形態2で説明する。以下、拡張PDF/VTを生成するアプリケーション、拡張PDF/VTを解析するアプリケーションを、単にアプリケーションと呼ぶ場合がある。
(ハードウェア構成)
図7は、クライアントPC602やプリントサーバー603のハードウェア構成の一例を示す図である。ここで、クライアントPC602とプリントサーバー603とのハードウェア構成は同様であるものとし、以下ではクライアントPC602のハードウェア構成を例に説明する。
CPU701は、クライアントPC602全体の制御を行う。CPU701は、外部記憶装置704等に格納されているプログラムをRAM702にロードして実行することにより、クライアントPC602の機能及び後述するクライアントPC602のフローチャートに係る処理を実現する。
RAM702は、CPU701が実行するプログラムや、文書画像等のデータを一時的に格納する記憶領域である。
ネットワークI/F703は、CPU701の制御の下にネットワークとの接続を行なってデータ等を送受信するネットワークインタフェースである。
外部記憶装置704は、各種のプログラムやデータを保存する磁気ディスク等の記憶領域である。
更に、クライアントPC602は、ディスプレイ705、キーボード706、マウス等のポインティングデバイス707を有する。なお、ディスプレイ705は、タッチパネルのようにユーザーによるタッチ操作を介して入力指示を受け付ける操作部を兼ねる構成であってもよい。
次に、図7で示すハードウェア構成にしたがって、クライアントPC602のアプリケーションがどのように動作するかを説明する。
上述したように、CPU701は、外部記憶装置704等に格納されているアプリケーションのプログラムをRAM702にロードして実行することにより、前記アプリケーションの機能を実現する。また、CPU701は、外部記憶装置704等に格納されているOS(Operating System)のプログラムをRAM702にロードして実行することにより、OSの機能を実現する。前記アプリケーションは、各種の処理を実行する際に、必要に応じてOSの機能を利用する。
また、前記アプリケーションは、RAM702に一時記憶する内部データの内容を読み書きしたり、外部記憶装置704上でデータを読み書きしたりする。また、前記アプリケーションは、別のコンピュータ上にデータがある場合等には必要に応じてネットワークI/F703を通じてデータを送受信する。また、前記アプリケーションは、ディスプレイ705にユーザーインターフェース(以下、UIと呼ぶ)や処理結果等の視覚情報を表示したり、キーボード706やポインティングデバイス707からユーザーの入力を受け付けたりする。以下、前記アプリケーションの動作を説明するにあたり、上記で説明した個々のデバイスの動作については説明を省略する。
また、上述したように、プリントサーバー603のハードウェア構成も同様のハードウェア構成をしている。即ち、プリントサーバー603のCPU701が、プリントサーバー603の外部記憶装置704等に格納されているプログラムをプリントサーバー603のRAM702にロードして実行する。これにより、プリントサーバー603の機能及び後述するプリントサーバー603のフローチャートの処理が実現される。
(拡張PDF/VTを生成するアプリケーションの動作)
図8は、クライアントPC602内の拡張PDF/VTを生成するアプリケーション(以下、実施形態1では「本アプリケーション」と呼ぶ)の処理の概要の一例を示す図である。
本アプリケーションは、データソース情報ファイル801、1レコード分のPageオブジェクトを持つPDFファイル802、プレースホルダ情報ファイル803の何れか、又は複数を指定する入力をUIを介してユーザーから受け付ける。より具体的には、本アプリケーションは、拡張PDF/VTを生成するにあたり、基とするファイル801、802、803の指定を、図11を用いて後述するUI(指示画面)を介してユーザーから受け付ける。なお、ファイル801、802、803は、クライアントPC602の外部記憶装置704に格納されていてもよいし、ネットワーク上の記憶装置に格納されていてもよい。即ち、本アプリケーションは、UIを介して指定されたファイル801、802、803を、外部記憶装置704から取得したり、ネットワーク上の記憶装置から取得したりする。
本アプリケーションは、データソース内部保持型拡張PDF/VT804、又はデータソース外部参照型拡張PDF/VTの本体側とデータ側とのセット805、又はデータソース外部参照型拡張PDF/VTのデータ側806のみの何れかを出力する。
上記の処理の詳細については、図9等を用いて後述する。
図9は、本アプリケーションにおける入力データと出力データとの関係の一例を示す図である。
本アプリケーションでは、出力する拡張PDF/VTの種類(804、805、806)によって、処理のパターンが3つに分かれる。
「処理パターン1」では、本アプリケーションは、データソース情報ファイル801と、1レコード分のPageオブジェクトを持つPDFファイル802と、プレースホルダ情報ファイル803とを入力とし、データソース内部保持型拡張PDF/VT804を出力する。
「処理パターン2」では、本アプリケーションは、データソース情報ファイル801と、1レコード分のPageオブジェクトを持つPDFファイル802と、プレースホルダ情報ファイル803とを入力とし、データソース外部参照型拡張PDF/VT805を出力する。本アプリケーションが「処理パターン2」で出力するデータソース外部参照型拡張PDF/VTは、本体側とデータ側とのセットである。
「処理パターン3」では、本アプリケーションは、データソース情報ファイル801を入力とし、データ側のみのデータソース外部参照型拡張PDF/VT806を出力する。
本アプリケーションは、どの処理パターンで処理を実行するかを、図11を用いて後述するUIを介して受け付けたユーザーの選択に基づいて決定する。
上述の通り、データソース内部保持型拡張PDF/VTの利点は管理が行いやすいことであり、データソース外部参照型拡張PDF/VTの利点はレイアウトの変わらない内容の違う印刷を、データ側ファイルを差し替えるだけで簡単に行えることである。したがって、ユーザーは、管理の負荷を抑えたい場合は「処理パターン1」を選び、レイアウトの変わらない内容の違う印刷を複数回にわたって行いたいときは「処理パターン2」と「処理パターン3」とを選べばよい。これにより、バリアブルデータ印刷におけるユーザーの利便性を向上させることができる。
本アプリケーションがデータソース外部参照型拡張PDF/VT805を出力する場合、本アプリケーションは、ユーザーの指示に従い、最初の1回目は「処理パターン2」を行い、本体側ファイルとデータ側ファイルとの両方を出力する。そして、本アプリケーションは、本体側ファイルとデータ側ファイルとの両方をプリントサーバー603へ送信し、プリントサーバー603の処理を開始させる。更に、本アプリケーションは、2回目以降は「処理パターン3」を行い、データ側ファイルのみを出力させ、プリントサーバー603へ送信し、プリントサーバー603の処理を開始させることで印刷を行うことができる。
図10のフローチャートを用いて、本アプリケーションの処理の流れを説明する。図10は、本実施形態におけるクライアントPC602が実行する処理の一例を示すフローチャートである。
まず、本アプリケーションは、図11(a)に示されるUIを表示して、ユーザーから処理パターンの選択を受け付ける(S1001)。図11(a)は、このときに本アプリケーションが表示するUIの一例を示す図である。図11(a)のUIは、データソース内部保持型PDF/VTを生成するか、データソース外部参照型PDF/VTの本体側とデータ側とのセットを生成するか、データソース外部参照型PDF/VTのデータ側のみを生成するか、の選択に関する指示をユーザーから受け付ける。以下、本アプリケーションがデータソース内部保持型PDF/VTを生成する処理を「処理パターン1」と呼ぶ。また、本アプリケーションがデータソース外部参照型PDF/VTの本体側とデータ側とのセットを生成する処理を「処理パターン2」と呼ぶ。更に、本アプリケーションがデータソース外部参照型PDF/VTのデータ側のみを生成する処理を「処理パターン3」と呼ぶ。本アプリケーションは、図11(a)のUIを介してユーザーから受け付けた指示に応じて、図8に示される上述の処理パターンのうち、何れの処理パターンの処理を実行するかを決定する。
次に、本アプリケーションは、各処理パターンに応じた入力をUIを介してユーザーから受け付ける(S1002、S1003)。図11(b)は、このときに本アプリケーションが表示するUIの一例を示す図である。本アプリケーションは、「処理パターン1」及び「処理パターン2」のときは、データソース情報ファイル801、1レコード分のPageオブジェクトを持つPDFファイル802、プレースホルダ情報ファイル803を指定する入力を、前記UIを介してユーザーから受け付ける(S1002)。一方、本アプリケーションは、「処理パターン3」のときは、データソース情報ファイル801を指定する入力を、前記UIを介してユーザーから受け付ける(S1003)。
データソース情報ファイル801は、本アプリケーションが生成する拡張PDF/VTのデータソース部分となるデータを持つものであり、形式はCSVやXML等、一般的なデータソースを表現することができるものであればどのようなものでもよい。CSVは、Comma Separated Valuesの略称であり、XMLは、Extensible Markup Languageの略称である。
1レコード分のPageオブジェクトを持つPDFファイル802は、通常のPDFファイルであり、このPDFファイルに含まれるページ群が、1レコード分のページ群として扱われる。
プレースホルダ情報ファイル803は、1レコード分のPageオブジェクトを持つPDFファイル802の各ページに追加するプレースホルダの情報を持つファイルである。
図12は、プレースホルダ情報ファイルの一例を示す図である。
プレースホルダ情報ファイルは、任意のページ数分のプレースホルダ情報群(1301、1302)を持つ。プレースホルダ情報ファイルのプレースホルダ情報群(1301、1302)の数は、PDFファイル802のページ数と同じでなければならない。プレースホルダ情報群(1301、1302)は、対応するページに追加されるプレースホルダの情報(1303、1304、1305)を、ユーザーが追加したい数だけ持つ。
プレースホルダの情報(1303、1304、1305)は、対応するプレースホルダの属性情報や、インスタンス化するための情報を持つ。例えば、図12のプレースホルダ情報1305は、以下の情報を持つ。
・描画領域(BBox)は座標(0,0)の位置から座標(100,200)までのサイズ(BBox=(0,0,100,200))。
・描画オブジェクトのタイプ(ObjectType)は「イメージ」(ObjectType=IMAGE)。
・イメージのファイル名はデータソースの"image2"列から取得する(Column=image2)。
・描画領域内の描画位置(Alignment)は左上隅を基準とする(Alignment=TopLeft)。
・イメージの縦横比を保持する(KeepAspectRatio=Yes)。
・90度回転する(Rotete=90)。
・不透明度は1.0(Opacity=1.0)。
プレースホルダ情報ファイルの形式は、一般的に設定ファイルとしてよく使われるINI形式やXML形式等、上記の情報を表現することができればどのような形式でもよい。
図10の説明に戻る。
本アプリケーションは、処理パターン1、処理パターン2の場合は、データソースの不要部分を削除する(S1004)。UIを介してユーザーが指定したデータソースファイルは、使用されない部分、即ち、どのプレースホルダをインスタンス化するときにも参照されないカラムを持っている場合がある。このカラムを残すことは、本アプリケーションが出力する拡張PDF/VTのデータサイズを増大させるだけで無駄であるので、本アプリケーションは、この段階で不要部分を削除する。本アプリケーションは、カラムが参照されないかどうかを、UIを介してユーザーが指定したプレースホルダ情報ファイルを解析し、どのプレースホルダからも参照されていないかどうかで判断する。より具体的には、本アプリケーションは、全プレースホルダ情報(1303、1304、1305)について、参照先カラム名(図13では"Column"プロパティの値)に登場しないカラムを、どのプレースホルダからも参照されないカラムであると判断する。こうすることで、本アプリケーションは、出力するPDF/VTのデータサイズを抑えることができる。
次に、本アプリケーションは、処理パターン2、処理パターン3の場合は、データソース外部参照型拡張PDF/VTのデータ側ファイルを生成する(S1005)。この処理については、図13(a)を用いて詳しく後述する。
次に、本アプリケーションは、処理パターン1、処理パターン2の場合は、S1002でユーザーにより指定された1レコード分のPageオブジェクトを持つPDFファイル802のコピーを生成する(S1006)。以下、本フローチャートの処理において、この1レコード分のPageオブジェクトを持つPDFファイル802のコピーを(A)と呼ぶ。
次に、本アプリケーションは、処理パターン1の場合は、S1002でユーザーにより指定されたデータソース情報ファイル801を基に、データソースの実体を持つデータソースオブジェクトを生成し、S1006で生成した(A)に追加する(S1007)。この処理は、データソース内部保持型拡張PDF/VTの内部構造の模式図である図3(a)で示すところの、DataSourceオブジェクト302を生成することに相当する。また、データソース内部保持型拡張PDF/VTのスクリプトの例である図4で示すところの、DataSourceオブジェクト403を生成することに相当する。例えば、本アプリケーションは、UIを介してユーザーが指定したデータソース情報ファイルが図1(b)の内容であった場合、カラム名109、レコードデータ105、106、107、108から、図4の記述404で表現されるデータ部分を持つDataSourceオブジェクト403を生成する。より具体的には、図1(b)のデータソース110は"id"、"image"、"text"の名前のカラムを持つので、本アプリケーションは、DataSourceオブジェクト403のカラム名部分を"/ColumnName[(id)(image)(text)]"と記述する。また、図1(b)のデータソース110は4つのレコードデータ105、106、107、108を持つので、本アプリケーションは、"/Data"以降の部分で2次元配列を使って4つのレコードデータの内容を記述する。
次に、本アプリケーションは、処理パターン2の場合は、S1005で生成した、データソース外部参照型拡張PDF/VTのデータ側ファイルへの参照情報を持つDataSourceオブジェクトを生成し、S1006で生成した(A)に追加する(S1008)。この処理は、データソース外部参照型拡張PDF/VTの内部構造の模式図である図3(b)で示すところの、DataSourceオブジェクト309を生成することに相当する。また、この処理は、データソース外部参照型拡張PDF/VTのスクリプトの例である図5で示すところの、DataSourceオブジェクト502を生成することに相当する。本アプリケーションは、DataSourceオブジェクト502の外部ファイルの参照に係る参照情報503の"/F"に続く部分に、S1005で生成した、データソース外部参照型拡張PDF/VTのデータ側ファイルの名前を記述する。
次に、本アプリケーションは、処理パターン1、処理パターン2の場合は、(A)のCatalogオブジェクトが、S1007、S1008で生成したデータソースオブジェクトを参照するように、Catalogオブジェクトを編集する(S1009)。
この処理は、処理パターン1では、データソース内部保持型拡張PDF/VTの内部構造の模式図である図3(a)で示すところの、Catalogオブジェクト301に、DataSourceオブジェクト302への参照情報を記述することに相当する。また、データソース内部保持型拡張PDF/VTのスクリプトの例である図4で示すところの、Catalogオブジェクト401に、DataSourceオブジェクト403を参照することを意味するスクリプトを記述することに相当する。DataSourceオブジェクト403を参照することを意味するスクリプトとは、"/DataSource 2 0 R"の部分(参照情報402)である。
また、この処理は、処理パターン2では、データソース外部参照型拡張PDF/VTの内部構造の模式図である図3(b)で示すところの、Catalogオブジェクト313に、生成したDataSourceオブジェクト309への参照情報を記述することに相当する。また、データソース外部参照型拡張PDF/VTのスクリプトの例である図5で示すところの、Catalogオブジェクト512に、DataSourceオブジェクト502を参照することを意味するスクリプトを記述することに相当する。DataSourceオブジェクト502を参照することを意味するスクリプトとは、"/DataSource 2 0 R"の部分(参照情報513)である。
次に、本アプリケーションは、処理パターン1、処理パターン2の場合は、(A)にDPart階層構造を生成する(S1010)。この処理は、より具体的には、図3(a)や(b)のDPart階層構造部分のオブジェクト群を生成することに相当する。
次に、本アプリケーションは、処理パターン1、処理パターン2の場合は、(A)の各Pageオブジェクトにプレースホルダ情報オブジェクトを追加する(S1011)。この処理については、図13(b)を用いて詳しく後述する。
図13(a)は、S1005の処理の一例を示すフローチャートである。
まず、本アプリケーションは、通常のPDFデータ基本部分を生成する(S1101)。ここで、通常のPDFデータ基本部分とは、Pageオブジェクト等のページ情報以外の部分を指すものであり、Catalogオブジェクト311を含む。通常のPDFデータ基本部分はCatalogオブジェクト311以外にもあるが、この部分の生成については公知の技術で実現可能であるため、詳細な説明を省略する。本アプリケーションは、本実施形態に関係する構成要素として、図3(b)のCatalogオブジェクト311を生成する。
次に、本アプリケーションは、S1002でユーザーにより指定されたデータソース情報ファイル801を基に、データソースの実体を持つデータソースオブジェクトを生成し、S1101で生成したPDFデータ基本部分に追加する(S1102)。この処理は、データソース外部参照型拡張PDF/VTの内部構造の模式図である図3(b)で示すところの、DataSourceオブジェクト312を生成することに相当する。また、データソース外部参照型拡張PDF/VTのスクリプトの例である図5で示すところの、DataSourceオブジェクト507を生成することに相当する。図5のDataSourceオブジェクト507の具体的な生成方法は、S1007と同様である。
次に、本アプリケーションは、S1101で生成したデータのCatalogオブジェクトがS1102で生成したデータソースオブジェクトを参照するように、Catalogオブジェクトを編集する(S1103)。この処理は、データソース外部参照型拡張PDF/VTの内部構造の模式図である図3(b)で示すところの、Catalogオブジェクト311に、生成したDataSourceオブジェクト312への参照情報を記述することに相当する。また、データソース外部参照型拡張PDF/VTのスクリプトの例である図5で示すところの、Catalogオブジェクト505に、DataSourceオブジェクト507を参照することを意味するスクリプトを記述することに相当する。DataSourceオブジェクト507を参照することを意味するスクリプトとは、"/DataSource 2 0 R"の部分(参照情報506)である。
図13(b)は、S1011の処理の一例を示すフローチャートである。
まず、本アプリケーションは、S1002でユーザーにより指定されたプレースホルダ情報ファイル803を解析し、ページのプレースホルダ情報(1301、1302)の数、ページ毎のプレースホルダ情報(1303、1304、1305)の数を取得する(S1104)。
次に、本アプリケーションは、ページのプレースホルダ情報(1301、1302)の数、更にその中で、ページ毎のプレースホルダ情報(1303、1304、1305)の数だけS1105とS1106との処理を繰り返す。
次に、本アプリケーションは、S1002でユーザーにより指定されたプレースホルダ情報ファイル803のプレースホルダ情報(1303、1304、1305)の内容を基に、プレースホルダ情報オブジェクトを生成する(S1105)。この処理は、処理パターン1の場合は、図3(a)のPHInfoオブジェクト308を生成することに相当し、図4のスクリプト例においては、PHInfoオブジェクト407、408を生成することに相当する。また、処理パターン2の場合は、図3(b)のPHInfoオブジェクト315を生成することに相当し、図5のスクリプト例においては、PHInfoオブジェクト509を生成することに相当する。例えば、本アプリケーションは、プレースホルダ情報1303を対象とした場合、PHInfoオブジェクト407のスクリプトを生成する。より具体的には、プレースホルダ情報1303では、BBox=(20,100,50,80)であるので、本アプリケーションは、PHInfoオブジェクトに"/BBox[20,100,50,80]"と記述する。その他の属性情報についても同様である。
次に、本アプリケーションは、対象のPageオブジェクトがS1105で生成したプレースホルダ情報オブジェクトを参照するようにPageオブジェクトを編集する(S1106)。この処理は、処理パターン1の場合は、図3(a)のPageオブジェクト307に、S1105で生成したPHInfoオブジェクト308への参照情報を記述することに相当する。図4のスクリプト例においては、Pageオブジェクト405に、S1105で生成したPHInfoオブジェクト407、408への参照情報406を記述することに相当する。また、処理パターン2の場合は、図3(b)のPageオブジェクト314に、S1105で生成したPHInfoオブジェクト315への参照情報を記述することに相当する。図5のスクリプト例においては、Pageオブジェクト510に、S1105で生成したPHInfoオブジェクト509への参照情報511を記述することに相当する。
ここまでの説明では、本アプリケーションが、図10のS1001で処理パターンを分けることで1つのアプリケーションで3つの異なる処理を可能にしている。しかし、クライアントPC602は、S1001より後の3つの各パターンにおける処理を実行する3つの独立したアプリケーションを有する構成でもよい。これは、クライアントPC602が上述のように独立したアプリケーションを有する形態であっても、拡張PDF/VTを出力することができるので、拡張PDF/VTの、通常のPDF/VTに対するデータ量の削減効果が失われることはないためである。
また、ここまでの説明では、本アプリケーションが、UIを介してファイル801、802、803を指定する入力をユーザーから受け付け、その指定に応じて取得したファイル801、802、803に基づいて拡張PDF/VTを出力するものとして説明した。しかし、本アプリケーションが、拡張PDF/VTを出力するためのデータをファイルとして取得しない実施形態も可能である。例えば、本アプリケーションが、テンプレートのレイアウト編集、プレースホルダ情報やデータソースを生成するための入力を受け付けるUIを表示するようにする。そして、ユーザーは、表示されたUIを介して、テンプレートのレイアウト編集、プレースホルダ、データソースに関する情報を入力する。これにより、本アプリケーションは、UIを介してユーザーにより入力された情報に基づいて、ファイル801、802、803を生成することがでる。即ち、クライアントPC602は、自装置でファイル801、802、803を生成し、拡張PDF/VTを出力することができる。
以上、本実施形態によれば、クライアントPC602は、バリアブルデータ印刷において、レコード数が多い場合でも印刷データのデータ量を抑えることが可能な拡張PDF/VTを生成して出力することができる。
<実施形態2>
(拡張PDF/VTを解析するアプリケーションの動作)
実施形態2では、プリントサーバー603で拡張PDF/VTを解析する処理を実行するアプリケーションについて説明する。
図14は、プリントサーバー603内の拡張PDF/VTを解析するアプリケーション(以下、実施形態2では「本アプリケーション」と呼ぶ)の処理の概要の一例を示す図である。
本アプリケーションは、データソース内部保持型拡張PDF/VT1401、又はデータソース外部参照型拡張PDF/VTの本体側1402を入力として受け付ける。そして、本アプリケーションは、拡張PDF/VTのインスタンス化を行い、レコード毎にPDF/VT1403を生成し、更に生成したPDF/VT1403を解析し、印刷コマンドを生成してプリンタへ送信する。
図15は、本アプリケーションにおける入力データと出力のデータとの関係の一例を示す図である。
本アプリケーションでは、ユーザーから受け付ける入力の拡張PDF/VTの種類(1401、1402)によって、処理のパターンが2つに分かれる。
「処理パターン1」では、本アプリケーションは、データソース内部保持型拡張PDF/VT1401を入力とし、印刷コマンドを出力する。
「処理パターン2」では、本アプリケーションは、データソース外部参照型拡張PDF/VTの本体側1402を入力とし、印刷コマンドを出力する。
本アプリケーションは、どちらの処理パターンになるかを、ユーザーから受け付ける入力の拡張PDF/VTを解析し、データソース内部保持型拡張PDF/VT1401であるかデータソース外部参照型拡張PDF/VT1402であるかを識別することによって決定する。
図16のフローチャートを用いて、本アプリケーションの処理の流れを説明する。図16は、本実施形態におけるプリントサーバー603が実行する処理の一例を示すフローチャートである。
まず、本アプリケーションは、図17に示されるUIを表示して、ユーザーから拡張PDF/VT1401、1402の指定に係る入力を受け付ける(S1601)。図17(a)は、このときに本アプリケーションが表示するUIの一例を示す図である。本アプリケーションは、図17(a)に示されるUIを介して、ユーザーから拡張PDF/VTファイルを指定する入力を受け付けることができる。
次に、本アプリケーションは、S1601でユーザーにより指定された拡張PDF/VTを解析し、データソース内部保持型拡張PDF/VTか、データソース外部参照型拡張PDF/VTかを判別する(S1602)。本アプリケーションは、S1602での判別を、拡張PDF/VTのDataSourceオブジェクトを解析し、データソースの実体が存在するか、外部ファイルへの参照情報が記述されているかを検査することで行う。より具体的には、拡張PDF/VTの内部構造の模式図である図3(a)の場合、本アプリケーションが、DataSourceオブジェクト302を解析してデータソースの実体303が存在するかを検査することに相当する。また、図3(b)の場合、本アプリケーションが、DataSourceオブジェクト309を解析し、外部ファイルであるデータ側ファイル310への参照情報が存在するかを検査することに相当する。また、スクリプトの例である図4においては、本アプリケーションが、DataSourceオブジェクト403を解析し、データソースの実体部分の記述404が存在するかを検査することに相当する。また、スクリプトの例である図5においては、本アプリケーションが、DataSourceオブジェクト502を解析し、外部ファイルへの参照情報503が存在するかを検査することに相当する。
図16の説明に戻る。
次に、本アプリケーションは、S1602での判別の結果、データソース内部保持型拡張PDF/VTであった場合は、S1603の処理を行い、データソース外部参照型拡張PDF/VTであった場合は、S1604、S1605、S1606の処理を行う。
S1603で、本アプリケーションは、拡張PDF/VTからデータソースの実体部分をRAM702に抽出する。この処理は、図4のスクリプト例においては、DataSourceオブジェクト403からデータの実体部分(記述404)を抽出し、RAM702に内部データとして保存することに相当する。
S1604で、本アプリケーションは、データソース外部参照型拡張PDF/VTであった場合は、データ側のデータソース外部参照型拡張PDF/VTのファイル名を特定する。この処理は、図5のスクリプト例においては、本体側ファイルのDataSourceオブジェクト502の参照情報503から、DataSourceオブジェクト502が参照しているファイル名を取得することに相当する。
S1605で、本アプリケーションは、UIを表示して、ユーザーからの処理開始指示を待つ。ただし、S1605の処理は必須の処理ではない。この処理は、ユーザーがデータ側のデータソース外部参照型拡張PDF/VTを準備するための処理であるが、例えば、ユーザーがS1601の処理の際に予めデータ側ファイルを準備することを前提とした処理フローであればS1605の処理は不要である。
図17(b)は、S1605で表示されるUIの一例を示す図である。図17(b)のUIは、ユーザーにデータ側のデータソース外部参照型拡張PDF/VTのファイル名を示し、ユーザーがそのファイルの準備をした後、ユーザーから処理開始の指示を受け付けることができる。ユーザーは、図17(b)のUIが表示された後、もしデータソースを差し替えたい場合は、新たなデータ側のデータソース外部参照型拡張PDF/VTを準備し、図17(b)のUIで処理開始を指示すればよい。
図16の説明に戻る。
S1606で、本アプリケーションは、データソース外部参照型拡張PDF/VTであった場合は、更にS1605の後、データ側のデータソース外部参照型拡張PDF/VTからデータソースの実体部分をRAM702に抽出する。この処理は、図5のスクリプト例においては、データ側ファイルのDataSourceオブジェクト507からデータの実体部分(記述508)を抽出し、RAM702に内部データとして保存することに相当する。
次に、本アプリケーションは、S1601でユーザーにより指定された拡張PDF/VTのテンプレート部分と、RAM702に抽出したデータソース部分とから、レコード毎にPDF/VTを生成し解析する(S1607)。S1607の処理については、図18を用いて詳しく後述する。
図18(a)は、S1607の処理の一例を示すフローチャートである。
まず、本アプリケーションは、S1601でユーザーにより指定された拡張PDF/VTのコピーを生成する(S1701)。これは、データソース内部保持型PDF/VTの場合、本アプリケーションが、図3(a)と同じ構造のデータをRAM702に内部データとして生成することに相当する。また、データソース外部参照型PDF/VTの場合、本アプリケーションが、図3(b)の本体側316と同じ構造のデータをRAM702に内部データとして生成することに相当する。
次に、本アプリケーションは、S1603又はS1606でRAM702に抽出したデータソースから、1レコード分のデータを読み込む(S1702)。これは例えば、図4のスクリプトの例では、本アプリケーションが、RAM702に抽出したデータソース部分(記述404)から、1行分のデータ配列を読み取ることに相当する。1行分のデータ配列とは、例えば1つ目のレコードでは3つの文字列"001"と"a.jpeg"と"あああ"とを要素とする配列のことである。
次に、本アプリケーションは、S1701で生成した拡張PDF/VTのコピーの各ページのプレースホルダオブジェクトを、S1702で読み込んだレコードデータでインスタンス化して1レコード分のPDF/VTを生成し、これを解析する(S1703)。S1703の処理については、図18(b)を用いて詳しく後述する。
本アプリケーションは、S1701からS1703までの処理を、RAMに抽出したデータソースのレコードの数だけ繰り返す。
図18(b)は、S1703の処理の一例を示すフローチャートである。
本アプリケーションは、1レコード分の各ページ、更にその各ページの中の各プレースホルダオブジェクトについて、プレースホルダオブジェクトを前記レコードのレコードデータでインスタンス化する(S1704)。より具体的には、本アプリケーションは、プレースホルダオブジェクトに記述されているインスタンス化のための情報を読み取り、これにしたがって、プレースホルダオブジェクトを、通常の描画オブジェクトに置き換えることでインスタンス化を行う。プレースホルダオブジェクトに記述されているインスタンス化のための情報とは、具体的にはイメージやテキスト等、オブジェクトのタイプや、データソースの対象カラム等である。例えば、図4のスクリプト例におけるPHInfoオブジェクト407では、オブジェクトタイプはイメージ("/ObjectType IMAGE")で、データソースの対象カラムは"image"(/Column image)である。そして、本アプリケーションは、これらの情報から、データソースの"image"カラムを読み取り、1レコード目であれば、"a.jpeg"という名前のファイルに記述されたイメージを、描画オブジェクトとしてPHInfoオブジェクト407から置き換える。本アプリケーションが、1レコード分の全てのページの全てのプレースホルダをインスタンス化すると、それが1レコード分のPDF/VTとなる。
次に、本アプリケーションは、出来上がった1レコード分のPDF/VTを解析し、印刷コマンドを生成する(S1705)。1レコード分のPDF/VTの解析処理については、公知の技術であるため説明を省略する。
以上の処理により、プリントサーバー603は、拡張PDF/VTから1レコード分のPDF/VTを生成することができる。即ち、プリントサーバー603は、レコード毎にPDF/VTを生成し、印刷コマンドを生成することができる。そして、プリントサーバー603は生成した印刷コマンドをプリンタ604へ送信することで、印刷物を生成することができる。
ここまでの説明では、本アプリケーションが、拡張PDF/VTからレコード毎のPDF/VTをいったん生成してから解析しているが、拡張PDF/VTを直接解析することも可能である。この場合、本アプリケーションは、S1704でプレースホルダをインスタンス化した直後に、インスタンス化した描画オブジェクトの解析を行い、解析結果である印刷コマンドを逐次出力すればよい。
また、拡張PDF/VTを解析する本アプリケーションは、印刷コマンドを出力するだけではなく、解析結果の画像をディスプレイ705に表示したり、別のPDLへ変換したりするようにしてもよい。
また、本アプリケーションが、S1601の処理において、外部参照型拡張PDF/VTを受け付ける場合は、本体側だけを受け付けるのではなく、本体側とデータ側とのセットを受け付け、S1605の処理を省略する実施形態も可能である。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、バリアブルデータ印刷において、レコード数が多い場合でも印刷データのデータ量を抑えることができる。
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

Claims (15)

  1. データソースオブジェクトをデータソース情報に基づいて生成する第1の生成手段と、
    前記第1の生成手段により生成された前記データソースオブジェクトへの参照情報を、可変データ印刷における可変印刷データに記述する第1の記述手段と、
    前記第1の記述手段で記述された前記参照情報により参照される前記データソースオブジェクトに基づく印刷オブジェクトの生成に係るプレースホルダオブジェクトを、プレースホルダ情報に基づいて生成する第2の生成手段と、
    前記第2の生成手段により生成された前記プレースホルダオブジェクトへの参照情報を、前記可変印刷データのページオブジェクトに記述する第2の記述手段と、
    を有する情報処理装置。
  2. 前記第1の生成手段は、前記データソースオブジェクトを前記可変印刷データの内部に生成する請求項1記載の情報処理装置。
  3. 前記第1の生成手段により前記データソースオブジェクトが前記可変印刷データの内部に生成された場合、前記可変印刷データをプリントサーバーに送信する第1の送信手段を更に有する請求項2記載の情報処理装置。
  4. 前記第1の生成手段は、前記データソースオブジェクトを前記可変印刷データの外部に生成する請求項1記載の情報処理装置。
  5. 前記第1の生成手段により前記データソースオブジェクトが前記可変印刷データの外部に生成された場合、前記可変印刷データと、前記生成された前記データソースオブジェクトを含む他の可変印刷データとをプリントサーバーに送信する第2の送信手段を更に有する請求項4記載の情報処理装置。
  6. 前記可変印刷データの生成に係る指示画面を表示する表示手段を更に有し、
    前記第1の生成手段は、前記指示画面を介して入力された前記データソース情報に基づいて前記データソースオブジェクトを生成し、
    前記第2の生成手段は、前記指示画面を介して入力された前記プレースホルダ情報に基づいて前記プレースホルダオブジェクトを生成する請求項1乃至5何れか1項記載の情報処理装置。
  7. 可変印刷における可変印刷データからデータソース情報を抽出する抽出手段と、
    前記抽出手段により抽出された前記データソース情報と、前記データソース情報に基づく印刷オブジェクトの生成に係る前記可変印刷データのページオブジェクトが参照するプレースホルダオブジェクトとに基づいて、前記可変印刷データの各ページに前記データソース情報に基づく印刷オブジェクトを生成する生成手段と、
    を有する情報処理装置。
  8. 前記生成手段により前記印刷オブジェクトが生成された前記ページの印刷に係る印刷命令を画像形成装置に出力する出力手段を更に有する請求項7記載の情報処理装置。
  9. 前記抽出手段により抽出された前記データソース情報から1レコードのデータを読み込む読み込み手段を更に有し、
    前記生成手段は、前記データソース情報のうち前記読み込み手段により読み込まれた前記1レコードのデータと、前記1レコードのデータに基づく印刷オブジェクトの生成に係る前記プレースホルダオブジェクトとに基づいて、前記可変印刷データの各ページに前記1レコードのデータに基づく印刷オブジェクトを生成する請求項7又は8記載の情報処理装置。
  10. 前記抽出手段は、他の情報処理装置から受信された前記可変印刷データから前記データソース情報を抽出する請求項7乃至9何れか1項記載の情報処理装置。
  11. 前記可変印刷データは、前記データソース情報の1レコードのデータに係る印刷オブジェクトが生成される前記ページオブジェクトを含むPDF/VTデータである請求項1乃至10何れか1項記載の情報処理装置。
  12. 情報処理装置が実行する情報処理方法であって、
    データソースオブジェクトをデータソース情報に基づいて生成する第1の生成ステップと、
    前記第1の生成ステップにより生成された前記データソースオブジェクトへの参照情報を、可変データ印刷における可変印刷データに記述する第1の記述ステップと、
    前記第1の記述ステップで記述された前記参照情報により参照される前記データソースオブジェクトに基づく印刷オブジェクトの生成に係るプレースホルダオブジェクトを、プレースホルダ情報に基づいて生成する第2の生成ステップと、
    前記第2の生成ステップにより生成された前記プレースホルダオブジェクトへの参照情報を、前記可変印刷データのページオブジェクトに記述する第2の記述ステップと、
    を含む情報処理方法。
  13. 情報処理装置が実行する情報処理方法であって、
    可変印刷における可変印刷データからデータソース情報を抽出する抽出ステップと、
    前記抽出ステップにより抽出された前記データソース情報と、前記データソース情報に基づく印刷オブジェクトの生成に係る前記可変印刷データのページオブジェクトが参照するプレースホルダオブジェクトとに基づいて、前記可変印刷データの各ページに前記データソース情報に基づく印刷オブジェクトを生成する生成ステップと、
    を含む情報処理方法。
  14. コンピュータに、
    データソースオブジェクトをデータソース情報に基づいて生成する第1の生成ステップと、
    前記第1の生成ステップにより生成された前記データソースオブジェクトへの参照情報を、可変データ印刷における可変印刷データに記述する第1の記述ステップと、
    前記第1の記述ステップで記述された前記参照情報により参照される前記データソースオブジェクトに基づく印刷オブジェクトの生成に係るプレースホルダオブジェクトを、プレースホルダ情報に基づいて生成する第2の生成ステップと、
    前記第2の生成ステップにより生成された前記プレースホルダオブジェクトへの参照情報を、前記可変印刷データのページオブジェクトに記述する第2の記述ステップと、
    を実行させるためのプログラム。
  15. コンピュータに、
    可変印刷における可変印刷データからデータソース情報を抽出する抽出ステップと、
    前記抽出ステップにより抽出された前記データソース情報と、前記データソース情報に基づく印刷オブジェクトの生成に係る前記可変印刷データのページオブジェクトが参照するプレースホルダオブジェクトとに基づいて、前記可変印刷データの各ページに前記データソース情報に基づく印刷オブジェクトを生成する生成ステップと、
    を実行させるためのプログラム。
JP2014075826A 2014-04-01 2014-04-01 情報処理装置、情報処理方法及びプログラム Pending JP2015197826A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014075826A JP2015197826A (ja) 2014-04-01 2014-04-01 情報処理装置、情報処理方法及びプログラム
US14/675,388 US20150277825A1 (en) 2014-04-01 2015-03-31 Information processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014075826A JP2015197826A (ja) 2014-04-01 2014-04-01 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2015197826A true JP2015197826A (ja) 2015-11-09

Family

ID=54190428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014075826A Pending JP2015197826A (ja) 2014-04-01 2014-04-01 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US20150277825A1 (ja)
JP (1) JP2015197826A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324770A (zh) * 2018-10-16 2019-02-12 中山市晋华软件科技有限公司 页面报表打印系统及方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014112859A1 (de) * 2014-09-08 2016-03-10 Océ Printing Systems GmbH & Co. KG Verfahren zum Verarbeiten einer Ursprungs-PDF-Datei
US11743402B2 (en) * 2015-02-13 2023-08-29 Awes.Me, Inc. System and method for photo subject display optimization
US10592470B2 (en) * 2016-08-10 2020-03-17 Microsoft Technology Licensing, Llc Discovery of calling application for control of file hydration behavior
US10803239B2 (en) * 2018-09-24 2020-10-13 The Toronto-Dominion Bank Systems and methods for automatic report generation and retaining of annotations in reporting documents after regeneration

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5713563B2 (ja) * 2010-01-14 2015-05-07 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム
JP5794677B2 (ja) * 2011-06-14 2015-10-14 キヤノン株式会社 情報処理装置、情報処理装置の制御方法およびコンピュータプログラム
JP5733201B2 (ja) * 2011-12-27 2015-06-10 コニカミノルタ株式会社 印刷制御装置、印刷制御プログラム
JP5930815B2 (ja) * 2012-04-11 2016-06-08 キヤノン株式会社 情報処理装置及びその処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324770A (zh) * 2018-10-16 2019-02-12 中山市晋华软件科技有限公司 页面报表打印系统及方法

Also Published As

Publication number Publication date
US20150277825A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
US9875220B2 (en) Panoptic visualization document printing
US10008009B1 (en) Method for generating dynamic vector graphics
US9880709B2 (en) System and method for creating and displaying previews of content items for electronic works
US9575950B2 (en) Systems and methods for managing spreadsheet models
US8086618B2 (en) Configuration rule translation mapper
KR20160106494A (ko) 정보 처리 시스템, 서버 장치, 제어 방법 및 저장 매체
US11537643B2 (en) Systems and methods for coordinate-based search
JP2015197826A (ja) 情報処理装置、情報処理方法及びプログラム
JP6309588B2 (ja) 対話型文書の生成および配信
JP6525641B2 (ja) 情報処理システム、制御方法、およびコンピュータプログラム
JP5733201B2 (ja) 印刷制御装置、印刷制御プログラム
US20170154022A1 (en) Information processing apparatus, method for controlling the same, and storage medium
JP6795767B2 (ja) 情報処理装置と、その処理方法及びプログラム
US11782948B2 (en) Processing cartesian columns in analytics applications
US20110126091A1 (en) Information processing apparatus, control method, and program
JP6355542B2 (ja) 情報処理装置、その処理方法及びプログラム
JP2004362343A (ja) ソースコード変換装置、ソースコード変換方法、およびプログラム
Namee et al. A form and API data management platform for progressive web application and serverless application architecture
JP5586970B2 (ja) 情報処理装置および制御方法およびプログラム
JP6320146B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP6756967B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP7315817B2 (ja) 情報処理装置及びその制御方法、プログラム
JP2021015645A (ja) 情報処理装置と、その処理方法及びプログラム
JP2006344067A (ja) 情報処理装置、情報処理方法ならびにプログラム、記憶媒体
JP2024084393A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム