gpt4 book ai didi

winforms - 从 pdf 查看器中提取文本和所有字体信息

转载 作者:行者123 更新时间:2023-12-02 08:01:30 30 4
gpt4 key购买 nike

用户将在网络浏览器控件(或任何其他查看器)中看到 PDF,并从中选择文本,然后我想查找

1)所选文本的坐标。

2)所选文本的字体大小。

3)所选文本的字体颜色。

4)所选文本的页码。

这样我就可以使用此信息从 pdf 中查找具有相同主题的文本。

问题 1:是否可以找到在网络浏​​览器控件中选择了哪个文本或坐标?使用 pdf tron 查看器一定有更好的方法吗?

我的方法是修复表单,这样用户就不会更改长度、宽度

a)我会找到一种方法将屏幕坐标转换为pdf矩形坐标(#问题2)

b)然后我从这些坐标中获取文本

c) 然后我会找到该文本的颜色和其他属性

但我确信,一定有一个简单的方法。我试图寻求帮助,但找不到这样的帮助。请提供相关文档和帮助来确定启动任务的起点。

最佳答案

使用网络浏览器不可能做到这一点,但可以使用 PDFViewCtrl 进行替代。

1) 通过浏览PDFNET.dll在工具箱中添加控件

2) 最好不要拖放控件,或者在 initializeComponent(); 之后初始化 pdfviewctrl

3)添加这些行以向用户提供选择权

        pdfViewCtrl1.SetDoc(doc);
pdfViewCtrl1.SetToolMode(pdftron.PDF.PDFViewCtrl.ToolMode.e_text_rect_select);

4)将此代码添加到开始按钮的单击事件后面,以便用户告诉程序他/她已经选择了文本。

            int pagenumber = pdfViewCtrl1.GetCurrentPage();
if (pdfViewCtrl1.HasSelectionOnPage(pagenumber))
{
pdftron.PDF.PDFViewCtrl.Selection selection = pdfViewCtrl1.GetSelection();
string HTML = selection.GetAsHtml();
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(HTML);
double[] coordinates = selection.GetQuads();
Rect rect = new Rect(coordinates[6], coordinates[7], coordinates[2], coordinates[3]);
}

您将获得 html 格式的所有内容,此外还有文本和坐标,以便您可以找到更多信息,

http://www.pdftron.com/pdfnet/samplecode.html 上查找代码示例

关于winforms - 从 pdf 查看器中提取文本和所有字体信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28170702/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com