多谢各位!查了很多资料,中文和英文的,总结一下,希望对他人有帮助。 我是从以下几个思路去找解决的方法: 1.用框架集合javascript的print()方法。 其实就是想利用浏览器中调用客户端脚本进行打印,事实证明这是不行的,这个方法只能打印网页,而PDF其实是ACROBAT READER嵌套在IE中打开的,所以print()方法无效。 2.利用ActiveX来进行打印。 找了一通,发现确实ADOBE出过一个pdf.ocx,但是找不到没有任何公开的技术资料,看来这个只是供他们自己的程序嵌套在IE中使用。 3.在itext的在线帮助中找到的一个解决方法,摘录如下: /* Form http://www.lowagie.com/iText/faq.html#printing */How can I send a PDF file to a printer directly?Printing is a very platform dependent functionality. On Windows, you can print a PDF file by executing Acrobat Reader: String osName = System.getProperty("os.name" ); //FOR WINDOWS 95 AND 98 USE COMMAND.COM if( osName.equals( "Windows 95" ) || osName.equals( "Windows 98" )){ Runtime.getRuntime().exec("command.com /C start acrord32 /p /h" + claim.pdf); } //FOR WINDOWS NT/XP/2000 USE CMD.EXE else { Runtime.getRuntime().exec("cmd.exe /C acrord32 /p /h" + claim.pdf); }(Code provided by Jasperlan Guela) Re: the /h-option suppresses the Acrobat Reader Dialog Box. /* Form http://www.lowagie.com/iText/faq.html#printing */ 刚找到这段代码的时候欣喜若狂,以为找到正解。但后来在IE6中测试,发现只能自己调自己(也就是只能在服务器上打印)资源进行打印,而浏览器客户端会报一个访问资源权限的错,还是不行。最终客户没有坚持这个需求,还是采用了提供链接,下载后让客户自行打印。 呵呵,不好意思,最终没能提供正解,但如果有后来者,前述的方法可以不必再用,而直接用从以下两个思路来解决:一是用jsp结合客户端applet,这个也可以找找已有的一些开源项目;一是自己写ActiveX来解决。
我是从以下几个思路去找解决的方法:
1.用框架集合javascript的print()方法。
其实就是想利用浏览器中调用客户端脚本进行打印,事实证明这是不行的,这个方法只能打印网页,而PDF其实是ACROBAT READER嵌套在IE中打开的,所以print()方法无效。
2.利用ActiveX来进行打印。
找了一通,发现确实ADOBE出过一个pdf.ocx,但是找不到没有任何公开的技术资料,看来这个只是供他们自己的程序嵌套在IE中使用。
3.在itext的在线帮助中找到的一个解决方法,摘录如下:
/* Form http://www.lowagie.com/iText/faq.html#printing */How can I send a PDF file to a printer directly?Printing is a very platform dependent functionality. On Windows, you can print a PDF file by executing Acrobat Reader:
String osName = System.getProperty("os.name" );
//FOR WINDOWS 95 AND 98 USE COMMAND.COM
if( osName.equals( "Windows 95" ) || osName.equals( "Windows 98" )){
Runtime.getRuntime().exec("command.com /C start acrord32 /p /h" + claim.pdf);
}
//FOR WINDOWS NT/XP/2000 USE CMD.EXE
else {
Runtime.getRuntime().exec("cmd.exe /C acrord32 /p /h" + claim.pdf);
}(Code provided by Jasperlan Guela)
Re: the /h-option suppresses the Acrobat Reader Dialog Box. /* Form http://www.lowagie.com/iText/faq.html#printing */
刚找到这段代码的时候欣喜若狂,以为找到正解。但后来在IE6中测试,发现只能自己调自己(也就是只能在服务器上打印)资源进行打印,而浏览器客户端会报一个访问资源权限的错,还是不行。最终客户没有坚持这个需求,还是采用了提供链接,下载后让客户自行打印。
呵呵,不好意思,最终没能提供正解,但如果有后来者,前述的方法可以不必再用,而直接用从以下两个思路来解决:一是用jsp结合客户端applet,这个也可以找找已有的一些开源项目;一是自己写ActiveX来解决。