如何快速又高质量的输出PDF实验报告?

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

PDF文档的打印在很多应用场景中都会被使用到,最为常见的就是实验室信息管理的应用场景,期间涉及到大量的报告呈现及打印的需求。

LIMS背景介绍

实验室信息管理系统(Laboratory Information Management System 英文缩写LIMS)是将以数据库为核心的信息化技术与实验室管理需求相结合的信息化管理工具。以ISO/IEC17025:2017 CNAS-CL01《检测和校准实验室能力的通用要求》(国标为GB/T 27025:2008)规范为基础,结合网络化技术,将实验室的业务流程和一切资源以及行政管理等以合理方式进行管理。

LIMS系统需求及解决思路

在LIMS系统构建的过程中,实验模板设计、实验数据填报、导出完整的PDF实验报告并且实现检测过程无纸化、系统化,检测报告电子化是LIMS系统的主要需求。那么如何快速又高质量的输出PDF实验报告呢?

借助SpreadJS表格技术及GcExcel仅仅需要三步就可以完成整个功能的开发:

  1. 将SpreadJS集成到系统中,快速实现数据的在线录入
  2. 在系统中配置导出PDF文档所需要的参数
  3. 通过GcExcel将实验报告导出为PDF文件

具体的操作步骤

  1. 用SpreadJS完成实现模板设计和实验数据填报

利用SpreadJS的在线表格编辑器,实验人员就可以通过类Excel的操作完成实验报告的设计。

通过以下代码就可以将SpreadJS快速集成到现有的系统中:

创建一个JavaScript应用程序:

注意 SpreadJS是无依赖的,仅仅需要以下文件: gc.spread.sheets.xx.x.x.css, gc.spread.sheets.all.xx.x.x.min.js即可.

<!DOCTYPE html><html lang="zh"><head><meta charset="utf-8" \><script src="gc.spread.sheets.all.xx.x.x.min.js"><link rel="stylesheet" href="gc.spread.sheets.xx.x.x.css"type="text/css"\><head\><body\><body\></html\>添加SpreadJS容器元素 - 在页面的body元素中添加一个DOM元素作为它的容器。<div id="ss">\</div\>//初始化SpreadJS JavaScript控件。 - SpreadJS控件通过使用new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 })来进行初始化。window.onload = function () {// Initialize a workbookvar workbook = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });// get workbook object// var workbook = GC.Spread.Sheets.findControl(document.getElementById('ss'));};

在完成嵌入之后,通过SpreadJS的数据绑定的功能,某些默认数据可以从数据库加载,显示到实验模板中,实验人员填报的实验数据也可以通过数据绑定轻松获取到

  1. 用SpreadJS完成导出PDF(打印)的配置

使用SpreadJS的在线表格编辑器可以完成导出PDF的配置,可配置导出区域,重复区域,页眉,页脚,水印等,对导出PDF报告进行自定义。

  1. 用GCExcel将实验报告导出

在SpreadJS中完成模板设计,实验数据填报,以及各种打印配置后,可以将整个实验模板文件导出为一个json,发给后端,后端就可以用GCExcel加载,GCExcel可以完美兼容SpreadJS的特性,在SpreadJS中对模板的配置,以及对导出的PDF的配置,在GCExcel中都完美兼容,当然也可以在GCExcel完成对模板的配置以及PDF导出的配置。

Java Workbook workbook = new Workbook(); //打开SpreadJS导出的模板 workbook.open("template.ssjson");  // 导出PDF配置  PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); // 配置支持换行缩小  pdfSaveOptions.getShrinkToFitSettings().setCanShrinkToFitWrappedText(true);  // 导出PDF  workbook.save("ExportPdf.pdf");

至此,就完成PDF文档的打印。

如果各位有想要试用Lims系统的用户可以访问这个在线的Demo链接:
https://demo.grapecity.com.cn/spreadjs/demos/cases/#/preview?template=limsData

使用SpreadJS和GCExcel搭建LIMS系统的优势

  1. SpreadJS能够帮助LIMS系统快速实现数据的绑定功能,实现数据自动提取,如委托单位信息、例行监测任务等首次录入后可直接调用,且支持调用历史任务时对监测项目进行修改并生成新的任务单,无须重复录入,大大减少了人工成本和降低出错率。
  2. 使用 SpreadJS 设计模板,系统获取仪器测试数据后填入原始记录单(预置计算公式、修约等)可直接生成 Excel 记录表,通过选择报告模板生成完整的监测报告,全过程无需手写原始记录,无需反复录入监测数据,方便快捷,准确率高。
  3. SpreadJS 提供权限控制的方法,可以规范修改流程,严格控制报告修改。
  4. 使用Spread可以对导出的PDF进行精确配置。
  5. GCExcel完美兼容SpreadJS特性,在后端批量导出完整的PDF实验报告,既美观又高效。

扩展链接

用C1PDF控件从应用程序创建支持AcroForm的PDF文件

使用LEADTOOLS将图像转换为包含文本、元数据的可检索PDF文件:25天25个项目

项目实战:在线报价采购系统(React +SpreadJS+Echarts)

Spring Boot框架下实现Excel服务端导入导出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27964.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xred病毒分析

概述 xred病毒是一种感染型病毒&#xff0c;会感染系统中特定目录下的exe和xlsx文件&#xff0c;该病毒会将自身伪装成Synaptics触摸板驱动程序&#xff0c;使用Dephi编写。 样本的基本信息 Verified: Unsigned Link date: 6:22 1992/6/20 Company: Synaptics Description: S…

华南农业大学|图像处理与分析技术综合设计|题目解答:定位数显区域并分离电表数字

设计任务 图 28 是一幅正在运行的数字电表图像&#xff08;ipa28.jpg&#xff09;&#xff0c;试采用图像处理与分析 技术&#xff0c;设计适当的算法和程序&#xff0c;找出电表的数显区域&#xff0c;计算目标区域的长宽比 和像素面积&#xff1b;并提取其中面积最大的 …

Service:微服务架构的应对之道

Service 的工作原理和 LVS、Nginx 差不多&#xff0c;Kubernetes 会给它分配一个静态 IP 地址&#xff0c;然后它再去自动管理、维护后面动态变化的 Pod 集合&#xff0c;当客户端访问 Service&#xff0c;它就根据某种策略&#xff0c;把流量转发给后面的某个 Pod。 Service 使…

Docker把公共镜像推送到harbor私服的流程(企业级)

如果构建项目时&#xff0c;使用了k8s docker Jenkins的模式。 那么我们在docker构建镜像时&#xff0c;如果需要使用了Nodejs&#xff0c;那么我们必须得从某个资源库中拉取需要的Nodejs。 在企业里&#xff0c;正常都会把自己项目涉及的库都放在harbor私服里。 下面讲一下&…

珠海电子行业实行MES系统该如何规划 mes系统供应商 先达盈致

在电子行业中&#xff0c;MES系统是提高生产效率、降低成本、优化生产计划的关键工具。但是&#xff0c;如何规划MES系统的实施才能使其大限度地提高企业的生产效率和经济效益呢&#xff1f; 首先&#xff0c;企业应该充分了解MES系统的基本概念和功能模块。MES系统中包括生产…

PowerDesigner 数据库建模使用详解

目录 一、前言 二、PowerDesigner概述 2.1 PowerDesigner核心能力 2.1.1 集成多种建模能力 2.1.2 自动生产代码能力 2.1.3 强大的逆向工程能力 2.1.4 可扩展的企业库解决方案 2.2 PowerDesigner常用的几种模型 2.2.1 概念模型 2.2.2 逻辑数据模型 2.2.3 物理模型 2.2…

华为云CodeArts Check IDE插件体验之旅

1 开发者的思考 近年来&#xff0c;ChatGPT的来临像一场突然出现的风暴&#xff0c;程序员是否马上被取代的担忧出现在媒体上了&#xff0c;作为软件开发小白&#xff0c;前不久我也陷入了这样的深思之中&#xff0c;但认真的想了下&#xff0c;ChatGPT就如自动驾驶一样&#…

详解Windows安装分布式版本控制系统git

文章目录 前言下载安装相关链接 前言 git是一个分布式版本控制软件&#xff0c;最初由Linux创作者Linus Torvalds创作&#xff0c;并于2015年以GPL许可协议发布。git易于学习&#xff0c;占用空间小&#xff0c;性能却快如闪电&#xff0c;可以快速、 高效的管理从小到大的项目…

IP扫描工具

什么是高级 IP 扫描仪 高级 IP 扫描程序是网络中必不可少的工具&#xff0c;使管理员能够跟踪网络地址空间。在提供要扫描的 IP 地址范围时&#xff0c;高级 IP 扫描程序会借助网络扫描协议按顺序检查该范围内的每个 IP&#xff0c;扫描后&#xff0c;高级 IP 扫描程序工具可查…

Python 使用 Stable Diffusion API 生成图片示例

代码&#xff1a; import base64 import datetime import json import osimport requestsdef submit_post(url: str, data: dict):"""Submit a POST request to the given URL with the given data.:param url: url:param data: data:return: response"…

Unity 之 安卓平台上架隐私问题解决方案

Unity 之 助力游戏增长 -- 解决隐私问题 一&#xff0c;平台测试隐私问题二&#xff0c;解决方式一2.1 勾选自定义Mainifest2.2 修改自定义Mainifest2.3 隐私协议弹窗逻辑 三&#xff0c;解决方式二3.1 导出安卓工程3.2 创建上层Activity3.3 配置AndroidManifest 四&#xff0…

通过new FormData提交简单数据

通过new FormData提交简单数据 效果示例图代码 效果示例图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">* {padding: 0px;margin: 0px;box-sizing: border-…