如何通过 iTextSharp 编辑 PDF 的大矩形?
How to redact a large rectangle of a PDF by iTextSharp?
我尝试使用 iTextSharp 5.5.9 编辑 PDF 文件。问题是当我在 PDF 上编辑一个大矩形字段时,它无法保存文件。这是代码:
PdfReader reader1 = new PdfReader(new FileStream(DesFile, FileMode.Open));
Stream fs = new FileStream(DesFile, FileMode.Open);
PdfStamper stamper = new PdfStamper(reader1, fs);
List<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(77f,77f,600f,600f), BaseColor.GRAY));
PdfCleanUpProcessor cleaner = new PdfCleanUpProcessor(cleanUpLocations, stamper);
cleaner.CleanUp();
stamper.Close();
reader1.Close();
我使用 http://sox.sourceforge.net/sox.pdf 来测试,如果我将 Rectangle 更改为
new Rectangle(77f,77f,200f,200f)
它会很好用...但是当我变回较大的矩形时:
new Rectangle(77f,77f,600f,600f)
它停止工作了。请帮忙!
iText 开发通常会警告不要标记到基础 PdfReader
从中读取的同一文件。如果按照 OP 的代码完成,读写操作会互相干扰,结果不可预测。
使用不同的文件读取和写入后,OP 的解决方案开始起作用。
如果首先将源文件作为 byte[]
读入内存,然后从该数组构造 PdfReader
,则可以使用与 [=13= 的输出相同的文件] 在 reader 上运行。但也不推荐这种模式:如果在盖章过程中出现问题,原始文件内容可能已经被删除,所以你既没有未盖章的原始PDF,也没有盖章结果PDF。
不得不向客户解释他的文件已经永远消失了可能会很尴尬...
我尝试使用 iTextSharp 5.5.9 编辑 PDF 文件。问题是当我在 PDF 上编辑一个大矩形字段时,它无法保存文件。这是代码:
PdfReader reader1 = new PdfReader(new FileStream(DesFile, FileMode.Open));
Stream fs = new FileStream(DesFile, FileMode.Open);
PdfStamper stamper = new PdfStamper(reader1, fs);
List<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(77f,77f,600f,600f), BaseColor.GRAY));
PdfCleanUpProcessor cleaner = new PdfCleanUpProcessor(cleanUpLocations, stamper);
cleaner.CleanUp();
stamper.Close();
reader1.Close();
我使用 http://sox.sourceforge.net/sox.pdf 来测试,如果我将 Rectangle 更改为
new Rectangle(77f,77f,200f,200f)
它会很好用...但是当我变回较大的矩形时:
new Rectangle(77f,77f,600f,600f)
它停止工作了。请帮忙!
iText 开发通常会警告不要标记到基础 PdfReader
从中读取的同一文件。如果按照 OP 的代码完成,读写操作会互相干扰,结果不可预测。
使用不同的文件读取和写入后,OP 的解决方案开始起作用。
如果首先将源文件作为 byte[]
读入内存,然后从该数组构造 PdfReader
,则可以使用与 [=13= 的输出相同的文件] 在 reader 上运行。但也不推荐这种模式:如果在盖章过程中出现问题,原始文件内容可能已经被删除,所以你既没有未盖章的原始PDF,也没有盖章结果PDF。
不得不向客户解释他的文件已经永远消失了可能会很尴尬...