У меня возникла проблема с преобразованием PDF в изображения. Я хотел бы создать файл изображения для каждой страницы в документе PDF.Преобразование страниц PDF в изображения с COCOA
Это код, который я использую и прекрасно работает. Каждая страница преобразуется в изображение, но у меня проблема с разрешением изображения. Я не знаю, как установить разрешение выходных изображений. Кто-нибудь может мне помочь?
NSData *pdfData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://localhost/test/test.pdf"]];
NSPDFImageRep *img = [NSPDFImageRep imageRepWithData:pdfData];
NSFileManager *fileManager = [NSFileManager defaultManager];
int count = [img pageCount];
for(int i = 0 ; i < count ; i++) {
[img setCurrentPage:i];
NSImage *temp = [[NSImage alloc] init];
[temp addRepresentation:img];
NSBitmapImageRep *rep = [NSBitmapImageRep imageRepWithData:[temp TIFFRepresentation]];
NSData *finalData = [rep representationUsingType:NSJPEGFileType properties:nil];
NSString *pageName = [NSString stringWithFormat:@"Page_%d.jpg", [img currentPage]];
[fileManager createFileAtPath:[NSString stringWithFormat:@"%@/%@", @"/Users/mac/Desktop/", pageName] contents:finalData attributes:nil];
}
Большое спасибо!
Я не думаю, что это сработало, так как мне нужно вызвать [NSPDFImageRep imageRepWithData: pdfData], который создает и возвращает объект NSPDFImageRep, инициализированный указанными данными PDF. Если бы я использовал [NSImageRep drawInRect:], как бы мне получить страницу PDF для рисования в этом прямоугольнике? –
Для меня это похоже, что этот подход работает нормально. Это код: NSRect bounds = pdfImageRep.bounds; CGFloat factor = 4; NSRect rect = NSMakeRect (0, 0, bounds.size.width * factor, bounds.size.height * factor); NSImage * image = [[NSImage alloc] initWithSize: rect.size]; [блокировка изображенияFocus]; [pdfImageRep drawInRect: rect]; [image unlockFocus]; – Holtwick