Default.aspx.cs
using System;
using System.IO;
using Bytescout.BarCodeReader;
namespace WebTestSharp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
LabelInputFile.Text = MapPath("barcodes.pdf");
}
protected void UploadButton_Click(object sender, EventArgs e)
{
String savePath = @"\uploads\";
if (FileUpload1.HasFile)
{
String fileName = FileUpload1.FileName;
fileName = savePath + fileName;
// remove if already exists
if (File.Exists(fileName))
File.Delete(fileName);
FileUpload1.SaveAs(Server.MapPath(fileName));
Reader barcodeReader = new Reader();
// Limit search to 1D barcodes only (exclude 2D barcodes to speed up the search).
// Change to barcodeReader.BarcodeTypesToFind.SetAll() to scan for all supported 1D and 2D barcodes
// or select specific type, e.g. barcodeReader.BarcodeTypesToFind.PDF417 = True
barcodeReader.BarcodeTypesToFind.SetAll1D();
// reader.MediumTrustLevelCompatible = true; // uncomment this line to enable Medium Trust compatible mode (slows down the recognition process as direct image data access is disabled in Medium Trust mode)
UploadStatusLabel.Visible = false;
ListBox1.Items.Clear();
ListBox1.Visible = true;
ListBox1.Items.Add("Searching for barcode(s) from PDF file \"" + fileName + "\"");
FoundBarcode[] barcodes = barcodeReader.ReadFrom(Server.MapPath(fileName));
if (barcodes.Length == 0)
{
ListBox1.Items.Add("No barcodes found");
}
else
{
// saving filename of the pdf file
string lastFilename = fileName;
int partIndex = 0;
foreach (FoundBarcode barcode in barcodes)
{
// Split PDF document in two parts by found barcode
partIndex++;
barcodeReader.SplitDocument(
Server.MapPath(lastFilename),
Server.MapPath(savePath+@"part-" + partIndex + ".pdf"),
Server.MapPath(savePath + @"part-last.pdf"),
barcode.Page + 1);
ListBox1.Items.Add(String.Format("Splitting " + fileName + " file into 2 by barcode with type '{0}' and value '{1}' on page {2} at {3} ", barcode.Type, barcode.Value, barcode.Page, barcode.Rect.ToString()));
ListBox1.Items.Add("Saved:" + savePath + @"part-" + partIndex + ".pdf");
lastFilename = savePath + @"part-last.pdf";
}
}
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}
}
}
}
Web.config
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true" />
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
Click here to get your Free Trial version of the SDK
also available as: