日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java pdf 转 swf_java pdf 转 swf

發布時間:2023/12/29 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java pdf 转 swf_java pdf 转 swf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java Process.exitValue & Process.waitFor()

Process.exitValue() 采用非阻塞的方式返回,如果沒有立即拿到返回值,則拋出異常

Process.waitFor() 當前線程等待,如有必要,一直要等到由該 Process 對象表示的進程已經終止。但是如果我們在調用此方法時,如果不注意的話,很容易出現主線程阻塞,Process也掛起的情況。在調用waitFor() 的時候,Process需要向主線程匯報運行狀況,所以要注意清空緩存區,即InputStream和ErrorStream,在網上,很多只提到處理InputStream,忽略了ErrorStream。以下一段代碼,貼出來,僅做參考。

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.List;

/** PDF轉SWF工具

* @author tangs

**/

public class Converter {

public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throws IOException {

目標路徑不存在則建立目標路徑 File dest = new File(destPath);

if (!dest.exists()) dest.mkdirs();

//源文件不存在則返回 File source = new File(sourcePath);

if (!source.exists()) return 0;

//調用pdf2swf命令進行轉換//String command = "D:\\swftools\\pdf2swf.exe" + " -o \"" + destPath + fileName +"\" -s languagedir=D:\\xpdf\\xpdf-chinese-simplified -s flashversion=9 \"" + sourcePath + "\"";//String command = "D:\\swftools\\pdf2swf.exe" + " -o \"" + destPath + fileName +"\" -s flashversion=9 \"" + sourcePath + "\""; String command= "D:/SWFTools/pdf2swf.exe -t \""+destPath+"\\Java.pdf\" -o \""+destPath+"\\test.swf\" -s flashversion=9 -s languagedir=D:\\xpdf\\xpdf-chinese-simplified ";

System.out.println("cmd:"+command);

//Process pro = Runtime.getRuntime().exec(command); Process process = Runtime.getRuntime().exec(command); //調用外部程序 final InputStream is1 = process.getInputStream();

new Thread(new Runnable() {

public void run() {

BufferedReader br = new BufferedReader(new InputStreamReader(is1));

try {

while(br.readLine()!= null) ;

} catch (IOException e) {

//TODO Auto-generated catch block e.printStackTrace();

}

}

}).start(); //啟動單獨的線程來清空process.getInputStream()的緩沖區 InputStream is2 = process.getErrorStream();

BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));

StringBuilder buf = new StringBuilder(); //保存輸出結果流 String line = null;

while((line = br2.readLine()) != null) buf.append(line); //循環等待ffmpeg進程結束 System.out.println("輸出結果為:" + buf);

//BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream())); while (br2.readLine() != null);

try {

process.waitFor();

} catch (InterruptedException e) {

//TODO Auto-generated catch block e.printStackTrace();

}

return process.exitValue();

}

public static void main(String []args) throws IOException {

String sourcePath = "D:\\Java.pdf";

String destPath = "D:\\";

String fileName = "Javssa.swf";

try{

Converter.convertPDF2SWF(sourcePath, destPath, fileName);

}catch(Exception ex)

{

System.out.println("error");

}

System.out.println("success");

}

}

工具準備

swftools.exe 下載

http://www.swftools.org/download.html

安裝至D盤

SWFTools提供了一系列將各種文件轉成swf的工具:

font2swf.exe

gif2swf.exe

jpeg2swf.exe

pdf2swf.exe

png2swf.exe

wav2swf.exe

這里我們只使用pdf2swf.exe

flexpaper下載

http://code.google.com/p/flexpaper/

這里我們使用已經編譯好的FlexPaper的flash版本

總結

以上是生活随笔為你收集整理的java pdf 转 swf_java pdf 转 swf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。