IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

<>
  • 特開-プリンタ 図1
  • 特開-プリンタ 図2
  • 特開-プリンタ 図3
  • 特開-プリンタ 図4
  • 特開-プリンタ 図5
  • 特開-プリンタ 図6
  • 特開-プリンタ 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155010
(43)【公開日】2024-10-31
(54)【発明の名称】プリンタ
(51)【国際特許分類】
   B41J 5/30 20060101AFI20241024BHJP
【FI】
B41J5/30 Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023069341
(22)【出願日】2023-04-20
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000291
【氏名又は名称】弁理士法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】中島 健志郎
【テーマコード(参考)】
2C187
【Fターム(参考)】
2C187AC06
2C187AC08
2C187AD14
2C187BF60
2C187BG03
2C187BG23
2C187BG24
2C187BG26
(57)【要約】
【課題】フォント情報に含まれる文字コード体系と異なる文字コード体系が指定された印刷ジョブであっても、適切な文字を印刷できる可能性を高める技術を提供すること。
【解決手段】プリンタ1は、変換対象の文字コード体系における文字コードと、Unicode体系における文字コードと、を対応付けた変換テーブル24を、変換対象の文字コード体系ごとに記憶可能である。プリンタ1は、Unicode体系ではない文字コードを含むPCL5形式の印刷データを取得した場合に、取得した印刷データに基づいて、変換対象の文字コード体系を特定し、特定した文字コード体系に対応する変換テーブルを読み出す。さらに、プリンタ1は、読み出した変換テーブルを用いて、印刷データに含まれる文字コードをUnicode体系の文字コードに変換し、変換後の文字コードを用いてラスタデータを生成し、ラスタデータに基づいて印刷する。
【選択図】図1
【特許請求の範囲】
【請求項1】
メモリと、
印刷エンジンと、
コントローラと、
を備えるプリンタであって、
前記メモリには、
複数の文字と各文字に対応する文字コードで構成される文字コード体系ごとに、文字コードの変換テーブルを記憶可能であり、
前記変換テーブルは、
変換対象の文字コード体系における第1文字コードと、所定の文字コード体系における第2文字コードと、を対応付けたテーブルであり、
前記コントローラは、
印刷データを取得する取得処理と、
前記取得処理にて前記所定の文字コード体系でない文字コード体系の文字コードを含む印刷データを取得した場合に、取得された前記印刷データに基づいて、文字コード体系を特定する特定処理と、
前記特定処理にて特定された前記文字コード体系に対応する前記変換テーブルを、前記メモリから読み出す読出し処理と、
前記読出し処理にて読み出された前記変換テーブルを用いて、前記取得処理にて取得された前記印刷データに含まれる前記文字コードを前記第1文字コードとして、前記第2文字コードに変換する変換処理と、
前記変換処理にて変換された前記第2文字コードを用いてラスタデータを生成し、生成された前記ラスタデータに基づく印刷を、前記印刷エンジンに行わせる印刷処理と、
を実行可能である、
ように構成されるプリンタ。
【請求項2】
請求項1に記載するプリンタであって、
前記コントローラは、
前記特定処理にて前記文字コード体系が特定できなかった場合に、前記取得処理にて取得された前記印刷データに基づく処理をエラー終了する、
ように構成されるプリンタ。
【請求項3】
請求項1に記載するプリンタであって、
前記コントローラは、
前記特定処理にて前記所定の文字コード体系と互換性がある文字コード体系に特定された場合、
前記読出し処理および前記変換処理を実行せず、
前記印刷処理では、前記取得処理にて取得された前記印刷データに含まれる前記文字コードを用いてラスタデータを生成し、生成された前記ラスタデータに基づく印刷を、前記印刷エンジンに行わせる、
ように構成されるプリンタ。
【請求項4】
請求項1に記載するプリンタであって、
前記コントローラは、
前記読出し処理にて前記変換テーブルを読み出すことができなかった場合に、
前記変換処理および前記印刷処理を実行せず、
前記取得処理にて取得された前記印刷データに基づく処理をエラー終了する、
ように構成されるプリンタ。
【請求項5】
請求項1に記載するプリンタであって、
前記コントローラは、
前記読出し処理にて前記変換テーブルを読み出すことができなかった場合に、
前記変換処理を実行せず、
前記印刷処理では、あらかじめ決められたフォントを用いてラスタデータを生成し、生成された前記ラスタデータに基づく印刷を、前記印刷エンジンに行わせる、
ように構成されるプリンタ。
【請求項6】
請求項1に記載するプリンタであって、
前記メモリには、
複数の文字コード体系について、それぞれ対応する前記変換テーブルがあらかじめ記憶されており、
前記コントローラは、
前記読出し処理では、前記メモリに記憶されている複数の前記変換テーブルの中から、前記特定処理にて特定された前記文字コード体系に対応する前記変換テーブルを読み出す、
ように構成されるプリンタ。
【請求項7】
請求項1に記載するプリンタであって、
前記コントローラは、
文字コード体系ごとの前記変換テーブルをダウンロードするコマンドを受け付ける受付処理と、
前記受付処理にて前記コマンドを受け付けた場合に、前記変換テーブルを外部デバイスからダウンロードして前記メモリに記憶するダウンロード処理と、
を実行可能であり、
前記コントローラは、
前記読出し処理では、前記ダウンロード処理によって前記メモリに記憶されている前記変換テーブルを含む複数の前記変換テーブルの中から、前記特定処理にて特定された前記文字コード体系に対応する前記変換テーブルを読み出す、
ように構成されるプリンタ。
【請求項8】
請求項1に記載するプリンタであって、
前記所定の文字コード体系は、Unicodeである、
ように構成されるプリンタ。
【請求項9】
請求項1に記載するプリンタであって、
前記メモリには、
文字のアウトラインを示す情報を含むグリフデータが複数含まれ、各グリフデータが前記所定の文字コード体系における前記第2文字コードと対応付けられているフォント情報を記憶可能であり、
前記コントローラは、
前記印刷処理では、前記メモリに記憶される前記フォント情報から、前記変換処理にて変換された前記第2文字コードに対応する前記グリフデータを取得し、取得された前記グリフデータを用いて前記ラスタデータを生成し、生成された前記ラスタデータに基づく印刷を、前記印刷エンジンに行わせる、
ように構成されるプリンタ。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術分野は、ページ記述言語で記述された印刷データに基づく印刷が可能なプリンタに関する。
【背景技術】
【0002】
従来、ページ技術言語で記述された印刷データに基づく印刷が可能なプリンタには、例えば特許文献1に開示されているように、内蔵フォントのフォント情報をあらかじめ記憶して、そのフォント情報を印刷に用いるものがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-56583号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
印刷データによってはフォント情報に含まれる文字コード体系と異なる文字コード体系が指定される場合がある。その場合、文字コードが示す文字が一致せず、適切な文字を指定されたフォントで印刷できない可能性があることから、改善の余地がある。
【課題を解決するための手段】
【0005】
この課題の解決を目的としてなされたプリンタは、メモリと、印刷エンジンと、コントローラと、を備えるプリンタであって、前記メモリには、複数の文字と各文字に対応する文字コードで構成される文字コード体系ごとに、文字コードの変換テーブルを記憶可能であり、前記変換テーブルは、変換対象の文字コード体系における第1文字コードと、所定の文字コード体系における第2文字コードと、を対応付けたテーブルであり、前記コントローラは、印刷データを取得する取得処理と、前記取得処理にて前記所定の文字コード体系でない文字コード体系の文字コードを含む印刷データを取得した場合に、取得された前記印刷データに基づいて、文字コード体系を特定する特定処理と、前記特定処理にて特定された前記文字コード体系に対応する前記変換テーブルを、前記メモリから読み出す読出し処理と、前記読出し処理にて読み出された前記変換テーブルを用いて、前記取得処理にて取得された前記印刷データに含まれる前記文字コードを前記第1文字コードとして、前記第2文字コードに変換する変換処理と、前記変換処理にて変換された前記第2文字コードを用いてラスタデータを生成し、生成された前記ラスタデータに基づく印刷を、前記印刷エンジンに行わせる印刷処理と、を実行可能である、ように構成される。
【0006】
本明細書に開示されるプリンタは、所定の文字コード体系でない文字コード体系の文字コードを含む印刷データを取得した場合、その印刷データに基づいて特定された文字コード体系に対応する変換テーブルをメモリから読み出す。さらに、プリンタは、その変換テーブルを用いて、印刷データに含まれる文字コードを所定の文字コード体系の文字コードに変換する。これにより、プリンタは、所定の文字コード体系の文字コードを利用してラスタデータを生成可能になり、印刷データに指定されたフォントで、適切に文字を印刷できる可能性が高まる。
【0007】
上記プリンタを含む印刷システム、プリンタの機能を実現するための制御方法、コンピュータプログラム、当該プログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0008】
本明細書に開示される技術によれば、フォント情報に含まれる文字コード体系と異なる文字コード体系が指定された印刷ジョブであっても、適切な文字を印刷できる可能性を高める技術が実現される。
【図面の簡単な説明】
【0009】
図1】プリンタの概略構成を示すブロック図である。
図2】フォント情報の構成の例を示す説明図である。
図3】印刷ジョブ処理の手順を示すフローチャートである。
図4】フォント判定処理の手順を示すフローチャートである。
図5】変換テーブルの構成の例を示す説明図である。
図6】中間データ取得処理の手順を示すフローチャートである。
図7】変換テーブル取得処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施の形態にかかるプリンタについて、添付図面を参照しつつ詳細に説明する。本実施の形態は、ページ記述言語で記述された印刷データに基づく印刷が可能なプリンタを開示するものである。
【0011】
プリンタ1は、図1に示すように、CPU11と、メモリ12と、を含む制御部10を備えている。また、プリンタ1は、ユーザインタフェース(以下、「ユーザIF」とする)13と、通信インタフェース(以下、「通信IF」とする)14と、印刷エンジン15と、を備えている。CPU11は、コントローラの一例である。ユーザIF13と通信IF14と印刷エンジン15とは、いずれも、制御部10に電気的に接続されている。なお、図1中の制御部10は、プリンタ1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にプリンタ1に存在する単一のハードウェアを表すとは限らない。
【0012】
CPU11は、メモリ12から読み出したプログラムに従って、または、ユーザの操作に基づいて、各種の処理を実行する。メモリ12には、各種のプログラムや各種のデータが記憶されている。メモリ12は、各種の処理が実行される際の作業領域としても利用される。メモリ12は、CPU11が備えるバッファを含んでも良い。
【0013】
なお、メモリ12の一例は、プリンタ1に内蔵されるROM、RAM、HDD等に限らず、CPU11が読み取り可能かつ書き込み可能なストレージ媒体であっても良い。CPU11が読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバ100などからダウンロードされるプログラムを搬送する電気信号は、CPU11が読み取り可能な媒体の一種であるが、メモリ12の一例には含まれない。
【0014】
ユーザIF13は、ユーザに情報を報知するための画面を表示するハードウェアと、ユーザによる操作を受け付けるハードウェアと、を含む。ユーザIF13は、タッチパネルを含んでも良いし、表示部と操作ボタンとの組み合わせであっても良い。
【0015】
通信IF14は、外部装置と通信を行うためのハードウェアを含む。通信IF14の通信規格は、イーサネット(登録商標)、Wi-Fi(登録商標)、USBなどである。プリンタ1は、複数の通信規格に対応する複数の通信IF14を備えていても良い。
【0016】
印刷エンジン15は、例えば、電子写真方式、インクジェット方式、によって、画像データに基づく印刷を実行可能なデバイスを含む。印刷エンジン15は、複数色の着色材を備えてカラー印刷を実行可能なものであっても良いし、1色のみの着色材を備えて単色印刷を行うものであっても良い。
【0017】
メモリ12には、例えば、図1に示すように、印刷制御プログラム21と、内蔵フォント情報22と、ダウンロードフォント情報(以下、「DLフォント情報」とする)23と、変換テーブル24と、が記憶されている。
【0018】
変換テーブル24は、異なる文字コード体系の文字コード同士を対応付けたテーブルである。なお、変換テーブル24は、プリンタ1の工場出荷時には記憶されていても記憶されていなくても良い情報である。変換テーブル24の詳細については、後述する。
【0019】
内蔵フォント情報22は、複数の文字のグリフデータを含むフォント情報である。内蔵フォント情報22は、プリンタ1があらかじめ備える内蔵フォントのフォント情報である。内蔵フォント情報22は、プリンタ1の工場出荷時にメモリ12に記憶されている情報である。
【0020】
DLフォント情報23は、複数の文字のグリフデータを含むフォント情報である。DLフォント情報23は、プリンタ1があらかじめ備えるフォントではないダウンロードフォント(以下、「DLフォント」とする)のフォント情報である。DLフォント情報23は、プリンタ1の工場出荷時には記憶されていない情報である。
【0021】
プリンタ1は、例えば、図1に示すように、通信IF14を介して、フォントの情報を備えているサーバ100と通信可能である。そして、プリンタ1は、工場出荷後に、例えば、ユーザの指示に基づいて、サーバ100からダウンロードすることで、DLフォント情報23をメモリ12に記憶させることができる。また、ユーザは、DLフォント情報23が記憶されているUSBメモリをプリンタ1に接続することで、プリンタ1にDLフォント情報23を利用させることができる。なお、DLフォント情報23は、例えば、トゥルータイプフォント、オープンタイプフォント、ポストスクリプトフォント、の形式の情報として提供される。
【0022】
プリンタ1が記憶している内蔵フォント情報22やDLフォント情報23には、トゥルータイプフォント形式のフォント情報が含まれる。トゥルータイプフォント形式のフォント情報は、フォント種ごとに、例えば、図2に示すような構成のフォント情報30を含む。フォント情報30は、ヘッダテーブル31と、文字テーブル32と、場所テーブル33と、グリフテーブル34と、を含む。なお、フォント情報30は、さらに、各文字について、印字位置を示す情報や文字幅を示す情報を含んでいても良い。
【0023】
ヘッダテーブル31は、文字テーブル32の位置情報と、場所テーブル33の位置情報と、グリフテーブル34の位置情報と、を含む情報を記憶するテーブルである。
【0024】
文字テーブル32は、各文字の文字コードと当該文字のグリフIDとを関連付けたテーブルである。文字コードは、文字コード体系に基づいて各文字を識別する情報である。文字コード体系は、文字の識別方法の規格であり、各文字を示す文字コードを複数含むセットを示す情報である。文字コード体系には複数の種類があり、異なる文字コード体系では、同じ文字が異なる文字コードで表現される場合がある。
【0025】
場所テーブル33は、グリフIDごとに、グリフIDとそのグリフIDに対応するグリフデータの位置情報とを関連付けたテーブルである。グリフIDは、各文字のグリフデータを識別する識別情報である。
【0026】
グリフテーブル34は、グリフデータ341、342などの複数のグリフデータを格納するテーブルである。各グリフデータは、各文字のアウトラインを示す情報であって、それぞれに固有のグリフIDが付与されている。
【0027】
トゥルータイプフォント形式のフォント情報30では、Unicode体系における文字コードが利用される。つまり、トゥルータイプフォント形式である場合、フォント情報30の文字テーブル32では、Unicode体系における文字コードとグリフIDとが関連付けられている。Unicode体系は、所定の文字コード体系の一例である。トゥルータイプフォント形式のフォント情報30は、各グリフデータが所定の文字コード体系における文字コードと対応付けられているフォント情報の一例である。
【0028】
プリンタ1は、内蔵フォント情報22やDLフォント情報23として、Unicode体系における文字コードとグリフデータとが対応付けられているフォント情報を有していても良い。なお、プリンタ1が有する内蔵フォント情報22やDLフォント情報23には、Unicode体系ではない文字コード体系における文字コードとグリフデータとが対応付けられているフォント情報が含まれていても良い。
【0029】
次に、実施の形態のプリンタ1の動作について説明する。なお、以下の処理は、基本的に、プログラムに記述された命令に従ったCPU11の処理を示す。CPU11による処理は、オペレーティングシステム(以下、「OS」とする)のAPIを介したハードウェア制御も含む。本明細書では、OSの記載を省略して各プログラムの動作を説明する場合がある。また、「取得」は、要求して取得する場合と要求せずに取得する場合とを含む概念で用いる。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。
【0030】
プリンタ1は、印刷ジョブを取得して、取得した印刷ジョブに基づく印刷を実行できる。印刷ジョブは、例えば、印刷対象の画像を示す印刷データであって、ページ記述言語で記述されるPDLデータと、印刷に関する各種のパラメータを示すPJLデータと、を含む。PDLデータは、例えば、PCL、PDF等の形式の印刷データである。なお、プリンタ1は、印刷ジョブを、通信IF14を介して外部装置から受信して取得しても良いし、通信IF14に装着されたUSBメモリから読み出して取得しても良い。
【0031】
ページ記述言語で記述された印刷データには、文字を印刷対象とするテキストオブジェクトが含まれる場合がある。印刷データには、印刷対象の各文字の情報として、フォント種、文字コード、文字サイズ、文字色等の情報が含まれ、文字のアウトラインを示す情報は含まれない。テキストオブジェクトを含む印刷データをラスタライズする場合、プリンタ1は、内蔵フォント情報22やDLフォント情報23等のフォント情報からグリフデータを取得して、取得したグリフデータを用いて、文字の形状を示すラスタデータを生成する。
【0032】
テキストオブジェクトにて印刷対象の文字を指定する文字コードは、印刷データの形式ごとに特定の文字コード体系で記載される。例えば、PDF形式の印刷データは、トゥルータイプフォント形式のフォント情報30(図2参照)に用いられている文字コード体系である、Unicode体系の文字コードを用いて記述される。印刷データがPDF形式であれば、プリンタ1は、印刷データに含まれる文字コードによってフォント情報30からグリフデータを正しく検索することができる。これは、Unicode体系の文字コードが用いられているフォント情報30の文字コードと、印刷データに含まれる文字コードとが、対応しているからである。
【0033】
一方、ヒューレットパッカード(登録商標)によって提供されているPCL5形式の印刷データでは、Unicode体系とは異なる文字コード体系が利用される。印刷データに利用されている文字コード体系がUnicode体系でないことから、プリンタ1は、PCL5形式の印刷データに含まれる文字コードによってフォント情報30からグリフデータを正しく検索することができない場合がある。これは、Unicode体系の文字コードが用いられているフォント情報30の文字コードと、印刷データに含まれる文字コードとが、対応していない場合があるからである。
【0034】
以下では、PCL5形式の印刷データを含む印刷ジョブの実行指示を受け付けた場合に実行される処理である印刷ジョブ処理の手順について、図3のフローチャートを参照して説明する。印刷ジョブ処理は、印刷制御プログラム21に基づいて、プリンタ1のCPU11にて実行される。PCL5形式の印刷データは、Unicode体系ではない文字コード体系の文字コードを含む印刷データである。なお、プリンタ1は、例えば、PJLデータに基づいて、PDLデータの種類を把握できる。
【0035】
印刷ジョブ処理では、CPU11は、受け付けた印刷ジョブに含まれる印刷データを順に取得する(S101)。S101は、取得処理の一例である。そして、CPU11は、取得した印刷データがフォントの選択指示を示すデータであるか否かを判断する(S102)。CPU11は、印刷データにフォントを指定するコマンドが含まれる場合、フォントの選択指示を受け付けたと判断する。フォントの選択指示を受け付けたと判断した場合(S102:YES)、CPU11は、フォント判定処理を実行する(S103)。
【0036】
フォント判定処理の手順について、図4のフローチャートを参照して説明する。フォント判定処理では、CPU11は、指定されたフォントのフォント情報が有るか否かを判断する(S201)。例えば、フォント情報が印刷データに埋め込まれている場合、CPU11は、フォント情報が有ると判断する。また、指定されたフォントが、内蔵フォント情報22やDLフォント情報23の1つであって、メモリ12に記憶されている場合、CPU11は、フォント情報が有ると判断する。
【0037】
フォント情報が有ると判断した場合(S201:YES)、CPU11は、指定されたフォントのフォント情報を取得する(S202)。例えば、フォント情報が印刷データに埋め込まれている場合、CPU11は、印刷データからそのフォント情報を取得して、メモリ12の所定の領域に記憶させる。また、例えば、メモリ12に記憶されている内蔵フォント情報22やDLフォント情報23が指定されている場合、CPU11は、指定されたフォントのフォント情報をメモリ12から読み出す。CPU11は、読み出したフォント情報を、以後の処理にて利用し易い形式に加工しても良い。
【0038】
CPU11は、取得したフォント情報が、印刷データに適合しているか否かを判断する(S205)。具体的には、CPU11は、取得したフォント情報に利用されている文字コード体系と、印刷データに用いられている文字コード体系と、が一致しているか否かを判断する。
【0039】
例えば、印刷データに埋め込まれているフォント情報は、その印刷データに利用される文字コード体系に基づいて構成されている。また、内蔵フォント情報22やDLフォント情報23の中にも、PCL5形式の印刷データに利用される文字コード体系に基づいて構成されているものがある。従って、指定されたフォントが、印刷データに埋め込まれているフォントやPCL5形式の印刷データに利用される文字コード体系に基づいて構成されているフォントである場合、CPU11は、そのフォント情報が印刷データに適合していると判断する。一方、前述したトゥルータイプフォント形式のように、PCL5形式の印刷データに利用される文字コード体系とは異なる文字コード体系のフォントが指定された場合には、CPU11は、印刷データに適合していないと判断する。
【0040】
印刷データに適合していないと判断した場合(S205:NO)、CPU11は、シンボルセットの設定指示を受け付けたか否かを判断する(S206)。CPU11は、印刷データにシンボルセットの設定を指示するコマンドが含まれる場合、シンボルセットの設定指示を受け付けたと判断する。PCL5形式の印刷データでは、シンボルセットを示すセット情報によって、文字コード体系が指定される。シンボルセットは、PCL5形式の印刷データにおいて、文字コード体系を特定する情報である。S206は、特定処理の一例である。
【0041】
シンボルセットの設定指示を受け付けたと判断した場合(S206:YES)、CPU11は、受け付けた設定指示がシンボルセット「18N」を示す設定指示であるか否かを判断する(S207)。シンボルセット「18N」の文字コードは、Unicode体系の文字コードと互換性のある文字コード体系である。そのため、印刷データに含まれる文字コードがシンボルセット「18N」の文字コードであれば、CPU11は、印刷データに含まれる文字コードを用いて、Unicode体系の文字コードが利用されているフォント情報30から、グリフデータを取得することが可能となる。S206にてYESと判断される場合は、所定の文字コード体系と互換性がある文字コードに特定された場合に該当する。
【0042】
「18N」以外のシンボルセットの設定指示であると判断した場合(S207:NO)、CPU11は、指定されたシンボルセットに対応する変換テーブル24がメモリ12に記憶されているか否かを判断する(S211)。変換テーブル24は、例えば、図5に示すように、文字コード体系の異なる文字コード間の対応関係を記憶しているテーブルである。プリンタ1は、例えば、図5に示す変換テーブル241、242を含む複数の変換テーブル24をあらかじめメモリ12に記憶している。なお、変換テーブル24は、プリンタ1の工場出荷時にメモリ12に記憶されていても良いし、後述するように、工場出荷後に、ユーザの指示に基づいてダウンロードすることで、メモリ12に記憶されていても良い。
【0043】
例えば、図5(A)に示す変換テーブル241は、シンボルセット「8U」の文字コード体系の文字コードとUnicode体系の文字コードとが関係付けられたテーブルである。図5(B)に示す変換テーブル242は、シンボルセット「0H」の文字コード体系の文字コードとUnicode体系の文字コードとが関係付けられたテーブルである。シンボルセット「8U」の文字コード体系とシンボルセット「0H」の文字コード体系とは、異なる文字コード体系である。そのため、例えば、それぞれの文字コード体系にて文字コード「68」で示される文字は、図5に示すように、異なる文字であって、Unicode体系では異なる文字コードに対応する。
【0044】
指定されたシンボルセットに対応する変換テーブル24がメモリ12に記憶されていると判断した場合(S211:YES)、CPU11は、その変換テーブル24を読み出す(S215)。S215は、読出し処理の一例である。さらに、CPU11は、印刷データに指定されたフォントは、変換対象のフォントであると判定する(S216)。
【0045】
一方、指定されたフォントのフォント情報が無いと判断した場合(S201:NO)、または、印刷データにシンボルセットの設定指示が含まれないと判断した場合(S206:NO)、CPU11は、エラーと判定する(S221)。指定されたフォントのフォント情報が印刷データに埋め込まれておらず、メモリ12に記憶されてもいない場合、CPU11は、そのフォントのフォント情報を取得できない。
【0046】
また、シンボルセットが設定されていない場合、CPU11は、文字コード体系を特定できない。S206にてNOと判断される場合は、印刷データの文字コード体系が特定できなかった場合に該当する。なお、印刷データにシンボルセットの設定指示が含まれないとは、印刷データが壊れている、シンボルセット設定コマンドを受信できなかった、受信したシンボルセット設定コマンドの番号が不明であった、等の場合がある。文字コード体系が特定できなかった場合には、適切な変換テーブル24を取得できないため、プリンタ1は、印刷を行わずにエラー終了する。
【0047】
また、指定されたシンボルセットに対応する変換テーブル24が無いと判断した場合(S211:NO)、CPU11は、変換テーブル24のダウンロードを推奨する(S231)。CPU11は、例えば、プリンタ1のベンダによって提供されるダウンロードサイトの情報を表示して、変換テーブルをダウンロードすればこのフォントを利用できるようになることを報知する。指定されたシンボルセットに対応する変換テーブル24が無い場合、CPU11は、文字コードを変換できない。S211にてNOと判断される場合は、変換テーブルを読み出すことができなかった場合に該当する。なお、CPU11は、例えば、ユーザの指示に基づいて、ダウンロードを試行しても良い。
【0048】
さらに、CPU11は、代替フォントが有るか否かを判断する(S232)。代替フォントは、印刷データの文字コード体系が用いられているフォントであって、指定されたフォントに代えて利用可能なフォントである。代替フォントは、あらかじめ決められたフォントの一例である。プリンタ1は、例えば、内蔵フォント情報22として、各種のシンボルセットに対応するフォント情報を備えていてもよい。
【0049】
代替フォントが有ると判断した場合(S232:YES)、CPU11は、利用するフォントを代替フォントに変更する(S233)。つまり、CPU11は、メモリ12に記憶されている代替フォントのフォント情報を読み出し、S202にて取得したフォント情報と入れ替える。CPU11は、フォントを変更したことをユーザに報知しても良い。プリンタ1は、指定されたシンボルセットに対応する変換テーブル24が無い場合に、あらかじめ決められたフォントを用いてラスタデータを生成することができる。これにより、印刷対象となる文字が完全に消去されて文字を含まない画像が印刷されるといった不具合が回避される。
【0050】
代替フォントが無いと判断した場合(S232:NO)、CPU11は、エラーと判定する(S221)。指定されたシンボルセットに対応する変換テーブル24が無く、代わりに利用可能な代替フォントも無い場合には、適切に印刷できないことから、プリンタ1は、印刷を行わずにエラー終了する。
【0051】
一方、S233にて代替フォントに変更した後、または、S202にて取得したフォント情報が印刷データに適合していると判断した場合(S205:YES)、CPU11は、変換非対象のフォントであると判定する(S241)。印刷データに含まれる文字コードと同じ文字コード体系のフォントが指定されている場合には、文字コードを変換する必要はない。
【0052】
また、シンボルセット「18N」の設定指示を受け付けたと判断した場合(S207:YES)、CPU11は、変換非対象のフォントであると判定する(S241)。指定されたフォントがUnicode体系のフォントであっても、印刷データの文字コード体系がUnicode体系と互換性がある場合には、文字コードを変換する必要はない。プリンタ1は、Unicode体系と互換性がある文字コード体系が指定されている場合には、文字コードを変換せずにそのままラスタデータを生成するので、処理の無駄を省くことができる。
【0053】
S216またはS221またはS241のいずれかの後、CPU11は、フォント判定処理を終了して、印刷ジョブ処理に戻る。
【0054】
図3の印刷ジョブ処理の手順の説明に戻る。CPU11は、S103のフォント判定処理にてエラーと判定したか否かを判断する(S105)。エラーと判定したと判断した場合(S105:YES)、CPU11は、エラーを報知して(S107)、印刷ジョブ処理を終了する。適切なフォントを選択できなかった場合や適切な変換テーブルを読み出せなかった場合、プリンタ1は、適切に印刷できないことから、エラーとする。
【0055】
フォントの選択指示を受け付けていないと判断した場合(S102:NO)、または、フォント判定処理の判定結果がエラーではないと判断した場合(S105:NO)、CPU11は、文字の描画指示を受け付けたか否かを判断する(S111)。文字の描画指示を受け付けたと判断した場合(S111:YES)、CPU11は、中間データ取得処理を実行する(S112)。
【0056】
中間データ取得処理の手順について、図6のフローチャートを参照して説明する。中間データ取得処理では、CPU11は、印刷に利用するフォントが決定されており、そのフォント情報を取得済みであるか否かを判断する(S301)。例えば、フォントの選択指示を受け付けていない場合、CPU11は、フォント判定処理を実行しておらず、フォントが決定していない。フォント情報を取得済みでないと判断した場合(S301:NO)、CPU11は、例えば、内蔵フォント情報22に含まれるフォントであって、印刷対象の印刷データに適した所定のフォントのフォント情報を読み出す(S302)。
【0057】
S302にて読み出されるフォント情報は、フォントの指定を受け付けていない場合にプリンタ1が利用することにあらかじめ定められた所定のフォントの情報である。CPU11は、例えば、フォント判定処理(図4参照)のS232~S233と同様に、代替フォントのフォント情報を読み出しても良い。なお、CPU11は、フォントの指定を受け付けていない場合には、エラー終了するとしても良い。
【0058】
そして、S302の後、または、フォント情報を取得済みであると判断した場合(S301:YES)、CPU11は、印刷データから、印刷対象の文字を示す文字コードを取得する(S311)。さらに、CPU11は、利用するフォントが変換対象のフォントであるか否かを判断する(S312)。CPU11は、フォント判定処理(図4参照)のS216にて変換対象のフォントであると判定した場合、S312にてYESと判断する。
【0059】
変換対象のフォントであると判断した場合(S312:YES)、CPU11は、フォント判定処理のS215にて読み出した変換テーブル24を用いて、文字コードを変換する(S313)。S313は、変換処理の一例である。具体的には、CPU11は、印刷データの文字コードに対応するUnicode体系の文字コードを、変換テーブル24から取得する。印刷データの文字コードは、第1文字コードの一例である。変換テーブル24にて変換後のUnicode体系の文字コードは、第2文字コードの一例である。
【0060】
さらに、CPU11は、変換後の文字コードであるUnicode体系の文字コードを用いて、利用するフォントのフォント情報からグリフデータを検索する(S314)。CPU11は、例えば、フォント情報30(図2参照)の文字テーブル32によって、Unicode体系の文字コードに対応するグリフIDを取得でき、そのグリフIDに対応するグリフデータを、場所テーブル33とグリフテーブル34とを利用することで取得できる。
【0061】
一方、利用するフォントが変換対象のフォントではないと判断した場合(S312:NO)、文字コードを変換する必要はなく、CPU11は、印刷データの文字コードに対応するグリフデータをフォント情報から検索する(S317)。例えば、指定されたシンボルセットに対応するフォント情報が取得されている場合、また、指定されたシンボルセットの文字コードがUnicode体系の文字コードと互換性がある場合、CPU11は、その文字コードを用いて、グリフデータを適切に取得できる。
【0062】
そして、S314またはS317の後、CPU11は、グリフデータを取得できたか否かを判断する(S321)。グリフデータを取得できたと判断した場合(S321:YES)、CPU11は、そのグリフデータに基づいて、印刷対象の文字の形状を示す中間データを生成する(S322)。
【0063】
一方、グリフデータを取得できなかったと判断した場合(S321:NO)、CPU11は、空白文字を示す中間データを取得する(S325)。CPU11は、例えば、文字コードに対応するグリフIDを取得できなかった場合、または、グリフIDに対応するグリフデータを取得できなかった場合、S321にてNOと判断する。なお、CPU11は、空白文字に限らず、例えば、あらかじめ決められている特定の記号を示すグリフデータを取得しても良い。S322またはS325の後、CPU11は、中間データ取得処理を終了し、印刷ジョブ処理に戻る。
【0064】
図3の印刷ジョブ処理の手順の説明に戻る。S112の中間データ取得処理の後、または、文字の描画指示を受け付けていないと判断した場合(S111:NO)、CPU11は、ページ終了コマンドを受け付けたか否かを判断する(S121)。ページ終了コマンドを受け付けていないと判断した場合(S121:NO)、CPU11は、S102に進み、フォントの選択指示、文字の描画指示、ページ終了コマンドのいずれかを受け付けたか否かを判断する。
【0065】
なお、印刷データには、フォント以外の選択指示や文字以外の描画指示が含まれる場合がある。フォントの選択指示、文字の描画指示、ページ終了コマンド、以外の指示を受け付けた場合、CPU11は、受け付けた指示に基づいて、適切に中間データを生成して配置する。例えば、テキストオブジェクト以外の描画オブジェクトを受け付けた場合、CPU11は、受け付けたオブジェクトに基づく中間データを生成する。
【0066】
ページ終了コマンドを受け付けたと判断した場合(S121:YES)、CPU11は、生成した中間データに基づいて、1ページ分のラスタデータを生成する(S122)。さらに、CPU11は、生成したラスタデータを印刷エンジン15に渡す(S123)。印刷エンジン15は、ラスタデータに基づいて、1ページ分の印刷を実行する。中間データ取得処理のS321~S322、および印刷ジョブ処理のS122~S123は、印刷処理の一例である。
【0067】
CPU11は、ジョブ終了コマンドを受け付けたか否かを判断する(S131)。ジョブ終了コマンドではなく、次のページの印刷データを受け付けたと判断した場合(S131:NO)、CPU11は、S102に進み、受け付けた印刷データに基づく処理を実行する。ジョブ終了コマンドを受け付けたと判断した場合(S131:YES)、CPU11は、印刷ジョブ処理を終了する。
【0068】
プリンタ1は、PCL5形式の印刷データを取得した場合、受け付けたシンボルセット設定指示に基づいて印刷データの文字コード体系を特定する。その後、プリンタ1は、文字コード体系に対応する変換テーブル24を用いて文字コードを変換することで、文字コード体系の異なるフォント情報からグリフデータを取得できる。つまり、プリンタ1は、トゥルータイプフォント形式のフォント情報30(図2参照)を用いて、PCL5形式の印刷データに含まれる文字を正しく印刷できる。
【0069】
なお、PDF形式の印刷データの文字コード体系は、トゥルータイプフォント形式のフォント情報30の文字コード体系と、一致している。従って、受け付けた印刷ジョブの印刷データがPDF形式であって、指定されたフォントがUnicode体系のフォントである場合、プリンタ1は、フォント判定処理(図4参照)のS205にてYESと判断し、中間データ生成処理(図6参照)のS312にてNOと判断する。そして、プリンタ1は、フォント情報30から、印刷データの文字コードに対応するグリフデータを取得できる。つまり、プリンタ1は、フォント情報30を用いて、PDF形式の印刷データに含まれる文字を正しく印刷できる。
【0070】
次に、変換テーブルを取得する変換テーブル取得処理の手順について、図7のフローチャートを参照して説明する。変換テーブル取得処理は、例えば、ユーザIF13を介して、変換テーブル24の取得指示を受け付けたことを契機に、印刷制御プログラム21に基づいて、プリンタ1のCPU11にて実行される。なお、ユーザは、例えば、フォント判定処理(図4参照)のS231にてダウンロードが推奨されたことを受けて、変換テーブル24の取得指示を行うことができる。
【0071】
変換テーブル取得処理では、CPU11は、シンボルセットの選択を受け付ける(S401)。シンボルセットの情報は、例えば、ダウンロードを推奨する画面に報知される。なお、CPU11は、シンボルセットの選択を受け付ける代わりに、全てのシンボルセットについての変換テーブル24をまとめてダウンロードする指示を、受け付け可能であっても良い。
【0072】
CPU11は、ダウンロードの指示を受け付けたか否かを判断する(S405)。S405は、受付処理の一例である。ダウンロードの指示は、ダウンロードするコマンドの一例である。ユーザは、例えば、変換テーブル24を記憶する所定のサーバ100とプリンタ1とを接続し、ダウンロード可能な通信環境を整えた後、ダウンロードの実行を指示する。変換テーブル24を記憶するサーバ100は、外部デバイスの一例である。
【0073】
なお、プリンタ1は、プリンタ1に接続されるパーソナルコンピュータから、ダウンロードを指示するコマンドを受け付け可能であっても良い。その場合、プリンタ1は、シンボルセットの指定とダウンロードの指示とを含むコマンドを、受け付け可能であっても良い。
【0074】
ダウンロードの指示を受け付けたと判断した場合(S405:YES)、CPU11は、変換テーブル24のダウンロードを試行する(S406)。そして、CPU11は、ダウンロードできたか否かを判断する(S407)。
【0075】
ダウンロードできたと判断した場合(S407:YES)、CPU11は、ダウンロードによって取得した変換テーブル24を、メモリ12に記憶させる(S408)。S406~S408は、ダウンロード処理の一例である。なお、ダウンロードしたものと同じシンボルセットの変換テーブル24が、すでにメモリ12に記憶されている場合、CPU11は、上書きしても良いし、上書きするか否かをユーザに問い合わせても良い。
【0076】
S408の後、または、ダウンロードの指示を受け付ける代わりにダウンロードをキャンセルする指示を受け付けた場合(S405:NO)、または、通信エラーなどによりダウンロードできなかった場合(S407:NO)、CPU11は、変換テーブル取得処理を終了する。なお、ダウンロードできなかった場合、CPU11は、リトライの指示を受け付け可能であっても良い。
【0077】
プリンタ1は、変換テーブル24をダウンロードして記憶可能である。これにより、プリンタ1は、工場出荷後であっても、新たな変換テーブル24を追加して保存できる。また、プリンタ1は、既存の変換テーブル24の修正版を容易に保存できる。一方、シンボルセットごとの複数の変換テーブル24が工場出荷時にメモリ12に記憶されていれば、変換テーブル24をダウンロードするための処理や操作が不要になる。
【0078】
以上、詳細に説明したように、実施の形態のプリンタ1は、Unicode体系の文字コードでない文字コードを含むPCL5形式の印刷データを取得した場合、その印刷データに指定されている文字コード体系を示すシンボルセットに対応する変換テーブル24をメモリ12から読み出す。さらに、プリンタ1は、読み出した変換テーブル24を用いて、その印刷データに含まれる文字コードをUnicode体系の文字コードに変換する。これにより、プリンタ1は、Unicode体系の文字コードが用いられているフォントを利用して、ラスタデータを生成することが可能になる。従って、PCL5形式の印刷データであっても、指定されたフォントで適切に文字を印刷できる可能性が高まる。
【0079】
なお、実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。従って本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、プリンタ1は、印刷単機能のものに限らず、複合機、複写機、FAX装置等、印刷機能を備えるものであれば適用可能である。
【0080】
また、図示したフォント情報30や変換テーブル24の構成は、いずれも一例であり、これに限らない。例えば、複数種の文字コード体系で記載された複数の文字テーブルが含まれるフォント情報が有っても良い。また、例えば、特定のシンボルセットに示される文字コード体系と、Unicode体系ではない文字コード体系と、の関係を示す変換テーブルがあっても良い。
【0081】
また、例えば、図4に示したフォント判定処理では、CPU11は、指定されたシンボルセットに対応する変換テーブル24が無かった場合(S211にてNO)、代替フォントが有れば(S232にてYES)、代替フォントを利用するとした(S233)が、代替フォントは利用しなくても良い。つまり、指定されたシンボルセットに対応する変換テーブル24が無かった場合には、プリンタ1は、印刷をエラー終了するとしても良い。
【0082】
また、変換テーブル24のダウンロードは、できなくても良い。つまり、プリンタ1は、工場出荷時に複数の変換テーブル24を備え、変換テーブル24の追加や修正は受け付けなくても良い。また、あるいは、プリンタ1は、工場出荷時には変換テーブル24を備えていなくても良い。その場合、例えば、PCL5形式の印刷データに基づく印刷を行いたいユーザは、印刷前に、変換テーブル24のダウンロードを行うと良い。
【0083】
また、実施の形態では、プリンタ1は、例えば、指定されたフォントのフォント情報が無い場合(フォント判定処理(図4参照)のS201にてNO)やシンボルセットの設定を受け付けていない場合(同S206にてNO)に、エラーとするとしたが、あらかじめ定められた所定のフォント情報を利用するとしても良い。
【0084】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【0085】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されても良い。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0086】
1 プリンタ
11 CPU
12 メモリ
15 印刷エンジン
図1
図2
図3
図4
図5
図6
図7