无法使用Adobe Acrobat 5.0 PDFWriter、Windows 10、VB6和Crystal报表打印?

无法使用Adobe Acrobat 5.0 PDFWriter、Windows 10、VB6和Crystal报表打印?,pdf,crystal-reports,vb6,windows-10,acrobat,Pdf,Crystal Reports,Vb6,Windows 10,Acrobat,我希望能得到一些帮助,解决我最近“继承”的一个工作问题。。。我所在的公司提供了我的服务,帮助他们将信息系统应用程序从Windows XP机器迁移到Windows 10机器。该程序的核心组件是在Visual Basic 6、Crystal Reports 8和Adobe Acrobat 5中开发的。我已经知道99%的人的答案都是“你需要升级”或者“你为什么要用它?!”。对于这些人来说,答案很简单,因为我的迫切需要是使用我得到的东西,最终的计划是将所有东西迁移到这些核心组件的更新版本 我已经做了一些

我希望能得到一些帮助,解决我最近“继承”的一个工作问题。。。我所在的公司提供了我的服务,帮助他们将信息系统应用程序从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”和支持的dll, (“pdfdd.dll”、“pdfkd.dll”)在下不存在 “Windows\System32\spool\drivers”位置,即它们所在的位置 在正在运行的Windows XP计算机上找到
  • 上述主要DLL和支持DLL确实存在于 “Windows\System32\spool\drivers\x64”
  • 在注册表中搜索主dll或支持dll时, 未找到任何内容,表明DLL无法成功 登记
  • 尝试使用手动注册DLL时 “\Windows\SysWoW64\regsvr32.exe”失败
  • 尝试使用手动注册DLL时 “\Windows\System32\regsvr32.exe”失败
正在执行的代码正在执行以下操作:

  • 它基于SQL查询动态构建水晶报表 表单中的参数
  • 它使用crystal reports“SelectPrinter”功能指定 Printer.DriverName、Printer.DeviceName、Printer.Port
  • 它使用crystal reports“PrintOut”函数指定不打印 提示用户输入任何内容,如“无声打印”
最终结果,我需要复制的,以及我需要社区帮助的是Crystal Reports:

  • 以PDF格式静默打印文件,无需用户操作
  • 打印具有特定文件名的文件
  • 将文件打印到特定位置
我曾尝试使用Microsofts内置的Print-to-PDF,这很管用,但它会提示用户保存文件,它也有错误的默认文件名和位置,我认为没有办法通过编程从VB6更改它

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


任何有用的意见、建议、决议都将不胜感激

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

pid=ShellExecute(0&,“打印”,DocFile,vbNullString,vbNullString,vbNormalFocus)是我用来从VB6自动打印PDF文件的工具


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

请停止。您将无法使Acrobat 5打印驱动程序在Windows 10下工作。你将不得不跳过“使用我得到的”部分,直接跳到“将所有内容迁移到新版本”。创建应用程序时,没有好的命令行工具可以可靠地打印PDF。现在有。。。几个。。。你需要用其中一个来代替。如果你的客户不愿意接受这个想法,就放弃他们。另外,我不是99%的人,我是Acrobat5的产品经理。如果你只需要一个PDF打印机驱动程序,特别是VB6程序员,我只能建议你。它可以在所有Windows版本中作为本地打印机和网络打印机使用,只需稍作调整。我在生产中的重负载下使用了它,它的工作速度和稳定性令人惊讶。只有我的两分钱,我没有参与这个项目。但是,请记住,作为VB6程序员,您需要理解源代码并根据需要进行一些小的调整。@deblocker感谢您花时间回答一些实际有用的问题!我看了qvPDF,它看起来像是一个很好的程序,有人投入了很多时间,需要进一步挖掘,看看它是否能满足我的需要。@guht:很高兴你能赏识到它。您在打印要求中指定的三个关键点在工作中非常常见。我要添加第四个要点:在完成每一个打印操作后,打印机应该同步启动一个回调函数,返回生成文件的全名。