Java生成PDF

【Java生成PDF】 Java导出pdf 阅读详情

需要的两个包及下载地址:

(1)iText.jar:http://download.youkuaiyun.com/source/296416

(2)iTextAsian.jar(用来进行中文的转换):http://download.youkuaiyun.com/source/172399

 

下面是代码示例:

 

import java.awt.Color; 
import java.io.FileOutputStream;

import com.lowagie.text.Cell; 
import com.lowagie.text.Chapter; 
import com.lowagie.text.Document; 
import com.lowagie.text.Font; 
import com.lowagie.text.Image; 
import com.lowagie.text.List; 
import com.lowagie.text.ListItem; 
import com.lowagie.text.PageSize; 
import com.lowagie.text.Paragraph; 
import com.lowagie.text.Section; 
import com.lowagie.text.Table; 
import com.lowagie.text.pdf.BaseFont; 
import com.lowagie.text.pdf.PdfWriter;

public class ITextDemo { 
    public boolean iTextTest() { 
        try { 
            /** 实例化文档对象 */ 
            Document document = new Document(PageSize.A4, 50, 50, 50, 50);

            /** 创建 PdfWriter 对象 */ 
            PdfWriter.getInstance(document,// 文档对象的引用 
                    new FileOutputStream("d://ITextTest.pdf"));//文件的输出路径+文件的实际名称 
            document.open();// 打开文档

            /** pdf文档中中文字体的设置,注意一定要添加iTextAsian.jar包 */ 
            BaseFont bfChinese = BaseFont.createFont("STSong-Light", 
                    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); 
            Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);//加入document:

            /** 向文档中添加内容,创建段落对象 */ 
            document.add(new Paragraph("First page of the document."));// Paragraph添加文本 
            document.add(new Paragraph("我们是害虫", FontChinese)); //FontChinese:为中文字体的设置

            /** 创建章节对象 */ 
            Paragraph title1 = new Paragraph("第一章", FontChinese); 
            Chapter chapter1 = new Chapter(title1, 1); 
            chapter1.setNumberDepth(0); 
            /** 创建章节中的小节 */ 
            Paragraph title11 = new Paragraph("表格的添加", FontChinese); 
            Section section1 = chapter1.addSection(title11); 
            /** 创建段落并添加到小节中 */ 
            Paragraph someSectionText = new Paragraph("下面展示的为3 X 2 表格.", 
                    FontChinese); 
            section1.add(someSectionText);

            /** 创建表格对象(包含行列矩阵的表格) */ 
            Table t = new Table(3, 2);// 2行3列 
            t.setBorderColor(new Color(220, 255, 100)); 
            t.setPadding(5); 
            t.setSpacing(5); 
            t.setBorderWidth(1); 
            Cell c1 = new Cell(new Paragraph("第一格", FontChinese)); 
            t.addCell(c1); 
            c1 = new Cell("Header2"); 
            t.addCell(c1); 
            c1 = new Cell("Header3"); 
            t.addCell(c1); 
            // 第二行开始不需要new Cell() 
            t.addCell("1.1"); 
            t.addCell("1.2"); 
            t.addCell("1.3"); 
            section1.add(t);

            /** 创建章节中的小节 */ 
            Paragraph title13 = new Paragraph("列表的添加", FontChinese); 
            Section section3 = chapter1.addSection(title13); 
            /** 创建段落并添加到小节中 */ 
            Paragraph someSectionText3 = new Paragraph("下面展示的为列表.", FontChinese); 
            section3.add(someSectionText3); 
            /** 创建列表并添加到pdf文档中 */ 
            List l = new List(true, true, 10);// 第一个参数为true,则创建一个要自行编号的列表, 
            // 如果为false则不进行自行编号 
            l.add(new ListItem("First item of list")); 
            l.add(new ListItem("第二个列表", FontChinese)); 
            section3.add(l); 
            document.add(chapter1);

            /** 创建章节对象 */ 
            Paragraph title2 = new Paragraph("第二章", FontChinese); 
            Chapter chapter2 = new Chapter(title2, 1); 
            chapter2.setNumberDepth(0); 
            /** 创建章节中的小节 */ 
            Paragraph title12 = new Paragraph("png图片添加", FontChinese); 
            Section section2 = chapter2.addSection(title12);

            /** 添加图片 */ 
            section2.add(new Paragraph("图片添加: 饼图", FontChinese)); 
            Image png = Image.getInstance("D:/pie.png");//图片的地址 
            section2.add(png);

            document.add(chapter2); 
            document.close(); 
            return true; 
        } catch (Exception e2) { 
            System.out.println(e2.getMessage()); 
        } 
        return false; 
    }

    public static void main(String args[]) { 
        System.out.println(new ITextDemo().iTextTest()); 
    } 
}

 

 

注释:如果发现中文无法显示的时候,可以在你需要显示中文的地方先new Paragraph("",FontChinese);

Java中的PDF生成 在这个数字化时代,PDF文件已成为传递信息的重要方式。无论是合同、报告,还是技术文档,PDF都因其跨平台兼容性和固定格式而备受青睐。那么,你是否想过如何使用Java生成PDF呢?今天,我们将深入探讨Java中的PDF生成技术,让你轻松掌握这一技能,成为职场中的技术达人。在深入讨论技术细节之前,我们先来简单了解一下PDF。PDF,全称为Portable Document Format,是由Adobe公司在1993年推出的一种文件格式。 阅读详情

相关推荐

自动生成PDF文件(Java通过PDF模板自动生成PDF)

思路: 1、创建PDF模板(先创建对应的excel文件,创建好后另存为PDF文件)即可。 2、使用AdobeAcrobat DC工具打开PDF文件,设置自己想要替换的内容。 3、maven项目引入依赖: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.5</ve.

Vincebran的博客 2123

Java 操作 word 文档 (三)段落Paragraphs,文本加粗、斜体、字体、字体大小、复杂文本

1、段落标签 在 WordML 中,段落由 <w:p> 标签定义。 每个段落都有属性标签:<w:pPr> 。其中包含一些属性标签,比如段落的对其方式:<w:jc> ;段落的边框:<w:pBdr> 。 一般情况下:段落的内容就是一个或多个 <w:r> 标签构成。 2、引入 docx4j 2.1 引入 docx4j 的 maven 依赖 <dependency> <groupId>org.docx4

llk15884975173的博客 8006

Java 生成 pdf

Java 可以通过 IText 直接把内容生成 pdf 文件,下面的 Demo 主要演示了文件属性、页眉页脚、表格、段落文字、图片的生成。 先上代码: package html2PDF; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.Malform...

贵在坚持 2856

JAVA - 使用Apache POI生成word(四)Paragraph篇(在word中写入文字并设置样式)

使用Apache POI 在word中写入文字并设置样式

qq_38670087的博客 5265

java 实现PDF导出功能需要的中文支持文件

java 实现PDF导出功能需要的中文支持文件

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 679

用java写pdf时,直接new Paragraph(这里写中文)不显示的问题

解决方法,直接上代码,其中fontPath为字体文件所在的路径。可以将windows下的字体文件拷贝到项目中,windows字体文件所在路径:c:/windows/fonts/下。 import com.lowagie.text.*; Document document = new Document(PageSize.A3); BaseFont baseFont1 = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDD

shimmerkaiye的博客 2441

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 378

【教程】如何使用Java生成PDF文档?

PDF文档的生成通常包括两个步骤,首先需要使用Java代码创建一个PDF文档对象,然后向文档中添加内容。要生成PDF文档,我们可以使用多种Java开源库,如iText、Apache PDFBox和Flying Saucer等。在本教程中,我们将使用iText库来生成PDF文档。iText是一个流行的开源Java库,它提供了创建PDF文档所需的所有功能。本教程介绍了如何使用Java和iText库生成PDF文档。我们首先介绍了如何创建文档对象,然后向其中添加文本、图片和表格等内容。

Dark_orange的博客 1万+

【白话系列】倍增算法

【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。 【一】         从前,有一只可爱得不得了的小白兔,它想从

JarjingX 3万+

数字IC后端实战:Innovus与ICC2中如何巧妙规避Filler1缺失引发的DRC问题?

本文针对数字IC后端设计中工艺厂不提供最小填充单元Filler1的常见挑战,深入剖析了由此引发的DRC问题根源。详细对比了在Cadence Innovus和Synopsys ICC2两大主流PR工具中,如何通过设置单元间距约束来系统性规避物理缝隙,确保电源网络完整性与制造可靠性,为工程师提供了一套稳健的实战解决方案。

weixin_29303701的博客 306

java实现生成pdf_详解Java生成PDF文档方法

最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料。整理之后,发现有如下几个框架可以实现这个功能。1. 开源框架支持iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;Apache PDFBox,生成、合并PDF文档;docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。比较:iText开源协议为AGPL,而其他两个...

weixin_39695490的博客 4665

dify工作流的原理

摘要: Dify 工作流是一个基于有向无环图(DAG)的智能任务编排系统,支持多节点(如LLM调用、API工具、条件分支等)的可视化拖拽与流程编排。其核心原理包括执行引擎(解析DAG并管理节点依赖)、上下文变量传递(类Jinja模板的变量引用机制)和状态持久化(存储执行日志与中间结果)。工作流通过事件驱动执行,支持异步任务调度,并与RAG知识库、LLM服务等模块深度集成,最终可发布为API或对话应用。技术栈基于Python(FastAPI+Celery)和PostgreSQL,实现低代码化的AI应用开发。

nbspzs的专栏 2188

【生成PDF】【JAVA】纯后台生成Echarts图片,并将图片生成到PDF文档

本次任务:要求不经过web页面,Java如何生成含有Echarts图的PDF

qq_41773784的博客 1万+

AI Agent Harness实时监控大屏搭建实战

本文将以目前主流的AI Agent管控框架Harness为基础,结合React、ECharts、WebSocket技术,手把手带你搭建一套完整的实时监控大屏,覆盖全局概览、状态分布、工具调用统计、异常告警、实时日志等核心功能,不需要复杂的底层开发,复制代码就能快速跑通。本文我们从需求出发,先梳理了AI Agent的核心监控指标,然后搭建了监控大屏的静态布局,逐个实现了各个图表,对接了Harness的实时数据源,最后加了交互和告警功能,完整走了一遍监控大屏从设计到落地的全流程。

大数据洞察的博客 175

软考高级-系统架构设计师 知识点整理 (一篇就够了 建议收藏)

软考高级-系统架构设计师知识点整理---十万字总结,助你通过高级

片言可决讼,半纸能缚龙 7347

Java生成PDF文件

PDF作为日常常见的文件格式之一,有时候经常需要使用到。在Java中生成PDF的方式一般有:itext-PdStamper pdfStamper(根据模板生成PDF),itext-Document document(使用代码编写)等。 使用IText生成PDF:IText是一个能够快速生成PDF文件的Java类库,IText的Java类对于那些要生成包括文本,表格,图形的只读文档是很好用的。 ...

田野上的风筝 1万+

【银河麒麟服务器操作系统】安装英伟达4090D显卡驱动操作指南

本文详细介绍了在银河麒麟高级服务器操作系统V10SP3-2403-X86版本上安装NVIDIA RTX4090D显卡驱动的完整流程。主要内容包括:准备工作检查、开源驱动禁用、运行级别切换、依赖包安装以及交互式安装过程中的关键选项选择(32位库选Yes、X配置选No)。通过禁用nouveau驱动、重建内核引导等步骤确保驱动安装成功,最后通过nvidia-smi命令验证驱动安装情况。文档提供了操作检查表和安装流程图,帮助用户在银河麒麟系统上顺利完成显卡驱动部署。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3104

Java使用pdf模板生成pdf文件

有时候,业务中我们需要使用pdf模板生成一份pdf文件。如何生成pdf文件?如下,我们把左侧的模板生成为右侧的填充文件。

不积跬步,无以至千里 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

使用Java生成PDF文件

java使用itext生成pdf,直接执行main方法可用!!

enhengguodong的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

## Java实现PDF生成并且打印pdf文件(附demo)#### 目录:0. 效果预览1. 准备环境2. Java如何调用打印机进行打印3. Java如何生成pdf打印文件4. 实现pdf内数据动态填充(可按需求改变数据,有一个模板就行)##### 效果预览:- 说明:以下是根据不同用户数据和自己生成的pdf模板,动态生成的pdf文件,可直接调用打印机打印。- 数据可从数据库动态获取并且填充!...

weixin_36327991的博客 1250

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java生成pdf文件并打印

一、前言   前几天,需要实现打印下载报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库。废话不多说,进入正题。   二、iText简介   iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。   iText的安装非常方...

Stone.鱼儿的博客 1万+

[Java]使用Apache Pdfbox生成pdf

前言 笔者翻遍了网上关于Java生成pdf文章,发现大多都是使用itext来生成pdf,但是由于协议问题,这个方案对于商用不太友好。另外还有一种方式是采用Apache基金会开源的pdfbox来生成pdf,这也是笔者这次使用的方案,但是目前网上的博客或多或少都存在一些问题,于是我决定将自己的方案分享出来供大家参考。 方案主要分为下面3步: 准备pdf表单 生成pdf 将pdf转为图片并写入pdf文件 Maven依赖: &lt

2404_87525603的博客 5135

【生成PDF】Java如何根据前台Echarts图表生成PDF,并下载

简单介绍了JAVA如何创建PDF、如何将一张图片写入PDF、如何在前台拿到Echarts的图表。工具方法中提到了如何在PDF中创建表格。

qq_41773784的博客 5500

java pdf_Java 生成 PDF 文档

最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料。整理之后,发现有如下几个框架可以实现这个功能。1. 开源框架支持iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;Apache PDFBox,生成、合并PDF文档;docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。比较:iText开源协议为AGPL,而其他两个...

weixin_30109877的博客 1604
上一篇: Java中的线程池
下一篇: java中图片格式转换
八阿哥别走
博客等级 码龄16年 8粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值