# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2015-2025, Artifex
# This file is distributed under the same license as the PyMuPDF package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PyMuPDF 1.26.7\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-03 09:30+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ko\n"
"Language-Team: ko <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"

#: ../../header.rst:-1 e9b57a556ade45ada6ce4d2157d0a4fb
msgid "Artifex"
msgstr "Artifex"

#: ../../header.rst:-1 63a9ec4fe01846b68264a6fceec4b355
msgid ""
"PyMuPDF is a high-performance Python library for data extraction, "
"analysis, conversion & manipulation of PDF (and other) documents."
msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다."

#: ../../header.rst:-1 116badf6cf724a168451fdd57616c081
msgid ""
"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, "
"PDF Splitting, PDF Creation, Pyodide, PyScript"
msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript"

#: ../../app3.rst:7 28fa836c45cd4132be1daf6ef45c58b2
msgid "Appendix 3: Assorted Technical Information"
msgstr "부록 3: 기타 기술 정보"

#: ../../app3.rst:8 987ce4249079447cbdd011e22851e60d
msgid ""
"This section deals with various technical topics, that are not "
"necessarily related to each other."
msgstr "이 섹션은 서로 관련이 없을 수 있는 다양한 기술 주제를 다룹니다."

#: ../../app3.rst:15 df054d36d114464baf858b0b6d6fd5e9
msgid "Image Transformation Matrix"
msgstr "이미지 변환 행렬"

#: ../../app3.rst:16 d08d81fa70c1456e8da48b9f7c45564a
msgid ""
"Starting with version 1.18.11, the image transformation matrix is "
"returned by some methods for text and image extraction: "
":meth:`Page.get_text` and :meth:`Page.get_image_bbox`."
msgstr ""
"버전 1.18.11부터 이미지 변환 행렬은 텍스트 및 이미지 추출을 위한 일부 메서드에서 반환됩니다: "
":meth:`Page.get_text` 및 :meth:`Page.get_image_bbox`."

#: ../../app3.rst:18 9cc212e2752f49e78b3b1ae4b68f754f
msgid ""
"The transformation matrix contains information about how an image was "
"transformed to fit into the rectangle (its \"boundary box\" = \"bbox\") "
"on some document page. By inspecting the image's bbox on the page and "
"this matrix, one can determine for example, whether and how the image is "
"displayed scaled or rotated on a page."
msgstr ""
"변환 행렬은 이미지가 문서 페이지의 사각형(그 \"경계 상자\" = \"bbox\")에 맞도록 변환된 방법에 대한 정보를 "
"포함합니다. 페이지의 이미지 bbox와 이 행렬을 검사하면 예를 들어 이미지가 페이지에서 확대/축소되거나 회전되어 표시되는지 여부와"
" 방법을 결정할 수 있습니다."

#: ../../app3.rst:20 5ff3fcc91d01440280b60dba6a823b73
msgid ""
"The relationship between image dimension and its bbox on a page is the "
"following:"
msgstr "이미지 크기와 페이지의 bbox 간의 관계는 다음과 같습니다:"

#: ../../app3.rst:24 38387aac6c4648878635157b4d9ac7ad
msgid "Using the original image's width and height,"
msgstr "원본 이미지의 너비와 높이를 사용하여,"

#: ../../app3.rst:23 0658960617334ff1bb152cc26322575b
msgid "define the image rectangle `imgrect = pymupdf.Rect(0, 0, width, height)`"
msgstr "이미지 사각형을 정의합니다 `imgrect = pymupdf.Rect(0, 0, width, height)`"

#: ../../app3.rst:24 e018e20b0f5b47c98051fb8fd2bf4309
msgid ""
"define the \"shrink matrix\" `shrink = pymupdf.Matrix(1/width, 0, 0, "
"1/height, 0, 0)`."
msgstr "\"축소 행렬\"을 정의합니다 `shrink = pymupdf.Matrix(1/width, 0, 0, 1/height, 0, 0)`."

#: ../../app3.rst:26 1e5bedf568fb4f28b0c289eba114264e
msgid ""
"Transforming the image rectangle with its shrink matrix, will result in "
"the unit rectangle: `imgrect * shrink = pymupdf.Rect(0, 0, 1, 1)`."
msgstr ""
"이미지 사각형을 축소 행렬로 변환하면 단위 사각형이 됩니다: `imgrect * shrink = pymupdf.Rect(0, 0, "
"1, 1)`."

#: ../../app3.rst:28 87764bec92d3484da3cb5c4856fa0efe
msgid ""
"Using the image **transformation matrix** \"transform\", the following "
"steps will compute the bbox::"
msgstr "이미지 **변환 행렬** \"transform\"을 사용하면 다음 단계로 bbox를 계산합니다::"

#: ../../app3.rst:34 eb03509b0e7b443b8123601dca26cd51
msgid ""
"Inspecting the matrix product `shrink * transform` will reveal all "
"information about what happened to the image rectangle to make it fit "
"into the bbox on the page: rotation, scaling of its sides and translation"
" of its origin. Let us look at an example:"
msgstr ""
"행렬 곱 `shrink * transform` 을 검사하면 이미지 사각형이 페이지의 bbox에 맞도록 변환된 방법에 대한 모든 "
"정보(회전, 변의 크기 조정 및 원점 이동)를 알 수 있습니다. 예제를 살펴보겠습니다:"

#: ../../app3.rst:71 52e5d34ae16540878399966cea671288
msgid "PDF Base 14 Fonts"
msgstr "PDF Base 14 글꼴"

#: ../../app3.rst:72 b1b6cb8420b845c3924bbaccd6738258
msgid ""
"The following 14 builtin font names **must be supported by every PDF "
"viewer** application. They are available as a dictionary, which maps "
"their full names amd their abbreviations in lower case to the full font "
"basename. Wherever a **fontname** must be provided in PyMuPDF, any **key "
"or value** from the dictionary may be used::"
msgstr ""
"다음 14개의 내장 글꼴 이름은 **모든 PDF 뷰어** 애플리케이션에서 지원되어야 합니다. 이들은 딕셔너리로 제공되며, 전체 "
"이름과 소문자 약어를 전체 글꼴 기본 이름에 매핑합니다. |PyMuPDF| 에서 **fontname** 을 제공해야 하는 곳에서는 "
"딕셔너리의 **키 또는 값** 을 사용할 수 있습니다::"

#: ../../app3.rst:105 11906948a25d421f9fc5dde554e86b3a
msgid ""
"In contrast to their obligation, not all PDF viewers support these fonts "
"correctly and completely -- this is especially true for Symbol and "
"ZapfDingbats. Also, the glyph (visual) images will be specific to every "
"reader."
msgstr ""
"의무와 달리 모든 PDF 뷰어가 이러한 글꼴을 올바르고 완전하게 지원하는 것은 아닙니다 -- 이것은 특히 Symbol과 "
"ZapfDingbats에 해당합니다. 또한 글리프(시각적) 이미지는 각 리더에 따라 다를 수 있습니다."

#: ../../app3.rst:107 295160fa982d4747a5187ac69e7c5091
msgid ""
"To see how these fonts can be used -- including the **CJK built-in** "
"fonts -- look at the table in :meth:`Page.insert_font`."
msgstr ""
"이러한 글꼴을 사용하는 방법을 보려면 -- **CJK 내장** 글꼴을 포함하여 -- :meth:`Page.insert_font` 의"
" 표를 참조하세요."

#: ../../app3.rst:114 08bfb2d1eb8248a59eec7a4cf8c82af6
msgid "Adobe PDF References"
msgstr "Adobe PDF 참조"

#: ../../app3.rst:116 f91f72e7328b424584ef9343eb9274ff
msgid ""
"This PDF Reference manual published by Adobe is frequently quoted "
"throughout this documentation. It can be viewed and downloaded from "
"`opensource.adobe.com <https://opensource.adobe.com/dc-acrobat-sdk-"
"docs/standards/pdfstandards/pdf/PDF32000_2008.pdf>`_."
msgstr ""
"Adobe에서 발행한 이 PDF Reference 매뉴얼은 이 문서 전반에 걸쳐 자주 인용됩니다. "
"`opensource.adobe.com <https://opensource.adobe.com/dc-acrobat-sdk-"
"docs/standards/pdfstandards/pdf/PDF32000_2008.pdf>`_ 에서 볼 수 있고 다운로드할 수 "
"있습니다."

#: ../../app3.rst:125 aa1776d20bbe4cfd8afaa0a73e420204
msgid "Using Python Sequences as Arguments in PyMuPDF"
msgstr "|PyMuPDF| 에서 Python 시퀀스를 인수로 사용하기"

#: ../../app3.rst:126 c5f3a5e6759b4dfbb449d4d691a10798
msgid ""
"When PyMuPDF objects and methods require a Python **list** of numerical "
"values, other Python **sequence types** are also allowed. Python classes "
"are said to implement the **sequence protocol**, if they have a "
"`__getitem__()` method."
msgstr ""
"|PyMuPDF| 객체와 메서드가 숫자 값의 Python **list** 를 요구할 때, 다른 Python **시퀀스 타입** 도 "
"허용됩니다. Python 클래스는 `__getitem__()` 메서드를 가지고 있으면 **시퀀스 프로토콜** 을 구현한다고 합니다."

#: ../../app3.rst:128 a2f4065016074783a3e692a5b44a9e6a
msgid ""
"This basically means, you can interchangeably use Python *list* or "
"*tuple* or even *array.array*, *numpy.array* and *bytearray* types in "
"these cases."
msgstr ""
"기본적으로 이것은 이러한 경우에 Python *list* 또는 *tuple* 또는 *array.array*, "
"*numpy.array* 및 *bytearray* 타입을 상호 교환하여 사용할 수 있음을 의미합니다."

#: ../../app3.rst:130 5eb2ec1d221246a191dd8246f9602573
msgid "For example, specifying a sequence `\"s\"` in any of the following ways"
msgstr "예를 들어, 다음 방법 중 하나로 시퀀스 `\"s\"` 를 지정하면"

#: ../../app3.rst:132 9eb6b1a57a034a3d939841b3ccd8eb41
msgid "`s = [1, 2]` -- a list"
msgstr "`s = [1, 2]` -- 리스트"

#: ../../app3.rst:133 8c499f04e376417882319277967497e2
msgid "`s = (1, 2)` -- a tuple"
msgstr "`s = (1, 2)` -- 튜플"

#: ../../app3.rst:134 24338a6cbce547bfa3d4f9cb90ef10ea
msgid "`s = array.array(\"i\", (1, 2))` -- an array.array"
msgstr "`s = array.array(\"i\", (1, 2))` -- array.array"

#: ../../app3.rst:135 36400eb511c94e05909f03f043285723
msgid "`s = numpy.array((1, 2))` -- a numpy array"
msgstr "`s = numpy.array((1, 2))` -- numpy 배열"

#: ../../app3.rst:136 caec64c89cc041fdbd1aa4c558b74a1b
msgid "`s = bytearray((1, 2))` -- a bytearray"
msgstr "`s = bytearray((1, 2))` -- bytearray"

#: ../../app3.rst:138 e81f583d516a4bdfa3f77751e81a03d9
msgid "will make it usable in the following example expressions:"
msgstr "다음 예제 표현식에서 사용할 수 있습니다:"

#: ../../app3.rst:140 048fdce412374742b5e6d5861df9427c
msgid "`pymupdf.Point(s)`"
msgstr "`pymupdf.Point(s)`"

#: ../../app3.rst:141 2a1345de7505441da80ff27558b70357
msgid "`pymupdf.Point(x, y) + s`"
msgstr "`pymupdf.Point(x, y) + s`"

#: ../../app3.rst:142 65b15752bc024e088940595dae3215da
msgid "`doc.select(s)`"
msgstr "`doc.select(s)`"

#: ../../app3.rst:144 d524e2c9577144908a75e0987c81899f
msgid ""
"Similarly with all geometry objects :ref:`Rect`, :ref:`IRect`, "
":ref:`Matrix` and :ref:`Point`."
msgstr ""
"모든 기하 객체 :ref:`Rect`, :ref:`IRect`, :ref:`Matrix` 및 :ref:`Point` 에도 "
"마찬가지입니다."

#: ../../app3.rst:146 46b031e6dd8e40808429c33e2729e35d
msgid ""
"Because all PyMuPDF geometry classes themselves are special cases of "
"sequences, they (with the exception of :ref:`Quad` -- see below) can be "
"freely used where numerical sequences can be used, e.g. as arguments for "
"functions like *list()*, *tuple()*, *array.array()* or *numpy.array()*. "
"Look at the following snippet to see this work."
msgstr ""
"모든 |PyMuPDF| 기하 클래스 자체가 시퀀스의 특수한 경우이므로, 이들은(:ref:`Quad` 제외 -- 아래 참조) 숫자 "
"시퀀스를 사용할 수 있는 곳에서 자유롭게 사용할 수 있습니다. 예를 들어 *list()*, *tuple()*, "
"*array.array()* 또는 *numpy.array()* 와 같은 함수의 인수로 사용할 수 있습니다. 이것이 작동하는 것을 "
"보려면 다음 코드 조각을 참조하세요."

#: ../../app3.rst:163 8c531fc2e99a4086bce80bae4dbeeac7
msgid ""
":ref:`Quad` is a Python sequence object as well and has a length of 4. "
"Its items however are :data:`point_like` -- not numbers. Therefore, the "
"above remarks do not apply."
msgstr ""
":ref:`Quad` 도 Python 시퀀스 객체이며 길이가 4입니다. 그러나 항목은 :data:`point_like` 입니다 --"
" 숫자가 아닙니다. 따라서 위의 설명은 적용되지 않습니다."

#: ../../app3.rst:170 c359d43e960248c39a6485317dc894d9
msgid "Ensuring Consistency of Important Objects in PyMuPDF"
msgstr "|PyMuPDF| 에서 중요한 객체의 일관성 보장"

#: ../../app3.rst:171 57dc6323642f4ed1a681c418dc32446e
msgid ""
"PyMuPDF is a Python binding for the C library MuPDF. While a lot of "
"effort has been invested by MuPDF's creators to approximate some sort of "
"an object-oriented behavior, they certainly could not overcome basic "
"shortcomings of the C language in that respect."
msgstr ""
"|PyMuPDF| 는 C 라이브러리 |MuPDF| 에 대한 Python 바인딩입니다. |MuPDF| 의 제작자들이 객체 지향적 "
"동작을 근사하기 위해 많은 노력을 기울였지만, C 언어의 기본적인 한계를 극복할 수는 없었습니다."

#: ../../app3.rst:173 4c061032544f42d3b1cbac6ca2994790
msgid ""
"Python on the other hand implements the OO-model in a very clean way. The"
" interface code between PyMuPDF and MuPDF consists of two basic files: "
"*pymupdf.py* and *fitz_wrap.c*. They are created by the excellent SWIG "
"tool for each new version."
msgstr ""
"반면 Python은 OO 모델을 매우 깔끔하게 구현합니다. |PyMuPDF| 와 |MuPDF| 사이의 인터페이스 코드는 두 개의 "
"기본 파일로 구성됩니다: *pymupdf.py* 와 *fitz_wrap.c*. 이들은 각 새 버전에 대해 우수한 SWIG 도구로 "
"생성됩니다."

#: ../../app3.rst:175 4fb5955ef3f34ff5b12fe9147956933b
msgid ""
"When you use one of PyMuPDF's objects or methods, this will result in "
"execution of some code in *pymupdf.py*, which in turn will call some C "
"code compiled with *fitz_wrap.c*."
msgstr ""
"|PyMuPDF| 의 객체나 메서드 중 하나를 사용하면 *pymupdf.py* 의 일부 코드가 실행되고, 이것은 차례로 "
"*fitz_wrap.c* 로 컴파일된 일부 C 코드를 호출합니다."

#: ../../app3.rst:177 3846f21a4bb648bd8c4416539fe28a36
msgid ""
"Because SWIG goes a long way to keep the Python and the C level in sync, "
"everything works fine, if a certain set of rules is being strictly "
"followed. For example: **never access** a :ref:`Page` object, after you "
"have closed (or deleted or set to ``None``) the owning :ref:`Document`. "
"Or, less obvious: **never access** a page or any of its children (links "
"or annotations) after you have executed one of the document methods "
"*select()*, *delete_page()*, *insert_page()* ... and more."
msgstr ""
"SWIG가 Python과 C 레벨을 동기화하기 위해 많은 노력을 기울이기 때문에, 특정 규칙 집합을 엄격히 따르면 모든 것이 잘 "
"작동합니다. 예를 들어: 소유 :ref:`Document` 를 닫았거나(또는 삭제하거나 ``None`` 으로 설정한 후) "
":ref:`Page` 객체에 **절대 액세스하지 마세요**. 또는 덜 명확한 경우: 문서 메서드 *select()*, "
"*delete_page()*, *insert_page()* 등을 실행한 후 페이지나 그 자식(링크 또는 주석)에 **절대 액세스하지"
" 마세요**."

#: ../../app3.rst:179 cd2f0e9f6925457b95a8972e5220b65c
msgid ""
"But just no longer accessing invalidated objects is actually not enough: "
"They should rather be actively deleted entirely, to also free C-level "
"resources (meaning allocated memory)."
msgstr ""
"그러나 무효화된 객체에 더 이상 액세스하지 않는 것만으로는 충분하지 않습니다: C 레벨 리소스(할당된 메모리)도 해제하기 위해 "
"완전히 삭제해야 합니다."

#: ../../app3.rst:181 7bb8910cf6284c37a4acf09d60be5730
msgid ""
"The reason for these rules lies in the fact that there is a hierarchical "
"2-level one-to-many relationship between a document and its pages and "
"also between a page and its links / annotations. To maintain a consistent"
" situation, any of the above actions must lead to a complete reset -- in "
"**Python and, synchronously, in C**."
msgstr ""
"이러한 규칙의 이유는 문서와 그 페이지 사이, 그리고 페이지와 그 링크/주석 사이에 계층적 2단계 일대다 관계가 있다는 사실에 "
"있습니다. 일관된 상황을 유지하기 위해 위의 작업 중 하나라도 완전한 재설정으로 이어져야 합니다 -- **Python과 동기적으로 "
"C에서**."

#: ../../app3.rst:183 f28fc2db36084f948eed30968297dab5
msgid "SWIG cannot know about this and consequently does not do it."
msgstr "SWIG는 이것을 알 수 없으므로 결과적으로 이를 수행하지 않습니다."

#: ../../app3.rst:185 9b81f1fa67e34514b59f9bfc0a61a978
msgid ""
"The required logic has therefore been built into PyMuPDF itself in the "
"following way."
msgstr "따라서 필요한 로직이 다음과 같은 방식으로 |PyMuPDF| 자체에 내장되었습니다."

#: ../../app3.rst:187 2610c09be6134825b39d838bd001108c
msgid ""
"If a page \"loses\" its owning document or is being deleted itself, all "
"of its currently existing annotations and links will be made unusable in "
"Python, and their C-level counterparts will be deleted and deallocated."
msgstr ""
"페이지가 소유 문서를 \"잃거나\" 자체적으로 삭제되면, 현재 존재하는 모든 주석과 링크가 Python에서 사용할 수 없게 되고, "
"C 레벨의 대응 항목이 삭제되고 할당 해제됩니다."

#: ../../app3.rst:189 d188cde23fd047f7a60e9267515903d6
msgid ""
"If a document is closed (or deleted or set to ``None``) or if its "
"structure has changed, then similarly all currently existing pages and "
"their children will be made unusable, and corresponding C-level deletions"
" will take place. \"Structure changes\" include methods like *select()*, "
"*delePage()*, *insert_page()*, *insert_pdf()* and so on: all of these "
"will result in a cascade of object deletions."
msgstr ""
"문서가 닫히거나(또는 삭제되거나 ``None`` 으로 설정되거나) 구조가 변경되면, 마찬가지로 현재 존재하는 모든 페이지와 그 "
"자식이 사용할 수 없게 되고, 해당 C 레벨 삭제가 발생합니다. \"구조 변경\"에는 *select()*, "
"*delete_page()*, *insert_page()*, *insert_pdf()* 등의 메서드가 포함됩니다: 이들 모두 객체 "
"삭제의 연쇄를 초래합니다."

#: ../../app3.rst:191 d57b1ed5501b417391bd09cc0fdcfd39
msgid ""
"The programmer will normally not realize any of this. If he, however, "
"tries to access invalidated objects, exceptions will be raised."
msgstr "프로그래머는 일반적으로 이것을 인식하지 못합니다. 그러나 무효화된 객체에 액세스하려고 하면 예외가 발생합니다."

#: ../../app3.rst:193 e42075fe1f1f4884a8525e23d50ec80a
msgid ""
"Invalidated objects cannot be directly deleted as with Python statements "
"like *del page* or *page = None*, etc. Instead, their *__del__* method "
"must be invoked."
msgstr ""
"무효화된 객체는 *del page* 또는 *page = None* 등의 Python 문으로 직접 삭제할 수 없습니다. 대신 "
"*__del__* 메서드를 호출해야 합니다."

#: ../../app3.rst:195 65129ee8ed6347389a03f5c4a0e27118
msgid ""
"All pages, links and annotations have the property *parent*, which points"
" to the owning object. This is the property that can be checked on the "
"application level: if *obj.parent == None* then the object's parent is "
"gone, and any reference to its properties or methods will raise an "
"exception informing about this \"orphaned\" state."
msgstr ""
"모든 페이지, 링크 및 주석은 소유 객체를 가리키는 *parent* 속성을 가집니다. 이것은 애플리케이션 레벨에서 확인할 수 있는 "
"속성입니다: *obj.parent == None* 이면 객체의 부모가 사라진 것이며, 속성이나 메서드에 대한 참조는 이 \"고아\""
" 상태에 대해 알리는 예외를 발생시킵니다."

#: ../../app3.rst:197 8dd4acfe98f34511830f7c57c6d629ce
msgid "A sample session:"
msgstr "샘플 세션:"

#: ../../app3.rst:214 9e147448615c4415832f3e2acb045cfd
msgid "This shows the cascading effect:"
msgstr "이것은 연쇄 효과를 보여줍니다:"

#: ../../app3.rst:231 442c30826bf4423aacbb2a4864ce9a88
msgid ""
"Objects outside the above relationship are not included in this "
"mechanism. If you e.g. created a table of contents by *toc = "
"doc.get_toc()*, and later close or change the document, then this cannot "
"and does not change variable *toc* in any way. It is your responsibility "
"to refresh such variables as required."
msgstr ""
"위의 관계 외부의 객체는 이 메커니즘에 포함되지 않습니다. 예를 들어 *toc = doc.get_toc()* 로 목차를 만든 후 "
"문서를 닫거나 변경하면, 이것은 변수 *toc* 를 어떤 방식으로도 변경할 수 없고 변경하지 않습니다. 필요에 따라 이러한 변수를 "
"새로 고치는 것은 사용자의 책임입니다."

#: ../../app3.rst:238 64b3f76253e64bdcba362aad09efb8f9
msgid "Design of Method :meth:`Page.show_pdf_page`"
msgstr "메서드 :meth:`Page.show_pdf_page` 의 설계"

#: ../../app3.rst:241 128d4a5b179f4f858c59282d02e2992d
msgid "Purpose and Capabilities"
msgstr "목적 및 기능"

#: ../../app3.rst:243 36e16573a42045a2bf1afeda5ba8b66e
msgid ""
"The method displays an image of a (\"source\") page of another PDF "
"document within a specified rectangle of the current (\"containing\", "
"\"target\") page."
msgstr ""
"이 메서드는 다른 PDF 문서의 (\"소스\") 페이지 이미지를 현재 (\"포함\", \"대상\") 페이지의 지정된 사각형 내에 "
"표시합니다."

#: ../../app3.rst:245 11b56c7a4353448faba91c8944469b13
msgid ""
"**In contrast** to :meth:`Page.insert_image`, this display is vector-"
"based and hence remains accurate across zooming levels."
msgstr ""
":meth:`Page.insert_image` 와 **대조적으로**, 이 표시는 벡터 기반이므로 확대/축소 수준에서도 정확하게 "
"유지됩니다."

#: ../../app3.rst:246 b9f69720d39443449a9d85059af697e2
msgid ""
"**Just like** :meth:`Page.insert_image`, the size of the display is "
"adjusted to the given rectangle."
msgstr ":meth:`Page.insert_image` 와 **마찬가지로**, 표시 크기는 주어진 사각형에 맞게 조정됩니다."

#: ../../app3.rst:248 c503b182fc14483589a8e70354d7013d
msgid "The following variations of the display are currently supported:"
msgstr "다음과 같은 표시 변형이 현재 지원됩니다:"

#: ../../app3.rst:250 97d286a4d5f74472a14b8d008c4a6e14
msgid ""
"Bool parameter `\"keep_proportion\"` controls whether to maintain the "
"aspect ratio (default) or not."
msgstr "Bool 매개변수 `\"keep_proportion\"` 은 종횡비를 유지할지 여부를 제어합니다(기본값)."

#: ../../app3.rst:251 b3ca7e9050f84361a916dd947a4aee68
msgid ""
"Rectangle parameter `\"clip\"` restricts the visible part of the source "
"page rectangle. Default is the full page."
msgstr "사각형 매개변수 `\"clip\"` 은 소스 페이지 사각형의 보이는 부분을 제한합니다. 기본값은 전체 페이지입니다."

#: ../../app3.rst:252 994ff62c446f4ec48980737cb9847a1b
msgid ""
"float `\"rotation\"` rotates the display by an arbitrary angle (degrees)."
" If the angle is not an integer multiple of 90, only 2 of the 4 corners "
"may be positioned on the target border if also `\"keep_proportion\"` is "
"true."
msgstr ""
"float `\"rotation\"` 은 표시를 임의의 각도(도)로 회전시킵니다. 각도가 90의 정수 배가 아니고 "
"`\"keep_proportion\"` 도 true인 경우, 4개 모서리 중 2개만 대상 경계에 위치할 수 있습니다."

#: ../../app3.rst:253 df91bedf8d2448b9b6e1d9b0e146b290
msgid ""
"Bool parameter `\"overlay\"` controls whether to put the image on top "
"(foreground, default) of current page content or not (background)."
msgstr "Bool 매개변수 `\"overlay\"` 는 이미지를 현재 페이지 콘텐츠 위(전경, 기본값)에 배치할지 여부를 제어합니다(배경)."

#: ../../app3.rst:255 7f1ad38d9991450f8326a9f7891e02ed
msgid "Use cases include (but are not limited to) the following:"
msgstr "사용 사례에는 다음이 포함됩니다(이에 국한되지 않음):"

#: ../../app3.rst:257 68f2f629805445a3888fea51dad910ae
msgid ""
"\"Stamp\" a series of pages of the current document with the same image, "
"like a company logo or a watermark."
msgstr "회사 로고나 워터마크와 같은 동일한 이미지로 현재 문서의 일련의 페이지에 \"스탬프\"를 찍습니다."

#: ../../app3.rst:258 31e6350216514a078362663c9f252a2f
msgid ""
"Combine arbitrary input pages into one output page to support “booklet” "
"or double-sided printing (known as \"4-up\", \"n-up\")."
msgstr ""
"임의의 입력 페이지를 하나의 출력 페이지로 결합하여 “북렛” 또는 양면 인쇄( \"4-up\", \"n-up\" 으로 알려짐)를 "
"지원합니다."

#: ../../app3.rst:259 9c80023be1d94d0cbbca8f1314af6a46
msgid ""
"Split up (large) input pages into several arbitrary pieces. This is also "
"called “posterization”, because you e.g. can split an A4 page "
"horizontally and vertically, print the 4 pieces enlarged to separate A4 "
"pages, and end up with an A2 version of your original page."
msgstr ""
"(큰) 입력 페이지를 여러 임의의 조각으로 분할합니다. 이것은 “포스터화”라고도 하며, 예를 들어 A4 페이지를 가로와 세로로 "
"분할하고, 4개 조각을 확대하여 별도의 A4 페이지로 인쇄한 다음 원본 페이지의 A2 버전을 얻을 수 있기 때문입니다."

#: ../../app3.rst:262 62098c390f3043009fc377ea8e54100a
msgid "Technical Implementation"
msgstr "기술적 구현"

#: ../../app3.rst:264 3dfab80881604fef89ec3850557c91ff
msgid ""
"This is done using PDF **\"Form XObjects\"**, see section 8.10 on page "
"217 of :ref:`AdobeManual`. On execution of a :meth:`Page.show_pdf_page`, "
"the following things happen:"
msgstr ""
"이것은 PDF **\"Form XObjects\"** 를 사용하여 수행됩니다. :ref:`AdobeManual` 의 217페이지 "
"섹션 8.10을 참조하세요. :meth:`Page.show_pdf_page` 를 실행하면 다음이 발생합니다:"

#: ../../app3.rst:266 9d2548f8045f487c895825c9f1f0e965
msgid ""
"The :data:`resources` and :data:`contents` objects of source page in "
"source document are copied over to the target document, jointly creating "
"a new **Form XObject** with the following properties. The PDF "
":data:`xref` number of this object is returned by the method."
msgstr ""
"소스 문서의 소스 페이지의 :data:`resources` 및 :data:`contents` 객체가 대상 문서로 복사되어 다음 "
"속성을 가진 새로운 **Form XObject** 를 공동으로 생성합니다. 이 객체의 PDF :data:`xref` 번호는 메서드에"
" 의해 반환됩니다."

#: ../../app3.rst:268 bb76e425ccb64473b57788e768f4ec73
msgid "`/BBox` equals `/Mediabox` of the source page"
msgstr "`/BBox` 는 소스 페이지의 `/Mediabox` 와 같습니다"

#: ../../app3.rst:269 c31f893de0fc41298d55e90ccf4fe8f8
msgid "`/Matrix` equals the identity matrix."
msgstr "`/Matrix` 는 항등 행렬과 같습니다."

#: ../../app3.rst:270 b88a10668d6143c8896ff880d6b0a465
msgid ""
"`/Resources` equals that of the source page. This involves a “deep-copy” "
"of hierarchically nested other objects (including fonts, images, etc.). "
"The complexity involved here is covered by MuPDF's grafting [#f1]_ "
"technique functions."
msgstr ""
"`/Resources` 는 소스 페이지의 것과 같습니다. 이것은 계층적으로 중첩된 다른 객체(글꼴, 이미지 등 포함)의 "
"deep-copy” 를 포함합니다. 여기에 관련된 복잡성은 |MuPDF| 의 grafting [#f1]_ 기술 함수로 "
"처리됩니다."

#: ../../app3.rst:271 012404bf546e41f0a21925ebb840eb7d
msgid ""
"This is a stream object type, and its stream is an exact copy of the "
"combined data of the source page's :data:`contents` objects."
msgstr "이것은 스트림 객체 타입이며, 그 스트림은 소스 페이지의 :data:`contents` 객체의 결합된 데이터의 정확한 복사본입니다."

#: ../../app3.rst:273 134d89c3ee7d414281d9d706d3f7fca3
msgid ""
"This Form XObject is only executed once per shown source page. Subsequent"
" displays of the same source page will skip this step and only create "
"\"pointer\" Form XObjects (done in next step) to this object."
msgstr ""
"이 Form XObject는 표시된 소스 페이지당 한 번만 실행됩니다. 동일한 소스 페이지의 후속 표시는 이 단계를 건너뛰고 이 "
"객체에 대한 \"포인터\" Form XObjects만 생성합니다(다음 단계에서 수행)."

#: ../../app3.rst:275 50987890b05b44a0ab6dce288ad5ab0a
msgid ""
"A second **Form XObject** is then created which the target page uses to "
"invoke the display. This object has the following properties:"
msgstr ""
"그런 다음 대상 페이지가 표시를 호출하는 데 사용하는 두 번째 **Form XObject** 가 생성됩니다. 이 객체는 다음 속성을"
" 가집니다:"

#: ../../app3.rst:277 33bd465dbdd047c7816f59b343c2d780
msgid "`/BBox` equals the `/CropBox` of the source page (or `\"clip\"`)."
msgstr "`/BBox` 는 소스 페이지의 `/CropBox` (또는 `\"clip\"`)와 같습니다."

#: ../../app3.rst:278 ecaa890ab1e94d268751da3df22cf421
msgid "`/Matrix` represents the mapping of `/BBox` to the target rectangle."
msgstr "`/Matrix` 는 `/BBox` 를 대상 사각형으로 매핑하는 것을 나타냅니다."

#: ../../app3.rst:279 b7950a1195e54793b9b3b5b911fc150c
msgid ""
"`/XObject` references the previous Form XObject via the fixed name "
"`fullpage`."
msgstr "`/XObject` 는 고정된 이름 `fullpage` 를 통해 이전 Form XObject를 참조합니다."

#: ../../app3.rst:280 8a89d2b17c624ea39d9d9414c18fceee
msgid ""
"The stream of this object contains exactly one fixed statement: "
"`/fullpage Do`."
msgstr "이 객체의 스트림은 정확히 하나의 고정된 문을 포함합니다: `/fullpage Do`."

#: ../../app3.rst:281 8071f5c0c01b40ed8d0b3c8e0caea1d5
msgid ""
"If the method's `\"oc\"` argument is given, its value is assigned to this"
" Form XObject as `/OC`."
msgstr "메서드의 `\"oc\"` 인수가 주어지면, 그 값이 이 Form XObject에 `/OC` 로 할당됩니다."

#: ../../app3.rst:283 d0dcf58ed13a453a834e115f4ea0c511
msgid ""
"The :data:`resources` and :data:`contents` objects of the target page are"
" now modified as follows."
msgstr "대상 페이지의 :data:`resources` 및 :data:`contents` 객체는 다음과 같이 수정됩니다."

#: ../../app3.rst:285 77b2331ffaee4e7b8feca779154bca43
msgid ""
"Add an entry to the `/XObject` dictionary of `/Resources` with the name "
"`fzFrm<n>` (with n chosen such that this entry is unique on the page)."
msgstr ""
"`/Resources` 의 `/XObject` 딕셔너리에 `fzFrm<n>` 이라는 이름으로 항목을 추가합니다(n은 이 항목이 "
"페이지에서 고유하도록 선택됨)."

#: ../../app3.rst:286 71da2b0e5eea427e8ef41d4ee9facaf2
msgid ""
"Depending on `\"overlay\"`, prepend or append a new object to the page's "
"`/Contents` array, containing the statement `q /fzFrm<n> Do Q`."
msgstr ""
"`\"overlay\"` 에 따라 페이지의 `/Contents` 배열에 `q /fzFrm<n> Do Q` 문을 포함하는 새 객체를 "
"앞에 추가하거나 뒤에 추가합니다."

#: ../../app3.rst:288 ce7e0186bef54c97a9b29d12c1e6f3a6
msgid "This design approach ensures that:"
msgstr "이 설계 접근 방식은 다음을 보장합니다:"

#: ../../app3.rst:290 eb54e5bd84bb498abb3763ee5407a28e
msgid ""
"The (potentially large) source page is only copied once to the target "
"PDF. Only small \"pointer\" Form XObjects objects are created per each "
"target page to show the source page."
msgstr ""
"(잠재적으로 큰) 소스 페이지는 대상 PDF에 한 번만 복사됩니다. 소스 페이지를 표시하기 위해 각 대상 페이지당 작은 "
"\"포인터\" Form XObjects 객체만 생성됩니다."

#: ../../app3.rst:291 9bdd7aac08c848b896a77921ae741fc8
msgid ""
"Each referring target page can have its own `\"oc\"` parameter to control"
" the source page's visibility individually."
msgstr "각 참조 대상 페이지는 소스 페이지의 가시성을 개별적으로 제어하기 위해 자체 `\"oc\"` 매개변수를 가질 수 있습니다."

#: ../../app3.rst:298 38192e7d264e49b9b11f8bff65d9f574
msgid "Diagnostics"
msgstr "진단"

#: ../../app3.rst:303 678e61f215bb4b728ec825f020a47ade
msgid "|PyMuPDF| messages"
msgstr "|PyMuPDF| 메시지"

#: ../../app3.rst:305 b0163c7491294ddc8e19c68b4a236621
msgid "|PyMuPDF| has a Message system for showing text diagnostics."
msgstr "|PyMuPDF| 는 텍스트 진단을 표시하기 위한 메시지 시스템을 가지고 있습니다."

#: ../../app3.rst:307 ae5fa773d042458bba579ef11b18c5f1
msgid ""
"By default messages are written to `sys.stdout`. This can be controlled "
"in two ways:"
msgstr "기본적으로 메시지는 `sys.stdout` 에 기록됩니다. 이것은 두 가지 방법으로 제어할 수 있습니다:"

#: ../../app3.rst:311 e9874754031f42d2977701bc48a0202a
msgid "Set environment variable `PYMUPDF_MESSAGE` before |PyMuPDF| is imported."
msgstr "|PyMuPDF| 를 가져오기 전에 환경 변수 `PYMUPDF_MESSAGE` 를 설정합니다."

#: ../../app3.rst:314 752d0f8c25c3400ab0fd25a0bd727e90
msgid "Call `set_messages()`:"
msgstr "`set_messages()` 를 호출합니다:"

#: ../../app3.rst:318 c98f984f976c49d7bf561a0bd2ec9dc5
msgid "|MuPDF| errors and warnings"
msgstr "|MuPDF| 오류 및 경고"

#: ../../app3.rst:320 ff1b806727194154b4b239fd45add954
msgid "|MuPDF| generates text errors and warnings."
msgstr "|MuPDF| 는 텍스트 오류 및 경고를 생성합니다."

#: ../../app3.rst:323 0f276711268e409fb82df4ba73696ece
msgid ""
"These errors and warnings are appended to an internal list, accessible "
"with `Tools.mupdf_warnings()`. Also see `Tools.reset_mupdf_warnings()`."
msgstr ""
"이러한 오류 및 경고는 내부 목록에 추가되며, `Tools.mupdf_warnings()` 로 액세스할 수 있습니다. "
"`Tools.reset_mupdf_warnings()` 도 참조하세요."

#: ../../app3.rst:327 073e0bdb4e0d4e36bb6759931da9f080
msgid ""
"By default these errors and warnings are also sent to the |PyMuPDF| "
"message system."
msgstr "기본적으로 이러한 오류 및 경고는 |PyMuPDF| 메시지 시스템에도 전송됩니다."

#: ../../app3.rst:330 c438af959e7d416a8bdd12d4a262666f
msgid ""
"This can be controlled with `mupdf_display_errors()` and "
"`mupdf_display_warnings()`."
msgstr "이것은 `mupdf_display_errors()` 및 `mupdf_display_warnings()` 로 제어할 수 있습니다."

#: ../../app3.rst:334 751a2f790c0c436ba72274b9a9cd2841
msgid ""
"These messages are prefixed with `MuPDF error:` and `MuPDF warning:` "
"respectively."
msgstr "이러한 메시지는 각각 `MuPDF error:` 및 `MuPDF warning:` 접두사가 붙습니다."

#: ../../app3.rst:337 9d9fa818d46c40c4abd7e99971db02f1
msgid "Some |MuPDF| errors may lead to Python exceptions."
msgstr "일부 |MuPDF| 오류는 Python 예외를 유발할 수 있습니다."

#: ../../app3.rst:339 305562c6d9974f98a9b2d09d489e294c
msgid ""
"Example output for a **recoverable error**. We are opening a damaged PDF,"
" but MuPDF is able to repair it and gives us a little information on what"
" happened. Then we illustrate how to find out whether the document can "
"later be saved incrementally. Checking the :attr:`Document.is_dirty` "
"attribute at this point also indicates that during `pymupdf.open` the "
"document had to be repaired:"
msgstr ""
"**복구 가능한 오류** 에 대한 예제 출력입니다. 손상된 PDF를 열고 있지만 |MuPDF| 는 이를 복구할 수 있고 발생한 일에"
" 대한 약간의 정보를 제공합니다. 그런 다음 문서를 나중에 증분 저장할 수 있는지 확인하는 방법을 설명합니다. 이 시점에서 "
":attr:`Document.is_dirty` 속성을 확인하면 `pymupdf.open` 중에 문서를 복구해야 했음을 나타냅니다:"

#: ../../app3.rst:360 10e13c5dbba64ba7a6bed125229ffea8
msgid "Example output for an **unrecoverable error**:"
msgstr "**복구 불가능한 오류** 에 대한 예제 출력:"

#: ../../app3.rst:378 55ce8adbca56443192458ad1412c6eb6
msgid "Coordinates"
msgstr "좌표"

#: ../../app3.rst:381 25b2587ee67742f8aab4274ba33aaed0
msgid ""
"This is one of the most frequently used terms in this documentation. A "
"**coordinate** generally means a pair of numbers `(x, y)` referring to "
"some location, like a corner of a rectangle (:ref:`Rect`), a :ref:`Point`"
" and so forth. The two values usually are floats, but there a objects "
"like images which only allow them to be integers."
msgstr ""
"이것은 이 문서에서 가장 자주 사용되는 용어 중 하나입니다. **좌표** 는 일반적으로 사각형의 모서리(:ref:`Rect`), "
":ref:`Point` 등과 같은 위치를 나타내는 숫자 쌍 `(x, y)` 를 의미합니다. 두 값은 일반적으로 float이지만, "
"정수만 허용하는 이미지와 같은 객체도 있습니다."

#: ../../app3.rst:383 07fa97393cb64575ba7ca3c72e92d3e0
msgid ""
"To actually *find* a coordinate's location, we also need to know the "
"*reference* point for ``x`` and ``y`` - in other words, we must know "
"where location `(0, 0)` is positioned. Once `(0, 0)` (the \"origin\") is "
"known, we speak of a \"coordinate system\"."
msgstr ""
"실제로 좌표의 위치를 *찾으려면*, ``x`` 와 ``y`` 의 *참조* 점도 알아야 합니다 -- 즉, 위치 `(0, 0)` 이 "
"어디에 있는지 알아야 합니다. `(0, 0)` (\"원점\")이 알려지면 \"좌표계\"라고 말합니다."

#: ../../app3.rst:385 f03d3158dc424965ad72da81750b12cc
msgid ""
"Several coordinate systems exist in document processing. For instance, "
"the coordinate systems of a PDF page and the image created from it are "
"**different**. We therefore need ways to *transform* coordinates from one"
" system to another (and also back occasionally). This is the task of a "
":ref:`Matrix`. It is a mathematical function which works much like a "
"factor that can be \"multiplied\" with a point or rectangle to give us "
"the corresponding point / rectangle in another coordinate system. The "
"inverse of a transformation matrix can be used to revert the "
"transformation. Much like multiplying by some factor, say 3, can be "
"reverted by dividing the result by 3 (or multiplying it with 1/3)."
msgstr ""
"문서 처리에는 여러 좌표계가 존재합니다. 예를 들어, PDF 페이지와 그것으로부터 생성된 이미지의 좌표계는 **다릅니다**. 따라서"
" 한 시스템에서 다른 시스템으로 좌표를 *변환* 하는 방법이 필요합니다(때로는 역으로도). 이것이 :ref:`Matrix` 의 "
"작업입니다. 이것은 점이나 사각형과 \"곱할\" 수 있는 인수처럼 작동하여 다른 좌표계에서 해당 점/사각형을 제공하는 수학 "
"함수입니다. 변환 행렬의 역행렬을 사용하여 변환을 되돌릴 수 있습니다. 예를 들어 3을 곱하는 것을 결과를 3으로 나누거나(또는 "
"1/3을 곱함)하여 되돌릴 수 있는 것과 매우 유사합니다."

#: ../../app3.rst:388 2861d34531e741f2899ff1dc71d8b465
msgid "Coordinates and Images"
msgstr "좌표 및 이미지"

#: ../../app3.rst:390 2a2c6ebc18e84f02aebc26d7a8e9905d
msgid ""
"Images have a coordinate system with integer coordinates. Origin `(0, 0)`"
" is the top-left point. ``x`` values must be in `range(width)`, and ``y``"
" values in `range(height)`. Therefore, ``y`` values *increase* if we go "
"*downwards*. For every image, there is only a **finite number** of "
"coordinates, namely `width * height`. A location in an image is also "
"called a \"pixel\"."
msgstr ""
"이미지는 정수 좌표를 가진 좌표계를 가집니다. 원점 `(0, 0)` 은 왼쪽 위 점입니다. ``x`` 값은 "
"`range(width)` 에 있어야 하고, ``y`` 값은 `range(height)` 에 있어야 합니다. 따라서 *아래로* 가면"
" ``y`` 값이 *증가* 합니다. 모든 이미지에 대해 **유한한 수** 의 좌표만 있습니다. 즉, `width * height` "
"입니다. 이미지의 위치는 \"픽셀\"이라고도 합니다."

#: ../../app3.rst:392 2d1ab7caafc4475bb1e0bb937bd193f5
msgid ""
"How **large** an image will be (in centimeters or inches) when e.g. "
"printed, depends on additional information: the \"resolution\". This is "
"measured in **DPI** (dots per inch, or pixels per inch). To find the "
"printed size of some image, we therefore must divide its width and its "
"height by the corresponding DPI values (there may separate ones for width"
" and for height) and will get the respective number of inches."
msgstr ""
"예를 들어 인쇄할 때 이미지가 **얼마나 큰지** (센티미터 또는 인치)는 추가 정보인 \"해상도\"에 따라 다릅니다. 이것은 "
"**DPI** (인치당 도트 또는 인치당 픽셀)로 측정됩니다. 따라서 이미지의 인쇄 크기를 찾으려면 너비와 높이를 해당 DPI "
"값으로 나누어야 하며(너비와 높이에 대해 별도의 값이 있을 수 있음) 각각의 인치 수를 얻을 수 있습니다."

#: ../../app3.rst:396 861cbf0fef9b49cd9a4c66166b84a606
msgid "Origin Point, Point Size and Y-Axis"
msgstr "원점, 포인트 크기 및 Y축"

#: ../../app3.rst:398 40053762c0d549a589c0738ef25485e0
msgid ""
"In |PDF|, the origin `(0, 0)` of a page is located at its **bottom-left "
"point**. In |MuPDF|, the origin `(0, 0)` of a page is located at its "
"**top-left point**."
msgstr ""
"|PDF| 에서 페이지의 원점 `(0, 0)` 은 **왼쪽 아래 점** 에 있습니다. |MuPDF| 에서 페이지의 원점 `(0, "
"0)` 은 **왼쪽 위 점** 에 있습니다."

#: ../../app3.rst:403 006e004df7614a4e951f99ba46acb439
msgid "Coordinates are float numbers and measured in **points**, where:"
msgstr "좌표는 float 숫자이며 **포인트** 단위로 측정됩니다. 여기서:"

#: ../../app3.rst:405 060972242c9c45a399b754799bda2112
msgid "**one point equals 1/72 inches**."
msgstr "**1포인트는 1/72인치** 와 같습니다."

#: ../../app3.rst:407 32f04e20ba5e41f09c447ba3a79e54c8
msgid ""
"Typical document page sizes are **ISO A4** and **Letter**. A **Letter** "
"page has a size of **8.5 x 11 inches**, corresponding to **612 x 792 "
"points**. In the |PDF| coordinate system, the top-left point of a "
"**Letter** page hence has the coordinate `(0, 792)` as **the y-axis "
"points upwards**. Now we know our document size the |MuPDF| coordinate "
"system for the bottom right would be coordinate `(612, 792)` (and for "
"|PDF| this coordinate would then be `(612,0)`)."
msgstr ""
"일반적인 문서 페이지 크기는 **ISO A4** 및 **Letter** 입니다. **Letter** 페이지는 **8.5 x "
"11인치** 크기를 가지며, 이는 **612 x 792 포인트** 에 해당합니다. |PDF| 좌표계에서 **Letter** 페이지의"
" 왼쪽 위 점은 **y축이 위를 가리키므로** 좌표 `(0, 792)` 를 가집니다. 이제 문서 크기를 알았으므로 |MuPDF| "
"좌표계에서 오른쪽 아래는 좌표 `(612, 792)` 가 됩니다(|PDF| 에서는 이 좌표가 `(612,0)` 이 됩니다)."

#: ../../app3.rst:409 1ff227ed19b04762886cbcbc4e4922ad
msgid ""
"Theoretically, there are **infinitely many** coordinate positions on a "
"|PDF| page. In practice however, at most the first 5 decimal places are "
"sufficient for a reasonable precision."
msgstr ""
"이론적으로 |PDF| 페이지에는 **무한히 많은** 좌표 위치가 있습니다. 그러나 실제로는 합리적인 정밀도를 위해 최대 처음 5자리"
" 소수점이면 충분합니다."

#: ../../app3.rst:412 ccd57b81247849d887f21f917dcf79e1
msgid ""
"In |MuPDF|, multiple document formats are supported - |PDF| just being "
"one among **over a dozen others**. Images are also supported as documents"
" in |MuPDF| (therefore having one page usually). This is one of the "
"reasons why |MuPDF| uses a coordinate system with the origin `(0, 0)` "
"being the **top-left** point of any document page. **The y-axis points "
"downwards**, like with images. Coordinates in |MuPDF| in any case are "
"floats, like in |PDF|."
msgstr ""
"|MuPDF| 에서는 여러 문서 형식이 지원됩니다 -- |PDF| 는 **12개 이상의 다른 형식** 중 하나일 뿐입니다. 이미지도"
" |MuPDF| 에서 문서로 지원됩니다(따라서 일반적으로 한 페이지를 가짐). 이것이 |MuPDF| 가 원점 `(0, 0)` 이 "
"모든 문서 페이지의 **왼쪽 위** 점인 좌표계를 사용하는 이유 중 하나입니다. **y축은 아래를 가리킵니다**, 이미지와 "
"마찬가지입니다. |MuPDF| 의 좌표는 어떤 경우든 |PDF| 와 마찬가지로 float입니다."

#: ../../app3.rst:414 9657e0b219bd4d518cdcf40a8a6ccc21
msgid ""
"A rectangle `Rect(0, 0, 100, 100)` for instance in |MuPDF| (and thus "
"|PyMuPDF|) therefore is a square with edges of length 100 points (= 1.39 "
"inches or 3.53 centimeters). Its top-left corner is the origin. To switch"
" between the two coordinate systems |PDF| to |MuPDF|, every :ref:`Page` "
"object has a :attr:`Page.transformation_matrix`. Its inverse can be used "
"to compute a rectangle's PDF coordinates. In this way we can conveniently"
" find that `Rect(0, 0, 100, 100)` in |MuPDF| is the same as `Rect(0, 692,"
" 100, 792)` in |PDF|. See this code snippet::"
msgstr ""
"예를 들어 |MuPDF| (따라서 |PyMuPDF| )에서 `Rect(0, 0, 100, 100)` 사각형은 길이가 100포인트(="
" 1.39인치 또는 3.53센티미터)인 변을 가진 정사각형입니다. 왼쪽 위 모서리가 원점입니다. 두 좌표계 |PDF| 와 "
"|MuPDF| 사이를 전환하려면 모든 :ref:`Page` 객체는 :attr:`Page.transformation_matrix` 를"
" 가집니다. 그 역행렬을 사용하여 사각형의 PDF 좌표를 계산할 수 있습니다. 이렇게 하면 |MuPDF| 의 `Rect(0, 0, "
"100, 100)` 이 |PDF| 의 `Rect(0, 692, 100, 792)` 와 같다는 것을 편리하게 찾을 수 있습니다. 이 "
"코드 조각을 참조하세요::"

#: ../../app3.rst:425 59083fb45b414470920471c730d07179
msgid "Footnotes"
msgstr "각주"

#: ../../app3.rst:426 0164e8d6d2cb4cf98c0101507e790e14
msgid ""
"MuPDF supports \"deep-copying\" objects between PDF documents. To avoid "
"duplicate data in the target, it uses so-called \"graftmaps\", like a "
"form of scratchpad: for each object to be copied, its :data:`xref` number"
" is looked up in the graftmap. If found, copying is skipped. Otherwise, "
"the new :data:`xref` is recorded and the copy takes place. PyMuPDF makes "
"use of this technique in two places so far: :meth:`Document.insert_pdf` "
"and :meth:`Page.show_pdf_page`. This process is fast and very efficient, "
"because it prevents multiple copies of typically large and frequently "
"referenced data, like images and fonts. However, you may still want to "
"consider using garbage collection (option 4) in any of the following "
"cases:"
msgstr ""
"|MuPDF| 는 PDF 문서 간에 객체를 \"deep-copying\" 하는 것을 지원합니다. 대상에서 중복 데이터를 피하기 위해"
" 스크래치패드 형태의 소위 \"graftmaps\" 를 사용합니다: 복사할 각 객체에 대해 그 :data:`xref` 번호가 "
"graftmap에서 조회됩니다. 발견되면 복사가 건너뜁니다. 그렇지 않으면 새로운 :data:`xref` 가 기록되고 복사가 "
"수행됩니다. |PyMuPDF| 는 지금까지 두 곳에서 이 기술을 사용합니다: :meth:`Document.insert_pdf` 및 "
":meth:`Page.show_pdf_page`. 이 프로세스는 빠르고 매우 효율적입니다. 왜냐하면 이미지와 글꼴과 같은 일반적으로"
" 크고 자주 참조되는 데이터의 여러 복사본을 방지하기 때문입니다. 그러나 다음 경우 중 하나에서 가비지 수집(옵션 4)을 사용하는 "
"것을 고려할 수 있습니다:"

#: ../../app3.rst:428 ff64eb6459dd48aab243823d1e5a8733
msgid ""
"The target PDF is not new / empty: grafting does not check for resources "
"that already existed (e.g. images, fonts) in the target document before "
"opening it."
msgstr ""
"대상 PDF가 새 것이 아니거나 비어 있지 않음: grafting은 문서를 열기 전에 대상 문서에 이미 존재했던 리소스(예: "
"이미지, 글꼴)를 확인하지 않습니다."

#: ../../app3.rst:429 f6431e1f385d4ed89c60d314577c3b72
msgid ""
"Using :meth:`Page.show_pdf_page` for more than one source document: each "
"grafting occurs **within one source** PDF only, not across multiple. So "
"if e.g. the same image exists in pages from different source PDFs, then "
"this will not be detected until garbage collection."
msgstr ""
"하나 이상의 소스 문서에 대해 :meth:`Page.show_pdf_page` 사용: 각 grafting은 여러 문서에 걸쳐서가 "
"아니라 **하나의 소스** PDF 내에서만 발생합니다. 따라서 예를 들어 다른 소스 PDF의 페이지에 동일한 이미지가 존재하면, "
"가비지 수집까지 이것이 감지되지 않습니다."

#: ../../footer.rst:57 0e66288fd8404701a02732244ee2b635
msgid "This documentation covers all versions up to |version|."
msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다."

