博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何把文档扫描保存到Google Drive中
阅读量:5974 次
发布时间:2019-06-19

本文共 2729 字,大约阅读时间需要 9 分钟。

hot3.png

我们有时候需要使用扫描仪来把纸质文档转换成电子文档用于保存。这篇文章介绍如何创建一个简单的应用,把文件扫描成图片,保存到Google的云服务中。

参考原文:

准备工作

  1. 下载安装 。

  2. 如果没有扫描仪,可以下载安装。 

扫描文件

在Visual Studio中创建一个WinForms的工程。

在引用中添加DynamicDotNetTWAIN.dll

创建界面:左侧的显示区域是DynamicDotNetTWAIN控件。

04095940_BtF3.png

获取设备:

dynamicDotNetTwain.OpenSourceManager();for (lngNum = 0; lngNum < dynamicDotNetTwain.SourceCount; lngNum++){        cmbSource.Items.Add(dynamicDotNetTwain.SourceNameItems(Convert.ToInt16(lngNum)));}

获取图像,显示在控件中:

try            {                dynamicDotNetTwain.SelectSourceByIndex(Convert.ToInt16(cmbSource.SelectedIndex));                dynamicDotNetTwain.IfShowUI = false;                dynamicDotNetTwain.OpenSource();                dynamicDotNetTwain.IfDisableSourceAfterAcquire = true;                dynamicDotNetTwain.PixelType = Dynamsoft.DotNet.TWAIN.Enums.TWICapPixelType.TWPT_RGB;                dynamicDotNetTwain.BitDepth = 24;                dynamicDotNetTwain.Resolution = 300;                dynamicDotNetTwain.AcquireImage();            }            catch (Dynamsoft.DotNet.TWAIN.TwainException exp)            {                String errorstr = "";                errorstr += "Error " + exp.Code + "\r\n" + "Description: " + exp.Message + "\r\nPosition: " + exp.TargetSite + "\r\nHelp: " + exp.HelpLink + "\r\n";                MessageBox.Show(errorstr);            }

上传到Google Drive

在Google创建一个新的工程。

04095941_SLLY.png

启用Drive API。

04095941_q1K7.png

选择Credentials来创建一个新的客户端ID。

04095942_2oOy.png

在Visual Studio中安装NuGet Package Manager (Tools -> Extensions and Updates)

04095942_bITn.png

运行Package Manager Console,输入Install-Package Google.Apis.Drive.v2来安装Drive API NuGet package。成功之后引用中多了Google的部分。

04095943_R10n.png

添加上传代码:

Image image = dynamicDotNetTwain.GetImage(dynamicDotNetTwain.CurrentImageIndexInBuffer); // Get image data from memorystring mimeType = "image/png"; UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(    new ClientSecrets    {        ClientId = " "CLIENT_ID_HERE",        ClientSecret = "CLIENT_SECRET_HERE",    },    new[] { DriveService.Scope.Drive },    "user",    CancellationToken.None).Result; // Create the service.var service = new DriveService(new BaseClientService.Initializer(){    HttpClientInitializer = credential,    ApplicationName = "ScanUpload",}); File body = new File();body.Title = mFileTitle;body.Description = "image";body.MimeType = mimeType; ImageConverter imageConverter = new ImageConverter();byte[] byteArray = (byte[])imageConverter.ConvertTo(image, typeof(byte[])); // convert image to byteSystem.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType);request.Upload();

运行程序。

04095944_LByD.png

上传之后,打开Google Drive查看。

04095944_Da1R.png

源码

git clone https://github.com/DynamsoftRD/CloudScanner.git

参考原文

转载于:https://my.oschina.net/yushulx/blog/232835

你可能感兴趣的文章
MVC
查看>>
CentOS 7 下 Oracle 11g 安装教程
查看>>
JS·基础(一)
查看>>
# 学习笔记-协议# OSI七层模型 与 TCP/IP五层协议
查看>>
Callbacks, Promises and Async/Await
查看>>
华为程序员:加6天班!加班费1.4万元!网友:我能加到它破产
查看>>
解读 JavaScript 之引擎、运行时和堆栈调用
查看>>
不得不懂系列(1)-Go语言protobuf快速上手
查看>>
版本控制系统git
查看>>
从月薪5k到5w的过来人 给大学生程序员们的一点建议
查看>>
Android开发之 .9PNG 的使用
查看>>
D2 日报 2019年5月8日
查看>>
武汉区块链软件技术公司:区块链和比特币
查看>>
学习笔记(3.27)
查看>>
ecshop ajax无刷新登陆_无需整理
查看>>
Android中隐藏标题栏和状态栏
查看>>
浅显c#连接数据库
查看>>
15. SQL -- 游标(实例)
查看>>
plsql9.0.6.1665版本注册码
查看>>
Linux入门基础之grep命令详解及正则表达式
查看>>