本文整理汇总了C#中DocumentBuilder.InsertField方法的典型用法代码示例。如果您正苦于以下问题:C# DocumentBuilder.InsertField方法的具体用法?C# DocumentBuilder.InsertField怎么用?C# DocumentBuilder.InsertField使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentBuilder
的用法示例。
在下文中一共展示了DocumentBuilder.InsertField方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDocumentFillWithDummyText
/// <summary>
/// Create new document with text
/// </summary>
internal static Document CreateDocumentFillWithDummyText()
{
Document doc = new Document();
//Remove the previous changes of the document
doc.RemoveAllChildren();
//Set the document author
doc.BuiltInDocumentProperties.Author = "Test Author";
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Page ");
builder.InsertField("PAGE", "");
builder.Write(" of ");
builder.InsertField("NUMPAGES", "");
//Insert new table with two rows and two cells
InsertTable(builder);
builder.Writeln("Hello World!");
// Continued on page 2 of the document content
builder.InsertBreak(BreakType.PageBreak);
//Insert TOC entries
InsertToc(builder);
return doc;
}
示例2: Run
public static void Run()
{
// ExStart:ChangeFieldUpdateCultureSource
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithFields();
// We will test this functionality creating a document with two fields with date formatting
// ExStart:DocumentBuilderInsertField
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert content with German locale.
builder.Font.LocaleId = 1031;
builder.InsertField("MERGEFIELD Date1 \\@ \"dddd, d MMMM yyyy\"");
builder.Write(" - ");
builder.InsertField("MERGEFIELD Date2 \\@ \"dddd, d MMMM yyyy\"");
// ExEnd:DocumentBuilderInsertField
// Shows how to specify where the culture used for date formatting during field update and mail merge is chosen from.
// Set the culture used during field update to the culture used by the field.
doc.FieldOptions.FieldUpdateCultureSource = FieldUpdateCultureSource.FieldCode;
doc.MailMerge.Execute(new string[] { "Date2" }, new object[] { new DateTime(2011, 1, 01) });
dataDir = dataDir + "Field.ChangeFieldUpdateCultureSource_out.doc";
doc.Save(dataDir);
// ExEnd:ChangeFieldUpdateCultureSource
Console.WriteLine("\nCulture changed successfully used in formatting fields during update.\nFile saved at " + dataDir);
}
示例3: Run
public static void Run()
{
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithFields();
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert a few page breaks (just for testing)
for (int i = 0; i < 5; i++)
builder.InsertBreak(BreakType.PageBreak);
// Move the DocumentBuilder cursor into the primary footer.
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
// We want to insert a field like this:
// { IF {PAGE} <> {NUMPAGES} "See Next Page" "Last Page" }
Field field = builder.InsertField(@"IF ");
builder.MoveTo(field.Separator);
builder.InsertField("PAGE");
builder.Write(" <> ");
builder.InsertField("NUMPAGES");
builder.Write(" \"See Next Page\" \"Last Page\" ");
// Finally update the outer field to recalcaluate the final value. Doing this will automatically update
// the inner fields at the same time.
field.Update();
doc.Save(dataDir + "InsertNestedFields Out.docx");
Console.WriteLine("\nInserted nested fields in the document successfully.\nFile saved at " + dataDir + "InsertNestedFields Out.docx");
}
示例4: Main
public static void Main()
{
// The path to the documents directory.
string dataDir = Path.GetFullPath("../../../Data/");
//ExStart
//ExFor:DocumentBuilder.InsertField(string)
//ExId:DocumentBuilderInsertNestedFields
//ExSummary:Demonstrates how to insert fields nested within another field using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert a few page breaks (just for testing)
for (int i = 0; i < 5; i++)
builder.InsertBreak(BreakType.PageBreak);
// Move the DocumentBuilder cursor into the primary footer.
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
// We want to insert a field like this:
// { IF {PAGE} <> {NUMPAGES} "See Next Page" "Last Page" }
Field field = builder.InsertField(@"IF ");
builder.MoveTo(field.Separator);
builder.InsertField("PAGE");
builder.Write(" <> ");
builder.InsertField("NUMPAGES");
builder.Write(" \"See Next Page\" \"Last Page\" ");
// Finally update the outer field to recalcaluate the final value. Doing this will automatically update
// the inner fields at the same time.
field.Update();
doc.Save(dataDir + "InsertNestedFields Out.docx");
//ExEnd
}
示例5: EnsureQuoteField
/// <summary>
/// Ensure that the quote field is present at the start of the given document.
/// </summary>
public static void EnsureQuoteField(Document document)
{
var container = GetReferenceFieldContainer(document);
if (container == null)
throw new Exception("Unable to place quote reference field: no paragraph could be found.");
// If the first field in the document is "SET q", then exit early
var firstField = container.FirstChild as FieldStart;
if (firstField != null && IsQuoteField(firstField))
return;
// Otherwise, insert "SET q"
var builder = new DocumentBuilder(document);
if (container.FirstChild != null)
{
// Insert the new field at the beginning of the first paragraph
var field = builder.InsertField(" SET q \"\\\"\" ");
var insertBefore = container.FirstChild;
foreach (var node in field.Start.GetSelfAndFollowingSiblings().TakeUpToNode(field.End).Reverse().ToArray())
{
container.InsertBefore(node, insertBefore);
insertBefore = node;
}
}
else
{
// The paragraph is empty, so just insert the field
builder.MoveToParagraph(0, 0);
builder.InsertField(" SET q \"\\\"\" ");
}
}
示例6: Main
static void Main(string[] args)
{
// Check for license and apply if exists
string licenseFile = AppDomain.CurrentDomain.BaseDirectory + "Aspose.Words.lic";
if (File.Exists(licenseFile))
{
// Apply Aspose.Words API License
Aspose.Words.License license = new Aspose.Words.License();
// Place license file in Bin/Debug/ Folder
license.SetLicense("Aspose.Words.lic");
}
Document doc = new Document("../../data/document.doc");
// Enter a dummy field into the document.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField("MERGEFIELD Field");
// GetText will retrieve all field codes and special characters
Console.WriteLine("GetText() Result: " + doc.GetText());
string text = doc.GetText();
text = text.Replace(ControlChar.Cr, ControlChar.CrLf);
Console.WriteLine("Replaced text Result: " + text);
}
示例7: Run
public static void Run()
{
// ExStart:ChangeLocale
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithFields();
// Create a blank document.
Document doc = new Document();
DocumentBuilder b = new DocumentBuilder(doc);
b.InsertField("MERGEFIELD Date");
// Store the current culture so it can be set back once mail merge is complete.
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
// Set to German language so dates and numbers are formatted using this culture during mail merge.
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
// Execute mail merge.
doc.MailMerge.Execute(new string[] { "Date" }, new object[] { DateTime.Now });
// Restore the original culture.
Thread.CurrentThread.CurrentCulture = currentCulture;
doc.Save(dataDir + "Field.ChangeLocale_out.doc");
// ExEnd:ChangeLocale
Console.WriteLine("\nCulture changed successfully used in formatting fields during update.\nFile saved at " + dataDir);
}
示例8: TryParse_NonMergeField_ReturnsFalse
public void TryParse_NonMergeField_ReturnsFalse()
{
var builder = new DocumentBuilder();
var field = builder.InsertField(" IF \"True\"=\"True\" \"Yes\" \"No\" ");
var fieldStart = field.Start;
MergeField mergeField;
Assert.IsFalse(MergeField.TryParse(fieldStart, out mergeField), "Should not be able to parse an IF field as a merge field.");
}
示例9: MergeDocText_HyperlinkQueryString
public void MergeDocText_HyperlinkQueryString()
{
var doc = new Document();
var builder = new DocumentBuilder(doc);
builder.InsertRun("^ ");
builder.InsertField("HYPERLINK \"https://google.com/q=%7b%7bQuery%7d%7d\"");
builder.InsertRun(" $");
doc.AssertXml(@"
<Document>
<Section>
<Body>
<Paragraph>
<Run>^ </Run>
<FieldStart></FieldStart>
<Run>HYPERLINK ""https://google.com/q=%7b%7bQuery%7d%7d""</Run>
<FieldSeparator></FieldSeparator>
<FieldEnd></FieldEnd>
<Run> $</Run>
</Paragraph>
</Body>
</Section>
</Document>
");
var data = new
{
Query = "Arnold Schwarzenegger",
};
doc.Merge(data);
doc.AssertXml(@"
<Document>
<Section>
<Body>
<Paragraph>
<Run>^ </Run>
<FieldStart></FieldStart>
<Run>HYPERLINK ""</Run>
<Run>https://google.com/q=</Run>
<Run>Arnold%20Schwarzenegger</Run>
<Run>""</Run>
<FieldSeparator></FieldSeparator>
<FieldEnd></FieldEnd>
<Run> $</Run>
</Paragraph>
</Body>
</Section>
</Document>
");
}
示例10: InsertBarcodeIntoFooter
// ExStart:InsertBarcodeIntoFooter
private static void InsertBarcodeIntoFooter(DocumentBuilder builder, Section section, int pageId, HeaderFooterType footerType)
{
// Move to the footer type in the specific section.
builder.MoveToSection(section.Document.IndexOf(section));
builder.MoveToHeaderFooter(footerType);
// Insert the barcode, then move to the next line and insert the ID along with the page number.
// Use pageId if you need to insert a different barcode on each page. 0 = First page, 1 = Second page etc.
builder.InsertImage(System.Drawing.Image.FromFile( RunExamples.GetDataDir_WorkingWithImages() + "Barcode1.png"));
builder.Writeln();
builder.Write("1234567890");
builder.InsertField("PAGE");
// Create a right aligned tab at the right margin.
double tabPos = section.PageSetup.PageWidth - section.PageSetup.RightMargin - section.PageSetup.LeftMargin;
builder.CurrentParagraph.ParagraphFormat.TabStops.Add(new TabStop(tabPos, TabAlignment.Right, TabLeader.None));
// Move to the right hand side of the page and insert the page and page total.
builder.Write(ControlChar.Tab);
builder.InsertField("PAGE");
builder.Write(" of ");
builder.InsertField("NUMPAGES");
}
示例11: Run
public static void Run()
{
// ExStart:InsertField
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithFields();
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField(@"MERGEFIELD MyFieldName \* MERGEFORMAT");
dataDir = dataDir + "InsertField_out.docx";
doc.Save(dataDir);
// ExEnd:InsertField
Console.WriteLine("\nInserted field in the document successfully.\nFile saved at " + dataDir);
}
示例12: Main
static void Main(string[] args)
{
string mypath = "";
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Create the headers.
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Write("Header Text goes here...");
//add footer having current date
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
builder.InsertField("Date", "");
doc.UpdateFields();
doc.Save(mypath + "Insert Headers and Footers.doc");
}
示例13: Main
static void Main(string[] args)
{
Document doc = new Document("../../data/document.doc");
// Enter a dummy field into the document.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField("MERGEFIELD Field");
// GetText will retrieve all field codes and special characters
Console.WriteLine("GetText() Result: " + doc.GetText());
string text = doc.GetText();
text = text.Replace(ControlChar.Cr, ControlChar.CrLf);
Console.WriteLine("Replaced text Result: " + text);
}
示例14: Run
public static void Run()
{
// ExStart:ExtractTextOnly
Document doc = new Document();
// Enter a dummy field into the document.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField("MERGEFIELD Field");
// GetText will retrieve all field codes and special characters
Console.WriteLine("GetText() Result: " + doc.GetText());
// ToString will export the node to the specified format. When converted to text it will not retrieve fields code
// Or special characters, but will still contain some natural formatting characters such as paragraph markers etc.
// This is the same as "viewing" the document as if it was opened in a text editor.
Console.WriteLine("ToString() Result: " + doc.ToString(SaveFormat.Text));
// ExEnd:ExtractTextOnly
}
示例15: Run
public static void Run()
{
// ExStart:InsertMergeFieldUsingDOM
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithFields();
Document doc = new Document(dataDir + "in.doc");
DocumentBuilder builder = new DocumentBuilder(doc);
// Get paragraph you want to append this merge field to
Paragraph para = (Paragraph)doc.GetChildNodes(NodeType.Paragraph, true)[1];
// Move cursor to this paragraph
builder.MoveTo(para);
// We want to insert a merge field like this:
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" }
// Create instance of FieldMergeField class and lets build the above field code
FieldMergeField field = (FieldMergeField)builder.InsertField(FieldType.FieldMergeField, false);
// { " MERGEFIELD Test1" }
field.FieldName = "Test1";
// { " MERGEFIELD Test1 \\b Test2" }
field.TextBefore = "Test2";
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 }
field.TextAfter = "Test3";
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m" }
field.IsMapped = true;
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" }
field.IsVerticalFormatting = true;
// Finally update this merge field
field.Update();
dataDir = dataDir + "InsertMergeFieldUsingDOM_out.doc";
doc.Save(dataDir);
// ExEnd:InsertMergeFieldUsingDOM
Console.WriteLine("\nMerge field using DOM inserted successfully.\nFile saved at " + dataDir);
}