天天看點

文檔線上預覽(五)——利用SWFTools轉換PDF檔案為SWF格式

SWFTools工具包中的PDF2SWF工具可用來将PDF格式檔案轉換成SWF格式。使用下面的指令可以将pdf檔案轉換為單頁swf檔案。

  pdf2swf  pdfPath  –o swfPath  –T 9  –f。

  pdf2swf為pdf2swf二進制指令的絕對路徑;pdfpath為要進行轉換的PDF檔案的絕對路徑;swfPath為轉換後swf檔案的路徑;-T 9 用來設定轉換的swf版本為9,這樣設定是因為某些版本的swf檔案并不能用flexpaper正常顯示出來;-f在轉換的文檔每頁中插入一幀,提高轉換後文檔的穩定性。

  每個Java應用程式都有一個Runtime類執行個體,使應用程式能夠與其運作的環境相連接配接。應用程式不能建立自己的Runtime類執行個體,可以通過Runtime類的getRuntime方法獲得目前運作時。獲得Runtime類執行個體之後,即可以調用該類的exec方法建立一個新的程序來執行制定的字元串指令。是以,可以利用exec方法來調用之前所述的PDF2SWF指令來完成PDF至SWF檔案的轉換

       官網下載下傳位址:http://www.swftools.org/download.htm

  實作利用SWFTools轉換PDF檔案為SWF格式的算法流程如5-1所示:

  第一步,建立PDF2SWF轉換指令字元串。

  第二步,獲得目前運作時Runtime,調用第一步中設定好的轉換指令,進行轉換。

文檔線上預覽(五)——利用SWFTools轉換PDF檔案為SWF格式

圖5-1 利用SWFTools轉換PDF文檔為SWF流程

實作代碼如下:

public class SWFToolsSWFConverter implements SWFConverter{  
  
    private static String PDF2SWF_PATH = "D:\\Program Files (x86)\\SWFTools\\pdf2swf.exe";  
      
    @Override  
    public void convert2SWF(String inputFile, String swfFile) {  
        File pdfFile = new File(inputFile);  
        File outFile = new File(swfFile);  
        if(!inputFile.endsWith(".pdf")){  
            System.out.println("檔案格式非PDF!");  
            return ;  
        }  
        if(!pdfFile.exists()){  
            System.out.println("PDF檔案不存在!");  
            return ;  
        }  
        if(outFile.exists()){  
            System.out.println("SWF檔案已存在!");  
            return ;  
        }  
        String command = PDF2SWF_PATH +" \""+inputFile+"\" -o "+swfFile+" -T 9 -f";  
        try {  
            System.out.println("開始轉換文檔: "+inputFile);  
            Runtime.getRuntime().exec(command);  
            System.out.println("成功轉換為SWF檔案!");  
        } catch (IOException e) {  
            e.printStackTrace();  
            System.out.println("轉換文檔為swf檔案失敗!");  
        }  
          
    }  
  
    @Override  
    public void convert2SWF(String inputFile) {  
        String swfFile = FileUtils.getFilePrefix(inputFile)+".swf";  
        convert2SWF(inputFile,swfFile);  
    }  
    public static void main(String[] args) {  
        SWFToolsSWFConverter converter= new SWFToolsSWFConverter();  
        converter.convert2SWF("d:\\test.pdf","d:\\test.swf");  
    }  
  
}