Я разрабатываю приложение, в котором пользователь может делиться файлами MS-Office. Под Windows я использую объекты Word Automation и виртуальный принтер для создания файлов .BMP из .doc и .ppt, которые затем читаю / отображаю и отправляю по сети.

Сейчас я портирую свое приложение на MAC.

На MAC я действительно не уверен, как этого добиться. Я искал и нашел способ получить растровое представление файлов под MAC через пользователя QuickLook API. Я также нашел здесь несколько сообщений, связанных с QuickLook.

Получить изображение предварительного просмотра QuickLook для файла

Предварительный просмотр Mac Quick Look в NSView или NSImage?

Но здесь мы застряли с QLThumbnailImageCreate , поскольку он дает только одно эскизное изображение для документа (1-я страница .doc и .ppt). Так что это не принесет мне никакой пользы.

Я немного исследовал и нашел команду qlmanage , которая с параметром -p будет генерировать фактический ПРОСМОТР документа, а не только его миниатюру. Но теперь он сохраняет только изображения внутри страниц как файлы .png и ничего не делает с текстом. Он дает единственный файл Preview.html вместе с PreviewProperties.plist, который содержит информацию о вложениях.

Та же самая команда qlmange делает что-то странное с файлами PowerPoint. Он сохраняет шаблон слайда как файл .pdf (а встроенные изображения как .png).

Существует ли в коде какой-то способ, с помощью которого я могу запросить генератор MS-Office QuickLook (office.qlgenerator), чтобы он предоставил мне объекты предварительного просмотра, а затем, используя этот объект предварительного просмотра, я конвертирую страницы в растровые изображения?

Finder / Spotlight, кажется, отлично понимает превью. Интересно, как эти приложения могут это делать? Apple скрывает от разработчиков эту функциональность ???

Может ли кто-нибудь, обладающий опытом QuickLook, помочь мне в этом или показать другой возможный способ, с QuickLook или без него, потому что на данный момент я думаю, что действительно застрял здесь.

Проще говоря, мне просто нужны необработанные изображения страниц / слайдов.

Любая помощь в этом отношении будет принята с благодарностью.

С уважением и уважением, LazyCoder7

0
LazyCoder7 21 Авг 2014 в 15:45
Я как-то решил часть своего вопроса, а именно распечатать файлы .pdf. Поскольку поддержка pdf встроена в MAC OS. Я сгенерировал изображения .jpg из файлов .pdf, теперь я думаю о том, чтобы каким-то образом преобразовать .doc, .ppt в .pdf, а затем с помощью этой техники преобразовать .pdf в .jpg. Посмотрим, как далеко я уйду.
 – 
LazyCoder7
22 Авг 2014 в 16:06
Я нашел здесь образец скрипта jaimerios.com/?p=171, но в нем есть собственный набор проблем. На MAC необходимо включить специальные возможности. Мой был выключен, это могло вызвать проблемы и на других машинах. Более того, сценарий не завершился успешно. Остановлен в точке, где нужно ввести Command + Shift + G, чтобы получить путь к файлу. Нужно найти другой способ.
 – 
LazyCoder7
22 Авг 2014 в 16:48
Я придумал выход, как конвертировать .doc и .ppt в .pdf под MAC. stackoverflow.com/questions/11192396/….
 – 
LazyCoder7
25 Авг 2014 в 16:56

1 ответ

Лучший ответ

Отвечая на свой вопрос кому-то, у кого такая же ситуация, как у меня.

Здесь нам потребуется двухэтапный процесс.

1.Любой документ -> .PDF.

Для этой части вы можете использовать информацию, представленную на Программирование фильтра / бэкэнда для печати в PDF с помощью CUPS из любого приложения Mac OS X. Это очень хорошо объяснено, вы также можете проверить эту ссылку https://bitbucket.org/codepoet/cups-pdf-for-mac-os-x/wiki/Home.

Как только вы поймете и поэкспериментируете с CUPS, вы сможете создавать файлы .PDF из .doc или, скажем, .ppt.

Теперь начинается вторая часть решения.

2. Преобразование .PDF в .JPG.

Для этой части вы можете использовать код по адресу Конвертируйте страницы PDF в изображения с помощью COCOA .

Код работает хорошо и дает желаемые результаты.

Итак, теперь в основном мы можем конвертировать любые файлы MS Office в изображения, и это тоже касается страниц, не используя способ QuickLook (который, однако, не будет работать в этом случае).

Надеюсь, это может кому-то помочь.

С Уважением,

CrazyCoder7.

0
Community 23 Май 2017 в 15:13