首页 > 系统相关 >国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版实现Office文档在线预览

国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版实现Office文档在线预览

时间:2024-09-13 11:47:17浏览次数:10  
标签:uos 文件 Office 预览 国产 文档 PDF 在线

PageOffice 国产版 :支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(LoogArch)芯片架构。

本示例关键代码的编写位置
Vue+Springboot

注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

在涉及到Office文档管理的各种Web项目中,时常会遇到用户阅读文档的时候,并不想将网站上的Office文档下载到本地,这时候就需要文档在线预览的功能。

目前常用的文档在线预览方案如下:

  • 转换为HTML文件。转换后的HTML格式可以直接用浏览器查看,但是无法完全保留原Word文档的格式和功能。例如,HTML不支持某些Word功能,转换时Word可能会自动更改或取消内容,而且另存HTML格式还会导致文档的布局、字体样式等发生变化,影响文档的可读性和专业性。

  • 调用第三方提供的在线预览接口。比如调用永中Office、金山文档、腾讯文档等在线预览服务,集成相对简单,开发工作量小,但是只能在公网环境使用,且对于超过一定大小的文件,预览速度会变得很慢,这意味着大文件的处理能力受限,可能会影响用户体验。在线预览文档需要先上传到第三方官方的服务器进行解析,然后下载到服务器中后实现在线预览,这种模式意味着对第三方服务的依赖,可能会因为第三方服务的问题而影响在线预览的稳定性和速度。但是如果Web系统中存储的是涉密文档,包含了技术秘密和经营秘密等商业秘密,甚至包含了国家机密,那么绝对不能使用第三方预览服务。

  • 转换为PDF文件(推荐)。通过转换为PDF格式,可以确保在大多数浏览器和平台上都能实现良好的兼容性。PDF是一种广泛支持的文件格式,几乎所有的现代浏览器都内置了对PDF的支持,这意味着用户可以在没有额外软件的情况下直接预览文件。PDF格式的文件具有很好的跨平台性,无论是在Windows、MacOS还是Linux操作系统上,用户都可以方便地打开和查看PDF文件,这一点对于需要在不同操作系统间共享和查看文档的用户来说非常重要。

用PageOffice实现的Office文档在线预览采用了转换为PDF文件的预览方案,可以在公网环境使用,也可以支持物理隔绝的内网环境。

第一步: 使用PageOffice在线编辑Office文件,可以在每次保存文件的时候同另存一份PDF格式的文件,如此一来,PDF文件和Office文件的内容总是完全同步的。实现PageOffice在线编辑Office,保存文件的同时转pdf的关键代码如下。

  • 后端代码:
  1. 在后端编写代码调用webOpen方法打开文件之前给SaveFilePage属性赋值(设置好保存时由哪个地址接口负责接收处理控件上传的文件流);
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setSaveFilePage("saveFile"); // 设置保存文件的接口地址
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
poCtrl.webOpen("doc/test.docx", OpenModeType.docNormalEdit, "张佚名"); // 打开文件
  1. 在SaveFilePage属性指向的地址接口中,创建FileSaver对在线打开的Office文件和另存的pdf文件分别进行保存。
FileSaver fs = new FileSaver(request, response);
if(fs.getFileExtName().equals(".pdf")){
    fs.saveToFile(request.getSession().getServletContext().getRealPath("pdf/") + fs.getFileName());
}else{
    fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + fs.getFileName());
}
fs.close();
  • 前端代码
    使用AddCustomToolButton添加自定义保存按钮,实现保存文件的同时另存PDF。
function SaveFile() {
  pageofficectrl.WebSave(); //保存当前文件
  pageofficectrl.WebSaveAsPDF(); //另存当前文件为PDF格式
}

OnPageOfficeCtrlInit() {
  // PageOffice的初始化事件回调函数
  pageofficectrl.AddCustomToolButton("保存", "SaveFile()", 1);
}

第二步: 需要在线预览Office文档的环节,只需集成调用PageOffice的PDFCtrl组件在线打开PDF文件即可。如果还想实现只让用户浏览文件内容,不允许用户下载另存文件的功能,可以设置pdfCtrl对象的AllowCopy属性为false,禁止文件内容的拷贝操作,这样就能实现用户只能在线查看文件,而获取不到文件的下载地址,也无法另存PDF文件到本地,实现文件的安全浏览。

PDFCtrl pdfCtrl = new PDFCtrl(request);
pdfCtrl.setAllowCopy(false);//禁止拷贝
pdfCtrl.webOpen("D:\\documents\\test.pdf");
// Linux服务器添加前缀:file://
// pdfCtrl.webOpen("file://"+"/root/documents/test.pdf");

提示
PageOffice内置了PDF阅读器,所以即使客户端电脑未安装Office或WPS软件也可以在线打开PDF文件。

参考链接:Office文档在线预览方案

标签:uos,文件,Office,预览,国产,文档,PDF,在线
From: https://www.cnblogs.com/qq742655/p/18411932

相关文章

  • dotnet 测试在 UOS Linux 上使用 Process Start 打开文件的行为
    本文记录我在UOSLinux系统上使用Process.Start打开文件的行为使用UseShellExecute打开文本文件我放入了名为Test.txt的文件,然后使用下面代码尝试打开文件。实际测试可以正常打开usingSystem.Diagnostics;varfilePath="../Test.txt";Console.WriteLine($"文件......
  • 2024年8月国产数据库大事记-墨天轮
    本文为墨天轮社区整理的2024年8月国产数据库大事件和重要产品发布消息。目录2024年8月国产数据库大事记TOP102024年8月国产数据库大事记(时间线)产品/版本发布兼容认证代表厂商大事记厂商活动【VLDB2024分享和相关论文】其它活动相关资料厂商财报其它2024年......
  • Packaging.DebUOS 专门为 dotnet 应用制作 UOS 安装包
    Packaging.DebUOS是我所在的团队开发开源的一款专门用在为dotnet的应用制作成为符合要求的UOS统信系统软件安装包的工具,此工具可以辅助开发者使用现有的工具链经过简单的配置即可完成安装包的制作设计思想Packaging.DebUOS旨在通过使用csproj项目文件等方式进行配置,避免......
  • office办公软件教程自学视频资源百度云下载
    如大家所熟悉的,MicrosoftOffice是一款应用广泛且深受人们喜爱的办公软件,运用它,能极大提高我们工作和学习的效率,节约时间和其他成本。那么,你知道office可以运用在哪些方面吗?1. 行政助理:Office办公软件是行政助理必备的工具,可以用来处理日常的文档、邮件、日程安排等工作;2. ......
  • 国产化:部署单机THS(东方通TongHttpServer替代Nginx)
    背景国产化要求,使用东方通TongHttpServer替代Nginx。1安装THS解压之后把授权文件license.dat放到主目录下即可。tarzxvfTongHttpServer_6.0.0.2_x86_64.tar.gz2启动主程序如果以root用户启动THS时,worker进程会切换到nobody用户nobody组运行。所以确定......
  • 零基础国产GD32单片机编程入门(十六)DMA详解及ADC-DMA方式采集含源码
    文章目录一.概要二.GD32F103C8T6单片机DMA外设特点三.GD32单片机DMA内部结构图四.DMA各通道请求五.GD32F103C8T6单片机ADC-DMA采集例程六.工程源代码下载七.小结一.概要基本概念:DMA是DirectMemoryAccess的首字母缩写,是一种完全由硬件执行数据交换的工作方式。DM......
  • docker镜像构建libreoffice转换文件
    具体需求: 根据Libreoffice最新版本,创建一个容器环境,用于文件不同类型的转换#使用阿里云的Python镜像FROMdockerpull.com/python:3.9-slim#设置工作目录WORKDIR/app#更新debian系统的APT源列表为阿里ARGDEBIAN_FRONTEND=noninteractiveRUNapt-getclean&&\......
  • 更薄 | 更扛振,邮票孔RK3588J工业核心板,平板电脑首选!国产化率100%
    ......
  • 全志T507-H国产平台Ubuntu系统正式发布,让您的应用开发更便捷!
     为了满足广大工业用户的需求,创龙科技针对全志T507-H工业平台进行了Ubuntu系统适配,开发环境如下:Ubuntu:Ubuntu18.04.4U-Boot:U-Boot-2018.05Kernel:Linux-4.9.170、Linux-RT-4.9.170LinuxSDK:LinuxSDK-[版本号].tar.gz(基于全志官方V2.0_20220618) 全志T507-H国产平台T507-H......
  • 国产游戏蓄力,火山引擎ByteHouse助力游戏厂商造爆款
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近几年,国产游戏在国内市场规模有起伏,但整体呈增长态势。2023年,我国自主研发游戏国内市场实际销售收入达到2563.75亿元,同比增长15.29%。 一方面,国产自主研发游戏在整体市场上还处于......