首页 > 解决方案 > 如何在颤振画布中绘制pdf内容

问题描述

我正在使用带有pdf软件包的 Flutter。在自述文件中它说用于printing在应用程序中显示 pdf。

但是,我想在 pdf 内容的前面画图(记笔记/做注释)。所以我想我必须在我的CustomPaint小部件中绘制 pdf 内容才能获得更多控制权。

我四处寻找,没有发现任何有用的经验。请让我知道我的方法是正确/合理的,如果有更好的方法。

谢谢!

标签: flutterpdfcanvasdart-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(),
);

推荐阅读