Для Bruno { Это не дубликат «У меня есть обычный PDF-файл, я хочу вставить пустые страницы в конец PDF с помощью itext LIBRARY, без нарушая содержимое PDF ».C# Вставка пустой страницы после каждой страницы в PDF с помощью iTextSharp
Я пытаюсь добавить пустую страницу после каждой страницы в исходном PDF-документе - не только 1 пустая страница в конце исходного документа PDF. } Использование C# (NOT Java) - Кто-нибудь знает, как вставить пустую страницу (желательно A4 - Портрет 8.5 x 11). После каждой страницы в PDF с помощью iTextSharp независимо от размера и ориентации исходного PDF-файла? Каждая страница исходного PDF может иметь разный размер и ориентацию.
Я пробовал следующее. Кажется, чтобы сделать пустую страницу после каждой стр ориентации и размера источника PDF-страницы, но страницы из исходного PDF, кажется, ориентация и размер предыдущей пустой страницы:
private string DocumentWithBlankPagesInserted(string fileName, string userComments)
{
string outputFileName = v.tmp + @"\" + v.tmpDir + @"\" + Guid.NewGuid().ToString() + ".pdf";
Document document = new Document();
try
{
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfReader reader = new PdfReader(fileName);
for (int pageNumber = 1; pageNumber < reader.NumberOfPages + 1; pageNumber++)
{
document.SetPageSize(reader.GetPageSizeWithRotation(pageNumber));
Chunk fileRef = new Chunk();
fileRef.SetLocalDestination(fileName);
PdfImportedPage page1 = writer.GetImportedPage(reader, pageNumber);
Rectangle psize = reader.GetPageSizeWithRotation(pageNumber);
switch (psize.Rotation)
{
case 0:
cb.AddTemplate(page1, 1f, 0, 0, 1f, 0, 0);
break;
case 90:
cb.AddTemplate(page1, 0, -1f, 1f, 0, 0, psize.Height);
break;
case 180:
cb.AddTemplate(page1, -1f, 0, 0, -1f, 0, 0);
break;
case 270:
cb.AddTemplate(page1, 0, 1.0F, -1.0F, 0, psize.Width, 0);
break;
default:
break;
}
document.NewPage();
document.Add(fileRef);
document.NewPage();
}
}
catch (Exception e)
{
throw e;
}
finally
{
document.Close();
}
return outputFileName;
}
Пожалуйста, прекратите использовать неофициальные примеры. Они так ошибаются? Почему вы проигнорируете официальный веб-сайт iText и отдаете предпочтение примерам людей, которые не знают, что в первую очередь касается iText ??? Вставка пустых страниц выполняется с помощью 'PdfStamper' (** NOT **' PdfWriter') и с помощью метода 'InsertPage()'. –
@Bruno - Я не видел Offical iTextSharp Example на своем сайте для этой конкретной проблемы. Вы бы так любезны предоставить ссылку? – Scott
Пример на официальном сайте см. В [Как добавить пустые страницы в существующий PDF-файл в java?] (Http://developers.itextpdf.com/question/how-add-blank-pages-existing-pdf-java) Измените некоторые более низкие случаи в верхних случаях (например, измените 'close()' на 'Close()' и 'insertPage()' на 'InsertPage()'), и у вас есть решение. (Пожалуйста, не говорите мне, что делать такие изменения сложно.) –