使用開源的ITEXT實現圖片轉為PDF,效果是一張圖片占PDF的一頁,首先引入ITEXT的依賴:
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> <!-- https://mvnrepository.com/artifact/com.lowagie/itext --> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>4.2.1</version> </dependency>
代碼實現如下:
import com.itextpdf.text.Document; import com.itextpdf.text.Image; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException; public class Convert2Pdf { 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) { String source = "E:/SETUP/1.tif"; String target = "E:/SETUP/1.pdf"; convert(source, target); } }