Ответ 1
Gnostice PDFtoolKit VCL может быть кандидатом. Преобразование в JPEG является одним из вариантов.
Для реализации приложения с флип-страницей на базе Windows мне нужно иметь возможность конвертировать большое количество PDF-страниц в хорошее качество JPG, а не только миниатюр.
Целью является достижение наилучшего качества/размера файла для этого, как это делает Photoshops Save for Web.
В настоящее время я использую Datalogics Adobe PDF Library SDK, который, похоже, не способен выполнить эту задачу. Таким образом, я ищу альтернативную коммерческую библиотеку С++ или Delphi, которая обеспечивает хорошее качество/размер/скорость.
После некоторого поиска здесь я заметил, что большинство сообщений посвящены GS и Imagekick, которые я также тестировал, но меня не устраивают выходные данные и скорость.
Целью является импорт файлов PDF с разрешением 300 точек на дюйм и преобразование их с качеством JPG 50, 1500 пикселей и размером вывода 300-500 кб.
Если бы кто-нибудь мог указать хорошую библиотеку для этой задачи, я был бы очень любезен.
Gnostice PDFtoolKit VCL может быть кандидатом. Преобразование в JPEG является одним из вариантов.
Я всегда рекомендую Graphics32 для всех ваших потребностей в обработке изображений; у вас есть несколько resamplers для выбора. Тем не менее, я не думаю, что он может читать PDF файлы в виде изображений. Но если вы можете создать большое изображение самостоятельно, это может быть хорошим выбором.
Atalasoft DotImage (с дополнением к PDF-растеризатору) сделает это (я работаю над технологиями PDF там). Вы будете работать на языке С# (или другом .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);
}
}
}
Существует также Quick PDF Library
Посмотрите DynaPDF. Я знаю, что это довольно дорого, но вы можете попробовать стартовый пакет.
P.S.: перед покупкой продукта убедитесь, что он соответствует вашим потребностям.