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>