PyMuPDF 1.23.0rc1 - en to ja translation catalogue (71 entries)

en: PyMuPDF is a high-performance Python library for data extraction, analysis, conversion & manipulation of PDF (and other) documents.
ja: PyMuPDF は、PDF （およびその他の）ドキュメントのデータ抽出、分析、変換、操作のための高性能な Python ライブラリです。

en: PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, PDF Splitting, PDF Creation, Pyodide, PyScript
ja: PDFテキスト抽出、PDFイメージ抽出、PDF変換、PDFテーブル、PDF分割、PDF作成, Pyodide, PyScript

en: Low-Level Interfaces
ja: 低レベルインターフェース

en: Numerous methods are available to access and manipulate PDF files on a fairly low level. Admittedly, a clear distinction between "low level" and "normal" functionality is not always possible or subject to personal taste.
ja: PDFファイルにアクセスして操作するための多くのメソッドが低レベルで利用可能です。正直なところ、「低レベル」機能と「通常」機能の明確な区別は常にできるわけではなく、個人の好みによるところもあります。

en: It also may happen, that functionality previously deemed low-level is later on assessed as being part of the normal interface. This has happened in v1.14.0 for the class :ref:`Tools` - you now find it as an item in the Classes chapter.
ja: また、以前は低レベルと考えられていた機能が後に通常のインターフェースの一部として評価されることもあります。例えば、バージョン1.14.0ではクラス :ref:`Tools` についてそのようなことが起きており、現在では「Classes」のセクションで見つけることができます。

en: It is a matter of documentation only in which chapter of the documentation you find what you are looking for. Everything is available and always via the same interface.
ja: 何を探しているかに関しては、ドキュメントのどのセクションにあるかはドキュメンテーションのみの問題です。すべての情報は同じインターフェースを介して常に利用可能です。

en: How to Iterate through the :data:`xref` Table
ja: :data:`xref` テーブルのイテレーション方法

en: A PDF's :data:`xref` table is a list of all objects defined in the file. This table may easily contain many thousands of entries -- the manual :ref:`AdobeManual` for example has 127,000 objects. Table entry "0" is reserved and must not be touched. The following script loops through the :data:`xref` table and prints each object's definition::
ja: PDFの :data:`xref` テーブルはファイル内で定義されているすべてのオブジェクトのリストです。このテーブルには非常に多くのエントリが含まれることがあります - 例えば :ref:`AdobeManual` マニュアルには127,000のオブジェクトが含まれています。テーブルのエントリ「0」は予約されており、触れてはいけません

en: This produces the following output::
ja: これにより、以下の出力が生成されます::

en: A PDF object definition is an ordinary ASCII string.
ja: PDFオブジェクトの定義は通常のASCII文字列です。

en: How to Handle Object Streams
ja: オブジェクトストリームの処理方法

en: Some object types contain additional data apart from their object definition. Examples are images, fonts, embedded files or commands describing the appearance of a page.
ja: オブジェクトストリームの処理方法一部のオブジェクトタイプには、オブジェクト定義以外に追加のデータが含まれています。例として、画像、フォント、埋め込みファイル、またはページの外観を記述するコマンドが挙げられます。

en: Objects of these types are called "stream objects". PyMuPDF allows reading an object's stream via method :meth:`Document.xref_stream` with the object's :data:`xref` as an argument. It is also possible to write back a modified version of a stream using :meth:`Document.update_stream`.
ja: これらのタイプのオブジェクトは「ストリームオブジェクト」と呼ばれます。PyMuPDFでは、メソッド :meth:`Document.xref_stream` を使用して、オブジェクトの :data:`xref` を引数としてオブジェクトのストリームを読み取ることができます。また、:meth:`Document.update_stream` を使用して、ストリームの変更されたバージョンを書き戻すことも可能です。

en: Assume that the following snippet wants to read all streams of a PDF for whatever reason::
ja: 次のスニペットが、PDFのすべてのストリームを読み取るためのものであると仮定します::

en: :meth:`Document.xref_stream` automatically returns a stream decompressed as a bytes object -- and :meth:`Document.update_stream` automatically compresses it if beneficial.
ja: :meth:`Document.xref_stream` は自動的にバイトオブジェクトとして展開されたストリームを返し、:meth:`Document.update_stream` は必要に応じて自動的に圧縮されます。

en: How to Handle Page Contents
ja: ページ内容の処理方法

en: A PDF page can have zero or multiple :data:`contents` objects. These are stream objects describing **what** appears **where** and **how** on a page (like text and images). They are written in a special mini-language described e.g. in chapter "APPENDIX A - Operator Summary" on page 643 of the :ref:`AdobeManual`.
ja: PDFページにはゼロまたは複数の :data:`contents` オブジェクトが存在できます。これらは、ページ上に何がどこにどのように表示されるかを記述するストリームオブジェクト（テキストや画像など）です。これらは、:ref:`AdobeManual` のページ643の「付録A - オペレーターサマリー」などで説明されている特別なミニ言語で記述されています。

en: Every PDF reader application must be able to interpret the contents syntax to reproduce the intended appearance of the page.
ja: すべてのPDFリーダーアプリケーションは、コンテンツの構文を解釈してページの意図した表示を再現できる必要があります。

en: If multiple :data:`contents` objects are provided, they must be interpreted in the specified sequence in exactly the same way as if they were provided as a concatenation of the several.
ja: 複数の :data:`contents` オブジェクトが提供される場合、それらは複数のコンテンツを連結した場合とまったく同じ方法で、指定された順序で解釈される必要があります。

en: There are good technical arguments for having multiple :data:`contents` objects:
ja: 複数の :data:`contents` オブジェクトを持つメリットには、次のような良い技術的理由があります：

en: It is a lot easier and faster to just add new :data:`contents` objects than maintaining a single big one (which entails reading, decompressing, modifying, recompressing, and rewriting it for each change).
ja: 新しい :data:`contents` オブジェクトを追加するだけで、単一の大きなコンテンツオブジェクトを維持するよりもはるかに簡単で高速です（各変更のたびに読み取り、展開、変更、再圧縮、書き直しが必要です）。

en: When working with incremental updates, a modified big :data:`contents` object will bloat the update delta and can thus easily negate the efficiency of incremental saves.
ja: 増分更新を使用する場合、修正された大きな :data:`contents` オブジェクトは更新デルタを膨らませ、増分保存の効率を簡単に打ち消す可能性があります。

en: For example, PyMuPDF adds new, small :data:`contents` objects in methods :meth:`Page.insert_image`, :meth:`Page.show_pdf_page` and the :ref:`Shape` methods.
ja: 例えば、PyMuPDFは :meth:`Page.insert_image` 、 :meth:`Page.show_pdf_page` 、および  :ref:`Shape` メソッドで新しい小さな :data:`contents` オブジェクトを追加します。

en: However, there are also situations when a **single** :data:`contents` object is beneficial: it is easier to interpret and more compressible than multiple smaller ones.
ja: ただし、単一の :data:`contents` オブジェクトが有益な状況もあります。それは複数の小さなオブジェクトよりも解釈が容易で、圧縮が効果的です。

en: Here are two ways of combining multiple contents of a page::
ja: 以下は、ページの複数のコンテンツを組み合わせる2つの方法です：

en: The clean function :meth:`Page.clean_contents` does a lot more than just glueing :data:`contents` objects: it also corrects and optimizes the PDF operator syntax of the page and removes any inconsistencies with the page's object definition.
ja: :meth:`Page.clean_contents` は、:data:`contents` オブジェクトを結合するだけでなく、ページのPDFオペレータ構文を修正し最適化し、ページのオブジェクト定義との整合性を保つためにも役立ちます。

en: How to Access the PDF Catalog
ja: PDFカタログへのアクセス方法

en: This is a central ("root") object of a PDF. It serves as a starting point to reach important other objects and it also contains some global options for the PDF::
ja: これはPDFの中心的な（"ルート"）オブジェクトです。これは重要な他のオブジェクトに到達するための出発点として機能し、PDFのいくつかのグローバルオプションも含まれています::

en: Indentation, line breaks and comments are inserted here for clarification purposes only and will not normally appear. For more information on the PDF catalog see section 7.7.2 on page 71 of the :ref:`AdobeManual`.
ja: 字下げ、改行、コメントは説明のために挿入されており、通常は表示されません。PDFカタログの詳細については、 :ref:`AdobeManual` のページ71のセクション7.7.2を参照してください。

en: How to Access the PDF File Trailer
ja: PDFファイルトレーラーへのアクセス方法

en: The trailer of a PDF file is a :data:`dictionary` located towards the end of the file. It contains special objects, and pointers to important other information. See :ref:`AdobeManual` p. 42. Here is an overview:
ja: PDFファイルのトレーラーは、ファイルの終わりに位置する :data:`dictionary` です。特別なオブジェクトと、重要な他の情報へのポインタが含まれています。:ref:`AdobeManual` を参照してください（p. 42）。以下に概要を示します：

en: **Key**
ja: **キー**

en: **Type**
ja: **タイプ**

en: Size
ja: **値**

en: Number of entries in the cross-reference table + 1.
ja: クロスリファレンステーブル内のエントリ数 + 1 の数値。

en: Offset to previous :data:`xref` section (indicates incremental updates).
ja: 前の :data:`xref` セクションへのオフセット（増分更新を示す）。

en: (indirect) Pointer to the catalog. See previous section.
ja: (間接的) カタログへのポインタ。前のセクションを参照してください。

en: Pointer to encryption object (encrypted files only).
ja: (暗号化されたファイルのみ) 暗号化オブジェクトへのポインタ。

en: (indirect) Pointer to information (metadata).
ja: (間接的) 情報（メタデータ）へのポインタ。

en: File identifier consisting of two byte strings.
ja: 2つのバイト文字列からなるファイル識別子。

en: Offset of a cross-reference stream. See :ref:`AdobeManual` p. 49.
ja: クロスリファレンスストリームのオフセット。:ref:`AdobeManual` を参照してください（p. 49）。

en: Access this information via PyMuPDF with :meth:`Document.pdf_trailer` or, equivalently, via :meth:`Document.xref_object` using -1 instead of a valid :data:`xref` number.
ja: これらの情報には、PyMuPDFを使用して :meth:`Document.pdf_trailer` または、同等の :meth:`Document.xref_object` を使用して -1 の代わりに有効な :data:`xref` 番号を指定することでアクセスします。

en: How to Access XML Metadata
ja: XMLメタデータへのアクセス方法

en: A PDF may contain XML metadata in addition to the standard metadata format. In fact, most PDF viewer or modification software adds this type of information when saving the PDF (Adobe, Nitro PDF, PDF-XChange, etc.).
ja: PDFには、標準のメタデータ形式に加えてXMLメタデータが含まれている場合があります。実際、ほとんどのPDFビューアや編集ソフトウェアは、PDFを保存する際に（Adobe、Nitro PDF、PDF-XChangeなど）この種の情報を追加します。

en: PyMuPDF has no way to **interpret or change** this information directly, because it contains no XML features. XML metadata is however stored as a :data:`stream` object, so it can be read, modified with appropriate software and written back.
ja: しかし、PyMuPDFはXMLの機能を持たないため、この情報を直接解釈または変更する方法はありません。ただし、XMLメタデータは :data:`stream` オブジェクトとして格納されているため、適切なソフトウェアで読み取り、変更し、書き戻すことができます。

en: Using some XML package, the XML data can be interpreted and / or modified and then stored back. The following also works, if the PDF previously had no XML metadata::
ja: あるXMLパッケージを使用して、XMLデータを解釈および/または変更し、それを保存し直すことができます。次の方法もPDFに以前にXMLメタデータがない場合にも機能します::

en: How to Extend PDF Metadata
ja: PDFメタデータの拡張方法

en: Attribute :attr:`Document.metadata` is designed so it works for all :ref:`supported document types<Supported_File_Types>` in the same way: it is a Python dictionary with a **fixed set of key-value pairs**. Correspondingly, :meth:`Document.set_metadata` only accepts standard keys.
ja: 属性  :attr:`Document.metadata`  は、すべての :ref:`サポートされている <Supported_File_Types>` ドキュメントタイプで同じ方法で機能するように設計されています。これは、固定されたキーと値のセットを持つPython辞書です。同様に、:meth:`Document.set_metadata` は標準のキーのみを受け入れます。

en: However, PDFs may contain items not accessible like this. Also, there may be reasons to store additional information, like copyrights. Here is a way to handle **arbitrary metadata items** by using PyMuPDF low-level functions.
ja: しかし、PDFにはこのようにアクセスできない項目が含まれている場合があります。また、著作権などの追加情報を保存する理由もあるかもしれません。以下は、PyMuPDFの低レベル関数を使用して任意のメタデータ項目を処理する方法です。

en: As an example, look at this standard metadata output of some PDF::
ja: 例として、次のPDFの標準メタデータ出力をご覧ください::

en: Use the following code to see **all items** stored in the metadata object::
ja: 以下のコードを使用して、メタデータオブジェクトに保存されているすべてのアイテムを表示します::

en: *Vice versa*, you can also **store private metadata items** in a PDF. It is your responsibility to make sure that these items conform to PDF specifications - especially they must be (unicode) strings. Consult section 14.3 (p. 548) of the :ref:`AdobeManual` for details and caveats::
ja: 逆に、PDFにはプライベートなメタデータアイテムを保存することもできます。これらのアイテムがPDF仕様に準拠していることを確認する責任はあなたにあります。特に、これらは（Unicode）文字列である必要があります。詳細や注意事項については、Adobe PDFリファレンスのセクション14.3（p. 548）を参照してください::

en: To delete selected keys, use `doc.xref_set_key(xref, "mykey", "null")`. As explained in the next section, string "null" is the PDF equivalent to Python's `None`. A key with that value will be treated as not being specified -- and physically removed in garbage collections.
ja: 選択したキーを削除するには、`doc.xref_set_key(xref, "mykey", "null")` を使用します。次のセクションで説明されているように、文字列 `"null"` はPDFのバージョンでPythonの `None` に相当します。その値のキーは指定されていないものとして扱われ、ガベージコレクションで物理的に削除されます。

en: How to Read and Update PDF Objects
ja: PDFオブジェクトの読み取りと更新方法

en: There also exist granular, elegant ways to access and manipulate selected PDF :data:`dictionary` keys.
ja: 選択したPDF :data:`dictionary` キーにアクセスし、操作するための粒状で洗練された方法も存在します。

en: :meth:`Document.xref_get_keys` returns the PDF keys of the object at :data:`xref`::
ja: :meth:`Document.xref_get_keys` は、:data:`xref` のオブジェクトのPDFキーを返します::

en: Compare with the full object definition::
ja: 完全なオブジェクト定義と比較してください::

en: Single keys can also be accessed directly via :meth:`Document.xref_get_key`. The value **always is a string** together with type information, that helps with interpreting it::
ja: 単一のキーは、 :meth:`Document.xref_get_key`  を介して直接アクセスすることもできます。値は常に文字列であり、それを解釈するのに役立つタイプ情報が含まれています::

en: Here is a full listing of the above page keys::
ja: 以下は、上記のページキーの完全な一覧です::

en: An undefined key inquiry returns `('null', 'null')` -- PDF object type `null` corresponds to `None` in Python. Similar for the booleans `true` and `false`.
ja: 未定義のキーの問い合わせは、`('null', 'null')` を返します - PDFオブジェクトタイプ `null` はPythonの `None` に対応します。 `true` および `false` も同様です。

en: Let us add a new key to the page definition that sets its rotation to 90 degrees (you are aware that there actually exists :meth:`Page.set_rotation` for this?)::
ja: ページ定義に新しいキーを追加して、その回転角を90度に設定しましょう（実際には :meth:`Page.set_rotation` が存在することを知っているかと思いますが、そうですか？）::

en: This method can also be used to remove a key from the :data:`xref` dictionary by setting its value to `null`: The following will remove the rotation specification from the page: `doc.xref_set_key(page.xref, "Rotate", "null")`. Similarly, to remove all links, annotations and fields from a page, use `doc.xref_set_key(page.xref, "Annots", "null")`. Because `Annots` by definition is an array, setting en empty array with the statement `doc.xref_set_key(page.xref, "Annots", "[]")` would do the same job in this case.
ja: このメソッドは、値を `null` に設定することで :data:`xref` 辞書からキーを削除するためにも使用できます：次の方法は、ページから回転指定を削除します： `doc.xref_set_key(page.xref, "Rotate", "null")` 。同様に、ページからすべてのリンク、注釈、およびフィールドを削除するには、 `doc.xref_set_key(page.xref, "Annots", "null")`  を使用します。`Annots` は定義上配列であるため、`doc.xref_set_key(page.xref, "Annots", "[]")` という文で空の配列を設定すると、同じ操作が実行されます。

en: PDF dictionaries can be hierarchically nested. In the following page object definition both, `Font` and `XObject` are subdictionaries of `Resources`::
ja: PDF辞書は階層的に入れ子にすることができます。次のページオブジェクト定義では、`Font` と `XObject` は両方とも `Resources` のサブディクショナリです::

en: The above situation **is supported** by methods :meth:`Document.xref_set_key` and :meth:`Document.xref_get_key`: use a path-like notation to point at the required key. For example, to retrieve the value of key `Im1` above, specify the complete chain of dictionaries "above" it in the key argument: `"Resources/XObject/Im1"`::
ja: 上記の状況は、メソッド :meth:`Document.xref_set_key` と :meth:`Document.xref_get_key` によってサポートされています。必要なキーを指すために、パスのような表記法を使用します。たとえば、上記の `Im1` キーの値を取得するには、キー引数にその上位の辞書の完全なチェーン `"Resources/XObject/Im1"` を指定します::

en: The path notation can also be used to **directly set a value**: use the following to let `Im1` point to a different object::
ja: パス表記法は、値を直接設定するためにも使用できます。以下を使用して、`Im1` を異なるオブジェクトを指すように設定します::

en: Be aware, that **no semantic checks** whatsoever will take place here: if the PDF has no xref 9999, it won't be detected at this point.
ja: ここでは、何の意味的なチェックも行われないことに注意してください。PDFにxref 9999が存在しない場合、この段階では検出されません。

en: If a key does not exist, it will be created by setting its value. Moreover, if any intermediate keys do not exist either, they will also be created as necessary. The following creates an array `D` several levels below the existing dictionary `A`. Intermediate dictionaries `B` and `C` are automatically created::
ja: キーが存在しない場合、その値を設定することで新しく作成されます。さらに、中間のキーが存在しない場合も、必要に応じて自動的に作成されます。次の例では、既存の辞書 `A` の下にいくつかの階層下に配列 `D` を作成しています。中間の辞書 `B` と `C` も自動的に作成されます::

en: When setting key values, basic **PDF syntax checking** will be done by MuPDF. For example, new keys can only be created **below a dictionary**. The following tries to create some new string item `E` below the previously created array `D`::
ja: キーの値を設定する際には、MuPDFによって基本的なPDF構文のチェックが行われます。たとえば、新しいキーは辞書の下にのみ作成できます。次の例では、以前に作成された配列 `D` の下に新しい文字列アイテム `E` を作成しようとしています：

en: It is also **not possible**, to create a key if some higher level key is an **"indirect"** object, i.e. an xref. In other words, xrefs can only be modified directly and not implicitly via other objects referencing them::
ja: 同様に、上位のキーが「間接」オブジェクト、つまりxrefである場合、キーを作成することはできません。言い換えれば、xrefは直接的に変更できるが、それを参照する他のオブジェクトを通じて暗黙的に変更することはできません::

en: These are expert functions! There are no validations as to whether valid PDF objects, xrefs, etc. are specified. As with other low-level methods there is the risk to render the PDF, or parts of it unusable.
ja: これらは専門家向けの機能です！有効なPDFオブジェクトやxrefなどが指定されているかどうかの検証はありません。他の低レベルメソッドと同様に、PDF全体またはその一部を利用不能にする可能性があるため注意が必要です。

en: This documentation covers all versions up to |version|.
ja: このドキュメントは |version| までのすべてのバージョンを対象としています。
