任意类型文件转换PDF问题研究

通过研究,找到了利用Adobe PDF Printer将任意文件转换为PDF的方法。首先将文件转换为POSTSCRIPT格式,然后使用Adobe Distiller进行转换。在JAVA中,可以通过调用Acrobat.exe来实现打印命令。该过程涉及注册表配置,包括设置打印命令和输出路径。但需要注意,某些文件可能无法成功转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不说费话啦.说主要的~~

任意类型文件转换PDF,我能想到的办法就只有利用ADOBE PDF PRINTER一个了

研究了下瘟到死的PRINT命令,发现此命令调用不了PDF PRINTER.

除非自己写ROBOT,把PDF PRINTER设为默认,这可行~~但是肯定干扰用户其他操作了.

换个思路.

先把文件打成POSTSCRIPT格式,再用ADOBE DISTILLER转成PDF.

其实有了PS文件,JAVA自己就能调用PDF PRINTER转换成PDF了.

可是没找到转换PS的东西.

只能加虚拟打印机了.

问题又绕回来了.

如果是个AUTOCAD文件,java好像不能调用打印机把它打成PS文件.

又绕到ROBOT上了.

只能加台独立PC,跑ROBOT打印么?

======

今天发现一个可行的办法~~~

经一老外的VBS的启发,发现可以自己调用acrobat.exe打印PDF.

步骤:

1.查注册表

HKCR/.PDF/默认=命令行注册表值所在[键值],一般是:AcroExch.Document

HKCR/[键值]/shell/print/command=这里就是命令行参数

一般是:[路径]/acrobat.exe /p /h [文件名]

输出路径:

HKCU/SOFTWARE/ADOBE/ACROBAT DISTILLER/[版本]/ADOBEPDFOUTPUTFOLDER/默认=[一个数字]

HKCU/SOFTWARE/ADOBE/ACROBAT DISTILLER/[版本]/ADOBEPDFOUTPUTFOLDER/[一个数字]=[输出路径]

当二个数字一致,才会输出到指定目录,否则是默认位置MY DOCUMENTS/*.PDF

输出文件名格式:ADP[三位数字,也可能四位或更多].PDF

2.设置好以上注册表值后,接下来就没什么大问题啦

regedit.exe /e [输出文件名] [注册表键值]

把键值输出到文件分析下,不对的话,自己生成一个.reg文件,再导回去.

regedit /s /q [.reg文件]

全部改完后,起个PROCESS跑acrobat.exe吧~~~

注意:

acrobat.exe不会自己关闭,要手动关

process.destroy()就成~

实在不行用taskkill

再起个线程监视输出目录,发现输出文件就改名字.

OK,打完收功~~

=====

大家被我误导了.

实验发现有些文件不能转.

唉...

SORRY~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值