为了实现基于Windows的翻页应用程序,我需要能够将大量PDF页面转换为高质量的JPG,而不仅仅是缩略图。
目标是实现最佳质量/文件大小,类似于Photoshops Save for Web。
目前我正在使用Datalogics Adobe PDF Library SDK,它似乎无法完成该任务。因此,我正在寻找一种替代的通用C ++或Delphi库,它提供了良好的质量/尺寸/速度。
在这里做了一些搜索之后,我注意到大多数帖子都是关于GS& Imagekick,我也测试过,但我对输出和速度不满意。
目标是导入300dpi的PDF并将其转换为JPG质量50,1500px高度和300-500kb的输出。
如果有人能为这项任务指出一个好的图书馆,我会非常感激。
答案 0 :(得分:2)
Gnostice PDFtoolKit VCL可能是候选人。转换为JPEG是其中一个选项。
答案 1 :(得分:1)
我总是建议Graphics32满足您的所有图像处理需求;你有几个resamplers可供选择。但是,我认为它不能将PDF文件作为图像读取。但如果你能自己生成大图像,那么它可能是个不错的选择。
答案 2 :(得分:1)
Atalasoft DotImage(使用PDF rasterizer附加组件)将会这样做(我在那里处理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);
}
}
}
答案 3 :(得分:0)
答案 4 :(得分:0)
看看DynaPDF。我知道它非常昂贵,但你可以试试初学者包。
P.S.:在购买产品之前,请确保它符合您的需求。