- オンライン版Excelからエクスポートした PDFで、JavaScriptの機能が使用されているという警告が表示されました。
- これは、PDFを開いたらすぐに印刷できるスクリプトが埋め込まれているためです。
- しかし、PDF内のJavaScriptにはセキュリティ上の懸念もあり、なるべくならオフにしておきたいです。
「印刷」から「PDFとしてエクスポート」したときには JavaScriptが埋め込まれているものの、「エクスポート」からPDFをダウンロードした場合には JavaScriptが埋め込まれなくなっていました。
ローカルのExcelからPDFにエクスポートすれば、JavaScriptは含まれません。
YouTube動画でも話しています。
1. ExcelからエクスポートしたPDFで警告画面
オンライン版のExcelでは、ファイルをエクスポートしたPDFとしてダウンロードできます。
しかし、そのファイルをAdobe Acrobat Readerで開いたら、「JavaScriptの機能を使用している」という警告が表示されます。
JavaScript は現在無効になっていますが、この文書は一部の機能でそれを使用しています。Javascriptを有効にすると、セキュリティ上の問題が発生する可能性があります。
[オプション] [ヘルプ1 ]
これは、関数や条件付き書式・マクロなどを全く利用していないシンプルなブックでも同様でした。
1-1. JavaScriptを有効にすると印刷画面が表示される
警告メッセージの「オプション」には、「この文書の JavaScript を一度だけ有効にする」という選択肢があります。
JavaScriptを有効にすると、印刷ダイアログが表示されました。
つまり、印刷処理がスクリプトに書かれていたことがわかります。
PDFがJavaScriptの機能を使用している場合、それには主に以下の理由があります。
- インタラクティブな機能の実現:
例えば、フォームの入力、ボタンのクリック、ナビゲーションの実装などです。 - データの動的な表示:
例えば、現在の日付や時刻、ユーザー入力に基づいた計算結果などをリアルタイムで反映させられます。 - 外部データとの連携:
外部のデータベースやWebサービスにアクセスし、最新の情報を含んだPDFを生成できます。 - レイアウトの調整:
例えば、ページサイズに合わせてコンテンツを自動的にリサイズしたり、特定の条件に基づいて要素を表示・非表示にしたりできます。
1-2. オンライン版のExcel
オンライン版 Excelの設定を確認しましたが、JavaScriptを含まないようにする設定は見つけられませんでした。
どうもダウンロードしたPDFをすぐに印刷する想定で設計されているようです。
2. 警告は不要でJavaScriptを無視したい
うーん、JavaScriptが無効でもPDFは表示されているんだから、開くたびに警告が出てくるのはなくせないの?
確かに、基本的にはシンプルなPDF文書を作成して、どうしても高度な機能が必要な書類やフォームでだけ JavaScript を有効化するのがよいです2。
ただし、Acrobat Readerでは JavaScript を無効にしても、警告は常に表示されます。
警告を表示しないと、PDFに付加されている機能に気付けなくなってしまうからです。
2-1. Acrobat JavaScript を使用とセキュリティ上の問題
ただし、PDFを開いたときに警告は表示されず、そのままJavaScriptが実行される設定はあります。
Acrobat Readerの「環境設定」から「JavaScript」を選択し、「Acrobat JavaScript を使用」のチェックをつけます。
ただし、「Acrobat JavaScript を使用」のチェックは付けないほうがよいです。
もし、PDFに悪意のあるJavaScriptコードが埋め込まれていると、それによってユーザーの情報が漏洩したり、システムに悪影響を及ぼしたりする可能性があるからです。
通知メッセージは、PDFでJavaScriptが使用されていることを警告し、セキュリティリスクについて注意を喚起しています。
面倒ですが信頼できるソースから取得したPDFかどうかを判断して、状況に応じてJavaScriptを有効にした方がよいです。
3. 【追記】エクスポートではJavaScriptは表示されなくなった(2024-08-01)
久々に確認したら、PDFを開いたときにJavaScriptの表示はありませんでした。
よく手順を確認してみると、エクスポートと印刷で微妙に違いがありました。
オンライン版Excelの「ファイル」の「エクスポート」から「PDFとしてダウンロード」を選んだ場合には、シンプルなPDFが保存されました。
一方、「印刷」の「プリンター」から「PDFとしてエクスポート」を選択して、「ダウンロード」した場合には、以前として JavaScriptが表示されました。
これなら、PDFに印刷のスクリプトが含まれているのも納得だね。
以前は、PDFのエクスポートでも表示されていたはずなんだけど、いつの間にか直ったんだね。
(補足)
- リンク先(https://www.adobe.com/go/acrobat_disabled_javascript_jp)ページは存在しない(404)ようでした。
- remove disabled javascript warning bar in adobe acrobat – Stack Overflow