Сохранение pdf файла во Flutter web

Если кто-то столкнулся с проблемой сохранения бинарных файлов во Flutter web, в том числе PDF файлов, предлагаем наше решение.

Для вывода бинарного файла в браузере воспользуемся функцией JavaScript, ее нужно подключить в index.html:

Пакет pdf https://pub.dev/packages/pdf позволяет создавать PDF документы на основе виджетов аналогичных Flutter виджетам. Но при использовании во Flutter, чтобы избежать конфликтов с одинаковыми названиями классов, используем import ' ' as PDF.
Пакет file https://pub.dev/packages/file позволяет создать экземпляр класса File в памяти. И после вывести содержимое в нужном формате для передачи в JavaScript функцию ToFile.

Подключение зависимостей pdf и file

Использование пакетов

Код создания и сохранения PDF файла

Открыть пример в отдельном окне: https://app4.flutter.su

Подборка заметок