![見出し画像](https://assets.st-note.com/production/uploads/images/82237741/rectangle_large_type_2_a2e8eba7cdfb5f6d007b023a0732106a.png?width=1200)
Photo by
koge0koge
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>