印刷

最終公開日 : Nov 13, 2026
この記事では、印刷のベストプラクティスに関する情報を提供します。

インストール

Linux VDAには、cupsフィルターとfoomaticフィルターの両方が必要です。これらのフィルターは、VDAのインストール時にインストールされます。ディストリビューションに基づいて、フィルターを手動でインストールすることもできます。例:
RHEL 7の場合:
sudo yum –y install cups

sudo yum -y install foomatic-filters

構成

Citrixが提供するユニバーサルプリンタードライバーには、3種類(postscript、pcl5、pcl6)あります。ただし、ユニバーサルプリンタードライバーがクライアントプリンターと互換性がない場合があります。この場合、以前のリリースでは、~/.CtxlpProfile$CLIENT_NAME構成ファイルを編集するしかありませんでした。バージョン1906以降では、代わりにCitrix Studioでプリンタードライバーのマッピングと互換性ポリシーを構成することを選択できます。
Citrix Studioでプリンタードライバーのマッピングと互換性ポリシーを構成するには:
  1. プリンタードライバーのマッピングと互換性ポリシーを選択します。
  2. 「追加」をクリックします。
  3. ドライバー名にクライアントプリンターのドライバー名を入力します。Citrix Workspace™ app for Linuxを使用している場合は、代わりにプリンター名を入力します。
    4\. 次で置き換えるを選択し、VDA上のドライバーファイルの絶対パスを入力します。
    プリンタードライバーのマッピングと互換性ポリシーの画像
注:
  • PPDドライバーファイルのみがサポートされています。
  • プリンタードライバーのマッピングと互換性ポリシーのその他のオプションはサポートされていません。次で置き換えるのみが有効になります。

使用方法

公開デスクトップと公開アプリケーションの両方から印刷できます。クライアント側のデフォルトプリンターのみがLinux VDAセッションにマップされます。プリンター名はデスクトップとアプリケーションで異なります。
  • 公開デスクトップの場合:
    CitrixUniversalPrinter:$CLIENT_NAME:dsk$SESSION_ID
  • 公開アプリケーションの場合:
    CitrixUniversalPrinter:$CLIENT_NAME:app$SESSION_ID
注:
同じユーザーが公開デスクトップと公開アプリケーションの両方を開いた場合、両方のプリンターがセッションで利用可能です。公開アプリケーションセッションでデスクトッププリンターに印刷したり、公開デスクトップでアプリケーションプリンターに印刷したりすると失敗します。

トラブルシューティング

印刷できない

印刷が正しく機能しない場合は、印刷デーモンであるctxlpmngtとCUPSフレームワークを確認してください。
印刷デーモンであるctxlpmngtはセッションごとのプロセスであり、セッションの期間中実行されている必要があります。次のコマンドを実行して、印刷デーモンが実行されていることを確認します。ctxlpmngtが実行されていない場合は、コマンドラインからctxlpmngtを手動で開始します。
ps –ef | grep ctxlpmngt
それでも印刷が機能しない場合は、CUPSフレームワークを確認してください。ctxcupsサービスはプリンター管理に使用され、Linux CUPSフレームワークと通信します。これはマシンごとに1つのプロセスであり、次のコマンドを実行して確認できます。
service ctxcups status

CUPSログを収集するための追加手順

CUPSログを収集するには、次のコマンドを実行してCUPSサービスファイルを構成します。そうしないと、CUPSログはhdx.logに記録されません。
sudo service cups stop

sudo vi /etc/systemd/system/printer.target.wants/cups.service

PrivateTmp=false

sudo service cups start

sudo systemctl daemon-reload
注:
この構成は、問題が発生したときに完全な印刷ログを収集するためだけに作成されます。通常の状況では、CUPSのセキュリティを破るため、この構成は推奨されません。

印刷出力が文字化けする

互換性のないプリンタードライバーは、文字化けした出力を引き起こす可能性があります。ユーザーごとのドライバー構成が利用可能であり、~/.CtxlpProfile$CLIENT\_NAME構成ファイルを編集することで構成できます。
[DEFAULT_PRINTER]

printername=

model=

ppdpath=

drivertype=
重要:
printernameは、現在のクライアント側のデフォルトプリンターの名前を含むフィールドです。これは読み取り専用の値です。編集しないでください。
ppdpath、model、およびdrivertypeの各フィールドは、マップされたプリンターに対して1つだけが有効になるため、同時に設定することはできません。
  • ユニバーサルプリンタードライバーがクライアントプリンターと互換性がない場合は、model=オプションを使用してネイティブプリンタードライバーのモデルを構成します。lpinfoコマンドを使用して、プリンターの現在のモデル名を見つけることができます。
    lpinfo –m

    …

    xerox/ph3115.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0

    xerox/ph3115fr.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0
    xerox/ph3115pt.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0
    その後、プリンターに合わせてモデルを設定できます。
    model=xerox/ph3115.ppd.gz
  • ユニバーサルプリンタードライバーがクライアントプリンターと互換性がない場合は、ネイティブプリンタードライバーのPPDファイルパスを構成します。ppdpathの値は、ネイティブプリンタードライバーファイルの絶対パスです。
    例えば、/home/tester/NATIVE\_PRINTER\_DRIVER.ppd の下に ppd ドライバーがあります。
    ppdpath=/home/tester/NATIVE_PRINTER_DRIVER.ppd
  • Citrix が提供するユニバーサルプリンタードライバーには3種類あります (postscript、pcl5、および pcl6)。プリンターのプロパティに基づいて、ドライバーの種類を構成できます。
    例えば、クライアントのデフォルトプリンタードライバーの種類が PCL5 の場合、drivertype を次のように設定します。
    drivertype=pcl5

出力サイズがゼロ

異なる種類のプリンターを試してください。また、CutePDF や PDFCreator のような仮想プリンターを試して、この問題がプリンタードライバーに関連しているかどうかを確認してください。
印刷ジョブは、クライアントのデフォルトプリンターのプリンタードライバーに依存します。現在アクティブなドライバーの種類を特定することが重要です。クライアントプリンターが PCL5 ドライバーを使用しているにもかかわらず、Linux VDA が Postscript ドライバーを選択した場合、問題が発生する可能性があります。
プリンタードライバーの種類が正しい場合は、次の手順を実行して問題を特定できます。
  1. 公開デスクトップセッションにログオンします。
  2. vi ~/.CtxlpProfile$CLIENT\_NAME コマンドを実行します。
  3. 次のフィールドを追加して、Linux VDA にスプールファイルを保存します。
    deletespoolfile=no
  4. ログオフして再度ログオンし、構成の変更をロードします。
  5. 問題を再現するためにドキュメントを印刷します。印刷後、スプールファイルは /var/spool/cups-ctx/$logon\_user/$spool\_file の下に保存されます。
  6. スプールが空かどうかを確認します。スプールファイルがゼロの場合、それは問題を示しています。詳細なガイダンスについては、Citrixサポートに連絡してください(印刷ログを提供してください)。
  7. スプールサイズがゼロでない場合は、ファイルをクライアントにコピーします。スプールファイルの内容は、クライアントのデフォルトプリンターのプリンタードライバーの種類に依存します。マップされたプリンター(ネイティブ)ドライバーがPostscriptの場合、スプールファイルはLinux OSで直接開くことができます。内容が正しいかどうかを確認します。
    スプールファイルが PCL の場合、またはクライアント OS が Windows の場合は、スプールファイルをクライアントにコピーし、別のプリンタードライバーを使用してクライアント側のプリンターで印刷します。
  8. マップされたプリンターを別のプリンタードライバーを使用するように変更します。次の例では、postscriptクライアントプリンターを例として使用します。
    1. アクティブなセッションにログオンし、クライアントデスクトップでブラウザーを開きます。
    2. 印刷管理ポータルを開きます。
      localhost:631
    3. マップされたプリンター CitrixUniversalPrinter:$ClientName:app/dsk$SESSION\_ID を選択し、プリンターの変更を選択します。この操作には管理者権限が必要です。
    4. cups-ctx接続を保持し、続行をクリックしてプリンタードライバーを変更します。
    5. 製造元およびモデルフィールドで、Citrix UPDドライバーとは異なるプリンタードライバーを選択します。たとえば、CUPS-PDF仮想プリンターがインストールされている場合は、Generic CUPS-PDF Printerドライバーを選択します。変更を保存します。
    6. このプロセスが成功した場合は、マップされたプリンターが新しく選択されたドライバーを使用できるように、.CtxlpProfile$CLIENT\_NAME でドライバーのPPDファイルパスを構成します。

既知の問題

Linux VDAでの印刷中に、次の問題が特定されています。

CTXPSドライバーは一部のPLCプリンターと互換性がありません

印刷出力の破損が発生した場合は、プリンタードライバーを製造元が提供するネイティブドライバーに設定してください。

大きなドキュメントの印刷パフォーマンスの低下

ローカルクライアントプリンターで大きなドキュメントを印刷すると、ドキュメントはサーバー接続経由で転送されます。低速な接続では、転送に時間がかかることがあります。

他のセッションから表示されるプリンターと印刷ジョブの通知

Linuxには、Windowsオペレーティングシステムのようなセッションの概念がありません。そのため、すべてのユーザーがシステム全体の通知を受け取ります。これらの通知は、CUPS構成ファイル /etc/cups/cupsd.conf を変更することで無効にできます。
ファイルに構成されている現在のポリシー名を見つけます。
DefaultPolicy default
ポリシー名が default の場合、以下の行をデフォルトポリシーのXMLブロックに追加します。
<Policy default>

     # Job/subscription privacy...

     JobPrivateAccess default

     JobPrivateValues default

     SubscriptionPrivateAccess default

     SubscriptionPrivateValues default

     … …

     <Limit Create-Printer-Subscription>

          Require user @OWNER

          Order deny,allow

     </Limit>

     <Limit All>

          Order deny,allow

     </Limit>

</Policy>