使用iTextSharp将某些TIF压缩转换为PDF的问题

时间:2015-04-08 19:20:07

标签: itextsharp itext

我正在使用iTextSharp转换&将单页TIF文件拼接成多页PDF文件。单页TIF文件具有不同的位深度和压缩。

这是代码 -

private void button1_Click(object sender, EventArgs e)
{
    List<string> TIFfiles = new List<string>();
    Document document;
    PdfWriter pdfwriter;
    Bitmap tifFile;
    pdfFilename = <file path>.PDF;
    TIFfiles = <load the path to each TIF file in this array>;

    //Create document 
    document = new Document();

    // creation of the different writers
    pdfwriter = PdfWriter.GetInstance(document, new System.IO.FileStream(pdfFilename, FileMode.Create));

    document.Open();
    document.SetMargins(0, 0, 0, 0);

    foreach (string file in TIFfiles)
    {

        //load the tiff image  
        tifFile = new Bitmap(file);

        //Total number of pages

        iTextSharp.text.Rectangle pgSize = new iTextSharp.text.Rectangle(tifFile.Width, tifFile.Height);
        document.SetPageSize(pgSize);
        document.NewPage();

        PdfContentByte cb = pdfwriter.DirectContent;

        tifFile.SelectActiveFrame(FrameDimension.Page, 0);
        iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(tifFile, ImageFormat.Tiff);

        // scale the image to fit in the page
        img.SetAbsolutePosition(0, 0);
        cb.AddImage(img);

    }

    document.Close();
}

这段代码效果很好,缝线&amp;将tif转换为PDF。问题在于处理某些类型的TIF时创建的处理时间和pdf文件大小。

例如

原始TIF - &gt; B&amp; W /比特深度1 /压缩CCITT T.6 - &gt;处理速度更快,PDF文件大小是TIF文件大小的1.1倍。

原始TIF - &gt;颜色/位深度8 /压缩LZW - &gt;处理速度更快,PDF文件大小是TIF文件大小的1.1倍。

原始TIF - &gt;颜色/位深度24 /压缩JPEG - &gt; 处理,PDF文件大小 ~12.5x次 TIF文件大小。

为什么不转换颜色/位深度24 /压缩JPEG文件会产生与其他tif文件类似的结果?

此外,此问题仅适用于iTextSharp。我有一位同事使用Java-iText测试同一组TIF样本,结果PDF的尺寸较小(1.1倍)并且处理速度更快。

不幸的是,我需要使用.Net进行这种TIF到PDF的转换,所以我很难使用iTextSharp。 有关如何使这些压缩JPEG TIF文件创建更小尺寸PDF的任何想法/建议,就像对其他TIF压缩一样吗?

感谢您的帮助!

此致 AG

0 个答案:

没有答案