首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF在大多数情况下不会打印

WPF在大多数情况下不会打印
EN

Stack Overflow用户
提问于 2012-02-15 01:11:31
回答 1查看 223关注 0票数 1

我是一个WPF的初学者,我有这个打印的问题。我使用以下代码:

代码语言:javascript
复制
    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次打印,打印结果与预期完全相同。

除此之外,打印机工作正常。

我花了很多时间试图理解这一点,但我还没有看到任何人有同样的问题。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-02-15 22:42:09

我已经找到了这种行为的原因。

这是由于程序为了以管理员身份自动执行而使用的清单造成的。我不记得我是从哪里得到它的,但它是这样的:

代码语言:javascript
复制
<?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>

我确信这就是导致它的原因,我已经做了不同的测试项目。只要我在项目属性中删除清单(在Application下),打印就会按预期进行。

但是仍然需要以管理员身份执行程序。

有没有人有这方面的经验?

(我在windows 7下运行调试器)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9281151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档