2017-01-23 16 views
0

Я использую Adobe Acrobat Standard DC 2015 Release (Classic), версию 2015.006.3028 и Visual Studio 2013 MVC5 с VB.net. Это офис, поэтому я не могу просто обновить свои версии.activePDF underline fieldinfo in .net

У меня проблема с тем, что activePDF не позволяет подчеркивать в своих текстовых полях ввода. Я нашел обходное решение, что, хотя оно не идеально подходит для моего документа.

Если кто-то знает о другом способе сделать это, я был бы очень благодарен.

У меня есть список строк, которые должны отображаться в определенном порядке, а количество строк может варьироваться. Но некоторые строки должны быть подчеркнуты, что я не смог сделать, используя свойства FieldInfo в .net. Я не знаю, в каком конкретном поле ввода текста строка будет отображаться в документе до тех пор, пока я не получу код .net. Не то, чтобы поле ввода текста в самом документе имело свойство подчеркивания в любом случае.

Что я нашел, так это то, что вы можете добавить гиперссылку в текст гиперссылки. Почему коробка, а не только подчеркивание, я не знаю. Текст в этом экземпляре не будет фактической гиперссылкой, но мои пользователи просто отображают документ и печатают его так, что это нормально. Мне просто нужна линия.

Я создал гиперссылку, которая имеет только 1 единицу роста, поэтому она делает двойной подчеркивание. И это ширина поля, а не текст. Я не смог найти какое-либо свойство, чтобы дать мне textWidth, только fieldWidth. Я попытался заставить его распечатать строку на той же строке, чтобы сделать действительно толстую строку, но она не сделает этого, так что это двойная линия.

Я создал свой объект APToolkitNET.Toolkit (objPDF), и теперь я готов начать работу с SetFormFieldData для моих полей ввода.

objPDF.SetFormFieldData("txtTestItem", "This is a test.", -998) 
Dim thisField As FieldInfo = objPDF.FieldInfo("txtTestItem", 1) 
objPDF.AddHyperlink(thisField.PageNumber, thisField.Left, thisField.Bottom, _ 
    (thisField.Left + thisField.Width), (thisField.Bottom + 1), "", 0) 

Закончен остальная часть моих objPDF и реагирования пунктов и теперь я получаю это:

Image of Form

Более подробную информацию об объекте гиперссылка можно найти здесь: http://www.activepdf.com/AltDownloads/Documentation/TK2011/AddHyperlink.html

I «Мы искали лучшее решение в течение нескольких дней, но не похоже, что у ActivePDF есть много вещей, которые делают пользователи. Все связано с их собственным сайтом. Так что, надеюсь, кто-то нуждался в этом, как я, и это на самом деле помогает им!

+0

Нашли способ сделать подчеркивание шириной текста. Создайте шрифт и получите ширину текста шрифта. objPDF.SetFont (thisField.FontName, thisField.FontSize, thisField.PageNumber), затем Dim txtWidth как Decimal = objPDF.GetTextWidth (thisField.Value, thisField.PageNumber). Затем в части AddHyperLink измените значение thisField.Width на txtWidth. –

+0

Это предложение помогло много. Я сохранил .SetFont и .GetTextWidth выше. Я заменил .AddHyperLink objPDF.LineWidth (1, fieldCovI.PageNumber), затем objPDF.MoveTo (fieldCovI.Left, fieldCovI.Bottom, fieldCovI.PageNumber), затем objPDF.DrawTo (fieldCovI.Left + txtWidth, fieldCovI.Bottom, fieldCovI. Номер страницы). Я получил однострочное подчеркивание, соответствующее тексту! –

ответ

0

Вместо использования гиперссылки для рисования линии вы также можете сделать это с помощью функций MoveTo и DrawTo. Поскольку у вас уже есть координаты для использования при добавлении гиперссылки, вы можете использовать их, чтобы определить, где рисовать линию.

LineWidth также доступен для управления шириной линии.