How to detect paper jam when acquiring images from WIA device?
In This Topic
WIA device allows to detect the document handing status using the
WiaDevice.DocumentHandlingStatus property.
Paper is jammed if
WiaDevice.DocumentHandlingStatus property returns value WiaDocumentHandlingStatus.PaperJam.
Here is an example that demonstrates how to detect when paper is jammed when acquiring images from WIA device:
/// <summary>
/// Acquires images from the document feeder of WIA device and detects the paper jam.
/// </summary>
public void AcquireImagesFromDocumentFeederOfWiaDeviceAndDetectPaperJam()
{
// create WIA device manager
using (Vintasoft.WiaImageScanning.WiaDeviceManager deviceManager = new Vintasoft.WiaImageScanning.WiaDeviceManager())
{
// open WIA device manager
deviceManager.Open();
// get count of WIA devices
int deviceCount = deviceManager.Devices.Count;
if (deviceCount == 0)
{
System.Console.WriteLine("Devices are not found.");
return;
}
// select the first WIA device
Vintasoft.WiaImageScanning.WiaDevice device = deviceManager.Devices[0];
// open WIA device
device.Open();
int imageIndex = 0;
Vintasoft.WiaImageScanning.WiaAcquiredImage acquiredImage = null;
do
{
try
{
// acquire image from WIA device
acquiredImage = device.AcquireImageSync();
// if image is received
if (acquiredImage != null)
{
imageIndex++;
string filename = string.Format("scannedImage-{0}.png", imageIndex);
if (System.IO.File.Exists(filename))
System.IO.File.Delete(filename);
acquiredImage.Save(filename);
System.Console.WriteLine(string.Format("Acquired image is saved to a file '{0}'.", filename));
}
// if image is not received
else
{
// if paper is jammed in the document feeder
if (device.DocumentHandlingStatus == Vintasoft.WiaImageScanning.WiaDocumentHandlingStatus.PaperJam)
{
System.Console.WriteLine("Device does not have paper in the document feeder.");
}
else
{
System.Console.WriteLine("Scan is completed.");
}
break;
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(string.Format("Scan is failed: {0}", ex.Message));
break;
}
}
// while image is acquired
while (acquiredImage != null);
// close WIA device
device.Close();
// close WIA device manager
deviceManager.Close();
}
System.Console.ReadLine();
}
''' <summary>
''' Acquires images from the document feeder of WIA device and detects the paper jam.
''' </summary>
Public Sub AcquireImagesFromDocumentFeederOfWiaDeviceAndDetectPaperJam()
' create WIA device manager
Using deviceManager As New Vintasoft.WiaImageScanning.WiaDeviceManager()
' open WIA device manager
deviceManager.Open()
' get count of WIA devices
Dim deviceCount As Integer = deviceManager.Devices.Count
If deviceCount = 0 Then
System.Console.WriteLine("Devices are not found.")
Return
End If
' select the first WIA device
Dim device As Vintasoft.WiaImageScanning.WiaDevice = deviceManager.Devices(0)
' open WIA device
device.Open()
Dim imageIndex As Integer = 0
Dim acquiredImage As Vintasoft.WiaImageScanning.WiaAcquiredImage = Nothing
Do
Try
' acquire image from WIA device
acquiredImage = device.AcquireImageSync()
' if image is received
If acquiredImage IsNot Nothing Then
imageIndex += 1
Dim filename As String = String.Format("scannedImage-{0}.png", imageIndex)
If System.IO.File.Exists(filename) Then
System.IO.File.Delete(filename)
End If
acquiredImage.Save(filename)
System.Console.WriteLine(String.Format("Acquired image is saved to a file '{0}'.", filename))
Else
' if image is not received
' if paper is jammed in the document feeder
If device.DocumentHandlingStatus = Vintasoft.WiaImageScanning.WiaDocumentHandlingStatus.PaperJam Then
System.Console.WriteLine("Device does not have paper in the document feeder.")
Else
System.Console.WriteLine("Scan is completed.")
End If
Exit Try
End If
Catch ex As System.Exception
System.Console.WriteLine(String.Format("Scan is failed: {0}", ex.Message))
Exit Try
End Try
' while image is acquired
Loop While acquiredImage IsNot Nothing
' close WIA device
device.Close()
' close WIA device manager
deviceManager.Close()
End Using
System.Console.ReadLine()
End Sub