【実施例1】
【0015】
図1は、本発明の実施例1に係るPDF作成システム102を具備したサーバ101の全体的な概略構成を示した機能ブロック図である。
【0016】
サーバ101は、Javaアプリケーションを利用してPDFを作成可能なもので、CPU(Central Processing Unit)、主メモリ、表示装置、入力操作装置、外部記憶装置等を具備して成るコンピュータ機能を有している。また、サーバ101は、CD−ROM等の記憶媒体や、ネットワーク等を介してプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込んでCPUで処理することにより、実施例1のPDF作成システム102に係る各処理を実行する。
【0017】
PDF作成システム102は、PDFのデータに依存しない固定のレイアウトを設定するためのPDFテンプレート104と、PDFに表示する表示データを設定するための表示内容CSVを格納した表示内容CSV格納部103と、表示データの表示定義を設定するための表示定義XMLを格納した表示定義XML格納用データベース(表示定義XML格納部)105と、PDFのデータをファイル化生成するための各ファイルの格納場所(パス)を定義した設定ファイル106と、表示定義XML格納用データベース105から得た表示定義XMLに従い、表示内容CSV格納部103から得た表示内容CSVをPDFテンプレート104から得たレイアウトに基づいてデータ編集してPDFのデータを作成すると共に、作成されたPDFのデータをPDFファイル111の作成用に出力するPDG作成処理部110と、を備えている。
【0018】
このうち、PDFテンプレート104は、レイアウトとして実際に出力されるPDFのサイズ、背景色、枠線を含んでおり、PDFのデータを表示しない代わりに背景や枠線については表示するようになっている。表示内容CSV格納部103は、表示内容CSVとしてPDFの1つのデータを
1行とすると共に、PDFに表示される
1項目を1カラムとして表示データを設定するものである。表示定義XML格納用データベース105は、表示定義XMLとして少なくともPDFテンプレート104への表示内容CSVの表示位置、並びにフォントをカラム毎に設定するものである。
【0019】
また、PD
F作成処理部110は、設定ファイル106のパスに応じて表示定義XML格納用データベース105から表示定義XMLを取得すると共に、表示内容CSV格納部103から表示内容CSVを取得するデータ取得処理部107と、データ取得処理部107で取得された表示内容CSV及び表示定義XMLをPDFテンプレート104からのレイアウトに基づいてデータ編集を行ってPDFのデータを作成するPDFデータ編集処理部108と、作成されたPDFのデータに対してファイル名を設定して保存してからPDFファイル111の作成用に
ファイル化されたPDFのデータを出力するPD
Fデータ出力処理部109と、を備えている。
【0020】
更に、PDFテンプレート104のレイアウト、表示内容CSV格納部103の表示内容CSV、並びに表示定義XML格納用データベース105の表示定義XMLは、PD
F作成処理部110により作成されたPDFのデータのPDFデータ出力処理部109からの出力時におけるPDFの追加又はPDFの修正に際して、再作成又は修正可能となっている。これにより、出力するPDFの追加、或いはPDFの修正を行う際、これらの各部のデータの作成や修正を行うだけで良く、システムの改修を行う必要がない。
【0021】
即ち、このPDF作成システムについて、具体的に云えば、表示内容CSV格納部103に格納される表示内容CSVは、PDFに表示する表示データを設定するためのもので、PDFの1つに表示するデータをCSVの1行に設定し、項目単位でカラムに設定する。PDFテンプレート104は、実際に出力されるPDFのサイズ、背景色、枠線等、PDFのデータに依存しない固定のレイアウトを設定するもので、これにより作成されるPDFは、PDFテンプレート104上に表示内容CSVにより設定されたデータを表示し、出力される形態となる。表示定義XML格納用データベース105は、PDFテンプレート104上に表示内容CSVにより設定されたデータを表示する際の表示位置、フォント、サイズを設定するもので、これらの設定についてはCSVのカラム番号毎に行う。設定ファイル106は、表示内容CSV格納部103の表示内容CSV、PDFテンプレート104のレイアウト、表示定義XML格納用データベース105の表示定義XMLについて、サーバ101上の格納場所(パス)を設定したものである。
【0022】
このPDF作成システム102における基本的処理は、PDFデータ作成処理部110における各部の処理(3つの処理)に分けられる。即ち、データ取得処理107では、設定ファイル106に定義された格納場所に基づいて、表示定義XML格納用データベース105の表示定義XML、表示内容CSV格納部103の表示内容CSVを読み込んで内容を解析し、内蔵する記憶手段(メモリ)に格納する。PDFデータ編集処理部108では、PDFテンプレート104のレイアウトを読み込み、先にデータ取得処理107で読み込んで記憶した表示定義XML及び表示内容CSVの内容に対してPDFファイル111として出力するためのPDFのデータ内容を決定し、PDFを作成する。PDFデータ出力処理部109では、作成されたPDFに対してファイル名を設定してから外部記憶装置へ出力する。
【0023】
図2は、このPDF作成システム102のPDF作成処理部110におけるPDF作成の動作処理を示したフローチャートである。
【0024】
PDF作成処理部110におけるPDF作成の動作処理では、まずデータ取得処理部107において、設定ファイル106を読み込んでそこに定義されている各ファイル(後述する表示内容CSV格納部103、表示定義XML格納用データベース105、及びPDFテンプレート104を示す)の格納場所(パス)を取得する(ステップS201)処理を行った後、表示定義XML格納用データベース105を読み込んで表示定義XMLに定義されている全項目表示位置情報を取得する(ステップS202)処理を行い、記憶手段(メモリ)に全項目表示位置(ステップS203)を展開する。同様に、表示内容CSV格納部103を読み込んでCSVデータの1行を取得する(ステップS204)処理を行う。因みに、ステップS201で取得した格納場所(パス)は、後の処理で各ファイルを読み込む際に利用され、設定ファイル106自体の格納場所はシステム内のプログラムに直接記載するが、各ファイルについての格納場所は設定ファイル106に記載することにより、ファイルの追加や既存ファイルの格納場所の変更があった場合でもプログラムの修正は不要となる。また、ステップS204では、表示内容CSV格納部103から表示内容CSVのデータを
1行毎に読み込む。
【0025】
次に、PDFデータ編集処理部108において、取得したCSVデータをカラム毎に分割する(ステップS205)処理を行い、記憶手段(メモリ)に表示項目(ステップS206)として展開する。CSVデータには表示項目の他にPDFのファイル名も設定されている。更に、記憶手段(メモリ)上に展開したCSV1行のデータを先頭から1カラムずつ取得し、表示項目の1項目を取得する(ステップS207)処理を行う。このとき、カラム番号に基づいて各項目の表示情報を記憶手段(メモリ)から取得する。引き続き、PDFテンプレート104を読み込んで記憶手段(メモリ)に展開した後、表示情報に基づいてテンプレートに表示項目を表示位置に合わせて表示する(ステップS208)処理を行った後、全ての表示項目の処理を終了したか否かの判定(ステップS209)を行う。この判定の結果、処理されていなければステップS207の前へリターンしてその後の処理を繰り返すが、処理されていればPDFのデータの作成とみなしてPDFデータ出力処理歩109へ引き渡す。因みに、PDFテンプレート104にはPDFのデータ以外のレイアウトに係る表示情報(背景色や枠線)を設定しておく。また、ステップS208、S209で処理を全カラムに対して行わせることでCSVデータ1行分のPDFのデータが作成され、記憶手段(メモリ)上に完成されることになる。
【0026】
PDFデータ出力処理部109では、PDFデータ編集処理部108から引き渡されたCSVデータ1行分のPDFのデータについて記憶手段(メモリ)よりファイル名を取得し、ファイル名を設定し保存する(ステップS210)処理を行った後、ハードディスク等の外部記録装置へ出力することでCSVデータ1行分のPDFファイル111の生成に至るが、この後に最終的にCSVデータの全行を処理したか否かを判定(ステップS211)する。この判定の結果、処理されていれば動作処理を終了するが、処理されていなければステップS204の前にリターンしてPDF作成の完了に至るまでのCSVデータの行数分繰り返し、CSVデータに設定されている行数分のPDFデータの作成を完了させるようにする。
【0027】
図3は、このPDF作成システム102のファイル関連図であって、表示内容CSV格納部103における表示内容CSVと表示定義XML格納用データベース105における表示定義XMLのデータの一例を関連付けて示した模式図である。また、
図4は表示定義XML格納用データベース105におけるファイル構成形式の表示定義XMLのデータを例示した図である。更に、
図5は、表示内容CSV格納部103におけるファイル構成形式の表示内容CSVのデータを例示した図である。
【0028】
各図を参照すれば、表示定義XML格納用データベース105における表示定義XMLの構成は大きく2つに分けられ、例えば
図4に示されるように表示定義XMLの全体の設定を行うためのXML定義、設定内容、設定例のうち、XML定義にはroot(設定内容はPDF表示位置情報)の基本となる「config」(設定内容は解析情報)の項目がある。「config」項目の属性には更にXMLの種類を示すitem(設定内容はXML記載タイプ、設定例はtext)や、それに属するシステムでXMLの項目を分解して記憶手段(メモリ)に展開する旨を示すperser(設定内容はJavaプログラム名のJava格納Bean、設定例はcreatePdfParser.Java)等を設定する。
【0029】
rootの他の基本となる「location」項目には設定内容に表示位置情報を設定する。「location」項目に属するtext項目には、属性の項目毎の設定内容として、例えば「項目番号」、「X軸表示位置」、「Y軸表示位置」、「幅」、「高さ」、「フォント」、「文字サイズ」、「揃え位置」、「下線有無」といったレイアウト情報を設定する。
【0030】
表示内容CSVには、
図5に示されるように1行に1つのPDFに対して出力データを設定する。更に、1行のPDFデータは出力する項目単位でカラムに分割して設定する。表示内容CSVに設定する値については任意の値を設定することが可能である。PDFにデータを出力する際には、CSVのカラム番号に基づいて表示定義XMLの「項目番号」を検索し、位置情報を取得する。
【0031】
図6は、PDFテンンプレート104のデータを例示した図である。
図6を参照すれば、PDFテンプレート104は、上述したようにレイアウトとして実際に出力されるPDFのサイズ、背景色、枠線を含んでおり、PDFのデータを表示しない代わりに背景や枠線について表示する様子を示している。
【0032】
図7は、設定ファイル106におけるファイル構成形式のデータを例示した図である。
図7を参照すれば、設定ファイル106は、上述したようにPDFのデータをファイル化生成するための各ファイルの格納場所(パス)を定義するためのもので、各項目に対する設定内容及び設定例を例示している。
【0033】
図8は、PDF作成処理部110におけるPDFデータ出力処理部109から出力されるPDFのデータを例示した図である。
図8を参照すれば、
図6に示した背景の枠線内の所定箇所にPDFのデータが表示された様子を示している。
【0034】
ところで、上述したPDF作成の動作処理上では、各処理中にエラーが発生する場合があり、そうした場合の対応が作業上では重要になる。
図9は、
図2で説明したPDF作成の動作処理上におけるエラー処理パターンを表形式で例示した図である。
【0035】
図9を参照してエラー発生時の対応を具体的に説明すれば、ステップS201において、データ取得処理部107で設定ファイル106が読み込めなかった場合(システムが読み込むファイルが指定されたパスに存在しなかった場合)は、その対応として、システムは何も処理することなく動作処理(プログラム)を終了する。
【0036】
ステップS202において、表示定義XML格納用データベース105から表示定義XMLが読み込めなかった場合は、その対応として、システムは何も処理することなく動作処理(プログラム)を終了する。
【0037】
ステップS204において、表示内容CSV格納部103から表示内容CSVが読み込めなかった場合は、その対応として、システムは何も処理することなく動作処理(プログラム)を終了する。
【0038】
ステップS205において、PDFデータ編集処理部108で表示内容CSVより取得したデータがCSV形式でなかった場合は、その対応として、システムは何も処理することなく動作処理(プログラム)を終了する。
【0039】
ステップS208において、PDFテンプレート104が読み込めなかった場合は、その対応として、システムは何も処理することなく動作処理(プログラム)を終了する。また、ステップS208において、表示項目に対応する表示定義が取得できなかった場合は、その対応して表示項目はPDFには表示しない。ここでは、PDFに表示項目を表示する際、表示項目に対する表示位置が定義されていない場合があるので、そうした場合には、その表示項目をPDFに出力せず、次の表示項目の処理を行う。このような処理を行うことによって、CSVには表示データ以外のデータ(PDFファイル名等)も設定することが可能となっている。
【0040】
その他、ステップS210において、PDFデータ出力処理部109でPDFファイル名が取得できなかった場合は、その対応として、「{1から連番}.pdf」で出力する。また、ステップS210において、既に同一ファイル名のPDFが存在した場合は、その対応として、既存ファイルに上書きで保存する。
【0041】
尚、上述した実施例1に係るPDF作成システム102では、PDF作成処理部110がデータ取得処理部107、PDFデータ編集処理部108、及びPDFデータ出力処理部109の各部による別体で構成される例を説明したが、これらは部分的又は全体的に一体的に構成することも可能であるので、本願発明のPDF作成システム102は、実施例1で開示した構成のものに限定されない。