OP вернулся через несколько часов - я нашел кое-что, что, кажется, работает, все еще очень заинтересованный в любых комментариях / других способах взломать проблему / улучшения.
.content.data
| .hits[].doc.notes |= map (
if ( .types | any(startswith("x") or startswith("y")))
then .
else empty
end
)
Другой вариант, о котором не упоминалось, и который мы в конечном итоге выбрали, - это использовать форматы файлов Open XML , которые наивно поддерживаются в Office 2007. и в Office XP через пакет совместимости . Использование Open XML SDK 1.0 для того, чтобы что-то заработать, оказалось на удивление простым.
Во-первых, был подготовлен общий файл шаблона с маркерами, вставленными вместо содержимого, которое необходимо было заменить. Затем в проект нужно добавить ссылку на DocumentFormat.OpenXml. Сам код будет ссылаться на пространства имен DocumentFormat.OpenXml и DocumentFormat.OpenXml.Packaging. Наконец, код для циклического просмотра слайдов выглядит следующим образом:
// Open the presentation
PresentationDocument presentation = PresentationDocument.Open(fileName, true);
// Loop through all of the slides in the presentation
foreach (SlidePart slide in presentation.PresentationPart.SlideParts)
{
// Read the XML out of the slide
XmlDocument xml = new XmlDocument();
xml.Load(slide.GetStream());
// TODO: Your XML manipulation code here
// Save the updated slide
xml.Save(slide.GetStream());
}
// Save the updated presentation
presentation.Close();
Вы могли бы написать некоторый код на стороне сервера, который использует библиотеку, которая может генерировать документы формата PowerPoint. Например, в Java вы можете использовать Apache POI-HSLF для программного генерирования файлов PPT.
В зависимости от того, что вам нужно сделать, начинать с файла шаблона PPT «шаблона» может быть меньше, и программно изменить его для вставки или редактирования содержимого.
Если ваша серверная технология ASP.NET, вы можете использовать Aspose.Slides . Это довольно мощный и хорошо работает, хотя это может быть не экономически эффективным решением, в зависимости от того, что вы хотите сделать.