Andorid 实现图片转成pdf的方法

用java语言写的图片转换成pdf 

主要介绍了三种图片压缩方法  保存下来 以后学习

参考http://download.csdn.net/download/u010118528/5212196 

  1 package com.word;
  2 
  3 import java.io.FileNotFoundException;
  4 import java.io.FileOutputStream;
  5 import java.io.IOException;
  6 import android.annotation.SuppressLint;
  7 import com.itextpdf.text.Document;
  8 import com.itextpdf.text.DocumentException;
  9 import com.itextpdf.text.Image;
 10 import com.itextpdf.text.pdf.PdfWriter;
 11 
 12 @SuppressLint("SdCardPath")
 13 public class PhotoVerPdf {
 14 
 15 public void t()
 16 {
 17     //创建一个文档对象 
 18     Document doc = new Document();
 19     try {   
 20         //定义输出文件的位置   
 21         PdfWriter.getInstance(doc, new FileOutputStream("/sdcard/myImage/test.pdf"));
 22         //开启文档   
 23         doc.open();   
 24         //设定字体 为的是支持中文   
 25         //BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);   
 26        // Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);   
 27         //向文档中加入图片  
 28         for(int i=1;i<32;i++)
 29         {
 30             //取得图片~~~图片格式:
 31             Image jpg1 = Image.getInstance("/sdcard/myImage/"+i+".jpg"); 
 32             //原来的图片的路径
 33             //获得图片的高度
 34             float heigth=jpg1.getHeight();
 35             float width=jpg1.getWidth();
 36             System.out.println("heigth"+i+"----"+heigth);
 37             System.out.println("width"+i+"-----"+width);
 38             //合理压缩,h>w,按w压缩,否则按w压缩
 39             //int percent=getPercent(heigth, width);
 40             //统一按照宽度压缩
 41             int percent=getPercent2(heigth, width);
 42             //设置图片居中显示
 43             jpg1.setAlignment(Image.MIDDLE);
 44             //直接设置图片的大小~~~~~~~第三种解决方案,按固定比例压缩
 45             //jpg1.scaleAbsolute(210.0f, 297.0f);
 46             //按百分比显示图片的比例
 47             jpg1.scalePercent(percent);//表示是原来图像的比例;
 48             //可设置图像高和宽的比例
 49             //jpg1.scalePercent(50, 100);
 50             doc.add(jpg1);
 51         }
 52         //关闭文档并释放资源   
 53         doc.close();   
 54     } catch (FileNotFoundException e) {   
 55         e.printStackTrace();   
 56     } catch (DocumentException e) {   
 57         e.printStackTrace();   
 58     } catch (IOException e) {   
 59         e.printStackTrace();   
 60     }  
 61     }
 62 //    /**
 63 //     * 第一种解决方案
 64 //     * 在不改变图片形状的同时,判断,如果h>w,则按h压缩,否则在w>h或w=h的情况下,按宽度压缩
 65 //     * @param h
 66 //     * @param w
 67 //     * @return
 68 //     */
 69 //    
 70 //    public int getPercent(float h,float w)
 71 //    {
 72 //        int p=0;
 73 //        float p2=0.0f;
 74 //        if(h>w)
 75 //        {
 76 //            p2=297/h*100;
 77 //        }
 78 //        else
 79 //        {
 80 //            p2=210/w*100;
 81 //        }
 82 //        p=Math.round(p2);
 83 //        return p;
 84 //    }
 85     /**
 86      * 第二种解决方案,统一按照宽度压缩
 87      * 这样来的效果是,所有图片的宽度是相等的,自我认为给客户的效果是最好的
 88      * @param args
 89      */
 90     public int getPercent2(float h,float w)
 91     {
 92         int p=0;
 93         float p2=0.0f;
 94         p2=530/w*100;
 95         p=Math.round(p2);
 96         return p;
 97     }
 98 //    /**
 99 //     * 第三种解决方案,就是直接压缩,不安像素比例,全部压缩到固定值,如210*297
100 //     * 
101 //     * @param args
102 //     */
103 //    public static void main(String[] args) {
104 //        PhotoVerPdf pt=new PhotoVerPdf();
105 //        pt.t();
106 //    }
107 }

 

 

转载于:https://www.cnblogs.com/jinsqy/archive/2013/05/08/3066886.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值