我有一个PDF我试图打开并稍微改变(只是更改ViewerPreferences)但似乎无法确定iTextSharp的确切用法。最后保存的文件已损坏。有什么想法吗?
PdfReader reader = new PdfReader(@"C:\4803.pdf");
using (var stream = new MemoryStream())
{
PdfStamper stamper = new PdfStamper(reader, stream);
stamper.ViewerPreferences = PdfWriter.AllowPrinting | PdfWriter.PrintScalingNone;
stream.Position = 0;
byte[] output = LoadFromStream(stream); // Convert it to a byte array
SaveToFile(output, @"C:\4803_out.pdf"); // Save it to a file
stamper.Close();
}
答案 0 :(得分:3)
在将MemoryStream转换为字节数组并保存之前关闭PdfStamper。 你这样做的方式,pdf尚未在流中完成。
PS :为防止压模关闭也关闭流,请使用
stamper.Writer.CloseStream = false