Создание собственного импортера PDF для XNA - PullRequest
0 голосов
/ 02 ноября 2010

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

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

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

Все ответывысоко ценятся.

1 Ответ

1 голос
/ 03 ноября 2010

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...