zoukankan      html  css  js  c++  java
  • Java在已存在的pdf文件中生成文字和图片--基础

    自我总结,有什么不足之处请告知,感激不尽!下一次总结pdf模板映射生成报表(应对多变的pdf报表需求,数据提供和报表生成解耦)。

    目的:在给定的pdf模板上生成报表,就需要知道最基本的操作:文字添加,图片添加。

    原因:pdf生成中,最常见的操作就是生成文字,生成图片,所以本次和大家一块来学习一下文字和图片的生成。

    准备工作:

      1. 引入jar: 在pom.xml中引入itextpdf包语句,在链接随便选一个版本(我的是5.20):http://www.mvnrepository.com/artifact/com.itextpdf/itextpdf

      2. 新建一个空白的pdf文件。

      3. 准备一张图片。

      4.需要理解的概念:在pdf页面坐标原点(0,0)在左下角

    code:Test类

    package com.core.pdf;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import com.itextpdf.text.BaseColor;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Image;
    import com.itextpdf.text.pdf.BaseFont;
    import com.itextpdf.text.pdf.PdfContentByte;
    import com.itextpdf.text.pdf.PdfReader;
    import com.itextpdf.text.pdf.PdfStamper;
    
    public class Test {
        
        public static void main(String[] args) throws DocumentException, IOException {
            BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
            InputStream input = new FileInputStream(new File("E:/pdf_test/test.pdf"));
            PdfReader reader = new PdfReader(input);
            OutputStream output = new FileOutputStream(new File("E:/pdf_test/test1.pdf"));
            PdfStamper stamper = new PdfStamper(reader, output);
            PdfContentByte page = stamper.getOverContent(1);
    
            //将文字贴入pdf
            page.beginText();
            page.setFontAndSize(baseFont,12);
            BaseColor coler = new BaseColor(0, 0, 0);
            page.setColorFill(coler);
            page.setTextMatrix(100,500); //设置文字在页面中的坐标
            page.showText("添加文字信息");
            page.endText();
            
            
            //将图片贴入pdf
            Image image = Image.getInstance("E:/pdf_test/8.png");
            image.setAbsolutePosition(100,200); //设置图片在页面中的坐标
            page.addImage(image);
            
            stamper.close();
            reader.close();
            input.close();
        }
    
    }

    好了本次总结结束

  • 相关阅读:
    <自动化测试>之<使用unittest Python测试框架进行参数化测试>
    <自动化测试>之<unittest框架使用1>
    <自动化测试>之<selenium API 查找元素操作底层方法>
    <自动化测试>之<selenium API 用法2>
    <自动化测试>之<Selenium API 的用法1>
    <Jmeter入门不放弃>之<3.两种常见录制脚本的方法>
    <Jmeter入门不放弃>之<2.常用功能>
    <Jmeter入门不放弃>之<1.认识jmeter>
    <自动化测试>之<SeleniumIDE使用详解 >
    sql 注入get与post模式语句
  • 原文地址:https://www.cnblogs.com/xxyfhjl/p/4143076.html
Copyright © 2011-2022 走看看