如何从小部件在 Flutter 中创建 A4 或 PDF 中的图像?

dja*_*ler 6 pdf pdf-generation image dart flutter

我的应用程序需要从小部件创建 A4 格式的图像或 pdf,实际上是一个具有动态高度的列(取决于用户在该 SingleChildScrollView -> 列上添加的内容,用户可以向该列添加图像和文本)。

如何从具有动态高度的列的小部件在 Flutter 中创建 A4 格式或 PDF 格式的图像?(我可以有一个包含适合屏幕的小部件列表和其他不适合的小部件列表的 Column,例如 20 个将走出屏幕的大小部件。)

第 1 栏

第 1-2 栏

fzy*_*cjy 2

方法 1:生成一页,然后(自动)滚动到下一页,然后生成第二页,依此类推。

方法2:对于每一页,用一个RepaintBoundary和一个Key包裹起来。假设您有 10 个页面,那么您有 10 个密钥,并使用这些密钥生成所有页面。

如果只生成可见的东西,请尝试以下操作:

List<Widget> yourPages = ...;
List<Key> yourKeys = yourPages.map((_) => GlobalKey()).toList(); // or other kinds of keys? what do you use
Stack(children:[
for(var i=0;i< yourPages.length;i++) 
RepaintBoundary(key: yourKeys[i], child: yourPages[i]),
])
Run Code Online (Sandbox Code Playgroud)

这样,一切都可以生成。