none
Reporting Services 出力したPDFがVistaで文字化け RRS feed

  • 質問

  • 過去に同様のスレッドが立っていますが、新スレッドで失礼します。

     

    最近のサポート技術情報で

    SQL Server 2005 または SQL Server 2000 の Reporting Services で日本語レポートを PDF で出力すると文字化けする

    といった文書が公開されており、この件に関して特にこれといった(フォント埋め込みに対応したPDF表示拡張機能の追加とか)特別な対応はしないという方針なんだなと認識しました。

     

    拡張機能の追加をちょっと期待していたのですがもう待っていてもしょうがないので、フォントをJIS90に統一した場合とJIS2004で統一した場合で検証してみました。


    JIS2004で統一
       ・レポートサーバ : WindowsServer2003, SQLServer2000Reporting, KB927489⇒JIS2004(V5.0)
       ・PC1 : WindowsXP, KB927489⇒JIS2004(V5.0)
       ・PC2 : WindowsVista, JIS2004(V5.0)
             ※フォントバージョンは[コントロールパネル]-[フォント]で確認(ゴシックや明朝のバージョン)
    結果:PC1、2ともに文字化けしない。


    JIS90で統一
       ・レポートサーバ : WindowsServer2003, SQLServer2000Reporting, JIS90(V2.3)
       ・PC1 : WindowsXP, JIS90(V2.3)
       ・PC2 : WindowsVista, KB927490⇒JIS90(V2.5
             ※KB927490はV2.3ではなくV2.5になる
    結果:PC1は文字化けせず。PC2は一応JIS90対応したにもかかわらず、文字化けする。フォントバージョンの差異が原因か?
    課題:2003やXPのデフォルトであるV2.3をV2.5にする手段はあるのか?または、VistaをV2.3にする手段はあるのか?

     

    JIS2004で統一すれば問題ありませんでしたが、JIS90で統一した場合が文字化けしてしまいました。

     

    PDFの仕組みがよく分かっていない故の質問で恐縮ですが、フォントのバージョンがぴったりと一致していれば文字化けしないのでしょうか?

    そうだとしたら、WindowsServer2003やWindowsXPのデフォルトと思われるフォントバージョンV2.3をV2.5にすることは可能なのでしょうか?または、VistaのフォントバージョンをV2.3にすることは可能なのでしょうか?

     

    いずれJIS2004のみになっていくのでしょうが、一応、JIS90でも文字化けしない環境ができるのか確認したいため投稿しました。よろしくお願いします。

     

    #SQLServerと直接は関係ないから板違いかなぁ・・・

    2007年8月7日 7:00

すべての返信

  • すでに解決ずみかもしれませんんが、最近類似問題にであってこのスレッドをみつけたので、わかったことを記しておきます。

    (1)文字化け原因は、次の記事に書かれていました。
    文書番号: 955495 - 最終更新日: 2009年4月30日 - リビジョン: 2.1
    SQL Server Reporting Services のレポートを PDF ファイルにエクスポートするとレポートに文字が正しく表示されない
    「原因 この問題は、Windows Vista の一部のフォント ファイルで、英語以外の文字のグリフ ID が変更されたために発生します。」

    TrueTypeフォントのグリフIDと文字コード(Unicode)の対象表は、フォントファイル内のcmapテーブルに保持されています。
    cmapテーブルはTTX FontToolsやマイクロソフトツールTTFDUMP.EXEなどで表示できます。

    XPのMS明朝フォントの含んでいる文字範囲について、他のフォントとグリフIDを比較してみたところ、
    XP msmincho.ttc fontRevision value="2.00004577637"
    だけが、以下の3ファイルと異なりました。3ファイルのグリフIDは全部同じでした。
    JIS90 msmin90.ttc fontRevision value="2.5"
    VISTA msmincho.ttc fontRevision value="5.0"
    JIS04 msmin04.ttc fontRevision value="5.0"


    (2)上記文書には、レポーティングサービスの修正対応がでている、という記事の参照があります。
    956717  (http://support.microsoft.com/kb/956717/
    フォント埋め込みするようにしたのか、グリフIDではなく文字コードを使うようにしたのか等、どういう対応なのか興味があります。


    (3)余談
    PDF仕様は、文字データをグリフIDで表現するのは、フォント埋め込みありの場合を想定していると思われます。
    たとえばTrueTypeフォントをPDFに埋め込むと、cmapテーブルなしのTrueTypeファイルもどき、がPDFの中に保持されます。
    埋め込まれていないTrueTypeフォントの場合は、
    ・AdobeのPDF作成ツールは、文字データを、Adobe社の制定した字形番号である、CIDを用いて表現するようです。
    ・他のツールでは、標準的な文字コードを適切な既定のEncoding(CMap)とともに使っているようです(UnicodeとUniJIS-UTF16-Hなど)。

    現在Vista上で文字化けしているレポートサービスで作成PDFファイルを、XPが退場した後、表示する名案はあるでしょうか?

    2009年8月27日 4:23