首页 > 解决方案 > 将文本编辑器转换为 html,然后打印为 pdf

问题描述

我正在尝试从 ZefyrEditor 打印 pdf,我知道目前没有这样的功能。所以我读到唯一的方法是将 Zefyr markdown 转换为 HTML,然后从 HTML 转换为 pdf(请参阅此处的 Github 问题),但我不知道如何。我在 Firebase 数据库的文档字段中保存了一个 Json 数据(snapsh 是我的 DocumentSnapshot),因此如果该文档存在,我将解码 Json 并将 NotusDocument 和 Delta quill markdowsn 返回到我的编辑器控制器。当我按下按钮时,我想打印我的 pdf,但显然它给了我一个错误。

我尝试使用降价包,但我不明白如何将我的 Json 数据转换为正确的 html 数据。

import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:markdown/markdown.dart' as mk; 

 Future<NotusDocument> _loadDocument(snapsh) async {
     testo =mk.markdownToHtml(jsonDecode(await snapsh['referto']));
   
      if(await snapsh.exists) {
        final contents =await snapsh['referto'];

        return NotusDocument.fromJson(jsonDecode(contents));
        
      } 

    final Delta delta = Delta()..insert('ciao\n',{'b':true});
    return NotusDocument.fromDelta(delta);      
  } 

 _loadDocument(value).then((document) {
      setState(() {
        
        _controller = ZefyrController(document);
        testoHtml = mk.markdownToHtml(_controller.toString());

      });
    }

   return Scaffold(
       appBar: AppBar(
          backgroundColor: Colors.blueGrey.shade900,
          title: Text("$dataVis - $nomePaz"),
          actions: <Widget>[

      IconButton(
        icon: Icon(Icons.print),
        onPressed: () async {
                      final pdf = pw.Document();
                      Directory appDocDirectory = await getApplicationDocumentsDirectory();



                     pdf.addPage(pw.Page(
                         pageFormat: PdfPageFormat.a4,
                         build: (pw.Context context) {
                             return pw.Center(
                                    child: pw.Text("$testo"),
                                   ); // Center
                       })); 

                    final file = File(appDocDirectory.path+'/example.pdf');
                   await file.writeAsBytes(pdf.save());
                  OpenFile.open(file.path);
        },
     ),

标签: flutterdartpdf-generation

解决方案


推荐阅读