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

C# 使用itextsharp从多页pdf制作1页pdf,c#,.net,pdf,itextsharp,C#,.net,Pdf,Itextsharp,我有一个pdf,我想把它做成几个1页的pdf,其中原始pdf中的每一页现在都是它自己的pdf文档。我正在尝试使用itextsharp来实现这一点,但我甚至在开始时都遇到了一些困难 我走错方向了吗?有人知道我会怎么做吗 非常感谢 有一个不同的库,可能更适合于此。您可以打开PDFDocument对象,逐个浏览每个页面,将其提取到自己的单独PDF文档中。有两种不同的命令行工具可以实现这一点,这两种工具都适用于任何可用的主要操作系统平台 pdftk 命令行示例: pdftk input.pdf burs

我有一个pdf,我想把它做成几个1页的pdf,其中原始pdf中的每一页现在都是它自己的pdf文档。我正在尝试使用itextsharp来实现这一点,但我甚至在开始时都遇到了一些困难

我走错方向了吗?有人知道我会怎么做吗


非常感谢

有一个不同的库,可能更适合于此。您可以打开PDFDocument对象,逐个浏览每个页面,将其提取到自己的单独PDF文档中。

有两种不同的命令行工具可以实现这一点,这两种工具都适用于任何可用的主要操作系统平台

pdftk 命令行示例:

pdftk input.pdf burst output page_%04d-from-input.pdf
gs \
   -o page_%04d-from-input.pdf \
   -sDEVICE=pdfwrite \
    input.pdf
鬼书 命令行示例:

pdftk input.pdf burst output page_%04d-from-input.pdf
gs \
   -o page_%04d-from-input.pdf \
   -sDEVICE=pdfwrite \
    input.pdf
注意事项:这是Ghostscript的最新版本,它支持
%04d
的命令行语法,用于页面不同的输出文件+名称

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

新的Ghostscript方法速度稍慢,但其优点是,如果您需要,它可以应用许多其他PDF处理功能

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。将源页面导入其中,然后将其添加到文档中并保存。

我一时记不起代码,但当我这样做的时候,代码并不多。如果没有其他人的话,我明天就把它发出去。@TonyHopkinson,谢谢你,我将不胜感激。我想我可能在离开之前就已经解决了,但我不得不匆匆离开。谢谢你的帖子。请原谅我的天真,因为我对.NET相当陌生,但我能将这些脚本合并到我的网站吗?啊。。。我现在才知道你的[itextsharp]标签。因此,您希望以编程方式执行此操作。。。我很确定您也可以从itextsharp调用“外部”命令行,但您可能也更喜欢使用lib。就像@NYSystemAnalyst建议的那样。。。