Создание пользовательского импортера PDF для XNA

Я использую структуру XNA и хочу включить многостраничные файлы PDF в свое приложение XNA.

Я понимаю, что могу добиться этого, создав пользовательский импортер и процессор, но я могу найти только один пример, который относится к пользовательским импортерам / процессорам. К сожалению, поскольку этот пример применим к шейдерам, он не особенно полезен - http://msdn.microsoft.com/en-us/library/bb447754.aspx.

Итак, чтобы подвести итог, есть идеи, как я могу реализовать многостраничные PDF-файлы в моем приложении XNA?

Все ответы приветствуются.


person cbros2008    schedule 02.11.2010    source источник


Ответы (1)


Конвейер контента плохо справляется с вашей ситуацией. Он не поддерживает импорт одного файла и создание нескольких выходных данных (в вашем случае PDF-файл с текстурой для каждой страницы). (ссылка)

Вдобавок, я полагаю, вы захотите использовать сторонний внешний инструмент командной строки для преобразования ваших PDF-страниц в текстуры (я думаю, ImageMagick, вероятно, хорошее место для начала). Следующий подход также избавит вас от хлопот по интеграции в конвейер контента.

Итак, вот что я бы сделал: во-первых, запустите инструмент преобразования PDF-файлов до построения конвейера контента. Простое (но медленное) место - это событие перед сборкой вашего информационного проекта. Я предлагаю конвертировать PDF в несколько файлов PNG.

А затем используйте подстановочный знак, чтобы включить все эти PNG-файлы в ваш контент-проект. Вот вопрос, который объясняет это.

Когда вы загружаете текстуры, просто используйте что-то вроде Directory.EnumerateFiles, чтобы найти имена результирующих файлов XNB в соответствующем пути содержимого.

(Если вы хотите добавить перетаскивание в Visual Studio, вы можете возиться с MSBuild, чтобы удалить элементы PDF и заменить их элементами PNG с подстановочными знаками или чем-то еще. Это также имеет то преимущество, что позволяет вам только перестраивайте свои PNG при изменении PDF, делая вашу сборку намного быстрее. Я оставлю это как упражнение.)

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

person Andrew Russell    schedule 03.11.2010
comment
Спасибо, с тех пор, как я опубликовал это, я решил преобразовать PDF-файлы в PNG, а затем поиграть с ними. Спасибо за развернутый ответ! - person cbros2008; 04.11.2010