ドキュメント · PDF ツールキット
PDF の変換の実際の意味: ラスタライズと再エンコード
· 背景
pdf 画像変換 ラスタライズ
「変換」は、ページをピクセルに描画する、ページ内で画像を折り返す、編集可能なテキストを再構築するなど、非常にさまざまな操作をカバーします。この投稿では、それぞれが何を意味するのか、および一部の変換は正確であり、他の変換は近似である理由について説明します。
テキストを失った「変換された」ファイル — 画像に変換されたページが検索または選択できなくなる理由
変換されたページは見た目が同じであっても、最も有用な特性が失われる可能性があります。 PDF-to-image は各ページをピクセルにレンダリングするため、テキスト レイヤーとして単語を選択、検索、または読み取ることができなくなります。 ZIP には、小さな PDF や編集可能なドキュメント コンテンツではなく、ページの画像が含まれています。
この損失は、スライド、チャット、カタログ、またはプレビューに画像が必要な場合に適切です。これは、アクセシビリティ、検索、コピー、または後の編集が重要な場合に有害です。最初の目視検査による類似性を保証するのではなく、必要な表現に基づいて変換を選択します。
ラスタライズ — ページのベクトル命令を選択した解像度でビットマップにレンダリングし、得られるものと失われるもの
ラスタライズでは、pdf.js にベクトル描画命令、フォント、画像を解釈させ、選択したスケールでキャンバスをペイントします。 ToolAcre は、文書のエッジを鮮明にする PNG と、小さい写真出力用の JPEG を提供します。各ページは 1 つの ZIP 内に個別に名前が付けられた画像になります。
レンダラーは、割り当て前にデバイスごとのピクセル バジェットをチェックし、サイズを超えるページを要求されたスケールよりも小さくすることができます。 PNG および JPEG は、ソース ベクトルやテキスト セマンティクスではなく、そのピクセル グリッドでレンダリングされた外観を保持します。選択した解像度を超えてズームすると、最終的には有限のラスターが表示されます。
ラッピング — 画像を新しいページ内に配置して PDF にすること、およびこれが画像自体にとってロスレスである理由
Images-to-PDF は、準備された 1 つの画像を新しい PDF ページごとに配置することで、反対方向に移動します。各画像のサイズを画像と余白に合わせてページに合わせます。 A4 および US Letter プリセットには、トリミングせずに画像全体が含まれ、中央に配置されます。結果は、再構築されたテキストではなく、静止画像コンテンツになります。
JPEG および PNG バイトは、可能な場合には直接埋め込まれます。 WebP、AVIF、GIF、BMP、HEIC、および HEIF はブラウザーのデコードに依存し、PNG として再エンコードされます。アニメーション GIF は最初のフレームのみを提供します。大きな画像はデバイスのピクセル バジェットに合わせて縮小される場合があり、すべての入力画像は 30 MB に制限されます。
再構築 — PDF を編集可能なドキュメントに変換するには、段落、列、表を推測する必要がある理由
編集可能なワードプロセッサ文書を再構築するには、ページの外観から読み上げ順序、段落、列、表、スタイルを推測する必要があります。 ToolAcre はその操作や OCR を提供しません。 PDF-to-image は意味構造を意図的に破棄し、images-to-PDF は意図的に画像をページ内にラップします。
編集可能な変換がないことは重要な範囲であり、トグルが欠落しているわけではありません。別のシステムが認識しない限り、スキャンにはテキストが含まれません。また、認識しても元のオーサリング モデルは完全には復元されません。編集可能な構造が実際の要件である場合は、専用の OCR またはドキュメント変換ワークフローを使用します。
解像度、色、サイズ - ラスタライズされたページがきれいに印刷されるか、柔らかく見えるかを決定する設定
解像度は、出力ピクセルのサイズとメモリ使用量を制御します。 「画面」、「良好」、「高」、および「非常に高い」は、インターフェイスのスケールの増加に対応しますが、レンダラーは予算を超えるページをダウンスケールする場合があります。 JPEG は、92 パーセント付近の固定品質を使用します。品質スライダーはありません。
PNG は、JPEG エッジ アーティファクトを回避するため、小さなテキストや線の作業に適していますが、より大きくすることもできます。 JPEG は、少量の配送が重要な場合に写真ページに適しています。混合サイズのソース ページでは、1 つのスケールで混合サイズの画像が生成され、ZIP では、すでに圧縮されている画像データを再圧縮するのではなく、保存されているエントリが使用されます。
PDF 解析にはワーカーが使用されますが、キャンバスのエンコードと画像の準備にはメインスレッドのブラウザー API が必要です
ローカル変換は、すべてのステップが 1 つのワーカーで実行されることを意味するわけではありません。 pdf.js は、ドキュメントの JavaScript 評価を無効にして、バンドルされた独自のワーカーを介して解析しますが、キャンバス エンコーディングはメイン スレッドに留まる必要があります。ループはページ間でイールドするため、進行とコントロールは描画を続けます。
画像から PDF への場合、ブラウザーの画像準備によりメイン スレッドでサポートされていない形式をデコードして描画でき、その後 pdf-lib が準備された PNG または JPEG データをツールキット ワーカーでアセンブルします。これらの境界は実装を正確に説明し、レンダリングと再エンコードが単に Web ワーカーで行われるというアウトラインの広範な主張を置き換えます。
このツールキットは、特に PDF-to-PNG/JPEG と、images-to-PDF を提供します。
出荷される変換は特定のものです。 Image への PDF は、暗号化されていない PDF から 50 MB までを受け入れ、PNG または JPEG ページを ZIP 形式で返します。 PDF への画像は、それぞれ最大 30 MB までのサポートされているブラウザー画像形式を受け入れ、ページごとに 1 つの画像を含む 1 つの `images.pdf` を返します。
このツールキットは、PDF を編集可能なオフィス形式に変換したり、OCR を実行したり、すべてのページを 1 つの長い画像に結合したり、PDF-画像-PDF の往復でテキストを保存したりすることはありません。サポートされている入力セクションと操作コントロールにはこれらの正確なパスが記載されているため、機能を曖昧なままにする必要はありません。
要点 — 開始する前にどの種類の変換が必要かを知ってから、サポートされているものについては PDF ツールキットを使用してください
“Convert” can mean rendering structured pages into pixels or wrapping pixels inside newly structured pages.これらの方向は可逆的であるように見えますが、そうではありません。ページ テキストがラスターになると、そのラスターを別の PDF に配置しても、選択可能な文字やベクトル描画命令は再作成されません。
必要なアーティファクトが純粋に画像である場合は PDF-to-image を使用し、必要なコンテナーが実際にページ化された PDF である場合は image-to-PDF を使用します。どちらも明示的なワーカーとメインスレッドの責任、ハード入力制限、およびメモリ ガードを使用してローカルで実行されます。開始する前に正しい表現を選択すると、視覚的には成功しても機能的には間違った結果が生じるのを防ぐことができます。自動縮小または形式変換については、結果のメモを確認してください。報告された変更は、プレビューが許容できるように見えても、印刷の適合性に影響を与える可能性があるためです。将来の検索、アクセシビリティ、または編集が重要になる可能性がある場合は常に、構造化された PDF を保存し、ソースの代替ではなく、使い捨ての配信アセットとしてラスター派生データを作成します。それらの派生ファイルには、その形式とスケールを付けて名前を付けてください。そうすれば、印刷やアーカイブでの使用を目的とした文書である画面解像度の画像バンドルを間違わないようになります。