省略 NUMPAGES Aspose .net 上的最后一页
Omit last page on NUMPAGES Aspose .net
我正在 ASPOSE .Net 中寻找减少 NUMPAGES 的解决方案。原因是我不想计算文档的最后一页。到目前为止,这是我尝试过的:
builder.Write("Page ");
builder.InsertField("Page", "");
builder.Write(" of ");
builder.InsertField("NUMPAGES", $"{(doc.PageCount - 1)}");
// Another try in separate build
builder.InsertField("NUMPAGES - 1", "");
// Another try in separate build
builder.InsertField("NUMPAGES", "NUMPAGES - 1");
文档要么不显示任何内容,要么也计算最后一页。
您应该使用公式和嵌套的 NUMPAGES 字段来获得所需的输出。 MS Word 文档中的域代码应如下所示:
{={NUMPAGES}-1}
。要使用 Aspose.Words 插入此类字段,您可以使用如下代码:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert formula field
Field formula = builder.InsertField("=", "");
// Move document builder inside field code of the inserted field
// And put NUMPAGES field in it.
builder.MoveTo(formula.Separator);
builder.InsertField("NUMPAGES");
builder.Write("-1");
doc.UpdateFields();
doc.Save(@"C:\Temp\out.docx");
请参阅 Aspose.Words 文档以了解 how to work with fields。
我正在 ASPOSE .Net 中寻找减少 NUMPAGES 的解决方案。原因是我不想计算文档的最后一页。到目前为止,这是我尝试过的:
builder.Write("Page ");
builder.InsertField("Page", "");
builder.Write(" of ");
builder.InsertField("NUMPAGES", $"{(doc.PageCount - 1)}");
// Another try in separate build
builder.InsertField("NUMPAGES - 1", "");
// Another try in separate build
builder.InsertField("NUMPAGES", "NUMPAGES - 1");
文档要么不显示任何内容,要么也计算最后一页。
您应该使用公式和嵌套的 NUMPAGES 字段来获得所需的输出。 MS Word 文档中的域代码应如下所示:
{={NUMPAGES}-1}
。要使用 Aspose.Words 插入此类字段,您可以使用如下代码:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert formula field
Field formula = builder.InsertField("=", "");
// Move document builder inside field code of the inserted field
// And put NUMPAGES field in it.
builder.MoveTo(formula.Separator);
builder.InsertField("NUMPAGES");
builder.Write("-1");
doc.UpdateFields();
doc.Save(@"C:\Temp\out.docx");
请参阅 Aspose.Words 文档以了解 how to work with fields。