Как использовать эту библиотеку для отображения PDF-файла при открытии этого экрана в Flutter

#android #pdf #dart #flutter

#Android #PDF #dart #flutter

Вопрос:

У меня есть pdf_screen.dart-файл, который будет отображать PDF-файл непосредственно при открытии, кто-нибудь может объяснить мне, как использовать функции этой библиотеки под названием flutter pdf Viewer только для отображения моего PDF?

Пример библиотеки Flutter PDF Viewer

     class _PdfScreenState extends State<PdfScreen> {

      final DocumentSnapshot document;
      String path;
      var dir;

      _PdfScreenState(this.document);


      @override
      void initState() {
        super.initState();
        getPdf();
      }

      Future<void> getPdf() async {
        try {
          dir = await getApplicationDocumentsDirectory();
          setState(() {
            path = "${dir.path}/${document["title"]}.pdf";
          });
        } catch (e) {
          print(e);
        }
      }


      @override
      Widget build(BuildContext context) {

        if (path == null) {


   print("loading");
      return Container(
        color: Colors.white,
        child: Center(
          child: CircularProgressIndicator(backgroundColor: Colors.blueAccent,
          ),
        ),
      );
    } else {

      return Container(
             child: ??; // I need to show my PDF here, I need to pass the path 
                       // variable but PdfViewer is a function and it doesn't 
                       // return a widget, how to implement?
    }
  }
}
  

Ответ №1:

Как говорится в readme, эта библиотека запускает новое намерение, поэтому она заменяет ваше приложение Flutter в стеке, пока вы не нажмете кнопку «Назад». На примере ясно показано, как этого добиться.

Однако, по мере продолжения работы readme, доступно подтверждение концепции, позволяющее отображать PDF-файл в вашем приложении Flutter. Ознакомьтесь с веткой на github, чтобы узнать больше.

Подтверждение концепции встроенных PDF-файлов доступно в ветке inline.

Комментарии:

1. Я не понимаю, где вызвать PDFViewer.load … без onpressed: откроется мой экран, и мне нужно будет показать pdf напрямую.

2. В конце getPdf выглядит вероятным. В качестве альтернативы сделайте это вместо перехода на эту страницу.