spire.pdfviewer 7.12.6 已发布。本次更新新增支持获取鼠标点击时相对于 pdf 页面内容的坐标。详情请阅读以下内容。
新功能:
- spire.pdfdocumentviewer控件支持了获取鼠标点击时相对于pdf页面内容的坐标。
private void form1_load(object sender, eventargs e)
{
this.pdfdocumentviewer1.loadfromfile("1.pdf");
this.pdfdocumentviewer1.mousedown = new mouseeventhandler(pv_click);
}
private void pv_click(object sender, mouseeventargs e)
{
string outputfile = "out.pdf";
string outputfile_txt = "out.txt";
file.delete(outputfile_txt);
if (e.button == mousebuttons.left)
{
pointf[] controlpositions = new pointf[] { e.location};
spire.pdfviewer.forms.pageposition[] pagepositions = this.pdfdocumentviewer1.controltopage(controlpositions);
string filename = this.pdfdocumentviewer1.filename;
pdfdocument doc = new pdfdocument();
doc.loadfromfile(filename,fileformat.pdf);
pdfpagebase page = doc.pages[pagepositions[0].pageindex];
rectanglef bounds = new rectanglef(pagepositions[0].position, new sizef(100, 100));
pdftextextractor textextractor = new pdftextextractor(page);
pdftextextractoptions option = new pdftextextractoptions();
option.extractarea = bounds;
string text = textextractor.extracttext(option);
pdffont font = new pdffont(pdffontfamily.helvetica, 11);
pdftextwidget pdftextbox = new pdftextwidget();
pdftextbox.font = font;
pdftextbox.brush = pdfbrushes.red;
pdftextbox.text = "stamp";
pdftextbox.draw(page, bounds);
doc.pages[pagepositions[0].pageindex].canvas.drawrectangle(pdfpens.red, bounds);
doc.savetofile(outputfile);
file.appendalltext(outputfile_txt, "position: " pagepositions[0].position.tostring() "\ntext:\r\n " text);
messagebox.show("finish");
doc.dispose();
}
}
获取spire.pdfviewer 7.12.6请点击: