2016-08-05 5 views
0

Я использую PdfNet (C#) для Winforms.PdfNet readonly аннотации не только для чтения

Я хочу, чтобы иметь возможность подчеркнуть текст, поэтому я создал подчеркивание аннотацию как это:

Annot underlineAnnot = Annot.Create(m_document, Annot.Type.e_Underline, rect) 
underlineAnnot.SetFlag(Annot.Flag.e_read_only); 

в соответствии с этой страницы, это не возможно, чтобы переместить только для чтения аннотаций: https://www.pdftron.com/pdfnet/docs/PDFNet/html/T_pdftron_PDF_Annot_Flag.htm

Но когда я перемещаю его с помощью инструментальной модели e_annot_edit, он действительно перемещается ...

Как я могу заблокировать аннотацию, чтобы она не реагировала на события мыши?

+0

Вы загрузили этот пакет из NuGet? Если да, можете ли вы опубликовать URL-адрес проекта, чтобы я мог попробовать и попытаться получить ответ за вас? –

+0

Thx за то, что вы помогли мне, но это невозможно поделиться проектом, так как это не мое. – PrisonMike

ответ

1

В настоящее время зритель не обеспечивает соблюдение режима чтения.

Вы можете сделать это легко самостоятельно.

Создать метод делегата со следующей подписью.

return false to allow editing, otherwise return true 
public bool edit_annot_proc(Annot annot, object obj) 
{ 
    return annot.GetFlag(Annot.Flag.e_read_only); 
} 

Затем зарегистрировать функцию обратного вызова при создании объекта PDFViewCtrl

mypdfviewctrl.SetAnnotationEditPermissionHandler(edit_annot_proc, null); 
+0

Спасибо большое, но я в настоящее время использую версию 5.1, которая не содержит этот метод. Есть ли другой способ сделать это без обновления? – PrisonMike

+0

В этом случае вы должны подклассифицировать класс PDFViewCtrl и переопределить события OnMouse [Up | Down] и пропустить вызов base.OnMouseUp (e), если вы не хотите разрешать поведение по умолчанию. См. MyPDFView.cs OnMouseUp в примере PDFViewTest. – Ryan

+0

Я действительно не хочу пропускать его, некоторые аннотации следует игнорировать в моем проекте. Если аннотация перекрывает другую аннотацию, которую следует игнорировать, следует выбрать только перекрывающуюся аннотацию с помощью инструментальной модели e_annot_edit. Этого трудно достичь без обновления, я думаю, но обновление не является вариантом для моего проекта. – PrisonMike