Как заменить текст в документе PowerPoint (.ppt)?

Какие существуют решения? Я знаю только решения для замены закладок в файлах Word (.doc) на Apache POI?

Есть ли также возможность изменять изображения, макеты, стили текста в документах .doc и .ppt?

Думаю о замене областей в документах Word и PowerPoint для массовой обработки.

Платформа: MS Office 2003.


person Martin K.    schedule 25.06.2009    source источник


Ответы (6)


Каковы ограничения вашей платформы?

Очевидно, что Apache POI поможет вам пройти хотя бы часть пути.

Собственные COM API от Microsoft довольно мощные и задокументированы здесь. Я бы рекомендовал их использовать, если а) вы не работаете в серверной (многопользовательской, многопоточной) среде; б) на рабочей машине может быть установлена ​​правильная версия PowerPoint; и c) вы можете кодировать объектную модель COM.

person Peter Stephens    schedule 30.06.2009
comment
Я гибкий с ограничениями платформы. Лучший из них — бесплатная лицензия для каждого документа, работающего с Framework. ;) Веб-сервисы, которые абстрагируют объектную модель COM, могут быть способом. - person Martin K.; 30.06.2009
comment
Вы также можете использовать OpenOffice, я добавил информацию в свой пост. - person Malcolm; 01.07.2009

Это немного дорого, но Aspose.Slides — очень мощная библиотека для работы с файлами PowerPoint.

person Rad    schedule 02.07.2009
comment
Решение с открытым исходным кодом — docx4j, которое теперь также может работать с файлами pptx. Это Java с использованием JAXB. - person JasonPlutext; 19.01.2010

Если вы включаете использование других пакетов Office в качестве опции, вот список возможных решений:

Используя POI, вы не можете редактировать формат файла .pptx, но вы не зависите от приложений, установленных в системе. Другие два варианта, наоборот, используют другие приложения, но они определенно лучше подходят для работы с презентациями. Между прочим, OpenOffice лучше совместим со старыми форматами. Также, если вы используете UNO, у вас будет большой выбор языков, UNO существует для Java, C++, Python и других языков.

person Malcolm    schedule 28.06.2009
comment
Является ли POI единственным решением? Что насчет изменения формата (.ppt => .pptx)? Я слышал, что у POI есть проблемы с UTF-8, форматированием и т. д. - person Martin K.; 29.06.2009
comment
Ну, я видел в Интернете разные библиотеки для работы с файлами .ppt, но когда дело доходит до изменения документов, они бесполезны. Другим решением, вероятно, является использование API OpenOffice или PowerPoint для изменения документов, я не знаю, подходит ли вам это решение или нет. - person Malcolm; 29.06.2009

Мой опыт не связан непосредственно с Power Point, но я на самом деле развернул свой собственный генератор WordML (XML). Это а) удалило все зависимости от Word, б) было очень быстро в) и позволило мне создавать документы с нуля.

Но работы по созданию было много. И я только создавал реализацию только для записи.

Я не настолько хорошо знаком с Power Point, так что это предположение, но вы можете создать свой собственный, прочитав XML (Power Point 2003??) и/или взломав файл Office Open XML (заархивированный XML), а затем используя XPath для управления данными, а затем сохранения всего обратно на диск.

Однако это не будет работать со старыми файлами Power Point на основе OLE Compound Document.

person Peter Stephens    schedule 30.06.2009

Я делал что-то подобное раньше: программно получал доступ к презентациям PowerPoint и управлял ими. Когда я это делал, все это было на C++ с использованием COM, но аналогичные принципы применимы к приложениям C#/VB .NET, поскольку они очень легко взаимодействуют с COM.

То, что вы ищете, называется моделью документа Office. По сути, приложения Office представляют свои документы программно, как деревья объектов, которые определяют их содержимое. Эти объекты доступны через API, и вы можете манипулировать ими, добавлять новые и выполнять любую другую обработку по своему усмотрению. Это чрезвычайно мощно; вы можете использовать его для управления практически всеми аспектами документа. Но для его использования вам потребуется установка Office и Visual Studio.

Некоторые ссылки:

Надеюсь это поможет!

person doihaveto    schedule 05.07.2009

По-видимому, новые пользователи могут включать только одну ссылку в сообщение. Как хромой! :)

Вот еще одна ссылка, которую я хотел включить:

person doihaveto    schedule 05.07.2009