java生成PDF文件

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

1、需要导入itext.jar和iTextAsian.jar  下载地址:http://sourceforge.net/projects/itext/files/

import java.awt.Color;  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.text.DecimalFormat;  
import java.text.NumberFormat;  
import java.util.ArrayList;  
import java.util.Date;  
  
import com.lowagie.text.Document;  
import com.lowagie.text.DocumentException;  
import com.lowagie.text.Element;  
import com.lowagie.text.Font;  
import com.lowagie.text.PageSize;  
import com.lowagie.text.Paragraph;  
import com.lowagie.text.Phrase;  
import com.lowagie.text.pdf.BaseFont;  
import com.lowagie.text.pdf.PdfCell;  
import com.lowagie.text.pdf.PdfPCell;  
import com.lowagie.text.pdf.PdfPRow;  
import com.lowagie.text.pdf.PdfPTable;  
import com.lowagie.text.pdf.PdfWriter;  
import com.sun.java_cup.internal.internal_error;  
  
public class PDFReport{  
    Document document = new Document();// 建立一个Document对象      
      
    private static Font headfont ;// 设置字体大小  
    private static Font keyfont;// 设置字体大小  
    private static Font textfont;// 设置字体大小  
      
  
      
    static{  
        BaseFont bfChinese;  
        try {  
            //bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);  
            bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);  
            headfont = new Font(bfChinese, 10, Font.BOLD);// 设置字体大小  
            keyfont = new Font(bfChinese, 8, Font.BOLD);// 设置字体大小  
            textfont = new Font(bfChinese, 8, Font.NORMAL);// 设置字体大小  
        } catch (Exception e) {           
            e.printStackTrace();  
        }   
    }  
      
      
    public PDFReport(File file) {          
         document.setPageSize(PageSize.A4);// 设置页面大小  
         try {  
            PdfWriter.getInstance(document,new FileOutputStream(file));  
            document.open();   
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
          
          
    }  
    int maxWidth = 520;  
      
      
     public PdfPCell createCell(String value,com.lowagie.text.Font font,int align){  
         PdfPCell cell = new PdfPCell();  
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);          
         cell.setHorizontalAlignment(align);      
         cell.setPhrase(new Phrase(value,font));  
        return cell;  
    }  
      
     public PdfPCell createCell(String value,com.lowagie.text.Font font){  
         PdfPCell cell = new PdfPCell();  
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);  
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);   
         cell.setPhrase(new Phrase(value,font));  
        return cell;  
    }  
  
     public PdfPCell createCell(String value,com.lowagie.text.Font font,int align,int colspan){  
         PdfPCell cell = new PdfPCell();  
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);  
         cell.setHorizontalAlignment(align);      
         cell.setColspan(colspan);  
         cell.setPhrase(new Phrase(value,font));  
        return cell;  
    }  
    public PdfPCell createCell(String value,com.lowagie.text.Font font,int align,int colspan,boolean boderFlag){  
         PdfPCell cell = new PdfPCell();  
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);  
         cell.setHorizontalAlignment(align);      
         cell.setColspan(colspan);  
         cell.setPhrase(new Phrase(value,font));  
         cell.setPadding(3.0f);  
         if(!boderFlag){  
             cell.setBorder(0);  
             cell.setPaddingTop(15.0f);  
             cell.setPaddingBottom(8.0f);  
         }  
        return cell;  
    }  
     public PdfPTable createTable(int colNumber){  
        PdfPTable table = new PdfPTable(colNumber);  
        try{  
            table.setTotalWidth(maxWidth);  
            table.setLockedWidth(true);  
            table.setHorizontalAlignment(Element.ALIGN_CENTER);       
            table.getDefaultCell().setBorder(1);  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return table;  
    }  
     public PdfPTable createTable(float[] widths){  
            PdfPTable table = new PdfPTable(widths);  
            try{  
                table.setTotalWidth(maxWidth);  
                table.setLockedWidth(true);  
                table.setHorizontalAlignment(Element.ALIGN_CENTER);       
                table.getDefaultCell().setBorder(1);  
            }catch(Exception e){  
                e.printStackTrace();  
            }  
            return table;  
        }  
      
     public PdfPTable createBlankTable(){  
         PdfPTable table = new PdfPTable(1);  
         table.getDefaultCell().setBorder(0);  
         table.addCell(createCell("", keyfont));           
         table.setSpacingAfter(20.0f);  
         table.setSpacingBefore(20.0f);  
         return table;  
     }  
       
     public void generatePDF() throws Exception{  
        PdfPTable table = createTable(4);  
        table.addCell(createCell("学生信息列表:", keyfont,Element.ALIGN_LEFT,4,false));  
              
        table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER));  
        table.addCell(createCell("年龄", keyfont, Element.ALIGN_CENTER));  
        table.addCell(createCell("性别", keyfont, Element.ALIGN_CENTER));  
        table.addCell(createCell("住址", keyfont, Element.ALIGN_CENTER));  
          
        for(int i=0;i<5;i++){  
            table.addCell(createCell("姓名"+i, textfont));  
            table.addCell(createCell(i+15+"", textfont));  
            table.addCell(createCell((i%2==0)?"男":"女", textfont));  
            table.addCell(createCell("地址"+i, textfont));  
        }  
        document.add(table);  
          
        document.close();  
     }  
       
     public static void main(String[] args) throws Exception {  
         File file = new File("D:\\text.pdf");  
         file.createNewFile();  
        new PDFReport(file).generatePDF();        
    }  
      
      
}


java按模板生成pdf_java中根据模板生成pdf文件 简介本文使用java引入apache提供的pdf操作工具生成pdf文件,主要是根据需求开发了一个util类,记录一下学习和开发过程。业务需求因为业务需要,对于不同的用户要生成一个不同的pdf文件,记录了保险用户的疾病信息和结算信息等,根据pdf模板,从数据库中获取用户的基本和结算信息,然后生成该用户的结算文件。根据这个需求,写了一个工具类,主要功能就是根据模板生成pdf文件,并保存到服务器指定位置... 阅读详情

相关推荐

自动生成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生成PDF文档?

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

Dark_orange的博客 1万+

iTextAsian.jar iText.jar

iTextAsian.jar iText.jar java生成pdf的相关jar包 目前已被替换,此版本可用

java实现生成PDF文件

1.PDF文件简介 PDF是可移植文档格式,是一种电子文件格式,具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。在系统开发中通常用来生成比较正式的报告或者合同类的电子文档。 2.生成P

xhga 2万+

itext-asian.jar

itext-asian.jar、itext-asian.jar、itext-asian.jar、itext-asian.jar

车辆TBOX科普 第64次 TBOX系统集成测试与文档编写

汽车电子开发中,TBOX作为核心网关面临独特挑战:需处理多网络接口、满足严苛安全标准并确保10年以上可靠性。项目文档是开发流程的核心资产,必须与编码同步更新,构建从需求到测试的完整闭环。系统集成测试需分层进行,结合硬件在环测试和自动化工具,并严格管理缺陷。文档与测试深度协同,通过追溯矩阵确保每个需求都被覆盖验证。最终交付不仅是软件包,更是一套包含完整验证报告的信任体系。这种严谨的工程纪律,是将代码转化为车规级可靠产品的关键保障。

IT深耕十余载,大道之简 1326

Java 在线生成 PDF 文件

Java 在线生成 PDF 文件

weixin_46619605的博客 2057

Unity Scriptable Build Pipeline (SBP) 详解

Unity 的可编程构建管线(Scriptable Build Pipeline, SBP)标志着引擎构建架构的一次关键转变,它从不透明的 C++ 实现转向了灵活、可扩展的 C# 框架。SBP 旨在满足现代游戏开发日益增长的需求,通过改进增量处理和高效缓存机制显著提升了构建性能。它赋予开发者对内容构建过程前所未有的控制力,从而能够针对特定项目需求进行深度定制。尽管 SBP 是 Unity 推荐的 Addressables 系统的重要基础层,但理解其核心组件、构建流程和高级功能对于优化大型项目、简化 CI/C

m0_57771536的博客 2209

Java使用pdf模板生成pdf文件

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

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

交流伺服电机绝对式位置控制实战指南

伺服电机控制是工业自动化的核心技术之一,其核心原理是通过闭环反馈实现精确位置控制。绝对值编码器作为关键传感器,能提供单圈内的绝对位置信息,避免了增量式编码器的累计误差问题。在工程实践中,电子齿轮比配置、位置环PID调节等技术直接影响系统动态性能。本文以包装机械为典型场景,详细解析了从硬件选型到参数整定的全流程实现方案,特别是针对单圈绝对值编码器初始化和限位保护等易错环节,给出了经过验证的解决方案。通过合理设置17位编码器的电子齿轮比和优化运动控制算法,最终实现了±0.05°的高精度定位。

weixin_42531588的博客 281

【ES】--Elasticsearch的分词器深度研究

分词器是ik_max_word,会将“龙马家书”拆分为“龙马”、“马家”、“家书”。然后filter配置的是edge_ngram_filter,在上面拆分的token词组基础上,按照edge_ngram_filter规则进一步拆分。从结果看:分词器是keyword,filter支持edge_ngram_filter,字符过滤器支持tsconvert【简繁体】。分词器是keyword,表明是不进行分词,但filtet中edge_ngram_filter是按照布长方式拆分token,所以得到如此结果。

寻梦友的博客 2441

java 生成pdf文件_java中根据模板生成pdf文件

简介本文使用java引入apache提供的pdf操作工具生成pdf文件,主要是根据需求开发了一个util类,记录一下学习和开发过程。业务需求因为业务需要,对于不同的用户要生成一个不同的pdf文件,记录了保险用户的疾病信息和结算信息等,根据pdf模板,从数据库中获取用户的基本和结算信息,然后生成该用户的结算文件。根据这个需求,写了一个工具类,主要功能就是根据模板生成pdf文件,并保存到服务器指定位置...

weixin_34729012的博客 521

【异常】Claude Code 400错误(Extra inputs are not permitted)解决方案

摘要:Claude Code 2.0.37+版本因API请求包含未支持的custom.input_examples参数导致400错误,使核心功能失效。解决方案是降级至稳定版v2.0.32:先卸载当前版本(npm uninstall -g @anthropic-ai/claude-code),再安装指定版本(npm install -g @anthropic-ai/claude-code@2.0.32),最后验证请求是否恢复正常。该问题确认在v2.0.32版本不存在。(148字)

奶爸的编程之路,也就一周冷个三天 2039

使用Java生成PDF文件

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

enhengguodong的博客 1万+

Google Earth Engine——使用STARFM 图像融合算法将Landsat 和 MODIS 融合得出2000-2023 NDVI长时序图(空间分辨率为 30 米、时间分辨率为 16 天)

非本地入侵物种是全球生态系统面临的主要威胁之一。野葛(Pueraria montana)是一种生长迅速的藤本植物,原产于亚洲,现已入侵美国一些地区,因此该物种的管理成为一个重要问题。利用 Landsat 和 MODIS 平台收集的数据,计算了 2000 年至 2015 年肯塔基州三个侵扰地点的归一化差异植被指数(NDVI)估算值。使用 STARFM 图像融合算法将大地遥感卫星和 MODIS 得出的 NDVI 结合成空间分辨率为 30 米、时间分辨率为 16 天的时间序列。

此星光明博客 2509

DICOM标准:DICOM医学影像中的覆盖层(Overlay)概念详解

DICOM标准:深入详解DICOM医学影像中的覆盖层(Overlay)

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1562

java 生成pdf文件_Java 中HTTP响应数据生成PDF,PDF文件的读取

将HTTP响应数据生成PDF,这一步的话,就比较坑,浪费了好多时间,查了很多资料,也是我想把它记录下来的主要原因,废话少说,先说踩的坑1.区分字符流、字节流这里可以百度一下,但是简言之就是:java中提供了专用于输入输出功能的包Java.io,其中包括: InputStream,OutputStream,Reader,Writer InputStream 和OutputStream...

weixin_31880383的博客 2940

OpenClaw三层记忆系统:让你的AI助理记住你的习惯,越用越顺手

对于更早的、已经移出滑动窗口的对话内容,我们没有直接丢弃,而是用大模型做摘要压缩,只保留核心信息,然后把摘要存入短期会话记忆的末尾,或者长期用户记忆。比如,10轮之前的对话内容,我们会压缩成:“用户之前查询了仓山万达店4月1日-4月7日的库存数据,对报表的要求是纯文本,不要Markdown”,既保留了核心信息,又不会占用太多上下文窗口。如果说Agent的执行链路是AI的“骨架”,工具调用体系是AI的“手脚”,那么记忆系统就是AI的“大脑”

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 378

Java使用iText编辑PDF,动态生成PDF文件

Java使用iText编辑PDF,动态生成PDF文件 去发现同类优质开源项目:https://gitcode.com/ 本文详细介绍了如何使用Java中的iText库来编辑和动态生成PDF文件。文章从利用Adobe创建PDF模板开始,一步步详细讲解了整个过程。 内容概述 利用Adobe Acrobat DC软件创建PDF模板 下载并安装Adobe Acrobat DC软件。 使用软件创建PD...

gitblog_06527的博客 1062

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java生成pdf文件

生成pdf文件 一,准备工具 Adobe Acrobat下载~提取码: nd3g Adobe Acrobat 9 Pro安装步骤 1、将压缩包解压后,使用鼠标左键双击打开安装文件。 2、进入安装程序,直接点击“下一步”。 3、选择Acrobat的安装类型。选择“典型”可以使用Acrobat的大部分主要功能,基本不会影响日常使用;选择“完整”将安装Acrobat的全部功能模块;选择“自定义”的话,用户可以自行决定需要安装的组件。选好后点击“下一步”。 4、在列表中选择需要的功能。然后点击“更改”按钮选择Ac

qq1328585964的博客 663

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

weixin_36327991的博客 1250

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java 模板生成pdf文件

java 模板生成pdf文件1.准备工作1.1 安装Adobe Acrobat pro软件:用来制作导出模板1.2 用word 制作自己需要的模板,转成pdf格式1.3 使用Adobe Acrobat pro打开PDF2.java代码2.1 pom文件2.2生成代码2.3 输出到本地2.4 浏览器下载 (ajax请求无法下载) 1.准备工作 1.1 安装Adobe Acrobat pro软件:用来制作导出模板 1.2 用word 制作自己需要的模板,转成pdf格式 1.3 使用Adobe Acroba

戴维小熊的博客 5057

JasperReport生成pdf文件 Java开发pdf文件 pdf文件生成及下载

JasperReport制作报表, JasperReport生成pdf文件, Java开发pdf文件, pdf文件生成及下载, ireport制作pdf报表, Java报表, SpringBoot下载pdf文件, JasperReport加载模板报错, JasperReport找不到字体, JasperReport生成pdf时字体报错

yudian1991的博客 1万+

java中生成pdf文件,java 中生成pdf 文件

用的是itext library, 生成一个hello world pdf 文档/** This code is part of the 'iText Tutorial'.* You can find the complete tutorial at the following address:* http://itextdocs.lowagie.com/tutorial/** This code...

weixin_34788662的博客 292
上一篇: java实现串口pos机打印
下一篇: java上传文件到FTP
dinphi
博客等级 码龄18年 11粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值