mekl点点

导航

PDF转换成SWF

 

转换工具下载http://www.swftools.org/

swftools参数说明请参考http://blog.csdn.net/mishidezhu/article/details/7094490

第一次写随笔,纯属个人笔记。

#region 参数字段
//根目录
private static string ROOT_PATH = AppDomain.CurrentDomain.BaseDirectory;
//pdf转swf
private static string PDF2SWF_PATH = "C:\\SWFTools\\pdf2swf.exe";
//合并swf
private static string SWFCOMBINE_PATH = "C:\\SWFTools\\swfcombine.exe";
//导航
private static string SWFVIEWER_PATH = "C:\\SWFTools\\rfxview.swf";
//保存转成功的swf文件
public static string SWF_PATH = "PDFResources\\SWF";

public static string PDF_PATH = "PDFResources\\PDF";
//语言包路径
private static string XPDF_LANG_PATH = "";// ConfigReader.ReadValue<string>("XPDF_LANG_PATH");
#endregion

#region 将pdf转换为SWF
/// <summary>
/// 将pdf转换为SWF
/// </summary>
/// <param name="pdfName">pdf文件名称,不包括后缀名</param>
/// <returns></returns>
public static string PDFConVertSWF(string pdfName)
{
string isSuccess = "";
string strPDFPath = GetPath(PDF_PATH) + "\\" + pdfName;
string strSWFPath = GetPath(SWF_PATH) + "\\" + pdfName.ToString ().Substring (0,pdfName .LastIndexOf ('.')) + ".swf";
//如果PDF不存在
if (!File.Exists(strPDFPath))
{
return isSuccess;
}
if (File.Exists(strSWFPath))
{
File.Delete(strSWFPath);
}
//将pdf文档转成temp.swf文件
string strCommand = String.Format("{0} -T 8 -s languagedir={3} {1} -o {2}",
PDF2SWF_PATH, strPDFPath, strSWFPath, XPDF_LANG_PATH);


double spanMilliseconds = RunShell(strCommand);
//第一步转档失败,则返回
if (!File.Exists(strSWFPath))
{
return isSuccess;
}
//将temp.swf加入到rfxview.swf加入翻页的导航
strCommand = SWFCOMBINE_PATH + (char)32 + SWFVIEWER_PATH + (char)32 + "viewport=" + strSWFPath + "" + (char)32 + "-o" + (char)32 + strSWFPath;
spanMilliseconds = RunShell(strCommand);

if (File.Exists(strSWFPath))
{
isSuccess = strSWFPath;
}
return isSuccess;
}
#endregion

#region 获取文件全路径
///<summary>
////// 获取文件全路径
///</summary>
//////<param name="path"></param>
///<returns></returns>
public static string GetPath(string path)
{
//HttpContext.Current.Server.MapPath(path);
return String.Format("{0}{1}", ROOT_PATH, path);
}
#endregion

#region 运行CMD命令
///<summary>
////// 运行命令
///</summary>
//////<param name="strShellCommand">命令字符串</param>
///<returns>命令运行时间</returns>
private static double RunShell(string strShellCommand)
{
double spanMilliseconds = 0;
DateTime beginTime = DateTime.Now;
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.Arguments = String.Format(@"/c {0}", strShellCommand);
cmd.Start();
cmd.WaitForExit();
cmd.Close();
DateTime endTime = DateTime.Now;
TimeSpan timeSpan = endTime - beginTime;
spanMilliseconds = timeSpan.TotalMilliseconds;
return spanMilliseconds;
}
#endregion

#region 输出swf格式文件播放
///<summary>
////// swf格式文件播放
///</summary>
//////<param name="url"></param>
///<param name="width"></param>
//////<param name="height"></param>
///<returns></returns>
public static string AddSwf(string url)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<OBJECT codeBase='http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0'");
sb.Append(" height='100%' width='100%' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'>");
sb.Append("<PARAM NAME='Movie' VALUE='" + url + "'>");
sb.Append("<PARAM NAME='Play' VALUE='true'>");
sb.Append("<PARAM NAME='Loop' VALUE='true'>");
sb.Append("<PARAM NAME='Quality' VALUE='High'>");
sb.Append("<PARAM NAME='FLASHVARS' VALUE='zoomtype=3'>");
sb.Append("<embed src='" + url + @"' height='100%' width='100%' play='true' ALIGN='' loop='true' quality='high'
pluginspage='http://www.macromedia.com/go/getflashplayer'
type='application/x-shockwave-flash' flashvars='zoomtype=3'>");
sb.Append("</embed>");
sb.Append("</OBJECT>");
return sb.ToString();
}

posted on 2013-01-24 11:29  mekl点点  阅读(355)  评论(0编辑  收藏  举报