今日心情今日报

昨天在睡午觉的时候被蚊子咬醒了,然后很生气的抓住了一只蚊子,然后我就把他按在我电脑散热口那,看着他慢慢地没有挣扎,然后今天看到了这个蚊子的尸体,心里有点忧伤,我伤害了一只蚊子,希望它下辈子不要做一只蚊子吧。愿它安息

java 将pdf文件转成高清图片(多张合并成一张)

package kf.ats.gvnsvr.client.taizhou.common;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;

import org.icepdf.core.pobjects.Document;
import org.icepdf.core.util.GraphicsRenderingHints;

public class PdfToImageUtil {
    /**
     * 将pdf文件转成HDjpg图片
     * @param fileName
     /     public static void pdfToHDjpg(String filePath,String path){         try {             Document document = new Document();             document.setFile(filePath);             //缩放比例             float scale = 2.5f;             //旋转角度             float rotation = 0f;             List piclist = new ArrayList();                for (int i = 0; i < document.getNumberOfPages(); i++) {                 BufferedImage image = (BufferedImage)                         document.getPageImage(i, GraphicsRenderingHints.SCREEN,                                  org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);                 image.flush();                 piclist.add(image);               }             yPic(piclist,path);             document.dispose();         } catch (Exception e1) {             // TODO Auto-generated catch block             e1.printStackTrace();         }     }          / 将宽度相同的图片,竖向追加在一起 ##注意:宽度必须相同 
     *  
     * @param piclist 
     *            文件流数组 
     * @param outPath 
     *            输出路径 
     */  
    public static void yPic(List piclist, String outPath) {// 纵向处理图片  
        if (piclist == null || piclist.size() <= 0) {               System.out.println(“图片数组为空!”);               return;           }           try {               int height = 0, // 总高度               width = 0, // 总宽度               _height = 0, // 临时的高度 , 或保存偏移高度               __height = 0, // 临时的高度,主要保存每个高度               picNum = piclist.size();// 图片的数量               int[] heightArray = new int[picNum]; // 保存每个文件的高度               BufferedImage buffer = null; // 保存图片流               List imgRGB = new ArrayList(); // 保存所有的图片的RGB  
            int[] _imgRGB; // 保存一张图片中的RGB数据  
            for (int i = 0; i < picNum; i++) {  
                buffer = piclist.get(i);  
                heightArray[i] = _height = buffer.getHeight();// 图片高度  
                if (i == 0) {  
                    width = buffer.getWidth();// 图片宽度  
                }  
                height += _height; // 获取总高度  
                _imgRGB = new int[width * _height];// 从图片中读取RGB  
                _imgRGB = buffer  
                        .getRGB(0, 0, width, _height, _imgRGB, 0, width);  
                imgRGB.add(_imgRGB);  
            }  
            _height = 0; // 设置偏移高度为0  
            // 生成新图片  
            BufferedImage imageResult = new BufferedImage(width, height,  
                    BufferedImage.TYPE_INT_BGR);  
            for (int i = 0; i < picNum; i++) {  
                __height = heightArray[i];  
                if (i != 0)  
                    _height += __height; // 计算偏移高度  
                imageResult.setRGB(0, _height, width, __height, imgRGB.get(i),  
                        0, width); // 写入流中  
            }  
            File outFile = new File(outPath);  
            ByteArrayOutputStream out = new ByteArrayOutputStream();  
            ImageIO.write(imageResult, “jpg”, out);// 写图片  
            byte[] b = out.toByteArray();  
            FileOutputStream output = new FileOutputStream(outFile);  
            output.write(b);  
            out.close();  
            output.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }
    public static void main(String[] args) {
        String filePath = “D:\a.pdf”;
        pdfToHDjpg(filePath, “D:\b.jpg”);
    }

}