Windows で使用できる CUPS サーバーのバージョンはありますか? CUPS のソース コードを見ると、Visual Studio のコンパイルの準備ができているように見えますが、実際にサポートされているパッケージの痕跡は見つかりませんでした。Windows で CUPS サーバーをセットアップして、このサーバーでセットアップしたプリンターに Linux/MacOSX/Win クライアントから印刷できるようにしたいと考えています。
4 に答える
私はあなたのために新しい答えを持っています:
しばらく
ippsample
して、GitHub という名前のプロジェクトがあります。成熟したバージョン 1.0 のリリースに向けてゆっくりと近づいています。以下は、必須の README ファイルの自己説明として与えられた の最初の 2 つの文です。
「このコードは、IPP クライアント、プリンター、およびプロキシーのサンプル実装を提供します。これは主に CUPS ソフトウェアに基づいており、ippproxy および ippserver 実装に大幅な変更を加えて、より汎用的で構成可能にしています。」(私の強調)
ISTO Printer Working Group (PWG)
このプロジェクトは、一般的な標準として IPP を開発および推進している業界団体であるによってホストされています。IPP サンプル プロジェクトの
ippserver
、ipptool
、ippfind
、ippproxy
およびipptransform
コンポーネントは、一緒に標準準拠のIPP Everywhere
実装を構成し、印刷のクライアント側とサーバー側をカバーします。IPP Sample プロジェクトの GitHub コードは、CUPS の開発者でもある Mike Sweet によって維持されているため、本物です。
はい、Windows でコンパイルして問題なく動作します。また、MS Visual Studio でのビルド プロセスを可能な限りスムーズにするためのファイルが多数用意されています。
.vclxproj
.sln
はい、IPP サンプル コードは動作しており、macOS または Linux の任意のブレンドで実行されている CUPS サーバーに印刷 (またはそこから印刷ジョブを受信) できます。
いいえ、これはまだ、Windows プリント サーバーのドロップイン代替品として機能する Windows 用の完全な CUPS サーバーではありません。必要なすべての機能を備えているわけではありません。
しかし、そのような獣を作成したい場合:
- これは、最初に突っ込む必要がある場所です。
- これは、コードをフォークして機能を追加し、目的の場所に到達できる可能性がある場合です。
ああ、それと、Apple が最近 CUPS のライセンス条件を変更し、 GPL2 から Apache 2.0 ライセンスに移行してより寛容にしたことをご存知ですか?
「IPP Everywhere」について聞いたことがありませんか? それは「ドライバーレス」印刷の未来です。
「ドライバーレス印刷」について聞いたことがありませんか? iPhone および iPad デバイス用の「Apple AirPrint」として既に実装されている、わずかに変更された (および削除された) バージョン。
CUPS ベースの印刷スタックの現在の実装には、最近 GitHub に移動した
cups-drivers
プロジェクトの新しいコードが含まれています。この新しいコードは、IPP Everywhere 機能を実装します。この
cups-filters
プロジェクトは、元の CUPS ソース コードのこれらの部分が macOS では役に立たなくなったが、Linux にとっては依然として重要であったときに、Apple がそれらの部分を彼らに引き渡して以来、 The Linux Foundation の OpenPrinting 部門による管理下にあります。それでは、ドライバーレス印刷の基本的なアイデアは何ですか?
デバイスが、ローカル ネットワークでの存在とサービスのタイプを自動的にアナウンスするようにします。IETF 標準プロトコル
mDNS
および(macOS では「Bonjour」DNS-SD
という名前で、Linux では「Avahi」として実装されています) を使用して、提供されるサービスに注意してください。IPP
要求を行ったときにクエリ応答を取得するために、プロトコルを使用できることを印刷クライアントに伝えますget-printer-attributes
。この要求により、デバイスがサポートする印刷オプションのセットが通知されます。印刷クライアントは、正確に調整された印刷ダイアログを表示して、印刷ユーザーに選択肢の選択を示すことができます。印刷クライアントには、各デバイスがサポートするジョブ送信形式も通知されます。これは、PDF または"PWG-Raster"と呼ばれる単純なラスター形式のいずれかでなければなりません。では...そのような環境で特定の「プリンタードライバー」が必要になるのはどこでしょうか? 今日では、誰もが PDF ドキュメントを作成できます。小切手!他の印刷言語へのデバイス固有の変換は必要ありません。
IPP Everywhere をサポートするプリンターはありますか? そうそう、ここを見てください。それらはすべて標準に完全に準拠していると言われています。
CUPS ソースに表示されている.slnおよび.vcproj ファイルは、すべての CUPS for Windows をコンパイルするためのものではありません。
それらは、そのユーティリティの一部のみをコンパイルするのに役立ちます(などipptool.exe
)...
Windows のスプールと印刷は Unix の世界とは大きく異なるため、完全な CUPS サーバーとフィルタリング コードを Windows で動作させるのは大変な作業です。
CUPS は、クライアントとサーバー間の通信にインターネット印刷プロトコルを使用します。Technet の記事によると、Windows を IPP ホストとして使用できます。
Windows Server 2008 を実行しているコンピューターをインターネット印刷をサポートするサーバーとして機能させるには、Web サーバー (IIS) の役割、印刷サービスの役割、および印刷サービスの役割にあるインターネット印刷の役割サービスをインストールする必要があります。
さらに、Windows、Linux、および Mac OS X クライアントは、SMB 経由で共有されたプリンターを使用できるようです。
「Windows のスプールと印刷は Unix の世界とは大きく異なるため、完全な CUPS サーバーとフィルタリング コードを Windows で動作させるのは大変な作業です。」
ダイヤルアップ インターネットの時代にさかのぼると、一部の IPS がモデム機能用の代替 dll を持っているという問題に遭遇しました。問題は、IPS プログラムをアンインストールするまで、dll が正当なプログラムのモデムへのアクセスを妨げていたことです。
これと同じ手法を使用して Windows CUPS サーバーを作成することができます。Windows のスプールと印刷の代替プログラムを作成します。このプログラムは、プリンターに直接印刷するのではなく、印刷タスクを CUPS サーバーに渡します。
もちろん、Windows のスプーリングと印刷のプロトコルについて深い知識を持つ人が必要です。