JP2011123848A - 印刷システム - Google Patents

印刷システム Download PDF

Info

Publication number
JP2011123848A
JP2011123848A JP2009283467A JP2009283467A JP2011123848A JP 2011123848 A JP2011123848 A JP 2011123848A JP 2009283467 A JP2009283467 A JP 2009283467A JP 2009283467 A JP2009283467 A JP 2009283467A JP 2011123848 A JP2011123848 A JP 2011123848A
Authority
JP
Japan
Prior art keywords
cell
line
data
lines
page
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
JP2009283467A
Other languages
English (en)
Inventor
Kinya Honda
欽也 本田
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 JP2009283467A priority Critical patent/JP2011123848A/ja
Publication of JP2011123848A publication Critical patent/JP2011123848A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

【課題】行の分断を行う際に、分断後に次ページに送られる各セル内の文字列について、行内で横に並ぶ各セルの文字列の位置関係が崩れないようにする。
【解決手段】フォームと後づけデータをオーバレイ印刷して帳票を生成する場合、ページ内の表の領域まで行を詰めるために、行内の各文字列を単位として行を分断し、分断後の行だけを次ページに送る場合には、表を1行ずつ描画していき、行が表の領域を超えるかどうか判定し、行が表の領域を超える場合に、各セルの文字列について、分断位置を決定し、各セルの分断位置に基づいて、補正処理が必要かどうかを判定し、各セルの分断位置から表高までの値を保持し、分断した行を次ページに描画する際に、保持していた値から各セルに余白を加えることで文字を描画する位置を補正する。
【選択図】図9

Description

本発明は表形式の帳票を生成する方法に関する。
帳票を生成、印刷する際に、テンプレートファイル(フォームファイル)と後付けデータファイルを使用してオーバレイ印刷する技術が用いられる。以下、テンプレートファイル(フォームファイル)をフォームと記載する。また、後付けデータファイルによりフォームに流しこまれるデータのことを後付けデータと記載する。
フォームと後付けデータファイルの関係について図3を用いて説明する。まずフォーム301には、後付けデータに依存しない固定の文字・図形等(301)と、後付けデータが流しこまれる矩形領域(305)が定義されている。以下、後付けデータが流し込まれる箇所をセルと呼ぶ。セルには、使用するフォント、文字のサイズなどの文字に関する一般的な設定が可能である。後付けデータファイル302は一般的なテキストファイルやCSVファイルなどであり、印刷アプリケーションのルールに従いデータが記述されている。図3の例では[セル1]と定義されているセルに対して[1000円]というデータを流しこむ、という記述になっている。このフォームと後付けデータファイルを元に、印刷アプリケーションはセルにデータを流したあとの描画命令をドライバー、プリンタに送ることで、最終的な印刷物である出力結果303が得られる。
これにより、あらかじめフォームを生成しておけば、あとは後付けデータファイルを変更するだけで必要な帳票を得ることができる。
また、帳票の種類の1つとして、表形式の帳票も一般的に使用される。図4は表形式の帳票をオーバレイ印刷する一例である。図4ではフォーム401内に、表形式のセル403が設定されている。表形式のセル403では、通常のセルに加えて、さらに表に関する属性が設定されている。例えば1ページ内に収まる最大行数などであり、図4の例で1ページに最大3行分の領域まで表示できる。上記フォーム401と後付けデータファイル402をオーバレイ印刷した結果が404、405である。
後付けデータの量が1ページ内に収まらない場合は、改ページ処理を行い複数ページで出力する。図4の例では表で5行分の後付けデータがフォームに流しこまれており、1ページ内には収まらないため改ページを行い、1ページ内に収まらないデータを次ページに送っている。
図4の例ではデータを次ページに送る際、表の行単位で送っている。表形式の帳票では、前記のように行単位でデータを次ページに送るだけでなく、行内の各セルの文字列単位で分断して次ページに送る技術も用いられる。以下、この技術を行分断と記述する。
図5は行分断をしない場合の例であり、図6は行分断を行う場合の例である。図5内の、後付けデータ501とフォーム503でオーバレイ印刷した結果が504である。504では行単位で次ページにデータを送っているため、計3ページ分の印刷結果となっている。一方、図6の例では、行内の各セルの文字列単位でデータを次ページに送っている。図6では3行目で行分断が発生している。次ページに送られた分断後のデータは、次ページの先頭から描画される。
行単位ではなく文字列単位でデータを送ることで、ページ内により多くの後付けデータを表示することが可能になり、図5と図6を比較すると全体のページ数が減っている。つまり、使用する用紙数が減ることになり、用紙の節約が可能になる。表形式の帳票では一般的にページ数が大量になる場合があり、少しでも用紙数を減らしたい場合に本技術は非常に有効である。
以上のように表形式の帳票では、後付けデータが1ページ内に収まらないことが普通であり、データを次ページに送る技術は重要であり、また既存の技術である。
例えば特開2007−287099では、帳票レイアウトでの可変表における集計行の表示/印刷方法について記載している。集計行のみがページ内に収まらず次のページに送るときにデータ行も一緒に次ページに送る場合に、データ行の最終行を送る前の行に集計行の配置の設定情報を表示/印刷することが記載されている。
特開2007−287099
本発明で解決しようとする課題は、上記で述べたデータを次ページに送るときのもので、特に行の分断が発生したときに発生するものである。
以下に、図7を用いて詳細な課題を説明する。図7の表701は表の一例であり、文字列を格納する複数のセルが1行内に横に並んで配置されている。そして、横に並んでいる各セルの文字列には、図7のセル702とセル703のように、互いに文字列の位置に関係があることがある。つまり、セル702内の「小計」や「合計」の文字列と、セル703内の「300円」、「450円」、「750円」の文字列の相対位置には意味があり、帳票設計者はお互いの文字列の位置を考慮して帳票を設計している。
このとき、行分断が発生した際に、分断されて次ページに送られた文字列を単純にセルの先頭から描画してしまうと、各セルの文字列の位置関係が崩れてしまう。図7では、セル702内の「合計」の文字列とセル703の「450円」、「750円」が、2ページ目705に送られているが、分断前の状態である701と比べると、お互いの文字列の相対位置が崩れてしまっている。
上記のように互いの文字列の位置関係が崩れてしまうと、表の見栄えが損なわれてしまう。さらに、描画される文字列の内容によっては、表の意味自体が変わってしまう恐れもある(図7の例では「合計」が750円を示しているが、分断後のデータではそれが分かりづらくなっている)。これが本発明で解決しようとする課題である。
フォーム(テンプレート)と後づけデータをオーバレイ印刷して表形式の帳票を生成するオーバレイ印刷システムにおいて、ページ内の表の領域一杯まで行を詰めるために、行内の各文字列単位で行を分断し、分断後の行だけを次ページに送る場合に、
・表を1行ずつ描画していき、行が表の領域を超えるかどうか判断するステップと
・行が表の領域を超える場合に、各セルの文字列について、何行まで表の領域内に収まるかを判定するステップと
・各セルの分断位置から表高までの値を保持しておくステップと
・分断した行を次ページに描画する際に、前期ステップで保持していた値を元に、各セルの文字描画位置を調整するステップと
を備えることを特徴とするオーバレイ印刷システム。
行内で横に並ぶ各セルの文字列の位置関係を崩すことなく、行の分断を行うことができる。図8のようになる。
Aは帳票等のデータを印刷するシステム100、Bは汎用コンピュータモジュール図 ライブラリ105の分離バージョン225を含む図1A・図1Bの類似図 フォームと後付けデータファイルの関係を説明する図 表形式のフォームと後付けデータファイルの関係を説明する図 行単位で後付けデータを次ページに送る例 行分断をおこなう場合の例 課題を示す図 課題を解決時の図 Aは文字列の位置関係を維持したまま行分段を行う処理を示す図、Bは文字列の位置関係を維持したまま行分段を行った結果を示す図 実施例1のフローチャート 実施例3を示す図
<システム構成図>
図1Aは帳票等のデータを印刷する印刷システム100を図示している。この中で示された方法は図1Bで詳しく説明される汎用コンピュータモジュール101で実践される。図1Bで記述されるプロセスは、コンピュータモジュール101内で実行され、システム100上で実施可能となるフォーム作成アプリケーションプログラム121のようにソフトウェアの全体、あるいは一部分で実行される。特にレイアウト編集、設定ファイル編集や必然的に起こる印刷のステップはコンピュータ101によって実行されるソフトウェアの指示によって実施される。ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ101によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。そのコンピュータでのコンピュータプログラム製品の使用は望ましくもドキュメントのレイアウト編集やデータ印刷に有利な装置をもたらす。
コンピュータモジュール101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置を連結する。入力/出力インターフェース138はコンピュータモジュール101をネットワーク接続107から接続してシステム100の他のコンピュータ装置につなげることができる。そのネットワーク接続107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
コンピュータモジュール101は典型的に少なくとも1つのプロセッサーユニット135を含む。同様に、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136を含む。同様にビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェースを含む。さらにキーボード132やマウス133のためのI/Oインターフェース143を含んでいる。
記憶装置139は典型的にハードディスクドライブ140やフロッピーディスクドライブ141を含んでいる。図には示されていないが磁気テープドライブもまた使用される可能性がある。CD−ROMドライブ142は不揮発性のデータソースとして提供される。コンピュータモジュール101は相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。
図に記述した配置コンピュータの例ではIBM互換PCやSUN社のSparc Station、あるいはそれらを含んだコンピュータシステムが考えられる。
フォーム作成アプリケーションプログラム121は典型的にハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。プログラム121の媒介記憶装置とネットワーク1020からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。いくつかのインスタンスではアプリケーションプログラム121がCD−ROMやフロッピーディスク上でエンコードされ、対応するドライブ142や141を通じて読み込まれユーザに提供される。あるいはもう一つの方法としてアプリケーションプログラム121はネットワーク接続107からユーザによって読み込まれるかもしれない。さらにソフトウェアは磁気テープまたはROMなど、他の適当な大きさのコンピュータ可読媒体からコンピュータモジュール101内にロードされる可能性もある。前述は単に関連するコンピュータ可読メディアの模範である。他のコンピュータ可読媒体も使用される可能性はある。
またフォーム作成と名づけられたアプリケーション121はフォーム作成や印刷を行うよう指示し、2つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのコンポーネントはライブラリ105であり、これはオーバレイ印刷処理等の処理を行うソフトウェアコンポーネントである。2つめのコンポーネントであるユーザインターフェース103はユーザにフォームや設定ファイルを作成させるメカニズムを提供する。ユーザインターフェース103とライブラリ105はコミュニケーションチャネル123を介して通信する。ドキュメント生成のためのデータソースは一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバー117上にある典型的なデータベース119である。ホストコンピュータ101はネットワーク接続107の手段によってデータベースサーバー117と通信する。フォーム作成アプリケーション121はホストコンピュータ101か一般的に他のコンピュータで構成されるファイルサーバー115に保存されるフォームまたは設定ファイルを生成する。これらのドキュメントはホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバー115に保存されるか、あるいはプリンタ113に直接印刷される。プリントサーバー109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバー109とプリンタ113は典型的な通信チャネル111を介して接続される。
図2は中間ファイルを使用した場合の、帳票等のデータを印刷するシステム200の一例を図示している。エンジンサーバー201は典型的なコンピューターである。ファイルサーバー115に保存されたフォームは印刷や他の目的がある際、ライブラリ203によってデータベース119に保存されたデータと中間ファイルを生成することができる。そのようなオペレーションはインターフェース203からユーザがライブラリ203に対して指示をすることにより、可能である。
作成された中間ファイルはネットワーク接続107から接続して、管理サーバー204やクライアント209に送信される。管理サーバー204もクライアント209も共に典型的なコンピューターである。管理サーバー204では、中間ファイルを受け取ると、中間ファイルをデータベース207に保存、管理する。管理された中間ファイルはインターフェーズ205を介して、ユーザが印刷、削除、検索などの指示をすることが可能である。印刷指示された中間ファイルは、ライブラリ206により印刷処理をされ、ネットワーク接続107を介してプリンター113に送信される。
中間ファイルの管理が必要ないような場合には、単純にクライアント209に中間ファイルを送信し、ライブラリ210により印刷処理され、プリンター113に直接印刷される。
<実施例1>
上記で述べた、分断後の各文字列を次ページの先頭から描画すると、各文字列の位置関係が崩れてしまうという課題を解決するための実施例を以下に述べる。
本実施例の概要は、各文字列の位置関係が崩れると判定された場合には、分断後の文字列の描画位置に補正を行うというものである。
本実施例に従うことで、最終的には図8のように、各文字列の位置関係が維持された状態で行分断が行われるようになる。
本実施例を図9A、図9B、図10を用いて説明する。図10は本実施例の処理の流れを示すフローチャートである。また、図9A、図9Bは本実施例の処理の流れを、具体例を用いて説明する図である。なお、図9Aは内部処理の流れを分かりやすくするためにイメージ化したもので、実際の印刷結果ではない。最終的な印刷結果が図9Bである。
以降では図10のフローチャートに従い、実施例を説明していく。
なお、図10のフローチャートは、フォームと後付けデータがライブラリ203に渡され、ライブラリ203が後付けデータを解析してフォームに定義されてある表図形に格納していき、表がページ内に収まらず行分断を行うところからスタートする。
まずステップ1001では、ライブラリ203が、セル内の文字列の情報より、分断位置を決定する。
この処理は、すべてのセルに対して行う。
本ステップの具体例を図9Aで説明する。図9Aでは、901のセル1と902のセル2の、2つの横に並んでいるセルに対して行分断を行う場合の例である。903は各セルに後付けデータが格納された状態を示す図であり、ページ内の表の最後の1行を表している。この例ではセル1に「ABCDEFGHIJKLMNOPQRSTUVWX」、セル2に「あいうえおかきくけこさしすせそすせそ」の文字列が格納されている。標高904はページで表示できる表の高さを示していて、この高さを超える場合に行分断がされる。図9Aの例では表高に対して行が収まりきらないため、行分断が発生する。分断する位置は、文字が切れない範囲内で表高いっぱいまで入る文字列の位置で決まる。ステップ1001によりセル1の分断位置は911の位置、セル2の分断位置は912と判定される。
次にステップ1002で、ライブラリ203が、各セルの分断位置が横に揃っているかどうかを判定する。本判定が、分断後に次ページに送られる各文字列の位置関係が崩れるかどうかを判定するものである。図9Aの例では、セル1の分断位置911とセル2の分断位置912は揃っていない。そのため、分断後の文字列を次ページの先頭から描画すると位置関係がくずれてしまう。そのため、本判定でYESと判定された場合には、以下のステップによる補正処理が必要になる。
ステップ1002でYESと判定された場合、次にステップ1003では、ライブラリ203が、分断位置から表高に達するまでの距離Wnを記憶領域に保存しておく。
図9Aで具体例を述べる。図の913はステップ1001により決定した各セルの分断位置で単純に表を分けたものである。ここで、ステップ1002により、セル1の表高までの距離W1(914)と、セル2の表高までの距離W2(905)を保持しておく。ここで保持した値を、後で述べる補正処理の計算で使用する。
次に、ステップ1005で、ライブラリ203が、各セルについてステップ1002で求めた表高までの距離Wnの値だけ、余白を追加する。
図9Aの例では、セル1に対して余白907、セル2に対して余白908を追加している。この処理の目的は、表の底辺を揃えるためのものである。この処理を行わないと、表の底辺が凸凹になってしまい、表の見栄えが損なわれる。
ここまでで1ページ目の処理は終了する。以降は、分断された後付けデータが送られる次ページ目の処理に進む。
ステップ1007でライブラリ203が、ステップ1003で求めたWnの中でもっとも大きな値Lを求める。図9Aの例では、距離905がLとなる。
次にステップ1008で、分断されて次ページに送られる各セルについて、ライブラリ203が、L−Wnの分だけ余白を追加する。本ステップが、文字列の位置関係を崩さないための補正処理となる。
図9Aの具体例では、セル1に対して、余白909を追加している。一方、セル2に関しては補正は必要ないため、余白の追加はない。
ここまでで分断される行に関しての処理は終了し、次のステップでは、分断された行の次の行について描画処理を行う。
以上の処理により、最終的に出来上がる帳票の印刷結果を示したのが図9Bである。
921が帳票の1ページ目で、922が2ページ目の印刷結果を示している。2ページ目922を見ると、セル1とセル2の文字列の相対位置を維持した状態となっている。
以上の処理により、行内で横に並ぶ各セルの文字列の位置関係を崩すことなく、行の分断を行うことができる。そのため、行分断を行うことで、表の見栄えが損なわれたり、表の意味が変わってしまうという課題が解決される。
<実施例1の補足>
実施例1では、本実施例の概要は、各文字列の位置関係が崩れると判定された場合には、分断後の文字列の描画位置に補正を行うことについて記載した。
実施例1で説明した図10のステップ1002〜1008の補正処理は、必ず行ってもよいが、ユーザが補正処理を行うかどうか選択できてもよい。
ユーザが選択する手段としては、エディタを使用してフォームを生成する際に、エディタに選択用のUIを設けることで、フォームに対してあらかじめ設定しておくことが考えられる。
別の手段としては、ライブラリ203に補正の有無を指定できるインターフェース(API)を設けることがある。オーバレイ印刷時にライブラリ203に対して、ユーザーが動的に補正の有無を指定することで、フォームを変更することなく帳票単位に補正処理の有無が選択できる。
<実施例2>
実施例2では、ライブラリ203のエラー処理について記述する。図11は補正処理を行う際に、エラーが発生するような表の一例である。
例11は極端な例であるが、セル2(1102)には1文字だけが格納されている。このような場合、どこを分断してもセル2(1102)の文字列は欠けてしまうことになる。
このような場合は分断自体を行わず、行全体を次ページに送る。図10のフローチャートでいうと、ステップ1001での分断位置判定で、分断できる位置が無いと判定される。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101 コンピュータ

Claims (1)

  1. フォームと後づけデータをオーバレイ印刷して帳票を生成する印刷システムにおいて、
    ページ内の表の領域まで行を詰めるために、行内の各文字列を単位として行を分断し、分断後の行だけを次ページに送る場合に、表を1行ずつ描画していき、行が表の領域を超えるかどうか判定するステップと
    行が表の領域を超える場合に、各セルの文字列について、分断位置を決定するステップと
    各セルの分断位置に基づいて、補正処理が必要かどうかを判定するステップと、
    各セルの分断位置から表高までの値を保持しておくステップと
    分断した行を次ページに描画する際に、前記ステップで保持していた値から各セルに余白を加えることで文字を描画する位置を補正するステップとを備えることを特徴とする印刷システム。
JP2009283467A 2009-12-14 2009-12-14 印刷システム Pending JP2011123848A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009283467A JP2011123848A (ja) 2009-12-14 2009-12-14 印刷システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009283467A JP2011123848A (ja) 2009-12-14 2009-12-14 印刷システム

Publications (1)

Publication Number Publication Date
JP2011123848A true JP2011123848A (ja) 2011-06-23

Family

ID=44287641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009283467A Pending JP2011123848A (ja) 2009-12-14 2009-12-14 印刷システム

Country Status (1)

Country Link
JP (1) JP2011123848A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018154A (ja) * 2016-07-25 2018-02-01 株式会社プロフィールド ページ処理装置、ページ処理方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018154A (ja) * 2016-07-25 2018-02-01 株式会社プロフィールド ページ処理装置、ページ処理方法、及びプログラム

Similar Documents

Publication Publication Date Title
JP5189497B2 (ja) 帳票作成システム及びこれを用いたネットワークシステム、並びに帳票作成方法。
US7710590B2 (en) Automatic maintenance of page attribute information in a workflow system
US8520251B2 (en) Information processing apparatus, information processing method, and computer program
US20060028659A1 (en) Layout adjustment method, apparatus and program for the same
US20050125728A1 (en) PDF document to PPML template translation
US20030070146A1 (en) Information processing apparatus and method
JP2006506713A (ja) 要素を割り付ける反復的方法及び要素を割り付ける装置
US8018618B2 (en) Information processing apparatus that outputs images having same size to single page of recording sheet and computer readable medium
US20140111829A1 (en) Printing system, printing method and computer-readable recording medium
US20100131566A1 (en) Information processing method, information processing apparatus, and storage medium
US20060262336A1 (en) Manual annotation document reformation
JP2006107142A (ja) 文書処理装置及び方法
US20070143670A1 (en) Printing apparatus and method
JP2005044279A (ja) 帳票処理方法、帳票処理プログラム、帳票処理装置
JP2006293598A (ja) 文書処理システム
US8780404B2 (en) Information processing apparatus, method for controlling same, and storage medium on which computer program has been recorded
US20050125724A1 (en) PPML to PDF conversion
US20110320933A1 (en) Editing apparatus, layout editing method performed by editing apparatus, and storage medium storing program
WO2005109231A1 (en) Data processing system and method
JP2008197835A (ja) 文書編集装置、プログラムおよび記憶媒体
JP2011123848A (ja) 印刷システム
JP2011203774A (ja) 印刷プログラム、印刷制御装置および画像形成装置
JP2007279855A (ja) 情報処理装置及びその制御方法、プログラム
JP2008134859A (ja) 出力文書作成装置、出力文書作成プログラム、出力文書作成サーバ及び出力文書作成方法
Edition What is Minecraft: Education Edition