Hi all I have tried to build a SharePoint 2010 Visual Web Part that
enables a Flat-Bed Scanner and using that scan an image triggering from a
SharePoint Visual Web Part. The source code is as the below.
CreateFolderUserControl.ascx
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using System.Data;
using System.IO;
using System.Text;
using System.Linq;
using WIA;
namespace SPCreateFolder.CreateFolder
{
public partial class CreateFolderUserControl : UserControl
{
private string strNewLibName;
private string strNewFolName;
private string strNewLibDesc;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCreate_Click(object sender, EventArgs e)
{
strNewLibName = txtNewLibName.Text;
strNewLibDesc = txtLibDesc.Text;
strNewFolName = txtNewFolName.Text;
SPSite mySite = new SPSite("Http://thekingsbury/");
{
SPWeb myWeb = mySite.OpenWeb();
{
myWeb.Lists.Add(strNewLibName, strNewLibDesc, SPListTemplateType.DocumentLibrary);
myWeb.Update();
SPDocumentLibrary newDocLibrary = (SPDocumentLibrary)myWeb.Lists[strNewLibName];
SPFolderCollection newFolders = myWeb.Folders;
newFolders.Add("http://thekingsbury/" + strNewLibName + "/" + strNewFolName + "/");
newDocLibrary.Update();
}
}
ClearAll();
}
private void ClearAll()
{
txtNewLibName.Text = "";
txtLibDesc.Text = "";
txtNewFolName.Text = "";
}
protected void btnScanTheDoc_Click(object sender, EventArgs e)
{
litScanner.Items.Clear();
var DeviceManager = new DeviceManager();
for (int i = 1; i <= DeviceManager.DeviceInfos.Count; i++)
{
var deviceName = DeviceManager.DeviceInfos[i].Properties["Name"].get_Value().ToString();
litScanner.Items.Add(deviceName);
}
var device = litScanner.SelectedItem as Scanner;
if (device == null)
{
lblDetScan.Enabled = true;
return;
}
var path = @"c:\scan.jpeg";
if (File.Exists(path))
{
File.Delete(path);
}
image.SaveFile(path);
}
}
}
Scanner Class (Scanner.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using WIA;
namespace SPCreateFolder
{
public class Scanner
{
private readonly DeviceInfo _deviceInfo;
public Scanner(DeviceInfo deviceInfo)
{
this._deviceInfo = deviceInfo;
}
public Scanner()
{
}
public ImageFile Scan()
{
var device = this._deviceInfo.Connect();
var item = device.Items[1];
var imageFile = (ImageFile)item.Transfer(FormatID.wiaFormatJPEG);
return imageFile;
}
}
}
But I've got an error at the CreateFolderUserControl.ascx file as the below.
var device = litScanner.SelectedItem as Scanner;
The error is: "Cannot
convert type 'System.Web.UI.WebControls.ListItem' to
'SPCreateFolder.Scanner' via a reference conversion, boxing conversion,
unboxing conversion, wrapping conversion, or null type conversion
D:\Jobs\SPCreateFolder\SPCreateFolder\CreateFolder\CreateFolderUserControl.ascx.cs
72 26 SPCreateFolder "
Then how
am I supposed to solve that error? I use Visual Web Part in Visual
Studio 2010 for SharePoint 2010. Visual Web Part Gives me the ability to
do the same as in SharePoint Server with SharePoint Foundation. So
someone can help me to solve this matter. Please help me.
Thanks,
Regards,
Chiranthaka