【问题标题】:iTextSharp modify pdf propertiesiTextSharp 修改 pdf 属性
【发布时间】:2012-10-26 04:23:18
【问题描述】:

我有一个 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();
        }

【问题讨论】:

    标签: c# .net itextsharp


    【解决方案1】:

    在将 MemoryStream 转换为字节数组并保存之前关闭 PdfStamper。 按照您的操作方式,pdf 尚未在流中完成。

    PS:为了防止关闭压模同时关闭流,使用

    stamper.Writer.CloseStream = false
    

    【讨论】:

    • 当我这样做时,流也被关闭,这对从中提取 byte[] 没有帮助。
    • 这实际上并没有给出错误,但似乎没有应用 PdfWriter.PrintScalingNone 首选项。
    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多