JP2023020341A - プリンタドライバ - Google Patents
プリンタドライバ Download PDFInfo
- Publication number
- JP2023020341A JP2023020341A JP2021125653A JP2021125653A JP2023020341A JP 2023020341 A JP2023020341 A JP 2023020341A JP 2021125653 A JP2021125653 A JP 2021125653A JP 2021125653 A JP2021125653 A JP 2021125653A JP 2023020341 A JP2023020341 A JP 2023020341A
- Authority
- JP
- Japan
- Prior art keywords
- printer driver
- print processor
- driver
- installation
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 プリントプロセッサに独自機能を持たせているプリンタドライバでは、プリントプロセッサを置き換えられるとプリンタドライバの機能が損なわれてしまうことから、このようなプリンタドライバでは印刷ソリューションが利用できない。【解決手段】 INFでのドライバインストールでは、プリンタドライバの独自のプリントプロセッサをOSの規定フォルダに配置するところまでを行う。その後のドライバイベントで、プリンタドライバが独自のプリントプロセッサをOSへ登録する。【選択図】 図7
Description
本発明はアプリケーションが作成した文書を印刷するプリンタドライバに関するものである。
プリンタドライバを利用し、アプリケーションが作成した文書データを出力対象のプリンターで印刷可能な形式の印刷データに変換することが一般的に知られている。プリンタドライバを利用し、印刷装置に対して印刷データを送信する構成が一般に知られている。
これらのプリンタドライバでは、印刷に関する様々な印刷設定を行うことができる。例えば、複数の論理ページを1つの物理ページに集約して印刷を行うNin1印刷や、アプリケーションが作成した文書を指定のアプリケーションが指定したサイズとは異なる倍率で印刷を行う拡大縮小印刷等行うことができる。プリンタドライバは、当該設定と、文書データとに基づき、文書データを構成するオブジェクトを拡大、縮小、回転して印刷データを作成する。これらの機能を実現する手段として、プリンタドライバ以外に、プリンタドライバのプリプロセスモジュールであるプリントプロセッサを使用することが知られている。特許文献1には、プリントプロセッサを利用してレンダリングを行うことが開示されている。
このようなプリンタドライバが利用する独自のプリントプロセッサは、通常、プリンタドライバのインストールセットに同梱され、プリンタドライバと共にOSへインストールされる。プリントプロセッサを含めたプリンタドライバのインストールは主にINF形式のインストールセットで提供され、INFファイルの記述にしたがってインストールされる。
またプリントプロセッサを利用して印刷情報を収集しようとする印刷ソリューションが存在する。これらの印刷ソリューションは、例えば印刷情報を取得する機能などを持たせた専用のプリントプロセッサを利用する。プリンタドライバに紐づいたプリントプロセッサを印刷ソリューションが提供するプリントプロセッサに置き換えることにより印刷ソリューションの目的の機能を実現する。
しかし、プリントプロセッサに独自機能を持たせているプリンタドライバでは、プリントプロセッサを置き換えられるとプリンタドライバの機能が損なわれてしまうことから、このようなプリンタドライバでは印刷ソリューションが利用できない。
別の例として、旧バージョンではプリントプロセッサを利用していなかったプリンタドライバが、新バージョンで独自のプリントプロセッサを利用するよう仕様変更を行った場合においても印刷ソリューションが利用できなくなってしまう。
しかしながら、独自のプリントプロセッサで実現している機能が通常は利用されない機能であれば、印刷ソリューションが提供するプリントプロセッサへ置き換えて印刷ソリューションを利用することが考えられる。
本発明は上記課題を鑑みて、プリントプロセッサを利用しないプリンタドライバに見せかけることで、印刷ソリューションの機能を損なうことなく利用できるようにするプリンタドライバを提供することを目的とする。
上記目的を達成するために、本発明は以下のような構成を備える。情報処理装置(100)にプリンタドライバ(500)とプリントプロセッサ(400)をインストールする方法であって、プリントプロセッサ(400)のインストールに関して、ファイル配置は行うがOSへの登録とプリンタドライバ(500)への紐づけは行わないインストールスクリプト(710)と、OS(300)から発行されるドライバイベントを受け付ける受付手段(S810)と、前記受付手段(S810)で受け付けたドライバイベントが、インストール完了の通知であることを判断する第2の判断手段(S811)と、プリンタドライバ(500)独自のプリントプロセッサ(400)情報を取得する情報取得手段(S812、S813)と、OS(300)にプリンタドライバ(500)独自のプリントプロセッサ(400)が登録されているか判断する判断手段(S815)と、前記判断手段(S815)によりプリンタドライバ(500)独自の描画命令変更部(400)が登録されていないことを確認した場合に、新たにOS(300)へ登録する登録手段(S816)とを有することを特徴とするインストール方法。
本発明によれば、独自のプリントプロセッサを使用するプリンタドライバであっても、印刷ソリューションの機能を実現することが可能となる。
以下、本発明を実施するための形態について図面を用いて説明する。
図1は本発明のシステム構成を示すブロック図である。
コンピュータ(100)は情報処理装置であり、通信可能な有線或いは無線媒体を介してプリンター(101)と接続されているものとする。
図2はコンピュータ(100)のハードウェア構成を示すブロック図である。この図を用いて、コンピュータ(100)のハードウェア構成について説明する。コンピュータ(100)はCPU(Central Processing Unit)(1)により制御される。CPU(1)はROM(3)に記憶された基本入出力システム(BIOS制御プログラム)や外部メモリ(14)に記憶されたオペレーティングシステムや各種アプリケーションプログラムなどをRAM(2)にロードし、実行することが可能である。コンピュータ(100)にはユーザからの入力を受けるキーボード(9)や処理の結果を画像としてユーザに表示するためのディスプレイ(10)など接続可能である。キーボード(9)はユーザ操作を受け付ける受付部として機能し、ディスプレイ(10)はユーザに情報を提示する表示部として機能する。更に、他の情報機器と通信を行うためのUSBやメモリーカード、有線・無線ネットワーク等の外部機器I/F(8)を備える。
本実施例で説明する処理はプログラムROM(3)に格納されプログラムをRAM(2)上にロードしCPU(1)で実行することにより実現される。
プリンター(101)のハードウェア構成についての説明は割愛するが、公知の技術を利用し紙媒体上に画像を形成するものである。
次に、図3はコンピュータ(100)のソフトウェア構成を示すブロック図である、本図を用いて、本発明のソフトウェア構成について説明を行う。コンピュータ(100)は、次のコンポーネントで構成される。ユーザの要望に応え、印刷のための設定を行ったり、印刷指示を発行したりするアプリケーション(200)。コンピュータ(100)の基本制御を行うOS(300)。アプリケーション(200)からの印刷設定や印刷指示を、OS(300)を介して受け取り、これらを処理するプリントプロセッサ(400)及びプリンタドライバ(500)で構成される。特にプリンタドライバ(500)は、印刷設定を作成するUI処理部(510)と印刷データを作成するGR処理部(520)とで構成される。
図4は、本発明に係る印刷処理の流れを説明するための図である。この図を用いて、プリントプロセッサ(400)の位置づけと印刷時の流れについて説明をする。
尚、GDI(310)、Windows(登録商標) Spooler(320)はOS(300)のコンポーネントである。GDI(310)はアプリケーション層に対し印刷を含めた描画フェイスを提供し、Windows Spooler(320)は後述するスプールファイル(EMF)(600)の作成や、印刷データの送信に関する処理を行う。EMFとはEnhanced Metafileの略称でOS(300)がプリンタドライバでの利用を考慮し作成、利用する画像ファイル形式である。
アプリケーション(200)は必要に応じプリンタドライバ(500)のUI処理部(510)(以降、単にUI処理部510)を呼び出し、印刷設定を作成する。その後アプリケーション(200)はGDI(310)のAPIを呼び出すことで、印刷設定や描画データをGDI(310)に渡す。
GDI(310)はアプリケーション(200)から渡された、印刷設定や描画データをスプールファイル(EMF)(600)の形式で格納する。
プリントプロセッサ(400)はスプーラサービス上にロードされ、アプリケーション(200)からの印刷処理が終了すると、GDI(310)のAPIを呼び出すことでスプールファイル(EMF)(600)の内容の描画指示を発行する。GDI(310)はプリントプロセッサ(400)からのこのAPIの呼び出しを、プリンタドライバ(500)のGR処理部(以降、単にGR処理部(520))向けのAPIに置き換え、GR処理部(520)呼び出す。GR処理部(520)は、上記のようにして受け取ったプリントプロセッサ(400)からの描画指示を、対象のプリンター(101)で印刷が可能な形式の印刷データに変換する。GR処理部(520)はこの変換された印刷データをWindows Spooler(320)に渡し。Windows Spooler(320)はGR処理部(400)から渡された印刷データをプリンター(101)に送信することで、プリンター(101)に印刷処理を実行させる。
図5は、INF形式で提供されるプリンタドライバのインストールセットに含まれる一般的なINFファイルの記述例である。プリントプロセッサのファイル名はCanonPrintProcessor.DLLとして記述している。また、ここではプリントプロセッサに注目するため、プリントプロセッサに直接関係しない設定は省略している。
プリントプロセッサのファイルをOS規定のディレクトリへ配置する設定(701、702)と、プリントプロセッサをプリンタドライバに紐づける設定(703)がある。しかし、本発明では、OS標準のプリントプロセッサが紐づいた状態となるようにするため、プリントプロセッサをプリンタドライバに紐づける設定(703)は記述しない。そのため記述(704)はINFファイルの構文として特に意味を持たなくなる。しかし、プリンタドライバが利用するプリントプロセッサの名称とファイル名の関連付けを明示する記述として(714)のように残す。(714)のPP_NAMEはINFファイルからプリントプロセッサの名称とファイル名を検索するためのキーワードとする。
よって、本発明では図6に示すようなINFファイルを使用する。
次に、図7は、本発明のプリンタドライバのインストール処理を説明するためのフローである。
(S801)~(S803)はOS(300)によって実現される処理である。本フローに係るOS(300)のプログラムは、外部メモリ(14)に記憶されており、RAM(2)に読み出されCPU(1)によって実行される。
(S810)~(S816)はUI処理部(510)によって実現される処理である。本フローに係るUI処理部(510)のプログラムは、外部メモリ(14)に記憶されており、RAM(2)に読み出されCPU(1)によって実行される。
INF形式のインストールセットを用いてユーザがインストールをOSへ指示することにより、OSがプリンタドライバのインストール指示を受け付け(S801)実行する。まずINFファイルの記述に従ってプリンタドライバのインストール処理(S802)が行われる。この時点では、プリンタドライバはインストールされるものの、プリントプロセッサのファイルはOS規定のディレクトリへ配置されるだけで、OSへの登録は行われない。このため、インストールしたプリンタドライバにはOS標準のプリントプロセッサが紐づいた状態となっている。
プリンタドライバのインストールが完了した際に、ドライバイベントがインストールしたプリンタドライバに対して発行(S803)される。プリンタドライバは受け付けたドライバイベントがインストール完了イベント(DRIVER_EVENT_INITIALIZE)であるか判断(S811)を行う。インストール完了イベント(DRIVER_EVENT_INITIALIZE)を受け付けた場合に、インストールを実行したINFファイルを特定(S812)する。INFファイルを特定する手段の一例として、GetPrinterDriver APIで取得できるDRIVER_INFO_8構造体のpszInfPathメンバからINFファイルを特定できる。
特定したINFファイルを検索し、プリンタドライバのインストールで配置したプリントプロセッサ名を取得(S813)する。プリントプロセッサ名は、INFファイルからPP_NAMEキーワードをもとに検索したプリントプロセッサの名称とファイル名の関連を示す記述(714)から取得する。
取得したプリントプロセッサ名が、OSに既に登録されているか確認(S815)し、登録されていなければ新規に登録する(S816)。OSに登録されているプリントプロセッサを取得する手段として、EnumPrintProcessors APIが利用できる。また、プリントプロセッサをOSに登録する手段として、AddPrintProcessor APIが利用できる。
以上のように、プリンタドライバ独自のプリントプロセッサはOSに登録され、プリンタドライバにはOS標準のプリントプロセッサが紐づいた状態となるようにインストールする。これにより、印刷ソリューションが提供するプリンタプロセッサに置き換える行為を阻害することが無く、印刷ソリューションを利用することが可能となる。
100 コンピュータ
101 プリンター
200 アプリケーション
300 OS
400 プリントプロセッサ
500 プリンタドライバ
510 UI処理部
520 GR処理部
101 プリンター
200 アプリケーション
300 OS
400 プリントプロセッサ
500 プリンタドライバ
510 UI処理部
520 GR処理部
Claims (1)
- 情報処理装置にプリンタドライバとプリントプロセッサをインストールする方法であって、
プリントプロセッサのインストールに関して、ファイル配置は行うがOSへの登録とプリンタドライバへの紐づけは行わないインストールスクリプトと、
OSから発行されるドライバイベントを受け付ける受付手段と、
前記受付手段で受け付けたドライバイベントが、インストール完了の通知であることを判断する第2の判断手段と、
プリンタドライバ独自のプリントプロセッサ情報を取得する情報取得手段と、
OSにプリンタドライバ独自のプリントプロセッサが登録されているか判断する判断手段と、
前記判断手段によりプリンタドライバ独自の描画命令変更部が登録されていないことを確認した場合に、新たにOSへ登録する登録手段と、
を有することを特徴とするインストール方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021125653A JP2023020341A (ja) | 2021-07-30 | 2021-07-30 | プリンタドライバ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021125653A JP2023020341A (ja) | 2021-07-30 | 2021-07-30 | プリンタドライバ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023020341A true JP2023020341A (ja) | 2023-02-09 |
Family
ID=85159440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021125653A Pending JP2023020341A (ja) | 2021-07-30 | 2021-07-30 | プリンタドライバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023020341A (ja) |
-
2021
- 2021-07-30 JP JP2021125653A patent/JP2023020341A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520546B2 (en) | Print processing system and control method | |
US10747481B2 (en) | Control method for acquiring data | |
US9442678B2 (en) | Information processing apparatus, information processing system and non-transitory computer-readable information recording medium | |
US9300746B2 (en) | Information processing apparatus and control method therefor | |
JP5884542B2 (ja) | 機器、情報処理システム、情報処理方法、及び情報処理プログラム | |
US20120281245A1 (en) | Information processing apparatus, information processing method, and storage medium | |
US10504014B2 (en) | Information processing apparatus that provides a notification to a user if a printing apparatus operates in a mode in which a print setting is set by a print application executed in the information processing apparatus, and related method of controlling the information processing apparatus, and a storage medium | |
CN108762694B (zh) | Linux操作系统中打印驱动处理方法及装置 | |
JP2020004158A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
US20170223208A1 (en) | Image formation device and image formation method | |
US20110067088A1 (en) | Image processing device, information processing method, and recording medium | |
JP2010140281A (ja) | アプリケーションプログラムとプリンタドライバとの間のデータ通信方法およびプログラム | |
JP4996272B2 (ja) | 情報処理装置及びその制御方法及び該方法を実行するプログラム | |
JPH1115610A (ja) | 印刷システム | |
JP2018084893A (ja) | 情報処理装置、制御方法およびプログラム | |
US9367270B1 (en) | Method and system for shuttling client resident data to servers in a client-server printing environment | |
JP5768406B2 (ja) | デバイス統合用プログラム、デバイス統合方法、及び、ホスト装置 | |
US11372598B2 (en) | Application and information processing apparatus | |
JP7402643B2 (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP2023020341A (ja) | プリンタドライバ | |
JP2014041599A (ja) | プログラム、情報処理装置、システム | |
US8358436B2 (en) | Systems and methods for efficiently handling imaging job settings | |
US20220129212A1 (en) | Image forming apparatus capable of preventing phenomenon that printing by schedule setting will not be started due to display of confirmation screen, control method for image forming apparatus, and storage medium | |
US20210165619A1 (en) | Information processing apparatus, control method, and storage medium | |
JP2021182310A (ja) | 情報処理装置、情報処理装置の処理方法およびプログラム |