Получение CGImage из файла PDF - PullRequest
0 голосов
/ 15 января 2009

У меня есть файл PDF, где каждая страница представляет собой (LZW) файл TIFF. Я знаю это, потому что я создал это. Я хочу иметь возможность загрузить его и сохранить как набор файлов TIFF.

Я могу открыть файл PDF с помощью CGPDFDocumentCreateWithURL и получить страницу. Я даже могу нарисовать страницу на экране.

Что я хочу сделать, это нарисовать страницу в bitmapContext, чтобы я мог использовать CGBitmapContextCreateImage, чтобы получить изображение в CGImageRef. Однако для создания растрового контекста мне нужно знать размер и разрешение изображения. Кажется, я не могу найти, как получить CGPDFDocument или CGPDFPage, чтобы сказать мне разрешение объекта изображения на этой странице.

Есть ли более простой способ сделать это, чего я не понимаю?

спасибо.

1 Ответ

1 голос
/ 17 января 2009

Ghostscript будет работать для вас здесь:

gs -sDEVICE = tiff32nc -sOutputFile = foo-Page% d.tif foo.pdf

Для двухстраничного документа foo.pdf вы должны получить:

  • Foo-Page1.tif
  • Foo-Page2.tif

По памяти я думаю, что выходное разрешение от GS - это разрешение содержащей страницы, а не обязательно разрешение встроенного файла (если только они не совпадают с самого начала).

Если это так, и вы хотите восстановить образ в том виде, в каком он был изначально, вы можете использовать iText (java) или iTextSharp (. Net) для получите к изображению поток контента (т.е. байты) и запишите их на диск в выбранном вами формате, после преобразования потока контента в pdfImage iirc.

Надеюсь, опция ghostscript применима для сохранения написания еще одной утилиты ...

...