2011-01-27 1 views
1

мне нужно, чтобы иметь возможность генерировать PNG эскиз определенной страницы в PDF документа в OS X.Как создать эскиз определенной страницы в PDF в командной строке в OS X?

Я могу использовать «qlmanage -p MyFile.pdf -o OutputDir -s1000», чтобы получить 1000-пиксельного широкий PNG первой страницы. Это работает отлично, и это почти то, что мне нужно. Единственный недостающий элемент - указать определенный номер страницы в формате PDF.

Можно ли это сделать с помощью qlmanage или какой-либо другой утилиты командной строки?

ответ

2

ImageMagick должен быть в состоянии помочь:

convert -resize 10000x10000 MyFile.pdf[2] MyOutput.png 

Где 2 это номер страницы. Наслаждайтесь!

+0

Спасибо, я дам вам выстрел и дам вам знать мои результаты. –

+0

изображениеMagick похоже сломан. Я загрузил предварительно построенный двоичный файл для OS X, но я не могу преобразовать его в работу вообще. Эта команда: «convert -resize 1000x1000 DroboGuide.pdf MyOutput.png» дает мне эту ошибку: «Десять Postscript не удалось« DroboGuide.pdf »: нет такого файла или каталога @ error/pdf.c/ReadPDFImage/645.». Файл существует в текущем рабочем каталоге. –

+1

Оказывается, причина, по которой произошла ошибка ImageMagick, заключается в том, что мне нужен GhostScript для использования ImageMagick с PDF-файлами. Я не могу использовать GhostScript, потому что это GPL, и, кроме того, я столкнулся с многочисленными проблемами, пытающимися установить его, чтобы попробовать. Даже если бы мы хотели купить коммерческую лицензию, отличную от GPL, компилятор ImageMagick/GhostScript добавляет слишком большой размер, сложность и новые требования к поддержке для связывания с нашим программным обеспечением. Спасибо за предложение! –

0

Вы можете использовать Aspose.Pdf для создания миниатюры (или изображений) любой страницы. Очень надежна и создает идеальное изображение (как Acrobat). Единственный минус - для создания одного миниатюры требуется ~ 20 секунд. И это отстой. Код выглядит следующим образом:

Document document = new Document(pdfPath); 
    Page page = document.Pages[pageNum]; 
    document.RemoveMetadata(); 
    page.Flatten(); 
    page.SendTo(new PngDevice(page.PageInfo.Width, page.PageInfo.Height), pngPath); 
    document.Dispose();