compressing pdf file makes it bigger

我的梦境 提交于 2019-12-12 03:55:56

问题


I compress the uploaded .pdf files and save them to server's file system. Everything works well, but the file gets bigger, from 30kb to 48kb. What could I be doing wrong? Here's the code part I compress the uploaded file:

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();
    }
}

回答1:


I guess the problem is with GZipLib here. I used DotNetZip instead and file gets smaller as expected now. It can be downloaded here.




回答2:


The compression algorithms for the System.IO.Compression..::.DeflateStream and System.IO.Compression..::.GZipStream classes have improved so that data that is already compressed is no longer inflated. This results in much better compression ratios. Also, the 4-gigabyte size restriction for compressing streams has been removed.

It has been fixed in .NET 4.




回答3:


What could I be doing wrong?

The PDF file standard already provides compression of different parts. So what you get is probably an already compressed file. And you know what happens when you try to compress a compressed file? It's the same as if you were trying to compress a ZIP file: kinda useless effort.



来源:https://stackoverflow.com/questions/15852405/compressing-pdf-file-makes-it-bigger

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!