Как вставить пользовательский номер страницы в Aspose.Words
Я хочу добавить пользовательские номера страниц (например, 1/2,2/2) в документ Word с помощью Aspose.Words. Но я не смог найти образец для языка C#. Я пытался переписать нижний колонтитул, но я не мог дать формат номерам страниц. Пожалуйста, помогите! Спасибо!
редактировать
После того, как я попробовал первый ответ, это сработало так, как я хочу, но возникла другая проблема. Я добавляю дочерние документы в основной документ. Я могу только форматировать номер основного документа. Дочерние документы по-прежнему имеют обычный номер страницы. Вот образец кода;
public void AddChildDocs (System.IO.Stream parentStream, List<System.IO.Stream> childStreams)
{
doc = new Aspose.Words.Document(parentStream);
if (Items.Count > 0)
{
WordReplacer evaluator = new WordReplacer(this);
doc.Range.Replace(new Regex(ReplaceRegex), evaluator, false);
}
foreach (var item in childStreams)
{
Aspose.Words.Document childDoc = new Aspose.Words.Document(item);
if (Items.Count > 0)
{
WordReplacer evaluator = new WordReplacer(this);
childDoc.Range.Replace(new Regex(ReplaceRegex), evaluator, false);
}
doc.AppendDocument(childDoc, ImportFormatMode.KeepSourceFormatting);
}
DocumentBuilder builder = new DocumentBuilder(doc);
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
builder.InsertField("PAGE", "");
builder.Write(" / ");
builder.InsertField("NUMPAGES", "");
}
2 ответа
Вы можете получить представление с этой страницы в документации Aspose. Ниже приведен пример кода, взятый с той же страницы, но связанный только с пользовательскими номерами страниц.
String src = dataDir + "Page numbers.docx";
String dst = dataDir + "Page numbers_out.docx";
// Create a new document or load from disk
Aspose.Words.Document doc = new Aspose.Words.Document(src);
// Create a document builder
Aspose.Words.DocumentBuilder builder = new DocumentBuilder(doc);
// Go to the primary footer
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
// Add fields for current page number
builder.InsertField("PAGE", "");
// Add any custom text
builder.Write(" / ");
// Add field for total page numbers in document
builder.InsertField("NUMPAGES", "");
// Import new document
Aspose.Words.Document newDoc = new Aspose.Words.Document(dataDir + "new.docx");
// Link the header/footer of first section to previous document
newDoc.FirstSection.HeadersFooters.LinkToPrevious(true);
doc.AppendDocument(newDoc, ImportFormatMode.UseDestinationStyles);
// Save the document
doc.Save(dst);
Я работаю с Aspose в качестве разработчика евангелиста.
Вот код для установки пользовательского номера страницы в aspose.word
, когда вы устанавливаете поля страницы и номер начальной страницы, она автоматически получает следующую страницу, когда эта конкретная область страницы заканчивается. Попробуйте это будет работать...
section.PageSetup.PaperSize = PaperSize.Letter;
section.PageSetup.LeftMargin = 10;
section.PageSetup.RightMargin = 10;
section.PageSetup.TopMargin = 00;
section.PageSetup.BottomMargin = 0;
section.PageSetup.HeaderDistance = 50;
section.PageSetup.FooterDistance = 50;
section.PageSetup.Borders.Color = Color.Black;
section.PageSetup.PageStartingNumber = 1;