Flutter'da bir API yanıtından alınan bir pdf nasıl gösterilir?

0

Soru

Kullanıcının bir kursu tamamladığına dair sertifikayı göstermem gereken bir projede çalışıyorum, bir pdf dosyasına erişmek için bir belirteç içinde get yöntemini kullanan API'nin bir URL'si var, sorun şu ki bu yanıtı nasıl göstereceğimi veya dönüştüreceğimi bilmiyorum., Url_launcher bağımlılığını kullanmaya çalıştım çünkü tarayıcıda pdf'yi normal olarak gösteriyor, ancak sorun şu ki bu url'ye bir belirteç iletmem gerekiyor. denediğim ikinci şey, apı'nin yanıtını almak ve geçici bir dosyaya kaydetmek ve flutter_pdfview bağımlılığını kullanmaktı ancak hataları gösteriyor. apı'nin yanıtı şöyle görünür::

%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

denedim nedir bu :

 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

En iyi cevabı

0

pdf'yi göstermek için flutter_pdfview paketini kullanabilirsiniz:

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

Bu paketle denedim ancak projeyi çalıştırdığımda bir hata gösteriyor: Ne yanlış gitti:': app: checkDebugAarMetadata ' görevi için yürütme başarısız oldu. > ': app:debugRuntimeClasspath ' yapılandırması için tüm dosyalar çözümlenemedi. > Com bulunamadı.github.barteksc: android-pdf görüntüleyici: 3.2.0-beta.1.
Max33

Diğer dillerde

Bu sayfa diğer dillerde

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