ここで試してみることができます。テンプレート文書に次のようなコンテンツがあるとします:
ソーシャルメディア:[FacebookPage1] | [TwitterPage1] | [GooglePlusPage1] | [LinkedInPage1]
ハイパーリンクとそれらのプレースホルダーを交換するには、次を使用することができ、その場合には:
:
// Create collection of "placeholder -> link" pairs.
var linkData = new Dictionary<string, string>()
{
["FacebookPage1"] = "https://www.facebook.com",
["TwitterPage1"] = "https://twitter.com",
["GooglePlusPage1"] = "https://plus.google.com",
["LinkedInPage1"] = "https://www.linkedin.com"
};
// Create placeholder regex, the pattern for texts between square brackets.
Regex placeholderRegex = new Regex(@"\[(.*?)\]", RegexOptions.Compiled);
// Load template document.
DocumentModel document = DocumentModel.Load("Template.docx");
// Search for placeholders in the document.
foreach (ContentRange placeholder in document.Content.Find(placeholderRegex).Reverse())
{
string name = placeholder.ToString().Trim('[', ']');
string link;
// Replace placeholder with Hyperlink element.
if (linkData.TryGetValue(name, out link))
placeholder.Set(new Hyperlink(document, link, name).Content);
}
// Save document.
document.Save("Output.docx");
次は、得られた "Output.docx" ファイルであります
上記のコードでは、GemBox.DocumentをDOCXファイルの操作に使用しています。Free and Professional versionsです。
私は非営利のために働いていますが、この時点でライセンスを購入する余裕はありません。ありがとうございますが、無料のオプションを探し続ける必要があります。 – JW12689