拦截 PrintDialog 到 XPS Document Writer

2024-01-12

目前我为用户提供两个控件:保存和打印。当用户选择“保存”时,WPF 显示的一个区域将被打包并通过 XpsDocumentWriter 发送,并且提示并鼓励用户签署新的 xps 文档。当用户选择“打印”时,PrintDialog.PrintVisual 会将同一区域打印到用户选择的打印机。

一切都很好,只是 Microsoft XPS Document Writer 是打印机的选择之一。有没有办法阻止或拦截用户对 XPS 文档编写器的选择并将其发送到 Save 方法,以便我可以提示用户签署 XPS 文档?


免责声明: 我没用过PrintDialog之前,但看起来像这样可能有效:

System.Windows.Controls.PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == true)
{
    PrintQueue selectedQueue = printDialog.PrintQueue;
    if (selectedQueue.Name == "Microsoft XPS Document Writer")
    {
        // Run your XPS save & sign code
    }
    else
    {
        // Run your printDialog.PrintVisual() code
    }
}

我真的不喜欢对打印机名称进行硬编码(我认为它随语言设置而变化)。可能有更好的属性PrintQueue http://msdn.microsoft.com/en-us/library/system.printing.printqueue.aspx您可以用它来识别这台打印机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拦截 PrintDialog 到 XPS Document Writer 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • 如何创建自定义导航抽屉,打开与抽屉 onitemclick 相邻的 ListView?

    我创建了简单的导航抽屉 但是当我遇到如图所示的导航抽屉时 我被卡住了 我不知道如何实现这种功能 在此图像中 城市 是导航抽屉的项目 当我单击城市时 它会打开与其相邻的列表 这是完整的代码 因为我不知道细节 它可能无法真正满足您的要求 首先我
  • VBA 打开 Excel 文件

    我正在尝试使用 VBA 打开 Excel 文件文件夹中的 Excel 文件 我指示我的代码将最终用户直接带到该文件夹 并允许他从对话框中选择文件 但即使从对话框中选择文件后 我也无法打开该文件 我对问题的理解是 我错过了选择文件后打开文件的
  • 内联命名空间可以用来保持共享库的向后兼容性吗?

    C 内联命名空间的基本原理是源代码和二进制兼容性 请参阅 Herb Sutter 的论文 链接为N2535 http www open std org jtc1 sc22 wg21 docs papers 2008 n2535 htm 但我
  • 响应 json 时禁用“Cookie”标头

    我想在以 json 形式响应时禁用 删除 Cookie 标头 其实我可以设置Config set session driver array 使用 Laravel 4 2 进行过滤 如果我在 L5 版本 5 0 5 中执行此操作 我会在日志文
  • 使用 .NET Core 在 Mac OSX 上进行 Office (Excel) COM 互操作?

    我所在的团队目前专门使用 C NET 创建 Windows 桌面应用程序 这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例进行交互 我目前负责指定一个新产品 但我被告知 除非该应用程
  • 使用 C# 编码的具有 https 支持的 http 侦听器

    我找到了很多如何设置 httplistener 以使用 HTTPS 的答案 但每个解决方案都需要使用命令行 我想这是最快的方法 但我想编写 C 类来处理这个问题 在旧的解决方案中 我使用了网络服务器类 在互联网上的某个地方找到 我不记得确切
  • 在 C++ 中使用 gsl 时如何避免静态成员函数

    我想在 C 类中使用 GSL 而不将成员函数声明为static 这样做的原因是因为我对它们不太了解 对线程安全也不太确定 从我读到的来看 std function可能是一个解决方案 但我不确定如何使用它 我的问题归结为如何删除static在
  • JBoss 6:将 EJB 注入 servlet

    Folks 每次新版本的 JBoss 推出时 我都必须重新学习并浪费时间在这些东西上 这让我非常恼火 我有一个在 JNDI 空间中发现并声明的无状态 EJB 10 01 53 044 INFO org jboss ejb3 proxy im
  • AWS Cognito 用户池 - 只读客户端

    标题中已经说明了问题 有没有办法为 Amazon Cognito 用户池创建仅具有读取权限的应用程序客户端 这有点奇怪 但是当我取消选中 可写属性 部分中的所有框 用户池 gt 常规设置 gt 添加另一个应用程序客户端 时 它会返回以下警告
  • 驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Selenium 错误

    我有一个令人恼火的 Selenium 错误 驱动程序可执行文件的路径必须由 webdriver chrome driver 系统属性设置 这是我正在使用的代码 Environment SetEnvironmentVariable webdr
  • Perl后台进程

    我正在尝试在 perl 中运行后台进程 我创建了一个子进程 用于调用另一个 perl 脚本 我想与这个子进程并行运行几行代码 子进程完成后 我想打印一行代码 主要脚本 usr bin perl 1 print before the chil
  • 考虑中心的顺序,重新标记 kmean 结果中的样本

    我正在使用 kmeans 来聚类我的数据 对于生成的结果我有一个计划 我想根据订购的中心重新标记样本 考虑以下示例 a c a b c d e F i j k l m n b c 1 2 3 20 21 21 40 41 42 4 23 5
  • 循环字符串时向字典添加多个值

    对Python 3仍然是超级新手 并且遇到了问题 我正在尝试创建一个函数 它返回一个字典 其中键是每个单词的长度 值是字符串中的单词 例如 如果我的字符串是 狗快速向前跑到公园 我的字典应该返回 2 to 3 The run the 4 d
  • 如何使用 Xcode 11 从命令行上传到 App Store?

    以前 在 Xcode 10 中 我们使用altool上传到App Store ALTOOL Applications Xcode app Contents Applications Application Loader app Conten
  • PHP array_filter 从数组中仅获取一个值[重复]

    这个问题在这里已经有答案了 我试图排除 foreach 循环并使用数组函数重构它们 我假设下面的代码会给我一个包含源数组中所有第一项的结果
  • 相关控制器中的 NSToolbarItem 验证

    我有一个 NSToolbarItem 其视图为 NSButton 主菜单中有一个 NSMenuItem 两者具有相同的操作 该操作被发送到第一响应者 而不是特定目标 该方法最终在 NSSplitViewController 的子类中实现 位
  • 删除 3D 图中的轴边距

    我花了几天时间试图找到一种方法来消除 3D 图中轴上的微小边距 我试过ax margins 0 and ax autoscale view tight 和其他方法 但这些微小的利润仍然存在 特别是 我不喜欢条形直方图升高 即它们的底部不在零
  • 使用 R 从 Microsoft Azure 读取 csv 文件

    我最近开始使用 databricks 和 azure 我有微软天蓝色存储资源管理器 我在 databricks 上运行了一个 jar 程序 它在路径中的 azure storgae explorer 中输出许多 csv 文件 myfolde
  • Ninject,在ninject初始化的RegisterServices中注入Membership.Provider

    有人知道如何在ninject初始化代码的RegisterServices中配置Membership Provider吗 在我的代码中
  • 拦截 PrintDialog 到 XPS Document Writer

    目前我为用户提供两个控件 保存和打印 当用户选择 保存 时 WPF 显示的一个区域将被打包并通过 XpsDocumentWriter 发送 并且提示并鼓励用户签署新的 xps 文档 当用户选择 打印 时 PrintDialog PrintV