none
[VS2010]ReportViewerのローカル処理モードで出力したPDFの文字化け(※コピーしたテキスト内容が対象) RRS feed

  • 質問

  • 開発環境:
    ・Windows 7 SP1(Windows Update.2013/07/31 時点の最新版を全て適応)
    ・Visual Studio 2010 (Windows Update.2013/07/31 時点の最新版を全て適応)
    C# Windows Forms
    ・ReportViewerのバージョン(Microsoft.ReportViewer.WinForms 10)

    確認に使用したPDFViewer:
    ・Adobe Acrobat X Pro
    ・Adobe Reader X
    ・SkyPDF Viewer

    確認に使用したテキストエディタ.5.0]
    ・notepad.exe [Windows 7 標準のテキストエディタ]


    下記質問事項を記述します。

    ローカル処理モードのReportViewer で、日本語混じりのレポートをPDF形式に出力

    上記で記述したPDFViewerにて内容を確認すると文字化けは起きないのですが、
    表示された文字をコピーし、上記で記述したテキストエディタにペーストすると
    文字化けを起こします。
    また当該PDFをテキストとして出力すると文字化けしてしまうことを確認しました

    当該のPDFに対して、Officeファイル[.xls,.doc,.ppt]、一太郎形式のファイルを
    PDFに変換し、
    マージすると.rdlcでデザインした部分のみが文字化けすることも確認しておりま
    す。

    この文字化けしてしまう現象の解決方法をご教示をお願い致します。


    --------------------------------------------------------------------
    検証したこと1.全ての日本語が文字化けなのか?
     -.rdlcでデザインした透かし文字に関しては、文字化けしないことを確認しまし
    た。
     -文字化け対象は半角英数では起きず、日本語(半角、全角)のみ起きること確認し
    ました。

    検証したこと2.検証利用でxdoc2txt.exe[Ver.2.00]を使用し、OCR変換しテキスト
    に出力
    結果はNG。文字化けしまいました。(各文字コードを全て試しました)

    検証したこと3.フォントの問題。
    表示されている全てのフォントをMS UI Gothic、MS Pゴシックにしましたが結果は
    変わりませんでした。

    検証したこと4.フォント埋め込みの失敗の可能性
    調べるとMicrosoft.ReportViewer.WinForms 10では必ず埋め込まれる仕様のため対象外の様子
    また出力したPDFのプロパティでも埋め込みに成功していること確認しております。

    --------------------------------------------------------------------
    調査したが特定出来なかった可能性1.コピーや再配布を防止するために著作権保護
    の仕様
     透かし対象以外の文字列は暗号化されてしまうという仕様が施されてしまうので
    はないかという懸念。
    ※日本語だけ文字化けとなるので、かなり薄いとは思いますが・・・
    --------------------------------------------------------------------

    2013年7月31日 11:15

回答

  • 亀レスで申し訳ないです。

    マイクロソフトサポートに本件を直接問い合わせたところ、文字化けすることは”仕様”だそうです。

    ですので回避不可能なため、別のやり方で実装することで解決しました。

    NPoiとExcelのCom利用したやり方両方検証しましたがどちらも文字化けはしませんでしたので、

    本件でお悩みの方向けに記述しておきます。

    • 回答としてマーク 星 睦美 2013年9月30日 1:31
    2013年9月27日 12:42

すべての返信

  • これはReportViewerの問題でしょうか? Office上で[名前を付けて保存]でPDF形式を選択しただけでも同じ問題が発生しませんか? 保存する際のオプションで[アクセシビリティ用のドキュメント構造タグ]にチェックが付けられていると発生します。
    # 読み上げとかが容易になるとのことですが…コピーした文字列があんなふうになるのに読み上げが正常に行えるのか疑問ですが。

    ReportViewerでこれと同等の設定をする方法はよくわかりません…

    2013年7月31日 22:33
  • TO:佐祐理さん

    ご返信ありがとうございます。

    >これはReportViewerの問題でしょうか? 

    はい。その通りです。

    >[アクセシビリティ用のドキュメント構造タグ]にチェックが付けられていると発生します。

    当該のドキュメントタグを制御するプロパティを調査しましたが見当たりませんでした。

    上記の方で記述していなかった点として、Microsoft Report Viewer 2010 SP1 再頒布可能パッケージ

    は適応済みです。


    この問題による弊害は、PDF内の全文検索が行えません。

    PDFの全文検索を行いたいので、ReportViewerでは使い物にならないようであれば

    最悪、諦めることも検討しております。

    PS.

    自己調査により他の代替手段が見つかりました。

    その代替手段はAdobe Acrobat SDKを利用し、PDF出力するというやり方です。

    このやり方であれば上記のような問題が起きず、全文検索が行えることがわかりました。

    念のため、当該内容を英訳して、米MSDNにもポストする予定です。


    2013年8月4日 14:36
  • そうではなく、質問の内容が、Office文書をPDFに変換した際に発生する現象と似ているので、同一の現象かを確認したかったのです。

    同一であれば、同じMicrosoft社の作るものですから、内部処理も同一なのではと。Office文書側にはこれに対する回避策は既に提示した通りで、原因が同じであればRepoertViewer側の回避策も同じになるであろう、という予想です。
    その上で、RepoertViewerに対してOfficeと同じ設定が行えないということであれば、ReportViewerの問題でしょう。

    2013年8月4日 23:23
  • 亀レスで申し訳ないです。

    マイクロソフトサポートに本件を直接問い合わせたところ、文字化けすることは”仕様”だそうです。

    ですので回避不可能なため、別のやり方で実装することで解決しました。

    NPoiとExcelのCom利用したやり方両方検証しましたがどちらも文字化けはしませんでしたので、

    本件でお悩みの方向けに記述しておきます。

    • 回答としてマーク 星 睦美 2013年9月30日 1:31
    2013年9月27日 12:42