java: itext 7.2.1 using jdk 17.0.1

2023-11-14

  /**
     *
     *
     *
     * */
   public static PdfFont getDefaultFont() {
       try {
//         return PdfFontFactory.createFont("C://windows//fonts//simsun.ttc,1", PdfEncodings.IDENTITY_H, false);// 引用系统字体
           return PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H");// 使用itext字体
       } catch (IOException e) {
           // 记录日志
           e.printStackTrace();
       }
       return null;
   }
     
    /**
     *
     *
     *
     * */
   public static PdfFont getImportFont(String fontName) {
       // 获取resource下文件夹路径
       String path = "src/resource/";
       String fontPath = path + fontName;
       try {
           // 处理中文乱码(支持Linux系统)
           //FontProgram fontProgram = FontProgramFactory.createFont(fontPath, false);
           PdfFont font = PdfFontFactory.createFont(path, PdfEncodings.IDENTITY_H);
           return font;
       } catch (IOException e) {
           // 记录日志
           e.printStackTrace();
       }
       return null;
   }
 
     
   PdfFont hfFont;
   {
       try {
           hfFont =PdfFontFactory.createFont(path);// new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 8, Font.NORMAL);
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
  
   /**
    * 图片水印
    *
    * */
   public static void addImageToPDFDU(String PDFPath){     
        
       try{    
             
 
           // PdfWriter writer = new PdfWriter(new File(PDFPath));            //new FileOutputStream();
            // writer = new PdfWriter(new File(PDFPath));
           // PdfDocument pdfDoc = new PdfDocument(writer);
  
  
  
           // PdfWriter pdfwriter = PdfWriter(new File(PDFPath);
            PdfDocument pdf = new PdfDocument(new PdfWriter(PDFPath));
            PageSize pageSize = new PageSize(PageSize.A4).rotate();
 
            //设置文档属性
            pdf.getDocumentInfo().setAuthor("涂聚文 Geovin Du");
            pdf.getDocumentInfo().setTitle("iText7 java测试PDF");
            pdf.getDocumentInfo().setSubject("涂聚文公司");
            pdf.getDocumentInfo().setMoreInfo("Geovin Du","1201");
            pdf.getDocumentInfo().setCreator("geovindu 涂聚文");
            pdf.getDocumentInfo().setKeywords("iText,涂聚文 塗聚文 Geovin Du");
             
             
            Document document = new Document(pdf,PageSize.A4,true);
 
            TextFooterEventHandler eventHandler = new TextFooterEventHandler(document);
            pdf.addEventHandler(PdfDocumentEvent.END_PAGE, eventHandler);
            for (int i = 0; i < 12; i++) {
                document.add(new Paragraph("Test " + i + " 涂聚文 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.").setFont(getDefaultFont()));
            }
 
            // the currently last page is also the last page of the document, so inform the event listener
            eventHandler.lastPage = pdf.getLastPage();
             
             
            PdfPage page1 = pdf.addNewPage();
            PdfCanvas canvas = new PdfCanvas(page1);
  
  
            // creating image data instance by passing the path to image
            ImageData img = ImageDataFactory.create("src/resource/gogo.png");
            canvas.saveState();
            // graphic state
            PdfExtGState state = new PdfExtGState();
            state.setFillOpacity(0.2f);
            canvas.setExtGState(state);
            canvas.addImageAt(img, 20, pageSize.getWidth()/2, false); //650,
            canvas.restoreState();
            document.add(new Paragraph("Adding image to PDF Example,涂聚文").setFont(getDefaultFont()));
             
            pdf.addNewPage();
            
            PdfFont headerFont = PdfFontFactory.createFont(path);
            PdfFont cellFont = PdfFontFactory.createFont(path);
  
      
           Table table = new Table(new float[]{4, 4, 4});
           table.setWidth(UnitValue.createPercentValue(100));
           // adding header
           table.addHeaderCell(new Cell().add(new Paragraph(
                   "姓").setFont(headerFont)));
           table.addHeaderCell(new Cell().add(new Paragraph(
                   "名").setFont(headerFont)));
           table.addHeaderCell(new Cell().add(new Paragraph(
                   "区域名称").setFont(headerFont)));         
             
             
     
           table.addCell(new Paragraph("1.0 geovindu").setFont(cellFont));
           table.addCell(new Paragraph("1.1 涂聚文").setFont(cellFont));
           table.addCell(new Paragraph("1.2 上海市").setFont(cellFont));
            
           table.addCell(new Paragraph("2.1 北京市").setFont(cellFont));
           table.addCell(new Paragraph("2.2 重庆市").setFont(cellFont));
           table.addCell(new Paragraph("2.3 宜春市").setFont(cellFont));
             
           document.add(table);
             
             
             
           document.close();
             
       } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       }
     }

/**
 * iText 7.2.1
 * bouncycastle 1.7.0
 * slf4j-api-1.6.1
 * slf4j-log4j12-1.6.1
 * log4j-1.2.16
 * 
 * */

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java: itext 7.2.1 using jdk 17.0.1 的相关文章

随机推荐

  • ML-数据分析模板

    文章目录 机器学习 数据分析模板 Objective Data Set Information Attribute Information INPUT 单特征与缺失值展示 Feature Cleaning Engineering 标签转换
  • Window10与Linux虚拟机实现文件传输

    前言介绍 对于许多需要使用Linux虚拟机的小伙伴来说 如何实现虚拟机和主机间的文件传输是一个问题 尤其是有些文件虚拟机下载不太方便 这时文件共享就比较重要了 当然 虚拟平台的软件提供商也有着一些解决方案 如VM下的Tools工具或者VB下
  • 5种Python雪花飘落代码(建议收藏)

    前言 本文章向大家介绍用 Python 实现雪花飘落效果 运行以下代码 你将会看到一个美丽的雪花效果 你可以根据自己的需求 调整代码中的参数值以及其他细节 第一种 普通雪花代码 import turtle import random def
  • sqrt函数

    sqrt 函数的用法 求三角形面积 今天刷题的时候看到了三角形面积 突然想到老师上课讲过 这不是好简单 就直接上代码 include
  • Faster R-CNN算法

    Faster R CNN算法是作者Ross Girshick对Fast R CNN算法的一种改进 Fast R CNN在速度和精度上都有了不错的结果 但仍有一些不足之处 Faster R CNN算法同样使用VGG 16网络结构 检测速度在G
  • 联想笔记本声音太小怎么办_电脑音量调到最大了还是声音太小,怎么办啊??...

    展开全部 准备一台电脑 计算机需e68a843231313335323631343130323136353331333433643633要安装驱动程序向导 或备份声卡驱动程序或驱动程序光盘 以下步骤是win7操作界面截图演示 1 首先 点击
  • java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围 在叙述protected修饰符使用之前 先来说一下java 可以发现 开发java程序是一个时时刻刻都在编写类 开发类 定义类的过程 类里面可以有main方法 main方法不管存在那个
  • ppt太大怎么压缩变小呢?五种方法灵活运用

    为了更好地压缩PPT文件 还有一些制作PPT时的建议 使用压缩后的图片 在将图片插入到PPT中时 可以将其压缩后再插入 这样可以显著减小文件大小 废弃多余的幻灯片 将不需要的幻灯片删除或隐藏掉 这样可以减小PPT文件的大小 关闭自动保存 在
  • VC++中窗口过程函数及其消息发送、响应机制介绍

    在VC 中 窗口过程函数是应用程序定义的一个函数 主要功能是处理发送给窗口的消息 窗口过程函数的定义是 virtual LRESULT WindowProc UINT message WPARAM wParam LPARAM lParam
  • maven本地私服取jar包后再进行反编译获取源代码

    1 先去maven安装目录寻找setting xml D maven apache maven 3 1 1 conf 利用记事本打开 寻找标签 nexus central nexus mirror http XXX XXX XX XX 80
  • 【深度学习】CNN模型处理简单时间序列

    本文使用CNN模型 Conv1d卷积进行时间序列的分析处理 将数据导入模型后 可以运行 但模型预测精度不高 且输出十分不稳定 此模型仅用于熟悉CNN模型的基本结构 如有错误 还望海涵 目录 一 数据介绍 二 数据预处理 三 模型代码 四 模
  • 使用fastjson报错Exception in thread “main“ com.alibaba.fastjson.JSONException: syntax error, pos 1, line

    使用fastjson报错Exception in thread main com alibaba fastjson JSONException syntax error pos 1 line 1 column 2 问题背景 解决方案 总结
  • GDB调试技巧实战--为release程序加载符号

    问题 内存数据分析是开发人员的重要技能 特别是对于C C 程序员而言 微软表示 微软每年分配的CVE中有70 仍然是内存安全问题 内存数据就像事故现场 人们可以在其中发现内存数据重叠或损坏的内存数据 从而可能提供有价值的洞察力 揭示问题的根
  • AlexNet详解

    入门小菜鸟 希望像做笔记记录自己学的东西 也希望能帮助到同样入门的人 更希望大佬们帮忙纠错啦 侵权立删 完整代码在我的github上 有需要的朋友可以康康 GitHub tt s t Deep Learning Store some of
  • excel表数据多线程导入数据库

    Student table 一个学生表 excel表 Student实体 Data public class Student private int id private int studentId private int teacherI
  • Linux端查看.a/.so库文件信息,包含架构等等

    nm XXX a 上面的命令可列出 o a so中定义的函数 全局变量等等 readelf h XXX a 这命令可列出所有so的OS ABI 架构信息 类别 32 64位 等等
  • dynamic_cast与 static _cast:类的上下行转换

    A为基类 B为派生类 现在定义 A pA B pB 一般来说 pB可以转换为pA 把派生类的指针或引用转换成基类表示 称之为上行转换 但反之一般是不行的 也就是将pA转换为pB 把基类指针或引用转换成派生类表示 称之为下行转换 这种行为直接
  • springboot配置logback-spring.xml文件详解

    生产配置模板 可以作为模板直接使用 使用该配置会生成两个文件夹 info和error 分别存放info和error级别的日志文件 具体见配置文件
  • npm ERR! fatal: unable to access ‘https://github.com/adobe-webplatform/eve.git/‘: OpenSSL SSL_read:

    解决 git config global url https insteadOf git
  • java: itext 7.2.1 using jdk 17.0.1

    public static PdfFont getDefaultFont try return PdfFontFactory createFont C windows fonts simsun ttc 1 PdfEncodings IDEN