Ich versuche etwas zu tun, von dem ich dachte, es wäre ganz einfach, aber es ist nicht so geradlinig und Google hat nicht geholfen.Wie füge ich eine leere Seite mit iTextSharp zu einem PDF hinzu?
Ich verwende iTextSharp, um PDF-Dokumente (Buchstaben) zusammenzuführen, so dass sie alle gleichzeitig gedruckt werden können. Wenn ein Buchstabe eine ungerade Anzahl von Seiten hat, muss ich eine leere Seite anhängen, damit wir die Buchstaben doppelseitig drucken können. Hier
ist die Grundcode I im Moment für alle Buchstaben verschmelzenden:
// initiaise
MemoryStream pdfStreamOut = new MemoryStream();
Document document = null;
MemoryStream pdfStreamIn = null;
PdfReader reader = null;
int numPages = 0;
PdfWriter writer = null;
for int(i = 0;i < letterList.Count; i++)
{
byte[] myLetterData = ...;
pdfStreamIn = new MemoryStream(myLetterData);
reader = new PdfReader(pdfStreamIn);
numPages = reader.NumberOfPages;
// open the streams to use for the iteration
if (i == 0)
{
document = new Document(reader.GetPageSizeWithRotation(1));
writer = PdfWriter.GetInstance(document, pdfStreamOut);
document.Open();
}
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
int importedPageNumber = 0;
while (importedPageNumber < numPages)
{
importedPageNumber++;
document.SetPageSize(reader.GetPageSizeWithRotation(importedPageNumber));
document.NewPage();
page = writer.GetImportedPage(reader, importedPageNumber);
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
}
habe ich versucht, unter Verwendung von:
document.SetPageSize(reader.GetPageSizeWithRotation(1));
document.NewPage();
am Ende der for-Schleife für eine ungerade Anzahl der Seiten ohne Erfolg.
Das Hinzufügen einer Tabelle funktionierte nicht für mich. Vielleicht aufgrund einer neueren Version von ITextSharp. 'Add (new Chunk());' hat für mich funktioniert. – Crispy
Danke für das Update - das war schon eine Weile her. :) – Russell
Ich kann bestätigen, dass für eine neuere Version Sie ein 'Chunk' anstelle einer Tabelle hinzufügen sollten. Arbeitete perfekt! –