java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

本文介绍了如何使用Java实现PDF文件的生成和打印。通过Java的PDFBox和iTextPDF库,动态填充数据到模板中,生成PDF,并使用PDFBox进行打印。内容包括效果预览、环境准备、打印实现及PDF生成步骤,详细展示了生成PDF文件和调用打印机的代码示例。

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

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

#### 目录:

0. 效果预览

1. 准备环境

2. Java如何调用打印机进行打印

3. Java如何生成pdf打印文件

4. 实现pdf内数据动态填充(可按需求改变数据,有一个模板就行)

##### 效果预览:

- 说明:以下是根据不同用户数据和自己生成的pdf模板,动态生成的pdf文件,可直接调用打印机打印。

- 数据可从数据库动态获取并且填充

![在这里插入图片描述](https://img-blog.csdnimg.cn/201909282000077.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFCdWlsdA==,size_16,color_FFFFFF,t_70)

##### 环境准备:

1. java标准开发环境

2. 打印机一台(确保已和设备连接),测试的时候要用,开发没有打印机也行

3. 相关jar包

- pdfbox

- itextpdf

- commons-logging.jar

##### 实现Java调用打印机进行打印文件

之前写过一篇,多种方式,有兴趣的可以看看。[点击这里查看](https://blog.youkuaiyun.com/JavaBuilt/article/details/81322086)

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

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

```java

/**

* 打印实现类

* 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文件

这个比较复杂,涉及到单元格,表,段落,标题等内容

慢慢来,一步一步讲解一下

```java

/**

* 生成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 SPACIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值