Java实现PDF文件生成并且打印pdf文件(附demo)

您所在的位置:网站首页 用java实现打印功能 Java实现PDF文件生成并且打印pdf文件(附demo)

Java实现PDF文件生成并且打印pdf文件(附demo)

2024-07-09 18:35| 来源: 网络整理| 查看: 265

Java实现PDF生成并且打印pdf文件(附demo) 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现pdf内数据动态填充(可按需求改变数据,有一个模板就行) 效果预览: 说明:以下是根据不同用户数据和自己生成的pdf模板,动态生成的pdf文件,可直接调用打印机打印。 数据可从数据库动态获取并且填充 在这里插入图片描述 环境准备: 1. java标准开发环境 2. 打印机一台(确保已和设备连接),测试的时候要用,开发没有打印机也行 3. 相关jar包 - pdfbox - itextpdf - commons-logging.jar 实现Java调用打印机进行打印文件

之前写过一篇,多种方式,有兴趣的可以看看。点击这里查看

这里使用的是PDFBox方式实现打印,引入PDFBox.jar和commons-logging.jar,嫌麻烦地可以在文章底部下载demo,我把所有相关的jar,源码都放进去了

传入文件对象即可进行打印,打印前请确认打印机是否正常连接!!!!

/** * 打印实现类 * createTime:2018-08-01 * * @author Jason * */ public final class JHPrintor { /** 日志记录对象 */ private static Logger log = Logger.getLogger(JHPrintor.class); /** 私有构造器 */ private JHPrintor() { } /** * 打印pdf文件 * * @param file 需打印的pdf文件 */ public static void print(File file) { try { PDDocument document = PDDocument.load(file); // 加载成打印文件 PDFPrintable printable = new PDFPrintable(document,Scaling.ACTUAL_SIZE); PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(printable); job.defaultPage(); job.print(); } catch (InvalidPasswordException e) { log.error("打印异常:文档初始化密码失败!"); PromptUtil.error("初始化文档密码异常,打印失败!"); e.printStackTrace(); } catch (IOException e) { log.error("打印异常!"); PromptUtil.error("打印异常,请关闭后重试!"); e.printStackTrace(); } catch (PrinterException e) { log.error("未正常连接打印机"); PromptUtil.error("请检查打印机是否正常连接!"); e.printStackTrace(); } } } Java如何生成pdf文件

这个比较复杂,涉及到单元格,表,段落,标题等内容 慢慢来,一步一步讲解一下

/** * 生成pdf文件的工具类 * createTime:2018-08-01 * * @author Jason * */ public class JHCreatePDF { // 日志记录对象 public static Logger log = Logger.getLogger(JHCreatePDF.class); // 系统字体文件在 Windows/Fonts目录下,将其粘到src下即可 public static final String CHARACTOR_FONT_CH_FILE = "/SIMSUN.TTC,1"; //宋体 常规 // 纸张尺寸 public static final Rectangle PAGE_SIZE = PageSize.A4; // 边距 public static final float MARGIN_LEFT = 50; public static final float MARGIN_RIGHT = 50; public static final float MARGIN_TOP = 50; public static final float MARGIN_BOTTOM = 50; public static final float SPACING = 20; // 文件对象 private Document document = null; private File file; /** * 功能:创建导出数据的目标文档 * @return */ public void createDocument() { // 创建pdf文件 FileOutputStream out = null; document = new Document(PAGE_SIZE, MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM); try { file = File.createTempFile("temp", ".pdf"); } catch (IOException e1) { Log.error("创建临时打印文件失败!"); PromptUtil.error("创建临时打印文件失败,请关闭重试"); e1.printStackTrace(); return; // 结束后续运行 } try { out = new FileOutputStream(file); PdfWriter.getInstance(document, out); } catch (FileNotFoundException e) { e.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3