Created
June 8, 2022 09:03
-
-
Save bjoerntx/5b010209074f78e5675386703e4f2741 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private void Mm_FieldMerged( | |
object sender, | |
TXTextControl.DocumentServer.MailMerge.FieldMergedEventArgs e) { | |
// check if the current field is a merge field | |
if (e.MailMergeFieldAdapter.TypeName == "MERGEFIELD") { | |
MergeField field = (MergeField)e.MailMergeFieldAdapter; | |
// the DataRow returns the object of the actual data source | |
if (e.DataRow[field.Name].GetType() == typeof(Hyperlink)) { | |
// cast the object to a Hyperlink | |
Hyperlink hyperlink = (Hyperlink)e.DataRow[field.Name]; | |
// use a temporary ServerTextControl to generate HypertextLink | |
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl()) { | |
tx.Create(); | |
// the load the field to apply the formatting | |
tx.Load(e.MergedField, TXTextControl.BinaryStreamType.InternalUnicodeFormat); | |
// remove the field | |
tx.ApplicationFields.Clear(true); | |
// remove the text, but keep formatting | |
tx.SelectAll(); | |
tx.Selection.Text = ""; | |
// create and insert a new hypertext link based on the data row object | |
TXTextControl.HypertextLink hypertextLink = | |
new TXTextControl.HypertextLink(hyperlink.Text, hyperlink.Target); | |
tx.HypertextLinks.Add(hypertextLink); | |
// save the content and return to the event arguments | |
byte[] data; | |
tx.Save(out data, TXTextControl.BinaryStreamType.InternalUnicodeFormat); | |
e.MergedField = data; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment