2010-11-02 18 views
0

我正在使用XNA框架,並希望將多頁PDF文件合併到我的XNA應用程序中。爲XNA創建自定義PDF導入器

據我所知,我可以通過創建自定義導入程序和處理程序來實現此目的,但我只能找到一個指定自定義導入程序/處理程序的例子。不幸的是,由於這個例子適用於着色器,它並不特別有幫助 - http://msdn.microsoft.com/en-us/library/bb447754.aspx

所以只是總結,任何想法如何我可以實現多頁PDF到我的XNA應用程序?

所有的答覆,非常感謝。

回答

1

內容管道無法很好地處理您的情況。它不支持導入單個文件並生成多個輸出(在您的情況下,PDF爲每個頁面的紋理)。 (reference

此外,我想你會希望使用第三方外部命令行工具將PDF頁面轉換爲紋理(離開我的頭頂,ImageMagick可能是一個很好的開始)。以下方法也可以節省您將其集成到內容管道中的麻煩。

因此,我會這樣做:首先,在構建內容管道之前運行PDF轉換工具。簡單(但緩慢)的地方將是你的內容項目的預生成事件。我建議將PDF轉換爲多個PNG文件。

然後使用通配符將所有這些PNG文件包含到您的內容項目中。 Here's a question that explains it

當你去加載紋理,簡單地使用類似Directory.EnumerateFiles找得到的XNB文件的名稱在適當的內容路徑。

(如果您想將拖放添加到Visual Studio中,您可以使用mess about with MSBuild刪除PDF項目並將其替換爲通配符PNG項目或其他內容,這也有助於您只重建PNG當PDF的變化,使得您的構建速度更快,我會離開這個作爲一個練習)

當然,如果你只是做了幾個,固定的PDF文件 - 只需將它們直接與您的工具轉換爲圖像並將其添加到您的內容項目中。

+0

謝謝,自從發佈這篇文章後,我決定將PDF轉換爲PNG,然後與這些PNG一起玩。感謝您的詳細解答! – cbros2008 2010-11-04 07:21:32