`
chaoming.yang
  • 浏览: 63792 次
  • 性别: 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=========

分享到:
评论

相关推荐

    虚拟打印机 将文档转为PDF

    虚拟打印机技术是一种创新的文档处理方式,它允许用户将任何可打印文档转换成特定的文件格式,例如PDF(Portable Document Format)。PDF文件格式因其跨平台兼容性和内容保留性而广受欢迎,尤其适合共享和长期存储。...

    xml生成对应的PDF文件

    方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用; 方法二:用其他虚拟打印机转成PDF文件。 方法三:使用专门的转换软件,把文件转成...

    虚拟打印(将Word转为PDF文件)

    这个过程中的关键在于Acrobat PDFWriter 5的驱动程序,它充当了一个中间转换工具,使得没有物理打印机的用户也能生成高质量的PDF文档。这种技术对于需要分享、归档或在线发布文档的用户尤其有用,因为它可以防止他人...

    虚拟PDF文件打印机

    虚拟PDF打印机软件通常会集成到操作系统中,就像一个真实的打印机设备,用户可以选择它作为“打印”目标,然后软件会处理文档并生成PDF文件。 PDF虚拟打印机的工作流程如下: 1. 用户打开需要转换的文档,如Word、...

    福昕PDF虚拟打印机+PDF文档阅读器完美版

    福昕PDF虚拟打印机和福昕PDF文档阅读器是两款在IT行业中广泛应用的软件工具,尤其在处理PDF文档时。这两款软件由福昕软件开发,提供了高效、便捷的PDF操作功能。 首先,我们来详细了解一下“虚拟打印机”。虚拟...

    PDF_Print,打印PDF文件

    在电脑上,PDF Print充当一个“打印机”,但其实它并不真正进行物理打印,而是创建一个与原始文件内容相同的PDF文档。这种功能对于需要保存、分享或归档电子文档的人来说非常实用,因为PDF格式能保持文档的原始布局...

    PDF虚拟打印机无水印

    标签“PDF 虚拟打印机”进一步明确了软件的主要功能,即提供PDF创建服务,通过模拟打印机的工作方式,使得用户能够在任何支持打印的应用程序中生成PDF文件。 压缩包内的文件“Setup.exe”通常是一个安装程序,用户...

    PDF打印,制作PDF文件

    PDF打印和制作PDF文件是日常工作中常见的需求,尤其在文档共享、阅读和存档时,PDF格式因其良好的兼容性和稳定性而被广泛使用。本篇将详细介绍如何进行PDF打印以及制作PDF文件。 首先,PDF(Portable Document ...

    虚拟打印机(打印机将内容转换成PDF文件)Adobe_PDF_Printer7.zip

    Adobe PDF Printer 7是Adobe公司提供的一款虚拟打印机驱动,其主要功能就是帮助用户将任何可打印的文档转化为高质量的PDF格式,便于分享、存储和归档。 首先,我们来了解虚拟打印机的基本工作原理。当您选择使用...

    虚拟打印机PDFPro351

    **虚拟打印机PDFPro351** 是一款高效且便捷的PDF生成工具,它以其卓越的性能和易用性,成为了用户在日常工作中创建高质量PDF文档的首选。虚拟打印机技术允许用户通过“打印”功能,将任何可打印文档转换为PDF格式,...

    doPDF(虚拟PDF打印)

    doPDF是一款功能强大的虚拟PDF打印机,它允许用户以PDF格式保存和打印任何可打印文档。这款软件简单易用,能够方便地将各种类型的文件转换成高质量的PDF文档,确保了跨平台和设备间的文档一致性。在Windows操作系统...

    PDF打印机 虚拟打印机 PDF虚拟打印机 Adobe_PDF_Printer7

    这种技术在IT领域广泛应用,因为PDF文件能够保持原始文档的格式和质量,无论在哪种设备或操作系统上打开,都能保持一致的显示效果。以下是关于PDF虚拟打印机及其核心功能、工作原理、使用场景和Adobe PDF Printer 7...

    虚拟打印机Adobe_PDF_Printer7

    4. 完成上述步骤后,软件会自动生成一个PDF文件,文件内容与原本要打印的文档一致。 此外,Adobe_PDF_Printer7还支持一些高级特性,比如: - 合并文件:可以将多个文档合并成一个PDF文件。 - 压缩PDF:减少文件...

    5DPDF超级好用的PDF虚拟打印机

    通过5DPDF虚拟打印机,用户不仅可以便捷地创建PDF文件,还可以轻松实现文档的归档、分享和分发,尤其适合于企业内部协作、学术交流以及个人资料管理等领域。在日常工作中,掌握如何利用这样的工具无疑会提高办公效率...

    虚拟打印机可以直接打印出文档来

    虚拟打印机是一种计算机软件技术,它模拟了实际物理打印机的功能,但并不直接在纸上打印输出,而是将打印任务转化为另一种格式的文件,如PDF、PNG、JPEG或文本等。这种技术在IT领域中广泛应用于开发、测试和文档共享...

    PDF虚拟打印机,各种文档转PDF格式

    这种技术是基于模拟真实打印机的工作原理,但输出不是物理打印的页面,而是创建一个PDF文件。在【标题】"PDF虚拟打印机,各种文档转PDF格式"中,我们可以理解这种软件的主要功能是将不同类型的文档(如Word、Excel、...

    pdf虚拟打印机

    PDF虚拟打印机并不像传统打印机那样物理打印文档,而是将文档数据捕获并转换成PDF文件。当用户选择PDF虚拟打印机作为打印选项时,软件会将文档的数据解析并保存为PDF格式,这个过程通常可以保留原始文档的布局、字体...

    很好用的PDF虚拟打印机--亲测可用

    PDF虚拟打印机则是实现这一目标的关键技术,它模拟了一个实际的打印机,但输出的不是物理打印页,而是PDF文件。 doPDF是一款免费的PDF虚拟打印机,它简单易用且兼容性强。当用户选择使用doPDF打印时,程序会捕获...

    文电通PDF,PDF打印机将文档转化为PDF

    当你在任何支持打印功能的软件(如Microsoft Word、Excel或PowerPoint)中选择“打印”选项时,可以选择这个虚拟打印机,它会将当前文档转换成一个PDF文件。这个过程无需复杂的操作,只需几步简单设置即可完成。 ...

    Foxit PDF Creator v3.1.0.1210 虚拟打印机(无水印)

    这款软件实际上是一个虚拟打印机,允许用户从任何支持打印的应用程序中创建高质量的PDF文档,无需额外的编辑步骤。以下是关于这个软件及其核心功能的详细说明: 1. **虚拟打印机概念**:虚拟打印机是一种软件应用...

Global site tag (gtag.js) - Google Analytics