使用itextsharp从多页pdf制作1页pdf

时间:2012-07-05 19:55:57

标签: c# .net pdf itextsharp

我有一个pdf,我想制作几个1页的pdf,其中原始pdf中的每个页面现在都是它自己的pdf文档。我试图使用itextsharp来做这件事,但即使开始也有一些困难。

我是以错误的方式来做这件事的吗?有人知道我会怎么做吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

有一个不同的库,PDFSharp,可能更适合这个。您可以打开PDFDocument对象,并单独浏览每个页面,将其解压缩为单独的PDF文档。

答案 1 :(得分:1)

有两种不同的命令行工具可以做到这一点,无论是对于任何可用的主要操作系统平台。

PDFTK

示例命令行:

pdftk input.pdf burst output page_%04d-from-input.pdf

Ghostscript的

示例命令行:

gs \
   -o page_%04d-from-input.pdf \
   -sDEVICE=pdfwrite \
    input.pdf

警告:这是Ghostscript的最新版本,它支持%04d的命令行语法,用于页面不同的输出文件+名称。

pdftk无法在此过程中执行任何PDF操作,速度非常快。

新的Ghostscript方法有点慢,但它的优势在于,如果需要,它可以应用许多其他PDF处理功能。

答案 2 :(得分:1)

using (FileStream fs = new FileStream(argPdfFileName, FileMode.Create))
{
  Document doc = new Document(argReader.GetPageSize(argPdfPageNumber));
  PdfCopy copy = new PdfCopy(doc, fs);
  doc.Open();
  PdfImportedPage page = copy.GetImportedPage(argReader, argPdfPageNumber);
  copy.AddPage(page);
  doc.Close();
}

从一些工作代码中删除了这个。 argReader是一个指向源文档的PdfReader实例。 argPdfPageNumber是有问题的页面编号。 基本上你只是创建一个新的PDF格式。将源页面导入其中,然后将其添加到文档中并保存。