Как загрузить существующий PDF и распечатать, используя печать в флаттере - PullRequest
0 голосов
/ 11 февраля 2020

Я пытался напечатать существующий файл PDF, который находится на SD-карте. Поэтому я добавил печать пакета в свой проект флаттера для печати PDF-файлов.

Печать ссылки на пакет

Я проверил их документацию и не могу найдите способ загрузить и распечатать pdf.

К вашему сведению, я могу создать pdf из изображения, текста или любого другого и передать его функции печати. Это работает, как ожидалось.

final pdf = Document();

pdf.addPage(Page(
      pageFormat: PdfPageFormat.a4,
      build: (Context context) {
        return Center(
          child: Text("Hello World"),
        );
      })
);

await Printing.layoutPdf(onLayout: (PdfPageFormat format) async => pdf.save());

Любая помощь по загрузке существующего PDF и печати будет полезна

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Наконец-то я нашел способ напечатать pdf с помощью плагина печати. ​​

Вы можете напрямую распечатать pdf, указав интерактивный URL-адрес pdf

. Для этого просто используйте следующий фрагмент дротика

http.Response response = await http.get('http://www.africau.edu/images/default/sample.pdf');
var pdfData = response.bodyBytes;
await Printing.layoutPdf(onLayout: (PdfPageFormat format) async => pdfData);

Не забудьте импортировать плагин http

import 'package:http/http.dart' as http;

Спасибо всем за помощь

0 голосов
/ 11 февраля 2020

Это поможет вам загрузить pdf на экран.

import 'package:native_pdf_view/native_pdf_view.dart';

Widget pdfView() => FutureBuilder<PDFDocument>(
  // Open document
  future: PDFDocument.openAsset('assets/sample.pdf'),
  builder: (_, snapshot) {
    if (snapshot.hasData) {
      // Show document
      return PDFView(document: snapshot.data);
    }

    if (snapshot.hasError) {
      // Catch 
      return Center(
        child: Text(
          'PDF Rendering does not '
          'support on the system of this version',
        ),
      );
    }

    return Center(child: CircularProgressIndicator());
  },
);

Чтобы распечатать PDF-файл, используйте этот пакет.

 await FlutterPdfPrinter.printFile(file.path);

Здесь вы можете найти образец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...