`
liuzhiqiang19890403
  • 浏览: 61014 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

pdf、word

 
阅读更多

       在项目中涉及到合同下载和说明书下载,合同下载是其他的同事交接到我手里面的活,之前也没做过合同相关的东西,光听就是多么高大上的东西,但是接触后你就知道 什么他么的玩意啊 ,这么简单。但是简单也是在使用外部jar包的情况下,那就是itext了。需要使用到的jar请见附件。

       itext在使用方面确实挺好用的,不管是生成pdf或者是word文档,全能够实现(最起码我在项目中实现功能是完全可以了,还有就是我的这些个东西也是在参考其他文件的基础上完成的)

     

 

 

       itext在生成pdf文件中,有两种实现机制:第一、可以通过模板类来完善pdf文档

                                                                       第二、可以不使用模板自己生成pdf文档

 

第一,使用模板类完善pdf文档

           PdfReader pdfTemplate = new PdfReader(inFile);--------------读取模板类流
           FileOutputStream fileOutputStream = new FileOutputStream(outFile);----------输出指定文件的输出流           
           PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream); -------模板和最终结果结合          
           stamper.setFormFlattening(true);
           //通过使用pdf阅读编辑软件操作pdf文件,给pdf文件赋予表单域,并给出属性名称,然后通过itext来找到相对应的属性名称,并且给这个属性名称代表的表单域进行赋值(推荐使用Adobe Acrobat软件来编辑pdf文件......)
           stamper.getAcroFields().setField("contract_series","" );            

           stamper.getAcroFields().setField("bid_real_name", ""); 

          stamper.getAcroFields().setField("bid_money", "");

           stamper.close();
           pdfTemplate.close();

 

 

第二、不使用模板生成pdf文件,直接生成

Document doc = new Document();
  try {
   PdfWriter.getInstance(doc, new FileOutputStream("d:\\createSamplePDF.pdf"));
  } catch (Exception e1) {
   e1.printStackTrace();
  }
  doc.open();
  RtfFont titleFont = new RtfFont("仿宋_GB2312", 20, Font.NORMAL,
                 Color.BLACK);
  RtfFont contextFont = new RtfFont("仿宋_GB2312", 15, Font.NORMAL,
                 Color.BLACK);
   try {
   Table table = new Table(12, 16);
    int[] withs = { 3, 9, 5, 4, 4, 3, 3, 14, 14, 14, 14, 14 };
       /** 设置每列所占比例 author:yyli Sep 15, 2010 */
    table.setWidths(withs);
    /** 表格所占页面宽度 author:yyli Sep 15, 2010 */
          table.setWidth(100);
          /** 居中显示 author:yyli Sep 15, 2010 */
          table.setAlignment(Element.ALIGN_CENTER);
          /** 自动填满 author:yyli Sep 15, 2010 */
          table.setAutoFillEmptyCells(true);
          String titleString = "债权说明书";
          Paragraph title = new Paragraph(titleString);
       // 设置标题格式对其方式
          title.setAlignment(Element.ALIGN_CENTER);
          title.setFont(titleFont);
          doc.add(title);
          String contextString ="尊敬的冯长辉先生 ,您好!";
          Paragraph context = new Paragraph(contextString);
          // 正文格式对齐方式
          context.setAlignment(Element.ALIGN_LEFT);
          context.setFont(contextFont);
          // 与上一段落(标题)的行距
          context.setSpacingBefore(10);
          // 设置第一行空的列数(缩进)
          // context.setFirstLineIndent(20);
          doc.add(context);
          String contextString2 ="    货币单位:人民币(元)";
          Paragraph context2 = new Paragraph(contextString2);
          // 正文格式对齐方式
          context2.setAlignment(Element.ALIGN_LEFT);
          context2.setFont(contextFont);
          // 与上一段落(标题)的行距
          context2.setSpacingBefore(10);
          // 设置第一行空的列数(缩进)
          // context.setFirstLineIndent(20);
          doc.add(context2);
          Cell[] cellHeaders = new Cell[11];
          cellHeaders[0] = new Cell(new Phrase("序号", contextFont));
          cellHeaders[1] = new Cell(new Phrase("课程名称", contextFont));
          cellHeaders[2] = new Cell(new Phrase("教师", contextFont));
          cellHeaders[3] = new Cell(new Phrase("学分", contextFont));
          cellHeaders[4] = new Cell(new Phrase("上课周次", contextFont));
          cellHeaders[5] = new Cell(new Phrase(" ", contextFont));
          cellHeaders[5].setColspan(2);
          cellHeaders[6] = new Cell(new Phrase("星期一", contextFont));
          cellHeaders[7] = new Cell(new Phrase("星期二", contextFont));
          cellHeaders[8] = new Cell(new Phrase("星期三", contextFont));
          cellHeaders[9] = new Cell(new Phrase("星期四", contextFont));
          cellHeaders[10] = new Cell(new Phrase("星期五", contextFont));
          table.addCell(cellHeaders[0]);
          table.addCell(cellHeaders[1]);
          table.addCell(cellHeaders[2]);
          table.addCell(cellHeaders[3]);
          table.addCell(cellHeaders[4]);
          table.addCell(cellHeaders[5]);
          table.addCell(cellHeaders[6]);
          table.addCell(cellHeaders[7]);
          table.addCell(cellHeaders[8]);
          table.addCell(cellHeaders[9]);
          table.addCell(cellHeaders[10]);
          doc.add(table);
          doc.close();
  } catch (Exception e) {
   e.printStackTrace();
  } 

 

 

------------------------------------------------------------------------------------使用itext生成word文档,请参考http://outofmemory.cn/code-snippet/1892/usage-iText-word-document-insert-complex-form

/******************************************word*********************************************************/ 

Document doc = new Document();
  try {
   RtfWriter2.getInstance(doc, new FileOutputStream("d:\\createSamplePDF.doc"));
  } catch (Exception e1) {
   e1.printStackTrace();
  }
//  ByteArrayOutputStream baos = new ByteArrayOutputStream();
//  RtfWriter2.getInstance(doc, baos);
  doc.open();
  RtfFont titleFont = new RtfFont("仿宋_GB2312", 20, Font.NORMAL,
                 Color.BLACK);
  RtfFont contextFont = new RtfFont("仿宋_GB2312", 15, Font.NORMAL,
                 Color.BLACK);
   try {
   Table table = new Table(12, 16);
    int[] withs = { 3, 9, 5, 4, 4, 3, 3, 14, 14, 14, 14, 14 };
       /** 设置每列所占比例 author:yyli Sep 15, 2010 */
    table.setWidths(withs);
    /** 表格所占页面宽度 author:yyli Sep 15, 2010 */
          table.setWidth(100);
          /** 居中显示 author:yyli Sep 15, 2010 */
          table.setAlignment(Element.ALIGN_CENTER);
          /** 自动填满 author:yyli Sep 15, 2010 */
          table.setAutoFillEmptyCells(true);
          String titleString = "债权说明书";
          Paragraph title = new Paragraph(titleString);
       // 设置标题格式对其方式
          title.setAlignment(Element.ALIGN_CENTER);
          title.setFont(titleFont);
          doc.add(title);
          String contextString ="尊敬的冯长辉先生 ,您好!";
          Paragraph context = new Paragraph(contextString);
          // 正文格式对齐方式
          context.setAlignment(Element.ALIGN_LEFT);
          context.setFont(contextFont);
          // 与上一段落(标题)的行距
          context.setSpacingBefore(10);
          // 设置第一行空的列数(缩进)
          // context.setFirstLineIndent(20);
          doc.add(context);
          String contextString2 ="      货币单位:人民币(元)";
          Paragraph context2 = new Paragraph(contextString2);
          // 正文格式对齐方式
          context2.setAlignment(Element.ALIGN_LEFT);
          context2.setFont(contextFont);
          // 与上一段落(标题)的行距
          context2.setSpacingBefore(10);
          // 设置第一行空的列数(缩进)
          // context.setFirstLineIndent(20);
          doc.add(context2);
          Cell[] cellHeaders = new Cell[11];
          cellHeaders[0] = new Cell(new Phrase("序号", contextFont));
          cellHeaders[1] = new Cell(new Phrase("课程名称", contextFont));
          cellHeaders[2] = new Cell(new Phrase("教师", contextFont));
          cellHeaders[3] = new Cell(new Phrase("学分", contextFont));
          cellHeaders[4] = new Cell(new Phrase("上课周次", contextFont));
          cellHeaders[5] = new Cell(new Phrase(" ", contextFont));
          cellHeaders[5].setColspan(2);
          cellHeaders[6] = new Cell(new Phrase("星期一", contextFont));
          cellHeaders[7] = new Cell(new Phrase("星期二", contextFont));
          cellHeaders[8] = new Cell(new Phrase("星期三", contextFont));
          cellHeaders[9] = new Cell(new Phrase("星期四", contextFont));
          cellHeaders[10] = new Cell(new Phrase("星期五", contextFont));
          table.addCell(cellHeaders[0]);
          table.addCell(cellHeaders[1]);
          table.addCell(cellHeaders[2]);
          table.addCell(cellHeaders[3]);
          table.addCell(cellHeaders[4]);
          table.addCell(cellHeaders[5]);
          table.addCell(cellHeaders[6]);
          table.addCell(cellHeaders[7]);
          table.addCell(cellHeaders[8]);
          table.addCell(cellHeaders[9]);
          table.addCell(cellHeaders[10]);
          doc.add(table);
          doc.close();
  } catch (Exception e) {
   e.printStackTrace();
  }

 

 

 

参考文档:http://www.360doc.com/content/10/0424/17/633992_24681953.shtml

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    word to pdf word xml to pdf

    "word to pdf word xml to pdf"这个主题聚焦于将Microsoft Word文档转换为PDF格式,以及XML数据如何转化为PDF。下面将详细阐述这两个过程。 首先,我们来看“word to pdf”转换。Microsoft Word是一款广泛使用的...

    pdfword转换器支持批量转换

    pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换...

    wordToPDF_pdfword_word转pdf_word转pdf_pdf_firehhy_源码.rar.rar

    标题 "wordToPDF_pdfword_word转pdf_word转pdf_pdf_firehhy_源码.rar.rar" 暗示了这是一个关于将Word文档转换为PDF格式的软件或工具的源代码包。描述中的内容与标题相同,进一步确认了这个压缩包包含的是与Word到PDF...

    PDF WORD 扫描识别

    PDF和Word是两种常见的文档格式,每种都有其独特的特性和用途。PDF(Portable Document Format)主要用于保持文档的原始布局和格式,而Word(Microsoft Word)则是一个强大的文本编辑工具,适合创建、编辑和格式化...

    PDF Word Converter V2 一站式文档转换解决方案

    PDF Word Converter V2 一站式文档转换解决方案 功能亮点: PDF 转 Word:轻松将 PDF 文档转换为可编辑的 Word 文件,保持原有格式和布局。 Word 转 PDF:将 Word 文档转换为 PDF 格式,确保跨平台的文档一致性和...

    word2pdf word转pdf word批量转pdfbatchwork.doc.to.pdf.converter工具 软件.zip

    最好的 最好用的 word2pdf 工具 软件 word转pdf word批量转pdf batchwork.doc.to.pdf.converter.cr 资源管理器 内含安装步骤安装方案 安装完毕后为正版 xp win7 win8 win10均可用 支持资源管理器右键菜单

    利用poi+itextpdf进行word转pdf.rar

    在IT行业中,转换文档格式是一项常见的任务,例如将Word文档转换为PDF。在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖...

    利用poi+itextpdf进行word转pdf.zip

    将word转换成pdf确实有很多种方案!最近正好需要做一个这样的功能,需求是将word模板进行签名后转换为pdf。为此,我花了一点时间去网上找方案。这里记录一下最终的方案:利用poi+itextpdf进行word转pdf。此资源按...

    添加水印,PDF Word 等添加水印

    用于添加水印,PDF Word 文档等添加水印

    pdf word 转换器

    pdf word转换 轻松实现转换 如果你是收到这样的困扰--pdf与word 文档无法转换 那么这个软件就可以帮你解决问题!

    使用IText生成PDF和WORD文档

    IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...

    PDFword2.0

    PDFword2.0是一款强大的文件转换工具,专为用户提供了便捷的PDF到Word转换功能,使得处理文档格式转换变得更加简单高效。在当前数字化办公环境中,文件格式的互换经常是必不可少的需求,PDFword2.0正好满足了这一...

    python实现的离线pdf转word小工具

    离线的pdf转word小工具,不需要网络。 内涵源码及编译后的小程序。 程序使用pyqt5实现,同时打印输出日志。 代码使用需要pdf2docx三方包实现,为了在前台打印更多日志,将三方包中的Converter类进行了改进,将def _...

    汉王pdf转word

    汉王PDF转Word工具是一款专为用户解决PDF文档与Word文档相互转换问题的软件。它以其高识别率和高效转换速度赢得了用户的广泛好评。在处理PDF文档时,我们经常遇到需要将PDF内容编辑或修改的情况,而PDF的格式通常...

    Itext word转pdf

    文档POI只支持往生成的中填入文本,对于图片根本就不支持。使用itext 生成rtf格式的直接保存为word

    PDFWord互转破解

    PDFWord互转破解,solidconverterpdf_3.0

    Pdf转Word.zip_PDF转WORD_ab pdf2word -广告_pdf word_pdf转换工具_word 转 pd

    自制pdf转word实用小工具!无付费无限制随便转

    PDF转WORD程序

    PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转...

    PDF Word 牛X的组件

    PDF和Word是两种广泛使用的文档处理工具,它们在日常办公和学术交流中扮演着重要角色。"牛X的组件"可能是指一些高级或强大的插件、工具或功能,旨在提升PDF和Word的处理效率和效果。下面将详细介绍这两个领域的关键...

Global site tag (gtag.js) - Google Analytics