Прежде всего, я думаю, что вы должны иметь подключение к Интернету, чтобы скачать PDF в первую очередь.Затем преобразуйте его в base64 и сохраните внутри localStorage.После того, как пользователь снова откроет ваше веб-приложение, проверьте, открывает ли он / она тот же файл PDF, что и мы, покажите его из localStorage.
Редактировать: я не думаю, что вы не сможете кешировать в сервисном работнике.Это только для предопределенных данных.
Есть еще две опции: - websql - indexsql - pouchsql
https://www.sitepoint.com/offline-web-apps-service-workers-pouchdb/