Java 将HTML转成PDF的方法
需用的Jar包
https://download.csdn.net/download/GXSeveryday/12380111
点我下载
PDFReport.java
package test;
import java.io.File;
import java.io.FileOutputStream; import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter; public class PDFReport {private static Font headfont ;// 设置字体大小private static Font keyfont;// 设置字体大小private static Font textfont;// 设置字体大小static{ BaseFont bfChinese; try { //bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); headfont = new Font(bfChinese, 20, Font.BOLD);// 设置字体大小keyfont = new Font(bfChinese, 12, Font.BOLD);// 设置字体大小textfont = new Font(bfChinese, 12, Font.NORMAL);// 设置字体大小} catch (Exception e) { e.printStackTrace(); } } public Document PDFReport(Document document,File file) { document.setPageSize(PageSize.A4);// 设置页面大小try { PdfWriter.getInstance(document,new FileOutputStream(file)); document.open(); } catch (Exception e) { e.printStackTrace(); } return document; } int maxWidth = 520; public PdfPCell createCell(String value,Font font,int align){ PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(align); cell.setPhrase(new Phrase(value,font)); return cell; } public PdfPCell createCell(String value,Font font){ PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setPhrase(new Phrase(value,font)); return cell; } public PdfPCell createCell(String value,Font font,int align,int colspan){ PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(align); cell.setColspan(colspan); cell.setPhrase(new Phrase(value,font)); return cell; } public PdfPCell createCell(String value,Font font,int align,int colspan,boolean boderFlag){ PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(align); cell.setColspan(colspan); cell.setPhrase(new Phrase(value,font)); cell.setPadding(3.0f); if(!boderFlag){ cell.setBorder(0); cell.setPaddingTop(15.0f); cell.setPaddingBottom(8.0f); } return cell; } public PdfPTable createTable(int colNumber){ PdfPTable table = new PdfPTable(colNumber); try{ table.setTotalWidth(maxWidth); table.setLockedWidth(true); table.setHorizontalAlignment(Element.ALIGN_CENTER); table.getDefaultCell().setBorder(1); //table.getDefaultCell().setMinimumHeight(120);//设置最小行高}catch(Exception e){ e.printStackTrace(); } return table; } public PdfPTable createTable(float[] widths){ PdfPTable table = new PdfPTable(widths); try{ table.setTotalWidth(maxWidth); table.setLockedWidth(true); table.setHorizontalAlignment(Element.ALIGN_CENTER); table.getDefaultCell().setBorder(1); }catch(Exception e){ e.printStackTrace(); } return table; } public PdfPTable createBlankTable(){ PdfPTable table = new PdfPTable(1); table.getDefaultCell().setBorder(0); table.addCell(createCell("", keyfont)); table.setSpacingAfter(20.0f); table.setSpacingBefore(20.0f); return table; } public void generatePDF(File file) throws Exception{ Document document = new Document();// 建立一个Document对象document = PDFReport(document,file);PdfPTable table = createTable(4); table.addCell(createCell("学生信息列表:", keyfont,Element.ALIGN_CENTER,4,false)); table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("年龄", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("性别", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("住址", keyfont, Element.ALIGN_CENTER)); for(int i=0;i<5;i++){ table.addCell(createCell("姓"+i, keyfont,Element.ALIGN_LEFT,4,true)); /*table.addCell(createCell(i+15+"", textfont)); table.addCell(createCell((i%2==0)?"男":"女", textfont)); table.addCell(createCell("地址"+i, textfont)); */ } document.add(table); document.close(); } public void generateOfflinePDF(File file) throws Exception{Document document = new Document();// 建立一个Document对象document = PDFReport(document,file);PdfPTable table = createTable(4); //抬头table.addCell(createCell("项目缴款通知书", headfont,Element.ALIGN_CENTER,4,false)); //第一行table.addCell(createCell("缴款人姓名:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("测试专用操作", textfont, Element.ALIGN_LEFT)); table.addCell(createCell("缴款人证件号码:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("510522", textfont, Element.ALIGN_LEFT)); //第2行table.addCell(createCell("凭证时间:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("2016-02-03", textfont, Element.ALIGN_LEFT)); table.addCell(createCell("凭证编号:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("112233", textfont, Element.ALIGN_LEFT)); //第3行table.addCell(createCell("项目名称:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("大周皇朝项目", textfont, Element.ALIGN_LEFT,3,true)); //第4行table.addCell(createCell("标的名称:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("标的", textfont, Element.ALIGN_LEFT,3,true)); //第5行table.addCell(createCell("应缴金额:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("15元", textfont, Element.ALIGN_LEFT,3,true)); //第6行table.addCell(createCell("户名:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("王超", textfont, Element.ALIGN_LEFT,3,true)); //第7行table.addCell(createCell("开户行:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("中国银行", textfont, Element.ALIGN_LEFT,3,true));//第8行table.addCell(createCell("账号:", keyfont, Element.ALIGN_CENTER)); table.addCell(createCell("622", textfont, Element.ALIGN_LEFT,3,true));//第9行table.addCell(createCell("特别提醒:", keyfont, Element.ALIGN_LEFT,4,false)); //第10行String tj = " 您的报名信息已与以下账户信息绑定,请选择其中之一进行缴款,不能使用现金缴款。请选择以下注册账户之一进行缴款,若"+ "使用以下账户之外的其他账户进行缴款,或选择两个以上注册账户进行组合缴款的,缴款人将无法取得竞买资格,"+ "说缴款项将作为误进款于项目交易结束后三个工作日内原路径退回。";table.addCell(createCell(tj, textfont, Element.ALIGN_LEFT,4,false)); //第11行String jzsj = "缴款截止日期:"+"2016-02-01";table.addCell(createCell(jzsj, keyfont, Element.ALIGN_LEFT,4,false)); //第12行table.addCell(createCell("序号", textfont, Element.ALIGN_CENTER)); table.addCell(createCell("银行", textfont, Element.ALIGN_CENTER)); table.addCell(createCell("账号", textfont, Element.ALIGN_CENTER,2,true));//第13行table.addCell(createCell("1", textfont, Element.ALIGN_CENTER)); table.addCell(createCell("中国银行", textfont, Element.ALIGN_CENTER)); table.addCell(createCell("510522", textfont, Element.ALIGN_CENTER,2,true));//第14行table.addCell(createCell("收款账户确认:", keyfont, Element.ALIGN_LEFT,4,false)); //第15行String tx = " 项目经理已告知中国建设银行、中国工商银行、重庆农村商业银行可选择为收款银行。本人选择"+"中国银行"+",特此确定。";table.addCell(createCell(tx, textfont, Element.ALIGN_LEFT,4,false)); //第16行table.addCell(createCell("缴款人经办人签字:", keyfont, Element.ALIGN_LEFT,4,false)); document.add(table); document.close(); }public static void main(String[] args) throws Exception { File file = new File("D:\\text.pdf"); file.createNewFile(); new PDFReport().generateOfflinePDF(file); }
}
Java 将HTML转成PDF的方法相关推荐
- excel转换pdf java_用Java把Excel转换成PDF的方法
用Java把Excel转换成PDF的方法 发布时间:2020-05-30 11:48:45 来源:亿速云 阅读:216 作者:鸽子 Java 将Excel转为PDF 本文将介绍在Java程序中如何将E ...
- ASP.Net中实现上传过程中将文本文件转换成PDF的方法
iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...
- 用手机把纸质文件扫描成pdf的方法分享,不能错过哦。
用手机把纸质文件扫描成pdf的方法分享!相信很多小伙伴日常在处理文件的时候,碰到的纸质文件还是非常多的,而且经常会需要我们将纸质的文件转换成电子文件,这时候重新开始写或者重新制作显然是不太现实的,当然 ...
- 快速批量把jpg转换成pdf的方法
快速批量把jpg转换成pdf的方法 很多微友反映,有时在办公过程中遇到需要图片快速批量转化成PDF格式文件或者将多个图片合并为一个PDF文件的情况,想知道有没有一个支持多种格式的JPG转换成PDF转换 ...
- caj在线转换成pdf的方法步骤这里有!
很多人不懂得caj是啥格式,其实它有2种意思:其一,就是中国学术期刊全文数据库:其二,它同时也是中国学术期刊全文数据库中文件的一种格式,要使用专门的浏览器来打开.阅读.为了可以更方便打开.阅读caj文 ...
- jpg图片转换成pdf的方法
常上网查阅资料的网友肯定知道,网络小说中经常附带各种流行图片文件格式,如JPG文件,对于JPG转换成PDF转换器,有没有一款专业的JPG转换器具备将JPG转换成PDF甚至是其他格式呢? 众所周知,传统 ...
- CAJ转换成PDF在线方法是什么
做学术性的朋友经常会需要将CAJ文件转换成PDF文件,毕竟CAJ文件只能在CAJ阅读器上显示,但是有很多转换软件并不能很好的完成转换,小编今天就为大家讲解一下CAJ转换成PDF在线方法是什么,大家要认 ...
- 教程:Allegro PCB Editor将光绘导出成PDF的方法
教程:Allegro PCB Editor将光绘导出成PDF的方法 更新历史 20190714: 首次发布 Allegro PCB Editor是画PCB的优秀软件.有些情况下,我们需要将PCB的光绘 ...
- Java 读写docx文件后直接转成PDF文件方法
java将docx文件转成pdf文件的实现方法,需要的jar包下载地址:https://download.csdn.net/download/keke921231/10529672 1.读写docx文 ...
- aspose pdf java,Java 使用aspose.pdf将多张图片转成pdf的方法及示例代码
1.Aspose组件下载 2、多张图片转成pdf 1) 验证license/** * 获取license * * @return */ public static boolean getLicense ...
最新文章
- 谷歌人工智能野心:从“下围棋”开始走向商用赚钱
- 关于64位 MS SQL 导入导出 Oracle 引发 ORA-06413 的解决方法
- composer安装fxp插件时候提示内存不足且没有交换空间的解决办法
- 在Python中什么是slicing?
- vsftpd 创建虚拟用户
- vs code 前端如何以服务器模式打开 [安装服务器] server insteall
- Java中对查出的数据计数_基础算法7:从数据库某个字段中取出现次数最多的几条数据形成“热门xxx”...
- android网络编程登录和验证,ASP.NET实现用户注册和验证功能(第4节)
- 探秘综合布线产品质保问题
- vue 中 v-if 和 v-for 混用时应该注意的事项
- spring源码--第七个后置处理器的使用:初始化方法
- VScode 下载、安装和设置中文界面
- 【Django】实现文件下载
- PPT里快速插入上下角标
- python中sqrt_Python中sqrt函数怎么用
- 时空跳跃者的追捕行动模拟赛
- 计算机的用户账户无法更改密码,windows不能更改密码怎么办【解决方法】
- redis应用之安装配置介绍
- HEVC学习-帧内预测-initAdiPattern函数
- 论文参考文献格式详细国家标准