在处理在线阅读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,防止出现一些意外的错误。