Skip to content

集成扫描功能

福昕 PDF SDK iOS 版提供了 FoxitPDFScanUI 模块,支持通过设备摄像头扫描文档并转换为 PDF。

前置条件

  1. 已添加 FoxitPDFScanUI.framework 到工程(参考:集成 SDK)。
  2. Info.plist 中配置相机权限:
xml
<key>NSCameraUsageDescription</key>
<string>需要使用相机进行文档扫描</string>

核心类

说明
PDFScanManager扫描模块单例管理器,负责初始化、展示扫描 UI 和保存结果
PDFScanToolbarManager扫描 UI 工具栏管理器
PDFScanMenuViewManager扫描 UI 菜单视图管理器

初始化扫描模块

扫描模块需要独立的序列号进行初始化:

objc
#import <FoxitPDFScanUI/PDFScanManager.h>

// 使用序列号初始化扫描模块
FSErrorCode ret = [PDFScanManager initializeScanner:serial1 serial2:serial2];
if (ret != FSErrSuccess) {
    NSLog(@"扫描模块初始化失败");
}

备注

扫描模块的序列号(serial1、serial2)与 SDK 主序列号不同,请在 SDK 包中查找扫描模块对应的授权信息。

获取扫描视图并展示

通过单例获取 PDFScanManager,然后获取扫描 ViewController 并展示:

objc
PDFScanManager *scanManager = [PDFScanManager shareManager];
UIViewController *scanVC = [scanManager getPDFScanView];
[self presentViewController:scanVC animated:YES completion:nil];

处理扫描结果

通过设置回调获取扫描完成后的 PDF 文件路径:

objc
// 设置完成回调
[PDFScanManager setDoneCallBack:^(NSError *error, NSString *savePath) {
    if (!error && savePath) {
        NSLog(@"扫描完成,输出路径: %@", savePath);
        // 使用 FSPDFViewCtrl 打开扫描生成的 PDF
        [self.pdfViewCtrl openDoc:savePath password:nil completion:nil];
    }
}];

另存为 PDF

objc
PDFScanManager *scanManager = [PDFScanManager shareManager];

// 设置另存为回调
[PDFScanManager setSaveAsCallBack:^(NSError *error, NSString *savePath) {
    if (!error) {
        NSLog(@"另存为成功: %@", savePath);
    }
}];

[scanManager saveAsPDF:@"path/to/output.pdf"];

自定义扫描 UI

可以控制相机界面中按钮的显隐:

objc
PDFScanManager *scanManager = [PDFScanManager shareManager];

// 隐藏闪光灯按钮
[scanManager setItemHiddenWithType:FSScanCameraControllerItemTypeFlashLight hidden:YES];

// 隐藏相册按钮
[scanManager setItemHiddenWithType:FSScanCameraControllerItemTypePhotos hidden:YES];

可隐藏的按钮类型:

常量说明
FSScanCameraControllerItemTypeFlashLight闪光灯按钮
FSScanCameraControllerItemTypeSingleShooting单拍按钮
FSScanCameraControllerItemTypePhotos相册按钮
FSScanCameraControllerItemTypeAutoDection自动检测按钮
FSScanCameraControllerItemTypeFormatPageSize页面尺寸按钮

注意

扫描功能仅在真机设备上可用,iOS 模拟器不支持摄像头。

API 参考

PDFScanManager 的完整接口说明请参阅 API 手册