RapidScanner 1.0.8

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package RapidScanner --version 1.0.8                
NuGet\Install-Package RapidScanner -Version 1.0.8                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RapidScanner" Version="1.0.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RapidScanner --version 1.0.8                
#r "nuget: RapidScanner, 1.0.8"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RapidScanner as a Cake Addin
#addin nuget:?package=RapidScanner&version=1.0.8

// Install RapidScanner as a Cake Tool
#tool nuget:?package=RapidScanner&version=1.0.8                

RapidScanner

RapidScanner is a cross-platform document scanning solution for .NET applications with AI-powered document processing capabilities.

Features

Core Scanning Features

  • Cross-platform document scanning support (Windows, macOS, Linux)
  • High-performance native interop with scanner devices
  • Async/await support for all operations
  • Progress tracking for scan operations
  • Multiple page scanning support
  • Automatic document feeder (ADF) support
  • Duplex scanning support

Image Processing

  • Auto-enhancement and color correction
  • Document bounds detection
  • Deskew and rotation correction
  • Shadow removal
  • Noise reduction
  • Barcode and QR code detection
  • Multiple output formats (PDF, JPEG, PNG, TIFF)
  • Image compression and optimization

Document AI Capabilities

  • Text extraction (OCR) with high accuracy
  • Document classification
  • Table detection and extraction
  • Form field recognition
  • Signature detection and validation
  • Layout analysis
  • Document structure recognition
  • Language detection and multi-language support

Workflow System

  • Custom workflow definition
  • Step-based processing
  • Progress monitoring
  • Error handling and recovery
  • Batch processing support
  • Parallel processing capabilities
  • Extensible workflow steps

Installation

Install via NuGet Package Manager:

dotnet add package RapidScanner

Or via Package Manager Console:

Install-Package RapidScanner

Quick Start

Basic Scanning

using RapidScanner;

// List available scanners
var scanners = await Scanner.ListScannersAsync();
Console.WriteLine($"Found {scanners.Count} scanners");

// Create scanner instance
await using var scanner = new Scanner();

// Configure scan settings
var settings = new ScanSettings
{
    DeviceId = scanners[0].Id,
    Resolution = 300,
    ColorMode = ColorMode.Color,
    Size = "A4",
    OutputFormat = ImageFormat.Pdf,
    OutputPath = "scan.pdf"
};

// Register for progress updates
scanner.ScanProgress += (sender, e) =>
{
    Console.WriteLine($"Scan progress: {e.Progress}%");
};

// Start scanning
var result = await scanner.ScanAsync(settings);

Image Processing

using RapidScanner.Image;

// Create image processor
await using var processor = new ImageProcessor();

// Auto-enhance image
await processor.EnhanceImageAsync("input.jpg", "enhanced.jpg");

// Detect document bounds
var bounds = await processor.DetectDocumentBoundsAsync("document.jpg");

// Detect barcodes
var barcodes = await processor.DetectBarcodesAsync("document.jpg");

// Detect QR codes
var qrCodes = await processor.DetectQRCodesAsync("document.jpg");

// Process multiple pages
await processor.ProcessBatchAsync(
    new[] { "page1.jpg", "page2.jpg" },
    "output.pdf",
    new ProcessingOptions
    {
        EnableDeskew = true,
        EnableShadowRemoval = true,
        EnableNoiseReduction = true
    });

Document AI

using RapidScanner.AI;

using var documentAI = new DocumentAI();

// Extract text with layout
var textBlocks = await documentAI.ExtractTextAsync("document.pdf");
foreach (var block in textBlocks)
{
    Console.WriteLine($"Text: {block.Text}");
    Console.WriteLine($"Confidence: {block.Confidence:P}");
    Console.WriteLine($"Bounds: {block.Bounds}");
}

// Classify document
var classification = await documentAI.ClassifyDocumentAsync("document.pdf");
Console.WriteLine($"Document type: {classification.Type}");
Console.WriteLine($"Confidence: {classification.Confidence:P}");

// Extract tables
var tables = await documentAI.ExtractTablesAsync("document.pdf");
foreach (var table in tables)
{
    Console.WriteLine($"Table with {table.Rows.Count} rows and {table.Columns.Count} columns");
}

// Extract form fields
var formFields = await documentAI.ExtractFormFieldsAsync("document.pdf");
foreach (var field in formFields)
{
    Console.WriteLine($"Field: {field.Name} = {field.Value}");
}

Custom Workflows

using RapidScanner.Workflow;

// Define workflow steps
var workflow = new Workflow("DocumentProcessing")
{
    Steps = new List<WorkflowStep>
    {
        new ScanStep(new ScanSettings
        {
            DeviceId = "scanner1",
            Resolution = 300,
            ColorMode = ColorMode.Color
        }),
        new ImageProcessStep(new ProcessingOptions
        {
            EnableDeskew = true,
            EnableShadowRemoval = true
        }),
        new DocumentAnalyzeStep(
            "Extract Text",
            "Extracts text from document",
            async (ai, file) => await ai.ExtractTextAsync(file))
    }
};

// Register workflow
WorkflowEngine.Instance.RegisterWorkflow(workflow);

// Start workflow
var workflowId = await WorkflowEngine.Instance.StartWorkflowAsync(
    "DocumentProcessing",
    new Dictionary<string, string>
    {
        ["BatchId"] = "batch123",
        ["OutputDir"] = @"C:\Output"
    });

// Monitor workflow status
var status = WorkflowEngine.Instance.GetStatus(workflowId);
Console.WriteLine($"Status: {status.Status}");
Console.WriteLine($"Progress: {status.CompletedSteps}/{status.TotalSteps}");

Scanner Settings

Setting Description Default Values
DeviceId Scanner device identifier Required Device-specific
Resolution Scan resolution in DPI 300 100-1200
ColorMode Color mode Color Color, Grayscale, BlackAndWhite
Size Paper size "A4" A4, Letter, Legal, etc.
OutputFormat Output format Pdf Pdf, Jpeg, Png, Tiff
Duplex Enable duplex scanning false true/false
ADF Use document feeder false true/false
Brightness Image brightness 0 -1000 to 1000
Contrast Image contrast 0 -1000 to 1000

Processing Options

Option Description Default
EnableDeskew Automatically straighten images true
EnableShadowRemoval Remove shadows from edges true
EnableNoiseReduction Reduce image noise true
EnableColorCorrection Adjust colors automatically true
CompressionQuality Output compression level 75
MaxDimension Maximum image dimension 4096
DetectBarcodes Detect and decode barcodes false
DetectQRCodes Detect and decode QR codes false

Platform Support

  • Windows: Full support for WIA and TWAIN devices
  • macOS: Support for ImageCaptureCore devices
  • Linux: Support for SANE devices

Requirements

  • .NET 6.0 or higher
  • Platform-specific scanner drivers
  • For AI features: Internet connection for cloud processing

Performance Considerations

  • Use appropriate resolution for your needs (300 DPI is sufficient for most cases)
  • Enable compression for large documents
  • Use batch processing for multiple pages
  • Consider memory usage when processing large images
  • Use async/await properly to maintain application responsiveness

Security

  • All cloud processing is done over secure HTTPS connections
  • No document data is stored permanently on servers
  • API keys are required for cloud AI features
  • All temporary files are securely deleted after processing

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Created by MohaNed Ghawar

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For support, please:

  1. Check the Documentation
  2. Open an issue on the GitHub repository
  3. Contact support@rapidscanner.dev

Changelog

Version 1.0.0

  • Initial release with core scanning features
  • Basic image processing
  • Document AI capabilities
  • Workflow system

Version 1.1.0

  • Added barcode and QR code detection
  • Improved image processing algorithms
  • Enhanced workflow system
  • Better error handling and recovery
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated