2017-01-23 56 views
0

我在VB.net中使用Adobe Acrobat Standard DC 2015 Release(Classic),版本2015.006.3028和Visual Studio 2013 MVC5。这是一个办公室,所以我不能只升级我的版本。activePDF在.net中下划线fieldinfo

我有一个事实,即activePDF不允许在其文本输入字段中加下划线。我找到了一种解决方法,虽然对我的文档来说不够完美还不够好。

如果有人知道采取不同的方式来做到这一点,我将非常感激。

我有一个字符串列表,需要显示在没有特定的顺序和行数可以有所不同。但是有些线条需要加下划线,我无法在.net中使用FieldInfo属性。我不知道字符串会在文档中显示哪个特定的文本输入框,直到找到.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

我我们一直在寻找更好的解决方案,但它看起来并不像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。我用objPDF.LineWidth(1,fieldCovI.PageNumber)替换.AddHyperLink,然后objPDF.MoveTo(fieldCovI.Left,fieldCovI.Bottom,fieldCovI.PageNumber),然后objPDF.DrawTo(fieldCovI.Left + txtWidth,fieldCovI.Bottom,fieldCovI。的PageNumber)。我得到了符合文本的单行下划线! –

回答

0

您可以使用MoveTo和DrawTo函数来代替使用超链接绘制线条。由于添加超链接时已经有了坐标,所以可以使用这些坐标来确定绘制线条的位置。

LineWidth也可用于控制线的宽度。