随着科学技术与经济水平的不断发展,越来越多的人开始投入到java编程语言的学习当中去。今天就来为大家介绍一些java的日常使用,也就是在java中打印PDF文件的方法有哪些?通过具体的实例为大家展示。
首先说一下第一种方式,也就是Java Swing自带的组件预览打印PDF文件
1.需要一个工具类,代码如下所示:
package com.beiqisoft.cic; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import org.icepdf.ri.common.SwingController; import org.icepdf.ri.common.SwingViewBuilder; public class PDFViewer { public JFrame frame; public String pdf; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { PDFViewer window = new PDFViewer("c:/wd/b.pdf"); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public PDFViewer(String pdf) { this.pdf = pdf; initialize(); } private void initialize() { frame = new JFrame(); frame.setSize(1100, 1000); frame.setLocationRelativeTo(null); frame.getContentPane() .setLayout(null); SwingController controller = new SwingController(); SwingViewBuilder factory = new SwingViewBuilder(controller); JPanel viewerComponentPanel = factory.buildViewerPanel(); controller.getDocumentViewController() .setAnnotationCallback( new org.icepdf.ri.common.MyAnnotationCallback( controller.getDocumentViewController())); controller.openDocument(pdf); frame.setContentPane(viewerComponentPanel); } }
2.在主程序中调用如下代码:
new PDFViewer(fileName) .frame.setVisible(true);
fileName是生成的PDF文件路径。
效果图如下所示:
但是它也存在一个问题,就是不能修改右边距和下边距参数,对于打印位置要求精准的项目,不适合。
接下来是第二种方式:使用系统默认程序(浏览器)打印PDF文件
1.工具类代码展示如下:
package com.beiqisoft.cic.util; import java.io.File; import java.util.Iterator; import java.util.Map; public class googlepdf { public static void opengoogle(String jurl, String fileName) { if (java.awt.Desktop.isDesktopSupported()) { try { // 创建一个URI实例 String url = "file:///" + jurl.replace("\\", "/") + "/" + fileName.substring(2); String url = "file:///D:/cic/" + fileName.substring(2); java.net.URI uri = java.net.URI.create(url); // 获取当前系统桌面扩展 java.awt.Desktop dp = java.awt.Desktop.getDesktop(); // 判断系统桌面是否支持要执行的功能 if (dp.isSupported(java.awt.Desktop.Action.BROWSE)) { // 获取系统默认浏览器打开链接 dp.browse(uri); } } catch (Exception e) { e.printStackTrace(); } } } }
2.主程序调用工具类代码展示如下:
googlepdf.opengoogle(getLujing(), fileName); public String getLujing() { //获取类加载的根路径 // File file3 = new File(this.getClass() .getResource("/") .getPath()); // String fileurl = file3.toString(); // String url = fileurl.substring(0, fileurl.length() - 14); // return url.replace("\\", "/"); File file3 = new File("."); String fileurl = ""; try { fileurl = file3.getCanonicalPath() .toString(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return fileurl; } }
最后是第三种方式:Java指定浏览器预览及打印PDF文件
1.工具类与第二种方式一样,将里面的默认程序打开的代码换成//浏览器位置。代码展示如下:
String google = jC: \\Users\\ wangdong - surface\\ Desktop\\ cic\\ Google\\ Chrome\\ Application\\ chrome.exe "; Map map = System.getenv(); for (Iterator itr = map.keySet() .iterator(); itr.hasNext();) { String value = (String) map.get((String) itr.next()); if (value.contains("firefox.exe")) { google = value; break; } } Runtime.getRuntime() .exec(new String[] { google , url });
以上就是在在java中打印PDF文件的主要三种方法列举,并通过详细的代码为大家展示。如果你对java知识感兴趣,想要了解更多java经典例子和常见问题,敬请关注奇Q工具网。
推荐阅读: