无法使用Adobe Acrobat 5.0 PDFWriter,Windows 10,VB6和Crystal Repor



我希望在我最近"继承"的工作问题上得到一些帮助......我工作的公司提供了我的服务,帮助他们将信息系统应用程序从Windows XP机器迁移到Windows 10机器。该程序的核心组件是在Visual Basic 6,Crystal Reports 8和Adobe Acrobat 5中开发的。我已经知道 99% 的人的答案是"你需要升级"或"你为什么要使用它?! 对于这些人来说,答案很简单,因为我的迫切需求是使用我得到的东西,最终的计划是将所有内容迁移到这些核心组件的较新版本。

我已经进行了一些代码调整,并为其他依赖项找到了其他一些更新的驱动程序,到目前为止,通过初步测试,应用程序似乎按预期运行。

不幸的是,昨天,我遇到了一个重大障碍,即应用程序试图打印到"Adobe PDFWriter"打印机,该打印机似乎没有安装在Windows 10上,即使我以管理员身份安装了Adobe Acrobat 5.0,并在安装过程中选中了"包括PDFWriter文件"选项。

  • 我在打印机列表中找不到打印机。
  • 我在尝试时找不到适用于 Adobe 的任何特定端口或驱动程序 手动添加打印机。
  • 主要的PDFWriter dll,"pdfddui.dll",以及支持dlls, ("pdfdd.dll"、"pdfkd.dll") 在 "Windows\System32\spool\drivers"位置,即它们所在的位置 在工作正常的 Windows XP 机器上找到。
  • 上面提到的主 dll 和支持 dll 确实存在于 "Windows\System32\spool\drivers\x64">
  • 在注册表中搜索主 dll 或支持 dll 时, 未找到任何内容,表明 DLL 无法成功 注册。
  • 尝试使用 "\Windows\SysWoW64\regsvr32.exe" 它失败了。
  • 尝试使用 "\Windows\System32\regsvr32.exe" 它失败。

正在执行的代码执行以下操作:

  • 它基于 窗体中的参数。
  • 它使用晶体报告"选择打印机"功能来指定 打印机.驱动程序名称, 打印机.设备名称, 打印机.端口
  • 它使用水晶报告"打印输出"功能来指定不 提示用户输入任何输入,即"静默打印"。

最终结果,我需要复制的内容,以及我需要社区帮助的是Crystal报告:

  • 静默方式将文件打印为 PDF,无需用户操作。
  • 使用特定文件名打印文件。
  • 将文件打印到特定位置。

我尝试使用Microsoft内置的打印到PDF,并且有效,但是它会提示用户保存文件,它也有错误的默认文件名和位置,并且我认为无法以编程方式从VB6更改它。

我想较新版本的Adobe Acrobat与Visual Basic 6不兼容,此外,当我需要的唯一功能是以编程方式打印为PDF的能力时,Adobe Acrobat的许可证有点昂贵。

任何有用的意见,建议,决议将不胜感激!

为什么不添加一个中间的幕后步骤,将 Crystal Report 导出为 PDF 文件,然后使用ShellExecute或其他方法打印 PDF 文件。

pid = ShellExecute(0&, "print", DocFile, vbNullString, vbNullString, vbNormalFocus)是我用来从 VB6 自动打印 PDF 文件的方法。

如果这不起作用,我使用了一个名为CutePDF的打印机驱动程序。 它是免费的,Windows 10准备就绪。

最新更新