Flutter - 制作一个 PDF 查看器,可以转到特定页面上的特定段落并突出显示它

问题描述 投票:0回答:1

所以在应用程序中,我目前正在开发一个PDF + AI CHAT应用程序,有一个AI模型可以读取用户上传的PDF。当用户询问与 PDF 相关的任何问题时,它会提供一组参考文献,每个参考文献都包含页码和它所引用的段落的文本。单击参考文献后,我想在新屏幕上打开 pdf,并且必须打开该特定页面并且必须突出显示该特定文本/段落。我进行了很多研究,但找不到任何有效的包。我尝试了 syncfusion 但它仅适用于单个单词文本,而不适用于整个句子或段落。我该如何实施?有什么包可以帮忙吗?

flutter dart syncfusion
1个回答
0
投票

来自 Syncfusion 团队的问候。

您的用例可以通过使用 syncfusion_flutter_pdf 库来实现,我们创建了一个示例来满足您的要求。请从下面的链接找到示例。

在此示例中,我们从用户处获取页码和段落文本。

有了这些信息,我们使用库 syncfusion_flutter_pdf 库使用 PdfTextExtractor 提取指定页面上的所有文本信息。

我们正在检查该页面上的任何文本是否与给定的段落文本匹配。

如果找到文本,我们将存储边界信息(该页面上文本的位置)并在该位置添加文本标记注释(在本例中为HighlightAnnotation)。

根据段落文本的边界信息,我们计算 PDF 文档中文本的位置(通过添加所有页面高度直到指定页面),然后使用 PdfViewerController.jumpTo 方法滚动到该位置。

示例:https://www.syncfusion.com/downloads/support/directtrac/general/ze/search_paragraph384452816

注意:我们仅为此用例创建了此示例。我们已经实现了连续页面布局的用例。同样,您可以使用单页布局实现相同的效果。

要突出显示单个文本,您可以使用 PdfViewerController.searchText 方法。

文档:Flutter PDF Viewer 小部件中的文本搜索

如果您有任何疑问,请联系我们的支持团队。

© www.soinside.com 2019 - 2024. All rights reserved.