.net实现百度文库功能
作者:admin 日期:2013-02-17
关联工具及关联软件
flashprinter驱动程序(转成swf文件就要靠他了)
FlashPaper2.02绿色版
安装过程中:360会报警告,允许操作即可
swftools-0.9.1
PDF/JPEG/PNG/AVI/TTF/WAV 到 SWF 的转换工具 :pdf2swf, jpeg2swf, png2swf, avi2swf, font2swf, and wav2swf|
Office另存为pdf或xps文件补丁包(安装后,在保存文档的时候选择另存为pdf或xps文件即可)
实现机制
环境配置
环境配置算是比较麻烦的吧
1.首先安装swftools-0.9.1 记录swftools的安装路径,在代码中要使用到
2.安装flashpaper,主要是看安装后是否能转换成功,同时flashprinter是否已安装上.在转化文档的之前,要将服务器的打印机默认成首用打印机
3.安装好以上这两个后,还要安装一下
核心代码
///
/// 由文件名生成Flash文件名
///
///
///
public static string GetFlashName(string fileName)
{
int d = fileName.LastIndexOf(".");
if (d != -1)
{
return fileName.Substring(0, d) + ".swf";
}
else
{
return fileName + ".swf";
}
}
/////
///// 获取文档路径
/////
/////
/////
//public static string GetFilePath(string fileName)
//{
// return System.Web.HttpContext.Current.Server.MapPath(fileName);
//}
public static string GetFilePath(string fileName)
{
return fileName;
}
///
/// 获取Flash路径
///
///
///
public static string GetFlashPath(string flashFile)
{
//return System.Web.HttpContext.Current.Server.MapPath("~/Resource" + flashFile);
return flashFile;
}
///
/// 转换文件
///
///
///
public static Boolean ConvertFile(string filePath,string fileName)
{
//FlashPaper文件安装路径 可自行设置
//string flashPrinter = "c:/Program Files/Macromedia/FlashPaper 2/FlashPrinter.exe";
string flashPrinter = *****.****.WINFORM.TASK.Config.strFlashPaperPath;
if (File.Exists(flashPrinter))//检查flashpaper是否存在
{
string inFile = GetFilePath(filePath);
string outFile = GetFlashPath(GetFlashName(fileName));
//进程操作
Process pss = new Process();
pss.StartInfo.CreateNoWindow = false;
pss.StartInfo.FileName = flashPrinter;
pss.StartInfo.Arguments = string.Format("{0} {1} -o {2}", flashPrinter, inFile, outFile);
try
{
pss.Start();
//设置300*200毫秒不结束则退出循环
for (int i = 0; i < 300 && !File.Exists(outFile); i += 1)
System.Threading.Thread.Sleep(200);//挂起2秒
//返回输出文件是否存在
return File.Exists(outFile);
}
catch (Exception)
{
//如果报错 将输出文件删除
if (File.Exists(outFile)) File.Delete(outFile);
return false;
}
finally
{
//如果进程还未结束,杀死进程树
if (!pss.HasExited) KillProcess(pss.Id);
}
}
else
return false;
}
///
/// 杀死进程树
///
///
///
private static bool KillProcess(int pid)
{
Process[] procs = Process.GetProcesses();
for (int i = 0; i < procs.Length; i++)
{
if (GetParentProcess(procs[i].Id) == pid)
KillProcess(procs[i].Id);
}
try
{
Process myProc = Process.GetProcessById(pid);
myProc.Kill();
}
catch (ArgumentException)
{
;
}
return true;
}
///
/// 获取父进程
///
///
///
private static int GetParentProcess(int Id)
{
int parentPid = 0;
using (ManagementObject mo = new ManagementObject("win32_process.handle='" + Id.ToString(CultureInfo.InvariantCulture) + "'"))
{
try
{
mo.Get();
}
catch (ManagementException)
{
return -1;
}
parentPid = Convert.ToInt32(mo["ParentProcessId"], CultureInfo.InvariantCulture);
}
return parentPid;
}
参考文档
.Net初次使用FlashPaper
http://www.cnblogs.com/sobne/articles/1822479.html
FlexPaper实现文档在线浏览(附源码)
http://www.cnblogs.com/ke10/archive/2012/09/06/ToSwf.html
asp.net调用flashpaper实现类似百度文库的功能解决方案
http://bbs.csdn.net/topics/360221812
flashpaper使用详解
http://blog.csdn.net/dasihg/article/details/7018964
flashprinter驱动程序(转成swf文件就要靠他了)
FlashPaper2.02绿色版
安装过程中:360会报警告,允许操作即可
swftools-0.9.1
PDF/JPEG/PNG/AVI/TTF/WAV 到 SWF 的转换工具 :pdf2swf, jpeg2swf, png2swf, avi2swf, font2swf, and wav2swf|
Office另存为pdf或xps文件补丁包(安装后,在保存文档的时候选择另存为pdf或xps文件即可)
实现机制
环境配置
环境配置算是比较麻烦的吧
1.首先安装swftools-0.9.1 记录swftools的安装路径,在代码中要使用到
2.安装flashpaper,主要是看安装后是否能转换成功,同时flashprinter是否已安装上.在转化文档的之前,要将服务器的打印机默认成首用打印机
3.安装好以上这两个后,还要安装一下
核心代码
复制内容到剪贴板 程序代码
///
/// 由文件名生成Flash文件名
///
///
///
public static string GetFlashName(string fileName)
{
int d = fileName.LastIndexOf(".");
if (d != -1)
{
return fileName.Substring(0, d) + ".swf";
}
else
{
return fileName + ".swf";
}
}
/////
///// 获取文档路径
/////
/////
/////
//public static string GetFilePath(string fileName)
//{
// return System.Web.HttpContext.Current.Server.MapPath(fileName);
//}
public static string GetFilePath(string fileName)
{
return fileName;
}
///
/// 获取Flash路径
///
///
///
public static string GetFlashPath(string flashFile)
{
//return System.Web.HttpContext.Current.Server.MapPath("~/Resource" + flashFile);
return flashFile;
}
///
/// 转换文件
///
///
///
public static Boolean ConvertFile(string filePath,string fileName)
{
//FlashPaper文件安装路径 可自行设置
//string flashPrinter = "c:/Program Files/Macromedia/FlashPaper 2/FlashPrinter.exe";
string flashPrinter = *****.****.WINFORM.TASK.Config.strFlashPaperPath;
if (File.Exists(flashPrinter))//检查flashpaper是否存在
{
string inFile = GetFilePath(filePath);
string outFile = GetFlashPath(GetFlashName(fileName));
//进程操作
Process pss = new Process();
pss.StartInfo.CreateNoWindow = false;
pss.StartInfo.FileName = flashPrinter;
pss.StartInfo.Arguments = string.Format("{0} {1} -o {2}", flashPrinter, inFile, outFile);
try
{
pss.Start();
//设置300*200毫秒不结束则退出循环
for (int i = 0; i < 300 && !File.Exists(outFile); i += 1)
System.Threading.Thread.Sleep(200);//挂起2秒
//返回输出文件是否存在
return File.Exists(outFile);
}
catch (Exception)
{
//如果报错 将输出文件删除
if (File.Exists(outFile)) File.Delete(outFile);
return false;
}
finally
{
//如果进程还未结束,杀死进程树
if (!pss.HasExited) KillProcess(pss.Id);
}
}
else
return false;
}
///
/// 杀死进程树
///
///
///
private static bool KillProcess(int pid)
{
Process[] procs = Process.GetProcesses();
for (int i = 0; i < procs.Length; i++)
{
if (GetParentProcess(procs[i].Id) == pid)
KillProcess(procs[i].Id);
}
try
{
Process myProc = Process.GetProcessById(pid);
myProc.Kill();
}
catch (ArgumentException)
{
;
}
return true;
}
///
/// 获取父进程
///
///
///
private static int GetParentProcess(int Id)
{
int parentPid = 0;
using (ManagementObject mo = new ManagementObject("win32_process.handle='" + Id.ToString(CultureInfo.InvariantCulture) + "'"))
{
try
{
mo.Get();
}
catch (ManagementException)
{
return -1;
}
parentPid = Convert.ToInt32(mo["ParentProcessId"], CultureInfo.InvariantCulture);
}
return parentPid;
}
参考文档
.Net初次使用FlashPaper
http://www.cnblogs.com/sobne/articles/1822479.html
FlexPaper实现文档在线浏览(附源码)
http://www.cnblogs.com/ke10/archive/2012/09/06/ToSwf.html
asp.net调用flashpaper实现类似百度文库的功能解决方案
http://bbs.csdn.net/topics/360221812
flashpaper使用详解
http://blog.csdn.net/dasihg/article/details/7018964
[本日志由 admin 于 2015-12-03 09:21 AM 更新]
上一篇: 挺有个性的PPT教程下一篇: 意外
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 百度文库功能 类百度文库
相关日志:
评论: 0 | 引用: 0 | 查看次数: 4142
发表评论