pdf 1.8.1 Flutter - Невозможно отобразить документ - PullRequest
0 голосов
/ 27 мая 2020

Я пытался использовать PDF-библиотеку для Flutter, используя пакет здесь

идея состоит в том, чтобы создать что-то вроде this : который является примером в пакете страница.


проблема в том, что если я запустил там демонстрационный пример, он будет работать точно так же, как и пример, и это нормально.

Но если я создаю новый проект и КОПИРУЮ / ВСТАВЛЯЮ все файлы * .dart и pubspe c .yaml: это не работает. Скрипт создает файл, я могу его загрузить или распечатать, но файл не отображается.

Я не использую проект с дополнительной информацией, я просто копирую тот же код в чистый проект, и я также получаю пакеты в pubspe c .yaml

у кого-то была такая же проблема? Я опубликую изображение ниже.

в дополнение: Я ЗАПУСКАЮ ОБЕ ПРОЕКТЫ КАК FLUTTER WEB, В CHROME

спасибо за вашу помощь !! :)

enter image description here

под кодом 'hello world', который показал мне ту же ошибку ..

import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:flutter/material.dart';
import 'package:printing/printing.dart';
import 'dart:typed_data';


void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final pw.Document doc = pw.Document();

  @override
  Widget build(BuildContext context) {
    Future<Uint8List> generateDocument(PdfPageFormat format) async {
      doc.addPage(pw.Page(
          pageFormat: PdfPageFormat.standard,
          build: (pw.Context context) {
            return pw.Center(
              child: pw.Text("Hello World"),
            ); // Center
          })); // Page
      return doc.save();
    }

    return MaterialApp(
      title: 'Material App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Material App Bar'),
        ),
        body: PdfPreview(
          maxPageWidth: 700,
          build: generateDocument,
        ),
      ),
    );
  }
}

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Я не могу комментировать ответ, поэтому добавляю свой комментарий в качестве ответа. Я потратил на эту проблему целый день, пока не нашел это. Это решает проблему, и это нигде не задокументировано. Его следует добавить в репозиторий git этой библиотеки.

Matias Так что это нормально для коммерческого использования.

0 голосов
/ 03 июня 2020

вы добавили код javascript? вы должны добавить код в индекс. html.

например) вот так,

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="Rakuraku Flutter.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="rakuraku">
  <link rel="apple-touch-icon" href="/icons/Icon-192.png">

  <!-- Favicon -->
  <link rel="shortcut icon" type="image/png" href="/favicon.png"/>

  <title>rakuraku</title>
  <link rel="manifest" href="/manifest.json">
</head>
<body id="flutter">
  <!-- This script installs service_worker.js to provide PWA functionality to
       application. For more information, see:
       https://developers.google.com/web/fundamentals/primers/service-workers -->
  <script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('load', function () {
        navigator.serviceWorker.register('/flutter_service_worker.js');
      });
    }
  </script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.min.js"></script>
  <script type="text/javascript">
     pdfjsLib.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js";
  </script>
  <script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...