【发布时间】:2020-01-18 09:48:52
【问题描述】:
我正在根据用户指定的顺序覆盖 pdf 文件中的页面。我正在尝试以一种方式设置我的代码,即从文件中选择要保留的页面,将这些页面作为对象存储在内存中,完全覆盖同一个文件,然后将这些页面写回文件,然后附加为用户需要。
PdfReader reader = new PdfReader("test.pdf");
reader.SelectPages("1-5"));
PdfStamper stamper = new PdfStamper(reader, new
FileStream("test.pdf", FileMode.Create));
我遇到的问题是 PdfStamper 无法初始化,因为它要用于写入的文件已经为 PdfReader 打开。如何将 PdfReader 中的页面读入内存,以便关闭它,然后在清除后写入同一个文件?
【问题讨论】:
-
为什么不使用不同的文件名?
-
它是用于扫描软件的,所以如果第 4 页出现卡纸或其他问题,那么我需要保留所有文件直到该文件,删除第 4 页,然后在新扫描的页面进入时附加它们。
-
如何将原始文件读入内存(字节数组)并从该数组初始化pdf阅读器?这样文件就不会被锁定。但是,显然,如果在写入过程中发生某些事情,如果文件不再存在,您将没有任何副本......