The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ReportViewer 匯出 PDF 時,中文不會出現亂碼的方法

我們最近在開發 SQL Server 2005 的 Reporting Service 報表功能,而在使用 ReportViewer 查看報表時都沒問題:

ReportViewer 匯出 PDF 檔 

但是在執行匯出資料到 PDF 格式時,所有的中文字都會變成亂碼:

ReportViewer 執行匯出資料到 PDF 格式時,所有的中文字都會變成亂碼

若要解決這個問題其實還蠻容易的,只要修改報表定義檔( *.rdlc )中各物件的字型修改掉即可,預設來說預���的字型是 Tahoma,你必須改成 PMingLiU 即可。

而所有報表定義檔 ( *.rdlc ) 都是 XML 語法,你只要直接將以下標籤定義:

<FontFamily>Tahoma</FontFamily>

全部都換成以下 PMingLiU 這個定義就可以了,這個代碼是「細明體」的字型代號:

<FontFamily>PMingLiU</FontFamily>

如果你要設定的字型是「標楷體」的話,可以用以下定義:

<FontFamily>DFKai-SB</FontFamily>

如果是在中國大陸常用的「宋體」字型,我就不知道是什麼代碼了,也許知道的網友可以提供給我知道。

你可以使用任何編輯器來修改,例如說你可以使用 Notepad++ 一次開啟所有 *.rdlc 檔,然後用「取代所有開啟文件」的方式一次替換所有報表定義檔中的相關字串:

你可以使用 Notepad++ 一次開啟所有 *.rdlc 檔,然後用「取代所有開啟文件」的方式一次替換所有報表定義檔中的相關字串

這樣就可以省去用開發工具一個一個修改了。