見出し画像

IISを使っていてPDF.jsの日本語メニューが出ない!一部のPDFで日本語が表示されない!

#備忘録として
どういう訳か、いきなりご機嫌が斜めになったApacheサーバー。
PDFとか画像ファイルなどのコンテンツサーバーとしてNASにのっけて重宝していたのですが・・・。
諸事情あって、IISに載せかえることにしました。

このコンテンツサーバーにはPDF.jsも仕組んでいて、WEB上でAcrobatなどがなくてもブラウザ上でPDFが閲覧できるようにしています。

さて、IISに載せかえて動作をチェックしていると、PDF.jsの挙動がなんかオカシイ。今まで出ていた日本語メニューが出てこず、英語のメニューに。また、一部のPDFを表示させると日本語が表示されず、真っ白け。

何かがオカシイ。

ネットで色々調べるも解決につながる有力な情報がない。(多分)

あれやこれや調べてようやく分かったのが、IISのMIME設定。

拡張子bcmapとpropertiesに対してtext/htmlを設定することでサクサク通常運転するようになりましたとさ。めでたしめでたし。

2024/6/19 追記
PDF.jsのバージョンアップを行った際、次の設定も追加で必要でした。
・拡張子fltに対してtext/plainのMIME設定
・拡張子mjsに対してapplication/javascriptのMIME設定
また、本件からやや外れますがstrict-origin-when-cross-originエラーが出てPDFが表示されない場合、CORS (Cross-Origin Resource Sharing) の設定が問題になっている可能性があります。その場合、PDF.jsをインストールしているフォルダに次のような内容のweb.configを置いてCORSの設定を置く必要があります。

<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" />
                <add name="Access-Control-Allow-Headers" value="Content-Type, Authorization" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

#IIS
#PDF .js


この記事が気に入ったらサポートをしてみませんか?