2017-01-23 3 views
0

Ich benutze Adobe Acrobat Standard DC 2015 Version (Classic), Version 2015.006.3028 und Visual Studio 2013 MVC5 mit VB.net. Dies ist ein Büro, also kann ich nicht einfach meine Versionen aktualisieren.activePDF Unterstreichung Feldinfo in .net

Ich habe ein Problem mit der Tatsache, dass ActivePDF Unterstreichung in ihren Texteingabefeldern nicht zulassen. Ich habe einen Workaround gefunden, der zwar nicht perfekt war, aber gut genug für mein Dokument war.

Wenn jemand eine andere Möglichkeit kennt, dies zu tun, wäre ich sehr dankbar.

Ich habe eine Liste von Strings, die in keiner bestimmten Reihenfolge angezeigt werden müssen und die Anzahl der Zeilen kann variieren. Einige der Zeilen müssen jedoch unterstrichen werden, was ich mit den FieldInfo-Eigenschaften in .net nicht ausführen konnte. Ich weiß nicht, in welchem ​​speziellen Texteingabefeld die Zeichenfolge im Dokument angezeigt wird, bis ich den .net-Code erreiche. Nicht, dass das Texteingabefeld im Dokument selbst ohnehin eine Unterstreichungseigenschaft hat.

Was ich gefunden habe, ist, dass Sie eine Hyperlink-Box um Hyperlink Text hinzufügen können. Warum eine Box und nicht nur eine Unterstreichung weiß ich nicht. Der Text in diesem Fall ist kein tatsächlicher Hyperlink, aber meine Benutzer zeigen das Dokument einfach an und drucken es so, dass es in Ordnung ist. Ich brauche nur eine Linie.

Ich erstellte eine Hyperlink-Box, die nur 1 Einheit groß ist, so dass es eine doppelte Unterstreichung macht. Und es ist die Breite des Feldes, nicht der Text. Ich konnte keine Eigenschaft finden, um mir die textWidth, nur die fieldWidth zu geben. Ich habe versucht, die Zeile in der gleichen Zeile auszudrucken, um eine wirklich dicke Zeile zu erstellen, aber das geht nicht, also eine Doppellinie.

Ich habe mein APToolkitNET.Toolkit-Objekt (objPDF) erstellt und bin jetzt bereit, meine SetFormFieldData für meine Eingabefelder zu beginnen.

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) 

den Rest meines objPDF und Antwort Artikel Finished und ich jetzt dieses:

Image of Form

Weitere Informationen über den Hyperlink-Objekt kann hier gefunden werden: http://www.activepdf.com/AltDownloads/Documentation/TK2011/AddHyperlink.html

I Ich habe seit Tagen nach einer besseren Lösung gesucht, aber es sieht nicht so aus, als hätte ActivePDF eine Menge von Dingen, die von Benutzern gemacht wurden. Alles verweist auf seine eigene Website. Hoffentlich brauchte jemand das wie ich und es hilft ihnen wirklich!

+0

Der Weg gefunden, die Unterstreichung der Breite des Textes zu machen. Erstellen Sie eine Schriftart und erhalten Sie die Textbreite der Schriftart. objPDF.SetFont (thisField.FontName, thisField.FontSize, thisField.PageNumber) und Dim txtWidth als Decimal = objPDF.GetTextWidth (thisField.Value, thisField.PageNumber). Ändern Sie dann im AddHyperLink-Teil die thisField.Width in txtWidth. –

+0

Der Vorschlag unten half sehr. Ich habe die .SetFont und .GetTextWidth oben gehalten. Ich habe den .AddHyperLink durch objPDF.LineWidth (1, fieldCovI.PageNumber) dann objPDF.MoveTo (fieldCovI.Left, fieldCovI.Bottom, fieldCovI.PageNumber) dann objPDF.DrawTo (fieldCovI.Left + txtWidth, fieldCovI.Bottom, fieldCovI. Seitennummer). Ich habe meine Zeile unterstrichen, die zum Text passt! –

Antwort

0

Anstatt einen Hyperlink zu verwenden, um die Linie zu zeichnen, könnten Sie es auch mit den Funktionen MoveTo und DrawTo machen. Da Sie beim Hinzufügen des Hyperlinks bereits die zu verwendenden Koordinaten haben, können Sie anhand dieser bestimmen, wo die Linie gezeichnet werden soll.

LineWidth ist auch verfügbar, um die Breite der Linie zu steuern.