Save as PDFs in Flutter
It’s not uncommon for customers to want a setup where a document is read-only but users can still edit it and then use the Save As functionality to save the modified document to a new location. PSPDFKit supports saving documents with the Save As functionality.
After displaying a document on Flutter using either PspdfkitWidget
or Pspdfkit.present()
, Save As can be implemented by following these steps:
-
Ensuring
disableAutosave
is set totrue
in the configuration. -
Calling the
processAnnotations
API on eitherPspdfkitWidgetController
or thePspdfkit
plugin when a custom FlutterButton
widget is pressed.
PspdfkitWidget and PspdfkitWidgetController
The code for this on Dart looks something like this:
@override Widget build(BuildContext context) { // ... return Scaffold( // ... body: Column(children: [ Expanded( child: PspdfkitWidget( document: documentPath, configuration: configuration, onCreated: onPlatformViewCreated), SizedBox( child: ElevatedButton( onPressed: () async { // Ensure that the path for the new document is a writable path. // You can use a package like https://pub.dev/packages/filesystem_picker to allow users to select the directory and name of the file to save. final newDocumentPath = await getExportPath( 'PDFs/Embedded/new_pdf_document.pdf'); await pspdfkitWidgetController.processAnnotations( 'all', 'embed', newDocumentPath); print( 'Document has been saved to $newDocumentPath'); }, child: const Text('Save Document As')) ))] )); // ... } // ... // This method is part of the custom widget's class. Future<void> onPlatformViewCreated(controller) async { pspdfkitWidgetController = controller; }
Save As is currently only available on iOS. Support for Save As on Android is coming soon.