建立一个将文件扫描为PDF的网页
如果您正在开发需要处理不同的数字文件格式功能的Web应用程序,没准PDF将是一个必须具备的文件格式。 将文本和图形页面转换为PDF会生成一个压缩且视觉清晰的文件,通常可以使用Adobe Reader在PC或Mac上读取该文件。
要从扫描仪获取文档,您的Web应用程序需要能够通过某些扫描协议与扫描仪进行通讯。 这使你有两个选择:
- 花费大量时间和精力找出TWAIN标准
- 使用可用的现成第三方SDK
考虑到使用第三方SDK的便利性和便利性,对比研究新协议的时间和学习曲线的艰巨性,建议您选择SDK。 如果您希望腾出时间并专注于项目,而不是将注意力转移到可能会增加项目时间或项目周期的任务上,那么使用SDK是合理的。
Dynamic Web TWAIN是市场上行业领先的TWAIN文档扫描SDK。它已经被包括IBM,洛克希德·马丁,英特尔,三星,NASA,迪斯尼,梅赛德斯·奔驰等众多世界500强公司使用。Dynamic Web TWAIN以易于集成和用户友好着称。在5分钟或更短的时间内,您可以构建一个网页,以将文件扫描为PDF格式。
在本教程中,我们将逐步向您展示如何构建一个简单的HTML页面来扫描文档并将其另存为PDF文件。
四个简单步骤:
- 启动一个Web应用程序
- 将Dynamic Web TWAIN添加到HTML页面
- 使用Dynamic Web TWAIN扫描或加载图像
- 将图像另存为PDF文件
步骤1:启动一个Web应用程序
下载免费的Dynamic Web TWAIN 30天试用版。
安装后,默认情况下可以在C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK 15.3.1 Trial中找到它。
1. 将Dynamsoft的Resources文件夹复制到您的项目中
通常可以从以下位置复制Resources文件夹
C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK {Version Number} {Trial}\
请注意,这里有三个文件夹:
- Documents 帮助文档和开发者指南
- Resources 构建扫描网页所需的SDK文件
- Samples 动态Web TWAIN样本
创建一个空的HTML页面
请把空白的html页面和Resources文件夹放在一起,如下所示:
步骤2:将Dynamic Web TWAIN添加到HTML页面
2.1 在<head>
中包含两个Dynamsoft的JS文件。
<script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js"></script>
<script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js"></script>
2.2 将Dynamic Web TWAIN容器添加到<body>
中。
<div id="dwtcontrolContainer" ></div>
//
Note: " dwtcontrolContainer" is the default id for the div. You can change it in the dynamsoft.webtwain.config.js if necessary.
步骤3:使用Dynamic Web TWAIN扫描或加载图像
将扫描和加载按钮添加到页面:
<input type="button" value="Scan" onclick="AcquireImage();" /><input type="button" value="Load" onclick="LoadImage();" >
并添加函数AcquireImage()
和LoadImage()
。 注意LoadImage()
如何通过回调函数OnSuccess()
和OnFailure()
处理成功和失败:
function AcquireImage() {if (DWObject) {DWObject.SelectSource();DWObject.OpenSource();DWObject.IfDisableSourceAfterAcquire = true; // Scanner source will be disabled/closed automatically after the scan.DWObject.AcquireImage();}
}//Callback functions for async APIs
function OnSuccess() {console.log('successful');
}function OnFailure(errorCode, errorString) {alert(errorString);
}function LoadImage() {if (DWObject) {DWObject.IfShowFileDialog = true; // Open the system's file dialog to load imageDWObject.LoadImageEx("", EnumDWT_ImageType.IT_ALL, OnSuccess, OnFailure); // Load images in all supported formats (.bmp, .jpg, .tif, .png, .pdf). OnSuccess or OnFailure will be called after the operation}
}
步骤4:将图像另存为PDF文件
我们现在还剩1分钟,不是吗?现在,我们已经有两个选项可以将文档加载到Dynamic Web TWAIN中:
- 从扫描仪扫描文档(
AcquireImage()
); - 或加载本地硬盘文档(
LoadImage()
)。
现在是时候向网页添加保存按钮了:
<input type="button" value="Save" onclick="SaveWithFileDialog();" />
添加将文档保存到PDF的逻辑:
function SaveWithFileDialog() {if (DWObject) {if (DWObject.HowManyImagesInBuffer &amp;amp;amp;amp;gt; 0) {DWObject.IfShowFileDialog = true;DWObject.SaveAllAsPDF("DynamicWebTWAIN.pdf", OnSuccess, OnFailure);}}
}
现在,保存文件。
就是这样。恭喜您刚刚在5分钟内建立了一个网页,该网页可以扫描或加载文档并将其另存为PDF文件。
您可以在浏览器中打开HelloWorld.html并对其进行测试。
您可以加载本地文档或将文档扫描到网页中。让我们尝试扫描。这是单击“Scan”按钮时页面的外观:
请注意,“Select Source”对话框中只会列出兼容TWAIN的扫描仪。 如果您手边没有真正的扫描仪,则可以安装虚拟扫描仪进行测试,这就是我所做的。 如果您有扫描仪,但没有显示在列表中,请查看本文以获取解决方案。
示例页面执行扫描后,它看起来像这样:
当然,您可以通过单击“Save”按钮将其另存为PDF文件。
这是该页面的完整代码示例:
<html>
<head><title>Hello World</title><script src="Resources/dynamsoft.webtwain.initiate.js"> </script><script src="Resources/dynamsoft.webtwain.config.js"> </script>
</head>
<body><input type="button" value="Scan" onclick="AcquireImage();" /><input type="button" value="Load" onclick="LoadImage();" /><input type="button" value="Save" onclick="SaveWithFileDialog();"/><div id="dwtcontrolContainer"></div><script type="text/javascript">var DWObject;function Dynamsoft_OnReady() {DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');}function AcquireImage() {if (DWObject) {DWObject.SelectSource(function () {DWObject.OpenSource();DWObject.AcquireImage();},function () {console.log("SelectSource failed!"); });}}function LoadImage() {if (DWObject) {DWObject.IfShowFileDialog = true; // Open the system's file dialog to load imageDWObject.LoadImageEx("", EnumDWT_ImageType.IT_ALL, OnSuccess, OnFailure); // Load images in all supported formats (.bmp, .jpg, .tif, .png, .pdf). OnSuccess or OnFailure will be called after the operation}} function OnSuccess() {console.log('successful');}function OnFailure(errorCode, errorString) {alert(errorString);}function SaveWithFileDialog() {if (DWObject) {if (DWObject.HowManyImagesInBuffer > 0) {DWObject.IfShowFileDialog = true;DWObject.SaveAllAsPDF("DynamicWebTWAIN.pdf", OnSuccess, OnFailure);}}}</script>
</body>
</html>
更进一步
上面的例子很简单,功能也很好。 但是有时候,您可能希望将事情做得更进一步。 例如,如何自动将文档另存为PDF而无需手动单击“Save”按钮呢?
使用Dynamic Web TWAIN的event机制,实际上很容易做到。
Dynamic Web TWAIN提供了许多event供用户订阅。 当达到某些触发点时将触发事件。 例如,我们有一个OnMouseClick事件用于单击鼠标,一个OnPostTransfer事件用于传输一个图像结束,等等。
因此,在函数Dynamsoft_OnReady()
的末尾,只需添加:
if (DWObject) {DWObject.RegisterEvent('OnPostAllTransfers', SaveWithFileDialog);
}
这样就可以了。
总结
这是一个简单的示例,向您展示如何使用Dynamic Web TWAIN扫描文档并将其另存为PDF文件。 如果您想了解有关Dynamic Web TWAIN如何帮助您的项目的更多信息,建议您阅读开发人员指南。
在评论中让我知道您的想法和问题。
P.S. 如果您需要保存为其他图像格式,例如BMP,JPEG,TIFF,则可以在Dynamic Web TWAIN试用包中找到确切的代码示例。
建立一个将文件扫描为PDF的网页相关推荐
- dynamic web twain java_扫描识别工具Dynamic Web TWAIN使用教程:建立一个“Hello World”扫描页面...
原标题:扫描识别工具Dynamic Web TWAIN使用教程:建立一个"Hello World"扫描页面 Dynamic Web TWAIN(www.evget.com)是一个专 ...
- 用手机把纸质文件扫描成pdf的方法分享,不能错过哦。
用手机把纸质文件扫描成pdf的方法分享!相信很多小伙伴日常在处理文件的时候,碰到的纸质文件还是非常多的,而且经常会需要我们将纸质的文件转换成电子文件,这时候重新开始写或者重新制作显然是不太现实的,当然 ...
- 标记用来标识一个html文件中的表格,《网页设计与制作》期末考试试题.doc
<网页设计与制作>期末考试试题.doc <网页设计与制作>期末考试试题 一.单项选择题(本大题共30小题,每小题2分,共60分) 1.目前在Internet上应用最为广泛的服务 ...
- 建立一个mysql 文件命令是_使用命令行创建数据库
今天针对如何在Linux操作系统上利用命令行创建Oracle Database进行一个总结及实践. 下面是官方文档"Database Administrator's Guide"中 ...
- 初学单片机:Proteus 8 和 keil 4的使用方法(Proteus 8 和 keil 4建立一个项目/文件)
Proteus 8: 打开后的页面: 1.点 new project 3.改名字和路径(路径最好是全英文哦)ps最好(必须必!)单独建一个文件夹, 4.next选第二个 5.next 选第二个,第二个 ...
- 使用gojs制作一个具备文件读写功能的家谱网页
效果 一些功能 数据结构 实现 文件结构 edit.html edit.js 效果 一些功能 操作过程中,随时可以用 Ctrl + Z, Ctrl + Y 撤销或回退操作 双击空白创建一个节点 也可以 ...
- 文件扫描-TWAIN,WIA,ISIS,SANE
文档扫描功能是软件开发者建立一个网站,内容管理系统,或办公自动化系统的重要组成部分. 市场上有几种不同的扫描驱动程序: TWAIN WIA ISIS SANE 当然,对于什么是最佳解决方案,您可能会感 ...
- 如何编辑扫描的PDF文件?
扫描的PDF文档是一些最难处理的文件类型.当您扫描文档并将其直接保存为PDF格式时,所有文本.图表.图形和图像都会合并到一个无法编辑的大图像文件中,如果我们要使扫描的PDF文件转换成可编辑的PDF文件 ...
- matlab全景图素材,matlab以simulink的方式建立一个vr模型
在动态视景仿真中,建立虚拟现实模型通常非常方便.早些时候,据说通过命令行构建一个虚拟现实模型.以下是用simulink建立simulink模型的一种简单快捷的方法.增加了一个方框作为例子. 工具/原材 ...
最新文章
- VC:CString用法整理(转载)
- [zz]三权鼎立形式的软件开发方式
- AntV中的饼状图中的花瓣图中的ToolTip怎样修改
- 自己动手写游戏:飞机大战
- java操作LINUX上文件,设置权限问题
- 御龙在天找回以前的服务器,奋起直追!掉队系统找回经验
- Debug ASP.NET Core 2.0源代码
- android app的签名,Android APP的签名
- 计算机组成原理笔记——存储器分类、层次结构、技术指标、存储单元地址分配
- Xcode 9.2下载地址
- 2021年专接本计算机院校,2021年专接本各类招生院校汇总
- 解析Java对象引用与JVM自动内存管理(2)
- 如何在XP SP2下面使用DTC
- code blocks无法输出中文解决方法
- SGI版本空间配置器
- extends和implement的区别
- 4. 计算机科学 (Kaggle项目拆解:泰坦尼克号预测)
- 让谷歌浏览器不再显示不安全内容的提示
- 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决
- 田野调查手记·浮山摩崖石刻(六)
热门文章
- v-for 给每项绑定事件时,需要使用「事件代理」吗❓
- 深度学习入门极简教程(二)
- 英语四级真题作文 计算机,备考计划 | 2017年6月英语四级作文真题范文第1套:卖电脑...
- 计算机语言bus代表什么,计算机中bus指什么
- 逆水寒计算机丢失api,逆水寒游戏崩溃常见问题汇总 逆水寒常见问题解决方法...
- Windows 11 Xtreme LiteOS Edition Build 22000.51 x64
- jqgrid使用colModel的classes属性 实现单元格内容过长自动截取带省略号和强制换行
- 笔记3:关于VBS整人代码
- VSCode 中文英文版设置大小写转换的快捷键 vscode快捷键官方文档地址
- freeMark中遍历list集合