PDF を翻訳した後もリンクは機能しますか: まずリンク リストを作成します
PDF が翻訳された後もリンクは機能しますか?まずはリンクのリストを作成します。このプロトコルは、形式チェックが許可リストに合格したことを示すだけで、ターゲット Web サイトが信頼できることを意味するものではありません。例は目録作成と分類のみが行われ、リンクにはアクセスされません。内部ジャンプでは 0 から始まるページ番号が使用されるため、分割またはマージ後に再マップする必要があります。
PDF が翻訳されると、ドキュメント内の外部リンク、内部ジャンプ、およびローカル アクションが無効になったり、間違った場所をポイントしたりする場合があります。多くのチームは、納品の直前までこれらの問題を発見せず、やり直しコストが高くなります。ドキュメントの翻訳、ナレッジ ベースの移行、または公開プロセスを担当している場合、この記事は、配信前にリンクをインベントリするのに役立ちます。
次の方法では、まずリンクを分類し、カテゴリに応じてリンクの処理方法を決定します。サンプル コードは、インベントリと分類のみを実行し、リンクへのアクセスやアクティブ化は行いません。これを読んだ後は、リンクのリストを作成し、どのリンクに同意のマークを付ける必要があるのか、どのリンクにターゲット ページ番号を記録する必要があるのか、どのリンクを人間によるレビューに提出する必要があるのかを把握できるはずです。
PDF が翻訳された後もリンクは機能しますか?一文の結論
翻訳後もリンクを引き続き使用できるかどうかは、各リンクのタイプを明確に把握し、タイプごとに個別に処理するかどうかによって決まります。スクリプトは分類のみを担当し、リンクへのアクセスは担当しません。
| あなたの状況 | 推奨される実践方法 | 理由 |
|---|---|---|
| ドキュメントに外部 HTTP リンクが含まれています | 契約書を許可されているとだけマークし、検査記録を保管してください | 契約の許可が対象のWebサイトの信頼性を意味するものではなく、信頼性については別途確認する必要があります。 |
| ドキュメントには内部ジャンプが含まれています | ゼロから始まるターゲット ページ番号を記録します。 | 分割または結合するとページ番号が変わるため、再マッピングが必要になります。 |
| ドキュメントにはローカル アクションが含まれています | 手動レビュー用にマークされていますが、開かれていない、または実行されていません | ローカルアクションは自動的に実行されるべきではありません |
| PDF OCR または再フォーマット | リンクの四角形が表示されているテキストと位置合わせされているかどうかを手動で確認します | リンク自体は安全ではないため、ユーザー エクスペリエンスが損なわれる可能性があります |
この記事で最初に解決すべき問題はどれですか?
リンク プロトコルが許可リストに含まれている場合、それは形式チェックに合格したことを意味するだけで、ターゲット Web サイトが信頼できることを意味するわけではありません。例はインベントリと分類のみが行われ、リンクへのアクセスや開始は行われません。内部ジャンプ ページ番号はゼロベースのインデックスを使用するため、分割またはマージ後に再マップする必要があります。
自己完結型の構成例
依存関係についてはインポート リストを参照してください。コードはメモリ内の入力を構築し、実行レコードは個別に提供され、すべての実ファイルの保証を表すものではありません。
import pymupdf
from urllib.parse import urlsplit
def classify(link):
if link.get("kind") == pymupdf.LINK_URI:
scheme = urlsplit(link.get("uri", "")).scheme.lower()
return "allowed_scheme_needs_review" if scheme in {"https", "http", "mailto"} else "blocked_scheme"
if link.get("kind") == pymupdf.LINK_GOTO:
return "internal_remap_needed"
return "manual_review"
with pymupdf.open() as source:
page = source.new_page()
page.insert_link({"kind": pymupdf.LINK_URI, "uri": "https://example.com/", "from": pymupdf.Rect(10, 10, 100, 30)})
raw = source.tobytes()
with pymupdf.open(stream=raw, filetype="pdf") as doc:
links = doc[0].get_links()
assert len(links) == 1
assert classify(links[0]) == "allowed_scheme_needs_review"
assert classify({"kind": pymupdf.LINK_URI, "uri": "javascript:alert(1)"}) == "blocked_scheme"
assert classify({"kind": pymupdf.LINK_GOTO, "page": 0}) == "internal_remap_needed"
assert classify({"kind": pymupdf.LINK_LAUNCH}) == "manual_review"
PyMuPDF リンクの抽出とセキュリティ チェックの例
この例は、PyMuPDF の API 動作に従うように書かれています。LINK_GOTO タイプのリンクは page キーを使用し、ページ番号は topage や firstpagenum ではなく 0 から始まります。 get_text() は、clip パラメーターなしで内容全体を返します。
例には、それぞれ正規経路と1つのキー境界条件をカバーする2つの主張が含まれています。
リンク受け入れチェックリストと手動レビューの境界
コードは機械的な分類を完了できますが、ビジネス上の判断に代わることはできません。次の表は、一般的なリンク ステータスと対応する処理決定を示し、自動レビューと手動レビューの境界を明確にしています。
コードは、分類ロジックが正しいことのみを保証します。リンクを保持する必要があるかどうか、およびコピーを更新する必要があるかどうかは、ドキュメント ビジネスに精通した人が決定する必要があります。特に PDF が OCR 処理または再フォーマットされた後は、リンクの四角形が表示されているテキストと位置がずれる可能性があります。この時点では、リンク自体が安全であっても、ユーザー エクスペリエンスが損なわれているため、手動で調整する必要があります。
📊 コアの比較
以下の表はリンク タイプごとの処理を比較しており、各行には実行すべきことと実行すべきではない推論のみがリストされています。
| 観察する | 何をするか | 推測すべきではない |
|---|---|---|
| HTTPリンク | プロトコルのみを許可するマークを付ける | ターゲットの信頼性は個別にチェックされます |
| 内部ジャンプ | ゼロベースのターゲット ページをレコードする | 逆アセンブル後の再マッピング |
| ローカルアクション | 人間のレビューにフラグを立てる | 開かない、または実行されない |
参考資料と次のステップ
- PyMuPDF Page.get_links()公式ドキュメント: https://pymupdf.readthedocs.io/en/latest/page.html#Page.get_links
- PyMuPDF 座標系の説明 (リンク四角形の位置を理解する): https://pymupdf.readthedocs.io/en/latest/page.html#co座標
複数のリンク タイプを含む代表的な PDF を選択し、ローカル環境で上記の分類スクリプトを実行して、リンク監査レポートを生成することをお勧めします。レポート内の「手動レビューが必要」エントリの割合に基づいて、セキュリティ ポリシーの定数を調整するか、ホワイトリストを補足します。レポートの内容が安定していて解釈可能な場合にのみ、正式な翻訳納品の受け入れプロセスに含まれます。
ドキュメントの翻訳にはこのチェックリストを使用してください
同じ減感処理されたサンプルが翻訳プロセスに送信される前に、ページ順序、ソースの場所、およびテキストの整合性がチェックされます。翻訳後も、タイトル、本文、イラストが正しく対応しているか確認する必要があります。文章が滑らかかどうかだけをチェックすることはできません。
OmniDoc (製品ポータル)はマルチフォーマット文書翻訳ポータルを提供しており、公式 Web サイトでは OCR、用語集、対訳比較機能が導入されています。ファイルから直接処理を開始したい場合は、実際のサンプルを使用してこのパスを評価できます。
アップロード許可のある感度を下げたファイルを使用し、この記事のチェック項目を使用して結果を確認してください。 OmniDoc がこの記事で言及されているオープン ソース ライブラリまたは内部アルゴリズムを使用しているという主張はありません。また、サンプルは製品パフォーマンス テストの代替となるものではありません。
🎯 どの方法があなたに適していますか?
リンクを保持できるかどうかを迅速に判断する必要がある場合
まずはリンクタイプを見てみましょう。外部 HTTP リンクはプロトコル チェックのみを実行し、ターゲットの信頼性を個別に検証する必要があります。
PDF が分割または結合されている場合
内部ジャンプ ページ番号を再マップし、受け入れられる前に 0 から始まるターゲット ページを記録します。
PDF が OCR されているか、再フォーマットされている場合
リンクの四角形が表示されているテキストと位置合わせされているかどうかを 1 つずつ確認します。このステップはスクリプトだけでは完了できません。
複数の文書を一括処理したい場合
まず代表的なサンプルを使用して監査レポートを生成し、レポートが安定していて解釈可能であることを確認してから、それを正式なプロセスに進めます。
❓ よくある質問 (FAQ)
1. リンク プロトコル チェックに合格した場合、そのリンクは安心してクリックできるということでしょうか?
いいえ。プロトコル チェックは、この形式チェックに合格したことを示すだけです。対象のWebサイトが信頼できるものかどうかは別途確認が必要です。
2. PDF を分割または結合した後、内部ジャンプに対処するにはどうすればよいですか?
内部ジャンプ ページ番号はゼロベースのインデックスを使用するため、分割またはマージ後に再マッピングする必要があります。
3. スクリプトはどのリンクを保持するかを自動的に決定できますか?
できません。コードは機械的な分類のみを完了します。リンクを保持し、コピーを更新するかどうかは、ビジネスに精通した人が決定する必要があります。
4. リンク自体には何の問題もありませんが、それでもエクスペリエンスに問題が発生するのはなぜですか?
PDF を OCR または再フォーマットすると、リンクの四角形が表示されるテキストとずれてしまう可能性があり、手動での検証が必要になります。
5. サンプル コードはドキュメント内のリンクにアクセスしますか?
しません。この例は目録と分類のみであり、リンクにアクセスしたり、リンクを開始したりするものではありません。
📝 概要
PDF 翻訳後のリンクの問題については、まず在庫に頼ってから、手動の判断に頼ってください。スクリプトは分類を担当し、ビジネス上の決定と経験の検証は手動で完了する必要があります。


