今天要把一个资料转化成pdf.网上找了一堆软件,都是有水印的,去水印又要会员,索性跑一个main方法完成。
代码贴出来,提供给有需要的网友。
maven引入依赖
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.1</version>
</dependency>
</dependencies>
代码片段
package org.weib;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Pic2Pdf {
public static void convert(String source, String target) {
Document document = new Document();
//设置文档页边距
document.setMargins(0,0,0,0);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(target);
PdfWriter.getInstance(document, fos);
//打开文档
document.open();
//获取图片的宽高
Image image = Image.getInstance(source);
float imageHeight=image.getScaledHeight();
float imageWidth=image.getScaledWidth();
//设置页面宽高与图片一致
Rectangle rectangle = new Rectangle(imageWidth, imageHeight);
document.setPageSize(rectangle);
//图片居中
image.setAlignment(Image.ALIGN_CENTER);
//新建一页添加图片
document.newPage();
document.add(image);
} catch (Exception ioe) {
System.out.println(ioe.getMessage());
} finally {
//关闭文档
document.close();
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
File localFile = new File("F:\\dest\\");
if(localFile.isDirectory())
{
String localPath = localFile.getAbsolutePath();
String[] files =localFile.list();
for(String file :files)
{
if(file.endsWith(".jpg"))
{
String jpgName =localPath+File.separator+file;
String pdfName =localPath+File.separator+(file.replace("jpg","pdf"));
convert(jpgName, pdfName);
}
}
}
convert(source, target);*/
}
}