XPS - обход и вставка изображения

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

Добрый день.
Необходимо добавить картинку на каждую страницу XPS-документа.
Курил XML Paper Specification, MSDN но ответов до конца не нашел...

Вопросы следующие:
1) как найти коллекцию ресурсов-изображений документа (

Код: Выделить всё

/Documents/<n>/Resources/Images/
)?
могу найти только все картинки, участвующие в текущей странице... но как пройтись по всем картинкам документа?
это необходимо для:
1) генерации уникального имени картинки в области документа,
2) для вызова какого-нибудь метода Append() :)

2) (следствие из первого) как вставить картинку на каждую страницу документа?

Заранее спасибо.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А обойти все страницы документа и в них перебрать все изображения разве нельзя?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

это как-то нелогично... мне кажется... суть даже не в том, чтобы перебрать картинки, а найти их хранилище: /Documents/<n>/Resources/Images/
Спецификация говорит, что PartName'ы SHOULD BE Documents, <n>, Resources, Images...
Т.е. наверняка неизвестно, как будет называться раздел с картинками, раздел ресурсов и прочее...
А при создании ресурса-картинки мы должны указывать его Uri в документе.

Можно конечно пройтись, найти картинки, распарсить, получить Uri раздела-хранилища картинок (Images)... А если нет картинок, то свой раздел создать...
При этом надо проверить существование хранилища вообще всех ресурсов документа (шрифты и прочее (Resources))...
Но как-то это некрасиво...

Выходит, либо спецификация говорит: "что хотите, то творите, а я просто тут буковки написал, а вы читаете", либо реализация заголовочных файлов xpsobjectmodel.h неполная... Либо я чего-то не вижу :)
(скорее всего последнее и я на это надеюсь... не охота костылями писать...)
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

Залез в сам XPS-пакет (который представляет из себя архив с xml-ками и прочим). Наглядно увидел структуру.

Буду просто писать в /Documents/<n>/Resources/Images/

На сколько я понял, если сторонний разработчик засунул свои ресурсы не сюда же, это не повлияет на "корректность" документа и он будет интерпретироваться правильно.
Провел 1 тест на практике - работает.

P.S. Romeo, спасибо за участие :)
Ответить