RoadFlow工作流附件管理采用文件存储方式,文件保存在站点外,数据表中存加密后的文件地址方式实现。多个文件用|隔开:
文件保存目录在配置文件(appsettings.json)中设置:
在线预览OFFICE文件:
RoadFlow中在线预览OFFICE文件采用在服务器安装LibreOffice来转换为PDF文件实现在线预览。
服务端上要安装LibreOffice,下载地址:https://zh-cn.libreoffice.org/download/libreoffice/
配置文件(appsettings.json)中设置安装目录:
如果是Linux环境这里路径直接填:libreoffice
如果服务器是windows iis环境,则要在应用程序池,高级设置中,加载用户配置文件设置为True:
如果是预览复杂格式的office文件,建议采用wps来转换pdf预览,wps对ms office的兼容会好一些,实现方式:
1、安装wps。
从wps官网下载安装。
2、项目中添加引用。
引用后:
3、添加wps转换pdf的方法。
文件:\src\RoadFlow.Utility\DocExtensions.cs
/// <summary> /// 转换为PDF-WPS方式 /// </summary> /// <param name="file">要转换的文件</param> /// <param name="outPutPath">输出路径</param> /// <returns>转换后的pdf文件路径</returns> public static string ToPdfWps(string file, string outPutPath = "") { if (!File.Exists(file)) { return string.Empty; } if (outPutPath.IsNullOrWhiteSpace()) { outPutPath = Path.GetDirectoryName(file).Replace("\\", "/"); } if (!Directory.Exists(outPutPath)) { Directory.CreateDirectory(outPutPath); } string pdfFile = outPutPath + "/" + Path.GetFileNameWithoutExtension(file) + ".pdf"; var wps = new Word.Application(); try { var doc = wps.Documents.Open(file, Visible: false); doc.ExportAsFixedFormat(pdfFile, Word.WdExportFormat.wdExportFormatPDF); doc.Close(); } catch { return string.Empty; } finally { wps.Quit(); } return pdfFile; }
4、修改转换方法为wps,这里应该要判断只有word文件才调用此方法转换,其他的还是用liberoffice。
修改文件:\src\RoadFlow.WebApi\Areas\RoadFlowWeb\Controllers\FilesController.cs
5 、发布到IIS设置。
64位的系统需要进入32位的组件服务才能看到office的相关组件,在此点击"开始" ->“运行”,输入"mmc -32"
在出现有对话框里点击“文件”菜单下的“添加/删除管理单元”菜单后,再出现的对话框中选择“组件服务”后点击“添加”按钮。
再依次展开"组件服务"->计算机—>我的电脑—>DDOM配置,找到word的组件。
依次打开右键属性,依次将“标识”标签下的“选择运行此应用程序的帐户”设置为“交互式用户”。
联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有
|