PyMuPDF 1.23.0rc1 - en to ja translation catalogue (101 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: Text
ja: テキスト

en: How to Extract all Document Text
ja: すべてのドキュメントテキストを抽出する方法

en: This script will take a document filename and generate a text file from all of its text.
ja: このスクリプトは、ドキュメントのファイル名を受け取り、そのテキストからテキストファイルを生成します。

en: The document can be any :ref:`supported type<Supported_File_Types>`.
ja: ドキュメントは、:ref:`サポートされている <Supported_File_Types>` 任意のタイプのものが使用できます。

en: The script works as a command line tool which expects the document filename supplied as a parameter. It generates one text file named "filename.txt" in the script directory. Text of pages is separated by a form feed character::
ja: このスクリプトはコマンドラインツールとして機能し、ドキュメントのファイル名をパラメータとして受け取ります。スクリプトのディレクトリに「filename.txt」という名前のテキストファイルが生成されます。ページのテキストはフォームフィード文字で区切られます。

en: The output will be plain text as it is coded in the document. No effort is made to prettify in any way. Specifically for PDF, this may mean output not in usual reading order, unexpected line breaks and so forth.
ja: 出力はドキュメント内でコード化された通りのプレーンテキストになるため、見栄えの調整は行いません。特にPDFの場合、通常の読み順にならない出力や予期せぬ改行などが発生するかもしれません。

en: You have many options to rectify this -- see chapter :ref:`Appendix2`. Among them are:
ja: これを修正するための多くのオプションがあります。詳細は :ref:`Appendix2` 章「埋め込みファイルに関する考慮事項」を参照してください。以下の方法があります：

en: Extract text in HTML format and store it as a HTML document, so it can be viewed in any browser.
ja: テキストをHTML形式で抽出し、HTMLドキュメントとして保存することで、任意のブラウザで表示できるようにします。

en: Extract text as a list of text blocks via *Page.get_text("blocks")*. Each item of this list contains position information for its text, which can be used to establish a convenient reading order.
ja: Page.get_text("blocks")を使ってテキストブロックのリストとして抽出します。リストの各アイテムにはテキストの位置情報が含まれており、便利な読み順を確立するのに使用できます。

en: Extract a list of single words via *Page.get_text("words")*. Its items are words with position information. Use it to determine text contained in a given rectangle -- see next section.
ja: Page.get_text("words")を使って単語のリストを抽出します。各アイテムには位置情報が含まれています。これを使用して特定の四角形に含まれるテキストを決定します。

en: See the following two sections for examples and further explanations.
ja: 以下の2つのセクションを見て、例と詳細な説明をご覧ください。

en: How to Extract Key-Value Pairs from a Page
ja: ページからキーと値のペアを抽出する方法

en: If the layout of a page is *"predictable"* in some sense, then there is a simple way to find the values for a given set of keywords fast and easily -- without using regular expressions. Please see `this <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/text-extraction/lookup-keywords.py>`_ example script.
ja: もしページのレイアウトがある程度予測可能であれば、正規表現を使用せずに、特定のキーワードに対する値を迅速かつ簡単に見つける方法があります。 `以下の例のスクリプト <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/text-extraction/lookup-keywords.py>`_ を参照してください。

en: "Predictable" in this context means:
ja: ここでの「予測可能」とは、次のような意味です：

en: Every keyword is followed by its value -- no other text is present in between them.
ja: 各キーワードの後にはその値が続きます。それらの間に他のテキストはありません。

en: The bottom of the value's boundary box is **not above** the one of the keyword.
ja: 値の境界ボックスの下端は、キーワードの境界ボックスよりも上にありません。

en: There are **no other restrictions**: the page layout may or may not be fixed, and the text may also have been stored as one string. Key and value may have any distance from each other.
ja: 他の制約はありません：ページのレイアウトが固定されているかどうかは問いませんし、テキストは1つの文字列として保存されている可能性もあります。キーと値はお互いに任意の距離を持つかもしれません。

en: For example, the following five key-value pairs will be correctly identified::
ja: 例として、以下の5つのキーと値のペアが正しく識別されます::

en: How to Extract Text from within a Rectangle
ja: 四角形内のテキストを抽出する方法

en: There is now (v1.18.0) more than one way to achieve this. We therefore have created a `folder <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/textbox-extraction>`_ in the PyMuPDF-Utilities repository specifically dealing with this topic.
ja: 現在（v1.18.0）では、これを実現するための複数の方法があります。そのため、私たちは `PyMuPDF-Utilities <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/textbox-extraction>`_ リポジトリに、この特定のトピックに対応するフォルダを作成しました。

en: How to Extract Text in Natural Reading Order
ja: 自然な読み順でテキストを抽出する方法

en: One of the common issues with PDF text extraction is, that text may not appear in any particular reading order.
ja: PDFのテキスト抽出によくある問題の1つは、テキストが特定の読み順に表示されないことです。

en: This is the responsibility of the PDF creator (software or a human). For example, page headers may have been inserted in a separate step -- after the document had been produced. In such a case, the header text will appear at the end of a page text extraction (although it will be correctly shown by PDF viewer software). For example, the following snippet will add some header and footer lines to an existing PDF::
ja: これはPDFの作成者（ソフトウェアまたは人間）の責任です。たとえば、ページヘッダーはドキュメントが作成された後の別のステップで挿入された可能性があります。そのような場合、ヘッダーテキストはページテキストの抽出の最後に表示されることがあります（ただし、PDFビューアソフトウェアでは正しく表示されます）。以下のスニペットは、既存のPDFにいくつかのヘッダーとフッターの行を追加します::

en: The text sequence extracted from a page modified in this way will look like this:
ja: このように変更されたページから抽出されたテキストのシーケンスは次のようになります：

en: original text
ja: 元のテキスト

en: header line
ja: ヘッダーライン

en: footer line
ja: フッターライン

en: PyMuPDF has several means to re-establish some reading sequence or even to re-generate a layout close to the original:
ja: PyMuPDFには、いくつかの方法で読み順を再確立したり、元のレイアウトに近い形で再生成する手段があります：

en: Use `sort` parameter of :meth:`Page.get_text`. It will sort the output from top-left to bottom-right (ignored for XHTML, HTML and XML output).
ja: :meth:`Page.get_text` の `sort` パラメーターを使用します。これにより、出力が左上から右下に向かってソートされます（XHTML、HTML、XML出力には無効です）。

en: Use the `fitz` module in CLI: `python -m fitz gettext ...`, which produces a text file where text has been re-arranged in layout-preserving mode. Many options are available to control the output.
ja: CLIでfitzモジュールを使用します： `python -m fitz gettext ...` 。これにより、テキストがレイアウトを保持するモードで再配置されたテキストファイルが生成されます。出力を制御するための多くのオプションが利用可能です。

en: You can also use the above mentioned `script <https://github.com/pymupdf/PyMuPDF/wiki/How-to-extract-text-from-a-rectangle>`_ with your modifications.
ja: また、上記の `スクリプト <https://github.com/pymupdf/PyMuPDF/wiki/How-to-extract-text-from-a-rectangle>`_ を自分の変更とともに使用することもできます。

en: How to :index:`Extract Table Content <pair: extract; table>` from Documents
ja: ドキュメントから表の内容を抽出する方法

en: If you see a table in a document, you are normally not looking at something like an embedded Excel or other identifiable object. It usually is just normal, standard text, formatted to appear as tabular data.
ja: 文書で表を見る場合、通常は埋め込まれたExcelなどの識別可能なオブジェクトのようなものではありません。通常、単なる通常の標準テキストで、表のデータとして表示されるようにフォーマットされています。

en: Extracting tabular data from such a page area therefore means that you must find a way to **identify** the table area (i.e. its boundary box), then **(1)** graphically indicate table and column borders, and **(2)** then extract text based on this information.
ja: したがって、そのようなページ領域から表のデータを抽出するには、まず表の領域（つまり、その境界ボックス）を特定する方法を見つける必要があり、その後（1）グラフィカルに表と列の境界を示し、（2）この情報に基づいてテキストを抽出する必要があります。

en: This can be a very complex task, depending on details like the presence or absence of lines, rectangles or other supporting vector graphics.
ja: これは、線、四角形、またはその他のサポートベクトルグラフィックの存在または不在などの詳細に依存するため、非常に複雑なタスクになる可能性があります。

en: Method :meth:`Page.find_tables` does all that for you, with a high table detection precision. Its great advantage is that there are no external library dependencies, nor the need to employ artificial intelligence or machine learning technologies. It also provides an integrated interface to the well-known Python package for data analysis `pandas <https://pypi.org/project/pandas/>`_.
ja: Method :meth:`Page.find_tables` は、高い表検出精度を備えて、すべてをあなたのために行います。その大きな利点は、外部ライブラリの依存関係がないこと、人工知能や機械学習技術を使用する必要がないことです。また、データ分析のためのPythonパッケージである `pandas <https://pypi.org/project/pandas/>`_ のための統合されたインターフェースも提供します。

en: Please have a look at example `Jupyter notebooks <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/table-analysis>`_, which cover standard situations like multiple tables on one page or joining table fragments across multiple pages.
ja: 標準的な状況をカバーする例の `Jupyter <https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/table-analysis>`_ ノートブックをご覧いただければ幸いです。これには、1つのページに複数の表や複数のページにまたがる表の断片を結合するなどの状況が含まれています。

en: How to Mark Extracted Text
ja: 抽出したテキストをマークする方法

en: There is a standard search function to search for arbitrary text on a page: :meth:`Page.search_for`. It returns a list of :ref:`Rect` objects which surround a found occurrence. These rectangles can for example be used to automatically insert annotations which visibly mark the found text.
ja: ページ上で任意のテキストを検索するための標準的な検索機能があります:  :meth:`Page.search_for` です。これは、見つかったテキストを囲む :ref:`Rect` オブジェクトのリストを返します。これらの四角形は、見つかったテキストを目に見えるようにマークするために自動的に注釈を挿入するのに使用できます。

en: This method has advantages and drawbacks. Pros are:
ja: この方法には利点と欠点があります。利点は次のとおりです：

en: The search string can contain blanks and wrap across lines
ja: 検索文字列には空白を含めることができ、行をまたぐことができます。

en: Upper or lower case characters are treated equal
ja: 大文字と小文字は同じように扱われます。

en: Word hyphenation at line ends is detected and resolved
ja: 行末での単語のハイフネーションが検出され、解決されます。

en: Return may also be a list of :ref:`Quad` objects to precisely locate text that is **not parallel** to either axis -- using :ref:`Quad` output is also recommended, when page rotation is not zero.
ja: 返り値は :ref:`Quad` オブジェクトのリストになる場合もあり、これにより軸に対して平行でないテキストを正確に位置付けることができます。ページの回転がゼロでない場合には、 :ref:`Quad` の出力を使用することも推奨されます。

en: But you also have other options::
ja: ただし、他にも選択肢があります::

en: This script uses `Page.get_text("words")` to look for a string, handed in via cli parameter. This method separates a page's text into "words" using spaces and line breaks as delimiters. Further remarks:
ja: このスクリプトは、cliパラメーターを介して渡された文字列を検索するためにPage.get_text("words")を使用します。この方法では、ページのテキストがスペースと改行を区切りとして「単語」に分割されます。さらなる注釈：

en: If found, the **complete word containing the string** is marked (underlined) -- not only the search string.
ja: 文字列が見つかった場合、検索文字列だけでなく、その文字列を含む完全な単語がマークされます（アンダーラインが引かれます）。

en: The search string may **not contain spaces** or other white space.
ja: 検索文字列にはスペースや他の空白文字を含めることはできません。

en: As shown here, upper / lower cases are **respected**. But this can be changed by using the string method *lower()* (or even regular expressions) in function *mark_word*.
ja: ここで示したように、大文字と小文字は区別されますが、`mark_word` 関数で `lower()` メソッド（または正規表現）を使用することで変更できます。

en: There is **no upper limit**: all occurrences will be detected.
ja: 上限はありません。すべての出現を検出します。

en: You can use **anything** to mark the word: 'Underline', 'Highlight', 'StrikeThrough' or 'Square' annotations, etc.
ja: 単語をマークするために何を使用しても構いません：「アンダーライン」、「ハイライト」、「取り消し線」、「四角」の注釈などがあります。

en: Here is an example snippet of a page of this manual, where "MuPDF" has been used as the search string. Note that all strings **containing "MuPDF"** have been completely underlined (not just the search string).
ja: 以下は、このマニュアルのページの一部の例スニペットで、「MuPDF」が検索文字列として使用されています。注意：「MuPDF」を含むすべての文字列が完全にアンダーラインで引かれていることに注意してください（検索文字列だけでなく）。

en: How to Mark Searched Text
ja: 検索したテキストをマークする方法

en: This script searches for text and marks it::
ja: このスクリプトはテキストを検索してマークします::

en: The result looks like this:
ja: 結果は以下のようになります：

en: How to Mark Non-horizontal Text
ja: 非水平テキストをマークする方法

en: The previous section already shows an example for marking non-horizontal text, that was detected by text **searching**.
ja: 前のセクションでは、テキスト検索によって検出された非水平テキストのマークの例が既に示されています。

en: But text **extraction** with the "dict" / "rawdict" options of :meth:`Page.get_text` may also return text with a non-zero angle to the x-axis. This is indicated by the value of the line dictionary's `"dir"` key: it is the tuple `(cosine, sine)` for that angle. If `line["dir"] != (1, 0)`, then the text of all its spans is rotated by (the same) angle != 0.
ja: しかし、 :meth:`Page.get_text` の「dict」/「rawdict」オプションを使用したテキスト抽出では、x軸に対してゼロでない角度のテキストも返される場合があります。これは、行の辞書の "dir" キーの値によって示されます：それはその角度に対する  `(cosine, sine)`  のタプルです。 `line["dir"] != (1, 0)`  であれば、すべてのスパンのテキストは (同じ) 角度 != 0 によって回転しています。

en: The "bboxes" returned by the method however are rectangles only -- not quads. So, to mark span text correctly, its quad must be recovered from the data contained in the line and span dictionary. Do this with the following utility function (new in v1.18.9)::
ja: ただし、このメソッドによって返される「bboxes」は四角形のみであり、クワッドではありません。したがって、スパンテキストを正しくマークするには、行とスパンの辞書に含まれるデータからクワッドを回復する必要があります。以下のユーティリティ関数を使用してください（v1.18.9で新しく追加されました）::

en: If you want to **mark the complete line** or a subset of its spans in one go, use the following snippet (works for v1.18.10 or later)::
ja: 一度に完全な行またはその一部のスパンをマークしたい場合は、以下のスニペットを使用してください（v1.18.10以降で動作します）

en: The `spans` argument above may specify any sub-list of `line["spans"]`. In the example above, the second to second-to-last span are marked. If omitted, the complete line is taken.
ja: 上記の `spans` 引数は、`line["spans"]` の任意の部分リストを指定できます。上記の例では、2番目から最後から2番目のスパンがマークされます。省略すると、完全な行が取得されます

en: How to Analyze Font Characteristics
ja: フォントの特性を分析する方法

en: To analyze the characteristics of text in a PDF use this elementary script as a starting point:
ja: PDF内のテキストの特性を分析するには、以下の初歩的なスクリプトを出発点として使用します::

en: Here is the PDF page and the script output:
ja: 以下はPDFページとスクリプトの出力です。

en: How to Insert Text
ja: テキストの挿入方法

en: PyMuPDF provides ways to insert text on new or existing PDF pages with the following features:
ja: PyMuPDFは、以下の機能を備えて新しいまたは既存のPDFページにテキストを挿入する方法を提供しています：

en: choose the font, including built-in fonts and fonts that are available as files
ja: フォントの選択：組み込みのフォントやファイルとして利用可能なフォントを選択できます。

en: choose text characteristics like bold, italic, font size, font color, etc.
ja: テキストの特性の選択：太字、斜体、フォントサイズ、フォントカラーなど、テキストの特性を選択できます。

en: position the text in multiple ways:
ja: テキストの配置方法：

en: either as simple line-oriented output starting at a certain point,
ja: 特定のポイントを起点として単純な行指向の出力として配置することができます。

en: or fitting text in a box provided as a rectangle, in which case text alignment choices are also available,
ja: ボックスにテキストをフィットさせる場合は、テキストの配置を選択することもできます。この場合、テキストの整列オプションも利用できます。

en: choose whether text should be put in foreground (overlay existing content),
ja: テキストを前面に配置するか選択できます（既存のコンテンツをオーバーレイします）。

en: all text can be arbitrarily "morphed", i.e. its appearance can be changed via a :ref:`Matrix`, to achieve effects like scaling, shearing or mirroring,
ja: テキストは任意に「変形」されることができます。つまり、行列を使用して拡大、せん断、反転などの効果を得ることができます。

en: independently from morphing and in addition to that, text can be rotated by integer multiples of 90 degrees.
ja: 変形とは別に、テキストを90度の整数倍で回転させることもできます。

en: All of the above is provided by three basic :ref:`Page`, resp. :ref:`Shape` methods:
ja: 以上のすべては、それぞれの基本的な :ref:`Page` 、:ref:`Shape` メソッドによって提供されています。

en: :meth:`Page.insert_font` -- install a font for the page for later reference. The result is reflected in the output of :meth:`Document.get_page_fonts`. The font can be:
ja: :meth:`Page.insert_font` - ページにフォントをインストールして後で参照できるようにします。その結果は、 :meth:`Document.get_page_fonts` の出力に反映されます。フォントは以下の方法で提供できます：

en: provided as a file,
ja: ファイルとして提供する。

en: via :ref:`Font` (then use :attr:`Font.buffer`)
ja: :ref:`Font` を使用して提供する（その場合、 :attr:`Font.buffer` を使用します）。

en: already present somewhere in **this or another** PDF, or
ja: 既にこのPDFまたは別のPDFのどこかに存在する。

en: be a **built-in** font.
ja: 組み込みフォントである。

en: :meth:`Page.insert_text` -- write some lines of text. Internally, this uses :meth:`Shape.insert_text`.
ja: :meth:`Page.insert_text`  - テキストの行を書き込みます。内部的には :meth:`Shape.insert_text` を使用します。

en: :meth:`Page.insert_textbox` -- fit text in a given rectangle. Here you can choose text alignment features (left, right, centered, justified) and you keep control as to whether text actually fits. Internally, this uses :meth:`Shape.insert_textbox`.
ja: :meth:`Page.insert_textbox`  - 指定された矩形にテキストをフィットさせます。ここでは、テキストの整列機能（左揃え、右揃え、中央揃え、両端揃え）を選択できます。また、テキストが実際にフィットするかどうかの制御もできます。内部的には :meth:`Shape.insert_textbox` を使用します。

en: Both text insertion methods automatically install the font as necessary.
ja: テキスト挿入の両方の方法は、必要に応じてフォントを自動的にインストールします。

en: How to Write Text Lines
ja: テキスト行を書く方法

en: Output some text lines on a page::
ja: ページにいくつかのテキスト行を出力する方法::

en: Line **width is ignored**. The surplus part of a line will simply be invisible.
ja: 行の幅は無視されます。行の余剰部分は単に見えなくなります。

en: However, for built-in fonts there are ways to calculate the line width beforehand - see :meth:`get_text_length`.
ja: ただし、組み込みのフォントには、行の幅を事前に計算する方法があります。 :meth:`get_text_length` を参照してください。

en: Here is another example. It inserts 4 text strings using the four different rotation options, and thereby explains, how the text insertion point must be chosen to achieve the desired result::
ja: 以下は別の例です。4つの異なる回転オプションを使用してテキスト文字列を挿入し、それにより、望む結果を得るためにどのようにテキスト挿入ポイントを選択すべきかを説明しています::

en: This is the result:
ja: これが結果です。

en: How to Fill a Text Box
ja: テキストボックスの塗りつぶし方

en: This script fills 4 different rectangles with text, each time choosing a different rotation value::
ja: このスクリプトは、異なる回転値を選択して、4つの異なる長方形にテキストを塗りつぶします。

en: Several default values were used above: font "Helvetica", font size 11 and text alignment "left". The result will look like this:
ja: 上記ではいくつかのデフォルト値が使用されました：フォント「Helvetica」、フォントサイズ11、テキストの配置は「左寄せ」です。結果は以下のようになります。

en: How to Use Non-Standard Encoding
ja: 非標準エンコーディングの使用方法

en: Since v1.14, MuPDF allows Greek and Russian encoding variants for the :data:`Base14_Fonts`. In PyMuPDF this is supported via an additional *encoding* argument. Effectively, this is relevant for Helvetica, Times-Roman and Courier (and their bold / italic forms) and characters outside the ASCII code range only. Elsewhere, the argument is ignored. Here is how to request Russian encoding with the standard font Helvetica::
ja: v1.14以降、MuPDFでは :data:`Base14_Fonts` のギリシャ語およびロシア語のエンコーディングバリアントが許可されています。PyMuPDFでは、これは追加のエンコーディング引数を介してサポートされています。これは実際にはHelvetica、Times-Roman、Courier（およびそれらの太字/斜体形式）およびASCIIコード範囲外の文字にのみ影響します。他の場所では、この引数は無視されます。以下は、標準フォントHelveticaでロシア語のエンコーディングを要求する方法です::

en: The valid encoding values are TEXT_ENCODING_LATIN (0), TEXT_ENCODING_GREEK (1), and TEXT_ENCODING_CYRILLIC (2, Russian) with Latin being the default. Encoding can be specified by all relevant font and text insertion methods.
ja: 有効なエンコーディング値は、TEXT_ENCODING_LATIN（0）、TEXT_ENCODING_GREEK（1）、TEXT_ENCODING_CYRILLIC（2、ロシア語）であり、デフォルトはLatinです。エンコーディングは、すべての関連するフォントおよびテキスト挿入メソッドで指定できます。

en: By the above statement, the fontname *helv* is automatically connected to the Russian font variant of Helvetica. Any subsequent text insertion with **this fontname** will use the Russian Helvetica encoding.
ja: 上記の記述により、フォント名「helv」は自動的にHelveticaのロシア語バリアントに接続されます。このフォント名を使用して以降のテキスト挿入では、ロシア語のHelveticaエンコーディングが使用されます。

en: If you change the fontname just slightly, you can also achieve an **encoding "mixture"** for the **same base font** on the same page::
ja: フォント名をわずかに変更することで、同じベースフォントの同じページ上でエンコーディングの「混合」を実現することもできます。

en: The result:
ja: 結果は以下の通りです。

en: The snippet above indeed leads to three different copies of the Helvetica font in the PDF. Each copy is uniquely identified (and referenceable) by using the correct upper-lower case spelling of the reserved word "helv"::
ja: 上記のスニペットは実際にPDF内にHelveticaフォントの3つの異なるコピーを生成します。各コピーは正しい大文字小文字のスペル（"helv"）を使用して一意に識別され、参照が可能です。
