.net 合并多个PDF为一个
时间:2010-09-10 来源:交友乐
开发工具:vs2008
项目内容:将多个pdf文件拼接为一个
引用:
using System;
using System.Collections.Generic;
using System.Web;
using System.IO;
using System.Configuration;
using iTextSharp.text;
using iTextSharp.text.pdf;
itextsharp.dll可以到网上下载
在项目中,生成电子保单并附加条款,为了方便客户保存和阅读,将多个pdf合并为一个。注意这里所有pdf都是纵向的,如果有横向pdf需要调整pdf的参数。为了阅读简单,参数做了适当的简化。
///policyRef保单号
public string GeneratePDF(string policyRef)
{
string FileName = "保单" + policyRef + ".pdf";
Document document = new Document(new Rectangle(0, 0, 594, 828), 0, 0, 0, 0);
FileStream fs = null;
PdfWriter writer = null;
fs = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + "TMP\\" + FileName, FileMode.Create); --生成临时文件
try
{
writer = PdfWriter.GetInstance(document, fs);
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
PdfReader reader;
string URL = "xx.pdf"; --需要读取的pdf地址
reader = new PdfReader(URL);
for (int j = 1; j <= reader.NumberOfPages; j++)
{
--读取每页并重新生成到自己的文件中
document.NewPage();
newPage = writer.GetImportedPage(reader, j);
cb.AddTemplate(newPage, 0, 0);
}
//增加条款
AttachClause(document, writer, cb);
}
finally
{
//关闭所有的句柄
document.Close();
writer.Close();
fs.Close();
}
return FileName;
}
private void AttachClause(Document document, PdfWriter writer, PdfContentByte cb)
{
PdfReader pdfReader;
string URL = System.AppDomain.CurrentDomain.BaseDirectory + "clauses\\clauseLetter.pdf";
pdfReader = new PdfReader(URL);
for (int j = 1; j <= pdfReader.NumberOfPages; j++)
{
document.NewPage();
PdfImportedPage newPage = writer.GetImportedPage(pdfReader, j);
cb.AddTemplate(newPage, 0, 0);
}
}
给朋友网站做个广告,谢谢:
交友乐www.jyoule.com是一个最新的免费婚恋交友平台,使用简单,会员可以免费查看联系方式。交友乐成立于2010年9月,以诚信为基石,以平等为目标,承诺所有会员资料都真实有效,绝不夸大造假,绝不使用付费手段来区分会员等级。目前网站正处于推广期,会员可以免费得到首页推荐的机会。