c:相信大家都知道“FlashPaper”這個東西是用來干什么的,他是一個轉換的軟件,通過虛擬打印機把文件流轉換成PDF或SWF文件。
這里廢話就不多說了,直接看如何使用C#調用FlashPaper2:
protected void Button1_Click(object sender, EventArgs e)
{
?string root = Server.MapPath("~/");? // 獲取虛擬路徑。
?string path = this.FileUpload1.PostedFile.FileName;? // 獲取上傳文件的路徑。
?string name = System.IO.Path.GetFileName(path);? // 獲取上傳文件的名稱,包括后綴。
?string outPath = string.Format("{0}{1}{2}", root, "allFiles/", name);? // 合并上傳文件的保存路徑。
?string swfPath = string.Format("{0}{1}{2}.swf", root, "swfFiles/", Guid.NewGuid().ToString("N"));? // 合并Swf文件保存的路徑。
?this.FileUpload1.PostedFile.SaveAs(outPath);? // 保存上傳的文件到指定的路徑。
?// 通過注冊表獲取FlashPrinter.exe注冊的路徑。注:/初始化/初始化.bat?? 一定要執行過此文件后才可以獲取路徑。
?string appPath = (string)Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPaper Printer\2\Installation", "AppPath", null);
?string param = string.Format("{0} -o {1}", outPath, swfPath);? // 合并需要的參數信息。
?// 創建一個進程。
?System.Diagnostics.Process p = new System.Diagnostics.Process();
?p.StartInfo.FileName = appPath;? // 賦值進程要執行的應用程序。
?p.StartInfo.Arguments = param;? // 賦值應用程序可用參數。
?p.StartInfo.UseShellExecute = false;
?p.StartInfo.RedirectStandardInput = false;
?p.StartInfo.RedirectStandardOutput = false;
?p.StartInfo.RedirectStandardError = true;
?p.StartInfo.CreateNoWindow = true;? // 是否創建顯示窗口。
?try
?{
??bool IsStart = p.Start();? // 開始執行程序,如果執行成功返回True,否則False。
??p.WaitForExit();? // 等待關聯進程退出。
??p.Close();? // 關閉進程。
?}
?catch(Exception ex)
?{
??throw ex;
?}
?Response.Write("完成。");???????
}說明:
Button1_Click:Button服務器控件的Click事件,用于上傳到服務器的按鈕。
FileUpload1:FileUpload服務器控件,用于上傳文件。
這下好了,就可以把想轉換的文件轉換成SWF文件,執行一下試試。
如果是在VS調試情況下是可以正常執行的,那么你在通過IIS里執行一下試試,你可能會發現什么都正常也沒報什么錯誤,還有可能你會發現在拒絕訪問等類似的問題。
怎么解決?為什么會出現這些問題?我一步步來解決上面的兩個問題。
?
問題一:
點擊按鈕后文件可以上傳,就是SWF文件沒有轉換成功,也沒報什么錯誤?
首先想一下,IIS是有一定權限的,不是任何程序都可以隨便調用一些文件的,這么一想那就是權限問題了。加大權限,直接把程序池屬性中標識選項卡里的預定義賬戶改為本地,這樣應該沒問題了。
問題二:
點擊上傳按鈕時出現拒絕訪問的問題?
首先看一下有沒有IO權限,如果還行,請參考問題一的方法。
小結:此程序當前環境(系統:Win2003、工具:VS2005、SDK:v2.0)測試通過。在使用FlashPaper過程中,如果你想轉換什么文件就需要安裝什么軟件。比如說我想轉換Office(doc/ppt/xls)文檔,你必須得安裝Office軟件才可以進行轉換。
這里把需要的文件及Aspx文件打包上傳了,有需要的朋友可以在此下載。注:壓縮包內FlashPaper2為綠色版,壓縮包注釋中有包含一個安裝版注冊碼。