2017-12-14 4 views
0

プリンタ名の文字列を受け取ったsvcがあります。winspool.Drv-WritePrinterで印刷すると、正しいページではなくシンボルで数百のページが印刷されます

私は、PDFに

https://vishalsbsinha.wordpress.com/2014/05/06/how-to-programmatically-c-net-print-a-pdf-file-directly-to-the-printer/

を印刷するには、このようなコードを使用していますし、それは私のコンピュータ/プリンタで完璧に動作します。しかし、私がパブリッシュしてサーバーにデプロイするとき、サービスを使用すると、予想される1ページのpdfではなく、数百ページのシンボルがシンボルで埋められるようになります。サーバーにはAdobe Acrobatがインストールされていません(インストールすることもできません)ので、 'new Process() - > Verb = "PrintTo"のような別の方法は使用できません。

pdfフォントはCalibriとArialで、私のチームとサーバーの両方にインストールされています。

なぜ誰かが間違った方法で印刷するのか、どのような選択肢がありますか教えていただけますか?

プリンタのモデルがある:RICOH AFICIO MP C4501 PCL 6

+1

Postscript自体を理解できるプリンタが必要です。印刷言語としてPCLを使用する人はいません。 –

答えて

1

あなたの解決策は、プリンタがネイティブPDFファイルを処理することを必要とし、多くのプリンタは、PDFをサポートしていません。プリンタドライバはWindows GDIからプリンタのネイティブ形式に変換しますが、WritePrinterを使用してプリンタドライバをバイパスしています。 PDFをサポートする別の用紙プリンタを使用するか、WritePrinterの代わりにプリンタドライバを使用してファイルをプリンタに送信する必要があります。

関連する問題