如何把文档扫描保存到Google Drive中

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

参考原文:

How to Upload Scanned Images to Google Drive With Dynamic .NET TWAIN


准备工作

  1. 下载安装 Dynamic .NET TWAIN SDK

  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 memory
string 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 byte
System.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

源码

https://github.com/DynamsoftRD/CloudScanner

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

参考原文

How to Upload Scanned Images to Google Drive With Dynamic .NET TWAIN



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值