【问题标题】:compressing pdf file makes it bigger压缩pdf文件使其变大
【发布时间】:2013-04-06 14:59:34
【问题描述】:

我压缩上传的.pdf 文件并将它们保存到服务器的文件系统。一切正常,但文件变大了,从 30kb 到 48kb。我可能做错了什么?这是我压缩上传文件的代码部分:

FileStream sourceFile = System.IO.File.OpenRead(filePath);
FileStream destFile = System.IO.File.Create(zipPath);
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);

try
{
    int theByte = sourceFile.ReadByte();
    while (theByte != -1)
    {
        compStream.WriteByte((byte)theByte);
        theByte = sourceFile.ReadByte();
    }
}

【问题讨论】:

    标签: asp.net-mvc-3 gzipstream


    【解决方案1】:

    我想问题出在GZipLib 这里。我改用DotNetZip,文件现在按预期变小了。可以here下载。

    【讨论】:

      【解决方案2】:

      System.IO.Compression..::.DeflateStream 和 System.IO.Compression..::.GZipStream 类的压缩算法得到了改进,因此已经压缩的数据不再膨胀。这导致更好的压缩比。此外,压缩流的 4 GB 大小限制已被删除。

      已在 .NET 4 中修复。

      【讨论】:

        【解决方案3】:

        我做错了什么?

        PDF 文件标准已经提供了不同部分的压缩。所以你得到的可能是一个已经压缩的文件。您知道当您尝试压缩压缩文件时会发生什么吗?这就像你试图压缩一个 ZIP 文件一样:有点无用的努力。

        【讨论】:

        • 如果我在文件系统中手动压缩同一个文件,它会变小。
        猜你喜欢
        • 2010-12-19
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        • 2021-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多