pdf_merger 是一个 Flutter 插件,可在 Android 和 iOS 平台上将多个 PDF 文件合并为单个文档。它提供了一个简单的 API,可编程地组合 PDF 文件,非常适合需要文档合并的应用程序。如示例中所述,用户必须授予文件权限并集成文件选择器后才能使用该插件。该包轻量且专为与现有 Flutter 项目无缝集成而设计。
适合场景
从用户选择合并多个PDF
将报告或表单合并为一个文件
支持文档处理工作流
创建合并的PDF以共享
在应用程序中自动聚合PDF
启用离线PDF管理
主要特点
跨平台支持(Android 和 iOS)
简单合并 API
与文件选择器集成兼容
轻便高效
支持 PDF 文件列表
轻松设置,文档清晰
适合对象
文档管理应用
教育工具
商业报告应用
表单和提交系统
PDF 处理工具
需要PDF合并的移动应用
使用建议
需要文件权限处理
需要外部文件选择器集成
仅限合并,无法编辑PDF
无内置预览功能
依赖于示例代码中的正确设置
不适用于大规模PDF操作
原始 README
以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。
pdf_merger
A new Flutter plugin for merge List of PDF files. It supports both android and IOS. Before call this package make sure you allow permission and file picker see example.
Also check file_picker and permission handle to implement before calling the plugin.
PDF merger method
Merge Multiple PDF
//paths is a list of paths, example List<String> allSelectedFilePath. //outputDirPath is output path with filename, exmaple /user/android/download/ABC.pdfMergeMultiplePDFResponse response = awaitPdfMerger.mergeMultiplePDF(paths: filesPath, outputDirPath: outputDirPath);
if(response.status == "success") {
//response.response for output path in String//response.message for success message in String
}
Create PDF From Multiple Image
//paths is a list of paths, example List<String> allSelectedFilePath. //outputDirPath is output path with filename, exmaple /user/android/download/ABC.pdf//Optional params maxWidth : defalut set to 360, maxHeight : defalut set to 360, needImageCompressor : default set to true.CreatePDFFromMultipleImageResponse response = PdfMerger.createPDFFromMultipleImage(paths: filesPath, outputDirPath: outputDirPath);
if(response.status == "success") {
//response.response for output path in String//response.message for success message in String
}
Create Image From PDF
//paths selected file path (String). Example user/android.downlaod/MYPDF.pdf//outputDirPath is output path with filename, exmaple /user/android/download/ABC.pdf//Optional params maxWidth : defalut set to 360, maxHeight : defalut set to 360, createOneImage : default set to true.CreateImageFromPDFResponse response = awaitPdfMerger.createImageFromPDF(path: singleFile, outputDirPath: outputDirPath);
if(response.status == "success") {
//response.response for output path in List<String>//response.message for success message in String
}
Get File Size
//paths selected file path (String). Example user/android.downlaod/MYPDF.pdfSizeFormPathResponse response = awaitPdfMerger.sizeFormPath(path: singleFile);
if(response.status == "success") {
//response.response for size of file//response.message for success message in String
}
Build Info
BuildInfoResponse response = awaitPdfMerger.buildInfo();
Get.snackbar("Info", "App Name : " + response.appName + "\n" +
"Build Number : " + response.buildDate + "\n" +
"Build Number with Time : " + response.buildDateWithTime + "\n" +
"Package Name : " + response.packageName + "\n" +
"Version Number : " + response.versionNumber + "\n" +
"Build Number : " + response.buildNumber.toString() );
Android & IOS
Usage
See Example. Use with file picker and add permission handler before calling pdf_merger. Make sure to call permission handler for write permission before call pdf_merger.
file_picker
https://pub.dev/packages/file_picker
permission_handler
https://pub.dev/packages/permission_handler
Support
Android & IOS
For Android
Add these lines in your progaurd
//required to prevent errors from the spongycastle libraries
-keep classorg.spongycastle.** { *; }
-dontwarn org.spongycastle.**