`
小杨学JAVA
  • 浏览: 901611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

createPdf demo

 
阅读更多


private boolean createPdfCont() { try { /* 获取当日文件的存放路径,若不存在则创建文件路径 */ if(!getFilePath()) { return false; } /* 创建一个文件,并获得它的写入流,将其打开 */ Document tDoc = new Document(PageSize.A4, 50, 50, 50, 50); PdfWriter tWriter = PdfWriter.getInstance(tDoc, new FileOutputStream(mFileFullPath.toString())); tDoc.open(); /* 获得文本写入器 */ PdfContentByte tPcd = tWriter.getDirectContent(); /* 创建合同需要的所有基本字体 */ BaseFont tBFChinese= BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED); mBoldConFont = new Font(tBFChinese, 10, Font.BOLD); mConFont = new Font(tBFChinese, 10); /*******************************************开始处理合同第一页**************************************/ /* 加载带有logo的图片 */ Image tImgCompany = Image.getInstance(mImgPath+"logo.jpg"); /* 设置logo的位置 */ tImgCompany.setAbsolutePosition(50, 500); /* 设置logo的大小 */ tImgCompany.scaleAbsolute(200, 50); /* 加载印有'保险合同'字样的图片 */ Image tImgCont = Image.getInstance(mImgPath+"cont.jpg"); /* 设置图片的位置*/ tImgCont.setAbsolutePosition(50, 430); /* 设置图片的大小 */ tImgCont.scaleAbsolute(280, 70); /* 将以上图片写入文件 */ tDoc.add(tImgCompany); tDoc.add(tImgCont); /* 设置第一页的文字显示信息 */ tPcd.beginText(); tPcd.setFontAndSize(tBFChinese, 10); /* 显示产品名称 */ tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT, this.mContPlanGrpName , 60, 420, 0); /* 显示合同号 */ tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"保险合同号:"+this.mContNo, 420, 387, 0); /* 显示投保人名字 */ tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"投 保 人:"+this.mName, 420, 367, 0); /* 显示页数 */ tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"第一页,共五页", 280, 50, 0); tPcd.endText(); /* 换页 */ tDoc.newPage(); System.out.println("第一页写入完成"); /*****************************************开始处理合同第二页**************************************/ /* 插入顶头图片 */ Image tImgComName = Image.getInstance(mImgPath+"companyname.jpg"); tImgComName.setAbsolutePosition(147, 750); tImgComName.scaleAbsolute(300, 50); tDoc.add(tImgComName); tPcd.beginText(); /* 写入保险单大标题 */ tPcd.setFontAndSize(tBFChinese, 20); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"保 险 单", 250, 710, 0); /* 设置正文行间距 */ int tHeight = 16; /* 设置正文最高像素 */ int tStartHeight = 700; /* 设置正文左边距*/ int tLeftWidth = 50; /*设置一行有两列的第二列左边距*/ int tRigthWidth = 370; /* 更改成小字体,开始写正文 */ tPcd.setFontAndSize(tBFChinese, 10); /* PDF中显示的正文文字信息 */ tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"币值单位:人民币元", tLeftWidth, tStartHeight-tHeight*1, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, tStartHeight-tHeight*2, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"保险合同号:"+this.mContNo, tLeftWidth, tStartHeight-tHeight*3, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"合同生效日:"+this.mStartDate.substring(0,4)+""+this.mStartDate.substring(5,7)+""+this.mStartDate.substring(8,10)+"日0时",tRigthWidth, tStartHeight-tHeight*3, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, tStartHeight-tHeight*4, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"投保人", tLeftWidth, tStartHeight-tHeight*5, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"姓名:"+this.mName, tLeftWidth, tStartHeight-tHeight*6, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"性别:"+this.mSex, tRigthWidth, tStartHeight-tHeight*6, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"出生日期:"+this.mBirtth.substring(0,4)+""+this.mBirtth.substring(5,7)+""+this.mBirtth.substring(8,10)+"", tLeftWidth, tStartHeight-tHeight*7, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"证件号码:"+this.mIDNO, tRigthWidth, tStartHeight-tHeight*7, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"通讯地址:"+this.mAddress, tLeftWidth, tStartHeight-tHeight*8, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"邮政编码:"+this.mZipCode, tLeftWidth, tStartHeight-tHeight*9, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"电子邮箱:"+this.mEmail, tRigthWidth, tStartHeight-tHeight*9, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, tStartHeight-tHeight*10, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"被保险人为投保人本人", tLeftWidth, tStartHeight-tHeight*11, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, tStartHeight-tHeight*12, 0); this.mBnfNo = mSLCBnfSet.size(); for(int i=1;i<=this.mSLCBnfSet.size();i++) { tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"身故受益人:"+mSLCBnfSet.get(i).getName(), tLeftWidth, tStartHeight-tHeight*(12+i), 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"证件号码:"+mSLCBnfSet.get(i).getIDNo(), 160, tStartHeight-tHeight*(12+i), 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"受益顺序:"+i, 300, tStartHeight-tHeight*(12+i), 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"受益份额:"+mSLCBnfSet.get(i).getBnfLot()+"%",tRigthWidth,tStartHeight-tHeight*(12+i), 0); } tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, tStartHeight-tHeight*(13+this.mBnfNo), 0); tPcd.setFontAndSize(tBFChinese, 10); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"君龙守护保障计划", tLeftWidth, tStartHeight-tHeight*(14+this.mBnfNo), 0);[color=#FF0000] --(这里想弄成粗体)[/color] mTable = this.getItemTable(); /* 按指定位置写入表格 */ mTable.writeSelectedRows(0, -1,tLeftWidth ,tStartHeight-tHeight*(14.2f+this.mBnfNo),tPcd); /* 准备写入合同尾部信息 */ tPcd.beginText(); tPcd.setFontAndSize(tBFChinese, 10); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,this.mPrem, tLeftWidth, tStartHeight-tHeight*(16.5f+this.mBnfNo+this.mItemRow), 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"具体保险责任以条款所载内容为准。", tLeftWidth, tStartHeight-tHeight*(17.5f+this.mBnfNo+this.mItemRow), 0); if((tStartHeight-tHeight*(17.5f+this.mBnfNo+this.mItemRow))<= 150 + tHeight*3) { System.out.println("警告:此页信息有可能因为篇幅问题而发生重叠!"); } tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"-------------------------------------------------------------------------------------------------------------------------------------------------", tLeftWidth, 150 + tHeight*3, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"签发机构:"+this.mComCode, tLeftWidth, 150 + tHeight*2, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"合同成立日期:"+this.mStartDate.substring(0,4)+""+this.mStartDate.substring(5,7)+""+this.mStartDate.substring(8,10)+"", tRigthWidth, 150 + tHeight*2, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"服务地址:"+this.mServiceAddr, tLeftWidth, 150 + tHeight*1, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"邮政编码:"+this.mSerAddZipCode, tRigthWidth, 150 + tHeight*1, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"全国服务电话:400-666-0123", tLeftWidth, 150, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"网址:www.kdlins.com.cn", tRigthWidth, 150, 0); tPcd.showTextAligned(PdfContentByte.ALIGN_LEFT,"第二页,共五页", 280, 50, 0); tPcd.endText(); /* 插入图章图片 */ Image tImgStamp = Image.getInstance(mImgPath+"stamp.jpg"); tImgStamp.setAbsolutePosition(380, 70); tImgStamp.scaleAbsolute(130, 120); tDoc.add(tImgStamp); tDoc.newPage(); System.out.println("第2页写入完成");

 

转载自

分享到:
评论

相关推荐

    Delphi Android Create PDF

    通过以上分析,可以看出“Delphi Android Create PDF”是一个利用Delphi在Android平台上实现PDF文档生成的示例项目,涉及了跨平台开发、PDF生成技术以及用户界面设计等多个方面。通过学习和理解这个项目,开发者可以...

    Asp.net Core 生成 PDF demo

    PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create)); ``` 3. 打开和关闭文档:在写入任何内容之前,需要调用`Open()`方法打开文档,写入完毕后,记得调用`Close()`关闭文档。 ```...

    flyingsaucer html转pdf demo

    renderer.createPDF(pdfFilePath); } catch (Exception e) { e.printStackTrace(); } } } ``` 这段代码会读取指定路径的HTML文件,并将内容生成为PDF,保存在指定的pdfFilePath。 4. **处理CSS样式**:...

    java生成pdf,再把pdf转成图片的demo.rar

    - PDFBox中的`PDDocument`、`PDFRenderer`、`BufferedImage`等类,以及`createImage`、`save`等方法。 5. **应用场景**: - PDF生成:报表自动化、电子发票、合同生成等。 - PDF转图片:网页预览、社交媒体分享...

    基于ItextSharp的开源PDF加密Demo

    PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("encrypted.pdf", FileMode.Create)); writer.SetEncryption( "userPassword".getBytes(), // 用户密码 "ownerPassword".getBytes(), // 所有...

    Java生成pdf的demo.rar

    public class createPdf { //自己做的一个简单例子,中间有图片之类的 //先建立Document对象:相对应的 这个版本的jar引入的是com.lowagie.text.Document Document document = new Document(PageSize.A4, 36.0F, ...

    C#给PDF文档加水印程序源码_Demo

    在IT行业中,PDF文档的处理是一项常见的任务,其中包括为PDF...通过这个Demo,开发者可以理解如何利用C#和iTextSharp实现PDF水印功能,并根据实际需求进行调整和扩展。这不仅有助于保护文档,还能为PDF增添个性化元素。

    3.使用OracleLogminer同步Demo.pdf

    - `createDictionary()` 方法:用于创建数据字典文件,这是Logminer解析日志文件前的必要步骤。 - `readLog()` 方法:读取归档日志文件,从中提取更改记录并同步到目标数据库。 #### 6. 实现细节 - **控制端配置...

    c# winform Itext 实现PDF导出简单demo

    这个简单的demo展示了如何利用Itext库将数据导出为PDF格式,非常适合初学者理解和实践。下面,我们将深入探讨这个知识点,以及如何一步步实现这个功能。 首先,你需要在你的项目中引入ItextSharp库。ItextSharp是...

    java实现将html转pdf,并在指定位置添加印章

    renderer.createPDF(new FileOutputStream(pdfFile)); System.out.println("HTML 转 PDF 成功,文件保存为:" + pdfFile); } catch (Exception e) { e.printStackTrace(); } } } ``` 接下来,我们要在生成的...

    c#输出pdf (动态填充表单内容,显示中文)Demo

    PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create)); // 获取AcroFields对象,它是处理表单的接口 AcroFields fields = stamper.AcroFields; // 填充表单字段,使用...

    rabbitMQ实战java版-rabbitMQ-demo.zip

    Channel channel = connection.createChannel(); // 声明交换机和队列 channel.exchangeDeclare("exchangeName", "exchangeType"); channel.queueDeclare("queueName", false, false, false, null); // 发送消息 ...

    js 导出中文pdf文件

    4. **生成PDF**:最后,使用PDFMake的`createPdf`方法生成PDF文件,并决定如何展示或下载它: ```javascript var docDefinition = { content: content }; pdfMake.createPdf(docDefinition).open(); ``` 如果你想...

    react-pdf-demo

    Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...

    SQL语言教程&demo.pdf

    ### SQL语言教程&demo.pdf 知识点概览 #### 一、SQL基础概念 - **定义**: SQL(Structured Query Language),即结构化查询语言,是一种标准的关系数据库管理系统(RDBMS)语言。 - **用途**: 用于存取数据、查询、...

    支付宝即时到账交易商户接口demo

    在"即时到账交易接口(create_direct_pay_by_user).pdf"和"即时到账交易接口(create_direct_pay_by_user)接入与使用规则.pdf"中,包含了接口的详细规格和接入步骤。这些文档通常会涵盖以下内容: - 接口URL:商家...

    支付宝双功能(担保、即时)、API、DEMO

    标准支付宝交易服务(trade_create_by_buyer)_[V1.0].pdf 支付宝双功能(担保、即时)使用手册.pdf 支付宝双功能接口集成教程.pdf DEMO包含:ASP、ASP.Net、Java、PHP

    sql语句&示例demo.pdf

    - 示例:`CREATE VIEW high_scoring_students AS SELECT name, score FROM students WHERE score &gt;= 90;` 以上只是 SQL 的一部分基本和高级用法,实际应用中还有更多的特性和功能,如事务处理、存储过程等。为了...

    mysql入门教程&demo.pdf

    CREATE DATABASE database_name; ``` 上述命令用于创建一个新的数据库。 - **删除数据库**: ```sql DROP DATABASE database_name; ``` 这个命令用于删除一个已存在的数据库。 - **使用数据库**: ```sql ...

    YuPdf v2.3.0 for D6-XE10.1 PDF 查看

    Create PDF documents containing text, graphics, and bitmap images. Easily add outlines, annotations, and document attachments. Embed JPEG and PNG images, preserving transparency. Embed Type 1 and ...

Global site tag (gtag.js) - Google Analytics