2017-05-12 14 views
0

私のwebshopでは、納品書をpdfファイルとしてダウンロードできます。私は "プリント"フォルダを監視するFileSystemWatcherを使用している.netサービスを構築しました。サービスは、.pdf.zplのすべてのファイルをフォルダ内で処理します。ZebraプリンタへのPDFの印刷(420d)

すべて.zplファイルは、RawPrinterHelperクラスを使用しているWindowsドライバを使用して直接開かれ、Zebra 420dプリンタに書き込まれます。それは期待どおりに動作します!

私の問題は.pdfファイルです。 Windows 10のブラウザからZebra 420dプリンタに手動でファイルを印刷すると、正常に動作します。しかし、サービスから印刷しようとすると、ラベルのサイズは非常に小さくなります。内容が収縮したようです。

public static bool PrintPdf(string filepath, string printerName) 
    { 
     try 
     { 
      var doc = new PdfDocument(); 
      doc.LoadFromFile(filepath); 
      doc.PrinterName = printerName; 
      doc.PrintDocument.Print(); 
      doc.Dispose(); 

      return true; 
     } 
     catch (Exception ex) 
     { 
      // More code ... 
     } 
    } 

PDFをPNG/SVGからZPLに変換するためにさまざまな方法で試してみましたが、うまくいきませんでした。

C#を使用して、ラベルをPDF形式でZebra 420dプリンタに印刷するにはどうすればよいですか?

編集:PDFをBMPに変換してからGRF(Zebrasの母国語)にも変換しようとしました。まだ動かない。私が得るのは空白のページだけです。

+0

まさに私が考えたもの、ZPLが何であるかを知っている多くはない:) – Dandy

答えて

0

私はそれを解決しました!

私は変換を一切必要としませんでした。私は、プリンタドライバの設定を再インストールして調整し、新しい設定で動作するようにコードを修正するだけでした。

これが私の最後のコードです:

public static bool Print(string filepath, string printerName) 
    { 
     try 
     { 
      var doc = new PdfDocument(); 
      doc.LoadFromFile(filepath); 
      doc.PrinterName = printerName; 

      var psize = new PaperSize("Custom Paper Size", 417, 1007); 
      doc.PrintDocument.DefaultPageSettings.PaperSize = psize; 
      doc.PageSettings.Rotate = PdfPageRotateAngle.RotateAngle180; 

      doc.PrintDocument.Print(); 
      doc.Dispose(); 

      return true; 
     } 
     catch (Exception ex) 
     { 
      // More code ... 
     } 
    } 
+0

このコードを実行するために必要な 'using'sは何ですか? – Goose

+0

あなたは実際に使用しているライブラリについてもう少し詳しいことを教えてください。 –