對於Bruno { 這不是「我有普通的PDF文件,我想在PDF的末尾插入空白頁使用itext LIBRARY,沒有擾亂PDF內容「。C#在使用iTextSharp的PDF中的每頁後插入一個空白頁
我試圖在源PDF中的每個頁面之後添加一個空白頁面 - 而不僅僅是源PDF文檔末尾的1個空白頁面。 } 使用C#(不是Java) - 有誰知道如何插入一個空白頁面(最好是A4-肖像8.5 x 11)在使用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()'方法插入空白頁。 –
@布魯諾 - 我沒有在他們的網站上看到一個關於這個特定問題的官方iTextSharp示例。你會如此友善提供一個鏈接? – Scott
有關官方網站的示例,請參見[如何將空白頁面添加到Java中的現有PDF?](http://developers.itextpdf.com/question/how-add-blank-pages-existing-pdf-java )在大寫情況下更改一些小寫字母(例如將'close()'更改爲'Close()'和將insertPage()更改爲'InsertPage()'),並且您有解決方案。 (請不要告訴我做這樣的改變很困難。) –