1

開いて少し変更しようとしている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();
        }
4

1 に答える 1

3

MemoryStream をバイト配列に変換して保存する前に、PdfStamper を閉じます。あなたのやり方では、pdfはまだストリームで完成していません。

PS:スタンパーを閉じてもストリームが閉じないようにするには、使用します

stamper.Writer.CloseStream = false
于 2012-10-26T04:39:08.240 に答える