java生成PDF
根据提供的文件信息,我们可以归纳出以下与“Java生成PDF”相关的知识点: ### 1. Java生成PDF概述 在Java开发中,生成PDF文档是一项常见需求,尤其是在报表、发票或者需要导出为PDF格式的场景中。Java提供了多种库来帮助开发者实现这一功能,包括iText、Apache PDFBox等。 ### 2. iText简介 iText是一款非常流行的用于生成PDF的开源Java库。它支持创建、修改、合并、拆分PDF文档,并且可以将HTML转换为PDF。iText提供了一个强大的API,使得开发者能够灵活地控制PDF文档的内容和布局。 ### 3. 使用iText创建PDF的基本步骤 #### 3.1 引入iText依赖 如果使用Maven项目,可以在`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> ``` #### 3.2 创建PDF文档 使用`Document`类初始化一个新的PDF文档: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfWriter; Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream("bigPayment.pdf")); document.open(); ``` #### 3.3 添加内容到PDF文档 可以向文档中添加文本、表格、图片等元素。例如,添加一段简单的文本: ```java import com.itextpdf.text.Paragraph; document.add(new Paragraph("大付费表")); ``` #### 3.4 创建表格 对于包含大量数据的情况,使用表格是一种很好的展示方式。下面是如何创建一个包含列头的表格示例: ```java import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfPCell; // 创建表格 PdfPTable table = new PdfPTable(6); // 添加列头 PdfPCell cell = new PdfPCell(new Paragraph("日期")); table.addCell(cell); cell = new PdfPCell(new Paragraph("加")); table.addCell(cell); cell = new PdfPCell(new Paragraph("减")); table.addCell(cell); cell = new PdfPCell(new Paragraph("金额")); table.addCell(cell); cell = new PdfPCell(new Paragraph("描述")); table.addCell(cell); cell = new PdfPCell(new Paragraph("序号")); table.addCell(cell); // 填充表格数据 for (int k = 0; k < emplid.length; k++) { // 这里假设emplid是一个包含员工ID的数组 // 下面的逻辑应该根据实际的数据结构进行调整 String date = dateList.get(k); Float jia = jiaList.get(k); Float jian = jianList.get(k); Float money = moneyList.get(k); String desc = descList.get(k); String order = orderList.get(k); table.addCell(date); table.addCell(String.valueOf(jia)); table.addCell(String.valueOf(jian)); table.addCell(String.valueOf(money)); table.addCell(desc); table.addCell(order); } document.add(table); ``` #### 3.5 关闭文档 完成所有内容的添加后,记得关闭文档: ```java document.close(); ``` ### 4. 其他高级特性 除了基本的文本和表格,iText还支持更复杂的PDF功能,如页眉/页脚、超链接、水印、书签导航等。这些功能使得iText成为一个非常全面的PDF处理库。 ### 5. 总结 通过上述介绍,我们了解到如何使用iText库在Java中生成PDF文档。从创建文档到填充内容,再到最后的文档关闭,每一步都有详细的代码示例。这对于希望在Java应用中集成PDF生成功能的开发者来说是非常实用的指南。此外,iText还提供了许多其他高级功能,使得开发者可以根据自己的需求定制更加丰富的PDF文档。
* 保存大付费表
*
* @param request
* @return
*/
@RequestMapping
@ResponseBody
public JsonResult createBigPayment(HttpServletRequest request,
TPayment payment, String[] emplid, long[] paicYearMonth) {
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
List<String> dateList = new ArrayList<String>();
List<Float> jiaList = new ArrayList<Float>();
List<Float> jianList = new ArrayList<Float>();
List<Float> moneyList = new ArrayList<Float>();
List<String> descList = new ArrayList<String>();
List<String> orderList = new ArrayList<String>();
List<String> typeList = new ArrayList<String>();
List<Float> rateList = new ArrayList<Float>();
List<Float> monthList = new ArrayList<Float>();
Boolean hasSetDate = false;
String dateStr = "";
String providerName = "";
String group = "";
String fileName="";
Float sumTotal = 0.0f; // 工时总计
Double sumMoney = 0.0; // 应付总金额
int size = 7;
for (int k = 0; k < emplid.length; k++) {
Collection<PaymentDto> payMent = null;
if (AppCollectionUtils.isEmpty(payMent)) {
payMent = Collections.emptyList();
}
Iterator iterator = payMent.iterator();
ArrayList<String> valueList = new ArrayList<String>();
Float monthSum = 0.0f; // 单人月 非调整工时
Float temp1=0.0f; //调增工时
Float temp2=0.0f; //调减工时
Double temp3=0.0; //单人总金额
Boolean isFirst = true;
Boolean isNewMan = true;
while (iterator.hasNext()) {
PaymentDto payments = (PaymentDto) iterator.next();
if (!hasSetDate) {
dateList.add(payments.getClDatetime());
}
if ("".equals(dateStr)) {
dateStr = payments.getPaicYearMonth();
}
if ("".equals(providerName)) {
providerName = payments.getPaicPartnerName();
}
if ("".equals(group)) {
group = payments.getGroupId();
}
if (null == payments.getPaicCntRateStds()
剩余13页未读,继续阅读
- zh2007992014-05-07基本没什么用
- txmenghuan2013-07-11挺有用的.....
- 粉丝: 2
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助