Web サイト上の PDF ドキュメントへのリンクをクリックすると、PDF コンテンツがブラウザーのタブ内で適切にレンダリングされるのではなく、ブラウザーのダウンロード バーがウィンドウの下部に表示され、イライラするユーザー エクスペリエンスが頻繁に発生します。 PDF ファイル自体は、破損したり、フォーマットが間違っていたり、破損したりすることはありません。 Web サーバーとブラウザは、ユーザーがコンテンツの最初のピクセルを見る前に、受信ファイルを処理する方法を密かにネゴシエートし、ファイルをインラインで表示するのではなくディスクにダウンロードすることを共同で決定しました。
PDF がブラウザ ウィンドウでスムーズに開いてすぐに表示されるか、ファイルとしてユーザーのローカル ストレージにダウンロードされるかは、Web サーバーの構成設定、ブラウザに組み込まれた PDF 処理機能、およびユーザーの個人的なブラウザ設定の間の 3 方向の相互作用によって決まります。これらはすべて、ユーザー インターフェイスの背後で目に見えない形で動作します。
PDF が表示ではなくダウンロードされる理由を理解するには、Web サーバーが Content-Disposition HTTP ヘッダーを送信する方法、ブラウザが application/pdf MIME タイプを処理する方法、ブラウザの設定とインストールされている拡張機能がデフォルトの PDF 処理動作をどのように変更するかを調べる必要があります。 WukongPDF の PDF フォーマット ツールは、プラットフォーム全体での PDF 読み取り に適した標準準拠の PDF を作成します。以下の説明は、チェーン内のすべての要素をカバーしています。

Content-Disposition ヘッダー: サーバーがブラウザに指示する方法
Web サーバーが PDF ファイルを要求元のブラウザーに送信するとき、そのファイルには実際のファイル データの前に一連の HTTP 応答ヘッダーが含まれます。 Content-Type ヘッダーは、受信データ ストリームを application/pdf として識別し、どのような種類のコンテンツが期待されるかをブラウザーに伝えます。 Content-Disposition ヘッダーは、ブラウザーの動作を決定する重要な命令を提供します。 Content-Disposition: inline を送信するように構成されたサーバーは、ブラウザーが利用可能な PDF レンダリング機能を使用して、ブラウザー ウィンドウ内に PDF コンテンツを直接表示するようにブラウザーに指示します。 Content-Disposition: 添付ファイルを送信するように構成されたサーバーは、ユーザーにファイルをダウンロードしてローカルに保存するように求めるようブラウザに指示します。
Web サイト管理者とホスティング プロバイダーは、ドメインから提供されるすべての PDF ファイルに対してグローバルに、特定のフォルダーに対してディレクトリごとに、または個々のドキュメントに対してファイルごとに、Web サーバー レベルで Content-Disposition ヘッダーを構成します。サイト運営者は、訪問者がダウンロードの手間をかけずにブラウザーで PDF を読めるようにしたいと考え、インライン配信を構成します。サイト運営者は、ユーザーがアーカイブする必要がある納税書類、法的申告、または保証登録などの永久的なローカル コピーを訪問者が確実に保持できるようにしたい場合、添付ファイルの配信を構成します。ほとんどの場合、PDF ファイル自体のプロパティではなく、サーバー構成が決定要因となります。
PDFを編集してみる
インストールは必要ありません。ブラウザで直接動作します。
ブラウザ設定と内蔵 PDF 表示機能
最新のすべての Web ブラウザー (Chrome、Edge、Firefox、Safari) には、外部アプリケーションやプラグインを必要とせずに、ブラウザーのタブ内で PDF ドキュメントを直接レンダリングできる組み込みの PDF ビューアー コンポーネントが含まれています。これらの組み込みビューアは、すべての主要なブラウザでデフォルトで有効になっています。 Web サーバーが Content-Disposition ヘッダーをインラインに設定して PDF を送信すると、ブラウザーは受信データ ストリームを組み込みビューアーにルーティングし、通常のブラウザー インターフェイス要素とともにブラウザー タブ内のページをレンダリングします。サーバーが Content-Disposition: 添付ファイルを送信すると、組み込みビューアが利用可能か有効かどうかに関係なく、ブラウザはファイルをローカル ディスクにダウンロードします。
各ブラウザは、ブラウザ レベルで PDF ファイルに何が起こるかを制御するユーザー構成可能な設定を公開し、サーバーの指示とは独立して動作します。 Chrome で、[設定]、[プライバシーとセキュリティ]、[サイト設定] に移動し、[追加コンテンツ設定] までスクロールして、[PDF ドキュメント] を選択します。 [Chrome で PDF ファイルを自動的に開く代わりに PDF ファイルをダウンロード] というラベルの付いたトグルは、ブラウザが内蔵ビューアを使用するか、サーバーの Content-Disposition ヘッダーに関係なくすべての PDF を強制的にダウンロードするかを直接制御します。おそらく専用のデスクトップ アプリケーションで PDF を読むことを好むため、このトグルを意図的に有効にしているユーザーは、サーバーが正しくインライン送信している場合でも、クリックするすべての PDF リンクがダウンロードされることになります。
ブラウザ拡張機能とサードパーティの PDF 処理アプリケーション
一般的にダウンロードを管理したり、特に PDF ファイルを処理したりするインストール済みのブラウザ拡張機能は、サーバーの HTTP ヘッダーとブラウザ自体の組み込み PDF 設定の両方をインターセプトしてオーバーライドする可能性があります。ダウンロード マネージャー拡張機能は、application/pdf MIME タイプを持つコンテンツをインターセプトし、ブラウザーのビューアに表示させるのではなく、自動的にダウンロード キューにルーティングする場合があります。サードパーティの PDF ビューア拡張機能は、PDF コンテンツの指定ハンドラーとしてブラウザーに自身を登録し、独自のカスタム ビューアー インターフェイスでファイルを開くか、オフラインで表示するためにダウンロードするようユーザーに求める場合があります。
Adobe Acrobat のオプションのブラウザ拡張機能をインストールして有効にすると、PDF ファイルを指すリンクをインターセプトし、ブラウザの軽量の組み込みビューアで表示するのではなく、完全なデスクトップ Acrobat アプリケーションでドキュメントを開くよう提案できます。拡張機能の動作は、Acrobat 内で構成されたユーザー独自の環境設定によって制御されます。以前に優先 PDF 処理方法として「Acrobat で開く」を選択していたユーザーは、各 PDF が外部デスクトップ アプリケーションで起動することになるため、実際に別のアプリケーション ウィンドウでファイルを開いたときに、そのファイルがダウンロードされたかのような視覚的な印象を与える可能性があります。
| 係数 | PDF の動作への影響 | ユーザーコントロールレベル |
|---|---|---|
| サーバーコンテンツの配置: インライン | ブラウザの内蔵ビューアで PDF が開きます | ユーザーはサーバー構成を直接上書きできません |
| サーバーコンテンツの配置: 添付ファイル | ブラウザは他のすべての設定に関係なく PDF をダウンロードします | ユーザーはサーバー構成を直接上書きできません |
| ブラウザ PDF ビューアの切り替え設定 | 内蔵ビューアと強制ダウンロードを切り替えます | ブラウザ設定インターフェイスでの完全なユーザー制御 |
| ブラウザPDF拡張機能 | PDF 処理をインターセプトしてリダイレクトする可能性があります | ユーザーは拡張機能のインストールと構成を制御します |
ブラウザの PDF 処理動作の確認と変更
独自のブラウザによる PDF ファイルの処理方法を変更するには、ブラウザの設定インターフェイスを開いて PDF を検索します。 PDF の処理動作を制御するトグルまたはドロップダウンを見つけて、個人の好みに設定します。ブラウザがインライン表示用に設定されているにもかかわらず、特定の Web サイトで一貫して PDF のダウンロードが強制される場合、サーバーは意図的に添付ファイル Content-Disposition ヘッダーを送信しているため、ブラウザの設定だけではサーバーの明示的な指示を無効にすることはできません。 Web サイトの所有者に連絡して構成変更をリクエストするか、受信 HTTP 応答から Content-Disposition ヘッダーを削除または書き換えるように設計された特殊なブラウザ拡張機能をインストールします。
Web サイト所有者およびコンテンツ発行者が、PDF ドキュメントを訪問者のブラウザーでスムーズに開くことを希望している場合は、application/pdf MIME タイプを持つすべてのファイルに対して Content-Disposition: インラインを送信するように Web サーバーを構成します。 Apache HTTP サーバーで、.htaccess ファイル内の .pdf 拡張子を対象とする FilesMatch ブロック内に Header set Content-Disposition インライン ディレクティブを追加します。 Nginx では、PDF ファイルのリクエストを処理する add_header Content-Disposition インライン ディレクティブを location ブロック内に追加します。構成の変更は、すべての新しい受信リクエストに対して直ちに有効になります。
PDFを編集してみる
インストールは必要ありません。ブラウザで直接動作します。
