在特定页面或位置合并PDF文件ASP.NET
我们有一个ASP.NET应用程序,我正在尝试合并两个PDF文件,我们目前正在使用BCL easyPDF7库。我试图在特定位置或页面合并新文件(例如在主文档的第三页之后),但我发现此库中的合并只是在最后附加文件 我们决定使用新的工具PDF4NET,我从PDF4NET的示例代码中观察到,它们还提供合并功能,最终附加到文档中在特定页面或位置合并PDF文件ASP.NET,asp.net,pdf,merge,Asp.net,Pdf,Merge,我们有一个ASP.NET应用程序,我正在尝试合并两个PDF文件,我们目前正在使用BCL easyPDF7库。我试图在特定位置或页面合并新文件(例如在主文档的第三页之后),但我发现此库中的合并只是在最后附加文件 我们决定使用新的工具PDF4NET,我从PDF4NET的示例代码中观察到,它们还提供合并功能,最终附加到文档中 我们有没有办法做到这一点?(通过PDF4NET或BCL easyPDF7)请分享您的观点。我以前使用过iTextSharp,基本上创建了一个新的输出pdf,然后读入新文档并循环浏
我们有没有办法做到这一点?(通过PDF4NET或BCL easyPDF7)请分享您的观点。我以前使用过iTextSharp,基本上创建了一个新的输出pdf,然后读入新文档并循环浏览页面,将页面添加到新的输出文档中。这甚至可以维护每个页面的页面大小和方向信息 以下是将pdf添加到输出的代码:
int pc = pdfReader.NumberOfPages;
int p, rotation;
Rectangle box;
PdfImportedPage page;
for (p = 0; p < pc; p++) {
pageNo++;
page = pdfWriter.GetImportedPage(pdfReader, p + 1);
rotation = pdfReader.GetPageRotation(p + 1);
box = pdfReader.GetPageSizeWithRotation(p + 1);
outputDoc.SetPageSize(box);
outputDoc.NewPage();
if ((rotation == 90) || (rotation == 270)) {
pdfContentByte.AddTemplate(page, 0, -1.0f, 1.0f, 0, 0, box.Height);
} else {
pdfContentByte.AddTemplate(page, 1.0f, 0, 0, 1.0f, 0, 0);
}
}
pdfReader.Close();
int pc=pdfReader.NumberOfPages;
int p,旋转;
矩形盒;
PDF导入页面;
对于(p=0;p
在本例中,pdfReader是引用要添加的源pdf的pdfReader类的实例。这可以是文件、流或字节数组。pdfWriter是作为输出内容的pdfWriter类的新实例
我知道它没有使用PDF4NET或BCL easyPDF7,但希望它能有所帮助。我通过提取页面和创建新文件使它工作起来。我将主文件中的页面提取到索引,索引是我要插入第二个文件的页码 希望它能帮助那些处理PDF4NET并希望在特定页码处合并文件的人
private string MergeFiles(string mainfile, string attachment, string path, int index)
{
var newFile = @"C:\Test\PDF\NewInsertedAt2.pdf";
int mainFilePages, attachFilePages, i, j, k;
PDFFile mainFile = PDFFile.FromFile(mainfile);
PDFFile attachFile = PDFFile.FromFile(attachment);
PDFImportedPage ip = null;
PDFDocument doc = new PDFDocument();
mainFilePages = mainFile.PagesCount;
attachFilePages = attachFile.PagesCount;
for (i = 0; i < index; i++)
{
ip = mainFile.ExtractPage(i);
doc.Pages.Add(ip);
}
for (j = 0; j < attachFilePages; j++)
{
ip = attachFile.ExtractPage(j);
doc.Pages.Add(ip);
}
for (k = i; k < mainFilePages; k++)
{
ip = mainFile.ExtractPage(k);
doc.Pages.Add(ip);
}
doc.Save(newFile);
mainFile.Close();
attachFile.Close();
return newFile;
}
私有字符串合并文件(字符串主文件、字符串附件、字符串路径、int索引)
{
var newFile=@“C:\Test\PDF\NewInsertedAt2.PDF”;
int mainFilePages,attachFilePages,i,j,k;
PDFFile mainFile=PDFFile.FromFile(mainFile);
PDFFile attachFile=PDFFile.FromFile(附件);
PDFImportedPage ip=null;
PDFDocument doc=新PDFDocument();
mainFilePages=mainFile.pagesont;
attachFilePages=attachFile.PageScont;
对于(i=0;i
谢谢分享,这肯定会有帮助。但我们的重点是使用PDF4NET或BCL easyPDF7。我相信iTextSharp确实让这看起来很容易。