Comment afficher un fichier pdf extraites à partir d'une API de réponse dans le flutter?

0

La question

Je travaille dans un projet où je dois montrer certificat de l'utilisateur de terminer un cours, il y a un URL de l'API qui utilise la méthode get à l'intérieur d'un jeton pour avoir accès à un fichier pdf, le problème est que je ne sais pas comment afficher ou de les transformer en une réponse dans un fichier pdf, à l'aide de flottement, J'ai essayé d'utiliser le url_launcher de dépendance parce que dans le navigateur affiche le pdf normalement, mais le problème est que j'ai besoin de passer un jeton à cette url. la deuxième chose que j'ai essayé était à extraire la réponse de l'api et de l'enregistrer dans un temporelles fichier et utiliser flutter_pdfview de dépendance, mais il affiche des erreurs. c'est de cette façon que la réponse de l'api ressemble:

%PDF-1.4
1 0 obj
<<
/Title (þÿ)
/Creator (þÿ)
/Producer (þÿQt 5.5.1)
/CreationDate (D:20211120205047)
>>
endobj
2 0 obj
<<
/Type /Catalog
/Pages 3 0 R
>>
endobj
4 0 obj
<<
/Type /ExtGState
/SA true
/SM 0.02
/ca 1.0
/CA 1.0
/AIS false

c'est ce que j'ai essayé:

 Future LoadPDF(APIurl)async {
    Map<String,String> Headers={
      'Content-type': 'application/json; charset=UTF-8',
      'Accept': 'application/json',
      'Authorization': 'Bearer $userToken'
    };
    final response = await http.get(Uri.parse(APIurl),headers: Headers);
    final bytes = response.bodyBytes;
    // print(response.bodyBytes);
    var dir = await getTemporaryDirectory();
    File file = File(dir.path + "/data.pdf"); 
    await file.writeAsBytes(bytes, flush: true);
    setState(() {
    loadDocument(file);
    });
    // return file;
    
  }
flutter http pdf token
2021-11-21 01:05:05
1

La meilleure réponse

0

vous pouvez utiliser flutter_pdfview package pour montrer pdf:

loadDocument(file) {
    PDFView(
      filePath: file.path,
      enableSwipe: true,
      swipeHorizontal: true,
      autoSpacing: false,
      pageFling: false,
      onRender: (_pages) {
        setState(() {
          pages = _pages;
          isReady = true;
        });
      },
      onError: (error) {
        print(error.toString());
      },
      onPageError: (page, error) {
        print('$page: ${error.toString()}');
      },
      onViewCreated: (PDFViewController pdfViewController) {
        _controller.complete(pdfViewController);
      },
      onPageChanged: (int page, int total) {
        print('page change: $page/$total');
      },
    ),
}
2021-11-21 02:27:47

J'ai essayé avec ce paquet, mais quand je lance le projet, il affiche une erreur: Ce qui s'est passé: échec de l'Exécution de la tâche:app:checkDebugAarMetadata'. > N'a pas pu résoudre tous les fichiers de configuration ':app:debugRuntimeClasspath'. > N'a pas pu trouver com.github.barteksc:android-pdf-viewer:3.2.0-bêta.1.
Max33

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................