我试过以下方法。它似乎使每个页面后面的空白页的方向和大小是源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;
}
正如我在评论中解释的那样,这个问题是如何在Java中向现有的PDF添加空白页的重复?
您应该使用pdfstamper
而不是pdfwriter
(这在StackOverflow的不同回答中已经解释过无数次了)。使用insertpage()
方法,可以添加任意大小的页:
PdfReader reader = new PdfReader(src);
PdfStamper stamper=new PdfStamper(reader, new FileStream(dest, FileMode.Create));
int total = reader.NumberOfPages + 1
for (int pageNumber = total; pageNumber > 0; pageNumber--) {
stamper.InsertPage(pageNumber, PageSize.A4);
}
stamper.Close();
reader.Close();
请注意,我以相反的顺序添加页面。这是基本逻辑:添加页面会更改页面计数,如果从页面1
切换到total
,则更难跟踪pagenumber
。相反的方向更容易。
我正在尝试使用iTextSharp循环浏览PDF文档并删除所有空白页。我有代码检查每个页面是否为空,并将其写入新的PDF,但在关闭新文档时,我收到错误“文档没有页面”。但是,在文件夹中创建的文件确实具有我所期望的文件大小。 这是我目前的代码:
目前正在用C#中的ITextSharp构建一个PDF。PDF由三个“部分”组成,一个封面,一个可以跨越多个页面的表格,以及一个最终页面。拥有该表的页面需要在第一页包含页眉,并在所有包含页眉的页面上包含页脚,但封面和最后一页不需要。 我使用XMLWorker构建页面,但这并不重要。构建页面的代码如下: 我遇到的麻烦是确定一种方法来防止页脚出现在结束页上。我正在重写OnEndPage以创建页脚。是否有
在java Web应用程序中使用PDFBox。我有一个代表多页绘图或蓝图的PDF文件。还有其他PDF文件表示对父文件的修改。我想将这些页面插入到第1页和第2页之间的父PDF文件中。 我找到了关于合并和添加页面的文章,但不完全是我需要的。 一些指导会很有帮助。 到目前为止我的代码:
我有一个模板分裂成3个文件(头,正文和页脚),所有在HTML。我需要导出一个pdf文件,使用 itextsharp lib。 我使用折叠代码来实现这一点。
我需要将N个PDF文件合并成一个。我先创建一个空白文件 稍后,我将遍历html字符串数组 我不太明白PdfWriter和PDFCopy之间的区别。
我正在使用PDFbox下载PDF。我想在中间添加一些新页面。 此代码在PDF结尾处插入新页面。如何在另一个位置插入页面?