pdf转成jpg,png,tif;多张图片转pdf

https://github.com/jianxiong-dev/PdfToImags

import javax.imageio.ImageIO;
import com.sun.media.imageio.plugins.tiff.BaselineTIFFTagSet;
import com.sun.media.imageio.plugins.tiff.TIFFDirectory;
import com.sun.media.imageio.plugins.tiff.TIFFField;
import com.sun.media.imageio.plugins.tiff.TIFFTag;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;


import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriter;
import javax.imageio.IIOImage;
import javax.imageio.ImageWriteParam;
import javax.imageio.metadata.IIOInvalidTreeException;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.FileImageOutputStream;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;

import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class ImgTool {
    private static final Logger log = LoggerFactory.getLogger(ImgTool.class);
    
    /**
     * 按照固定宽高原图压缩
     * 
     * @param img
     * @param width
     * @param height
     * @param out
     * @throws IOException
     */
    public static void thumbnail(String imgPath, int width, int height, String newImgPath) {
        try {
            log.info("ImgTool.thumbnail ========>> imgPath"+ imgPath);
            
            BufferedImage BI = ImageIO.read(new File(imgPath));
            Image image = BI.getScaledInstance(width, height, Image.SCALE_SMOOTH);
 
            BufferedImage tag = new BufferedImage(width, height,  BufferedImage.TYPE_INT_RGB);
            Graphics g = tag.getGraphics();
            g.setColor(Color.RED);
            g.drawImage(image, 0, 0, null); // 绘制处理后的图
            g.dispose();
            ImageIO.write(tag, "JPG", new FileOutputStream(new File(newImgPath)));
            
            log.info("ImgTool.thumbnail ========>> newImgPath"+ newImgPath);
        } catch (Exception e) {
            log.info("ImgTool.thumbnail.error"+ e.getMessage());
            e.printStackTrace();
        }
    }
 
    
    
    //处理图片杂色  图片转tif
    public static void replaceWithWhiteColor(String imgPath, String tifPath) {
        log.info("ImgTool.replaceWithWhiteColor ==========>>  imgPath "+imgPath);
        log.info("ImgTool.replaceWithWhiteColor ==========>>  tifPath "+tifPath);
        
        try {
            BufferedImage pngImage = ImageIO.read(new File(imgPath));
            int pngWidth = pngImage.getWidth();
            int pngHeight = pngImage.getHeight();
            BufferedImage image = new BufferedImage(pngWidth, pngHeight,BufferedImage.TYPE_BYTE_BINARY);
            Graphics2D g = (Graphics2D) image.getGraphics();
            g.drawImage(pngImage, 0, 0, pngWidth, pngHeight, null);

            Iterator writers = ImageIO.getImageWritersByFormatName("TIF");
            ImageWriter writer = (ImageWriter) writers.next();
            RenderedImage renderedImage = image;
            ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(renderedImage);
            IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, null);
            imageMetadata = setDPIViaAPI(imageMetadata);

            ImageWriteParam param = writer.getDefaultWriteParam();
            param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            param.setCompressionType("CCITT T.6");
            param.setCompressionQuality(0f);
           
            FileImageOutputStream f = new FileImageOutputStream(new File(tifPath));
            writer.setOutput(f);
            writer.write(null, new IIOImage(image, null, imageMetadata), param);
            image.flush();
            f.flush();
            f.close();
            
            log.info("ImgTool.replaceWithWhiteColor ==========>>  success ");
        } catch (Exception e) {
            // TODO: handle exception
            log.info("ImgTool.replaceWithWhiteColor.error"+e.getMessage());
            e.printStackTrace();
        }
    }
    
  //处理图片杂色
    public static String replaceWithWhiteColor3(BufferedImage oldImg,String newImgPath) {
        log.info("ImgTool.replaceWithWhiteColor3 ==========>>  newImgPath "+newImgPath);
        
        try {
            //int pngWidth = pngImage.getWidth();
            int pngWidth = 2479;
            //int pngHeight = pngImage.getHeight();
            int pngHeight = 3508;
            BufferedImage image = new BufferedImage(pngWidth, pngHeight,BufferedImage.TYPE_BYTE_BINARY);
            Graphics2D g = (Graphics2D) image.getGraphics();
            g.drawImage(oldImg, 0, 0, pngWidth, pngHeight, null);

            Iterator writers = ImageIO.getImageWritersByFormatName("TIF");
            ImageWriter writer = (ImageWriter) writers.next();
            RenderedImage renderedImage = image;
            ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(renderedImage);
            IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, null);
            imageMetadata = setDPIViaAPI(imageMetadata);

            ImageWriteParam param = writer.getDefaultWriteParam();
            param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            param.setCompressionType("CCITT T.6");
            param.setCompressionQuality(0f);
           
            FileImageOutputStream f = new FileImageOutputStream(new File(newImgPath));
            writer.setOutput(f);
            writer.write(null, new IIOImage(image, null, imageMetadata), param);
            image.flush();
            f.flush();
            f.close();
            
            log.info("ImgTool.replaceWithWhiteColor3 ==========>>  success ");
            return newImgPath;
        } catch (Exception e) {
            // TODO: handle exception
            log.info("ImgTool.replaceWithWhiteColor3.error"+e.getMessage());
            e.printStackTrace();
        }
        return null;
    }
    
    private static int DPI_X = 300;
    private static int DPI_Y = 300;
    
    static IIOMetadata setDPIViaAPI(IIOMetadata imageMetadata) throws IIOInvalidTreeException {
        // Derive the TIFFDirectory from the metadata.
        TIFFDirectory dir = TIFFDirectory.createFromMetadata(imageMetadata);

        // Get {X,Y}Resolution tags.
        BaselineTIFFTagSet base = BaselineTIFFTagSet.getInstance();
        TIFFTag tagXRes = base.getTag(BaselineTIFFTagSet.TAG_X_RESOLUTION);
        TIFFTag tagYRes = base.getTag(BaselineTIFFTagSet.TAG_Y_RESOLUTION);

        // Create {X,Y}Resolution fields.
        TIFFField fieldXRes = new TIFFField(tagXRes, TIFFTag.TIFF_RATIONAL, 1, new long[][] { { DPI_X, 1 } });
        TIFFField fieldYRes = new TIFFField(tagYRes, TIFFTag.TIFF_RATIONAL, 1, new long[][] { { DPI_Y, 1 } });

        // Append {X,Y}Resolution fields to directory.
        dir.addTIFFField(fieldXRes);
        dir.addTIFFField(fieldYRes);

        // Convert to metadata object and return.
        return dir.getAsMetadata();
    }
    
    
    
    //多张图片合成一张tif
    public static String imgToTif(List<String> filesPath, String toPath, String distFileName) {
        log.info("ImgTool.imgToTif ==========>>  toPath "+toPath);
        log.info("ImgTool.imgToTif ==========>>  distFileName "+distFileName);
        
        String env = "2";
        String tempPath="";
        if (filesPath != null && filesPath.size() > 0) {
            File[] files = new File[filesPath.size()];
            for (int i = 0; i < filesPath.size(); i++) {
                files[i] = new File(filesPath.get(i));
            }
            if (files.length > 0) {
                try {
                    ArrayList<PlanarImage> pages = new ArrayList<PlanarImage>(files.length - 1);
                    FileSeekableStream[] stream = new FileSeekableStream[files.length];
                    for (int i = 0; i < files.length; i++) {
                        stream[i] = new FileSeekableStream(files[i].getCanonicalPath());
                    }
                    PlanarImage firstPage = JAI.create("stream", stream[0]);
                    for (int i = 1; i < files.length; i++) {
                        PlanarImage page = JAI.create("stream", stream[i]);
                        pages.add(page);

                    }
                    TIFFEncodeParam param = new TIFFEncodeParam();
                    File f = new File(toPath);
                    if (!f.exists()) {
                        f.mkdirs();
                    }
                    tempPath=toPath + File.separator + distFileName;
                    OutputStream os = new FileOutputStream(tempPath);
                    ImageEncoder enc = ImageCodec.createImageEncoder("tiff", os, param);
                    param.setExtraImages(pages.iterator());
                    param.setCompression(TIFFEncodeParam.COMPRESSION_DEFLATE);// 压缩参数
                    param.setDeflateLevel(9);
                    enc.encode(firstPage);
                    for (int i = 0; i < files.length; i++) {
                        stream[i].close();
                    }
                    os.close();
                    
                    if ("1".equals(env) || "2".equals(env)) {// sit,uat
                        log.info("ImgTool.imgToTif ==========>> test ");
                    } else if ("3".equals(env)) {
                        for (int j = 0; j < files.length; j++) {
                            new File(files[j].getAbsolutePath()).delete();
                        }
                    }
                    
                    log.info("ImgTool.imgToTif ==========>>  success ");
                } catch (IOException e) {
                    log.info("ImgTool.imgToTif.error"+e.getMessage());
                    e.printStackTrace();
                }
            }
        }
        
        return tempPath;
    }
    
    
    
    
    
    /**
     * 
     * @Title: createImgs 
     * @Description: 图片生成路径
     * @param imgPath 保存图片路径
     * @param imgName  图片名称
     * @param i           动态图片数
     * @param Type      生成类型
     * @return  
     * @throws IOException 
     * @Author qinchao
     * @Date 2019-6-21
     */
    public synchronized static String createImgPath(String imgPath, String imgName, int i, String type) throws IOException{
        log.info("PdfToImgUtil.changeImgName   ===============>> imgName "+imgName);
        log.info("PdfToImgUtil.changeImgName   ===============>> i "+i);
        
        if("1".equals(type)){//  保单号/单证号/保单号_单证号     +_时间戳".jpg"
            return imgPath+File.separator+imgName+"_"+System.currentTimeMillis()+".jpg";
        }else if("2".equals(type)){//    保单号/单证号/保单号_单证号    +_时间戳".tif"
            return imgPath+File.separator+imgName+"_"+System.currentTimeMillis()+".tif";
        }else if("3".equals(type)){//    保单号/单证号/保单号_单证号    +_时间戳".jpg"
            return imgPath+File.separator+new StringBuilder(imgName).replace(imgName.length()-1,imgName.length(), (i+1)+"")+"_"+System.currentTimeMillis()+".jpg";
        }else if("4".equals(type)){//    保单号/单证号/保单号_单证号    +_时间戳".tif"
            return imgPath+File.separator+new StringBuilder(imgName).replace(imgName.length()-1,imgName.length(), (i+1)+"")+"_"+System.currentTimeMillis()+".tif";
        }
        return null;
    }
    
    
    
   /* public static void main(String[] args) throws Exception {
        List<String> list = new ArrayList<String>();
        list.add(new File("C:\\1560945221222.jpg").getAbsolutePath());
        list.add(new File("C:\\1560945219181.jpg").getAbsolutePath());
        imgToTif(list, "C:\\", "a3.tif");
    }
    */
    
}
 

 

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.RandomAccessFileOrArray;
import com.itextpdf.text.pdf.codec.TiffImage;

public class ImgToPdfUtil {
    /**
     * 
     * @Title: imgToPdf 
     * @Description: tif图片流转成pdf
     * @param imgStream
     * @param pdfFilePath  
     * @Author qinchao
     * @Date 2018-9-29
     */
    @SuppressWarnings("deprecation")
    public static void imgToPdf(byte[] imgStream, String pdfFilePath){
       Document docment = null;// 文档对象
        try {    
            // 定义输出位置并把文档对象装入输出对象中
            docment = new Document(PageSize.LETTER, 0, 0, 0, 0);// 创建一个文档对象
            PdfWriter pdfWriter = PdfWriter.getInstance(docment, new FileOutputStream(pdfFilePath));
            pdfWriter.setStrictImageSequence(true);
                RandomAccessFileOrArray randomAccessFileOrArr = null;
                InputStream tifFileInputStream = null;
                try {
                    try {
                        tifFileInputStream  = new ByteArrayInputStream(imgStream);
                        randomAccessFileOrArr = new RandomAccessFileOrArray(tifFileInputStream);
                        TiffImage.getNumberOfPages(randomAccessFileOrArr);
                    }catch (Exception e) {
                        e.printStackTrace();
                        throw new Exception("读取tif图片数据失败");
                    }finally {
                        if(null != tifFileInputStream){
                            tifFileInputStream.close();
                        }
                    }
                    try {
                        // 将tif文件读取成图片
                        Image tifImg = TiffImage.getTiffImage(randomAccessFileOrArr, 1);
                        if(null == tifImg){
                            throw new Exception("读取tif文件失败");
                        }
                        // 设置首页tif图片的大小
                        Rectangle firstpageSize = new Rectangle(tifImg.getWidth(), tifImg.getHeight());
                        docment.setPageSize(firstpageSize);
                        docment.open();// 打开文档对象
                            
                        // 设置图片大小
                        Rectangle pageSize = new Rectangle(tifImg.getWidth(), tifImg.getHeight());
                        docment.setPageSize(pageSize);
                        
                        tifImg.setAbsolutePosition(0, 0);// 设置图像位置
                        tifImg.setAlignment(Image.ALIGN_CENTER);// 设置图像的对齐方式(居中)。
                        docment.add(tifImg);// 加载tif图片
                        docment.newPage(); // 新建新的pdf页
                    } catch (Exception e) {
                        e.printStackTrace();
                        throw new Exception("tif文件载入pdf文件失败");
                    }
                    
                } catch (Exception e) {
                    e.printStackTrace();
                    throw e;
                }finally {
                    // 关闭
                    if(null != randomAccessFileOrArr){
                        randomAccessFileOrArr.close();
                    }
                }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            // 关闭文档对象,释放资源
            if(null != docment){
                docment.close();
            }
        }
    }
    
}


 

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.FileImageOutputStream;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class PdfToImgUtil {
    private static final Logger logger = LoggerFactory.getLogger(PdfToImgUtil.class);
    
    /** 图片格式 */
    public static final String IMG_FORMAT = "tiff";
    /** 打印精度设置 */
    public static final int DPI = 300; //图片的像素
   
    
    /**
     * 
     * @Title: pdfToImg 
     * @Description: pdf转成jpg(多页转多张图片) 
     * 对非图片条形处理不支持
     * @param pdfPath   pdf文件路径
     * @param imgPath   保存图片路径
     * @param imgName   图片名称规则
     * @param createImageType   指定生成图片路径
     * @return  
     * @Author qinchao
     * @Date 2019-3-10
     */
    public static void pdfToImg(String pdfPath,String imgPath,String imgName, String createImageType){
        logger.info("PdfToImgUtil.pdfToImg   ===============>> pdfPath "+pdfPath);
        logger.info("PdfToImgUtil.pdfToImg   ===============>> imgPath "+imgPath);
        logger.info("PdfToImgUtil.pdfToImg   ===============>> imgName "+imgName);
        File fileImg = new File(imgPath);
        if(!fileImg.exists()){
            fileImg.mkdirs();
        }
        Document document = new Document();  
        try {  
            document.setFile(pdfPath);  
            } catch (Exception ex) {
            ex.getStackTrace();
        }
        String imgNames="";
        for (int i = 0; i < document.getNumberOfPages(); i++) {  
            BufferedImage image = (BufferedImage) document.getPageImage(i,GraphicsRenderingHints.SCREEN,Page.BOUNDARY_CROPBOX, 0f, 2.5f);  
            RenderedImage rendImage = image;  
            try {
                imgNames = ImgTool.createImgPath(imgPath, imgName, i, createImageType);
                File file = new File(imgNames);  
                ImageIO.write(rendImage, "jpg", file);  
            }catch (IOException e){ 
                logger.info("PdfToImgUtil.pdfToImg.error "+e.getMessage());
                e.printStackTrace();
            }  
            image.flush();
            logger.info("PdfToImgUtil.pdfToImg   ===============>> success "+imgNames);
        }  
        document.dispose();
        logger.info("PdfToImgUtil.pdfToImg   ===============>> finish ");
    }
    
    
    /**
     * 
     * @Title: pdfToImg 
     * @Description: pdf转成jpg(多页转多张图片)
     * 对于特殊字体处理不支持
     * @param pdfPath   pdf文件路径
     * @param imgPath   保存图片路径
     * @param imgName   图片名称规则
     * @param createImageType   指定生成图片路径
     * @return  
     * @Author qinchao
     * @Date 2019-3-10
     */
    public static void pdfToImg2(String pdfPath,String imgPath,String imgName, String createImageType){
        logger.info("PdfToImgUtil.pdfToImg   ===============>> pdfPath "+pdfPath);
        logger.info("PdfToImgUtil.pdfToImg   ===============>> imgPath "+imgPath);
        logger.info("PdfToImgUtil.pdfToImg   ===============>> imgName "+imgName);
        File file = new File(pdfPath);
        File fileImg = new File(imgPath);
        if(!fileImg.exists()){
            fileImg.mkdirs();
        }
        try {
            PDDocument doc = PDDocument.load(file);
            PDFRenderer renderer = new PDFRenderer(doc);
            int pageCount = doc.getNumberOfPages();
            String imgNames="";
            for(int i=0;i<pageCount;i++){
//                BufferedImage image = renderer.renderImageWithDPI(i, 300);
                BufferedImage image = renderer.renderImage(i, 2.5f);//图片像素值 图片大小
                imgNames = ImgTool.createImgPath(imgPath, imgName, i, createImageType);
                ImageIO.write(image, "jpg", new File(imgNames));
                logger.info("PdfToImgUtil.pdfToImg   ===============>> success "+imgNames);
            }
        } catch (Exception e) {
            logger.info("PdfToImgUtil.pdfToImg.error "+e.getMessage());
            e.printStackTrace();
        }
        logger.info("PdfToImgUtil.pdfToImg2   ===============>> finish ");
    }
    
    
    
    /**
     * 
     * @Title: pdfToTiff 
     * @Description: 多页pdf转多张tif
     * 对非图片条形处理不支持
     * @param pdfPath   pdf文件路径
     * @param tifPath   保存图片路径
     * @param tifName   图片名称规则
     * @param createImageType   指定生成图片路径
     * @Author qinchao
     * @Date 2019-6-6
     */
    public static void pdfToTiff(String pdfPath, String tifPath, String tifName, String createImageType) {
        logger.info("PdfToImgUtil.pdfToTiff   ===============>> pdfPath "+pdfPath);
        logger.info("PdfToImgUtil.pdfToTiff   ===============>> imgPath "+tifPath);
        logger.info("PdfToImgUtil.pdfToTiff   ===============>> imgName "+tifName);
        File fileImg = new File(tifPath);
        if(!fileImg.exists()){
            fileImg.mkdirs();
        }
        // 定义Document,用于转换图片
        Document document = new Document();
        try {
            document.setFile(pdfPath);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        float rotation = 0f;
        int maxPages = document.getNumberOfPages();
        String tifNames="";
        // 循环把每页的数据转换成对应的图片
        for (int i = 1; i <= maxPages; i++) {
            try {
                logger.info("maxPages------->" + maxPages);
                logger.info(">>page>>>i------->" + i);
                BufferedImage pngImage = (BufferedImage) document.getPageImage(i - 1, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, 4);

                int pngWidth = pngImage.getWidth();
                int pngHeight = pngImage.getHeight();
                BufferedImage image = new BufferedImage(pngWidth, pngHeight, BufferedImage.TYPE_BYTE_BINARY);
                Graphics2D g = (Graphics2D) image.getGraphics();
                g.drawImage(pngImage, 0, 0, pngWidth, pngHeight, null);

                Iterator writers = ImageIO.getImageWritersByFormatName("TIF");
                ImageWriter writer = (ImageWriter) writers.next();
                RenderedImage renderedImage = image;
                ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(renderedImage);
                IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, null);
                imageMetadata = ImgTool.setDPIViaAPI(imageMetadata);

                ImageWriteParam param = writer.getDefaultWriteParam();
                param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                param.setCompressionType("CCITT T.6");
                param.setCompressionQuality(0f);
                
                tifNames = ImgTool.createImgPath(tifPath, tifName, i, createImageType);
                
                FileImageOutputStream f = new FileImageOutputStream(new File(tifNames));
                writer.setOutput(f);
                writer.write(null, new IIOImage(image, null, imageMetadata), param);
                image.flush();
                f.flush();
                f.close();
                
                logger.info("PdfToImgUtil.pdfToTiff   ===============>> success "+tifNames);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                logger.info("PdfToImgUtil.pdfToTiff.error "+e.getMessage());
                e.printStackTrace();
            }
        }
        logger.info("PdfToImgUtil.pdfToTiff   ===============>> finish ");
    }
    
    
    /**
     * 
     * @Title: pdfToTiff2 
     * @Description: 多页pdf转一张tif
     * 对非图片条形处理不支持
     * @param pdfPath   pdf文件路径
     * @param tifPath   保存图片路径
     * @param tifName   图片名称
     * @param createImageType   指定生成图片路径
     * @return 
     * @Author qinchao
     * @Date 2019-6-6
     */
    public static String pdfToTiff2(String pdfPath, String tifPath, String tifName, String createImageType) {
        logger.info("PdfToImgUtil.pdfToTiff2   ===============>> pdfPath "+pdfPath);
        logger.info("PdfToImgUtil.pdfToTiff2   ===============>> imgPath "+tifPath);
        File fileImg = new File(tifPath);
        if(!fileImg.exists()){
            fileImg.mkdirs();
        }
        
        PDDocument doc = null;
        FileOutputStream os = null;
        String imgNames="";
        String newtifFilePath="";
        
        try {
            File file = new File(pdfPath);
            doc = PDDocument.load(file);
            int pageCount = doc.getNumberOfPages();
            PDFRenderer renderer = new PDFRenderer(doc); // 根据PDDocument对象创建pdf渲染器
            List<String> list = new ArrayList<String>();
            for (int i = 0; i < pageCount; i++) {
                //Image image = renderer.renderImageWithDPI(i, DPI, ImageType.RGB);
                BufferedImage image = renderer.renderImage(i, 10.0f);//设置图片像素
                imgNames = ImgTool.createImgPath(tifPath,tifName, i, createImageType);
                String img = ImgTool.replaceWithWhiteColor3(image,imgNames);//图片颜色处理
                list.add(img);
            }
            //多张图片合成tif
            newtifFilePath = ImgTool.imgToTif(list, tifPath, tifName+".tif");
            
            logger.info("PdfToImgUtil.pdfToTiff2   ===============>> success ");
        } catch (Exception e) {
            logger.info("PdfToImgUtil.pdfToTiff2.error "+e.getMessage());
            e.printStackTrace();
        } finally {
            try {
                if (os != null) os.flush();
                if (os != null)    os.close();
                if (doc != null) doc.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        logger.info("PdfToImgUtil.pdfToTiff2   ===============>> finish ");
        return newtifFilePath;
    }
    
    
    
    
    
    
    public static void main(String[] args) {
            long timeMillis = System.currentTimeMillis();
                System.out.println(timeMillis);
            try {
                //pdf2Tiff("C:\\9309011411\\9309011411.pdf", "C:\\9309011411\\test3\\9309011411.tif");
                System.out.println(pdfToTiff2("C:\\9309011411\\9309011411_1010301611.pdf","C:\\9309011411\\test22\\" ,"9309011411_1010301611","3"));
                //pdf2Tiff2("C:\\9309011411\\9309011411_1010306311.pdf", "C:\\9309011411\\test22\\9309011411_1010306311.tif");
                //pdf2Tiff2("C:\\9309011411\\9309011411_1010601011.pdf", "C:\\9309011411\\test22\\9309011411_1010601011.tif");
                //pdf2Tiff2("C:\\9309011411\\9309011411_1010601011_N.pdf", "C:\\9309011411\\test22\\9309011411_1010601011_N.tif");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(System.currentTimeMillis()-timeMillis);
    }
    
}
 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值