You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用iText7转换TIFF为PDF后体积翻倍,求压缩解决办法

使用iText7转换TIFF到PDF时体积翻倍的问题及压缩需求

我在使用iText7将TIFF图片转换为PDF文档时遇到问题:生成的PDF体积是原TIFF的两倍(原TIFF大小为36.930,PDF大小为73.410,TIFF共96页),尝试多种解决方案均无效。我需要将PDF文件体积压缩至与原图片大小相当或更小。

以下是我的实现代码:

private static byte[] ConvertToPDF(byte[] imgeByte, string fileExtension)
{
    try
    {
        using (MemoryStream ExportFile = new MemoryStream())
        {
            using (PdfWriter writer = new PdfWriter(ExportFile, new WriterProperties().SetPdfVersion(PdfVersion.PDF_1_5)
                 .SetCompressionLevel(CompressionConstants.BEST_COMPRESSION).SetFullCompressionMode(true)))
            {
                using (PdfDocument pdfDoc = new PdfDocument(writer, new DocumentProperties()))
                {
                    using (Document document = new Document(pdfDoc, iText.Kernel.Geom.PageSize.A4, true))
                    {
                        iText.IO.Image.ImageData imageData = null;
                        iText.Layout.Element.Image img = null;

                        bool isTIFF = fileExtension.ToLower().Contains("tif");

                        if (isTIFF)
                        {
                            int PagesCount;
                            using (Bitmap currentImg = new Bitmap(new MemoryStream(imgeByte)))
                            {
                                PagesCount = currentImg.GetFrameCount(System.Drawing.Imaging.FrameDimension.Page);

                                for (int i = 1; i <= PagesCount; i++)
                                {
                                    imageData = iText.IO.Image.ImageDataFactory.CreateTiff(imgeByte, false, i, true);
                                    img = new iText.Layout.Element.Image(imageData).SetHorizontalAlignment(HorizontalAlignment.CENTER);
                                    
                                    document.Add(img);

                                    if (i < PagesCount - 1)
                                    {
                                        document.Add(new iText.Layout.Element.AreaBreak(AreaBreakType.NEXT_PAGE));
                                        //pdfDoc.AddNewPage(i+1, iText.Kernel.Geom.PageSize.A4);
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (fileExtension.ToLower().Contains("png"))
                            {
                                imageData = iText.IO.Image.ImageDataFactory.CreatePng(imgeByte);
                            }
                            else if (fileExtension.ToLower().Contains("jpg"))
                            {
                                imageData = iText.IO.Image.ImageDataFactory.CreateJpeg(imgeByte);
                            }
                            else if (fileExtension.ToLower().Contains("pdf"))
                            {
                                return imgeByte;
                            }
                            else
                            {
                                using (Bitmap currentImg = new Bitmap(new MemoryStream(imgeByte)))
                                {
                                    imageData = iText.IO.Image.ImageDataFactory.Create(currentImg, null);
                                }
                            }

                            img = new iText.Layout.Element.Image(imageData)
                                .SetTextAlignment(TextAlignment.JUSTIFIED_ALL);

                            document.Add(img);
                        }
                        writer.Flush();
                        document.Flush();
                        pdfDoc.SetFlushUnusedObjects(true);

                        document.Close();
                        writer.Close();
                        pdfDoc.Close();
                    }
                }
            }
            return ExportFile.ToArray();
        }
    }
    catch (Exception)
    {

        throw;
    }
}

相关图片:
tif图片属性
图片描述

内容的提问来源于stack exchange,提问作者Hitham Yosri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:13:23