使用 .NET Interop 在 Adob​​e Reader 9 中以编程方式打印

2023-12-03

我正在使用 VB.Net WinForms。我想调用 Adob​​e Reader 9 ActiveX 控件来打印一些 PDF。我已经将ActiveX控件添加到VS工具箱中(dll是AcroPDF.dll,COM名称“Adobe PDF Reader”。经过一些实验,以下代码有效。

Dim files As String() = Directory.GetFiles(TextBoxPath.Text, "*.pdf", SearchOption.TopDirectoryOnly)

Using ActiveXPDF As New AxAcroPDFLib.AxAcroPDF

    Me.Controls.Add(ActiveXPDF)
    ActiveXPDF.Hide()

    For Each filename As String In files

        ActiveXPDF.LoadFile(filename)
        ActiveXPDF.printAll()

        'Begin Yukky Hack    '


        Dim endTime As Date = DateAdd(DateInterval.Second, 20, Now)
        Do While Now < endTime
            My.Application.DoEvents()
        Loop

        'End Yuk   '

    Next

End Using

如果没有 Yuk 位,这只会打印一些 PDF,看来 End using 语句在完成打印之前正在调用控件上的 dispose。

因此,对 printAll 的调用似乎是非阻塞的,但我找不到可以查询以查看打印假脱机是否已完成的回调或状态属性。我缺少一个属性/方法,或者是否有更优雅(且响应更快)的解决方法?


使用此方法打印多个文档的效果并不像您所发现的那样好。

让它工作是相当棘手的,但这里是解决方案的一般描述。

我使用 System.Diagnostics.Process 使用 myProcess.StartInfo.Verb = "Print" 进行打印 然后,我分两步检查打印机队列的状态和状态,以确保打印已准备就绪,可以打印下一个文档。使用 WMI 和 ManagementObjectSearcher 通过“SELECT * FROM Win32_Printer”枚举打印机信息。 逻辑是,我尝试在继续打印下一个之前查看假脱机是否已启动。

See http://msdn.microsoft.com/en-us/library/aa394363.aspx对于 Win32_Printer WMI 类。

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

使用 .NET Interop 在 Adob​​e Reader 9 中以编程方式打印 的相关文章

  • 如何在c#中生成8字节GUID值? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 GUID 生成 8 字节唯一 ID https stackoverflow com questions 5678177 how to generate 8 bytes unique id fr
  • C# 转换为小数

    如果有的话 有什么区别 decimal d decimal myDouble decimal d new decimal myDouble decimal d Convert ToDecimal myDouble 没有区别 如果你看一下源码
  • 如何将 Integer8 值转换为 DateTime?

    如何将 Integer8 类型值转换为 DateTime 类型值 特别是 我正在尝试获得帐户过期采用人类可读形式的 Active Directory 用户属性 SearchResult GetDirectoryEntry Propertie
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 对于 HTTPS,Request.UrlReferrer 为 NULL

    我在用 Request UrlReferrer AbsoluteUri 在我的项目中获取托管我的应用程序的 URL 如果我从 http 主机重定向 我可以获得 URL 但如果我从 https 主机重定向 我将得到 null 我怎样才能得到
  • 是否可以修改 PDF 表单字段名称?

    情况是这样的 我有一个 PDF 其中包含自动生成的 pdf 表单字段名称 问题是这些名称不太用户友好 它们看起来像 topmostSubform 0 Page1 0 Website Address 0 我希望能够更改它们 使它们类似于 We
  • 如何检查 FTP 目录是否存在

    寻找通过 FTP 检查给定目录的最佳方法 目前我有以下代码 private bool FtpDirectoryExists string directory string username string password try var r
  • .Net 中是否有与 HTML 等效的 XmlReader?

    我用过Html敏捷包 http html agility pack net z codeplex过去在 Net 中解析 HTML 但我不喜欢它只使用 DOM 模型 在大型文档和 或具有大量嵌套的文档上 可能会遇到堆栈溢出或内存不足异常 另外
  • 为什么在为 Silverlight 5 应用程序添加编码 UI 支持时 System.Core 无法加载?

    我遇到以下问题 尝试添加对为 Silverlight 5 应用程序创建编码 UI 测试的支持 MSDN 1 第一步是在 Silverlight 5 项目中引用程序集 Microsoft VisualStudio TestTools UITe
  • 从特定 IP 地址发送 SOAP 请求

    我有一个具有多个 IP 地址的系统 但我只能从一个 IP 地址发起 SOAP 请求 我如何在 VB NET 中获得它 我从来没有这样做过 看起来很复杂 首先 阅读自定义 ASMX 客户端代理的方法 http johnwsaunders3 w
  • 如何在没有互联网连接的情况下安装 NuGet 包?

    目前我正在一台不允许访问互联网的虚拟电脑上进行开发 我设法获取 NuGet Tools vsix 将 NuGet 添加到 Visual Studio 2010 但似乎无法找出如何离线部署 NuGet 包 例如 我下载了EntityFrame
  • 设置表单的背景颜色

    Private Sub HScrollBar1 Scroll ByVal sender As Object ByVal e As ScrollEventArgs Handles HScrollBar1 Scroll Me BackColor
  • 将 Xml 反序列化为对象时出错 - xmlns='' 不是预期的

    我在尝试反序列化某些 XML 时遇到了真正的麻烦 希望有人可以提供一些帮助 我读过很多类似的帖子 但我无法解决这个问题 我正在尝试反序列化 XML
  • 如何在Web网格的列中编写IF条件

    我在 WEB GRID 列中创建 if 条件时遇到错误 所以 请帮助改进我的代码并解决我的问题 grid Column Status format item gt
  • 如何在 sql server 中加密数据并在 .net 应用程序中解密

    我想加密 sql server 中的一些密码并让 c 应用程序解密它们 显然 我可以创建一个 SP 来解密所需的密码并将其传递给 c 应用程序 但这意味着通过网络发送明文密码 因此 我希望能够在 sql server 中加密我的密码 使用密
  • 从 .net 应用程序登录 OpenID 站点

    我一直在考虑编写一个小工具来登录 SO 并定期使用一些主题 当前信息更新我的个人资料信息 例如我最新的博客文章或我需要帮助的问题等 为了让它工作 我需要以某种方式从控制台应用程序登录到SO 是否有一个 Net 库可以简化使用原始 http
  • 需要从 DCOM 配置中删除对象 (DCOMCNFG)

    我们有一个带有 activex exe 和 com dll 的应用程序 安装后 我们会在 DCOM 配置中创建一个对象 如果我们尝试从 DCOM 配置中删除该对象 它就会关闭 直到我们再次重新打开它 想知道是否有任何程序可以从 DCOM 及
  • 如何转义 HTML 字符?在.NET中-->“

    如何在 NET 中转义 HTML 字符 我正在从 json 字符串中获取 html 并在标题中得到 amp quot more text 看起来我需要做两次才能得到 amp quot 成为 quot 那么它就是一个 如何转义 NET 中的所
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编

随机推荐

  • Android 中的线程处理长时间运行的进程

    好吧 这是我的问题 我想学习 AsyncTask Threading 和 Handler 来处理长时间运行的任务 我使用了 Android Cook Book 和 New Boston Android 教程 但我无法使其工作 我需要更改进度
  • 使用动态 ID 选择 Multiple SelectManyCheckBox 中的所有项目

    我想使用 JSF 顶部的 PrimeFaces 组件来选择某些复选框组中的所有复选框 我的代码是这样的
  • 获取 RecyclerView 中的可见项

    我需要知道哪些元素当前显示在我的 RecyclerView 中 没有相当于OnScrollListener onScroll ListView 上的方法 我尝试与View getGlobalVisibleRect 但是这个 hack 太丑陋
  • 以编程方式登录站点

    这可能听起来很愚蠢 但是我们可以通过传递用户凭据 用户 ID 和密码 以编程方式登录 Linkedin 等网站吗 我不是在谈论使用 OAuth 或其他机制 Edit 您可以使用脚本以这种方式登录许多站点 我通常更喜欢使用 Beautiful
  • UITextView - 设置字体不适用于 XCode 5 上的 iOS 6

    我正在为我的用户界面使用故事板 我之前使用的是 XCode 4 6 并在 iOS 6 上发布 此后我使用 XCode 5 更新到 iOS 7 并更新了 Storyboard 以与 XCode 5 很好地配合 但我有一个问题 UITextVi
  • 在 React 的 useEffect() 中获取数据返回“未定义”

    我正在尝试从数据库中获取数据 这是一个获取请求 只要我在异步函数中使用获取的数据 一切都可以正常工作 但除此之外 它只是返回 未定义 我究竟做错了什么 感谢您的帮助 const accountInfos setAccountInfos us
  • 创建一个新文件,文件名包含循环变量,python [重复]

    这个问题在这里已经有答案了 我想在循环上运行一个函数 并且想将输出存储在不同的文件中 以便文件名包含循环变量 这是一个例子 for i in xrange 10 f open file i dat w f write str func i
  • Chrome 和 CSS 属性选择器

    我有以下 HTML 代码 我想用 css 格式化无法更改的数据格式 来自 xml 我必须为具有不同属性值的元素赋予不同的样式 我想使用 CSS 属性选择器 body background color black s text decorat
  • 如何在 Grails 脚本中访问服务?

    关于 create script run script 的文档很少 所以我想知道是否可以在 grails 脚本中注入 使用域类 在普通的 Grails 类中 我可以注入如下服务 定义我的服务 但我不确定 grails 脚本中的位置 要在脚本
  • jQuery,如何在 .load() 之后重新绑定 html 元素

    我有一个 html 组件 单击按钮后将重新加载该组件 组件的某些元素绑定到单击和悬停处理程序 一切工作正常 直到 load 调用函数来重新加载组件 加载组件的元素未绑定到相应的处理程序 此时 我将 js 脚本放在组件的末尾 以便它绑定元素
  • Flask 中的一对一关系

    我正在尝试使用 SqlAlchemy 在 Flask 中创建一对一关系 我按照之前的post我创建了如下类 class Image db Model tablename image image id db Column db Integer
  • 使用 writeAttribute() 方法使用 XMLWriter 进行 php XML 导出问题

    我正在将表数据导出到 xml 中 其中在内容列中包含多语言内容并混合了 html 例如 xmlWriter gt writeAttribute value contents record name testing contents Just
  • JsFiddle 上的鼠标事件不起作用?

    我的小提琴在这里 但我不明白为什么它没有在 onmouseout 事件上调用我的函数 http jsfiddle net foreyez Xf6LW 有任何想法吗 工作正常 您只需将函数放在文档的头部 或元素位于 DOM 中之后的主体中 即
  • 如何使用 Telethon bot API 获取频道实体?

    我无法使用 Telethon Bot 获取对话框 因为该方法仅适用于客户端 因此 当我尝试使用其 id 访问实体时 我收到错误 如果我无法解析所有通道并且无法通过 id 访问它们 我该如何访问实体 通道 我想解析来自私人群组的消息并使用 T
  • Tensorflow和OpenCV实时分类

    我正在测试机器学习水域并使用TS成立模型来重新训练网络以对我想要的对象进行分类 最初 我的预测是在本地存储的图像上运行的 我意识到从文件中取消持久化图形需要 2 5 秒的时间 并且大约在同一时间运行实际的预测 此后 我调整了我的代码以合并来
  • CreateProcess 立即返回,但前提是启动的进程被隐藏

    我有下面的 Delphi 代码来为 CreateProcess API 调用提供一个友好的包装器 function StartProcess ExeName string CmdLineArgs string ShowWindow bool
  • Apache Spark 处理 case 语句

    我正在处理将 SQL 代码转换为 PySpark 代码的过程 并遇到了一些 SQL 语句 我不知道如何处理 pyspark 中的案例陈述 我计划创建一个 RDD 然后使用 rdd map 然后进行一些逻辑检查 这是正确的做法吗 请帮忙 基本
  • 非常简单的 html 的意外边距

    我有一个非常简单的html 红色 div 位于蓝色 div 内部 并且上边距为 10 像素 在非 ie 浏览器上 蓝色框距离视口顶部 10 px 红色 div 位于蓝色 div 的最顶部 我期望的是 ie 行为 红色 div 必须距蓝色 d
  • Visual Studio 2012支持哪个XP版本[作为目标操作系统]

    Visual Studio 2012 支持哪个版本的 Windows XP 编辑 VS12支持编译到哪个版本 我找到了这篇文章 http blogs msdn com b vcblog archive 2012 10 08 windows
  • 使用 .NET Interop 在 Adob​​e Reader 9 中以编程方式打印

    我正在使用 VB Net WinForms 我想调用 Adob e Reader 9 ActiveX 控件来打印一些 PDF 我已经将ActiveX控件添加到VS工具箱中 dll是AcroPDF dll COM名称 Adobe PDF Re