Я использую iTextSharp для преобразования & одностраничных файлов TIF в многостраничный файл PDF. Одностраничные файлы TIF имеют разную битовую глубину и сжатие.Проблемы преобразования некоторых сжатий TIF в PDF с использованием iTextSharp
Вот код-
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();
}
Этот код работает хорошо, и стежки & преобразует TIFs в формате PDF. Проблема связана с временем обработки и размером файла PDF, который он создает при обработке определенных типов TIF.
См., Например,
Оригинальный TIF -> B & Глубина W/бит 1/Сжатие CCITT T.6 -> Более быстрая обработка, размер файла PDF ~ 1,1 раза меньше размера файла TIF.
Оригинальный TIF -> Глубина цвета/бит 8/Сжатие LZW -> Более быстрая обработка, размер файла PDF составляет ~ 1,1 раза больше размера файла TIF.
Оригинал TIF -> Цвет/Разрядность 24/Сжатие JPEG ->Slow обработка, размер PDF файла ~ 12.5x раз размером TIF файл.
Почему не конвертируется глубина цвета/бит 24/Файлы сжатия JPEG приводят к аналогичному результату, как и другие файлы tif?
Кроме того, эта проблема касается только iTextSharp. У меня была проверка коллег одного и того же набора образцов TIF с использованием Java-iText, и полученный PDF был меньшего размера (в 1,1 раза) и имел более быструю обработку.
К сожалению, мне нужно использовать .Net для этого преобразования TIF в PDF, поэтому застрял в использовании iTextSharp. Любые идеи/предложения о том, как получить эти файлы сжатия TIF JPEG для создания PDF-файлов меньшего размера, как и для других сжатий TIF?
Цените свою помощь!
С уважением, AG
Какую версию iTextSharp вы используете. С каждой новой версией мы добавили поддержку более TIFF-версий. –
Я использую v5.5.4.0. Если есть более новая версия, чем это, сообщите мне. Я также могу проверить эту версию. – user4765592
5.5.5.0 является последним, но 5.5.4.0 достаточно недавно для обновлений TIFF. Возможно, это то, что должно быть опубликовано в команде поддержки iText, так как не должно быть существенной разницы между iTextSharp и iText. Где они могут связаться с вами, чтобы получить образец файла TIFF, который воспроизводит проблему? –