compdfkit_flutter
ComPDFKit for Flutter एक व्यापक SDK है जो आपको Android और iOS Flutter ऐप में PDF कार्यक्षमता त्वरित रूप से जोड़ने की अनुमति देता है।
ComPDF SDK for Flutter — एंड्रॉइड और iOS ऐप्स के लिए क्रॉस-प्लेटफॉर्म पीडीएफ प्लगइन। एक समान डार्ट API के माध्यम से अपने फ्लटर ऐप्स में पीडीएफ देखना, संपादन, टिप्पणियाँ, फॉर्म भरना और दस्तावेज प्रबंधन को एकीकृत करें।
{"sdk":"flutter"}^2.0.2{"sdk":"flutter"}^2.0.3यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
As part of the KDAN ecosystem, ComPDF SDK for Flutter helps developers integrate PDF viewing, annotation, editing, form, and signing capabilities into cross-platform mobile apps.
It provides a production-ready Flutter wrapper around native ComPDF SDK capabilities for both Android and iOS projects.
If you find ComPDF SDK useful, please consider giving us a ⭐ Star on GitHub — it helps us grow and improve! Got questions or ideas? Join the conversation in our Discussions.
UI-1
Why ComPDF SDK for Flutter?
Easy to Integrate: Integrate PDF functionalities easily with our powerful SDK and clear documentation and guides with few lines of code.
Fully Customizable UI: Design a unique interface for your products with fully customizable UI source code by a high-performing SDK.
Comprehensive PDF Features: Supports generation, viewing, annotation, page editing, content editing, conversion, OCR, redaction, signing, forms, parsing, measurement, compression, comparison, color separation, batch processing, and more.
Faster Time-to-Market: Comprehensive SDK libraries save your time and expenses and roll out your applications and projects.
High-quality Service: We provide 24/7 professional one-to-one technical support, including onsite service and remote assistance via phone and email.
Viewer: Fast and smooth PDF rendering and viewing
Annotations:
Notes - add longer comments with adjustable icon shape and color
Ink - freehand drawing with customizable color, opacity, line thickness
Text - add, move, resize text directly on page
Inspector - adjust annotation looks (line styles, borders, colors, opacity, font)
Comment on Annotations and Update Status
Import & Export & Flatten Annotations (XFDF, FDF, JSON)
Highlight, Underline, Strikeout, Squiggly
Shapes - Rectangle, Oval, Line, Arrow, Polygon, Polyline, Cloud
Stamps, Sound, Movie, File Attachment, Link, Distance, Perimeter, Area
Forms:
Process fillable and static PDF forms
Form filling, form creation, form flattening
Document Editor:
Page manipulation - insert, delete, rotate, reorder, extract, crop
Split PDF, Merge PDF
Content Editor: Edit PDF text and images directly like in Word
Security:
Encryption - set open password, permission password
Restrict printing, copying, editing
Signatures:
Electronic Signatures - draw, type, image signatures
Digital Signatures - certificate-based signature validation
Watermark:
Add Text or Image Watermarks
Delete Watermarks
Customize Watermarks
OCR:
AI OCR
Recognize Tables, Graphics, Images
Support recognition in 80+ Languages
Compare Documents: Side-by-side document comparison to highlight differences
Redaction: Permanently remove sensitive content from PDFs
Measurement: Distance, area, perimeter measurement tools
Compress: Optimize and reduce PDF file size
Convert Files:
Convert PDF to Word, Excel, PPT, HTML, CSV, images (PNG,JPEG, JPEG, JPEG2000, BMP, TIFF, TGA, GIF), RTF, TXT, JSON, XML, markdown, searchable PDF, searchable OFD.
Convert images (PNG,JPEG, JPEG, JPEG2000, BMP, TIFF, TGA, GIF) to Word, Excel, PPT, HTML, CSV, RTF, TXT, JSON, XML.
Convert Word, Excel, PPT, HTML, CSV, PNG, RTF, TXT to PDF
UI Customization:
Toolbar Customization
UI Personalization
Ready-Made UI Options
Out-of-the-box Source Code
Before starting, please make sure that you have already met the following prerequisites:
ComPDF offers two types of license keys: a free 30-day trial license and a commercial license.
For the Flutter PDF SDK, the commercial license must be bound to your application’s ApplicationId and iOS BundleId.
Android
Please install the following required packages:
Operating Environment Requirements:
23 or higher.compileSdkVersion of 34 or higher.targetSdkVersion of 34 or higher.iOS
Please install the following required packages:
Operating Environment Requirements:
example with the flutter CLI:flutter create --org com.compdfkit.flutter example
cd example
example/android/app/src/main/AndroidManifest.xml , add Internet Permission and Storage Permission:<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.compdfkit.flutter.example">
+ <uses-permission android:name="android.permission.INTERNET"/>
<!-- Required to read and write documents from device storage -->
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Optional settings -->
+ <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<application
+ android:requestLegacyExternalStorage="true">
</application>
</manifest>
android/app/build.gradle:open android/app/build.gradle
android section: android {
defaultConfig {
- minSdkVersion flutter.minSdkVersion
+ minSdkVersion 23
...
}
}
android/app/src/main/java/com/example/compdfkit/flutter/example/MainActivity.java, Change the base Activity to extend FlutterFragmentActivity:- import io.flutter.embedding.android.FlutterActivity;
+ import io.flutter.embedding.android.FlutterFragmentActivity;
- public class MainActivity extends FlutterActivity {
+ public class MainActivity extends FlutterFragmentActivity {
}
Alternatively you can update the AndroidManifest.xml file to use FlutterFragmentActivity as the launcher activity:
<activity
- android:name=".MainActivity"
+ android:name="io.flutter.embedding.android.FlutterFragmentActivity"
android:exported="true"
android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustPan">
Note:
FlutterFragmentActivityis not an official part of the Flutter SDK. If you need to useCPDFReaderWidgetin ComPDF for Flutter, you need to use this part of the code. You can skip this step if you don't need to use.
pubspec.yaml dependencies:
flutter:
sdk: flutter
+ compdfkit_flutter: ^3.0.0
create a pdf directory
mkdir pdfs
Copy your example document into the newly created pdfs directory and name it PDF_Document.pdf
assets directory in pubspec.yaml flutter:
+ assets:
+ - pdfs/
flutter pub get
example with the flutter CLI:flutter create --org com.compdfkit.flutter example
cd example
pubspec.yaml dependencies:
flutter:
sdk: flutter
+ compdfkit_flutter: ^3.0.0
open ios/Podfile
Note: If SSL network requests fail to download the ComPDFKit library when you run pod install, you can see the processing method in Troubleshooting).
- platform :ios, '9.0'
+ platform :ios, '12.0'
...
target 'Runner' do
use_frameworks!
use_modular_headers!`
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
+ pod 'ComPDFKit', :git => 'https://github.com/ComPDFKit/compdfkit-pdf-sdk-ios-swift.git', :tag => '3.0.0'
+ pod 'ComPDFKit_Tools', :git => 'https://github.com/ComPDFKit/compdfkit-pdf-sdk-ios-swift.git', :tag => '3.0.0'
end
example/ios folder and run the pod install command:pod install
create a pdf directory
mkdir pdfs
Copy your example document into the newly created pdfs directory and name it PDF_Document.pdf
assets directory in pubspec.yaml flutter:
+ assets:
+ - pdfs/
1-8
<key>NSCameraUsageDescription</key>
<string>Your consent is required before you could access the function.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Your consent is required before you could access the function.</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Your consent is required before you could access the function.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Your consent is required before you could access the function.</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
flutter pub get
ComPDF SDK currently supports two authentication methods to verify license keys: online authentication and offline authentication.
Learn about:
Accurately obtaining the license key is crucial for the application of the license.
XML file containing the license key.3_1
3_2
// Include the license in Flutter assets and copy to device storage
// Add `license_key_flutter.xml` to your Flutter project’s assets directory;
File licenseFile = await CPDFFileUtil.extractAsset(context, 'assets/license_key_flutter.xml');
ComPDFKit.initWithPath(licenseFile.path);
Alternative methods (optional)
// Android
// Copy the license_key_flutter.xml file into the `android/app/src/main/assets` directory of your Android project:
ComPDFKit.initWithPath('assets://license_key_flutter.xml');
// iOS
// Copy the license_key_flutter.xml file into your iOS project directory (or a readable location):
ComPDFKit.initWithPath('license_key_flutter.xml');
There are 2 different ways to use ComPDF Flutter API:
Open lib/main.dart,replace the entire file with the following:
import 'dart:io';
import 'package:compdfkit_flutter/compdfkit.dart';
import 'package:compdfkit_flutter/configuration/cpdf_configuration.dart';
import 'package:compdfkit_flutter/util/cpdf_file_util.dart';
import 'package:flutter/material.dart';
const String _documentPath = 'pdfs/PDF_Document.pdf';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
_init();
}
void _init() async {
File licenseFile = await CPDFFileUtil.extractAsset(context, 'assets/license_key_flutter.xml');
ComPDFKit.initWithPath(licenseFile.path);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Center(
child: ElevatedButton(
onPressed: () async {
showDocument(context);
},
child: const Text(
'Open Document',
)),
))),
);
}
void showDocument(BuildContext context) async {
var pdfFile = await CPDFFileUtil.extractAsset(_documentPath);
var configuration = CPDFConfiguration();
// Present a document via a plugin.
ComPDFKit.openDocument(pdfFile.path,
password: '', configuration: configuration);
}
}
Open lib/main.dart,replace the entire file with the following:
import 'dart:io';
import 'package:compdfkit_flutter/compdfkit.dart';
import 'package:compdfkit_flutter/configuration/cpdf_configuration.dart';
import 'package:compdfkit_flutter/widgets/cpdf_reader_widget.dart';
import 'package:compdfkit_flutter/util/cpdf_file_util.dart';
import 'package:flutter/material.dart';
const String _documentPath = 'pdfs/PDF_Document.pdf';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String? _document;
@override
void initState() {
super.initState();
_init();
_getDocumentPath().then((value) {
setState(() {
_document = value;
});
});
}
void _init() async {
/// Please replace it with your ComPDFKit license
File licenseFile = await CPDFFileUtil.extractAsset(context, 'assets/license_key_flutter.xml');
ComPDFKit.initWithPath(licenseFile.path);
}
Future<String> _getDocumentPath() async {
var file = await CPDFFileUtil.extractAsset('pdfs/PDF_Document.pdf');
return file.path;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text('CPDFReaderWidget Example'),
),
body: _document == null
? Container()
: CPDFReaderWidget(
document: _document!,
configuration: CPDFConfiguration(),
onCreated: (_create) => {})));
}
}
Start your Android emulator, or connect a device, Run the app with:
flutter run
To see ComPDF for Flutter in action, check out our Flutter example app and API reference.
Showing a PDF document inside your Flutter app is as simple as this:
/// First. Please replace it with your ComPDFKit license
// Include the license in Flutter assets and copy to device storage
// Add `license_key_flutter.xml` to your Flutter project’s assets directory;
File licenseFile = await CPDFFileUtil.extractAsset('assets/license_key_flutter.xml');
ComPDFKit.initWithPath(licenseFile.path);
/// open pdf document
ComPDFKit.openDocument(tempDocumentPath, password: '', configuration: CPDFConfiguration());
/// Here’s how you can open a PDF document using CPDFReaderWidget:
Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(title: const Text('CPDFReaderWidget Example'),),
body: CPDFReaderWidget(
document: widget.documentPath,
configuration: CPDFConfiguration()
));
ComPDF SDK for Flutter offers a 30-day free trial so you can evaluate core PDF capabilities in your own application.
To get started:
For custom deployments, advanced features, or volume licensing, please contact our sales team
ComPDF has a professional R&D team that produces comprehensive technical documentation and guides to help developers. Also, you can get an immediate response when reporting your problems to our support team.
Keep up with the latest updates, improvements, and bug fixes for ComPDF SDK for Flutter: View Flutter Changelog
More Guides:
More Platforms and Frameworks: ComPDF SDK seamlessly operates on Web, Windows, Android, iOS, Mac, and Server, with support for cross-platform frameworks such as React Native, Flutter, etc.
ComPDF Cloud: We also provide Open API for developers. You can register a free API account to get up to 200+ API calls monthly for free.