0

我正在使用 XNA 框架并希望将多页 PDF 文件合并到我的 XNA 应用程序中。

我知道我可以通过创建自定义导入器和处理器来实现这一点,但我只能找到一个引用自定义导入器/处理器的示例。不幸的是,由于此示例适用于着色器,但它并不是特别有用 - http://msdn.microsoft.com/en-us/library/bb447754.aspx

总结一下,有什么想法可以在我的 XNA 应用程序中实现多页 PDF 吗?

高度赞赏所有答复。

4

1 回答 1

1

内容管道不能很好地处理您的情况。它不支持导入单个文件并生成多个输出(在您的情况下,PDF 到每个页面的纹理)。(参考

此外,我想您会想要使用第三方的外部命令行工具将您的 PDF 页面转换为纹理(在我看来,ImageMagick 可能是一个不错的起点)。以下方法还可以为您省去将其集成到内容管道中的麻烦。

所以这就是我要做的:首先,在构建内容管道之前运行您的 PDF 转换工具。简单(但缓慢)的地方将是您的内容项目的预构建事件。我建议将 PDF 转换为多个 PNG 文件。

然后使用通配符将所有这些 PNG 文件包含到您的内容项目中。这是一个解释它的问题

当你去加载你的纹理时,只需使用类似的东西Directory.EnumerateFiles在适当的内容路径中查找生成的 XNB 文件的名称。

(如果您想在 Visual Studio 中添加拖放功能,您可以使用 MSBuild来删除 PDF 项目并将其替换为通配符 PNG 项目或其他内容。这还具有允许您仅在以下情况下重建 PNG 的优点PDF 更改,使您的构建速度更快。我将把它留作练习。)

当然,如果您只是做一些固定的 PDF 文件 - 只需使用您的工具直接将它们转换为图像,然后将它们添加到您的内容项目中。

于 2010-11-03T02:43:10.650 回答