在處理在線閱讀PDF文件時,可以將PDF文件轉換為SWF的方式。使用SWFTOOLS工具可以實現格式轉換。
工具下載:http://www.swftools.org/download.html
swftools提供了:
font2swf.exe
gif2swf.exe
gpdf2swf.exe
jpeg2swf.exe
pdf2swf.exe
png2swf.exe
wav2swf.exe
這里只介紹pdf2swf.exe的使用,工具參數可以參考http://blog.csdn.net/cocolee100/article/details/5009342
代碼示例:
C#
///
<summary>
/// 將PDF轉換為SWF文件
/// </summary>
/// <param name="pdfPath"> PDF文件路徑 </param>
/// <param name="swfPath"> SWF文件路徑 </param>
/// <param name="page"></param>
public static void ConvertToSwf( string pdfPath, string swfPath, int page)
{
try
{
string exe = HttpContext.Current.Server.MapPath(EL_Config.Tools.Pdf2Swf.Url);
if (!File.Exists(exe))
{
throw new ApplicationException( " Can not find: " + exe);
}
StringBuilder sb = new StringBuilder();
sb.Append( " -o \" " + swfPath + "\" "); // output
sb.Append( " -z ");
sb.Append( " -s flashversion=9 "); // flash version
sb.Append( " -s disablelinks "); // 禁止PDF里面的鏈接
sb.Append( " -p " + " 1 " + " - " + page); // page range
sb.Append( " -j 100 "); // Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
sb.Append( " \" " + pdfPath + "\" "); // input
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = exe;
proc.StartInfo.Arguments = sb.ToString();
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
proc.Close();
}
catch (Exception ex)
{
throw ex;
}
}
/// 將PDF轉換為SWF文件
/// </summary>
/// <param name="pdfPath"> PDF文件路徑 </param>
/// <param name="swfPath"> SWF文件路徑 </param>
/// <param name="page"></param>
public static void ConvertToSwf( string pdfPath, string swfPath, int page)
{
try
{
string exe = HttpContext.Current.Server.MapPath(EL_Config.Tools.Pdf2Swf.Url);
if (!File.Exists(exe))
{
throw new ApplicationException( " Can not find: " + exe);
}
StringBuilder sb = new StringBuilder();
sb.Append( " -o \" " + swfPath + "\" "); // output
sb.Append( " -z ");
sb.Append( " -s flashversion=9 "); // flash version
sb.Append( " -s disablelinks "); // 禁止PDF里面的鏈接
sb.Append( " -p " + " 1 " + " - " + page); // page range
sb.Append( " -j 100 "); // Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
sb.Append( " \" " + pdfPath + "\" "); // input
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = exe;
proc.StartInfo.Arguments = sb.ToString();
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
proc.Close();
}
catch (Exception ex)
{
throw ex;
}
}
在使用PDF2SWF.exe時,注意的最好指定flashversion 為9,防止出現一些意外的錯誤。
