/**
     * 使用iText打印文本类型的pdf
     * @throws DocumentException
     * @throws Exception
     */
    
    public static String iTextTextToPdf(PageData orderMsg,List<Orderdetail> orderdetails, HttpServletRequest request) throws Exception{
        
        Rectangle pageSize = new Rectangle(320f, 425f);
        //实例化文档对象
        Document document = new Document(pageSize,10,10,10,10);
        //获取manifestNumber
        String OrderNumber = orderMsg.getString("OrderNumber");
        String pdfSaveUrl=request.getSession().getServletContext().getRealPath("/")+"printlabel/" + OrderNumber +".pdf";
        PdfWriter.getInstance(document,new FileOutputStream(pdfSaveUrl));
        
        
        document.open();
        
        Font font1 = new Font(Font.FontFamily.HELVETICA, 12, Font.BOLD);
        Font font3 = new Font(BaseFont.createFont(), 10);
        
        //头部logo
        Paragraph image = new Paragraph();
        Image image1 = Image.getInstance(request.getSession().getServletContext().getRealPath("/") + "system/img/logo/logo_L.png");
        image1.scaleAbsolute(85f,50f);
          image1.setAbsolutePosition(110, 380);
          image.add(image1);
          image.setAlignment(1);
          image.setSpacingBefore(20f);
          document.add(image);
          
          //设置文本部分显示订单的信息
          Paragraph shipper = new Paragraph();
          shipper.setSpacingBefore(30f);
        shipper.add(Chunk.NEWLINE);
        shipper.add(new Paragraph("Order Message:",font1));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String data = sdf.format(orderMsg.get("OrderDate"));
        shipper.add(new Paragraph("OrderDate:"+"                   " + data, font3));
        shipper.add(new Paragraph("OrderNumber:"+"              "+ orderMsg.getString("OrderNumber"), font3));
        shipper.add(new Paragraph("Email:"+"                           "+orderMsg.getString("Email"), font3));
        shipper.add(new Paragraph("WarehouseName:"+"        "+orderMsg.getString("WarehouseName"), font3));
        shipper.add(new Paragraph("OrderStatus:"+"                "+orderMsg.getString("OrderStatus"), font3));
        shipper.add(new Paragraph("PayStatus:"+"                   "+orderMsg.getString("PayStatus"), font3));
        shipper.add(new Paragraph("ServiceType:"+"                "+orderMsg.getString("ServiceTypeName"), font3));
        shipper.add(new Paragraph("ColoaderName:"+"            "+orderMsg.getString("ColoaderName"), font3));
        shipper.setSpacingAfter(15f);
        document.add(shipper);
        LineSeparator separator = new LineSeparator(1f,100,BaseColor.BLACK,Element.ALIGN_CENTER,-5f);
        document.add(separator);
          //生成条形码
        ShipmetArrivalScanService sa=new ShipmetArrivalScanService();
        Boolean flag = sa.createdBarCode(OrderNumber,request);
        if(flag){
            //打印条形码
            Paragraph image2 = new Paragraph();
            Image image3 = Image.getInstance(request.getSession().getServletContext().getRealPath("/") +"barcode/" + OrderNumber +".png");
            image3.scaleAbsolute(200f,75f);
              image3.setAbsolutePosition(40, 0);
              image2.add(image3);
              document.add(image2);
        }
        
        //设置显示订单明细的表格,显示4列
        PdfPTable table=new PdfPTable(colNumber);
        table.getDefaultCell().setBorderWidth(1);
        table.setTotalWidth(300);
        table.setLockedWidth(true);
        
        table.setTotalWidth(new float[]{ 70f, 70f, 70f,70f });
        table.setSpacingBefore(30f);
        table.setWidthPercentage(100);// 设置表格宽度为100%  
        table.setLockedWidth(true);
        
        PdfPCell cell = null;
        
        cell = new PdfPCell(new Paragraph(tableHeader[0],font3));
        
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        
        cell = new PdfPCell(new Paragraph(tableHeader[1],font3));
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        
        cell = new PdfPCell(new Paragraph(tableHeader[2],font3));
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        
        cell = new PdfPCell(new Paragraph(tableHeader[3],font3));
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        
        
        for (Orderdetail o : orderdetails) {
            PdfPCell cell1 = null;
            
               cell1 = new PdfPCell(new Paragraph(o.getItemname(),font3));
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell1);
            
            cell1 = new PdfPCell(new Paragraph(o.getPrice().toString(),font3));
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell1);
            
            cell1 = new PdfPCell(new Paragraph(o.getPiece().toString(),font3));
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell1);
            
            cell1 = new PdfPCell(new Paragraph(o.getDeclarevalue().toString(),font3));
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell1);
            
        }
        table.setSpacingAfter(15f);
        document.add(table);
        document.add(new LineSeparator(1f,100,BaseColor.BLACK,Element.ALIGN_CENTER,-5f));
        
        document.close();
        return OrderNumber;
    }

使用itext打印pdf相关推荐

  1. iText PDF 打印pdf

    iText是一个流行的Java库,可用于处理PDF文件.使用iText,您可以将PDF文档打印到打印机上. 以下是在Java中使用iText打印PDF文档的基本步骤: 创建PdfReader对象,用于 ...

  2. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

  3. java 生成pdf itext_使用Java组件itext 生成pdf介绍

    iText是一个能够快速产生PDF文件的Java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用iText与 ...

  4. java itext 设计器_使用Java组件itext 生成pdf的介绍

    [IT168 技术]iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给 ...

  5. SpringBoot加itext实现PDF导出

    场景 iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用iTe ...

  6. Java和iText导出pdf文档

    一:工程截图: 二:项目运行截图: 三:源代码: Book.java package com.iText.bean;public class Book {private int bookId;// 图 ...

  7. itext生成pdf间距_使用itext生成pdf

    在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过 在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到 ...

  8. iText导出pdf、word、图片

    一.前言  在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示 ...

  9. IText生成PDF

    一.场景 在做单位OA项目的时候有个功能,合同打印的功能,之前的想法是打印PDF.既然是打印PDF就需要用到PDF插件,java比较常用方便的插件有几种,我选择了IText,当然IText版本众多,也 ...

最新文章

  1. 小调查:足足两周了,下周你上班否?
  2. Apache Spark探秘:三种分布式部署方式比较
  3. nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
  4. 图像视频压缩:深度学习,有一套
  5. linux进程热更新 go,Golang热更新原理
  6. Python编程常见问题与解答
  7. 德鲁伊 oltp oltp_内存中OLTP –娱乐看门狗的三个关键点–桶数
  8. 科技范足 多家上市川企获省科技进步奖
  9. 更好的理解装饰设计模式和代理设计模式
  10. c++中类的默认构造函数,析构函数,拷贝构造函数
  11. 华南理工会计学计算机答案,2020华工会计学原理平时作业答案
  12. Vivado 错误代码 [DRC PDCN-2721] 解决
  13. Android 中app加固与瘦身
  14. 1分钟理清楚C++类模板和模板类区别
  15. Python有哪些优势?
  16. Vue2的响应式原理
  17. JMockit mock 静态块 static block
  18. 酱油带你用cocos2dx3.0完成一款战棋游戏 (曹操传)(一)地图制作篇 1
  19. 黄淮学院CSDN高校俱乐部把梳子卖给和尚话剧表演活动
  20. 图像 - 识别出图片里的数字和字母

热门文章

  1. ubuntu卸载软件(cmake)
  2. Angular5 Angular6类型“ObservableResponse”上不存在属性“map”
  3. 哈萨克斯坦特警抓住一个在骚乱中实施破坏的“恐怖分子”团伙,缴获大量枪支弹药和外国护照
  4. Nodejs 搭建https服务器(二)
  5. 广东人爱食的住家菜【香煎咸鱼】【咸鱼白菜】
  6. Fingerprint已经被使用的问题
  7. 购物车的实现(未登录时也可以使用)
  8. 【netty篇】- 第0章netty网络编程必备知识[持续更新中]~
  9. eNSP综合实验合集(eNSP综合大作业合集)_可先收藏
  10. 第十八届全国大学生智能汽车竞赛各分赛区比赛系统