Как вставить пользовательский номер страницы в Aspose.Слова
Я хочу добавить пользовательские номера страниц (например,1/2, 2/2) в документ word с помощью Aspose.Слова. Но я не смог найти ни одного образца для языка c#. Я попытался перезаписать нижний колонтитул, но не смог дать формат номерам страниц.
Пожалуйста, помогите!
Спасибо!
Править
После того,как я попробовал первый ответ, он работал как то, что я хочу, но возникла другая проблема. I добавление дочерних документов в основной документ. Я могу только форматировать номер основного документа. Дочерние документы по-прежнему имеют обычную страницу число.
Вот пример кода;
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;
Comments