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

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

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

<>
  • 特開-印刷装置 図1
  • 特開-印刷装置 図2
  • 特開-印刷装置 図3
  • 特開-印刷装置 図4
  • 特開-印刷装置 図5
  • 特開-印刷装置 図6
  • 特開-印刷装置 図7
  • 特開-印刷装置 図8
  • 特開-印刷装置 図9
  • 特開-印刷装置 図10
  • 特開-印刷装置 図11
  • 特開-印刷装置 図12
  • 特開-印刷装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024089969
(43)【公開日】2024-07-04
(54)【発明の名称】印刷装置
(51)【国際特許分類】
   B41J 29/00 20060101AFI20240627BHJP
   B41J 29/38 20060101ALI20240627BHJP
   H04N 1/00 20060101ALI20240627BHJP
【FI】
B41J29/00 Z
B41J29/38 201
H04N1/00 838
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022205556
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000992
【氏名又は名称】弁理士法人ネクスト
(72)【発明者】
【氏名】糸川 喜裕
【テーマコード(参考)】
2C061
5C062
【Fターム(参考)】
2C061AP01
2C061AP07
2C061CL08
2C061CL10
2C061HJ06
2C061HN05
2C061HN15
5C062AA02
5C062AA05
5C062AA29
5C062AB22
5C062AB38
5C062AB40
5C062AB42
5C062AC04
5C062AC22
5C062AC34
5C062AE10
5C062AE15
5C062AF01
(57)【要約】
【課題】通信インタフェースを介してコマンドを受信し、このコマンドに従った処理を実行することが可能な印刷装置において、セキュリティを向上させることを目的とする。
【解決手段】プリンタ10のコントローラ12は、変換ルール32を対象とした処理を指示するコマンドを受信した場合に、このコマンドを受信する通信インタフェースが、LANインタフェース20であって、セキュリティが確保されていない通信によりなされていれば、コマンドに従った処理を実行しない。
【選択図】図1
【特許請求の範囲】
【請求項1】
通信インタフェースと、
メモリと、
コントローラと、を備え、
前記メモリには、PJLコマンドを別のPJLコマンドに変換するための変換ルールが記憶されており、
前記コントローラは、
前記通信インタフェースを介して受信したPJLコマンドを解析し、前記メモリに記憶された前記変換ルールに従って、受信されたPJLコマンドを別のPJLコマンドに変換し、変換後のPJLコマンドに従った処理を実行するPJLコマンド実行処理と、
前記変換ルールを対象とした処理を指示するコマンドを受信した場合に、
前記変換ルールを対象とした処理を指示するコマンドを受信する前記通信インタフェースが、LANインタフェースである第1通信インタフェースであって、セキュリティが確保されていない通信によりなされていれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行せず、
前記変換ルールを対象とした処理を指示するコマンドを受信した前記通信インタフェースが、LANインタフェースではない第2通信インタフェースであれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行する変換ルール対象処理と、
を実行するように構成されている印刷装置。
【請求項2】
前記コントローラは、前記PJLコマンド実行処理において、
前記第1通信インタフェースを介して、セキュリティが確保されている通信を行う第1のプロトコルでPJLコマンドを受信した場合も、セキュリティが確保されていない通信を行う第2のプロトコルでPJLコマンドを受信した場合も、受信したPJLコマンドを解析し、前記メモリに記憶されている変換ルールに従って、受信したPJLコマンドを別のPJLコマンドに変換して、変換後のPJLコマンドに従った処理を実行可能であり、
前記コントローラは、前記変換ルール対象処理において、前記変換ルールを対象とした処理を指示するコマンドを受信したインタフェースが前記第1通信インタフェースである場合に、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行し、
前記第2のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行しない、
ように構成されている請求項1に記載の印刷装置。
【請求項3】
通信インタフェースと、
メモリと、
コントローラと、を備え、
前記メモリには、PJLコマンドを別のPJLコマンドに変換するための変換ルールが記憶されており、
前記コントローラは、
前記通信インタフェースを介して、セキュリティが確保されている通信を行う第1のプロトコルでPJLコマンドを受信した場合も、セキュリティが確保されていない通信を行う第2のプロトコルでPJLコマンドを受信した場合も、受信したPJLコマンドを解析し、前記メモリに記憶されている変換ルールに従って、受信したPJLコマンドを別のPJLコマンドに変換し、変換された前記PJLコマンドに従った処理を実行するPJLコマンド実行処理と、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行し、
前記第2のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行しない変換ルール対象処理と、
を実行するように構成されている印刷装置。
【請求項4】
前記変換ルールを対象とした処理を指示するコマンドは、PJLコマンドであり、
前記コントローラは、前記PJLコマンド実行処理において、
受信した印刷ジョブに含まれるPJLコマンドを解析し、前記メモリに記憶された前記変換ルールに従って、受信したPJLコマンドを別のPJLコマンドに変換し、変換後のPJLコマンドに従って、受信した印刷ジョブに基づく印刷を実行することが可能であり、
印刷ジョブに含まれる形で、PJLコマンドを受信した場合は、前記第1通信インタフェースで受信したか、前記第2通信インタフェースで受信したかで、処理に差を付けることなく、受信されたPJLコマンドに従って、印刷ジョブに基づく印刷を実行し、
前記コントローラは、前記変換ルール対象処理において、印刷ジョブに含まれていない形でPJLコマンドを受信し、受信されたPJLコマンドが、前記変換ルールを対象とした処理を指示するコマンドである場合は、
前記変換ルールを対象とした処理を指示するPJLコマンドを受信した前記通信インタフェースが、前記第1通信インタフェースであって、セキュリティが確保されていない通信によりなされていれば、前記変換ルールを対象とした処理を指示するPJLコマンドに従った処理を実行せず、
前記変換ルールを対象とした処理を指示するPJLコマンドを受信した前記通信インタフェースが、前記第2通信インタフェースであれば、前記変換ルールを対象とした処理を指示するPJLコマンドに従った処理を実行する、
ように構成されている請求項1又は2に記載の印刷装置。
【請求項5】
前記変換ルールを対象とした処理を指示するコマンドは、PJLコマンドであり、
前記コントローラは、前記PJLコマンド実行処理において、
受信した印刷ジョブに含まれるPJLコマンドを解析し、前記印刷ジョブに含まれるPJLコマンドが、前記変換ルールの変換対象であれば、変換ルールに従って、受信したPJLコマンドを別のPJLコマンドに変換し、変換後のPJLコマンドに従って、受信した印刷ジョブに基づく印刷を実行することが可能であり、
印刷ジョブに含まれる形でPJLコマンドを受信した場合は、プロトコルによって処理に差を付けることなく、前記印刷ジョブに含まれるPJLコマンドに従って、印刷ジョブに基づく印刷を実行し、
前記コントローラは、前記変換ルール対象処理において、印刷ジョブに含まれていない形でPJLコマンドを受信し、前記PJLコマンドが、前記変換ルールを対象とした処理を指示するコマンドである場合は、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するPJLコマンドに従った処理を実行し、
前記第2のプロトコルで、変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するPJLコマンドに従った処理を実行しない、
ように構成されている請求項2又は3に記載の印刷装置。
【請求項6】
通信インタフェースと、
メモリと、
コントローラと、を備え、
前記メモリには、PDLコマンドを別のPDLコマンドに変換するための変換ルールが記憶されており、
前記コントローラは、
前記通信インタフェースを介して受信したPDLコマンドを解析し、前記メモリに記憶された前記変換ルールに従って、受信されたPDLコマンドを別のPDLコマンドに変換し、変換後のPDLコマンドに従った処理を実行するPDLコマンド実行処理と、
前記変換ルールを対象とした処理を指示するコマンドを受信した場合に、
前記変換ルールを対象とした処理を指示するコマンドを受信する前記通信インタフェースが、LANインタフェースである第1通信インタフェースであって、セキュリティが確保されていない通信によりなされていれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行せず、
前記変換ルールを対象とした処理を指示するコマンドを受信した前記通信インタフェースが、LANインタフェースではない第2通信インタフェースであれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行する変換ルール対象処理と、
を実行するように構成されている印刷装置。
【請求項7】
前記コントローラは、前記PDLコマンド実行処理において、
前記第1通信インタフェースを介して、セキュリティが確保されている通信を行う第1のプロトコルでPDLコマンドを受信した場合も、セキュリティが確保されていない通信を行う第2のプロトコルでPDLコマンドを受信した場合も、受信したPDLコマンドを解析し、前記メモリに記憶されている変換ルールに従って、受信したPDLコマンドを別のPDLコマンドに変換して、変換後のPDLコマンドに従った処理を実行可能であり、
前記コントローラは、前記変換ルール対象処理において、前記変換ルールを対象とした処理を指示するコマンドを受信したインタフェースが前記第1通信インタフェースである場合に、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行し、
前記第2のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行しない、
ように構成されている請求項6に記載の印刷装置。
【請求項8】
通信インタフェースと、
メモリと、
コントローラと、を備え、
前記メモリには、PDLコマンドを別のPDLコマンドに変換するための変換ルールが記憶されており、
前記コントローラは、
前記通信インタフェースを介して、セキュリティが確保されている通信を行う第1のプロトコルでPDLコマンドを受信した場合も、セキュリティが確保されていない通信を行う第2のプロトコルでPDLコマンドを受信した場合も、受信したPDLコマンドを解析し、前記メモリに記憶されている変換ルールに従って、受信したPDLコマンドを別のPDLコマンドに変換し、変換された前記PDLコマンドに従った処理を実行するPDLコマンド実行処理と、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行し、
前記第2のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行しない変換ルール対象処理と、
を実行するように構成されている印刷装置。
【請求項9】
前記第1のプロトコルは、前記通信インタフェースを介してデータ送信をする前に、送信側の装置から受信側の装置にパスワードの送信をし、受信側の装置が、受信したパスワードを承認できた場合に、送信側の装置にデータ送信の許可を出す方式であり、
前記コントローラは、前記変換ルール対象処理において、
前記第1のプロトコルでパスワードが送信され、送信されたパスワードを承認できた場合に、前記第1のプロトコルで、データ送信の許可を返信し、その後、前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドが送信されてきた場合は、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行する、
ように構成されている、請求項2、3、7、8のいずれか一項に記載の印刷装置。
【請求項10】
前記第1のプロトコルは、HTTPSであり、
前記コントローラは、前記変換ルール対象処理において、
前記HTTPSでパスワードが送信され、送信されたパスワードを承認できた場合に、前記HTTPSで、データ送信の許可を返信し、その後、前記HTTPSで、前記変換ルールを対象とした処理を指示するコマンドが送信されてきた場合は、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行する、
ように構成されている、請求項9に記載の印刷装置。
【請求項11】
前記変換ルールを対象とした処理を指示するコマンドは、PDLコマンドであり、
前記コントローラは、前記PDLコマンド実行処理において、
受信した印刷ジョブに含まれるPDLコマンドを解析し、前記メモリに記憶された前記変換ルールに従って、受信したPDLコマンドを別のPDLコマンドに変換し、変換後のPDLコマンドに従って、受信した印刷ジョブに基づく印刷を実行することが可能であり、
印刷ジョブに含まれる形で、PDLコマンドを受信した場合は、前記第1通信インタフェースで受信したか、前記第2通信インタフェースで受信したかで、処理に差を付けることなく、受信されたPDLコマンドに従って、印刷ジョブに基づく印刷を実行し、
前記コントローラは、前記変換ルール対象処理において、印刷ジョブに含まれていない形でPDLコマンドを受信し、受信されたPDLコマンドが、変換ルールを対象とした処理を指示するコマンドである場合は、
前記変換ルールを対象とした処理を指示するPDLコマンドを受信した前記通信インタフェースが、前記第1通信インタフェースであって、セキュリティが確保されていない通信によりなされていれば、前記変換ルールを対象とした処理を指示するPDLコマンドに従った処理を実行せず、
前記変換ルールを対象とした処理を指示するPDLコマンドを受信した前記通信インタフェースが、前記第2通信インタフェースであれば、前記変換ルールを対象とした処理を指示するPDLコマンドに従った処理を実行する、
ように構成されている請求項6又7に記載の印刷装置。
【請求項12】
前記変換ルールを対象とした処理を指示するコマンドは、PDLコマンドであり、
前記コントローラは、前記PDLコマンド実行処理において、
受信した印刷ジョブに含まれるPDLコマンドを解析し、前記印刷ジョブに含まれるPDLコマンドが、前記変換ルールの変換対象であれば、変換ルールに従って、受信したPDLコマンドを別のPDLコマンドに変換し、変換後のPDLコマンドに従って、受信した印刷ジョブに基づく印刷を実行することが可能であり、
印刷ジョブに含まれる形でPDLコマンドを受信した場合は、プロトコルによって処理に差を付けることなく、前記印刷ジョブに含まれるPDLコマンドに従って、印刷ジョブに基づく印刷を実行し、
前記コントローラは、前記変換ルール対象処理において、印刷ジョブに含まれていない形でPDLコマンドを受信し、前記PDLコマンドが、前記変換ルールを対象とした処理を指示するコマンドである場合は、
前記第1のプロトコルで、前記変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するPDLコマンドに従った処理を実行し、
前記第2のプロトコルで、変換ルールを対象とした処理を指示するコマンドを受信していれば、前記変換ルールを対象とした処理を指示するPDLコマンドに従った処理を実行しない、
ように構成されている請求項7又は8に記載の印刷装置。
【請求項13】
前記コントローラは、
前記メモリに記憶されている設定情報の値に従って、セキュリティ設定の有効と無効とを切替え、
前記コントローラは、前記変換ルール対象処理において、
前記メモリに記憶されている前記設定情報の値が前記セキュリティ設定の無効を示している場合は、前記変換ルールを対象とした処理を指示するコマンドを受信した前記通信インタフェースが前記第1通信インタフェースであっても、前記変換ルールを対象とした処理を指示するコマンドに従った処理を実行する、
ように構成されている請求項1,2,6,7のいずれか一項に記載の印刷装置。
【請求項14】
前記コントローラは、
前記変換ルールを、前記メモリである不揮発性メモリに記憶しておくことが可能であり、
前記変換ルールを対象とした処理を指示するコマンドは、前記変換ルールを前記不揮発性メモリに記憶させることを指示するコマンドであり、
前記コントローラは、前記変換ルールを対象とした処理を指示するコマンドに従って、前記不揮発性メモリに前記変換ルールを記憶させる処理を実行する、
ように構成されている請求項1~3、6~8のいずれか一項に記載の印刷装置。
【請求項15】
前記コントローラは、
前記変換ルールを、前記メモリである不揮発性メモリに記憶しておくことが可能であり、
前記変換ルールを対象とした処理を指示するコマンドは、前記不揮発性メモリに記憶されている変換ルールを出力させることを指示するコマンドであり、
前記コントローラは、前記変換ルールを対象とした処理を指示するコマンドに従って、前記不揮発性メモリに記憶されている変換ルールを出力させる処理を実行する、
ように構成されている請求項1~3、6~8のいずれか一項に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信インタフェースを介して受信したコマンドに従った処理を実行することが可能な印刷装置に関する。
【背景技術】
【0002】
特許文献1には、通信インタフェースを介してコマンドを受信し、受信したコマンドに従った処理を実行することが可能な印刷装置が記載されている。特許文献1では、印刷装置は、通信インタフェースを介して受信したPJLコマンドを解析し、PJLコマンドの解析結果に応じて、所定の処理を実行する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-179018号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の装置では、通信インタフェースを介してコマンドを受信する構成において、セキュリティを考慮することについて何ら記載されていない。
【0005】
本発明は、上記課題に鑑みてなされたものであり、通信インタフェースを介してコマンドを受信し、このコマンドに従った処理を実行することが可能な印刷装置において、セキュリティを向上させることを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本実施形態に係る印刷装置は、通信インタフェースと、メモリと、コントローラと、を備えている。メモリには、PJLコマンドを別のPJLコマンドに変換するための変換ルールが記憶されている。コントローラは、通信インタフェースを介して受信したPJLコマンドを解析し、メモリに記憶された変換ルールに従って、受信されたPJLコマンドを別のPJLコマンドに変換し、変換後のPJLコマンドに従った処理を実行するPJLコマンド実行処理と、変換ルールを対象とした処理を指示するコマンドを受信した場合に、変換ルールを対象とした処理を指示するコマンドを受信する通信インタフェースが、LANインタフェースである第1通信インタフェースであって、セキュリティが確保されていない通信によりなされていれば、変換ルールを対象とした処理を指示するコマンドに従った処理を実行せず、変換ルールを対象とした処理を指示するコマンドを受信した通信インタフェースが、LANインタフェースではない第2通信インタフェースであれば、変換ルールを対象とした処理を指示するコマンドに従った処理を実行する変換ルール対象処理と、を実行する。
【0007】
上記構成では、印刷装置に対して、セキュリティが確保されていない通信により、変換ルールを対象とした処理が指示される場合は、変換ルールを対象とした処理が実行されない。これにより、無防備に変換ルールを対象とする処理が実行されるのを防止することができ、印刷装置のセキュリティを向上することができる。
【発明の効果】
【0008】
本実施形態に係る印刷装置では、通信インタフェースを介して受信したPJLコマンドやPDLコマンドに従った処理を実行することが可能な印刷装置において、セキュリティを向上させることができる。
【図面の簡単な説明】
【0009】
図1】画像形成システムのブロック構成図である。
図2】PCとプリンタとの間での通信IFを用いた処理を示すシーケンス図である。
図3】PJLファイルを受信した場合に実行する処理を説明するフローチャートである。
図4図3のS17で実行される処理を説明するフローチャートである。
図5】変換ルール対象コマンドを用いた処理を説明する図である。
図6】変換ルール対象コマンドを説明する図である。
図7】変換ルール対象コマンドを説明する図である。
図8】変換ルール対象コマンドを用いた処理を説明する図である。
図9】変換ルール対象コマンドを用いた処理を説明する図である。
図10】PCとプリンタとの間での通信IFを用いた処理を示すシーケンス図である。
図11】印刷ジョブを説明する図である。
図12】印刷ジョブを受信した場合に実行する処理を説明するフローチャートである。
図13図12のS46で実行される処理を説明するフローチャートである。
【発明を実施するための形態】
【0010】
(第1実施形態)
図1は、本実施形態に係る画像形成システム1のブロック図である。図1に示す画像形成システム1は、プリンタ(印刷装置の一例)10、PC50を備えている。プリンタ10は、印刷処理等の各種処理を実行可能なデバイスである。
【0011】
プリンタ10は、コントローラ12、LCD13、メモリ14、入力IF15、読取部16、記録部17、通信IF18を主に備えている。IFは、インタフェースの略である。これらの構成要素は、バス11を介して互いに通信可能とされている。
【0012】
プリンタ10は、通信IF18を通じてPC50と通信可能となっている。通信IF18は、LANIF20、USBIF21を含んでいる。LANIF20は、LAN(Local Area Networkの略)及びWAN(Wide Area Networkの略)を介した通信に使用されるインタフェースであり、第1通信インタフェースの一例である。LANIF20は、無線通信を行うIFであってもよく、有線通信を行うIFであってもよい。USBIF21は、USBデバイスとのデータ入出力に用いられるインタフェースであり、第2通信インタフェースの一例である。USBIF21は、USBケーブルを接続するためのコネクタと、USBメモリなどのUSBデバイスを接続するためのコネクタと、を備えている。
【0013】
コントローラ12は、CPUを備えている。また、コントローラ12は、CPUに加え、ASIC、複数の論理集積回路により構成されていてもよい。コントローラ12は、メモリ14内の制御プログラム30に従って処理を実行する。また、メモリ14は、データ記憶領域31を備える。データ記憶領域31は、不揮発性メモリの一例であり、制御プログラム30等の実行に必要なデータなどを記憶する領域でもある。なお、メモリ14は、ROM、フラッシュメモリ等の不揮発性メモリや、RAM等の揮発性メモリを含んでいる。
【0014】
なお、メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
【0015】
LCD13は、プリンタ10の各種情報を表示する。なお、LCDは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力IF15は、例えば、ディスプレイと一体的に構成されているタッチパネルであり、ディスプレイ上に表示されたアイコン,ボタン等へのユーザ操作を受け付ける。また、タッチパネル以外にも、ハードキー等であってもよい。
【0016】
読取部16は、イメージセンサを備え、原稿に形成された画像を読み取り、スキャンを実行する部位である。また、記録部17は、例えば電子写真方式の印刷機構である。記録部17は、インクジェット方式の印刷機構でもよい。
【0017】
なお、本明細書では、基本的に、プログラムに記述された命令に従ったコントローラ12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、コントローラ12の処理を表している。コントローラによる処理は、制御プログラム30の実行に従った処理に加え、OSのAPIを用いたハードウェア制御も含む。本明細書では、OSの記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムBがハードウェアCを制御する」という趣旨の記載は、「プログラムBがOSのAPIを用いてハードウェアCを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったコントローラ12の処理を、省略した文言で記載することがある。例えば、「コントローラ12が行う」のように記載することがある。
【0018】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、コントローラ12が要求することなくデータを受信するという処理も、「データを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【0019】
また、コントローラ12による、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。コントローラ12による、情報Aが事柄Bであることを示しているか、事柄Cであることを示しているか、を判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
【0020】
PC50と、プリンタ10との間で、通信IF18を介して実行される処理を、図2を用いて説明する。図2で示す例は、PC50から出力されたPJLファイルをプリンタ10が受信する場合の処理である。PC50から出力されたPJLファイルをプリンタ10が受信する際に、LANIF20を介してPJLファイルを受信する場合と、USBIF21を介してPJLファイルを受信する場合とがある。また、プリンタ10は、LANIF20を介してPJLファイルを受信する場合に、HTTPS(第1のプロトコルの一例)でPJLファイルを受信することも可能であり、HTTPS以外の通信プロトコル、例えば、PORT9100(第2のプロトコルの一例)でPJLファイルを受信することも可能である。なお、PORT9100とは、TCP/IPの9100番ポートを用いて、LPRプロトコル、または、Rawプロトコルに準じた通信を行うプロトコルである。
【0021】
まずは、プリンタ10がLANIF20を介し、PJLファイルをHTTPSで受信する場合の処理を説明する。HTTPSは、LANIF20を介してデータ送信をする前に、送信側の装置から受信側の装置にパスワードの送信をし、受信側の装置が、受信したパスワードを承認できた場合に、送信側の装置にデータ送信の許可を出す認証手段が定められた方式のプロトコルである。HTTPSでは、TCP/IPポートとして443が用いられている。図2のステップT1(以下、ステップを「S」とも記載する。)では、PC50が、受信側のポート番号として443を指定してHTTPSで定められた手順で、パスワードを含む認証要求をプリンタ10に送信する。プリンタ10は、LANIF20を介して、HTTPSで認証要求を受信する。
【0022】
ST1で、PC50からプリンタ10に送信されるパスワードは、認証要求の送信元を固有に識別できる情報であればよく、PC50を操作するユーザを固有に識別する情報、更には、PC50や、このPC50により実行されるアプリケーションを固有に識別できる情報であってもよい。
【0023】
プリンタ10は、認証要求を受信すると、ST2で、認証要求に含まれているパスワードの確認を実行する。例えば、プリンタ10のメモリ14には予め認証パスワードが設定されており、プリンタ10のコントローラ12は、認証要求に含まれているパスワードが認証パスワードと一致するか否かの確認を行う。そして、コントローラ12は、認証要求に含まれているパスワードが認証パスワードと一致する場合に、ST3で、LANIF20を介して、認証成功の応答をPC50に返信する。
【0024】
PC50は、認証成功の応答を受信すると、ST4で、HTTPSでPJLファイルをプリンタ10に送信する。PJLファイルには、その内容に応じてPJLコマンド等のデータが含まれている。この例では、PJLファイルには、PJLコマンドである変換ルール対象コマンドが含まれているものとして説明を行う。
【0025】
変換ルール対象コマンドは、例えば、変換ルール32を対象とした処理を指示するPJLコマンドである。ここで、変換ルール32は、PJLファイルに含まれるコマンドを別のコマンドに変換するための変換ルールが記述された情報であり、メモリ14のデータ記憶領域31に記憶されている。本実施形態では、変換ルール32には、PJLコマンドを別のPJLコマンドに変換するためのルールや、後述するように、PDLコマンドの一例であるPCLコマンドを別のPCLコマンドに変換するためのルールが記述されている。例えば、プリンタ10のベンダとは異なるベンダ製のプリンタドライバや3rdパーティが他社オリジナルPJLコマンドを使用してプリンタ10を制御することがある。プリンタ10が、他社オリジナルPJLコマンドを含むPJLファイルを受信した場合、コントローラ12では、この他社オリジナルPJLコマンドを解析できず、期待した挙動を得ることができなくなる場合がある。そのため、コントローラ12は、このような他社オリジナルのPJLコマンドを受信する場合、変換ルール32を用いて他社オリジナルのPJLコマンドを、コントローラ12が解釈可能なコマンドに変換している。
【0026】
プリンタ10は、LANIF20を介して、HTTPSでPJLファイルに含まれる変換ルール対象コマンドを受信する。プリンタ10がPJLファイルを受信すると、ST5の処理を実行する。ST5で、コントローラ12がPJLコマンドを含むPJLファイルを受信した場合の処理を、図3を用いて説明する。S10では、コントローラ12は、PJLファイルに含まれているPJLコマンドを特定する。
【0027】
S11では、コントローラ12は、メモリ14に記憶されている設定情報を参照し、PJLセキュリティ設定が有効に設定されているか否かを判断する。PJLセキュリティ設定は、PJLコマンドを用いた処理のセキュリティ対策を行うか否かの設定であり、図2図3に示す処理が行われるタイミングとは別のタイミングで、不図示の設定画面を用いて設定される。例えば、入力IF15を介した操作に従って、コントローラ12は、LCD13に設定画面を表示させる。設定画面には、有効を示すラジオボタンと無効を示すラジオボタンとが含まれる。そして、設定画面への、入力IF15を介した操作によって、有効を示すラジオボタンが選択操作された場合、コントローラ12は、PJLセキュリティ設定が有効に設定されたことを示す設定情報をメモリ14に記憶させ、無効を示すラジオボタンが選択操作された場合は、PJLセキュリティ設定が無効に設定されたことを示す設定情報をメモリ14に記憶させる。これにより、PJLセキュリティ設定を切替ることができる。なお、PJLセキュリティ設定は、工場出荷時には、有効に設定されている。
【0028】
コントローラ12は、PJLセキュリティ設定が有効に設定されていなければ(S11:NO)、S17に進み、PJLファイルに含まれるコマンドのデータ種別に応じた処理を実行する。即ち、PJLセキュリティ設定が無効に設定されていれば、後述する変換ルール32を対象とする処理に制限を設ける必要がないためである。なお、S17の処理の詳細は後述する。一方、コントローラ12は、PJLセキュリティ設定が有効に設定されていれば(S11:YES)、S12に進み、USBIF21を介してPJLファイルを受信したか否かを判断する。この例では、コントローラ12は、LANIF20を介して、PJLファイルを受信しているため(S12:NO)、S13に進む。
【0029】
S13では、コントローラ12は、LANIF20を介して、PJLファイルをHTTPSで受信しているか否かを判断する。コントローラ12は、LANIF20を介して、PJLファイルをHTTPSで受信しているため(S13:YES)、S17に進み、PJLファイルに含まれるPJLコマンドのデータ種別に応じた処理を実行する。即ち、S13を肯定判断する場合は、セキュリティが確保されている状態であるため、後述するS17において、変換ルール32を対象とする処理に制限を設けない。
【0030】
図4は、S17で実行される処理の手順を説明するフローチャートである。まず、S20では、コントローラ12は、PJLファイルに含まれるデータのデータ種別は、変換ルール対象コマンドであるか否かを判断する。PJLファイルに含まれるデータのデータ種別が変換ルール対象コマンドでなければ(S20:NO)、S27に進み、PJLファイルに含まれるデータに応じた処理を実行する。そして、図3に戻り、処理を終了する。
【0031】
一方、コントローラ12は、PJLファイルに含まれるデータのデータ種別が変換ルール対象コマンドであれば(S20:YES)、S21に進み、変換ルール対象コマンドのコマンド種別を判断する。変換ルール対象コマンドのコマンド種別は、「Read」、「Write」、「Delete」の3つのコマンド種別がある。ここで、コマンド種別「Read」は、メモリ14に記憶された変換ルール32の読み出しを指示するPJLコマンドである。コマンド種別「Write」は、メモリ14への変換ルール32の書き込み、又はメモリ14に記憶された変換ルール32の書き換えを指示するPJLコマンドである。コマンド種別「Delete」は、メモリ14に記憶された変換ルール32の消去を指示するPJLコマンドである。
【0032】
コントローラ12は、変換ルール対象コマンドのコマンド種別が「Write」であれば、S25に進み、変換ルール対象コマンドに従って、変換ルール32のデータ記憶領域31への書き込み、又は書換えを行う。図5(a)は、コマンド種別「Write」の変換ルール対象コマンドを示している。変換ルール対象コマンドは、先頭を示す「EC%-12345X@PJL」が記述されており、この行の次の行から、ヘッダ情報部Ha1と、変換ルール部F1とが記述されていることを示している。
【0033】
図5(a)に示す変換ルール対象コマンドにおいて、ヘッダ情報部H1には、コマンド種別が「Write」であることを示す情報が記述されている。変換ルール対象コマンドにおいて、変換ルール部F1には、変換ルール32に書き込む、あるいは、書き換える対象となるルールが記述されている。ルールは、書換え対象となるPJLコマンドである「変換前PJLコマンドN」と、書換え後のPJLコマンドである「変換後PJLコマンドN」の組み合わせで構成されている。変換ルール32は、複数のルールで構成されている。なお、Nは、識別子を示す自然数である。
【0034】
コントローラ12は、変換ルール32に含まれるルール内の「変換前PJLコマンド」のいずれかに、変換ルール部F1に記述されているルールの「変換前PJLコマンドN」に該当するPJLコマンドが記述されているか判断する。該当するとは、例えば、同じである、という概念である。これ以外にも、該当するとは、例えば、同じではないが、ある規則にのっとれば、同じと見なせる、という概念を含んでいてもよい。
【0035】
コントローラ12は、変換ルール部F1に記述されているルールのうち、「変換前PJLコマンドN」が、変換ルール32に含まれるいずれのルール内の「変換前PJLコマンド」にも該当しないルールについて、ルール全体を、変換ルール32に書き込む。具体的には、「変換前PJLコマンド1」が、変換ルール32に含まれるルールのいずれにも該当しなかった場合、コントローラ12は、「変換前PJLコマンド1」と「変換後PJLコマンド1」との組み合わせであるルールを、変換ルール32に書き込む。なお、PCLコマンドを対象としたルールについても、同様である。図6は、PCLコマンドのルールを対象とする変換ルール対象コマンドである。例えば、PCLコマンドのルールを対象とする変換ルール対象コマンドにおいて、変換ルール部F1に記述された「変換前PCLコマンド3」が、変換ルール32に含まれるルールのいずれにも該当しなかった場合、コントローラ12は、「変換前PCLコマンド3」と「変換後PCLコマンド3」との組み合わせであるルールを、変換ルール32に書き込む。これにより、変換ルール32には、新たなルールが追加される。
【0036】
コントローラ12は、変換ルール部F1に記述されているルールのうち、「変換前PJLコマンドN」が、変換ルール32に含まれるいずれかのルール内の「変換前PJLコマンドN」に該当するルールについて、「変換後PJLコマンドN」だけを用いて、変換ルール32を書き換える。具体的には、「変換前PJLコマンド2」が、変換ルール32に含まれるルールのいずれかに該当する場合、コントローラ12は、変換ルール32に含まれるルールのうち、「変換前PJLコマンド2」に該当するコマンドが記述されているルールの「変換後PJLコマンド」を、「変換後PJLコマンド2」に書き換える。なお、PCLコマンドを対象としたルールについても、同様である。具体的には、図6に示す変換ルール対象コマンドにおいて、「変換前PCLコマンド4」が、変換ルール32に含まれるルールのいずれかに該当する場合、コントローラ12は、変換ルール32に含まれるルールのうち、「変換前PCLコマンド4」が記述されているルールの変換後PCLコマンドを、「変換後PCLコマンド4」に書き換える。これにより、変換ルール32に含まれるルールのうち、一部が変更される。
【0037】
S17で実行される変換ルール32を対象とした処理は、PJLコマンドのルールと、PCLコマンドのルールとの双方を対象とした変換ルール対象コマンドを用いてもよい。図7で図示される変換ルール対象コマンドでは、変換ルール部F1に、「変換前PJLコマンド1」と「変換後PJLコマンド1」との組み合わせであるルール、「変換前PJLコマンド2」と「変換後PJLコマンド2」との組み合わせであるルール、「変換前PCLコマンド3」と「変換後PCLコマンド3」との組み合わせであるルール、「変換前PCLコマンド4」と「変換後PCLコマンド4」との組み合わせであるルールが記述されている。コントローラ12は、図4のS25において、図7で図示された変換ルール対象コマンドに従って、変換ルール32のデータ記憶領域31への書き込み、又は書換えを行う。なお、後述する、コマンド種別「Read」、「Delete」の各変換ルール対象コマンドにおいても同様である。
【0038】
コントローラ12は、S25での変換ルール32を対象とする書き込み、あるいは、書き換えを終了すると、S26に進み、S25での処理に応じた応答データを構築する。具体的には、コントローラ12は、図5(a)で示す変換ルール対象コマンドを用いて変換ルール32を対象とする処理を実行した場合、図5(b)に示す応答データを構築する。図5(b)に示す応答データは、応答ヘッダ部Hb1を含んでおり、この応答ヘッダ部Hb1には、変換ルール対象コマンドを用いた処理に応じた処理ステータスが記述されている。例えば、処理ステータスには、「成功」、「対象ファイルなし」、「終端検知不可」、「パラメータ解析不可」等がある。処理ステータス「成功」は、各変換ルール対象コマンド「Read」、「Write」、「Delete」に従った処理が成功したことを示す処理ステータスである。対象ファイルなしは、変換ルール対象コマンド「Read」に従って読み出す対象となるデータ、又は変換ルール対象コマンド「Delete」に従って削除する対象となるデータがないことを示す処理ステータスである。すなわち、変換ルール32の全体または一部が、データ記憶領域31に記憶されていないことを示す。終端検知不可は、変換ルール対象コマンドが途中で途切れていて、処理できないことを示す処理ステータスである。パラメータ解析不可は、変換ルール対象コマンドが解析不可能な内容になっており、処理できないことを示す処理ステータスである。
【0039】
S22に戻り、コントローラ12は、変換ルール対象コマンドのコマンド種別が「Read」であれば、S24に進み、変換ルール対象コマンドに従って、メモリ14に記憶された変換ルール32の読み出しを行う。図8(a)は、コマンド種別が「Read」である変換ルール対象コマンドを示している。
【0040】
図8(a)に示す変換ルール対象コマンドにおいて、ヘッダ情報部Ha2には、コマンド種別が「Read」であることを示す情報が記述されている。図8(a)に示す変換ルール対象コマンドでは、読み出し対象は、変換ルール32の全体であるため、変換ルール部F1には、何ら情報が記述されていない。なお、変換ルール部F1に、読出し対象にするルールを識別するデータが記述されていれば、変換ルール32のうち、そのデータで識別されるルールだけを読出し対象としてもよい。変換ルール部F1に記述された識別するデータは、例えば、ルール名でもよく、「変換前PJLコマンド」、あるいは、「変換前PCLコマンド」でもよい。図8(a)に示す変換ルール対象コマンドに従うと、コントローラ12は、メモリ14に記憶されている変換ルール32を揮発性領域へ読み出す。
【0041】
コントローラ12は、S24での変換ルール32を対象とする読出しを終了すると、S26に進み、S24での処理に応じた応答データを構築する。具体的には、コントローラ12は、図8(a)で示す変換ルール対象コマンドを用いて変換ルール32を対象とする処理を実行した場合、図8(b)に示す応答データを構築する。図8(b)に示す応答データは、応答ヘッダ部Hb2と、応答変換ルール部F2とを含んでいる。応答ヘッダ部Hb2には、図5(b)を用いて説明したのと同様、変換ルール対象コマンドを用いた処理に応じた処理ステータスが記述されている。応答変換ルール部F2には、変換ルール対象コマンド「Read」により、メモリ14から読み出された変換ルールが記述されている。
【0042】
コントローラ12は、変換ルール対象コマンドのコマンド種別が「Delete」であれば、S23に進み、変換ルール対象コマンドに従って、メモリ14のデータ記憶領域31に記憶された変換ルール32の消去を行う。図9(a)は、コマンド種別が「Delete」である変換ルール対象コマンドを示している。
【0043】
図9(a)に示す変換ルール対象コマンドにおいて、ヘッダ情報部Ha3には、コマンド種別が「Delete」であることを示す情報が記述されている。図9(a)に示す変換ルール対象コマンドにおいて、削除対象は、変換ルール32の全体であるため、変換ルール部F1には、何ら情報が記述されていない。なお、変換ルール部F1に、削除対象にするルールを識別するデータが記述されていれば、変換ルール32のうち、そのデータで識別されるルールだけを削除対象としてもよい。変換ルール部F1に記述された識別するデータは、例えば、ルール名でもよく、これ以外にも、識別するデータは、「変換前PJLコマンド」、あるいは、「変換前PCLコマンド」でもよい。図9(a)に示す変換ルール対象コマンドにより、メモリ14に記憶されている変換ルール32に対する削除が行われる。
【0044】
コントローラ12は、S23での変換ルール32を対象とする削除を終了すると、S26に進み、S23での処理に応じた、応答データを構築する。コントローラ12は、図9(a)で示す変換ルール対象コマンドを用いて変換ルール32を対象とする処理を実行した場合、図9(b)に示す応答データを構築する。図9(b)に示す応答データは、応答ヘッダ部Hb3を含んでおり、この応答ヘッダ部Hb3には、図5(b)を用いて説明したのと同様、変換ルール対象コマンドを用いた処理に応じた処理ステータスが記述されている。
【0045】
図2に戻り、プリンタ10のコントローラ12は、図4のS26で構築された応答データを、LANIF20介してPC50に送信する。これにより、PC50では、応答データの内容から、変換ルール32を対象とする処理の結果の確認や、その後の処理を実行することが可能となる。
【0046】
次に、プリンタ10がHTTPS以外の通信プロトコルでPJLファイルを受信する場合の処理を、図10を用いて説明する。HTTPS以外の通信プロトコルとして、上述したPORT9100を用いて、プリンタ10にPJLファイルを送信するクライアントが多く存在する。例えば、Windows(登録商標)の、プリンタと通信を行うための標準TCP/IPポートとしてPORT9100が用いられている。なお、PORT9100は、HTTPSとは異なり、認証手順を定めていないプロトコルであるため、図10に示すシーケンスチャートには、図2で示した、PC50からプリンタ10への認証要求や、プリンタ10でのパスワードの認証が含まれていない。
【0047】
S11で、PC50は、プリンタ10に対して、ポート番号として9100を指定して、変換ルール対象コマンドを含んだPJLファイルを送信する。プリンタ10は、LANIF20を介して、PORT9100でPJLファイルを受信する。このように、プリンタ10がPJLファイルを受信すると、ST12で、図2のST5で示したのと同様、PJLコマンドを含むPJLファイルの受信時の処理が実行される。
【0048】
PORT9100を用いた場合のST12の処理の詳細を、図3を用いて説明する。コントローラ12は、S11で、PJLセキュリティ設定が有効に設定されていれば(S11:YES)、S12に進む。コントローラ12は、LANIF20を介してPJLファイルを受信しており(S12:NO)、PORT9100でPJLファイルを受信しているため(S13:NO)、S14に進む。
【0049】
S14では、コントローラ12は、PJLファイルに含まれるデータ種別を判断し、PJLファイルに含まれるデータのデータ種別が、変換ルール対象コマンドであれば(S15:YES)、S16に進む。S16では、コントローラ12は、PJLコマンドに対して読み捨て処理を実行する。コントローラ12は、読み捨て処理において、PJLコマンドの先頭「EC%―12345X@PJL」から、終端「EC%―12345X」までの記述内容を読み飛ばすことで、PJLファイルに含まれる変換ルール対象コマンドに従った処理を実行しない。即ち、コントローラ12は、セキュリティが確保されていない、PORT9100で、変換ルール対象コマンドを受信しているため、変換ルール32を対象とする処理を実行しない。
【0050】
コントローラ12は、S16での読み捨て処理を実行した場合、処理ステータスとして、変換ルール32を対象とする処理を実行しなかったことを示す応答データを構築し、ST13で、PC50へ応答データを送信してもよい。また、S16での読み捨て処理を実行した場合、ST13の処理を実行しなくてもよい。PC50から送信されたPJLファイルに、変換ルール対象コマンド以外のコマンドが含まれている場合(S15:NO)、S17に進み、PJLファイルに含まれるコマンド種別に応じた処理を実行する。図10に戻り、プリンタ10のコントローラ12は、ST13で、図4のS26で応答データが構築されていれば、USBIF21介して、応答データをPC50に送信する。
【0051】
次に、プリンタ10がUSBIF21を介してPJLファイルを受信する場合の処理を説明する。例えば、PC50と、プリンタ10とがUSBケーブルにより接続されることで、図10のST11で示したのと同様、PC50がプリンタ10にPJLファイルを送信することが可能になる。プリンタ10のコントローラ12は、USBIF21を介してPJLファイルを受信すると、図10のST12で示したのと同様、PJLコマンドを含むPJLファイルの受信時の処理を実行する。
【0052】
USBIF21を介したPJLファイルの受信時の処理を、図3を用いて説明する。コントローラ12は、S11で、PJLセキュリティ設定が有効に設定されていれば(S11:YES)、S12に進む。コントローラ12は、USBIF21を介してPJLファイルを受信しているため(S12:YES)、S17に進み、PJLファイルに含まれるデータのデータ種別に応じた処理を実行する。図4に図示される、S17の処理は説明済である。本実施形態では、コントローラ12が実行する、図2のST5の処理、図10のST12の処理、及び図3で示す処理が、変換ルール対象処理の一例である。
【0053】
図10に戻り、プリンタ10のコントローラ12は、ST13で、図4のS26で構築された応答データを、USBIF21介してPC50に送信する。
【0054】
次に、プリンタ10のコントローラ12が、ST5(図2)又はST12(図10)で、印刷ジョブを示すPJLファイルを受信した場合に実行する処理を、図12を用いて説明する。後述するように、印刷ジョブを示すPJLファイルには、PJLコマンドと画像データ(後述するPDL部42)とが含まれている。本実施形態では、コントローラ12は、PJLコマンドが画像データとともに送信された場合、通信に用いられた通信IF18やプロトコルといった通信経路に関わらず、PJLコマンドに従った処理を実行することで、画像データに基づく印刷処理を実行する。言い換えると、コントローラ12は、印刷ジョブを示すPJLファイルに含まれる形でPJLコマンドを受信した場合は、通信IF18の種別や、プロトコルによって処理に差を付けることなく、印刷ジョブに含まれるPJLコマンドや、後述するPCLコマンドに従って、印刷ジョブに基づく印刷を実行する。
【0055】
まず、コントローラ12は、S40で、変換ルール32がメモリ14に保存済みであるか否かを判断する。コントローラ12は、変換ルール32がメモリ14に保存済みでなければ(S40:NO)、S42に進む。一方、コントローラ12は、変換ルール32がメモリ14に保存済みであれば(S40:YES)、S41で、メモリ14のデータ記憶領域31から変換ルール32を読出し、その読出した変換ルール32を揮発性メモリであるRAMに展開する。なお、変換ルール32が予めRAMに記憶されている場合は、S41を省略してよい。
【0056】
コントローラ12は、S42で、PJLファイルに含まれる、1行分のデータを取得する。図11は、印刷ジョブを示すPJLファイル40の構成を示している。PJLファイル40には、画像の印刷を指示するためのPJLコマンドで構成されたPJL部41と、画像データの描画を指示するページ記述言語で構成されたPDL部42とを含んでいる。PJLファイル40の先頭には、PJLファイルの先頭を示すデータD1「EC%-12345X@PJL」が記述されており、この行の次の行からPJL部41が記述されていること示している。PJL部41を構成するPJLコマンドには、画像データであることを示すコマンド、印刷ジョブのジョブ名を示すコマンド、印刷ジョブのユーザ名を示すコマンド、印刷に用いる印刷パラメータを示すコマンド、印刷ジョブを特別な方法で印刷することを示すコマンド、などが含まれる。特別な方法とは、例えば、印刷ジョブをすぐには印刷せずメモリ14に蓄積しておき、入力IF15を介した指示操作を受け付けたことに応じて印刷する方法である。また、PJLコマンドには、印刷ジョブのうち、どこからが画像データであるのかを示すコマンド、PDL部42の形式を示すコマンドなども含まれる。PDL部42の形式とは、例えばPCL(PrinterCommandLanguageの略)、PS(PostScriptの略、PostScriptは登録商標)、PDF(PortableDocumentFormatの略)、JPEG、RAWである。
【0057】
PJL部41に記述されたコマンドD2「@PJL ENTER LANGUAGE=PCL XL」は、PJL部41の途中から、具体的には次行からPDL部42が開始することを示している。本実施形態では、PDL部42に含まれるページ記述言語のデータ種別として、PCLを用いる。PDL部42内に記述されたデータD3「EC%―12345X@ PJL EOJ NAME=“office―PDF(A&A4).pdf”」は、PDL部42の終了を示すコマンドである。データD3の次行に記述されたデータD4「EC%―12345X」は、PJLファイルの終端、すなわち、印刷ジョブを示すデータの終端を示すデータである。
【0058】
S43では、コントローラ12は、S42で取得した1行分のデータのデータ種別を判別する。コントローラ12は、データの先頭に「@PJL」のタグが記述されていれば、現在取得しているデータ種別が、PJLコマンドであると判定する。コントローラ12は、取得したデータのデータ種別が、PJLコマンドでなければ(S44:NO)、S48に進む。例えば、S42で取得したデータが先頭を示すデータD1である場合、データの先頭に「@PJL」のタグが記述されていないため、データ種別はPJLコマンドではないと判別し(S44:NO)、S48に進む。
【0059】
S48で、コントローラ12は、現在、S42で取得されたデータが、PDL部42の開始を示すコマンドであるか否かを判断する。ここでは、コントローラ12は、コマンドD2ではないとして、S42に戻る。
【0060】
コントローラ12は、S42で、現在取得しているデータの次行のデータを新たに取得し、S43で、新たに取得したデータのデータ種別を判別する。コントローラ12は、新たに取得したデータがPJLコマンドであれば(S44:YES)、S45で、PJLコマンドが、変換ルール32による変換を許可する変換許可PJLコマンドであるか否かを判断する。例えば、変換が禁止されるPJLコマンドのリスト一覧は、メモリ14に記憶されており、PJLコマンドがそのリストに記憶されていない場合に変換が許可された変換許可PJLコマンドに該当する。例えば、変換が禁止されるPJLコマンドには、プリンタ10に記憶されているファイルをネットワーク上にアップロードすることを指示するPJLコマンド、ファイルの削除を指示するPJLコマンドなどである。コントローラ12は、新たに取得したPJLコマンドが、変換許可PJLコマンドでなければ(S45:NO)、後述するS46でのPJLコマンド変換処理を実行することなく、S47に進む。これにより、プリンタ10がインターネットなどのネットワークに接続されている場合に、悪意のある者からの攻撃を受け、ファイルのアップロード、ファイルの削除などが起きないようにすることができる。つまり、プリンタ10のセキュリティを高めることができる。
【0061】
コントローラ12は、新たに取得されたPJLコマンドが、変換許可PJLコマンドであると判断すると(S45:YES)、S46に進み、変換ルール32を用いたPJLコマンド変換処理を実行する。図13は、S46で、コントローラ12が実行する処理の手順を説明するフローチャートである。まず、コントローラ12は、S60で、新たに取得したPJLコマンドが、変換ルール32に該当するコマンドであるか否かを判断する。上述のように、変換ルール32には、変換対象となるPJLコマンド、すなわち、「変換前PJLコマンド」と、「変換後PJLコマンド」との対応関係を示すルールが記憶されている。コントローラ12は、新たに取得されたPJLコマンドが、変換ルール32に含まれるルールのいずれかに記述されている、「変換前PJLコマンド」に該当するPJLコマンドであれば(S60:YES)、S61に進み、変換ルール32に従って、当該PJLコマンドを、「変換後PJLコマンド」に変換する。一方、コントローラ12は、新たに取得されたPJLコマンドが、変換ルール32に含まれるルールのいずれに記述されている「変換前PJLコマンド」にも該当していないコマンドであれば(S60:NO)、PJLコマンドを変換することなく、図12のS47に進む。
【0062】
S47で、コントローラ12は、1行分のPJLコマンドを解析し、PJLコマンドが示す印刷指示の内容をメモリ14の揮発性領域に記憶していく。すなわち、S46で変換ルール32に従って、PJLコマンドが変換されていれば、コントローラ12は、S47で、「変換後PJLコマンド」を解析することになる。S46でPJLコマンドが変換されなかった場合、コントローラ12は、S47では、S42で取得したPJLコマンドを解析することになる。コントローラ12は、S44で、データ種別がPJLコマンドであると判断し(S44:YES)、S47を実行したのであるから、S48で、PDL部42の開始を示すコマンドを検出していないと判断し(S48:NO)、S42に戻る。コントローラ12は、現在取得しているデータの次行のデータを新たに取得する。そして、新たに取得したデータに応じて、S43~S47での一連の処理を実行していく。本実施形態では、コントローラ12が実行するS44~S47の処理が、PJLコマンド実行処理の一例である。
【0063】
その後、コントローラ12は、S47の解析により、PDL部42の開始を示すコマンドを検出すると、例えば、コマンドD2「@PJL ENTER LANGUAGE=PCL XL」を検出すると(S48:YES)、S49に進む。コントローラ12は、S49で、新たに取得したデータ(ここでは、コマンドD2)の次行に記述されているデータのデータ種別は、PCLコマンドであるか否かを判断する。例えば、コントローラ12は、コマンドD2を検出している場合に、次行にPCLコマンドを含むPDL部42が記述されていると判断してもよい。コントローラ12は、次行に記述されたデータがPCLコマンドであると判断した場合は(S49:YES)、S50に進み、対象となるPCLコマンドに対して、PCLコマンド変換処理を実行する。
【0064】
S50で、コントローラ12が実行するPCLコマンド変換処理を、図13を流用して説明する。まず、コントローラ12は、S60で、取得されているPCLコマンドに、変換ルール32に該当するコマンドが含まれているか否かを判断する。上述のように、変換ルール32には、変換対象となるPCLコマンド、すなわち、「変換前PCLコマンド」と、「変換後PCLコマンド」との対応関係を示すルールが記憶されている。コントローラ12は、取得されているPCLコマンドに、変換ルール32に含まれるルールのいずれかに記述されている、「変換前PCLコマンド」に該当するPCLコマンドがあれば(S60:YES)、S61に進み、変換ルール32に従って、当該PCLコマンドを、「変換後PCLコマンド」に変換する。一方、コントローラ12は、取得されているPCLコマンドのうち、変換ルール32に含まれるルールのいずれに記述されている「変換前PCLコマンド」に該当していないコマンドに対しては(S60:NO)、PCLコマンドを変換することなく、図12のS51に進む。
【0065】
コントローラ12は、S51でRIP処理を実行する。RIP処理では、PDL部42に含まれるPCLコマンドによる描画指示に従って、1ページ分のラスタデータを生成していく。すなわち、S50で変換ルール32に従って変換されたPCLコマンドに対しては、コントローラ12は、S51で、「変換後PCLコマンド」を解析し、1ページ分のラスタデータを生成することになる。S50で変換ルール32に従って変換されていないPCLコマンドに対しては、コントローラ12は、S51で、変換されていない元のPCLコマンドを解析し、1ページ分のラスタデータを生成することになる。このとき、コントローラ12は、S47でのPJLコマンドの解析により記憶された印刷指示のうち、RIP処理に反映される印刷指示を用いて1ページ分のラスタデータを生成する。なお、PDL部42が複数ページの画像データに対応する場合、RIP処理では、複数ページ分のラスタデータを生成することになる。
【0066】
コントローラ12は、S51でのRIP処理を終了すると、S52で、1ページ分のラスタデータを用いて印刷処理を実行する。コントローラ12は、印刷処理において、RIP処理で生成されたラスタデータを、記録部17が処理可能なデータに変換して、記録部17に印刷処理を実行させる。このとき、コントローラ12は、S47でのPJLコマンドの解析により記憶された印刷指示のうち、印刷処理に反映される印刷指示を用いて画像の印刷を行う。コントローラ12は、S52の印刷処理を完了すると、図12の処理を終了する。本実施形態では、コントローラ12が実行するS49~S52の処理が、PDLコマンド実行処理の一例である。
【0067】
以上説明した実施形態によれば、以下の効果を奏することができる。
プリンタ10のコントローラ12は、変換ルール32を対象とした処理を指示するPJLコマンドを受信した場合に、このPJLコマンドを受信する通信IFが、LANIF20であって、セキュリティが確保されていない通信によりなされていれば、受信したPJLコマンドに従った処理を実行しない。一方、コントローラ12は、変換ルール32を対象とした処理を指示するPJLコマンドを受信した通信IFが、USBIF21であれば、受信したPJLコマンドに従った処理を実行する。これにより、プリンタ10に対して、セキュリティが確保されていない通信により、変換ルール32を対象とした処理が指示される場合は、変換ルール32を対象とした処理が実行されない。その結果、例えば、無防備に変換ルール32が改変されてしまうことを防止することができ、セキュリティを向上することができる。
【0068】
コントローラ12は、変換ルール32を対象とした処理を指示するコマンドをLANIF20で受信している場合に、変換ルールを対象とした処理を指示するPJLコマンドをHTTPSで受信していれば、PJLコマンドに従った処理を実行する。これにより、LANIF20でPJLコマンドを受信する場合でも、セキュリティが確保されているプロトコルで変換ルール32を対象とした処理を指示するPJLコマンドを受信する場合に限って、変換ルール32を対象とした処理を実行するため、セキュリティを向上させることができる。
【0069】
コントローラ12は、メモリ14に記憶されている設定情報の値がPJLセキュリティ設定の無効を示している場合は、変換ルール32を対象とした処理を指示するPJLコマンドを受信した通信IFがLANIF20であっても、受信したPJLコマンドに従った処理を実行する。これにより、メモリ14に記憶された設定情報の値を変更することにより、PJLコマンドに従って変換ルールを対象とした処理を実行させるか否かを切換えることができる。
【0070】
(第1実施形態の変形例)
上述の第1実施形態では、変換ルール32を対象とした処理を指示するPJLコマンドの受信に用いられた通信IFの種別と、プロトコルの種別とに応じて、その後の処理を変更した。これに代えて、PJLコマンドの受信に用いられたプロトコルの種別のみに応じて、その後の処理を変更してもよい。この場合において、図3のS13で、コントローラ12は、PJLコマンドをHTTPSで受信していれば(S13:YES)、S17に進み、受信したPJLコマンドに従って、変換ルール32を対象とする処理を実行する。一方、PJLコマンドをPORT9100で受信していれば(S13:NO)、S14に進む。この場合において、図3のS12の処理を省略することもできる。
【0071】
上述の第1実施形態では、コントローラ12は、変換ルール32を対象とした処理を指示するPJLコマンドを受信した場合に、通信IF18の種別や、プロトコルの種別に応じて、その後の処理を変更した。これ以外にも、プリンタ10は、変換ルール32を対象とした処理を指示するPDLコマンドを、PC50から受信する場合も想定される。このような場合、コントローラ12は、通信IF18の種別や、プロトコルの種別に応じて、変換ルール32を対象とした処理を指示するPDLコマンドに従った処理を実行するか否かを変更してもよい。
【0072】
この場合において、コントローラ12が、PC50から印刷ジョブを示すPJLファイルとは別に、上述したPCLコマンドを含むPDLコマンドを含むファイルを受信する場合、図3のS10で示したのと同様、コントローラ12は、PDLコマンドを特定する。そして、S11でセキュリティ設定が有効に設定されていれば(S11:YES)、S12で、USBIF21を介してPDLコマンドを受信しているか否かを判断する。コントローラ12は、USBIF21を介してPDLコマンドを受信していれば(S12:YES)、S17に進み、PDLコマンドに従って、変換ルール32を対象とする処理を実行する。また、コントローラ12は、LANIF20を介し、PDLコマンドをHTTPSで受信していれば(S13:YES)、S17に進む。一方、コントローラ12は、LANIF30を介しているが、HTTPS以外のセキュリティが確保されていないプロトコルでPDLコマンドを受信していれば(S13:NO)、S14に進む。そして、S14,S15の処理を経由したのち、S16で、PDLコマンドの読み捨て処理を行う。この場合において、コントローラ12が図3のS10~S17で実行する処理が、PDLコマンドを用いる場合の変換ルール対象処理の一例である。
【0073】
変換ルール32を対象とする処理を指示するコマンドは、コントローラ12に変換ルール32を対象とする処理を指示するコマンドであればよく、PJLコマンドに限定されない。例えば、プリンタ10のベンダ独自のコマンドであってもよい。
【0074】
上述の実施形態では、HTTPSで使用されるポート番号がPORT443に限定され、HTTPS以外のプロトコルで使用されるポート番号がPORT9100として記載された。これに限らず、HTTPSで使用されるポート番号と、HTTPS以外のプロトコルで使用されるポート番号は、種々のポート番号を採用することが可能である。
【0075】
上述の実施形態で用いられたHTTPSに代えて、HTTPSをプリンタ10のベンダ独自に拡張したプロトコルを用いてもよい。この場合も、受信側の装置が、受信したパスワードを承認できた場合に、送信側の装置にデータ送信の許可を出す認証手段が定められた方式のプロトコルであればよい。
【0076】
PDLコマンドの一例として、PCLコマンドを挙げたが、これに限らない。例えば、PDLコマンドは、PCLXLコマンド、PDFコマンド、PSコマンドであってもよい。
「変換前PDLコマンド」を「変換後PDLコマンド」に対応付けるルールの一例として、「変換前PCLコマンド」を「変換後PCLコマンド」に対応付けるルールを挙げたが、これに限らない。例えば、「変換前PCLXLコマンド」を「変換後PCLXLコマンド」に対応付けるルールでもよい。例えば、「変換前PDFコマンド」を「変換後PDFコマンド」に対応付けるルールでもよい。例えば、「変換前PSコマンド」を「変換後PSコマンド」に対応付けるルールでもよい。
【符号の説明】
【0077】
10…プリンタ、12…コントローラ、14…メモリ、18…通信IF、20…LANI
F、21…USBIF、50…PC
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13