用户将在webbrowser Control(或任何其他查看器)中看到pdf并从中选择文本然后我想找到
1)所选文本的坐标。
2)所选文字的字体大小。
3)所选文字的字体颜色。
4)所选文字的页码。
这样我就可以使用这些信息从相同主题的pdf中找到文本。
问题1: 是否可以在webbrowser控件中找到选择的文本或坐标?使用pdf tron viewer必须有更好的方法吗?
我的方法是修复表单,以便用户不会更改长度,宽度
a)我将找到一种将屏幕坐标转换为pdf矩形坐标的方法(#problem 2)
b)然后我从这些坐标中填写获取文本
c)然后我会找到该文本的颜色和其他属性
但我相信,必须有一个简单的方法。我试图找到帮助,但无法找到这样的帮助。请提供相关文档并帮助找出开始任务的起点。
答案 0 :(得分:0)
使用webbrowser无法做到这一点,但有一种方法可以使用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中的所有内容,否则你有文字和坐标,这样你就可以找到更多的信息,
上查找代码示例