合并pdf文件,原来不是想的那么难
2008-01-18 11:46
344 查看
这两天要用到itext 去合并pdf,到网上找了些资料,看了些文档,对我有了很大的帮助,不过找到的多是有些问题的,虽然合并成了,但是里面的数据都丢了,于是又去更深一步的了解itext,终于让我找到了!!
这个是我原来的代码,可以合并,但是会丢数据
PdfReader reader;
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFile, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < pdfs.Length; i++)
{
reader = new PdfReader(pdfs[i]);
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++)
{
document.NewPage();
newPage =copy.GetImportedPage(reader,j);
cb.AddTemplate(newPage, 0, 0);
}
}
document.Close();
其实,只有稍微该一下就可以正确了,但没什么前例,就只能自救了
try
{
PdfReader reader;
Document document = new Document();
//PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFile, FileMode.Create));
PdfCopy copy = new PdfCopy(document, new FileStream(newFile, FileMode.Create));
document.Open();
// PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < pdfs.Length; i++)
{
reader = new PdfReader(pdfs[i]);
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++)
{
document.NewPage();
newPage =copy.GetImportedPage(reader,j);
// cb.AddTemplate(newPage, 0, 0);
copy.AddPage(newPage);
}
}
document.Close();
}
catch (Exception de)
{
Console.Error.WriteLine(de.Message);
Console.Error.WriteLine(de.StackTrace);
}
这样就可以了!!
这个是我原来的代码,可以合并,但是会丢数据
PdfReader reader;
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFile, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < pdfs.Length; i++)
{
reader = new PdfReader(pdfs[i]);
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++)
{
document.NewPage();
newPage =copy.GetImportedPage(reader,j);
cb.AddTemplate(newPage, 0, 0);
}
}
document.Close();
其实,只有稍微该一下就可以正确了,但没什么前例,就只能自救了
try
{
PdfReader reader;
Document document = new Document();
//PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFile, FileMode.Create));
PdfCopy copy = new PdfCopy(document, new FileStream(newFile, FileMode.Create));
document.Open();
// PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < pdfs.Length; i++)
{
reader = new PdfReader(pdfs[i]);
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++)
{
document.NewPage();
newPage =copy.GetImportedPage(reader,j);
// cb.AddTemplate(newPage, 0, 0);
copy.AddPage(newPage);
}
}
document.Close();
}
catch (Exception de)
{
Console.Error.WriteLine(de.Message);
Console.Error.WriteLine(de.StackTrace);
}
这样就可以了!!
相关文章推荐
- 原来Linux socket不是那么简单
- 地震原来并不是那么遥远
- 策划原来不是那么简单
- NOJ[1587] 一群不学好的NBUT ACMers竟然作死要去爬山?晚上还困在山上回不去2333而且竟然只有一个手电筒,(名字那么长)不是作死是什么
- c++的字符串合并不是靠+号连接的·~郁闷~现在才明白~丢人了~strcpy()strcat()
- 原来没那么复杂
- 电脑安装了WPS之后,文档无法用原来的office打开,右键新建的文档是wps类型的而不是office类型的解决方案
- 404 其实也不是那么讨厌
- 翻译确实不是那么容易的
- 不是原型继承那么简单!!prototype的深度探索
- 如果你说的大家都爱听,你行的大家都爱看,那么你话再多都不是问题。
- 简单点儿、简单点儿、再简单点儿,其实世界可以不是我们想象的那么复杂
- 技术的贡献率其实并没有你原来想象的那么高
- 区块链风口不是那么容易站的
- 吃一堑长一智,这次亏损让我的头脑开始清醒,理财没有那么容易,不是瞎买买股票、基金啥的就叫会理财了,我要学习的还有很多
- 想“跟”在后面?不是那么简单的事情 推荐
- 超诚实讽刺插画,原来自己已经被科技变得那么病态了
- 转型AI产品经理,原来不需要学那么深的算法和数学模型
- 转型AI产品经理,原来不需要学那么深的算法和数学模型
- 只要深入,一切就不是显得那么困难