2014-10-29 3 views
0

PrintDialog를 사용하여 직접 XPS 파일을 프린터로 인쇄하려고합니다. 그러나 인쇄 결과는 원본 XPS와 다릅니다. XPS의 단어가 누락되어 인쇄 결과에 텍스트가 표시되지 않습니다.인쇄 결과가 원래 XPS 파일과 일치하지 않습니다.

PrintTicket에서 일부 변경을 시도했지만 올바른 인쇄물을 얻을 수 없습니다.

올바른 인쇄 결과를 얻으려면 printdialog를 어떻게 설정해야합니까? 아니면 WPF 프로젝트에서 인쇄를 수행하는 다른 방법이 있습니까?

샘플 코드. 원래 XPS

인쇄 결과의 일부

public void Print() 
    { 
     string fileName = "D:\\PAM\\in.xps"; 

     XpsDocument xpsFile = new XpsDocument(fileName, FileAccess.ReadWrite); 

     PrintDialog printDialog = new PrintDialog(); 
     printDialog.ShowDialog(); 
     printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape; 
     printDialog.PrintTicket.OutputQuality = System.Printing.OutputQuality.High; 
     printDialog.PrintTicket.OutputColor = System.Printing.OutputColor.Color; 
     printDialog.PrintDocument(xpsFile.GetFixedDocumentSequence().DocumentPaginator, ""); 

     xpsFile.Close(); 

    } 

스크린 샷

답변

0

확실하지 사용자가 실제로 존재하는 경우 -하지만, XPS 파일을 인쇄이 질문에 우연히 사람들을 위해 일반적으로 할 것 XpsDocumentWriter를 사용하여 모든 프린터가 다른과 디버그 문제와 프린터의 제조업체에 문의해야 할 수 있음을

How to: Programmatically Print XPS Files

참고. 내가 발견 한 것은 모든 프린터가 XPS 문서 인쇄를 지원하는 것은 아닙니다.

PCL 인쇄 드라이버가 설치된 Xerox 프린터에서 흥미로운 한 가지 경우로 인쇄했습니다. 내가 PrintDialog.PrintQueue.IsXps을 보았을 때 나는 그것이 거짓과 동등하다는 것을 알았다. 그런 다음 프린터 용 특정 XPS 프린터 드라이버가 있음을 알게되었습니다. 해당 프린터를 프린터 목록에 추가 한 드라이버를 설치하고 해당 드라이버를 사용하여 인쇄했으며 IsXps은 true였습니다. 이것은 프린터 세계에서 많은 어려움 중 하나입니다.