3

ユーザーは、webbrowser コントロール (または他のビューアー) で pdf を表示し、そこからテキストを選択して、検索したい

1)選択したテキストの座標。

2)選択したテキストのフォントサイズ。

3)選択したテキストのフォントの色。

4)選択したテキストのページ番号。

この情報を使用して、同じテーマのpdfからテキストを見つけることができます。

問題 1: Web ブラウザー コントロールで選択されているテキストまたは座標を見つけることはできますか? pdf tron ビューアーを使用してそれを行うためのより良い方法があるに違いありませんか?

私のアプローチは、フォームを修正して、ユーザーが長さ、幅を変更しないようにすることです

a) 画面座標を pdf 長方形座標に変換する方法を見つけます(#問題 2)

b)次に、それらの座標からテキストを取得します

c)次に、そのテキストの色やその他のプロパティを見つけます

しかし、確かに、簡単な方法があるに違いありません。ヘルプを見つけようとしましたが、そのようなヘルプは見つかりませんでした。関連するドキュメントと、タスクを開始するための出発点を把握するためのヘルプを提供してください。

4

1 に答える 1

1

これは 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]);
           }

それ以外の場合はテキストと座標があるため、詳細情報を見つけることができます。

http://www.pdftron.com/pdfnet/samplecode.htmlでコードのサンプルを見つけてください。

于 2015-02-18T11:41:22.750 に答える