flutter - 如何在颤振画布中绘制pdf内容
问题描述
我正在使用带有pdf
软件包的 Flutter。在自述文件中它说用于printing
在应用程序中显示 pdf。
但是,我想在 pdf 内容的前面画图(记笔记/做注释)。所以我想我必须在我的CustomPaint
小部件中绘制 pdf 内容才能获得更多控制权。
我四处寻找,没有发现任何有用的经验。请让我知道我的方法是正确/合理的,如果有更好的方法。
谢谢!
解决方案
我认为您正在谈论的自述文件的一部分是:
使用打印包https://pub.dev/packages/printing进行完整的 Flutter 打印和共享操作。
此打印包用于打印到真正的打印机。您使用的 pdf 包仅用于在颤振应用程序中创建 pdf,而不是用于将其显示为小部件。
您想要实现的是在其上显示 pdf 和注释。您的方法是正确的:
- 使用自定义画家
- 添加一个 PDF 小部件作为其子级
- 在前景画家上绘制您的注释。
要将 pdf 显示为小部件,您需要另一个包,例如advance_pdf_viewer
.
在前景画家上绘画很重要,因为如 CustomPaint 类文档中所述:
当被要求绘画时,CustomPaint首先要求它的画家在当前画布上绘画,然后它画它的孩子,然后,在画完它的孩子之后,它要求它的foregroundPainter绘画。
代码应如下所示:
PDFDocument doc = await PDFDocument.fromAsset('assets/test.pdf');
return CustomPaint(
child: PDFViewer(doc: document)),
foregroundPainter: AnnotationsPainter(),
);
推荐阅读
- python - 如何比较pyspark中的日期时间行对象
- ruby - 无法在模块方法中使用 RSpec 期望
- python - 发送帖子请求后重定向 url_for 不会重定向我
- c++ - 我可以从构造函数中传递成员函数指针吗?
- masstransit - 无法通过 SSL 使用 MassTransit 连接到 AmazonMQ
- node.js - 我下载了更新版本的 Jest,现在我的反应应用程序无法打开
- python - 阻止 py.exe 打开新的控制台窗口
- shell - 詹金斯管道找不到shell文件
- python - Pandas 数据框到 JSON 层次结构
- excel - 计数范围的总和是否满足条件