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

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图