itextpdf输出PDF笔记

2023-10-07 18:58
文章标签 输出 笔记 pdf itextpdf

本文主要是介绍itextpdf输出PDF笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

输出带中文字体的文字,表格,图片的java程序如下:

程序环境为JDK1.7,itextpdf-5.5.3.jar


import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;





import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

public class PdfUtil {

    public static void main(String[] args) throws DocumentException, IOException {
        getDoc();
    }
    
    public static String getDoc() throws DocumentException, IOException {
    
        Document document = new Document();
        String filename="Helloworld.PDF";
        PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("D:\\Helloworld.PDF"));

       // BaseFont baseFont = BaseFont.createFont("/SIMKAI.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    
           //方法二:使用iTextAsian.jar中的字体    
        // BaseFont baseFont = BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);   
          //方法一:使用Windows系统字体(TrueType)    
         //BaseFont baseFont = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    
         //方法三:使用资源字体(ClassPath)  ,将字体文件拷贝放入ClassPath目录下  
         BaseFont baseFont = BaseFont.createFont("/SIMKAI.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);  //楷体  
         BaseFont baseFont2 = BaseFont.createFont("/SIMLI.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);  //隶书
         BaseFont baseFont3 = BaseFont.createFont("/SIMFANG.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);  //仿宋
   
        Font font = new Font(baseFont);
        Font font2 = new Font(baseFont, 22, Font.UNDERLINE|Font.BOLD|Font.ITALIC); //字体大小12,加粗,斜体,下划线

        document.open();
        Paragraph paragraph1=new Paragraph("Hello World中文标题\r",font);
        Chunk chunk1 = new Chunk("中文测试This text is underlined \r",font2);
        Chunk chunk2 =new Chunk("getDoc() is creadby  \r"+DateTools.getCurrentTimeString(),font);
        
        paragraph1.add(chunk1);
        paragraph1.add(chunk2);
        paragraph1.setAlignment(1); //setAlignment的参数:1为居中对齐、2为右对齐、3为左对齐,默认为左对齐。
        //paragraph1.setLeading(45f);//设置行间距
        document.add(paragraph1);

        
        //生成表格加入文档
        PdfPTable table = new PdfPTable(4);
        table.setTotalWidth(800f);//设置表格的总宽度
        table.addCell(new Paragraph("XX网用户名",font));
        table.addCell(new Paragraph("出借金额",font));
        table.addCell(new Paragraph("借款期限(月)",font));
        table.addCell(new Paragraph("每月应收本息",font));
        table.addCell(new Paragraph("duanxinfu(姓名:好哥们;身份证号:11000000000000000 )",font));
        table.addCell("5000.00");
        table.addCell("10");
        table.addCell("510.00");
        document.add(table);
        
        //生成图片加入文档
        String imagePath = "D:/test2.jpg";
        //String pdfPath = "D:\\Helloworld.PDF";
        BufferedImage img = ImageIO.read(new File(imagePath));
        //FileOutputStream fos = new FileOutputStream(pdfPath);
        //Document doc = new Document(null, 0, 0, 0, 0);
        //document.setPageSize(new Rectangle(400, 200));
        Image image = Image.getInstance(imagePath);
        //PdfWriter.getInstance(document, fos);
        //document.open();
        image.scaleAbsolute(400f, 200f);
        document.add(image);
        
        
        document.add(paragraph1);
        document.close();
        return filename;
    }    

}


字体文件是从window系统字体文件夹下拷贝出来的。

这篇关于itextpdf输出PDF笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/159767

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取