2012-02-14 2 views
1

저는 WPF의 초보자이며이 인쇄 문제가 있습니다. 다음 코드를 사용합니다 :WPF는 대부분의 시간을 인쇄하지 않습니다.

public static void PrintImageFile(string ImagePath, int ImageCopyCount, PageOrientation ImagePageOrientation = PageOrientation.Unknown, PrintQueue Printer = null, string PrintingName = "") 
    {    
     PrintDialog printDialog = SetPrintDialog(ImageCopyCount, ImagePageOrientation, Printer); 
     BitmapImage imageToPrint = BitmapImageFromPath(ImagePath); 
     PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket); 
     Size size = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight); 
     DrawingVisual drawingVisualToPrint = BitmapImageToDrawingVisual(imageToPrint, size); 

     try 
     { 
      printDialog.PrintVisual(drawingVisualToPrint, PrintingName); 
     } 
     catch (Exception e) 
     { 
      Info("Error in PrintImageFile : " + e.Message); 
     } 
    } 

문제는 대부분의 시간이 인쇄되지 않는다는 것입니다. 이 경우 인쇄 작업이 프린터의 인쇄 작업 목록에 잠깐 표시된 다음 사라집니다. 어떤 종류의 오류 메시지도 없으며 PrintVisual이 실행 된 적이없는 것처럼 프로그램이 작동합니다. 6-7 번 중 약 1 번 인쇄가 예상대로 정확하게 수행됩니다 ...

프린터가 정상적으로 작동합니다.

나는 이것을 이해하려고 많은 시간을 보냈으며 동일한 문제가있는 사람을 보지 못했습니다. 감사합니다. .

+1

drawingVisualToPrint에 내용이 있습니까? 이것은 도달 범위이지만 인쇄 대기열에 인쇄 작업에 아무것도없는 것으로 판단되어 떨어지게되므로/ – Paparazzi

+0

drawingVisualToPrint에 내용이 있습니다. 문제는 아니 었습니다. – user1209585

답변

0

이 문제의 원인을 발견했습니다.

프로그램이 관리자로 자동 실행하기 위해 사용하는 매니페스트 때문에 발생합니다. 나는에서 그것을 가지고 있지만 여기가 어디 기억 할 수 없습니다

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 

     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 

    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 

    </application> 
    </compatibility> 
</asmv1:assembly> 

내가이가, 내가 다른 테스트 프로젝트를 만든 원인이 무엇 확신합니다. 응용 프로그램에서 프로젝트 속성의 매니페스트를 제거하는 즉시 예상대로 인쇄가 수행됩니다.

여전히 관리자 권한으로 프로그램을 실행해야합니다.

이런 종류의 문제에 경험이있는 사람은 누구입니까?

(Windows 7에서 디버거를 실행 중입니다.)

관련 문제