2012-02-14 8 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でデバッガを実行しています)

関連する問題