public static writePDF(){
Document document = new Document();
FileOutputStream os = new FileOutputStream(new File(Const.FILE_IN + File.separator + foldPath + File.separator + fileName));
PdfWriter.getInstance(document, os);
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);//加入document: ;
Font FontChineseB = new Font(bfChinese, 12, Font.BOLD);//加入document:
Image png = Image.getInstance(Const.FILE_PROCECT + File.separator + "images" + File.separator + "pdf_head.jpg");//图片的地址
document.add(png);
Paragraph head = new Paragraph("预定通知单 订单号:" + String.valueOf(hotelChOrder.getId()), FontChineseB);
head.setAlignment(Element.ALIGN_CENTER);
document.add(head);
MemberDomain memberDomain = (MemberDomain)BeanFactory.getDomain(Const.MEMBER_DOMAIN);
memberDomain.initByMemberId(TypeParse.str2Long(vo.getHotelMemberId()));
UserDomain userDomain = (UserDomain)BeanFactory.getDomain(Const.USER_DOMAIN);
userDomain.initByMemberUserId(memberDomain.getMember().getManager());
document.add(new Paragraph("To:"+memberDomain.getMember().getMemberCn()+" 联系人:"+userDomain.getMemberUser().getUserName()+"("+userDomain.getMemberUser().getMobile()+") 预定时间:"+systemDate, FontChinese));
document.add(new Paragraph("Tel:"+memberDomain.getMember().getTel()+" Fax:"+memberDomain.getMember().getFax()+"", FontChinese));
Table pdfLine = new Table(1,1);
pdfLine.setBorderColor(new Color(0, 0, 0));
pdfLine.setBorderWidth(1);
pdfLine.setWidth(100);
Cell lineCell = new Cell(new Paragraph("", FontChinese));
pdfLine.addCell(lineCell);
document.add(pdfLine);
Table details = new Table(2,9);
details.setBorderColor(new Color(255, 255, 255));
details.setBorderWidth(0);
details.setBorder(0);
details.setWidth(80);
int width[] = {20,60};
details.setWidths(width);
details.setPadding(0);
Paragraph leftCellParagraph = new Paragraph("客人姓名:", FontChineseB);
leftCellParagraph.setAlignment(Element.ALIGN_RIGHT);
Cell detailsCell = new Cell(leftCellParagraph);
detailsCell.setBorderColor(new Color(255, 255, 255));
detailsCell.setBorder(0);
detailsCell.setBorderWidth(0);
details.addCell(detailsCell);
String usernames = hotelChOrder.getUserList().replaceAll(";", ",");
Paragraph rightCellParagraph = new Paragraph(usernames, FontChinese);
rightCellParagraph.setAlignment(Element.ALIGN_LEFT);
detailsCell = new Cell(rightCellParagraph);
detailsCell.setBorderColor(new Color(255, 255, 255));
detailsCell.setBorder(0);
detailsCell.setBorderWidth(0);
details.addCell(detailsCell);
leftCellParagraph = new Paragraph("住房日期:", FontChineseB);
leftCellParagraph.setAlignment(Element.ALIGN_RIGHT);
detailsCell = new Cell(leftCellParagraph);
detailsCell.setBorderColor(new Color(255, 255, 255));
detailsCell.setBorder(0);
detailsCell.setBorderWidth(0);
details.addCell(detailsCell);
rightCellParagraph = new Paragraph(vo.getCheckInDate() + " 至 "+vo.getCheckOutDate()+" 共"+vo.getDays()+"晚", FontChinese);
rightCellParagraph.setAlignment(Element.ALIGN_LEFT);
detailsCell = new Cell(rightCellParagraph);
detailsCell.setBorderColor(new Color(255, 255, 255));
detailsCell.setBorder(0);
detailsCell.setBorderWidth(0);
details.addCell(detailsCell);
leftCellParagraph = new Paragraph("预定客房:", FontChineseB);
leftCellParagraph.setAlignment(Element.ALIGN_RIGHT);
detailsCell = new Cell(leftCellParagraph);
detailsCell.setBorderColor(new Color(255, 255, 255));
detailsCell.setBorder(0);
detailsCell.setBorderWidth(0);
details.addCell(detailsCell);
document.add(details);
document.close();
}
分享到:
相关推荐
在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...
为了解决"Java使用Itext生成PDF中文不换行"的问题,我们可以采取以下几种策略: 1. **设置字体和编码**:确保使用支持中文的字体,如SimSun、Arial Unicode MS等,并正确设置PDF的编码为UTF-8。Itext中的`Font`类...
这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的场景中非常有用。 首先,让我们了解FreeMarker。FreeMarker是一个基于模板的语言,...
"itext-2.1.7源码包以及 解决iText生成pdf时中文标点存在行首问题的修改class" 这个标题提到了两个关键点。首先,`itext-2.1.7`是开源Java库iText的一个版本,用于创建、修改和操作PDF文档。这个版本的源码包提供了...
在这个场景中,我们将探讨如何利用iText在Android应用中生成PDF以及读取PDF的内容。 首先,我们需要在Android项目中引入iText库。由于Android Studio默认使用Gradle作为构建工具,我们可以在`build.gradle`文件的...
以下是一些关于如何使用iText生成PDF的关键知识点: 1. **安装与获取iText**: 要使用iText,首先需要从其官方源代码托管平台SourceForge下载相应的.jar文件。基础的iText.jar提供了基本的PDF生成功能,但如果你...
**iText生成PDF实例详解** 在信息技术领域,PDF(Portable Document Format)文件因其跨平台、易阅读和保真性等特点,被广泛应用于文档共享和交流。而iText是一款开源的Java库,它允许开发者轻松地创建、修改和操作...
2. **创建PDF文档**:使用iText生成PDF的第一步是创建一个PdfWriter实例,然后基于该实例创建一个Document对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new ...
iText生成pdf解决中文不显示字库,pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一...
用itext方法生成 与Word一样的目录
iText生成PDF图片文档 iText是一个功能强大的Java类库,用于生成PDF文档。通过使用iText,我们可以轻松地生成PDF文档,包括图片、文字、表格等多种元素。本文将详细介绍如何使用iText生成PDF图片文档。 iText基本...
对于初学者来说,掌握使用iText生成PDF文档中的表格、一维条形码和图片是一项基本技能。此外,需要注重代码中字符串的准确性,避免由于扫描或输入错误导致的问题。熟练掌握iText库的使用,可以使开发者在处理PDF文件...
本篇将详细介绍如何使用iText生成PDF,以及所需的jar包。 首先,我们需要理解iText库的核心功能。iText允许开发者通过编程方式创建PDF文档,支持添加文本、图像、表格、链接、样式和布局等多种元素。它还提供了高级...
【Itext生成PDF详解】 Itext是一个用于生成PDF文档的Java库,对于.NET环境,有对应的iTextSharp库。在创建PDF文档时,通常需要经过五个步骤,这在描述中已有详细阐述。以下是对这些步骤的详细解释: 1. **创建...
这个压缩包提供了使用Itext生成PDF所需的全部Jar包,确保你可以一次性导入所有必要的依赖。 1. **Itext核心组件**: - `kernel`:这是Itext的核心模块,提供了基本的PDF文档操作功能,如创建、打开、修改PDF文档,...
导入 <groupId>org.xhtmlrenderer <artifactId>core-renderer <version>R8 直接根目录下新建包org.xhtmlrenderer.layout 覆盖jar
里面包含两个demo实例,分别是itext-pdf生成pdf的,一个是itext-rtf生成word的。其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table...
document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...
接下来,我们来看看如何生成PDF报表。首先,创建一个新的PDF文档需要一个`Document`对象,这将作为整个PDF的容器: ```java Document document = new Document(); ``` 然后,我们需要一个`PdfWriter`实例,它负责将...
用itext生成pdf文档,生成的内容有表格形式,文本形式,设置字体样式,文档页边距。