Integrate scanning
Foxit PDF SDK for iOS provides the FoxitPDFScanUI module to scan documents with the device camera and convert them to PDF.
Prerequisites
- Add
FoxitPDFScanUI.frameworkto the project (see Integrate SDK). - Configure camera permission in
Info.plist:
xml
<key>NSCameraUsageDescription</key>
<string>Camera access is required for document scanning</string>Core classes
| Class | Description |
|---|---|
PDFScanManager | Scan module singleton: initialization, scan UI, and saving results |
PDFScanToolbarManager | Scan UI toolbar manager |
PDFScanMenuViewManager | Scan UI menu view manager |
Initialize the scan module
The scan module requires its own serial numbers for initialization:
objc
#import <FoxitPDFScanUI/PDFScanManager.h>
// Initialize with serial numbers
FSErrorCode ret = [PDFScanManager initializeScanner:serial1 serial2:serial2];
if (ret != FSErrSuccess) {
NSLog(@"扫描模块初始化失败");
}Note
Scan serial numbers (serial1, serial2) differ from the main SDK license. Find scan license details in the SDK package.
Present the scan view
Get the singleton PDFScanManager, then present the scan view controller:
objc
PDFScanManager *scanManager = [PDFScanManager shareManager];
UIViewController *scanVC = [scanManager getPDFScanView];
[self presentViewController:scanVC animated:YES completion:nil];Handle scan results
Set a callback to receive the output PDF path when scanning completes:
objc
// Set completion callback
[PDFScanManager setDoneCallBack:^(NSError *error, NSString *savePath) {
if (!error && savePath) {
NSLog(@"扫描完成,输出路径: %@", savePath);
// Open the scanned PDF with FSPDFViewCtrl
[self.pdfViewCtrl openDoc:savePath password:nil completion:nil];
}
}];Save as PDF
objc
PDFScanManager *scanManager = [PDFScanManager shareManager];
// Set Save As callback
[PDFScanManager setSaveAsCallBack:^(NSError *error, NSString *savePath) {
if (!error) {
NSLog(@"另存为成功: %@", savePath);
}
}];
[scanManager saveAsPDF:@"path/to/output.pdf"];Customize scan UI
Show or hide buttons on the camera screen:
objc
PDFScanManager *scanManager = [PDFScanManager shareManager];
// Hide flash button
[scanManager setItemHiddenWithType:FSScanCameraControllerItemTypeFlashLight hidden:YES];
// Hide photo library button
[scanManager setItemHiddenWithType:FSScanCameraControllerItemTypePhotos hidden:YES];Hideable item types:
| Constant | Description |
|---|---|
FSScanCameraControllerItemTypeFlashLight | Flash |
FSScanCameraControllerItemTypeSingleShooting | Single capture |
FSScanCameraControllerItemTypePhotos | Photo library |
FSScanCameraControllerItemTypeAutoDection | Auto detect |
FSScanCameraControllerItemTypeFormatPageSize | Page size |
Important
Scanning requires a physical device; the iOS Simulator has no camera.
API reference
See the API reference for full PDFScanManager documentation.