Преобразование PDF в JPG как качество Photoshop - Коммерческая библиотека C ++ / Delphi - PullRequest
10 голосов
/ 20 февраля 2012

Для реализации приложения для переворачивания страниц на базе Windows мне нужно иметь возможность конвертировать большое количество страниц PDF в JPG хорошего качества, а не только в миниатюры.

Цель состоит в том, чтобы добиться наилучшего качества / размера файла для этого, как это делает Photoshop Save for Web.

В настоящее время я использую Datalogics Adobe PDF Library SDK, который, кажется, не в состоянии выполнить эту задачу. Поэтому я ищу альтернативную коммерческую библиотеку C ++ или Delphi, которая обеспечивает хорошее качество / размер / скорость.

После некоторого поиска здесь, я заметил, что большинство сообщений о GS & Imagekick, которые я также тестировал, но меня не устраивает вывод и скорость.

Цель - импортировать PDF-файлы с разрешением 300 точек на дюйм и конвертировать их с качеством JPG 50, высотой 1500 пикселей и размером вывода 300-500 КБ.

Если бы кто-нибудь мог указать хорошую библиотеку для этой задачи, я был бы очень признателен.

Ответы [ 5 ]

2 голосов
/ 20 февраля 2012

Gnostice PDFtoolKit VCL может быть кандидатом.Преобразовать в JPEG является одним из вариантов.

1 голос
/ 22 февраля 2012

Atalasoft DotImage (с надстройкой растеризатора PDF) сделает это (я там работаю над технологиями PDF).Вы будете работать на языке C # (или другом .NET):

ConvertToJpegs(string outfileStem, Stream pdf)
{
    JpegEncoder encoder = new JpegEncoder();
    encoder.Quality = 50;

    int page = 1;
    PdfImageSource source = new PdfImageSource(pdf);
    source.Resolution = 300; // sets the rendering resolution to 200 dpi
    // larger numbers means better resolution in the image, but will cost in
    // terms of output file size - as resolution increases, memory used increases
    // as a function of the square of the resolution, whereas compression only
    // saves maybe a flat 30% of the total image size, depending on the Quality
    // setting on the encoder.

    while (source.HasMoreImages()) {
        AtalaImage image = source.AcquireNext();
        // this image will be in either 8 bit gray or 24 bit rgb depending
        // on the page contents.

        try {
            string path = String.Format("{0}{1}.jpg", outFileStem, page++);
            // if you need to resample the image, this is the place to do it
            image.Save(path, encoder, null);
        }
        finally {
            source.Release(image);
        }
    }
}
1 голос
/ 20 февраля 2012

Я всегда рекомендую Graphics32 для всех ваших потребностей в обработке изображений;у вас есть несколько ресамплеров на выбор.Однако я не думаю, что он может читать файлы PDF в виде изображений.Но если вы можете создать большое изображение самостоятельно, это может быть хорошим выбором.

0 голосов
/ 21 февраля 2012

Посмотрите на DynaPDF .Я знаю, что это довольно дорого, но вы можете попробовать стартовый пакет.

PS: перед покупкой продукта, пожалуйста, убедитесь, что он соответствует вашим потребностям.

0 голосов
/ 20 февраля 2012

Существует также Quick PDF Library

...