java 实现img 转为 pdf ,使用 itextpdf 实现

非原创 转载 https://blog.csdn.net/xisuo002/article/details/79017474

import java.io.File;

import java.io.FileOutputStream;
import java.io.IOException;


import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;




/**
 * 将图片转换成pdf文件 imgFilePath 需要被转换的img所存放的位置。
 * @author gu 2018年6月12日下午2:42:20
 */
public class Test {
public static void main(String[] args) {
try {
imgToPdf("D:/2222.png","D:/2222.pdf");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public  static  boolean imgToPdf(String imgFilePath, String pdfFilePath) throws IOException {
File file = new File(imgFilePath);
if (file.exists()) {
Document document = new Document();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(pdfFilePath);
PdfWriter.getInstance(document, fos);


// 添加PDF文档的某些信息,比如作者,主题等等
document.addAuthor("谷");
document.addSubject("谷 test IMG TO PDF");
// 设置文档的大小
document.setPageSize(PageSize.A4);
// 打开文档
document.open();
// 写入一段文字
document.add(new Paragraph("谷  输入测试一段文字"));
// 读取一个图片
Image image = Image.getInstance(imgFilePath);
float imageHeight = image.getScaledHeight();
float imageWidth = image.getScaledWidth();
int i = 0;
while (imageHeight > 500 || imageWidth > 500) {
image.scalePercent(100 - i);
i++;
imageHeight = image.getScaledHeight();
imageWidth = image.getScaledWidth();
System.out.println("imageHeight->" + imageHeight);
System.out.println("imageWidth->" + imageWidth);
}


image.setAlignment(Image.ALIGN_CENTER);
// //设置图片的绝对位置
image.setAbsolutePosition(0, 0);
// image.scaleAbsolute(500, 400);
// 插入一个图片
document.add(image);
} catch (DocumentException de) {
System.out.println(de.getMessage());
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
}
document.close();
fos.flush();
fos.close();
return true;
} else {
return false;
}
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值