一个非常不错的纯源码“PDF转换swf”完全脱离安装第三方插件,直接使用java调用Flash api将PDF转换成图片,在将图片转换成swf。

package org.lesogo.swf.pdf.util;


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.zip.DataFormatException;




import com.flagstone.transform.FSBounds;
import com.flagstone.transform.FSCoder;
import com.flagstone.transform.FSColor;
import com.flagstone.transform.FSColorTable;
import com.flagstone.transform.FSCoordTransform;
import com.flagstone.transform.FSDefineMorphShape;
import com.flagstone.transform.FSDefineObject;
import com.flagstone.transform.FSDefineShape3;
import com.flagstone.transform.FSMovie;
import com.flagstone.transform.FSPlaceObject;
import com.flagstone.transform.FSPlaceObject2;
import com.flagstone.transform.FSSetBackgroundColor;
import com.flagstone.transform.FSShape;
import com.flagstone.transform.FSShowFrame;
import com.flagstone.transform.FSSolidFill;
import com.flagstone.transform.FSSolidLine;
import com.flagstone.transform.util.FSImageConstructor;


public class PdfToSwfUtil {


    public static final String SWF_FILE = "C:/Users/zhangliju/Desktop/手机软件包/swf/pdf/image/img.swf";


    public static final String IMAGE_SOURCE_FILE = "C:/Users/zhangliju/Desktop/手机软件包/swf/pdf/image";


    public static void main(String[] args) {
        try {
//         PdfToSwfUtil.setUpBeforeClass();
        createMovie(IMAGE_SOURCE_FILE, SWF_FILE,1f);
//            tool.transformToIMG(SWF_FILE, IMAGE_TARGET_FILE);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (DataFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }


    /**
     * 
     * @param sourceIMG 图片文件夹(多个图片),或者图片绝对路径(单个图片)
     * @param targetSWF 保存swf路径
     * @param frameRate 每张图片帧率 一般1秒1帧 0.1开始 越大越快
     * @throws DataFormatException
     * @throws IOException
     */
public static void createMovie(final String sourceIMG,final String targetSWF,final float frameRate)
            throws DataFormatException, IOException {
FSMovie movie = new FSMovie();
        
        File file = new File(sourceIMG);
        int i = 1;
        for (File f : file.listFiles()) {
       
        //获取图片基本属性
        FSImageConstructor imageGenerator = new FSImageConstructor(f.getAbsolutePath());
         
        //获取图片和画布id
        int imageId = movie.newIdentifier();
             
             int shapeId = movie.newIdentifier();


             //获取到图片格式
             FSDefineObject image = imageGenerator.defineImage(imageId);
             
             image.setIdentifier(imageId);
             
             imageGenerator.defineImage(imageId);
             //加入图片
             movie.add(image);
             //设置swf画布样式、位置
             FSDefineShape3 shape = imageGenerator.defineEnclosingShape
              //x ,y       设置画布边框大小颜色
              (shapeId,imageId, 0, 0, new FSSolidLine(10, FSColorTable.white()));
             //加入swf模型
             movie.add(shape);
             //得到画布
             FSBounds bounds = shape.getBounds();
             //设置画布到容器
             movie.setFrameSize(bounds);
             //设置每张图片1秒一帧
             movie.setFrameRate(frameRate);
             //设置容器背景颜色
             movie.add(new FSSetBackgroundColor(FSColorTable.white()));
             //在每一帧上添加一个图片,并且设置上下距离为0
             movie.add(new FSPlaceObject2(shapeId, i, 0, 0));
//显示动画
             movie.add(new FSShowFrame());
             i+=2;
}
        //在每一帧上添加一个图片,并且设置上下距离为0,这个地方需要在Flash中最后多添加一帧加入空白帧,否则显示不正常。
        movie.add(new FSPlaceObject2(-1, i, 0, 0));
        //输出路径
        movie.encodeToFile(targetSWF);
    }

}


<a href="http://download.csdn.net/detail/u012659564/9219339">资源下载</a>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值