【发布时间】:2020-02-08 08:50:45
【问题描述】:
我正在尝试使用 iTextSharp 将两个 PDF 文件的内容合并到一个新的 PDF 文件中。我以前在类似情况下使用过 PDFStamper 来完成此操作,但由于某种原因它这次无法正常工作。附加根本不起作用;该文件已创建,但到此代码块结束时大小保持为 0 字节。任何人都可以提供任何帮助,我们将不胜感激。
File.Create(session.getLocalDir() + newPdfFile);
// pasting content from original file to new file
PdfReader reader = new PdfReader(originalFile);
string pageSelection = "1-" + reader.NumberOfPages;
reader.SelectPages(pageSelection);
PdfStamper stamper = new PdfStamper(reader, new FileStream(newPdfFile, FileMode.Append, FileAccess.Write));
stamper.Close();
reader.Close();
// pasting content from temp file to new file
reader = new PdfReader(temp);
pageSelection = "1-" + reader.NumberOfPages;
reader.SelectPages(pageSelection);
stamper = new PdfStamper(reader, new FileStream(newPdfFile, FileMode.Append, FileAccess.Write));
stamper.Close();
reader.Close();
【问题讨论】:
-
在调试器中单步执行时观察到了什么?
-
就是这样,它不会抛出异常或以其他方式指示发生了任何错误。但是原始文件和临时文件都不会发生附加。
-
不清楚为什么结果文件的长度为 0 字节,但是在您尝试时追加将无论如何都不起作用。您不能简单地连接两个 pdf 并希望结果是它们的合并。
-
我不是在询问例外情况。我在问每行代码在执行时是否符合您的期望。如果您的期望只是程序不会崩溃或抛出异常,那么您的代码就可以工作!不过,我怀疑它们的局限性如此之大。每一行的期望应该是特定于该行的。
-
不,它没有按照我的预期工作。就像我在原始帖子中提到的那样,我之前已经使用这种方法成功地附加到了 PDF 中。唯一的区别是我没有使用我明确创建的 PDF,就像我在上面的代码中所做的那样。也许这就是问题所在。但是有没有更好的方法可以将两个 PDF 合并为一个新的?
标签: c# visual-studio pdf itext append