用java生成包含图片的PDF

java根据模板生成pdf文件(itextpdf) 阅读详情

iText包是java生成PDF文件的一个挺好用的工具。

今天初次尝试使用,将代码记录一下。

	public void createPdf(String path){
		File file=new File(path);  
		String files[];  
		ArrayList<String> pictures = new ArrayList<String>();
		files=file.list();  
		for(int i=0;i<files.length;i++)
			if(files[i].matches(".+\\.(jpg|gif|png)"))
				pictures.add(files[i]);
		Document doc=new Document();
		try {
			PdfWriter.getInstance(doc, new FileOutputStream("D:"+File.separator+"root"
		           +File.separator+"picture.pdf"));
			doc.open();
            float width=doc.getPageSize().getWidth()-75;//取页面宽度并减去页边距
			for(String temp:pictures){
				Image tempImage=Image.getInstance(path+File.separator+temp);
				if(tempImage.getWidth()>width){
					tempImage.scalePercent(width/tempImage.getWidth()*100);//用页面显示宽度除以图片宽度算出缩小的合适百分比
				}				
				doc.add(tempImage);
			}
			doc.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}
从指定的文件夹中取出所有iText可处理的图片文件,然后依次放入PDF中。第一次生成时发现有一个图片过大,超出PDF边界,后来发现有方法可以取出PDF的页面宽度以及图片宽度,用页面宽度减去页边距,然后再根据图片宽度算出应该缩放的百分比,有一个问题要注意,就是缩放后图片宽度不变,只是在PDF中显示的宽度变了。

java完整的利用itext5制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息 利用itext7、zxing、QRCore制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息,手机可以实现扫描获取二维码的信息,并进行验证你的解析是否正确。先是生成二维码图片并插入pdf中package com.parseImage;import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.io.File 阅读详情

相关推荐

rv1106 模型部署

ONNX(Open Neural Network Exchange),开放神经网络交换,是一种模型IR,用于在各种深度学习训练和推理框架转换的一个中间表示格式,支持多种深度学习框架,包括 TensorFlow、PyTorch、Caffe 等。将模型转换为 ONNX 格式后,可以更容易地在不同的深度学习框架中进行部署和推理,而无需重新训练模型。

weixin_50993868的博客 1286

iText生成pdf(图片转PDF)

前言                在学习的过程中笔者遇到过这种需求,就是将某个截取到的图片转化为PDF格式的。图片如何           转化为PDF格式的呢?首先想到的是PDF格式的文档是如何生成的,知道了这个就知道如何将图           片“插入”到PDF文档中了。那么java有没有生成PDF文档的第三方jar呢?答案是肯定的。        iText类库

LCore的专栏 1万+

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

Java读取pdf模板,并动态生成pdf文件,如动态生成准考证、学位证书等

Java读取pdf模板,并动态生成pdf文件,如动态生成准考证 ​ 前几天遇到了一个生成准考证的需求,并提供用户下载,然后百度了一圈还是觉得使用itextpdf这个框架好用点。但是还需要找到一个能创建pdf表单的工具来生成pdf模板。可以使用Adobe Acrobat进行创建,但是我自己电脑上刚好有一个软件可以制作就没有去下载了???? ​ 下面只是用到了itextpdf一部分的功能,如果还有其他字体格式、样式的需求可以参考他的官方网址Overview (iText 5.5.13 API) (itextpd

SleepNot_Need的博客 4835

Debian 11 下用hostapd+dnsmasq搭建WiFi热点:从命令行到实战(避坑指南)

本文详细介绍了在Debian 11系统上,使用hostapd和dnsmasq从命令行搭建稳定WiFi热点的完整实战流程。内容涵盖环境准备、无线网卡AP模式检查、服务深度配置,并重点提供了从服务启动失败到客户端无法上网等常见问题的系统性排错指南,帮助用户避开配置陷阱,成功创建可用的无线接入点。

CAT789的专栏 772

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 419

java利用模板生成PDF

java利用模板生成PDF

khbilhjknkjb的博客 3548

MTK Sensor驱动调试实战:从AP到SCP的完整流程解析

本文详细解析了MTK平台Sensor驱动从AP侧到SCP侧的完整调试流程。内容涵盖AP侧驱动集成、DTS配置、内核编译与验证,以及SCP侧Tinysys框架下的代码集成、Overlay配置与I2C设置等核心步骤,并分享了中断唤醒、功耗优化及传感器数据校准等实战经验与常见问题排查方法,为硬件驱动工程师提供了一份全面的实战指南。

weixin_29175469的博客 353

java生成PDF(图片,模板,表格)

java生成pdf(单模板、多模板+图片+表格,包括页头/页脚及水印)

qq_45699784的博客 3万+

Dify 从入门到熟悉100 天的学习大纲

理解 Dify 的核心概念,熟悉操作界面,并能创建简单的 AI 应用。祝你在这 100 天的旅程中学有所成,成为一名优秀的 AI 应用开发者!掌握生产环境部署、监控、调优,并关注 Dify 生态和前沿动态。探索多模态、Agent、API 集成、性能优化等高级主题。掌握工作流编排、高级提示词技巧、知识库优化等核心功能。

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

Virbox Protector:全方位守护 Android 应用安全

在数字化浪潮中,Android 应用面临着诸多安全挑战,如破解、篡改、盗版、数据窃取和钓鱼欺诈等。为了应对这些复杂的安全问题,Virbox Protector 应运而生,为 Android 应用提供高强度的专业化安全保护,支持对 APK 和 AAB 文件的加固保护,并兼容 Google Play,助力应用顺利出海。

VBP_2025的博客 996

【Java导出PDF】Aspose-words导出PDF指南:Java导出带图片模板PDF(亲测实用)

使用Aspose-words导出PDF指南:Java导出带图片模板PDF(亲测实用) Java导出具体模板PDF,Java导出模板带图片PDF,Java导出自定义列表PDF

weixin_49190101的博客 2886

新版ThingsBoard 4.2.0在windows上用IDEA编译记录

编译thingsboard4.2.0在windows上使用Idea

hssjf的专栏 1482

java基于itext pdf或open pdf生成PDF文件包含字体、图片

产品给了我一个pdf模板文件,里面有3个证书的模板,第1、2页是第一个证书的正反面,3、4页是另一个证书的正反面,第5页是个单页证书。为了在多人生成时降低IO开销,我奖模板按证书分割成多个pdf模板,按需加载。证书生成主要包含字体设置、文本坐标位置设置、公章png图片贴图等操作。模板在一些位置预留了空位,需要将文字信息填到空白处。

cjylnux的博客 1073

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java生成pdf带表格_Java实现生成PDF(包含文字,表格,图片)

需要的lib:itext-2.1.7.jariTextAsian.jarpackage com.demo.test;import java.awt.Color;import java.io.File;import java.io.FileOutputStream;import com.lowagie.text.Chunk;import com.lowagie.text.Document;impor...

weixin_35974411的博客 611

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java itext动态生成模板_【Java】itext根据模板生成pdf(包括图片和表格)

1 public static void creatPdf(Mapmap,String filePath) {2 try{3 BaseFont bf = BaseFont.createFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H,4 BaseFont.EMBEDDED);5 ...

weixin_42137022的博客 1171

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java导出pdf 含图片_【Java】itext根据模板生成pdf(包括图片和表格)

1、导入需要的jar包:itext-asian-5.2.0.jaritextpdf-5.5.11.jar。2、新建word文档,创建模板,将文件另存为pdf,并用Adobe Acrobat DC打开编辑,点击右侧【准备表单】后点击【开始】3、在需要插入数据的空白处,右击,点击【文本域】,将文本域拖放到你想要的位置,更改域名称为你传入的变量名。4、保存文件,将文件放到项目中。生成pdf代码如下:p...

weixin_35717251的博客 2465

java生成pdf并下载(添加图片及水印)

javas生成pdf并下载(添加图片及水印) 首先pom文件需要导入下面两个包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> <dependency> <groupId&g

weixin_48506585的博客 2851

pdfbox 生成pdf 带图片,文字

PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page); Object o = datas.get(0); String objName = o.getClass().getSimpleName(); ...

xiaofanren1111的博客 3332

java生成pdf带图片_(例)Java生成PDF图片 iText

(例)Java生成PDF图片 iTextimport java.io.ByteArrayOutputStream;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.ServletOutputStrea...

weixin_31688873的博客 805

java通过PDF模板生成PDF文件(带图片)

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma...

qq_3316359388的博客 3305

Java用iText5生成PDF

上述知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。很多人担心学了容易忘,这里教你一个方法,那就是重复学习。打个比方,假如你正在学习 spring 注解,突然发现了一个注解@Aspect,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。

2401_85968694的博客 1107

java 图片合成pdf_Java将图片组合成PDF文件的方法

本文实例为大家分享了Java将图片组合成PDF文件的具体代码,供大家参考,具体内容如下程序界面图:代码清单:package 将图片组合成PDF文件;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileFilter;import ja...

weixin_30043049的博客 1075

多个图片合并生成1个图片或1个pdf

用户分别多个照片,后台合并成一张照片或一个pdf文件: 多个图片合并生成1个图片或1个pdf

冲冲冲 1318

在spring boot中生成PDF

首先在pom.xml中加入下列依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> <version>1.5.17.RELEASE</version> </dependency> <dependency

dongjingling的博客 2162

java 生成pdf自动合并单元格 上下 左右合并,插入图片,多个pdf进行合并

耗时一下午写的这小算法,烧脑,看到的点个赞吧 package com.runstone.rsflow.excel; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.io.*; import java.util.ArrayList; import java.util.List; public ...

kxj19980524的博客 3811
上一篇: 用Adobe LiveCycle Designer ES2制作PDF之text field大小自适应
下一篇: 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
热血大婶
博客等级 码龄16年 58粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血大婶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值