1 31 package org.pdfbox.examples.pdmodel; 32 33 import java.io.File ; 34 import java.io.FileInputStream ; 35 import java.io.IOException ; 36 37 import org.pdfbox.exceptions.COSVisitorException; 38 import org.pdfbox.io.RandomAccessFile; 39 40 import org.pdfbox.pdmodel.PDDocument; 41 import org.pdfbox.pdmodel.PDPage; 42 43 import org.pdfbox.pdmodel.edit.PDPageContentStream; 44 45 import org.pdfbox.pdmodel.graphics.xobject.PDCcitt; 46 import org.pdfbox.pdmodel.graphics.xobject.PDJpeg; 47 import org.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; 48 49 50 58 public class ImageToPDF 59 { 60 61 70 public void createPDFFromImage( String file, String image) throws IOException , COSVisitorException 71 { 72 PDDocument doc = null; 74 try 75 { 76 doc = new PDDocument(); 77 78 PDPage page = new PDPage(); 79 doc.addPage( page ); 80 81 PDXObjectImage ximage = null; 82 if( image.toLowerCase().endsWith( ".jpg" ) ) 83 { 84 ximage = new PDJpeg(doc, new FileInputStream ( image ) ); 85 } 86 else if (image.toLowerCase().endsWith(".tif") || image.toLowerCase().endsWith(".tiff")) 87 { 88 ximage = new PDCcitt(doc, new RandomAccessFile(new File (image),"r")); 89 } 90 else 91 { 92 throw new IOException ( "Image type not supported:" + image ); 95 } 96 PDPageContentStream contentStream = new PDPageContentStream(doc, page); 97 98 contentStream.drawImage( ximage, 20, 20 ); 99 100 contentStream.close(); 101 doc.save( file ); 102 } 103 finally 104 { 105 if( doc != null ) 106 { 107 doc.close(); 108 } 109 } 110 } 111 112 119 public static void main(String [] args) 120 { 121 ImageToPDF app = new ImageToPDF(); 122 try 123 { 124 if( args.length != 2 ) 125 { 126 app.usage(); 127 } 128 else 129 { 130 app.createPDFFromImage( args[0], args[1] ); 131 } 132 } 133 catch (Exception e) 134 { 135 e.printStackTrace(); 136 } 137 } 138 139 142 private void usage() 143 { 144 System.err.println( "usage: " + this.getClass().getName() + " <output-file> <image>" ); 145 } 146 } | Popular Tags |