微信订阅号二维码

本页内容二维码:

本栏目热门内容
  • Acrobat虚拟PDF打印机执行...
  • LINKSYS交换机登录WEB界面...
  • 又一次RAID 5阵列故障记录...
  • 解决VMware vSphere ESXi ...
  • 修改CentOS发行信息以绕过...
  • Windows Server 2008 重命...
  • 解决虚拟化运行的 Windows...
  • Intel Nehalem CPU Errata...
  • 某卢瑟装机搞得一踏糊涂,...
  • 解决MySQL Cluster 备份总...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的...
  • 解决 VMWare vSphere 6 客...
  • 解决Windows Server 2008 ...
  • 本站服务器RAID 5阵列双硬...
  • 网站数据库从MySQL 5.0升...
  • 解决MariaDB使用Percona X...
  • 修改arpwatch使通知邮件主...
  • Linux 下的分区调整工具GP...
  • DELL PowerEdge 820 报CPU...
  • 程序员漫画:如何用8种不...
  • 解决很好用的多合一即时通...
  • 使用 GParted 进行虚拟机...
  • 解决Samba WINS服务的错误...
  • 解决Squid代理HTTP时在浏...
  • 用Delphi编写使用到ADO的D...
  • 网站简单改版
  • 索尼系列手提电脑备份失败...
  • Dell R900服务器 BMC firm...
  • 更多...

    Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然是删注册表项。

    作者:Sender  来源:WaveCN.com  发布日期:2013-03-06  最后修改日期:2013-03-06

    由于工作需要,购买了一套正版的(没错,我特意强调这点)的Acrobat 9,安装在一台计算机上专门用来进行文档转PDF的自动化过程。转换工作是通过Acrobat的PDF虚拟打印机来完成的,工作了几年,一切良好。

    本来在正常情况下,PDF虚拟打印机被设置为默认在C盘根目录下面创建PDF文件,不提示输出文件名。但突然PDF虚拟打印机就不工作了,不向指定的位置输出PDF文件,而是自动改为向当前用户的“我的文档”位置输出,不过,更糟糕的是,它一旦出现创建进度对话框后就停住了,没有任何PDF文件被实际生成。除非手工杀掉Acrotray.exe进程,否则那个创建进度对话框就一直停留在那里。

    重启计算机,故障依旧。

    心想,问题出在那里呢。这种故障太莫名其妙了。仔细观察那个停住不动的创建进度框(平时正常工作时,这个创建进度框一闪而过从来都没去管过),发现了一件事情:进度框里面的“文档名称”下拉框是可以点击的,点击后可以看到大量之前生成的文档的文件名。

     

    创建PDF进度对话框

    (这个截图是正常工作情况的,排障时只顾着找原因,没截下来)

    这样啊,是否有打印任务没有完成导致堵塞呢,于是查看Windows的打印任务池:

    C:\Windows\System32\spool\PRINTERS

    但是,里面空空如也。

    看来不是这个问题。那么,估计问题可能还是在PDF虚拟打印机的设置上。于是进去注册表,首先检查了打印机的设置,位于

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Adobe PDF

    根据经验检查了一下,看上去都正常。那么问题不在打印机上,那就有可能是Distiller的问题了。这里顺便解释一下,Acrobat Distiller是Acrobat里面的一个重要部件,是负责把用PostScript描述的页面数据转换为PDF格式的。

    Adobe Distiller 9 Splash

    于是转去看Distiller的设置,当在注册表里面点到

    HKEY_CURRENT_USER\Software\Adobe\Acrobat Distiller\PrinterJobControl

    位置时,注册表编辑器整个挂起了。马上可以意识到,这只有两种可能,要么是注册表文件被破坏了,要么就是这个位置下面太多键值!

    换了一个第三方的注册表编辑器Registry Workshop(是我用过的最好用的第三方注册表编辑器,下载),转到刚才的位置一看,好家伙,几年来生成的PDF的文件名都在里面,足有26万条(这个数字很正常,自动化生成PDF嘛)键值。这下子问题的的解决方案很清楚了:全部删除。

    考虑过直接删除PrinterJobControl项然后重建,不过还是选择了删除键值的方式。结果删除过程之漫长,足足用了2.5个小时。期间搜索了一下这个注册表项,原来Adobe有解释的:

    http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=Distiller_WinIntro.61.11.html

    大约说的是,这个注册表项用于控制Distiller在生成PDF时不提示生成文档的名称。帮助信息里面说,这个信息在Windows API StartDoc成功执行后就会删除。但是,很明显,这些信息没有被删除,具体原因就不得而知。

    删除完毕后,顺便还用Registry Workshop整理了一下注册表,把用户部分的注册表文件从未整理的25M缩小到了1.4M。重启计算机,一切正常了。

     

    欢迎关注微信公众号后私信讨论文章内容!
    本栏目相关
  •  2013-03-06 Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然是删注册表项。
  •  2022-02-14 如何在PDF文档上应用数字证书才能具有法律效力?
  • 返回页首