#c# #pdf #merge #itextsharp
#c# #PDF #слияние #itextsharp
Вопрос:
Мы пытаемся объединить два PDF-файла с номерами страниц в новый PDF-файл. Мы хотим, чтобы новый PDF-файл начинался с номера страницы от 1, например
- Страницы PDF сортируются следующим образом 1,2,3,4,5
- Страницы PDF сортируются следующим образом 1,2,3,4,5
Объединенный PDF-файл должен иметь номер страницы 1,2,3,4,5,6,7,8,9,10, а другие старые метки страниц не должны отображаться на вновь объединенном PDF-файле.
Это наш пример кода, но метки не отображаются на странице.
string output_file = "~/output/output.pdf";
Document document = new Document();
using (var inputPdfStream = new FileStream(@"C:Test.pdf", FileMode.Open))
{
PdfReader reader = new PdfReader(inputPdfStream);
PdfReader.unethicalreading = true;
using (PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Server.MapPath(output_file), FileMode.Create)))
{
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
for (int i = 1; i <= reader.NumberOfPages; i )
{
page =writer.GetImportedPage(reader, i);
document.NewPage();
cb.AddTemplate(page, 0, 0);
PdfPageLabels oLabel = new PdfPageLabels();
oLabel.AddPageLabel(i, PdfPageLabels.DECIMAL_ARABIC_NUMERALS);
writer.PageLabels = oLabel;
}
document.Close();
}
}
Комментарии:
1. Вы уверены, что не путаете метки страниц (которые представляют собой некоторые виды метаданных страницы, отображаемые, например, Adobe Reader в
page
поле в верхней части документа) и номера страниц (которые записываются непосредственно в документе, как и любой другой фрагмент текста в указанном документе)?2. Я думаю, что Алексис права. Этот вопрос следует классифицировать как «не имеющий ответа».
3. О , извините ! Да, мы только что это поняли. Мы думали, что PageLabel совпадает с номером страницы. Есть ли у вас какое-либо мнение по изменению номера страницы в формате pdf?
4. Для этого вам нужно будет знать абсолютное положение номера страницы и поставить на нем штамп с обновленным номером страницы.