php-scan is a PHP class that provides a convenient wrapper for interacting with NAPS2 (Not Another PDF Scanner 2) console functionality.
Aditional info: Command line usage
- Simplified PHP wrapper for NAPS2 console functionality.
- Set output file path and format for scanned documents.
- Specify email options to send scans as attachments.
- Import one or more PDF/image files to include in the output.
- Combine multiple files together into a single output file.
- Convert files between different formats.
- Set recipient(s), subject, and body for email sending.
- Enable or disable OCR (Optical Character Recognition) for PDF generation.
- Set scanning profile and verbosity level.
- Control the number of scans to perform and the delay between each scan.
- Force overwrite of existing files.
- Slice and select specific pages to scan.
- Set PDF metadata options such as title, author, subject, and keywords.
- Adjust JPEG quality for image conversion.
- Specify TIFF compression options.
- Control interleave and deinterleave options for scanning.
- Reverse the order of pages in the output.
- Set placeholders for missing metadata.
- Compatible with PHP 5.6 or above and NAPS2 installation.
Install the package using Composer:
composer require kuasarx/php-scan
<?php
use PhpScan\phpScan;
// Create an instance of the phpScan class
$naps2 = new phpScan();
// Set the output file path
$naps2->setOutput('/path/to/output.pdf');
// Set other options as needed
// Set the email option to specify an email with the scan attached
$naps2->setEmail('filename.pdf');
// Set the import option to specify one or more PDF/image files to import
$naps2->setImport('file1.pdf;file2.pdf');
// Combine multiple files together into a single output file
$naps2->setCombineFiles('file1.pdf;file2.pdf', 'combined.pdf');
// Convert a file from one format to another
$naps2->setConvertFile('input.jpg', 'output.pdf');
// Set the email recipient(s)
$naps2->setTo('[email protected]');
$naps2->setCc('[email protected]');
$naps2->setBcc('[email protected]');
// Set the email subject and body
$naps2->setSubject('Scanned Document');
$naps2->setBody('Please find the attached scanned document.');
// Set options for automatic email sending
$naps2->setAutoSend(true);
$naps2->setSilentSend(true);
// Set OCR language for PDF generation
$naps2->setOcrLanguage('eng');
$naps2->enableOcr();
$naps2->disableOcr();
// Set the scanning profile
$naps2->setProfile('Scanner Profile');
// Set verbosity to display progress information
$naps2->setVerbose(true);
// Set the number of scans to perform
$naps2->setNumberOfScans(5);
// Set the delay between each scan (in milliseconds)
$naps2->setDelay(5000);
// Set the force option to overwrite existing files
$naps2->setForce(true);
// Set the slice option to specify a range of pages to scan
$naps2->setSlice('1-3');
// Set PDF metadata options
$naps2->setPdfTitle('My Document');
$naps2->setPdfAuthor('John Doe');
$naps2->setPdfSubject('Subject');
$naps2->setPdfKeywords('keyword1, keyword2');
$naps2->setPdfCompatibility('1.5');
// Set JPEG quality for image conversion
$naps2->setJpegQuality(90);
// Set TIFF compression option
$naps2->setTiffCompression('lzw');
// Set interleave and deinterleave options
$naps2->setInterleave('odd');
$naps2->setAltInterleave('even');
$naps2->setDeinterleave('odd');
$naps2->setAltDeinterleave('even');
// Set the reverse option to reverse the order of pages
$naps2->setReverse(true);
// Set placeholders for missing metadata
$naps2->setPlaceholders('n/a');
// Build the command
$command = $naps2->buildCommand();
// Run the command
$output = $naps2->scan();
// Process the output as needed
- PHP 5.6 or above
- NAPS2 installed and configured