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 - 2025 重庆天知软件技术有限公司 版权所有
|