2017-05-12 37 views
0

내 webshop에서 pdip 파일로 배송 용지를 다운로드 할 수 있습니다. 내 "인쇄"폴더를 모니터링하는 FileSystemWatcher을 사용하는 .net 서비스를 구축했습니다. 이 서비스는 폴더 내에있는 .pdf.zpl 개의 파일을 모두 처리합니다.Zebra 프린터로 PDF lables 인쇄 (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 ... 
     } 
    } 

나는 밤새 인터넷 검색 및 PNG/ZPL에 SVG로 PDF를 변환하는 다양한 방법을 시도했지만 비는 일했다.

C#을 사용하여 Zebra 420d 프린터에 PDF 형식의 레이블을 인쇄하려면 어떻게합니까?

편집 : 또한 PDF를 BMP로 변환 한 다음 GRF (얼룩말 자국어)로 변환하려고 시도했습니다. 그래도 작동이 안되는. 내가 얻는 것은 빈 페이지뿐입니다.

+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

사용중인 라이브러리에 대해 더 자세히 설명해 주시겠습니까? –