`
chaoming.yang
  • 浏览: 62994 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于虚拟打印的PDF文档归档探索

 
阅读更多
    在很多情况下需要把各种可视的文档如html,word等可打印的文件
转成PDF格式的文件进行保存。因为PDF的具有跨平台性,不可编辑(除用特殊的编辑器),方便加密,加水印,数字签名等特点。
   目前的各种主流编程语言如java,.net等都提供了相关的api进行PDF的创建及导出,格式转换,就java语言来说有很多种如itext,yahp,pdfbox等,
但没有那一种技术或者组件能很好的针对不同原始格式的文档进行转换,同时由于在某些情况下,用户对转换后的格式有严格的要求,即转换后的PDF要与原始可视的一致,与
纸张打印的格式效果一致。同时对转换后PDF格式文件的大小方面也有一定的要求。
   因此基于PDF虚拟打印机是最简单和广泛的格式转换方案
目前有很多虚拟打印机可以方便的把格式的文档转成pdf格式,如:adobe pdf printer smartprinter ccconverter等等,还包括许多在线的转换网址。
  但虚拟打印机提供都是标准的打印机接口API,在转换过程中需要用户进行参与
如指定转换后pdf文件的保存路径(可以设置默认保存路径),手动输入文件名等,同时还有各种类似的虚拟打印专有的打印参数,这些虚拟打印机参数设置并没有提供编程API,smartprinter说可以提供api,但是收费的。

基于现在进行的项目"电子病历归档",下面针对java平台有如下解决方案:
  通过PDFCreator(免费开源)虚拟打印机把任何可打印的文(html,dhtml,world,excel,自定义的格式等)转成PDF。
利用PDFCreator内置的保存后动作选项,执行vb script,在vb scripte中通过Microsoft Internet Transfer Control
上传文件至ftp服务器,ftp文件服务器采用apache ftpserver,在此源代码基础上进行二次开发,采用PDFBox对上传的PDF文档进行内容解析提取关键字,以此关键字对文档进行重命名,同时也可以基于lucene 建立基于内容的全文检索索引的创建。

就电子病历归档系统采用这种方案的优点:
  1.数据采集不用其他厂商提供接口,做集成比较方便快捷。
  2.保证采集上的PDF文档保持了原有的显示打印格式
  3.在收集的同事即可建立全文检索的索引创建,不用在另外启用一个目录监视程序。
  4.全部是免费开源软件,可控性强,灵活,且不花钱。

目前在电子病历归档系统中采集病历文档比较普遍的方式如下:

1.虚拟打印:
   各个系统虚拟打印到某一目录,然后通过一监控程序监视此目录此情况下同步比较困难,目录监控程序的扫描间隔不好确定,由于无法获取打印机的状态,很多情况下虚拟打印机的PDF文档并未创建完成就被目录监控程序读取,造成读取的文档内容错误。

2.与其他系统做接口:
   采用接口方式如(socket,或者webservice)要求其他厂商转换PDF文档并且序列此文档上传到归档系统。
缺点:此种方式要求其他厂商配合性比较高
  目前医院系统中电子病历分散在不同的系统中如:PACS,LIS,CIS,EMR,AN)等系统中,各个系统架构(c/s,b/s)与开发语言具有多样性(pb,.net,java),同时文档的格式多样性(html,world,自定义模板文档格式),在各个系统内部转成PDF具有一定的困难性,同时转换后的PDF在压缩比率上也区别很大,经过对比采用虚拟打印机转换的PDF文档一般都是经过很好压缩的且显示效果无损。
   综上所述在类似于电子病历归档系统这类的文档采集系统应用中,此种方式具有很大的可行性:
其最大的价值在于系统集成上面,系统集成过渡比较平坦,基本不需要修改任何系统,只要把文档打印到虚拟打印上即可(目前这些系统一般都有打印入口,以把这些文档以纸质的方式来查看保存),而不是要求其他厂商配合,利于系统的快速上线,由于全部采用开源的组件,在系统灵活性和费用方面有很大的优点。
======附注
1.PDFCreator下载地址:http://sourceforge.net/projects/pdfcreator/
 
2. 基于Microsoft Internet Transfer Control 的ftp vb脚本:
=============begin=========
' FTP upload script
' Part of PDFCreator
' License: GPL
' Homepage: http://www.sf.net/projects/pdfcreator
' Version: 1.1.0.0
' Date: September, 1. 2005
' Author: Frank Heind鰎fer

Option Explicit

Const AppTitle = "PDFCreator - FTPUpload"

Dim objArgs, fname, domain, user, pass, rdir

domain="127.0.0.1"
rdir="archive"
user="root"
pass="root"

Set objArgs = WScript.Arguments

If objArgs.Count = 0 Then
MsgBox "This script needs a parameter!", vbExclamation, AppTitle
WScript.Quit
End If

fname = objArgs(0)


Call FTPUpload(domain, rdir, user, pass, fname)

Private Sub FTPUpload(domain, rdir, user, pass, fname)
Dim fso, ftpo
Set fso = CreateObject("Scripting.FileSystemObject")
Set ftpo = CreateObject("InetCtls.Inet.1")
ftpo.URL = "ftp://" & domain
ftpo.UserName = user
ftpo.Password = pass
ftpo.Execute , "CD " & rdir

Do
  WScript.Sleep 100
Loop while ftpo.StillExecuting

ftpo.Execute , "Put """ & fname & """ """ & fso.GetFilename(fname) & """"

Do
  WScript.Sleep 100
Loop while ftpo.StillExecuting

ftpo.Execute , "Close"
End Sub
=============end=========

分享到:
评论

相关推荐

    基于SpringBoot框架的中小企业完全开源的ERP.zip

    基于springboot的java毕业&课程设计

    基于Springboot的健身信息系统.zip

    基于springboot的java毕业&课程设计

    基于vue + springboot的学生成绩管理系统.zip

    基于springboot的java毕业&课程设计

    基于卷积神经网络的语义分割

    基于卷积神经网络的语义分割卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均

    track-map_android-master.zip

    track-map_android-master

    dAFASFDSGSFDGFDHDFG

    dAFASFDSGSFDGFDHDFG

    毕设设计-学生宿舍管理系统 基于SpringBoot实现,界面简洁,功能完善

    毕设设计-学生宿舍管理系统 基于SpringBoot实现,界面简洁,功能完善 主要功能 ● 定位打卡、宿舍智能分配、学生信息管理、资讯管理(权限设计)等 使用 ● mysql、git、springboot ● 数据库初始化sql存储在doc文件夹下面 设计一个基于Spring Boot的学生宿舍管理系统,你需要确保系统既满足实用性,又保证界面简洁、功能完善。以下是一个基本的设计方案,包括系统的功能模块、技术栈选择和界面设计要点。 ### 功能模块 1. **用户认证模块**: - 登录/登出功能。 - 用户权限管理(如学生、宿舍管理员、系统管理员)。 2. **学生信息管理**: - 学生基本信息录入、查询、修改和删除。 - 宿舍分配与调换。 3. **宿舍楼管理**: - 宿舍楼信息维护。 - 宿舍房间信息管理。 4. **维修报修管理**: - 学生报修申请。 - 维修状态跟踪。 5. **来访登记管理**: - 来访人员登记。 - 访问记录查询。 6. **公告与通知发布**: - 发布宿舍相关公告和通知。

    课设毕设基于SSM的宝康药房销售管理系统 LW+PPT+源码可运行.zip

    课设毕设基于SSM的宝康药房销售管理系统 LW+PPT+源码可运行.zip

    python网络爬虫-入门基础学习爬虫原理.zip

    python网络爬虫-入门基础学习爬虫原理.zip

    PictureSelectDemo-master.zip

    PictureSelectDemo-master

    基于 YOLOv5 的实时摄像机馈送中识别对象-主体

    基于 YOLOv5 的实时摄像机馈送中识别对象-主体

    基于springboot的权限管理系统.zip

    基于springboot的java毕业&课程设计

    WBC白细胞数据集(300)

    该数据集大小为300张120×120地白细胞图片

    结构型设计模式(7种)

    结构型设计模式(7种)

    基于SpringBoot+SpringSecurity的RBAC管理系统.zip

    基于springboot的java毕业&课程设计

    MySQL8.4.0 LTS(mysql-test-8.4.0-linux-glibc2.17-aarch64.tar.xz)

    MySQL8.4.0 LTS(mysql-test-8.4.0-linux-glibc2.17-aarch64.tar.xz)适用于Linux Generic aarch64 glibc2.17

    GaodeMapDemo-master.zip

    GaodeMapDemo-master

    基于SSE和多核编程的电子相册设计与实现

    【作品名称】:基于SSE和多核编程的电子相册设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:基于SSE和多核编程的电子相册设计与实现

    中国知网(cnki)爬虫及数据可视化分析设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip

    中国知网(cnki)爬虫及数据可视化分析设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 中国知网(cnki)爬虫及数据可视化分析设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的。

    一种基于 STM32 的辅助分类变容垃圾桶.zip

    一种基于 STM32 的辅助分类变容垃圾桶.zip

Global site tag (gtag.js) - Google Analytics