From 2b553b403180905ef531e70319e22ca4900a1a5a Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Tue, 25 Nov 2025 23:53:41 +0000 Subject: [PATCH 01/23] Initial commit for Korean version of docs. --- .gitignore | 3 +- docs/README.md | 27 +- docs/locales/ko/LC_MESSAGES/404.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/404.po | 53 + .../ko/LC_MESSAGES/about-feature-matrix.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/about-feature-matrix.po | 21 + .../ko/LC_MESSAGES/about-performance.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/about-performance.po | 21 + docs/locales/ko/LC_MESSAGES/about.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/about.po | 165 + docs/locales/ko/LC_MESSAGES/algebra.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/algebra.po | 409 + docs/locales/ko/LC_MESSAGES/annot.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/annot.po | 1518 +++ docs/locales/ko/LC_MESSAGES/app1.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/app1.po | 646 ++ docs/locales/ko/LC_MESSAGES/app2.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/app2.po | 133 + docs/locales/ko/LC_MESSAGES/app3.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/app3.po | 776 ++ docs/locales/ko/LC_MESSAGES/app4.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/app4.po | 1103 +++ docs/locales/ko/LC_MESSAGES/archive-class.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/archive-class.po | 266 + docs/locales/ko/LC_MESSAGES/changes.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/changes.po | 8652 +++++++++++++++++ docs/locales/ko/LC_MESSAGES/classes.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/classes.po | 45 + docs/locales/ko/LC_MESSAGES/colors.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/colors.po | 97 + docs/locales/ko/LC_MESSAGES/colorspace.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/colorspace.po | 114 + .../ko/LC_MESSAGES/converting-files.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/converting-files.po | 100 + docs/locales/ko/LC_MESSAGES/coop_low.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/coop_low.po | 171 + docs/locales/ko/LC_MESSAGES/device.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/device.po | 93 + docs/locales/ko/LC_MESSAGES/displaylist.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/displaylist.po | 241 + .../ko/LC_MESSAGES/document-writer-class.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/document-writer-class.po | 178 + docs/locales/ko/LC_MESSAGES/document.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/document.po | 5714 +++++++++++ docs/locales/ko/LC_MESSAGES/faq.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/faq.po | 57 + docs/locales/ko/LC_MESSAGES/font.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/font.po | 1028 ++ docs/locales/ko/LC_MESSAGES/footer.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/footer.po | 25 + docs/locales/ko/LC_MESSAGES/functions.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/functions.po | 2091 ++++ docs/locales/ko/LC_MESSAGES/glossary.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/glossary.po | 405 + docs/locales/ko/LC_MESSAGES/header-404.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/header-404.po | 37 + docs/locales/ko/LC_MESSAGES/header.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/header.po | 37 + .../ko/LC_MESSAGES/how-to-open-a-file.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/how-to-open-a-file.po | 255 + docs/locales/ko/LC_MESSAGES/identity.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/identity.po | 64 + docs/locales/ko/LC_MESSAGES/index.mo | Bin 0 -> 1258 bytes docs/locales/ko/LC_MESSAGES/index.po | 78 + docs/locales/ko/LC_MESSAGES/installation.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/installation.po | 569 ++ docs/locales/ko/LC_MESSAGES/irect.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/irect.po | 504 + docs/locales/ko/LC_MESSAGES/link.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/link.po | 372 + docs/locales/ko/LC_MESSAGES/linkdest.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/linkdest.po | 273 + docs/locales/ko/LC_MESSAGES/lowlevel.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/lowlevel.po | 51 + docs/locales/ko/LC_MESSAGES/matrix.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/matrix.po | 496 + docs/locales/ko/LC_MESSAGES/module.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/module.po | 496 + docs/locales/ko/LC_MESSAGES/outline.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/outline.po | 228 + docs/locales/ko/LC_MESSAGES/packaging.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/packaging.po | 202 + docs/locales/ko/LC_MESSAGES/page.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/page.po | 5910 +++++++++++ docs/locales/ko/LC_MESSAGES/pixmap.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/pixmap.po | 1826 ++++ docs/locales/ko/LC_MESSAGES/point.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/point.po | 267 + .../ko/LC_MESSAGES/pymupdf-layout/index.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/pymupdf-layout/index.po | 461 + .../ko/LC_MESSAGES/pymupdf-pro/index.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/pymupdf-pro/index.po | 258 + .../locales/ko/LC_MESSAGES/pymupdf4llm/api.mo | Bin 0 -> 424 bytes .../locales/ko/LC_MESSAGES/pymupdf4llm/api.po | 732 ++ .../ko/LC_MESSAGES/pymupdf4llm/index.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/pymupdf4llm/index.po | 242 + docs/locales/ko/LC_MESSAGES/pyodide.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/pyodide.po | 168 + docs/locales/ko/LC_MESSAGES/quad.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/quad.po | 369 + docs/locales/ko/LC_MESSAGES/rag.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/rag.po | 191 + .../ko/LC_MESSAGES/recipes-annotations.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/recipes-annotations.po | 123 + ...cipes-common-issues-and-their-solutions.mo | Bin 0 -> 424 bytes ...cipes-common-issues-and-their-solutions.po | 350 + .../recipes-drawing-and-graphics.mo | Bin 0 -> 424 bytes .../recipes-drawing-and-graphics.po | 238 + docs/locales/ko/LC_MESSAGES/recipes-images.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/recipes-images.po | 966 ++ .../ko/LC_MESSAGES/recipes-journalling.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/recipes-journalling.po | 171 + .../recipes-low-level-interfaces.mo | Bin 0 -> 424 bytes .../recipes-low-level-interfaces.po | 505 + .../ko/LC_MESSAGES/recipes-multiprocessing.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/recipes-multiprocessing.po | 81 + docs/locales/ko/LC_MESSAGES/recipes-ocr.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/recipes-ocr.po | 174 + .../LC_MESSAGES/recipes-optional-content.mo | Bin 0 -> 424 bytes .../LC_MESSAGES/recipes-optional-content.po | 192 + .../locales/ko/LC_MESSAGES/recipes-stories.mo | Bin 0 -> 424 bytes .../locales/ko/LC_MESSAGES/recipes-stories.po | 665 ++ docs/locales/ko/LC_MESSAGES/recipes-text.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/recipes-text.po | 727 ++ docs/locales/ko/LC_MESSAGES/recipes.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/recipes.po | 41 + docs/locales/ko/LC_MESSAGES/rect.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/rect.po | 786 ++ docs/locales/ko/LC_MESSAGES/resources.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/resources.po | 75 + docs/locales/ko/LC_MESSAGES/shape.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/shape.po | 1460 +++ docs/locales/ko/LC_MESSAGES/story-class.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/story-class.po | 852 ++ .../ko/LC_MESSAGES/supported-files-table.mo | Bin 0 -> 424 bytes .../ko/LC_MESSAGES/supported-files-table.po | 21 + docs/locales/ko/LC_MESSAGES/textpage.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/textpage.po | 1188 +++ docs/locales/ko/LC_MESSAGES/textwriter.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/textwriter.po | 607 ++ docs/locales/ko/LC_MESSAGES/the-basics.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/the-basics.po | 807 ++ docs/locales/ko/LC_MESSAGES/tools.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/tools.po | 723 ++ docs/locales/ko/LC_MESSAGES/tutorial.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/tutorial.po | 1108 +++ docs/locales/ko/LC_MESSAGES/vars.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/vars.po | 787 ++ docs/locales/ko/LC_MESSAGES/version.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/version.po | 47 + docs/locales/ko/LC_MESSAGES/widget.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/widget.po | 608 ++ docs/locales/ko/LC_MESSAGES/xml-class.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/xml-class.po | 1014 ++ docs/locales/ko/LC_MESSAGES/znames.mo | Bin 0 -> 424 bytes docs/locales/ko/LC_MESSAGES/znames.po | 108 + 156 files changed, 52660 insertions(+), 2 deletions(-) create mode 100644 docs/locales/ko/LC_MESSAGES/404.mo create mode 100644 docs/locales/ko/LC_MESSAGES/404.po create mode 100644 docs/locales/ko/LC_MESSAGES/about-feature-matrix.mo create mode 100644 docs/locales/ko/LC_MESSAGES/about-feature-matrix.po create mode 100644 docs/locales/ko/LC_MESSAGES/about-performance.mo create mode 100644 docs/locales/ko/LC_MESSAGES/about-performance.po create mode 100644 docs/locales/ko/LC_MESSAGES/about.mo create mode 100644 docs/locales/ko/LC_MESSAGES/about.po create mode 100644 docs/locales/ko/LC_MESSAGES/algebra.mo create mode 100644 docs/locales/ko/LC_MESSAGES/algebra.po create mode 100644 docs/locales/ko/LC_MESSAGES/annot.mo create mode 100644 docs/locales/ko/LC_MESSAGES/annot.po create mode 100644 docs/locales/ko/LC_MESSAGES/app1.mo create mode 100644 docs/locales/ko/LC_MESSAGES/app1.po create mode 100644 docs/locales/ko/LC_MESSAGES/app2.mo create mode 100644 docs/locales/ko/LC_MESSAGES/app2.po create mode 100644 docs/locales/ko/LC_MESSAGES/app3.mo create mode 100644 docs/locales/ko/LC_MESSAGES/app3.po create mode 100644 docs/locales/ko/LC_MESSAGES/app4.mo create mode 100644 docs/locales/ko/LC_MESSAGES/app4.po create mode 100644 docs/locales/ko/LC_MESSAGES/archive-class.mo create mode 100644 docs/locales/ko/LC_MESSAGES/archive-class.po create mode 100644 docs/locales/ko/LC_MESSAGES/changes.mo create mode 100644 docs/locales/ko/LC_MESSAGES/changes.po create mode 100644 docs/locales/ko/LC_MESSAGES/classes.mo create mode 100644 docs/locales/ko/LC_MESSAGES/classes.po create mode 100644 docs/locales/ko/LC_MESSAGES/colors.mo create mode 100644 docs/locales/ko/LC_MESSAGES/colors.po create mode 100644 docs/locales/ko/LC_MESSAGES/colorspace.mo create mode 100644 docs/locales/ko/LC_MESSAGES/colorspace.po create mode 100644 docs/locales/ko/LC_MESSAGES/converting-files.mo create mode 100644 docs/locales/ko/LC_MESSAGES/converting-files.po create mode 100644 docs/locales/ko/LC_MESSAGES/coop_low.mo create mode 100644 docs/locales/ko/LC_MESSAGES/coop_low.po create mode 100644 docs/locales/ko/LC_MESSAGES/device.mo create mode 100644 docs/locales/ko/LC_MESSAGES/device.po create mode 100644 docs/locales/ko/LC_MESSAGES/displaylist.mo create mode 100644 docs/locales/ko/LC_MESSAGES/displaylist.po create mode 100644 docs/locales/ko/LC_MESSAGES/document-writer-class.mo create mode 100644 docs/locales/ko/LC_MESSAGES/document-writer-class.po create mode 100644 docs/locales/ko/LC_MESSAGES/document.mo create mode 100644 docs/locales/ko/LC_MESSAGES/document.po create mode 100644 docs/locales/ko/LC_MESSAGES/faq.mo create mode 100644 docs/locales/ko/LC_MESSAGES/faq.po create mode 100644 docs/locales/ko/LC_MESSAGES/font.mo create mode 100644 docs/locales/ko/LC_MESSAGES/font.po create mode 100644 docs/locales/ko/LC_MESSAGES/footer.mo create mode 100644 docs/locales/ko/LC_MESSAGES/footer.po create mode 100644 docs/locales/ko/LC_MESSAGES/functions.mo create mode 100644 docs/locales/ko/LC_MESSAGES/functions.po create mode 100644 docs/locales/ko/LC_MESSAGES/glossary.mo create mode 100644 docs/locales/ko/LC_MESSAGES/glossary.po create mode 100644 docs/locales/ko/LC_MESSAGES/header-404.mo create mode 100644 docs/locales/ko/LC_MESSAGES/header-404.po create mode 100644 docs/locales/ko/LC_MESSAGES/header.mo create mode 100644 docs/locales/ko/LC_MESSAGES/header.po create mode 100644 docs/locales/ko/LC_MESSAGES/how-to-open-a-file.mo create mode 100644 docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po create mode 100644 docs/locales/ko/LC_MESSAGES/identity.mo create mode 100644 docs/locales/ko/LC_MESSAGES/identity.po create mode 100644 docs/locales/ko/LC_MESSAGES/index.mo create mode 100644 docs/locales/ko/LC_MESSAGES/index.po create mode 100644 docs/locales/ko/LC_MESSAGES/installation.mo create mode 100644 docs/locales/ko/LC_MESSAGES/installation.po create mode 100644 docs/locales/ko/LC_MESSAGES/irect.mo create mode 100644 docs/locales/ko/LC_MESSAGES/irect.po create mode 100644 docs/locales/ko/LC_MESSAGES/link.mo create mode 100644 docs/locales/ko/LC_MESSAGES/link.po create mode 100644 docs/locales/ko/LC_MESSAGES/linkdest.mo create mode 100644 docs/locales/ko/LC_MESSAGES/linkdest.po create mode 100644 docs/locales/ko/LC_MESSAGES/lowlevel.mo create mode 100644 docs/locales/ko/LC_MESSAGES/lowlevel.po create mode 100644 docs/locales/ko/LC_MESSAGES/matrix.mo create mode 100644 docs/locales/ko/LC_MESSAGES/matrix.po create mode 100644 docs/locales/ko/LC_MESSAGES/module.mo create mode 100644 docs/locales/ko/LC_MESSAGES/module.po create mode 100644 docs/locales/ko/LC_MESSAGES/outline.mo create mode 100644 docs/locales/ko/LC_MESSAGES/outline.po create mode 100644 docs/locales/ko/LC_MESSAGES/packaging.mo create mode 100644 docs/locales/ko/LC_MESSAGES/packaging.po create mode 100644 docs/locales/ko/LC_MESSAGES/page.mo create mode 100644 docs/locales/ko/LC_MESSAGES/page.po create mode 100644 docs/locales/ko/LC_MESSAGES/pixmap.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pixmap.po create mode 100644 docs/locales/ko/LC_MESSAGES/point.mo create mode 100644 docs/locales/ko/LC_MESSAGES/point.po create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.po create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po create mode 100644 docs/locales/ko/LC_MESSAGES/pyodide.mo create mode 100644 docs/locales/ko/LC_MESSAGES/pyodide.po create mode 100644 docs/locales/ko/LC_MESSAGES/quad.mo create mode 100644 docs/locales/ko/LC_MESSAGES/quad.po create mode 100644 docs/locales/ko/LC_MESSAGES/rag.mo create mode 100644 docs/locales/ko/LC_MESSAGES/rag.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-annotations.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-annotations.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-images.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-images.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-journalling.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-journalling.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-ocr.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-ocr.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-optional-content.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-optional-content.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-stories.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-stories.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-text.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes-text.po create mode 100644 docs/locales/ko/LC_MESSAGES/recipes.mo create mode 100644 docs/locales/ko/LC_MESSAGES/recipes.po create mode 100644 docs/locales/ko/LC_MESSAGES/rect.mo create mode 100644 docs/locales/ko/LC_MESSAGES/rect.po create mode 100644 docs/locales/ko/LC_MESSAGES/resources.mo create mode 100644 docs/locales/ko/LC_MESSAGES/resources.po create mode 100644 docs/locales/ko/LC_MESSAGES/shape.mo create mode 100644 docs/locales/ko/LC_MESSAGES/shape.po create mode 100644 docs/locales/ko/LC_MESSAGES/story-class.mo create mode 100644 docs/locales/ko/LC_MESSAGES/story-class.po create mode 100644 docs/locales/ko/LC_MESSAGES/supported-files-table.mo create mode 100644 docs/locales/ko/LC_MESSAGES/supported-files-table.po create mode 100644 docs/locales/ko/LC_MESSAGES/textpage.mo create mode 100644 docs/locales/ko/LC_MESSAGES/textpage.po create mode 100644 docs/locales/ko/LC_MESSAGES/textwriter.mo create mode 100644 docs/locales/ko/LC_MESSAGES/textwriter.po create mode 100644 docs/locales/ko/LC_MESSAGES/the-basics.mo create mode 100644 docs/locales/ko/LC_MESSAGES/the-basics.po create mode 100644 docs/locales/ko/LC_MESSAGES/tools.mo create mode 100644 docs/locales/ko/LC_MESSAGES/tools.po create mode 100644 docs/locales/ko/LC_MESSAGES/tutorial.mo create mode 100644 docs/locales/ko/LC_MESSAGES/tutorial.po create mode 100644 docs/locales/ko/LC_MESSAGES/vars.mo create mode 100644 docs/locales/ko/LC_MESSAGES/vars.po create mode 100644 docs/locales/ko/LC_MESSAGES/version.mo create mode 100644 docs/locales/ko/LC_MESSAGES/version.po create mode 100644 docs/locales/ko/LC_MESSAGES/widget.mo create mode 100644 docs/locales/ko/LC_MESSAGES/widget.po create mode 100644 docs/locales/ko/LC_MESSAGES/xml-class.mo create mode 100644 docs/locales/ko/LC_MESSAGES/xml-class.po create mode 100644 docs/locales/ko/LC_MESSAGES/znames.mo create mode 100644 docs/locales/ko/LC_MESSAGES/znames.po diff --git a/.gitignore b/.gitignore index 23e954719..8ef3bc07d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ *.swp build/ demo/README.rst -docs/build \ No newline at end of file +docs/build +docs/_build diff --git a/docs/README.md b/docs/README.md index 438469d34..aa686b6e3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -48,13 +48,37 @@ A better way of building the documentation if you are actively working on update This will serve the docs on a localhost and auto-update the pages live as you make edits. -### Building the Japanese documentation + + +## Internationalization + +PyMuPDF docs can be delivered in multiple languages - English, Japanese & Korean. + +To add a new langauge, e.g. Korean, use: + +`sphinx-build -b gettext . _build/gettext` +`sphinx-intl update -p _build/gettext -l ko` + + +### Building the Localiized documentation - From the "docs" location run: +#### Japanese: `sphinx-build -a -b html -D language=ja . _build/html/ja` +Once built HTML docs HTML pages are in `_build/html/ja`. + +#### Korean: +`sphinx-build -a -b html -D language=ko . _build/html/ko` + + +Once built HTML docs HTML pages are in `_build/html/ko`. + +Note: subsequent runs can omit the `-a` parameter to speed up builds (it will just build what has changed). + + - Updating, after changes on the `main` branch and a sync with the main `en` .rst files, from the "docs" location, do: `sphinx-build -b gettext . _build/gettext` @@ -62,6 +86,7 @@ This will serve the docs on a localhost and auto-update the pages live as you ma then: `sphinx-intl update -p _build/gettext -l ja` +`sphinx-intl update -p _build/gettext -l ko` This will update the corresponding `po` files for further edits. Then check these files for "#, fuzzy" entries as the new stuff might exist there and requires editing. diff --git a/docs/locales/ko/LC_MESSAGES/404.mo b/docs/locales/ko/LC_MESSAGES/404.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/404.po b/docs/locales/ko/LC_MESSAGES/404.po new file mode 100644 index 000000000..340b18354 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/404.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header-404.rst:-1 a1916335a5274785a49dd5e339d92fe7 +msgid "Artifex" +msgstr "" + +#: ../../header-404.rst:-1 5d84ec96284f4e3f94e9c1b238269f04 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header-404.rst:-1 4576f08a21cd47f79352fb20f6583d87 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../404.rst:4 924f32c8351f4a62978ec14c16c351b5 +msgid "404!" +msgstr "" + +#: ../../404.rst:7 6d3e16ada64f4502aa193e221a595c34 +msgid "**This page is not available.**" +msgstr "" + +#: ../../404.rst:10 dbddaa0e43f144ebbea819e2466410b9 +msgid "Please use the menu or search to find what you are looking for." +msgstr "" + +#: ../../footer.rst:46 a4c037a234b44cbe8461dba8e47036a1 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/about-feature-matrix.mo b/docs/locales/ko/LC_MESSAGES/about-feature-matrix.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/about-feature-matrix.po b/docs/locales/ko/LC_MESSAGES/about-feature-matrix.po new file mode 100644 index 000000000..319de7961 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/about-feature-matrix.po @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + diff --git a/docs/locales/ko/LC_MESSAGES/about-performance.mo b/docs/locales/ko/LC_MESSAGES/about-performance.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/about-performance.po b/docs/locales/ko/LC_MESSAGES/about-performance.po new file mode 100644 index 000000000..319de7961 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/about-performance.po @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + diff --git a/docs/locales/ko/LC_MESSAGES/about.mo b/docs/locales/ko/LC_MESSAGES/about.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/about.po b/docs/locales/ko/LC_MESSAGES/about.po new file mode 100644 index 000000000..f9db35449 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/about.po @@ -0,0 +1,165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 c21340a4b75747d5952e637a324049bf +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 12768be3aef44279a0f53bb67e659597 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 4d3f2343a3e8462e92d346b6ef1bbe0f +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../about.rst:10 6bf350a1548242f08f4231816b75ae9e +msgid "Features Comparison" +msgstr "" + +#: ../../about.rst:16 e6e0680f36684a24b35c48e7756b8ee2 +msgid "Feature Matrix" +msgstr "" + +#: ../../about.rst:18 fdad9ebd21e342da9d1b6b35ca5ad4e9 +msgid "" +"The following table illustrates how |PyMuPDF| compares with other typical" +" solutions." +msgstr "" + +#: ../../about.rst:47 5f1d6f3b09ac43e1ae7043dc7a879c02 +msgid "" +"A note about **Office** document types (DOCX, XLXS, PPTX) and **Hangul** " +"documents (HWPX). These documents can be loaded into |PyMuPDF| and you " +"will receive a :ref:`Document ` object." +msgstr "" + +#: ../../about.rst:49 9add749bf1d7451aabfcb79190677ddb +msgid "There are some caveats:" +msgstr "" + +#: ../../about.rst:52 a610a8b3f5cf4333938a9e7a75157f1d +msgid "we convert the input to **HTML** to layout the content." +msgstr "" + +#: ../../about.rst:53 a71abef4bb604e3b8f1065200afb7907 +msgid "because of this the original page separation has gone." +msgstr "" + +#: ../../about.rst:55 255d6618e34f4f11ae7a1a0f54f57322 +msgid "" +"When saving out the result any faithful representation of the original " +"layout cannot be expected." +msgstr "" + +#: ../../about.rst:57 59954cbab9914471b64ad43b7eb7a58b +msgid "" +"Therefore input files are mostly in a form that's useful for text " +"extraction." +msgstr "" + +#: ../../about.rst:65 f3ad21fdc6c841f090824af510994edb +msgid "Performance" +msgstr "" + +#: ../../about.rst:69 482ba1a4696f429da50d900517f9001b +msgid "" +"To benchmark |PyMuPDF| performance against a range of tasks a test suite " +"with a fixed set of :ref:`8 PDFs with a total of 7,031 " +"pages` containing text & images is used to obtain " +"performance timings." +msgstr "" + +#: ../../about.rst:72 11c5e7e482204c7682f05223297c6488 +msgid "Here are current results, grouped by task:" +msgstr "" + +#: ../../about.rst:81 9f36f4db74ab492ba26cc4fb9946f818 +msgid "" +"For more detail regarding the methodology for these performance timings " +"see: :ref:`Performance Comparison Methodology`." +msgstr "" + +#: ../../about.rst:89 e86ca33131a544e8a4cc0821737a9a86 +msgid "License and Copyright" +msgstr "" + +#: ../../about.rst:93 061c6a01a19c40198fd34033af39cc6d +msgid "" +"|PyMuPDF| and |MuPDF| are now available under both, open-source |AGPL| " +"and commercial license agreements. Please read the full text of the " +"|AGPL| license agreement, available in the distribution material (file " +"COPYING) and `on the GNU license page " +"`_, to ensure that your use " +"case complies with the guidelines of the license. If you determine you " +"cannot meet the requirements of the |AGPL|, please contact `Artifex " +"`_ for more information " +"regarding a commercial license." +msgstr "" + +#: ../../about.rst:111 0cf7adfbbbe6404aae5016ba8cf4ca79 +msgid "" +":title:`Artifex` is the exclusive commercial licensing agent for " +":title:`MuPDF`." +msgstr "" + +#: ../../about.rst:113 1206bde366264e91900de44a990e7b13 +msgid "" +":title:`Artifex`, the :title:`Artifex` logo, :title:`MuPDF`, and the " +":title:`MuPDF` logo are registered trademarks of :title:`Artifex Software" +" Inc.`" +msgstr "" + +#: ../../version.rst:3 b23f02d66d164eb195ed6512c8e9ff6c +msgid "This documentation covers PyMuPDF |version|." +msgstr "" + +#: ../../version.rst:5 ca881a8c265b46618c644701ea14c695 +msgid "" +"The major and minor versions of |PyMuPDF| and |MuPDF| will always be the " +"same. Only the third qualifier (patch level) may deviate from that of " +"|MuPDF|." +msgstr "" + +#: ../../version.rst:7 a91d12805e42498fb4eebcb3f7923eb8 +msgid "" +"Typically PyMuPDF is released more frequently than MuPDF so it will often" +" be the case that the patch level of PyMuPDF will be greater than the " +"embedded MuPDF." +msgstr "" + +#: ../../version.rst:11 2e3b5e5955fc4cba8aafc25d3d650e7a +msgid "For example PyMuPDF-1.24.5 contains MuPDF-1.24.2." +msgstr "" + +#: ../../version.rst:13 a60af2aa03494194b19ecf8e3bc095fc +msgid "Also see `pymupdf_version` and `mupdf_version`." +msgstr "" + +#: ../../footer.rst:46 ea2d1136af82416baa3286db6ed38f96 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/algebra.mo b/docs/locales/ko/LC_MESSAGES/algebra.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/algebra.po b/docs/locales/ko/LC_MESSAGES/algebra.po new file mode 100644 index 000000000..e35e93280 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/algebra.po @@ -0,0 +1,409 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 1f5ba5d56ddc4a2fa55079bc44f7d2c1 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 03f8222493784e3ca314d8d7abdaff0a +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 e6cbb920023f4b0992f996b108924b94 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../algebra.rst:6 920754cf16444314b9c46d86f31b0f00 +msgid "Operator Algebra for Geometry Objects" +msgstr "" + +#: ../../algebra.rst:10 dec854bb55b9478eb8cc515d6eaca329 +msgid "" +"Instances of classes :ref:`Point`, :ref:`IRect`, :ref:`Rect`, :ref:`Quad`" +" and :ref:`Matrix` are collectively also called \"geometry\" objects." +msgstr "" + +#: ../../algebra.rst:12 d199f8882c174dcea71374e8d9993b56 +msgid "" +"They all are special cases of Python sequences, see :ref:`SequenceTypes` " +"for more background." +msgstr "" + +#: ../../algebra.rst:14 122aaf19e93244b3a259c46eacf945b1 +msgid "" +"We have defined operators for these classes that allow dealing with them " +"(almost) like ordinary numbers in terms of addition, subtraction, " +"multiplication, division, and some others." +msgstr "" + +#: ../../algebra.rst:16 84183cdd392441e182408f158d85ab50 +msgid "This chapter is a synopsis of what is possible." +msgstr "" + +#: ../../algebra.rst:19 e8894b34cabf472ea53483bffb05e53d +msgid "General Remarks" +msgstr "" + +#: ../../algebra.rst:20 0934454c0329461698c27169858d0afb +msgid "" +"Operators can be either **binary** (i.e. involving two objects) or " +"**unary**." +msgstr "" + +#: ../../algebra.rst:22 68b04e12599f4ce6a527b3d5f4d358aa +msgid "" +"The resulting type of **binary** operations is either a **new object of " +"the left operand's class,** a bool or (for dot products) a float." +msgstr "" + +#: ../../algebra.rst:24 b5bdf8532fed412092362d18eeb3dbcd +msgid "" +"The result of **unary** operations is either a **new object** of the same" +" class, a bool or a float." +msgstr "" + +#: ../../algebra.rst:26 c6550b01d863415293570f3c92bcab4f +msgid "" +"The binary operators `+, -, *, /` are defined for all classes. They " +"*roughly* do what you would expect -- **except, that the second operand " +"...**" +msgstr "" + +#: ../../algebra.rst:28 55195cd58e234294875781acefaa545e +msgid "" +"may always be a number which then performs the operation on every " +"component of the first one," +msgstr "" + +#: ../../algebra.rst:29 128012698aa343409977ea7e41b35276 +msgid "" +"may always be a numeric sequence of the same length (2, 4 or 6) -- we " +"call such sequences :data:`point_like`, :data:`rect_like`, " +":data:`quad_like` or :data:`matrix_like`, respectively." +msgstr "" + +#: ../../algebra.rst:31 c34b1b77d5ad43c7adc65443468f835d +msgid "" +"Rectangles support **additional binary** operations: **intersection** " +"(operator `\"&\"`), **union** (operator `\"|\"`) and **containment** " +"checking." +msgstr "" + +#: ../../algebra.rst:33 25ac1658fe1042febe1cabd928b67c0c +msgid "" +"Binary operators fully support in-place operations. So if \"°\" is a " +"binary operator then the expression `a °= b` is always valid and the same" +" as `a = a ° b`. Therefore, be careful and do **not** do `p1 *= p2` for " +"two points, because thereafter \"p1\" is a **float**." +msgstr "" + +#: ../../algebra.rst:37 a3178a19dae843a2a0d880ab3d29b924 +msgid "Unary Operations" +msgstr "" + +#: ../../algebra.rst:40 ../../algebra.rst:59 49cce5653ff84ecd9e947c39e0d07c87 +#: c3820b716a6d44b1be18f6133e3b4589 +msgid "Oper." +msgstr "" + +#: ../../algebra.rst:40 ../../algebra.rst:59 69b612ab28c5403698b26e70c7342e08 +#: a4d6a4f7e8074daf86d9c71f76c15e3c +msgid "Result" +msgstr "" + +#: ../../algebra.rst:42 bd8aa928700f4d6da33517c5c44f92d1 +msgid "bool(OBJ)" +msgstr "" + +#: ../../algebra.rst:42 3944ae985d32466ba96b36a9d164d059 +msgid "is false exactly if all components of OBJ are zero" +msgstr "" + +#: ../../algebra.rst:43 77ef179dc26548b3afe5aab5973b1ad3 +msgid "abs(OBJ)" +msgstr "" + +#: ../../algebra.rst:43 c040cb90c08c4c24ab34fca940e7a5d3 +msgid "the rectangle area -- equal to norm(OBJ) for the other types" +msgstr "" + +#: ../../algebra.rst:44 8e3b6dc21657411cb9b9aec339f7b58b +msgid "norm(OBJ)" +msgstr "" + +#: ../../algebra.rst:44 101cabdb07cc4340a520f882a1412565 +msgid "square root of the component squares (Euclidean norm)" +msgstr "" + +#: ../../algebra.rst:45 7dcf68ad8af544e4ab89a8fb9b2e127f +msgid "+OBJ" +msgstr "" + +#: ../../algebra.rst:45 bb51eef23c134b9abcde315903ab5fa9 +msgid "new copy of OBJ" +msgstr "" + +#: ../../algebra.rst:46 fbe1c96a611b41cdbdd3c8fd57b6cffd +msgid "-OBJ" +msgstr "" + +#: ../../algebra.rst:46 bf0e072e4b3b4682b53d14c5d564d191 +msgid "new copy of OBJ with negated components" +msgstr "" + +#: ../../algebra.rst:47 41d625338bff4d5bba38dc17591c1cd4 +msgid "~m" +msgstr "" + +#: ../../algebra.rst:47 e461d45306e940efa0e6c12f0b3a0001 +msgid "inverse of matrix \"m\", or the null matrix if not invertible" +msgstr "" + +#: ../../algebra.rst:52 6dee1ec3dcbd4abfb2a10eb496fd0db8 +msgid "Binary Operations" +msgstr "" + +#: ../../algebra.rst:53 77bb8041546c4d36b40997f8dc509039 +msgid "" +"These are expressions like `a ° b` where \"°\" is any of the operators " +"`+, -, *, /`. Also binary operations are expressions of the form `a == b`" +" and `b in a`." +msgstr "" + +#: ../../algebra.rst:55 665cd59a262c4131b350a1640ca2f42c +msgid "" +"If \"b\" is a number, then the respective operation is executed for each " +"component of \"a\". Otherwise, if \"b\" is **not a number,** then the " +"following happens:" +msgstr "" + +#: ../../algebra.rst:61 b25c4a3c6bc2413ea4202520e62172d8 +msgid "a+b, a-b" +msgstr "" + +#: ../../algebra.rst:61 bf714007cfab424dbe07b769f64b1915 +msgid "component-wise execution, \"b\" must be \"a-like\"." +msgstr "" + +#: ../../algebra.rst:62 80c4437403a149669f5a019a372b05a9 +msgid "a*m, a/m" +msgstr "" + +#: ../../algebra.rst:62 9c7dff332f5a488587e7031c72f8a13a +msgid "" +"\"a\" can be a point, rectangle or matrix and \"m\" is a " +":data:`matrix_like`. *\"a/m\"* is treated as *\"a*~m\"* (see note below " +"for non-invertible matrices). If \"a\" is a **point** or a **rectangle**," +" then *\"a.transform(m)\"* is executed. If \"a\" is a matrix, then matrix" +" concatenation takes place." +msgstr "" + +#: ../../algebra.rst:67 d01766d058d54714bc45e5e76968d4ea +msgid "a*b" +msgstr "" + +#: ../../algebra.rst:67 d18a927d83d845ddbd20845807b09e1f +msgid "returns the **vector dot product** for a point \"a\" and point-like \"b\"." +msgstr "" + +#: ../../algebra.rst:68 a49b407604184c13b57152c45ddb58ae +msgid "a&b" +msgstr "" + +#: ../../algebra.rst:68 7550c08ef54244859c5a00ebed58448c +msgid "" +"**intersection rectangle:** \"a\" must be a rectangle and \"b\" " +":data:`rect_like`. Delivers the **largest rectangle** contained in both " +"operands." +msgstr "" + +#: ../../algebra.rst:71 a60662c06b0643b0a08f75afa24efb29 +msgid "a|b" +msgstr "" + +#: ../../algebra.rst:71 79243f4be19046db9091a2f54eb4b815 +msgid "" +"**union rectangle:** \"a\" must be a rectangle, and \"b\" may be " +":data:`point_like` or :data:`rect_like`. Delivers the **smallest " +"rectangle** containing both operands." +msgstr "" + +#: ../../algebra.rst:74 f48f56c4ee6547259acb882e87de433c +msgid "b in a" +msgstr "" + +#: ../../algebra.rst:74 8f22ca12cfa44a898823836324a3ed99 +msgid "" +"if \"b\" is a number, then `b in tuple(a)` is returned. If \"b\" is " +":data:`point_like`, :data:`rect_like` or :data:`quad_like`, then \"a\" " +"must be a rectangle, and `a.contains(b)` is returned." +msgstr "" + +#: ../../algebra.rst:77 686725c716014188a79169f7cf3fd1e6 +msgid "a == b" +msgstr "" + +#: ../../algebra.rst:77 634c54d1d21d471fabf558849def45e4 +msgid "``True`` if *bool(a-b)* is ``False`` (\"b\" may be \"a-like\")." +msgstr "" + +#: ../../algebra.rst:81 d34c2f644c4b4e6090e0e70255dd2ac5 +msgid "Please note an important difference to usual arithmetic:" +msgstr "" + +#: ../../algebra.rst:83 ed3c97cc627d48b394819eb13306021a +msgid "" +"Matrix multiplication is **not commutative**, i.e. in general we have " +"`m*n != n*m` for two matrices. Also, there are non-zero matrices which " +"have no inverse, for example `m = Matrix(1, 0, 1, 0, 1, 0)`. If you try " +"to divide by any of these, you will receive a `ZeroDivisionError` " +"exception using operator *\"/\"*, e.g. for the expression " +"`pymupdf.Identity / m`. But if you formulate `pymupdf.Identity * ~m`, the" +" result will be `pymupdf.Matrix()` (the null matrix)." +msgstr "" + +#: ../../algebra.rst:85 34a95a9718a64ff1a3bea139455bb7f8 +msgid "" +"Admittedly, this represents an inconsistency, and we are considering to " +"remove it. For the time being, you can choose to avoid an exception and " +"check whether ~m is the null matrix, or accept a potential " +"*ZeroDivisionError* by using `pymupdf.Identity / m`." +msgstr "" + +#: ../../algebra.rst:89 be97480da28d4d4190b9207839fe11f4 +msgid "" +"With these conventions, all the usual algebra rules apply. For example, " +"arbitrarily using brackets **(among objects of the same class!)** is " +"possible: if r1, r2 are rectangles and m1, m2 are matrices, you can do " +"this `(r1 + r2) * m1 * m2`." +msgstr "" + +#: ../../algebra.rst:90 511b54d905464bb8ad95bc07423f1ac2 +msgid "" +"For all objects of the same class, `a + b + c == (a + b) + c == a + (b + " +"c)` is true." +msgstr "" + +#: ../../algebra.rst:91 c33b3f88dde84396a57cd45693269bce +msgid "" +"For matrices in addition the following is true: `(m1 + m2) * m3 == m1 * " +"m3 + m2 * m3` (distributivity property)." +msgstr "" + +#: ../../algebra.rst:92 78e8741acecb42b284d4923e4453fb4d +msgid "" +"**But the sequence of applying matrices is important:** If r is a " +"rectangle and m1, m2 are matrices, then -- **caution!:**" +msgstr "" + +#: ../../algebra.rst:93 f0abf06e26414aa19a371baa59b462f2 +msgid "`r * m1 * m2 == (r * m1) * m2 != r * (m1 * m2)`" +msgstr "" + +#: ../../algebra.rst:96 f4a7e127cb3b40d6bfb3847510e2f35c +msgid "Some Examples" +msgstr "" + +#: ../../algebra.rst:99 15d4cd12242a495384b94b9fc6c95502 +msgid "Manipulation with numbers" +msgstr "" + +#: ../../algebra.rst:100 fcede45c56364a49abff9441c752c928 +msgid "" +"For the usual arithmetic operations, numbers are always allowed as second" +" operand. In addition, you can formulate `\"x in OBJ\"`, where x is a " +"number. It is implemented as `\"x in tuple(OBJ)\"`::" +msgstr "" + +#: ../../algebra.rst:108 45094f3eda93464f8d0c9fa9f96154a4 +msgid "" +"The following will create the upper left quarter of a document page " +"rectangle::" +msgstr "" + +#: ../../algebra.rst:116 fccb6e938aa14f8c823d2a27fb71bb4e +msgid "" +"The following will deliver the **middle point of a line** that connects " +"two points **p1** and **p2**::" +msgstr "" + +#: ../../algebra.rst:125 0c7572c7661544739337b8dcd633678e +msgid "" +"Compute the **vector dot product** of two points. You can compute the " +"**cosine of angles** and check orthogonality." +msgstr "" + +#: ../../algebra.rst:149 9659faf69acb47fd94f2c4d7dbcfd358 +msgid "Manipulation with \"like\" Objects" +msgstr "" + +#: ../../algebra.rst:151 f7a23c3a7065470aa9f9ae634cfa4521 +msgid "" +"The second operand of a binary operation can always be \"like\" the left " +"operand. \"Like\" in this context means \"a sequence of numbers of the " +"same length\". With the above examples::" +msgstr "" + +#: ../../algebra.rst:162 d40766627f0645a4a9b0f043c79f8df5 +msgid "To shift a rectangle for 5 pixels to the right, do this::" +msgstr "" + +#: ../../algebra.rst:168 40356e8f087b4678a490620822d72405 +msgid "" +"Points, rectangles and matrices can be *transformed* with matrices. In " +"PyMuPDF, we treat this like a **\"multiplication\"** (or resp. " +"**\"division\"**), where the second operand may be \"like\" a matrix. " +"Division in this context means \"multiplication with the inverted " +"matrix\"::" +msgstr "" + +#: ../../algebra.rst:208 ca50582bfe28428c82f4ac0277e2d5be +msgid "As a specialty, rectangles support additional binary operations:" +msgstr "" + +#: ../../algebra.rst:210 59df6332d27249a28c44c9d4c7278be7 +msgid "**intersection** -- the common area of rectangle-likes, operator *\"&\"*" +msgstr "" + +#: ../../algebra.rst:211 de5939af58234aa2be504334193d66d4 +msgid "" +"**inclusion** -- enlarge to include a point-like or rect-like, operator " +"*\"|\"*" +msgstr "" + +#: ../../algebra.rst:212 7c511b27c11240cf9d09ca3e172cf9d2 +msgid "**containment** check -- whether a point-like or rect-like is inside" +msgstr "" + +#: ../../algebra.rst:214 901c1c4b81ce485fa4de1ef6f505e7e3 +msgid "" +"Here is an example for creating the smallest rectangle enclosing given " +"points::" +msgstr "" + +#: ../../footer.rst:46 d8841960d4f44b93825542b2759973e3 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/annot.mo b/docs/locales/ko/LC_MESSAGES/annot.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/annot.po b/docs/locales/ko/LC_MESSAGES/annot.po new file mode 100644 index 000000000..3eceb6120 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/annot.po @@ -0,0 +1,1518 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 4ac2fe405aa74919af4d4a1801389523 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 aee68aa3a3cc4589bddde105fa520c68 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 60584b8003094a8b9570ee372d8eab4b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../annot.rst:7 f0fb0074a9b6446f8124c5e84ab64978 +msgid "Annot" +msgstr "" + +#: ../../annot.rst:9 fafaf69d450d48c5b26a1a93cb2eaa69 +msgid "|pdf_only_class|" +msgstr "" + +#: ../../annot.rst:11 4869b122c6834f279f19045fee171ca8 +msgid "Quote from the :ref:`AdobeManual`:" +msgstr "" + +#: ../../annot.rst:13 e7b3050079714378a72611a6fde2125b +msgid "" +"*\"An annotation associates an object such as a note, sound, or movie " +"with a location on a page of a PDF document, or provides a way to " +"interact with the user by means of the mouse and keyboard.\"*" +msgstr "" + +#: ../../annot.rst:15 5c314b35139f446694f6aca06c7824f1 +msgid "" +"There is a parent-child relationship between an annotation and its page. " +"If the page object becomes unusable (closed document, any document " +"structure change, etc.), then so does every of its existing annotation " +"objects -- an exception is raised saying that the object is \"orphaned\"," +" whenever an annotation property or method is accessed." +msgstr "" + +#: ../../annot.rst:18 ce89c615b0d9400e96011970b5b97556 +msgid "**Attribute**" +msgstr "" + +#: ../../annot.rst:18 715a7d9d0eca46759c21efd06dcef6ad +msgid "**Short Description**" +msgstr "" + +#: ../../annot.rst:20 46ba2c1aef7f47fb8cf735ab0ab8ca51 +msgid ":meth:`Annot.delete_responses`" +msgstr "" + +#: ../../annot.rst:20 542edab529f14f8a90c247c58f61d0e4 +msgid "delete all responding annotations" +msgstr "" + +#: ../../annot.rst:21 d6f4ad7997854c15ba7ef55c7c2df885 +msgid ":meth:`Annot.get_file`" +msgstr "" + +#: ../../annot.rst:21 df78c21ef62f4d29b9892ced6ce30eab +msgid "get attached file content" +msgstr "" + +#: ../../annot.rst:22 aaa2f1576e2940d187b785f39fd5d297 +msgid ":meth:`Annot.get_oc`" +msgstr "" + +#: ../../annot.rst:22 52de51aa8f364679a043608a648fdb6d +msgid "get :data:`xref` of an :data:`OCG` / :data:`OCMD`" +msgstr "" + +#: ../../annot.rst:23 ba830719161c41318892442d95b2cb34 +msgid ":meth:`Annot.get_pixmap`" +msgstr "" + +#: ../../annot.rst:23 558b79769da645e1be5e25ee89f039ab +msgid "image of the annotation as a pixmap" +msgstr "" + +#: ../../annot.rst:24 a7049ccda64e4dd6890da7abe84fabf6 +msgid ":meth:`Annot.get_sound`" +msgstr "" + +#: ../../annot.rst:24 374a09b731894e87b56c7e841b17d330 +msgid "get the sound of an audio annotation" +msgstr "" + +#: ../../annot.rst:25 35a90d1b5a004ad387963f3d9607d749 +msgid ":meth:`Annot.get_text`" +msgstr "" + +#: ../../annot.rst:25 ../../annot.rst:26 6131792a9d994335b4444e4823388a9a +#: f86eecd4858f4cb89a366a146014aee5 +msgid "extract annotation text" +msgstr "" + +#: ../../annot.rst:26 04cf9bb3fb1442709930c64bc5f6b0bb +msgid ":meth:`Annot.get_textbox`" +msgstr "" + +#: ../../annot.rst:27 19db3425545544fcbcd820ce607ec897 +msgid ":meth:`Annot.get_textpage`" +msgstr "" + +#: ../../annot.rst:27 c85fb9dd00d64ff99bd74482953c24bf +msgid "create a TextPage for the annotation" +msgstr "" + +#: ../../annot.rst:28 802ef16921bd4a60800fbad10cc481fd +msgid ":meth:`Annot.set_border`" +msgstr "" + +#: ../../annot.rst:28 2237d589cf4b43f8accb31706b0ac2e1 +msgid "set annotation's border properties" +msgstr "" + +#: ../../annot.rst:29 d6e3ab0ff8c247faa2df18a3dbd4fb5f +msgid ":meth:`Annot.set_blendmode`" +msgstr "" + +#: ../../annot.rst:29 8ff755a8802d4e4bb4f4c6466fd93439 +msgid "set annotation's blend mode" +msgstr "" + +#: ../../annot.rst:30 ff206dc2f63444dfae9fbe12712ba514 +msgid ":meth:`Annot.set_colors`" +msgstr "" + +#: ../../annot.rst:30 3a8dce63eadd4ffe82a27bc21a526045 +msgid "set annotation's colors" +msgstr "" + +#: ../../annot.rst:31 ../../annot.rst:341 7c620a1bbb3d466d8c82b9c8817c33ee +#: a00f8a2d06fa46afb1028c82837e4185 +msgid ":meth:`Annot.set_flags`" +msgstr "" + +#: ../../annot.rst:31 37269417aa5845e78bc95975097fddad +msgid "set annotation's flags field" +msgstr "" + +#: ../../annot.rst:32 60f6edb527ee49f1935786a1f19697cb +msgid ":meth:`Annot.set_irt_xref`" +msgstr "" + +#: ../../annot.rst:32 fe64d8f927974fa7be28efe034d209b8 +msgid "define the annotation to being \"In Response To\"" +msgstr "" + +#: ../../annot.rst:33 efcba97648754ee0b6f2bf66c5fb7b3b +msgid ":meth:`Annot.set_name`" +msgstr "" + +#: ../../annot.rst:33 f1f066d0c2da4d5f93f7b21c9e06512b +msgid "set annotation's name field" +msgstr "" + +#: ../../annot.rst:34 ../../annot.rst:342 068e0ee638a844e4b73d54c8713fd9bb +#: 444417b076ed4a7f9938de802c9c8687 +msgid ":meth:`Annot.set_oc`" +msgstr "" + +#: ../../annot.rst:34 2afdd097e4904b54a8f1ea48f5b61be3 +msgid "set :data:`xref` to an :data:`OCG` / :data:`OCMD`" +msgstr "" + +#: ../../annot.rst:35 c399de4849964e058e1637e53fdef2f9 +msgid ":meth:`Annot.set_opacity`" +msgstr "" + +#: ../../annot.rst:35 fff897c6b9cd4cf7bfd2472ea748ca06 +msgid "change transparency" +msgstr "" + +#: ../../annot.rst:36 d97cf692893c4fe7a6b799f4897c0aef +msgid ":meth:`Annot.set_open`" +msgstr "" + +#: ../../annot.rst:36 75aaff0f9c3c458ab962d5b77a5d79d3 +msgid "open / close annotation or its Popup" +msgstr "" + +#: ../../annot.rst:37 39f62e91ffef48ce9321e816caa20faa +msgid ":meth:`Annot.set_popup`" +msgstr "" + +#: ../../annot.rst:37 a674eec367f341508c884d315088746a +msgid "create a Popup for the annotation" +msgstr "" + +#: ../../annot.rst:38 ../../annot.rst:340 305b0c54c12a450e8f06569799bb8a9f +#: f592c57486d9486c86df308aa89526da +msgid ":meth:`Annot.set_rect`" +msgstr "" + +#: ../../annot.rst:38 26f28928df154a75b841a456bdfdbf0d +msgid "change annotation rectangle" +msgstr "" + +#: ../../annot.rst:39 de6a1b1b820b471b86603c34dea03532 +msgid ":meth:`Annot.set_rotation`" +msgstr "" + +#: ../../annot.rst:39 9acc32b08f1d4f599b3735e31324426f +msgid "change rotation" +msgstr "" + +#: ../../annot.rst:40 ../../annot.rst:343 18be6c4fae4e4cccb293fd8e12521dae +#: 5200f1161df84772b72d390ec55d63cc +msgid ":meth:`Annot.update_file`" +msgstr "" + +#: ../../annot.rst:40 c1b5d04cd03e4575a6d8bc9e47a2ac7f +msgid "update attached file content" +msgstr "" + +#: ../../annot.rst:41 736a77ca795b4bffab978f162c15c221 +msgid ":meth:`Annot.update`" +msgstr "" + +#: ../../annot.rst:41 53fe58b99d874419bf45e91f443bea49 +msgid "apply accumulated annot changes" +msgstr "" + +#: ../../annot.rst:42 076fef78de8747f98f8de5614822a3a3 +msgid ":attr:`Annot.blendmode`" +msgstr "" + +#: ../../annot.rst:42 3663d5144b7e4772a20a3ab76b0b7378 +msgid "annotation BlendMode" +msgstr "" + +#: ../../annot.rst:43 209656247f2147b79d61220568d6e982 +msgid ":attr:`Annot.border`" +msgstr "" + +#: ../../annot.rst:43 cd995c15bfff4706a84f1d0deeef716c +msgid "border details" +msgstr "" + +#: ../../annot.rst:44 a5a847e7aa1e4a66a59312e3ad69222e +msgid ":attr:`Annot.colors`" +msgstr "" + +#: ../../annot.rst:44 7b16476edb2c47ee929046394941f61e +msgid "border / background and fill colors" +msgstr "" + +#: ../../annot.rst:45 c79db9da10a34adf8724954ae760d148 +msgid ":attr:`Annot.file_info`" +msgstr "" + +#: ../../annot.rst:45 5e6d650320a44ec89edde9ad8443d028 +msgid "get attached file information" +msgstr "" + +#: ../../annot.rst:46 830bf8e01251454db4eff541902734e7 +msgid ":attr:`Annot.flags`" +msgstr "" + +#: ../../annot.rst:46 d8e2f38116e34d6b8bcc0e11a02f64c4 +msgid "annotation flags" +msgstr "" + +#: ../../annot.rst:47 427dbbb309334a4e938d8526af8aedd7 +msgid ":attr:`Annot.has_popup`" +msgstr "" + +#: ../../annot.rst:47 60549aa88002459b888f805a2649e95e +msgid "whether annotation has a Popup" +msgstr "" + +#: ../../annot.rst:48 91cb2647177c40108aa8a389fbe4baba +msgid ":attr:`Annot.irt_xref`" +msgstr "" + +#: ../../annot.rst:48 4b1a08935c844e1b94fd19e67c73c4bf +msgid "annotation to which this one responds" +msgstr "" + +#: ../../annot.rst:49 c80c1d9523e54c13bf015a7802006f46 +msgid ":attr:`Annot.info`" +msgstr "" + +#: ../../annot.rst:49 e24c29731fb9426296860ef9e14c70f4 +msgid "various information" +msgstr "" + +#: ../../annot.rst:50 9b1bc0b4f5604360a0fb530ee5571f6f +msgid ":attr:`Annot.is_open`" +msgstr "" + +#: ../../annot.rst:50 76000b5c78d64a51b15f2dfb48416053 +msgid "whether annotation or its Popup is open" +msgstr "" + +#: ../../annot.rst:51 c908f9af6c5e4097b190ab575189cc0e +msgid ":attr:`Annot.line_ends`" +msgstr "" + +#: ../../annot.rst:51 5b4b1ee3f3ae4f66af35ac09445805c4 +msgid "start / end appearance of line-type annotations" +msgstr "" + +#: ../../annot.rst:52 270077d780344f6c94f61715f13de4c2 +msgid ":attr:`Annot.next`" +msgstr "" + +#: ../../annot.rst:52 0dd927ea19014ab0ab931ee426aa46a2 +msgid "link to the next annotation" +msgstr "" + +#: ../../annot.rst:53 0642e6954b8f41758e18c9fec902315c +msgid ":attr:`Annot.opacity`" +msgstr "" + +#: ../../annot.rst:53 55103257955240a6b3c311e8e1f97f3c +msgid "the annot's transparency" +msgstr "" + +#: ../../annot.rst:54 7528c54e1c664627851d592e77e4359b +msgid ":attr:`Annot.parent`" +msgstr "" + +#: ../../annot.rst:54 d12a83a84aea44868a11feca2fd75f9e +msgid "page object of the annotation" +msgstr "" + +#: ../../annot.rst:55 17d31eb890f346608a29bac66b130ede +msgid ":attr:`Annot.popup_rect`" +msgstr "" + +#: ../../annot.rst:55 e67d5b1efe1a49f8824bf40d6af292e8 +msgid "rectangle of the annotation's Popup" +msgstr "" + +#: ../../annot.rst:56 f5012088621c45f4a0cfa4ff69b400c8 +msgid ":attr:`Annot.popup_xref`" +msgstr "" + +#: ../../annot.rst:56 3c9f31c943c04997b05236036e58e2a7 +msgid "the PDF :data:`xref` number of the annotation's Popup" +msgstr "" + +#: ../../annot.rst:57 b0aaf4fc5d1d46a69cbca9c8576c4dff +msgid ":attr:`Annot.rect`" +msgstr "" + +#: ../../annot.rst:57 a3afa859fcc54f03b9928dd3e3b37411 +msgid "rectangle containing the annotation" +msgstr "" + +#: ../../annot.rst:58 e5405a3d8d6c48e3b0ba2375b00d54fc +msgid ":attr:`Annot.type`" +msgstr "" + +#: ../../annot.rst:58 49ea84134cbd4fcfa71613fdc7c994d4 +msgid "type of the annotation" +msgstr "" + +#: ../../annot.rst:59 aedf999133ed4add859f5f25fcfd9c0a +msgid ":attr:`Annot.vertices`" +msgstr "" + +#: ../../annot.rst:59 0328a5222a444a84b329ee20a13d1815 +msgid "point coordinates of Polygons, PolyLines, etc." +msgstr "" + +#: ../../annot.rst:60 593f8d9df1724b5abbabd4b0fb42cb5f +msgid ":attr:`Annot.xref`" +msgstr "" + +#: ../../annot.rst:60 73d760603078437db968d81892fe5450 +msgid "the PDF :data:`xref` number" +msgstr "" + +#: ../../annot.rst:63 df3b29896fc84aa687b9b3d812b47830 +msgid "**Class API**" +msgstr "" + +#: ../../annot.rst:75 b763b56670344531ae43994d27d0e054 +msgid "Changed in v1.19.2: added support of dpi parameter." +msgstr "" + +#: ../../annot.rst:77 571f3475af9d4fd8af0faef1dae8b761 +msgid "" +"Creates a pixmap from the annotation as it appears on the page in " +"untransformed coordinates. The pixmap's :ref:`IRect` equals " +"*Annot.rect.irect* (see below). **All parameters are keyword only.**" +msgstr "" + +#: ../../annot.rst 038416b4a91041e89e078df4fe4f5636 +#: 046b68e35745422e8e27b6ad4743720b 0ef49f86e0bd43f78e79e32e94eeea45 +#: 176c3a7acc6e46d38ef37bbfe97eabda 1795f42bf0b242078204d40d7a212c9a +#: 2ab60eb3db5f4b3594f30a2bb7fd5444 388ae783a9ec418581e0f622c2641963 +#: 43c0bbc7ec774e96973a8f08c6370ebf 4e661fceb8be4c56850376cc43c38594 +#: 5327b6738ac2466a95ae4ef2989536c3 7698812a2a694b63b8da213e56c66c7e +#: a57f1370f9ac44c2b28c69413752355b a97c7424f15243ca9fa1102ea36941f0 +#: bff13711337448f7809f30648c7765cd c8747aff1faa43f59b605c163d80ed7a +#: d304c87c1b314f8f8d8449beb2cb9f43 e366806d4cdc4805a5cf6e6605d4c7ab +#: e6d90ec622494f2cad21e1c4990e3a26 f73c89ed9881402ba2bd06564113f2e8 +#: fe526c08b06a4286849cdeea133c925d +msgid "Parameters" +msgstr "" + +#: ../../annot.rst:79 4ea40779573a4cd48d2f0ca41a27b6cb +msgid "a matrix to be used for image creation. Default is :ref:`Identity`." +msgstr "" + +#: ../../annot.rst:81 1ceeea87c25445779a772f81c247bf10 +msgid "" +"(new in v1.19.2) desired resolution in dots per inch. If not `None`, the " +"matrix parameter is ignored." +msgstr "" + +#: ../../annot.rst:83 17577d5328264f3c8b2c93127b76cb6c +msgid "a colorspace to be used for image creation. Default is ``pymupdf.csRGB``." +msgstr "" + +#: ../../annot.rst:86 93850b04eff54b39a748a09ca5d3e6bd +msgid "whether to include transparency information. Default is ``False``." +msgstr "" + +#: ../../annot.rst 089309c51cd74976a42c4fcddda08a0a +#: 09996d0975d243b1bc59b758b7d44173 1b331e1086824733a78f979f849d4845 +#: 4817d4a35c28463eadae53476e0fd0d5 4b59e1c18c4147e69674c7d1e86501d1 +#: 4c64d5922d9847968b2eeaee6487d0d0 4df6734c085c4a6ba495179996cfe92c +#: 6347f866f7334ddda019820946166705 67048e418fbe44a79f9f63c0d53cb3a5 +#: 7da6735c6b7f428e9eef30245825960b 7e4ad8f3110c429ea89f047da218ee26 +#: 7f141e9ca331471ba531fcb59d32b10d 90d37be980f143b8aa9b4c16f83f6c90 +#: a74cb6e028054b5abf3bcf4af3e18ad5 a838020417bb45188717e971f12c4b8f +#: a8439c00be7b4164a1bbeae31ecffb57 a88e7e1341604dbf90a4215903761bf1 +#: b193bdba031541f882f6d4d77564f78c bad1047750b244bca5505f7e797508bc +#: d5d3fd4c788c48d6a3ad00aa4327e554 dc6f3b8d0e814a898c59d6e18c7b6fac +#: ddc5fc79a0cd4e73a90a35b7de615f40 e556cbfd31a6417f8e4aab208b84c15a +#: f867cc47820b4df6923b1b5b90969f1b +msgid "Return type" +msgstr "" + +#: ../../annot.rst:88 4081b82925b34d7aa9202a29b34e6645 +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../annot.rst:92 b9b41dd1363b465fb91e965b05c005a3 +msgid "" +"If the annotation has just been created or modified, you should " +":meth:`Document.reload_page` the page first via `page = " +"doc.reload_page(page)`." +msgstr "" + +#: ../../annot.rst:94 968363fd034a4b84834bfe008fd58160 +msgid "" +"The pixmap will have *\"premultiplied\"* pixels if `alpha=True`. To learn" +" about some background, e.g. look for \"Premultiplied alpha\" `in this " +"online glossary " +"`_." +msgstr "" + +#: ../../annot.rst:112 ../../annot.rst:133 059d5413f3154aaa8134479d9629d7da +#: 5b109c06581d4245b9034c003ef2e32f +msgid "New in 1.18.0" +msgstr "" + +#: ../../annot.rst:114 70fc1c944cd84ce18b5f51c59bbb47f0 +msgid "" +"Retrieves the content of the annotation in a variety of formats -- much " +"like the same method for :ref:`Page`.. This currently only delivers " +"relevant data for annotation types 'FreeText' and 'Stamp'. Other types " +"return an empty string (or equivalent objects)." +msgstr "" + +#: ../../annot.rst:116 4f2629a0de0d499f8b80783953ee846e +msgid "" +"(positional only) the desired format - one of the following values. " +"Please note that this method works exactly like the same-named method of " +":ref:`Page`. * \"text\" -- :meth:`TextPage.extractTEXT`, default * " +"\"blocks\" -- :meth:`TextPage.extractBLOCKS` * \"words\" -- " +":meth:`TextPage.extractWORDS` * \"html\" -- :meth:`TextPage.extractHTML` " +"* \"xhtml\" -- :meth:`TextPage.extractXHTML` * \"xml\" -- " +":meth:`TextPage.extractXML` * \"dict\" -- :meth:`TextPage.extractDICT` * " +"\"json\" -- :meth:`TextPage.extractJSON` * \"rawdict\" -- " +":meth:`TextPage.extractRAWDICT`" +msgstr "" + +#: ../../annot.rst:116 f5480fbc3f3f42fba82218a8e4aec39e +msgid "" +"(positional only) the desired format - one of the following values. " +"Please note that this method works exactly like the same-named method of " +":ref:`Page`." +msgstr "" + +#: ../../annot.rst:118 72a5b0cb198a4de4a1b5bd8012921a2d +msgid "\"text\" -- :meth:`TextPage.extractTEXT`, default" +msgstr "" + +#: ../../annot.rst:119 a0de89ee87384b559b91cb65e53fd4fe +msgid "\"blocks\" -- :meth:`TextPage.extractBLOCKS`" +msgstr "" + +#: ../../annot.rst:120 abb67ab204e8498a82f39f7786634fa3 +msgid "\"words\" -- :meth:`TextPage.extractWORDS`" +msgstr "" + +#: ../../annot.rst:121 2a65cab359de401d84fb6c06d18af7fe +msgid "\"html\" -- :meth:`TextPage.extractHTML`" +msgstr "" + +#: ../../annot.rst:122 ebb1a0a333b94886a085c62c2910b11b +msgid "\"xhtml\" -- :meth:`TextPage.extractXHTML`" +msgstr "" + +#: ../../annot.rst:123 039f6bd299a1459984f1378d7506db1d +msgid "\"xml\" -- :meth:`TextPage.extractXML`" +msgstr "" + +#: ../../annot.rst:124 def0587d2e904e678a48944fd55d8845 +msgid "\"dict\" -- :meth:`TextPage.extractDICT`" +msgstr "" + +#: ../../annot.rst:125 9d446d90b12e480186eb0f5d4d6a88ca +msgid "\"json\" -- :meth:`TextPage.extractJSON`" +msgstr "" + +#: ../../annot.rst:126 ba83222452844c0280bc4ca743ec52d2 +msgid "\"rawdict\" -- :meth:`TextPage.extractRAWDICT`" +msgstr "" + +#: ../../annot.rst:128 fc5b291ff14745a4acd435eba57c0ee4 +msgid "" +"(keyword only) restrict the extraction to this area. Should hardly ever " +"be required, defaults to :attr:`Annot.rect`." +msgstr "" + +#: ../../annot.rst:129 58a7b13ec10244cab579c577a4a02451 +msgid "" +"(keyword only) control the amount of data returned. Defaults to simple " +"text extraction." +msgstr "" + +#: ../../annot.rst:135 abea461b229f40449176733f81fe3e1f +msgid "" +"Return the annotation text. Mostly (except line breaks) equal to " +":meth:`Annot.get_text` with the \"text\" option." +msgstr "" + +#: ../../annot.rst:137 7769e9ff53bb477581a82b545145ed52 +msgid "the area to consider, defaults to :attr:`Annot.rect`." +msgstr "" + +#: ../../annot.rst:142 2e28ab6b2bd740c788a328a8a392b3d3 +msgid "Create a :ref:`TextPage` for the annotation." +msgstr "" + +#: ../../annot.rst:144 ec86c28fbc9c4ea5a4520e3182ebac54 +msgid "" +"indicator bits controlling the content available for subsequent text " +"extractions and searches -- see the parameter of :meth:`Annot.get_text`." +msgstr "" + +#: ../../annot.rst:146 f524fdc0ad6649eabe0dcea86d45490d +msgid "restrict extracted text to this area." +msgstr "" + +#: ../../annot.rst 00ab1155c33d4b8b909387ee865f0f14 +#: 054667c67ee948229ce41dcc4618fb84 70e6a4c25ac54573a0e41c8e5ca39783 +#: 75932b217be7487a9362d25abfb1105c a5e875b7000f42ec9309633efaa12429 +#: c194084f626c4b5799f1d232a00741a2 ffd675b9852a4f828c4dfe677c57a2bf +msgid "Returns" +msgstr "" + +#: ../../annot.rst:148 195337666ae04da792bf99b2e5fc7381 +msgid ":ref:`TextPage`" +msgstr "" + +#: ../../annot.rst:150 c08b99010b1b4e45886ecf4295e20ea1 +msgid "|history_begin|" +msgstr "" + +#: ../../annot.rst:152 b9da3f595018401c8b8eeb0c1529cca7 +msgid "v1.25.5: fixed `clip` arg." +msgstr "" + +#: ../../annot.rst:154 0201b53debf84074b8cde915dfcee8f4 +msgid "|history_end|" +msgstr "" + +#: ../../annot.rst:158 7980023e59354afead5f160d58e260cb +msgid "Changed in version 1.16.10" +msgstr "" + +#: ../../annot.rst:160 0b5d367dc98e4a3a9b3fe1c292ce8cb6 +msgid "" +"Changes annotation properties. These include dates, contents, subject and" +" author (title). Changes for *name* and *id* will be ignored. The update " +"happens selectively: To leave a property unchanged, set it to ``None``. " +"To delete existing data, use an empty string." +msgstr "" + +#: ../../annot.rst:162 82ce1316fe354b898446a0cf7a1713b5 +msgid "" +"a dictionary compatible with the *info* property (see below). All entries" +" must be strings. If this argument is not a dictionary, the other " +"arguments are used instead -- else they are ignored." +msgstr "" + +#: ../../annot.rst:163 ../../annot.rst:164 ../../annot.rst:167 +#: 83ea81f2fcaf4733afe8ff369d458b6f 86f02eb815724a3a9d24dd57c593a1a3 +#: c5a737145dcf4d738178459172d94c07 +msgid "*(new in v1.16.10)* see description in :attr:`info`." +msgstr "" + +#: ../../annot.rst:165 5b9616a7ad9147aa931d66313938ba67 +msgid "" +"*(new in v1.16.10)* date of annot creation. If given, should be in PDF " +"datetime format." +msgstr "" + +#: ../../annot.rst:166 3764dd0b660a48ecba7d241ddd0c78ef +msgid "" +"*(new in v1.16.10)* date of last modification. If given, should be in PDF" +" datetime format." +msgstr "" + +#: ../../annot.rst:171 e43517d418724f92aa471da27a597d2b +msgid "" +"Sets an annotation's line ending styles. Each of these annotation types " +"is defined by a list of points which are connected by lines. The symbol " +"identified by *start* is attached to the first point, and *end* to the " +"last point of this list. For unsupported annotation types, a no-operation" +" with a warning message results." +msgstr "" + +#: ../../annot.rst:175 c6f37bfe8f864b7aa70a6677d903fbdc +msgid "" +"Some symbols have an interior area (diamonds, circles, squares, etc.). " +"These areas are filled with the fill color or the stroke color, depending" +" on the annotation type." +msgstr "" + +#: ../../annot.rst:177 35d6ef1a79c74b06ab0a9dcf482f9a65 +msgid "The symbol number for the first point." +msgstr "" + +#: ../../annot.rst:178 458ad87b80944b07b309331fa16a70a2 +msgid "The symbol number for the last point." +msgstr "" + +#: ../../annot.rst:182 4fed90be4a2f4f6eb36e2d7f41f31319 +msgid "" +"Set the annotation's visibility using PDF optional content mechanisms. " +"This visibility is controlled by the user interface of supporting PDF " +"viewers. It is independent from other attributes like " +":attr:`Annot.flags`." +msgstr "" + +#: ../../annot.rst:184 613a0a96a3a548efb40200791489f4fd +msgid "" +"the :data:`xref` of an optional contents group (OCG or OCMD). Any " +"previous xref will be overwritten. If zero, a previous entry will be " +"removed. An exception occurs if the xref is not zero and does not point " +"to a valid PDF object." +msgstr "" + +#: ../../annot.rst:186 55d26af3928947678aaeaa3e33027dcc +msgid "This does **not require executing** :meth:`Annot.update` to take effect." +msgstr "" + +#: ../../annot.rst:190 7e388a9f2b75447d8394d6d36c4a1bf8 +msgid "" +"Return the :data:`xref` of an optional content object, or zero if there " +"is none." +msgstr "" + +#: ../../annot.rst:192 e8ec795f695645628c3efbfd3915cec6 +msgid "zero or the xref of an OCG (or OCMD)." +msgstr "" + +#: ../../annot.rst:197 b2f92c06a6294be3bfd5ec01d0e09768 +msgid "New in v1.19.3" +msgstr "" + +#: ../../annot.rst:199 ad11cb50eb7b4800aec2e137d3accb71 +msgid "Set annotation to be \"In Response To\" another one." +msgstr "" + +#: ../../annot.rst:201 7b8bf875b3bc4826aa14c687fb8cd5d0 +msgid "" +"The :data:`xref` of another annotation. .. note:: Must refer to an " +"existing annotation on this page. Setting this property requires no " +"subsequent `update()`." +msgstr "" + +#: ../../annot.rst:201 9e9d820407064710884e6a66aa7f7f55 +msgid "The :data:`xref` of another annotation." +msgstr "" + +#: ../../annot.rst:203 14f320a016824d5198f1d52227d0a926 +msgid "" +"Must refer to an existing annotation on this page. Setting this property " +"requires no subsequent `update()`." +msgstr "" + +#: ../../annot.rst:208 ../../annot.rst:217 ../../annot.rst:237 +#: 481fa7ca48f54e5598a63178e50438ab a466079f958942378ec240211f031c16 +#: f9ec8616d1df4181aa40e2958d601327 +msgid "New in v1.18.4" +msgstr "" + +#: ../../annot.rst:210 67cc9664fad84f49a83ba297112ca110 +msgid "" +"Set the annotation's Popup annotation to open or closed -- **or** the " +"annotation itself, if its type is 'Text' (\"sticky note\")." +msgstr "" + +#: ../../annot.rst:212 1504f1da1fda45fea8f19f45ffc20d4f +msgid "the desired open state." +msgstr "" + +#: ../../annot.rst:219 c089225b48284823a9b7556a44262d27 +msgid "" +"Create a Popup annotation for the annotation and specify its rectangle. " +"If the Popup already exists, only its rectangle is updated." +msgstr "" + +#: ../../annot.rst:221 c34e5022b5454828b58718e9dcbc45fe +msgid "the desired rectangle." +msgstr "" + +#: ../../annot.rst:227 facb954df51640a7ae7fd3710883dc98 +msgid "" +"Set the annotation's transparency. Opacity can also be set in " +":meth:`Annot.update`." +msgstr "" + +#: ../../annot.rst:229 d7989596080e46c987557189dc9c25ff +msgid "" +"a float in range *[0, 1]*. Any value outside is assumed to be 1. E.g. a " +"value of 0.5 sets the transparency to 50%." +msgstr "" + +#: ../../annot.rst:231 8cd9cbde74a9498aa0f39f1aceeb59c0 +msgid "Three overlapping 'Circle' annotations with each opacity set to 0.5:" +msgstr "" + +#: ../../annot.rst:239 78ea45fdfd8c457285f97ad98ced56cb +msgid "" +"The annotation's blend mode. See :ref:`AdobeManual`, page 324 for " +"explanations." +msgstr "" + +#: ../../annot.rst:242 30d06915799b4a4d993a5b5fca1059fe +msgid "the blend mode or ``None``." +msgstr "" + +#: ../../annot.rst:247 9dce9ac76ca040e1a31d5585a57839f6 +msgid "New in v1.16.14" +msgstr "" + +#: ../../annot.rst:249 dc743497d0c04f36b92127b326b52323 +msgid "" +"Set the annotation's blend mode. See :ref:`AdobeManual`, page 324 for " +"explanations. The blend mode can also be set in :meth:`Annot.update`." +msgstr "" + +#: ../../annot.rst:251 4cc8588ee3a54e0ea07306202519e692 +msgid "" +"set the blend mode. Use :meth:`Annot.update` to reflect this in the " +"visual appearance. For predefined values see :ref:`BlendModes`. Use " +"`PDF_BM_Normal` to **remove** a blend mode." +msgstr "" + +#: ../../annot.rst:256 f91715c6f8dd45839dff56adcd90fe40 +msgid "New in version 1.16.0" +msgstr "" + +#: ../../annot.rst:258 63628e30584640f485f9216a26cc976e +msgid "" +"Change the name field of any annotation type. For 'FileAttachment' and " +"'Text' annotations, this is the icon name, for 'Stamp' annotations the " +"text in the stamp. The visual result (if any) depends on your PDF viewer." +" See also :ref:`mupdficons`." +msgstr "" + +#: ../../annot.rst:260 c9956808cf6344fe93a68e352c078f3b +msgid "the new name." +msgstr "" + +#: ../../annot.rst:262 77d72775e0d649e0aee5cd748dcf35c5 +msgid "" +"If you set the name of a 'Stamp' annotation, then this will **not " +"change** the rectangle, nor will the text be layouted in any way. If you " +"choose a standard text from :ref:`StampIcons` (the **exact** name piece " +"after `\"STAMP_\"`), you should receive the original layout. An " +"**arbitrary text** will not be changed to upper case, but be written in " +"font \"Times-Bold\" as is, horizontally centered in **one line** and be " +"shortened to fit. To get your text fully displayed, its length using " +":data:`fontsize` 20 must not exceed 190 points. So please make sure that " +"the following inequality is true: `pymupdf.get_text_length(text, " +"fontname=\"tibo\", fontsize=20) <= 190`." +msgstr "" + +#: ../../annot.rst:266 215783824e424078a9c68252ef072b76 +msgid "" +"Change the rectangle of an annotation. The annotation can be moved around" +" and both sides of the rectangle can be independently scaled. However, " +"the annotation appearance will never get rotated, flipped or sheared. " +"This method only affects certain annotation types [#f2]_ and will lead to" +" a message on Python's `sys.stderr` in other cases. No exception will be " +"raised, but `False` will be returned." +msgstr "" + +#: ../../annot.rst:268 a55821d5ebaa43a79524ea735d7fce30 +msgid "" +"the new rectangle of the annotation (finite and not empty). E.g. using a " +"value of *annot.rect + (5, 5, 5, 5)* will shift the annot position 5 " +"pixels to the right and downwards." +msgstr "" + +#: ../../annot.rst:270 58ba9ae624c649f59c822a951c81b8d9 +msgid "You **need not** invoke :meth:`Annot.update` for activation of the effect." +msgstr "" + +#: ../../annot.rst:275 4182447a9b644af7b8fdaadfb8a05d32 +msgid "" +"Set the rotation of an annotation. This rotates the annotation rectangle " +"around its center point. Then a **new annotation rectangle** is " +"calculated from the resulting quad." +msgstr "" + +#: ../../annot.rst:277 6fc24fed55494f8fb4a955d4d8a13eba +msgid "" +"rotation angle in degrees. Arbitrary values are possible, but will be " +"clamped to the interval `[0, 360)`." +msgstr "" + +#: ../../annot.rst:280 e4f887994fc5422f95d07305f9ce1cd5 +msgid "You **must invoke** :meth:`Annot.update` to activate the effect." +msgstr "" + +#: ../../annot.rst:281 708375ceb35c401f93a653d662ffa946 +msgid "" +"For PDF_ANNOT_FREE_TEXT, only one of the values 0, 90, 180 and 270 is " +"possible and will **rotate the text** inside the current rectangle (which" +" remains unchanged). Other values are silently ignored and replaced by 0." +msgstr "" + +#: ../../annot.rst:282 9916c3c0474d42789055dd9fb27df6d5 +msgid "" +"Otherwise, only the following :ref:`AnnotationTypes` can be rotated: " +"'Square', 'Circle', 'Caret', 'Text', 'FileAttachment', 'Ink', 'Line', " +"'Polyline', 'Polygon', and 'Stamp'. For all others the method is a no-op." +msgstr "" + +#: ../../annot.rst:287 21f87eefce9f42cd84347e0b9f4c9750 +msgid "" +"Changed in version 1.16.9: Allow specification without using a " +"dictionary. The direct parameters are used if *border* is not a " +"dictionary." +msgstr "" + +#: ../../annot.rst:289 a5d1d0e5012145d88adb8f0b58ec843d +msgid "Changed in version 1.22.5: Support of the \"cloudy\" border effect." +msgstr "" + +#: ../../annot.rst:291 c189c32c136c4970affbad53b8a4962c +msgid "" +"PDF only: Change border width, dashing, style and cloud effect. See the " +":attr:`Annot.border` attribute for more details." +msgstr "" + +#: ../../annot.rst:294 cd430c709f2743de8acc763ed90aa387 +msgid "" +"a dictionary as returned by the :attr:`border` property, with keys " +"*\"width\"* (*float*), *\"style\"* (*str*), *\"dashes\"* (*sequence*) " +"and *clouds* (*int*). Omitted keys will leave the resp. property " +"unchanged. Set the border argument to `None` (the default) to use the " +"other arguments." +msgstr "" + +#: ../../annot.rst:296 39acc9934225448197fcfd592c9d832f +msgid "A non-negative value will change the border line width." +msgstr "" + +#: ../../annot.rst:297 a68a775771684101adfaada1b555645a +msgid "A value other than `None` will change this border property." +msgstr "" + +#: ../../annot.rst:298 6abbfe1e60884753b2f408c6140c1522 +msgid "" +"All items of the sequence must be integers, otherwise the parameter is " +"ignored. To remove dashing use: `dashes=[]`. If dashes is a non-empty " +"sequence, \"style\" will automatically be set to \"D\" (dashed)." +msgstr "" + +#: ../../annot.rst:299 a14bf775a9aa4b5690dfa5d75ad9a268 +msgid "" +"A value >= 0 will change this property. Use `clouds=0` to remove the " +"cloudy appearance completely. Only annotation types 'Square', 'Circle', " +"and 'Polygon' are supported with this property." +msgstr "" + +#: ../../annot.rst:303 ef79e54d0a714869a014c9d730425b72 +msgid "Changes the annotation flags. Use the `|` operator to combine several." +msgstr "" + +#: ../../annot.rst:305 fd0aa1fe5fa54354942159d69033f3dd +msgid "an integer specifying the required flags." +msgstr "" + +#: ../../annot.rst:309 6c045aa7fffe4727b0d500917f834af7 +msgid "" +"Changes the \"stroke\" and \"fill\" colors for supported annotation types" +" -- not all annotation types accept both. **Do not use this method at all" +" for FreeText annotations** because it has its special conventions to " +"deal with up to three colors (border, fill, text)." +msgstr "" + +#: ../../annot.rst:311 db7de1cdaf074887b6a5856f6edce371 +msgid "" +"a dictionary containing color specifications. For accepted dictionary " +"keys and values see below. The most practical way should be to first make" +" a copy of the *colors* property and then modify this dictionary as " +"required." +msgstr "" + +#: ../../annot.rst:312 ../../annot.rst:313 75cff1ffb24c4912bfeb81a9ebd1432d +#: ab1efc57d7bc48e98cf5e1bdb658a212 +msgid "see above." +msgstr "" + +#: ../../annot.rst:315 7c1a94d49e3646c1acf119c6dbd9d5d2 +msgid "" +"To completely remove a color specification, use an empty sequence like " +"`[]`. If you specify `None`, an existing specification will not be " +"changed." +msgstr "" + +#: ../../annot.rst:320 2a6d90dee7ce4d77b26b92943743267a +msgid "New in version 1.16.12" +msgstr "" + +#: ../../annot.rst:322 595743ee33354f6db6ea8007f5c683d9 +msgid "" +"Delete annotations referring to this one. This includes any 'Popup' " +"annotations and all annotations responding to it." +msgstr "" + +#: ../../annot.rst:336 3dd084b1ebf84cde9a0f1628888a078a +msgid "" +"Synchronize the appearance of an annotation with its properties after " +"relevant changes." +msgstr "" + +#: ../../annot.rst:338 7fe415cd7d454f189581594f76164856 +msgid "You can safely **omit** this method **only** for the following changes:" +msgstr "" + +#: ../../annot.rst:344 fe15053758b14d7199c023e93f5fb1b5 +msgid ":meth:`Annot.set_info` (except any changes to *\"content\"*)" +msgstr "" + +#: ../../annot.rst:346 0073d1e84f5d4733b0ed896ad1863ecc +msgid "" +"All arguments are optional. *(Changed in v1.16.14)* Blend mode and " +"opacity are applicable to **all annotation types**. The other arguments " +"are mostly special use, as described below." +msgstr "" + +#: ../../annot.rst:348 f2ba4ab0eec14256874f4795f0809515 +msgid "" +"Color specifications may be made in the usual format used in PuMuPDF as " +"sequences of floats ranging from 0.0 to 1.0 (including both). The " +"sequence length must be 1, 3 or 4 (supporting GRAY, RGB and CMYK " +"colorspaces respectively). For GRAY, just a float is also acceptable." +msgstr "" + +#: ../../annot.rst:350 f3ccad414cfa4feea70d7d6d4ee37f20 +msgid "" +"*(new in v1.16.14)* **valid for all annotation types:** change or set the" +" annotation's transparency. Valid values are *0 <= opacity < 1*." +msgstr "" + +#: ../../annot.rst:352 04465250dcde4c4c860e257ac3e888cc +msgid "" +"*(new in v1.16.14)* **valid for all annotation types:** change or set the" +" annotation's blend mode. For valid values see :ref:`BlendModes`." +msgstr "" + +#: ../../annot.rst:354 9bc27aa105ae42cd82a2451d40ee6e6e +msgid "change :data:`fontsize` of the text. 'FreeText' annotations only." +msgstr "" + +#: ../../annot.rst:356 cf2b46ce81194d3889beefcdf7c9b7bc +msgid "" +"change the text color. 'FreeText' annotations only. This has the same " +"effect as ``border_color``. Note that the text color of rich-text " +"annotations cannot be changed at all because it is set by HTML / CSS " +"syntax and part of the text itself." +msgstr "" + +#: ../../annot.rst:358 9573860e39914131a2e6b21985df1d0a +msgid "" +"change the border color. 'FreeText' annotations only. This has the same " +"effect as ``text_color``." +msgstr "" + +#: ../../annot.rst:360 f201d820422e410380867aef925e12c6 +msgid "the fill color." +msgstr "" + +#: ../../annot.rst:362 51b7ae492b9d439ea63ad6e688461680 +msgid "" +"*(new in v1.17.2)* add two diagonal lines to the annotation rectangle. " +"'Redact' annotations only. If not desired, ``False`` must be specified " +"even if the annotation was created with ``False``." +msgstr "" + +#: ../../annot.rst:364 ca681b7d888b4269b353a917a0251fcc +msgid "" +"new rotation value. Default (-1) means no change. Supports 'FreeText' and" +" several other annotation types (see :meth:`Annot.set_rotation`), [#f1]_." +" Only choose 0, 90, 180, or 270 degrees for 'FreeText'. Otherwise any " +"integer is acceptable." +msgstr "" + +#: ../../annot.rst:368 60ab5d4e01554e09aa2155cfcf1bd6a4 +msgid "" +"This method is the only way to change the colors of a FreeText " +"annotation. You cannot use :meth:`Annot.set_colors` for this purpose. But" +" be aware that for rich-text annotations, the text color is never " +"changed. The text color is set by the ``text_color`` entry of the " +"``info`` dictionary. This is a limitation of |MuPDF| and not a bug." +msgstr "" + +#: ../../annot.rst:370 1112033b5d6844729cb062a449ec85b1 +msgid "" +"Using this method inside a :meth:`Page.annots` loop is **not " +"recommended!** This is because most annotation updates require the owning" +" page to be reloaded -- which cannot be done inside this loop. Please use" +" the example coding pattern given in the documentation of this generator." +msgstr "" + +#: ../../annot.rst:375 4a926753fff744ec9116dd6ed7183650 +msgid "Basic information of the annot's attached file." +msgstr "" + +#: ../../annot.rst:378 dff1e3b1a640429fb53eddd0fa92ce69 +msgid "" +"a dictionary with keys *filename*, *ufilename*, *desc* (description), " +"*size* (uncompressed file size), *length* (compressed length) for " +"FileAttachment annot types, else ``None``." +msgstr "" + +#: ../../annot.rst:382 fff1e94235db41658c4a47630907af7b +msgid "Returns attached file content." +msgstr "" + +#: ../../annot.rst:385 e7858d0b8f274619a0e53226e2ad2558 +msgid "the content of the attached file." +msgstr "" + +#: ../../annot.rst:395 0a6f0f824993411db432fbc73cedbf48 +msgid "" +"Updates the content of an attached file. All arguments are optional. No " +"arguments lead to a no-op." +msgstr "" + +#: ../../annot.rst:397 14cfd5ce68c443c4b5706490bf7ce62c +msgid "" +"the new file content. Omit to only change meta-information. *(Changed in" +" version 1.14.13)* *io.BytesIO* is now also supported." +msgstr "" + +#: ../../annot.rst:397 13e705e69a1d425184d4be574725693d +msgid "the new file content. Omit to only change meta-information." +msgstr "" + +#: ../../annot.rst:399 a1e92b5db60e4c4599063b1893fd8eed +msgid "*(Changed in version 1.14.13)* *io.BytesIO* is now also supported." +msgstr "" + +#: ../../annot.rst:401 16d4a6c7354947dc9ed4a1af1e661951 +msgid "new filename to associate with the file." +msgstr "" + +#: ../../annot.rst:403 f71c9be54bb649adbc2100b1cf7793e5 +msgid "new unicode filename to associate with the file." +msgstr "" + +#: ../../annot.rst:405 70d2cec5d76d4b4ca6ac53eb58acf503 +msgid "new description of the file content." +msgstr "" + +#: ../../annot.rst:409 dfdaec12a2274c30a1f374a77b655ee8 +msgid "Return the embedded sound of an audio annotation." +msgstr "" + +#: ../../annot.rst:412 c7fa04ae49d54d39a39b5d2245c490f0 +msgid "" +"the sound audio file and accompanying properties. These are the possible " +"dictionary keys, of which only \"rate\" and \"stream\" are always " +"present. =========== " +"======================================================= Key " +"Description =========== " +"======================================================= rate " +"(float, requ.) samples per second channels (int, opt.) number of sound" +" channels bps (int, opt.) bits per sample value per channel " +"encoding (str, opt.) encoding format: Raw, Signed, muLaw, ALaw " +"compression (str, opt.) name of compression filter stream (bytes, " +"requ.) the sound file content =========== " +"=======================================================" +msgstr "" + +#: ../../annot.rst:412 df0e243fcf034592a8492436e6e1659a +msgid "" +"the sound audio file and accompanying properties. These are the possible " +"dictionary keys, of which only \"rate\" and \"stream\" are always " +"present." +msgstr "" + +#: ../../annot.rst:415 12be1c52c4314285af838a6ce29fba9e +msgid "Key" +msgstr "" + +#: ../../annot.rst:415 2bdf4ba35cce4815a2a492cf817897c8 +msgid "Description" +msgstr "" + +#: ../../annot.rst:417 0d66d09f790c4ff3bc6c27ba0d9b632a +msgid "rate" +msgstr "" + +#: ../../annot.rst:417 c1045c0883214be39172475f75e7f5d0 +msgid "(float, requ.) samples per second" +msgstr "" + +#: ../../annot.rst:418 8abdaaa9d7fe44dfa74cc67416d30c2b +msgid "channels" +msgstr "" + +#: ../../annot.rst:418 f74b4b35e92846e28327d70e75e25b02 +msgid "(int, opt.) number of sound channels" +msgstr "" + +#: ../../annot.rst:419 942b2b733eed481b9491bc82bc570e1c +msgid "bps" +msgstr "" + +#: ../../annot.rst:419 7be514225767447a8a8095e8df1f2bc4 +msgid "(int, opt.) bits per sample value per channel" +msgstr "" + +#: ../../annot.rst:420 b38f02b791694df2ae7e91f5e18e4b63 +msgid "encoding" +msgstr "" + +#: ../../annot.rst:420 73e6b25cf0da41518e6a2a8c8342f9b9 +msgid "(str, opt.) encoding format: Raw, Signed, muLaw, ALaw" +msgstr "" + +#: ../../annot.rst:421 1969b7bd898244968ec9e8b0ccb1bde7 +msgid "compression" +msgstr "" + +#: ../../annot.rst:421 a89ee4a1e5ae438bb9abdf27689f1840 +msgid "(str, opt.) name of compression filter" +msgstr "" + +#: ../../annot.rst:422 8ae646c528504b2c930d6aeefa18e74b +msgid "stream" +msgstr "" + +#: ../../annot.rst:422 379f471934fe4d5fab7732b175a2bce2 +msgid "(bytes, requ.) the sound file content" +msgstr "" + +#: ../../annot.rst:428 04846fc70fde4de09324de235eedf132 +msgid "" +"The annotation's transparency. If set, it is a value in range *[0, 1]*. " +"The PDF default is 1. However, in an effort to tell the difference, we " +"return *-1.0* if not set." +msgstr "" + +#: ../../annot.rst:434 38341cb4267e49eea899f48c336adc57 +msgid "The owning page object of the annotation." +msgstr "" + +#: ../../annot.rst:436 b69e2ef1768c4682aeceb59e231073e6 +msgid ":ref:`Page`" +msgstr "" + +#: ../../annot.rst:440 d8c838f369404f76b51db3fa29590aaf +msgid "The annot rotation." +msgstr "" + +#: ../../annot.rst:443 0e4000b23bd0487692990ba93841e11b +msgid "" +"a value [-1, 359]. If rotation is not at all, -1 is returned (and implies" +" a rotation angle of 0). Other possible values are normalized to some " +"value value 0 <= angle < 360." +msgstr "" + +#: ../../annot.rst:447 675380b4c5e64bf7bff950dcc720a751 +msgid "The rectangle containing the annotation." +msgstr "" + +#: ../../annot.rst:449 ../../annot.rst:549 aebdf20a1fda46b7abc7b4c3e0493882 +#: ec14799005724be998a1275792677a12 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../annot.rst:453 c70b9c19d6d84a359b2b1a7396054162 +msgid "The next annotation on this page or None." +msgstr "" + +#: ../../annot.rst:455 e2f9dcc59c714b54a43f67ec7b62cff8 +msgid "*Annot*" +msgstr "" + +#: ../../annot.rst:459 606bb69f415d48c0a7aad4dac9c69fc3 +msgid "" +"A number and one or two strings describing the annotation type, like " +"**[2, 'FreeText', 'FreeTextCallout']**. The second string entry is " +"optional and may be empty. See the appendix :ref:`AnnotationTypes` for a " +"list of possible values and their meanings." +msgstr "" + +#: ../../annot.rst:465 814b528ad1594607875ed97510496fe2 +msgid "" +"A dictionary containing various information. All fields are optional " +"strings. For information items not provided, an empty string is returned." +msgstr "" + +#: ../../annot.rst:467 132313a5fcff4d5b98ca42e3a4bf5fda +msgid "" +"*name* -- e.g. for 'Stamp' annotations it will contain the stamp text " +"like \"Sold\" or \"Experimental\", for other annot types you will see the" +" name of the annot's icon here (\"PushPin\" for FileAttachment)." +msgstr "" + +#: ../../annot.rst:469 bc6c85b50da94924bc357226258bd3fc +msgid "" +"*content* -- a string containing the text for type *Text* and *FreeText* " +"annotations. Commonly used for filling the text field of annotation pop-" +"up windows." +msgstr "" + +#: ../../annot.rst:471 d7645d31cbb64e3cb699a731902ecb75 +msgid "" +"*title* -- a string containing the title of the annotation pop-up window." +" By convention, this is used for the **annotation author**." +msgstr "" + +#: ../../annot.rst:473 ba6e837b12eb4a59b39297c6410293cb +msgid "*creationDate* -- creation timestamp." +msgstr "" + +#: ../../annot.rst:474 dea7337d10874b83bd25f6be18463264 +msgid "*modDate* -- last modified timestamp." +msgstr "" + +#: ../../annot.rst:475 affe5f09ffd3424b9ff3466bd9fa10e4 +msgid "*subject* -- subject." +msgstr "" + +#: ../../annot.rst:476 2839aeb340104f42b830df272fca2fb6 +msgid "" +"*id* -- *(new in version 1.16.10)* a unique identification of the " +"annotation. This is taken from PDF key */NM*. Annotations added by " +"PyMuPDF will have a unique name, which appears here." +msgstr "" + +#: ../../annot.rst:483 16616c415f6e46b7a3677cfdd3112ce3 +msgid "" +"An integer whose low order bits contain flags for how the annotation " +"should be presented." +msgstr "" + +#: ../../annot.rst:489 8339de6110f3442eae85a3e339d2b60f +msgid "" +"A pair of integers specifying start and end symbol of annotations types " +"'FreeText', 'Line', 'PolyLine', and 'Polygon'. ``None`` if not " +"applicable. For possible values and descriptions in this list, see the " +":ref:`AdobeManual`, table 1.76 on page 400." +msgstr "" + +#: ../../annot.rst:495 8bf05b20e751463eae59e5c917d94466 +msgid "" +"A list containing a variable number of point (\"vertices\") coordinates " +"(each given by a pair of floats) for various types of annotations:" +msgstr "" + +#: ../../annot.rst:497 8912d31ff3344e5e8152219991bcb863 +msgid "'Line' -- the starting and ending coordinates (2 float pairs)." +msgstr "" + +#: ../../annot.rst:498 a5b0fa3b850f4856bd236c668f63f1eb +msgid "" +"'FreeText' -- 2 or 3 float pairs designating the starting, the (optional)" +" knee point, and the ending coordinates." +msgstr "" + +#: ../../annot.rst:499 b0ee60812ba343fea5fc2d15019955f2 +msgid "" +"'PolyLine' / 'Polygon' -- the coordinates of the edges connected by line " +"pieces (n float pairs for n points)." +msgstr "" + +#: ../../annot.rst:500 8fbc31fb944e4da2868503b7613244d0 +msgid "" +"text markup annotations -- 4 float pairs specifying the *QuadPoints* of " +"the marked text span (see :ref:`AdobeManual`, page 403)." +msgstr "" + +#: ../../annot.rst:501 09ceddfd7c4642e187b77e4fe278f331 +msgid "" +"'Ink' -- list of one to many sublists of vertex coordinates. Each such " +"sublist represents a separate line in the drawing." +msgstr "" + +#: ../../annot.rst:508 e363318aa7cb46ff97b34487bc567275 +msgid "" +"dictionary of two lists of floats in range *0 <= float <= 1* specifying " +"the \"stroke\" and the interior (\"fill\") colors. The stroke color is " +"used for borders and everything that is actively painted or written " +"(\"stroked\"). The fill color is used for the interior of objects like " +"line ends, circles and squares. The lengths of these lists implicitly " +"determine the colorspaces used: 1 = GRAY, 3 = RGB, 4 = CMYK. So \"[1.0, " +"0.0, 0.0]\" stands for RGB color red. Both lists can be empty if no color" +" is specified. Be aware about some potentially unexpected cases:" +msgstr "" + +#: ../../annot.rst:510 c98f3742209a4834b74c3d4385888358 +msgid "" +"The color of Highlight annotations is a **stroke** color, contrary to " +"intuition." +msgstr "" + +#: ../../annot.rst:511 2d1b77af92f94df2901498dee3ecf512 +msgid "" +"The color if FreeText annotations is a **stroke** color, but appears as " +"the color that fills the rectangle and any applicable line end symbols. " +"Text color and border color cannot be accessed at all." +msgstr "" + +#: ../../annot.rst:517 5673a83fdd3046e1a25a02e890bf9503 +msgid "The PDF :data:`xref`." +msgstr "" + +#: ../../annot.rst:523 80d30458b0ae4d81a75fccb23e4560df +msgid "" +"The PDF :data:`xref` of an annotation to which this one responds. Return " +"zero if this is no response annotation." +msgstr "" + +#: ../../annot.rst:529 adc968b773a6471aba76a7111c2340a5 +msgid "" +"The PDF :data:`xref` of the associated Popup annotation. Zero if non-" +"existent." +msgstr "" + +#: ../../annot.rst:535 87e7894e6b484ea3b6e9b676e28d88b3 +msgid "Whether the annotation has a Popup annotation." +msgstr "" + +#: ../../annot.rst:541 a5edaf80b163482b844afac753dce499 +msgid "" +"Whether the annotation's Popup is open -- **or** the annotation itself " +"('Text' annotations only)." +msgstr "" + +#: ../../annot.rst:547 600f5a64e8a4400da0c1ae35c135efd1 +msgid "" +"The rectangle of the associated Popup annotation. Infinite rectangle if " +"non-existent." +msgstr "" + +#: ../../annot.rst:553 9fd4e2374ea64a4f895272c2450db57b +msgid "" +"A tuple of four floats representing the `/RD` entry of the annotation. " +"The four numbers describe the numerical differences (left, top, -right, " +"-bottom) between two rectangles: the :attr:`rect` of the annotation and a" +" rectangle contained within that rectangle. If the entry is missing, this" +" property is `(0, 0, 0, 0)`. If the annotation border is a normal, " +"straight line, these numbers are typically border width divided by 2. If " +"the annotation has a \"cloudy\" border, you will see the breadth of the " +"cloud semi-circles here. In general, the numbers need not be identical. " +"To compute the inner rectangle do `a.rect + a.rect_delta`." +msgstr "" + +#: ../../annot.rst:557 76373f31dcbe446392d079eb34532b34 +msgid "" +"A dictionary containing border characteristics. Empty if no border " +"information exists. The following keys may be present:" +msgstr "" + +#: ../../annot.rst:559 2a2fab2fdf524b6184a1f5b62304135a +msgid "" +"*width* -- a float indicating the border thickness in points. The value " +"is -1.0 if no width is specified." +msgstr "" + +#: ../../annot.rst:561 ee7176832c7e4740b78bb806706a9d04 +msgid "" +"*dashes* -- a sequence of integers specifying a line dashing pattern. " +"*[]* means no dashes, *[n]* means equal on-off lengths of *n* points, " +"longer lists will be interpreted as specifying alternating on-off length " +"values. See the :ref:`AdobeManual` page 126 for more details." +msgstr "" + +#: ../../annot.rst:563 994ba35808ba4456b6568752b410a28e +msgid "" +"*style* -- 1-byte border style: **\"S\"** (Solid) = solid line " +"surrounding the annotation, **\"D\"** (Dashed) = dashed line surrounding " +"the annotation, the dash pattern is specified by the *dashes* entry, " +"**\"B\"** (Beveled) = a simulated embossed rectangle that appears to be " +"raised above the surface of the page, **\"I\"** (Inset) = a simulated " +"engraved rectangle that appears to be recessed below the surface of the " +"page, **\"U\"** (Underline) = a single line along the bottom of the " +"annotation rectangle." +msgstr "" + +#: ../../annot.rst:565 7700bc48fde44a268bcd7c4a8afa5304 +msgid "" +"*clouds* -- an integer indicating a \"cloudy\" border, where ``n`` is an " +"integer `-1 <= n <= 2`. A value `n = 0` indicates a straight line (no " +"clouds), 1 means small and 2 means large semi-circles, mimicking the " +"cloudy appearance. If -1, then no specification is present." +msgstr "" + +#: ../../annot.rst:573 332ac742d76d48529ceb6b4e40f7295a +msgid "Annotation Icons in MuPDF" +msgstr "" + +#: ../../annot.rst:574 21859a0e63974afa950419ab98ff55e6 +msgid "" +"This is a list of icons referenceable by name for annotation types 'Text'" +" and 'FileAttachment'. You can use them via the *icon* parameter when " +"adding an annotation, or use the as argument in :meth:`Annot.set_name`. " +"It is left to your discretion which item to choose when -- no mechanism " +"will keep you from using e.g. the \"Speaker\" icon for a " +"'FileAttachment'." +msgstr "" + +#: ../../annot.rst:580 cb12c1793cdb4341b24fbf6538c60d1c +msgid "Example" +msgstr "" + +#: ../../annot.rst:581 a2296e47889a4fec983f5aa41e485291 +msgid "" +"Change the graphical image of an annotation. Also update the \"author\" " +"and the text to be shown in the popup window::" +msgstr "" + +#: ../../annot.rst:604 7bff751c7d604fe38047b43fdeb95933 +msgid "" +"This is how the circle annotation looks like before and after the change " +"(pop-up windows displayed using Nitro PDF viewer):" +msgstr "" + +#: ../../annot.rst:606 479b5bc5389b486e92aaf64c6226c673 +msgid "|circle|" +msgstr "" + +#: ../../annot.rst:608 031e9835b5ea4674bd3bcd678ae780a5 +#: 8bea81da58c844a9abeb9a5253d1a9b6 +msgid "circle" +msgstr "" + +#: ../../annot.rst:612 a8717fc2c8cd4706b95166aae42c2f9b +msgid "Footnotes" +msgstr "" + +#: ../../annot.rst:613 6d03771b774345a5b005846ee4002288 +msgid "" +"Rotating an annotation also changes its rectangle. Depending on how the " +"annotation was defined, the original rectangle is **cannot be " +"reconstructed** by setting the rotation value to zero again and will be " +"lost." +msgstr "" + +#: ../../annot.rst:615 c6c9d602fa054b6fac8c6ec2c52ad078 +msgid "" +"Only the following annotation types support method " +":meth:`Annot.set_rect`: Text, FreeText, Square, Circle, Redact, Stamp, " +"Caret, FileAttachment, Sound, and Movie." +msgstr "" + +#: ../../footer.rst:46 bc670bbcee16481398498b6cc9d3f828 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/app1.mo b/docs/locales/ko/LC_MESSAGES/app1.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/app1.po b/docs/locales/ko/LC_MESSAGES/app1.po new file mode 100644 index 000000000..57b4d5161 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/app1.po @@ -0,0 +1,646 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 b63e36b67e8a44e789752decae758e83 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 e0da5e0d85184ed69a42ef8e32e4ed85 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 e06822680b004870af6da375e9614933 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../app1.rst:7 4aa59227e1bc4902938be155b3c846ab +msgid "Appendix 1: Details on Text Extraction" +msgstr "" + +#: ../../app1.rst:8 c4a15e5247104a09bb9b36ac199c0a28 +msgid "" +"This chapter provides background on the text extraction methods of " +"PyMuPDF." +msgstr "" + +#: ../../app1.rst:10 2e9bc8cf9b71428b8520ed5b6afad430 +msgid "Information of interest are" +msgstr "" + +#: ../../app1.rst:12 0deb2f883f5f4387bde429329f1bae7b +msgid "what do they provide?" +msgstr "" + +#: ../../app1.rst:13 45c9c32702024484bdb3305c7e87faf7 +msgid "what do they imply (processing time / data sizes)?" +msgstr "" + +#: ../../app1.rst:16 fde4b48bf0784a33849cd72c5d22218c +msgid "General structure of a TextPage" +msgstr "" + +#: ../../app1.rst:17 7fc02c7d51cd42079849d6836d102acc +msgid "" +":ref:`TextPage` is one of (Py-) MuPDF's classes. It is normally created " +"(and destroyed again) behind the curtain, when :ref:`Page` text " +"extraction methods are used, but it is also available directly and can be" +" used as a persistent object. Other than its name suggests, images may " +"optionally also be part of a text page::" +msgstr "" + +#: ../../app1.rst:27 66fcac07e660407fa94a50c99aacdd57 +msgid "A **text page** consists of blocks (= roughly paragraphs)." +msgstr "" + +#: ../../app1.rst:29 0be706ea23474e148d6ac4453252bd47 +msgid "A **block** consists of either lines and their characters, or an image." +msgstr "" + +#: ../../app1.rst:31 c0a517869bb34a7d97003a5aef98fd51 +msgid "A **line** consists of spans." +msgstr "" + +#: ../../app1.rst:33 517dd3b2b07645b8b02c39add65933dd +msgid "" +"A **span** consists of adjacent characters with identical font " +"properties: name, size, flags and color." +msgstr "" + +#: ../../app1.rst:36 275e9dfe8a8c43eaac52d976da135915 +msgid "Plain Text" +msgstr "" + +#: ../../app1.rst:38 9d36b5923a304f7a9edbb308a34e087e +msgid "" +"Function :meth:`TextPage.extractText` (or *Page.get_text(\"text\")*) " +"extracts a page's plain **text in original order** as specified by the " +"creator of the document." +msgstr "" + +#: ../../app1.rst:40 a844cfb991fb44ba922960d023c28deb +msgid "An example output::" +msgstr "" + +#: ../../app1.rst:45 83c6c339e3924476b41ff9b80c5e50d9 +msgid "" +"The output may not equal an accustomed \"natural\" reading order. " +"However, you can request a reordering following the scheme \"top-left to " +"bottom-right\" by executing `page.get_text(\"text\", sort=True)`." +msgstr "" + +#: ../../app1.rst:49 ../../app1.rst:337 19e4af19f3d74a33909a5898279c5eab +#: 4eb48dd8cc9e4ac88b8890d5ed10f9a7 +msgid "BLOCKS" +msgstr "" + +#: ../../app1.rst:51 686c7ad1dcf54c52be5a45853aad1f78 +msgid "" +"Function :meth:`TextPage.extractBLOCKS` (or *Page.get_text(\"blocks\")*) " +"extracts a page's text blocks as a list of items like::" +msgstr "" + +#: ../../app1.rst:55 c216dd1a83d846b19dfbfc40fbbb3a86 +msgid "" +"Where the first 4 items are the float coordinates of the block's bbox. " +"The lines within each block are concatenated by a new-line character." +msgstr "" + +#: ../../app1.rst:57 ac5e7636040b407abf4b4c74f54734e6 +msgid "" +"This is a high-speed method, which by default also extracts image meta " +"information: Each image appears as a block with one text line, which " +"contains meta information. The image itself is not shown." +msgstr "" + +#: ../../app1.rst:59 493c35f505154b66a5413eb8aae3f20b +msgid "" +"As with simple text output above, the `sort` argument can be used as well" +" to obtain a reading order." +msgstr "" + +#: ../../app1.rst:61 ../../app1.rst:79 3b27a871707241fab31e8b57d54a181b +#: 72a6a0bd50b84a369ab338f015c7c0c5 +msgid "Example output::" +msgstr "" + +#: ../../app1.rst:69 ../../app1.rst:338 2b7c8cb324cd43a5935bad475501fbba +#: ac2182e6a5334397ba4cba52f6a0ecbb +msgid "WORDS" +msgstr "" + +#: ../../app1.rst:71 bd891cd06d344be6a34c3533eef6b2b1 +msgid "" +"Function :meth:`TextPage.extractWORDS` (or *Page.get_text(\"words\")*) " +"extracts a page's text **words** as a list of items like::" +msgstr "" + +#: ../../app1.rst:75 7b33ff6ba92d470f8bab020fcd37037d +msgid "" +"Where the first 4 items are the float coordinates of the words's bbox. " +"The last three integers provide some more information on the word's " +"whereabouts." +msgstr "" + +#: ../../app1.rst:77 d553fb9cb8484714ba2faab69dc0c761 +msgid "" +"This is a high-speed method. As with the previous methods, argument " +"`sort=True` will reorder the words." +msgstr "" + +#: ../../app1.rst:95 ../../app1.rst:341 4c71524cc80240d8a4a615692160ee42 +#: 6e202dc149ab40d4a04fbf729bde5724 +msgid "HTML" +msgstr "" + +#: ../../app1.rst:97 279a64262cf0486490e50a36ebcb9fc4 +msgid "" +":meth:`TextPage.extractHTML` (or *Page.get_text(\"html\")* output fully " +"reflects the structure of the page's ``TextPage`` -- much like DICT / " +"JSON below. This includes images, font information and text positions. If" +" wrapped in HTML header and trailer code, it can readily be displayed by " +"an internet browser. Our above example::" +msgstr "" + +#: ../../app1.rst:113 a754b6fee5f44c9e9763dd071ea484d3 +msgid "Controlling Quality of HTML Output" +msgstr "" + +#: ../../app1.rst:114 9d69d29a89e34b598cab8061b0df6acb +msgid "" +"While HTML output has improved a lot in MuPDF v1.12.0, it is not yet bug-" +"free: we have found problems in the areas **font support** and **image " +"positioning**." +msgstr "" + +#: ../../app1.rst:116 e323aee6a8184c43b04054264f0ad164 +msgid "" +"HTML text contains references to the fonts used of the original document." +" If these are not known to the browser (a fat chance!), it will replace " +"them with others; the results will probably look awkward. This issue " +"varies greatly by browser -- on my Windows machine, MS Edge worked just " +"fine, whereas Firefox looked horrible." +msgstr "" + +#: ../../app1.rst:118 a3e819ae14b54c27a9a077e7e935cb86 +msgid "" +"For PDFs with a complex structure, images may not be positioned and / or " +"sized correctly. This seems to be the case for rotated pages and pages, " +"where the various possible page bbox variants do not coincide (e.g. " +"*MediaBox != CropBox*). We do not know yet, how to address this -- we " +"filed a bug at MuPDF's site." +msgstr "" + +#: ../../app1.rst:120 eb269d37c6994ea68a4d82c390bd674f +msgid "" +"To address the font issue, you can use a simple utility script to scan " +"through the HTML file and replace font references. Here is a little " +"example that replaces all fonts with one of the :ref:`Base-14-Fonts`: " +"serifed fonts will become \"Times\", non-serifed \"Helvetica\" and " +"monospaced will become \"Courier\". Their respective variations for " +"\"bold\", \"italic\", etc. are hopefully done correctly by your browser::" +msgstr "" + +#: ../../app1.rst:160 9a01edbae3494fb6bcfa415551ffe12d +msgid "DICT (or JSON)" +msgstr "" + +#: ../../app1.rst:162 dc5943b2ac244ae3bd4c1c3cced27b9a +msgid "" +":meth:`TextPage.extractDICT` (or *Page.get_text(\"dict\", sort=False)*) " +"output fully reflects the structure of a ``TextPage`` and provides image " +"content and position detail (*bbox* -- boundary boxes in pixel units) for" +" every block, line and span. Images are stored as *bytes* for DICT output" +" and base64 encoded strings for JSON output." +msgstr "" + +#: ../../app1.rst:164 c83998d97cb54af2a6c9e8ee068e02d3 +msgid "" +"For a visualization of the dictionary structure have a look at " +":ref:`textpagedict`." +msgstr "" + +#: ../../app1.rst:166 dd7c1a96c694470682bfdfceee248a97 +msgid "Here is how this looks like::" +msgstr "" + +#: ../../app1.rst:192 c2fb2cd52f07453b86d0afd6278fef62 +msgid "RAWDICT (or RAWJSON)" +msgstr "" + +#: ../../app1.rst:193 7d7646fe8d554083af47f4d372febdde +msgid "" +":meth:`TextPage.extractRAWDICT` (or *Page.get_text(\"rawdict\", " +"sort=False)*) is an **information superset of DICT** and takes the detail" +" level one step deeper. It looks exactly like the above, except that the " +"*\"text\"* items (*string*) in the spans are replaced by the list " +"*\"chars\"*. Each *\"chars\"* entry is a character *dict*. For example, " +"here is what you would see in place of item *\"text\": \"Text in black " +"color.\"* above::" +msgstr "" + +#: ../../app1.rst:224 ../../app1.rst:339 2400046f9c4f49858da21224a19d4b15 +#: 2d3722af4f584209bd8eaab07e032c6d +msgid "XML" +msgstr "" + +#: ../../app1.rst:226 c5a5b0c5667b42278fbebec3ebb83fab +msgid "" +"The :meth:`TextPage.extractXML` (or *Page.get_text(\"xml\")*) version " +"extracts text (no images) with the detail level of RAWDICT::" +msgstr "" + +#: ../../app1.rst:255 76940447ff984e9f8267433f30622b18 +msgid "" +"We have successfully tested `lxml `_ to " +"interpret this output." +msgstr "" + +#: ../../app1.rst:258 ../../app1.rst:340 a405be8a4b8c4148920284c0af5d2a21 +#: def99570eabf40eb9a2296563cf87c89 +msgid "XHTML" +msgstr "" + +#: ../../app1.rst:259 f860ba05b7b84b0cbbd677dfb53ba52c +msgid "" +":meth:`TextPage.extractXHTML` (or *Page.get_text(\"xhtml\")*) is a " +"variation of TEXT but in HTML format, containing the bare text and images" +" (\"semantic\" output)::" +msgstr "" + +#: ../../app1.rst:268 0f8064883834458ab08418752216e011 +msgid "Text Extraction Flags Defaults" +msgstr "" + +#: ../../app1.rst:269 8ba849c311aa457d85362ff7f4f1819e +msgid "" +"New in version 1.16.2: Method :meth:`Page.get_text` supports a keyword " +"parameter *flags* *(int)* to control the amount and the quality of " +"extracted data. The following table shows the defaults settings (flags " +"parameter omitted or None) for each extraction variant. If you specify " +"flags with a value other than ``None``, be aware that you must set **all " +"desired** options. A description of the respective bit settings can be " +"found in :ref:`TextPreserve`." +msgstr "" + +#: ../../app1.rst:271 d40d16d07939413e8c75c3dc13b1127c +msgid "" +"New in v1.19.6: The default combinations in the following table are now " +"available as Python constants: :data:`TEXTFLAGS_TEXT`, " +":data:`TEXTFLAGS_WORDS`, :data:`TEXTFLAGS_BLOCKS`, " +":data:`TEXTFLAGS_DICT`, :data:`TEXTFLAGS_RAWDICT`, " +":data:`TEXTFLAGS_HTML`, :data:`TEXTFLAGS_XHTML`, :data:`TEXTFLAGS_XML`, " +"and :data:`TEXTFLAGS_SEARCH`. You can now easily modify a default flag, " +"e.g." +msgstr "" + +#: ../../app1.rst:273 dc924700aa9b4042894cae14679d63f2 +msgid "**include** images in a \"blocks\" output:" +msgstr "" + +#: ../../app1.rst:275 3d7561abbff8475c825b8d983783bf39 +msgid "`flags = TEXTFLAGS_BLOCKS | TEXT_PRESERVE_IMAGES`" +msgstr "" + +#: ../../app1.rst:277 4ca8d0166e4646bd80fcc1d69f340a95 +msgid "**exclude** images from a \"dict\" output:" +msgstr "" + +#: ../../app1.rst:279 1a2e1663435b4abaa1b188e5d6bd9338 +msgid "`flags = TEXTFLAGS_DICT & ~TEXT_PRESERVE_IMAGES`" +msgstr "" + +#: ../../app1.rst:281 d3769cd425ff4854b0e4292af9c3a0e1 +msgid "set **dehyphenation off** in text searches:" +msgstr "" + +#: ../../app1.rst:283 2365979a4e104875a8c468496909f03d +msgid "`flags = TEXTFLAGS_SEARCH & ~TEXT_DEHYPHENATE`" +msgstr "" + +#: ../../app1.rst:287 6f7f786332d34c359591ddf8d17a374b +msgid "Indicator" +msgstr "" + +#: ../../app1.rst:287 5f2792809a9645ccaa7c3103a8c35f60 +msgid "text" +msgstr "" + +#: ../../app1.rst:287 9330883adb104a8b880b90565531cf78 +msgid "html" +msgstr "" + +#: ../../app1.rst:287 ead5e0f63b1849fcad0e1d2b7e718887 +msgid "xhtml" +msgstr "" + +#: ../../app1.rst:287 6c6f9476a4614058833f45708bdc20be +msgid "xml" +msgstr "" + +#: ../../app1.rst:287 0248ca12579948d7a86695462a79fdcb +msgid "dict" +msgstr "" + +#: ../../app1.rst:287 e7d633c232874f17bede991cf837d6c3 +msgid "rawdict" +msgstr "" + +#: ../../app1.rst:287 7fa4130e9ccf41c4a89237b146f501ef +msgid "words" +msgstr "" + +#: ../../app1.rst:287 34941a4200304d7492e796f779d70af9 +msgid "blocks" +msgstr "" + +#: ../../app1.rst:287 29648526b349495e89efdba8501f7d58 +msgid "search" +msgstr "" + +#: ../../app1.rst:289 a7ced22ad3514aee9d5860e7a63e2585 +msgid "preserve ligatures" +msgstr "" + +#: ../../app1.rst:289 ../../app1.rst:290 ../../app1.rst:291 ../../app1.rst:293 +#: ../../app1.rst:294 ../../app1.rst:295 0cb4cd763ef542608c195c6460b399dc +#: 0f43651d2736498e96beed8c24af63e9 20bddcebf4b543228091164700c68887 +#: 25d6766e4acb4fc49ec8e4fc1eb66529 2bc4aa25150c4d8c9902fd0ce38a2999 +#: 2bd684139d2e454d819cd76bed2bd102 2e7049fda6e14a2ca9a522be96770d00 +#: 2ea03f7b7fb14b7a976160f27232430c 48e9b5e2fdf046c8a01ae4b5cf3d92b7 +#: 51fcf587aa804e63a7afdca232a5123e 530e59a3a9bd4518859c2074f4a8fb16 +#: 5650d9d0ff634f79a775ea6061792d1e 57fc8ce1840144cfac20f2ad74fc2830 +#: 58b687804f9f44f78d42f22ec402f444 592dbaf3091e4acebbebdacbc132c557 +#: 5fe9aa6f8b084af9b13c0b18aabd3924 6a11a4e3a9ea4e17b2f62dac6565c592 +#: 7e477874caf041e4bfdb2b9715ca466b 8558f363af2e463c86807ec68536a6fe +#: 856d9f908ce4492d9d6e4d9942aeaf71 a030d647ca2549b28cd1f8423e3250ab +#: a0b1d47cb17f47bf8e80bb4647de9186 a1764775c19e4c57936ebdd4291fc8bb +#: ad1ab38b1e5448a784ec98ef8c12df3a b06d0e59e44649a28ad4fc081b0cee19 +#: b4f9c2410ff243ecab4fc54dc7d849e9 bfcb17e586004c2886905b1b94eeed1d +#: c0f6469d6bc44f709be506a3cdd9a339 c96eb459feb14f60ad45b43c108367f9 +#: d53f99316ae94e71b4d4480f84277945 d5838173cacf47a2b9d2d7ab0f3cbab0 +#: d5b75f9369ea4ceba86c82894b7cad40 d87075ec3a7d4392aed8b7b4266e41a4 +#: e13a6d7235c14b3fb15384adaba80ce9 e2ded0a0075c4d9e931b78360a6cef6b +#: e93caf9105d0420c9d8bb40bbf2cdf90 eab3ab57cb1548baaf7011b0604ed429 +#: f0220244eb534ddda9c6a22290717a50 f7971b72219d4d95b439b84693a28f73 +msgid "1" +msgstr "" + +#: ../../app1.rst:289 ../../app1.rst:291 ../../app1.rst:292 ../../app1.rst:293 +#: ../../app1.rst:295 011c44af019c41c298922bebee1b1c11 +#: 12c4cb08b28542d49005e9339fe0834c 1c35e49b6df44d79bff74df1b4d78b83 +#: 21f7a63996d64dcb83a41b385bdfe468 31af0f63c4434ef3b9b3bf48be4f77a8 +#: 3b439777a243470cbeaa2171bb389696 428e7a5d17e14bd2823284322ebe8792 +#: 43fd32ccc6b84942abf31f7c7066b718 46be00d2353b4350993b3ade6d4555e5 +#: 517834e9ea544ee48a80774f32298485 594207767efc47ac9b5174f8d44bc078 +#: 5fad2f44f76842fdae75090a3d39fe7a 6273d3b284c94893ae7f4cee674e31bf +#: 9e452b6cb65f4c7ea9fe05f5e312a3e8 a577f5deaa234a9a8a05f26b7c1b7368 +#: b28c3e3b6015418c983c625e5bc7f5b5 b4566a369cf745989dcdde6fb5650bb8 +#: bf6d2bf8b3bf4c26b4f6c86f2dd651a6 c984d40f754d445c9df1e4477d112414 +#: dab827d3d3944e789a78bf1474d0f410 ded8f8ccfe914788a0b031d4fa55fb21 +msgid "0" +msgstr "" + +#: ../../app1.rst:290 d4a8b0082348457c9b3a7f0c83dde31d +msgid "preserve whitespace" +msgstr "" + +#: ../../app1.rst:291 7cff9f000b1f41abbca9effe3a08af35 +msgid "preserve images" +msgstr "" + +#: ../../app1.rst:291 2dbd9b27a6ad426cb7dcc9be3911020b +#: c63946a2a43041a995ca0fbeb23153ef d209151eb3624d868e0ce8d60b9347b8 +msgid "n/a" +msgstr "" + +#: ../../app1.rst:292 5a4bb22be2824af98d9db38f003324d8 +msgid "inhibit spaces" +msgstr "" + +#: ../../app1.rst:293 cb5ae3cd443344048f5ddc1e916152df +msgid "dehyphenate" +msgstr "" + +#: ../../app1.rst:294 ac1c83a387304202a50381f999e13a9b +msgid "clip to mediabox" +msgstr "" + +#: ../../app1.rst:295 0fec3cdc767c4ecc80645956dbdaa050 +msgid "use CID instead of U+FFFD" +msgstr "" + +#: ../../app1.rst:298 3e0abf5ee8404c7c85743a6d0c348e5f +msgid "**search** refers to the text search function." +msgstr "" + +#: ../../app1.rst:299 2063c0aa9e6746fca18404258dea465f +msgid "**\"json\"** is handled exactly like **\"dict\"** and is hence left out." +msgstr "" + +#: ../../app1.rst:300 4a5e41e47c864b39a729542c7bb2ae23 +msgid "" +"**\"rawjson\"** is handled exactly like **\"rawdict\"** and is hence left" +" out." +msgstr "" + +#: ../../app1.rst:301 5783eaf8a223417bbb6edf7595657706 +msgid "" +"An \"n/a\" specification means a value of 0 and setting this bit never " +"has any effect on the output (but an adverse effect on performance)." +msgstr "" + +#: ../../app1.rst:302 b5dddb0dc411425db6bc1a169ff2a8d4 +msgid "" +"If you are not interested in images when using an output variant which " +"includes them by default, then by all means set the respective bit off: " +"You will experience a better performance and much lower space " +"requirements." +msgstr "" + +#: ../../app1.rst:304 608cc56e35e24516bf555cbdb28b782e +msgid "To show the effect of `TEXT_INHIBIT_SPACES` have a look at this example::" +msgstr "" + +#: ../../app1.rst:324 73de41a5c50b4025bbb2c6a93243d3b7 +msgid "Performance" +msgstr "" + +#: ../../app1.rst:325 008bf5834d9c43878d55c1f182c383ad +msgid "" +"The text extraction methods differ significantly both: in terms of " +"information they supply, and in terms of resource requirements and " +"runtimes. Generally, more information of course means, that more " +"processing is required and a higher data volume is generated." +msgstr "" + +#: ../../app1.rst:327 aa82ec64134a4f3bbbea8037e3f3835d +#, python-format +msgid "" +"Especially images have a **very significant** impact. Make sure to " +"exclude them (via the *flags* parameter) whenever you do not need them. " +"To process the below mentioned 2'700 total pages with default flags " +"settings required 160 seconds across all extraction methods. When all " +"images where excluded, less than 50% of that time (77 seconds) were " +"needed." +msgstr "" + +#: ../../app1.rst:329 74982287fc904cbe9d5f67869c717cff +msgid "" +"To begin with, all methods are **very fast** in relation to other " +"products out there in the market. In terms of processing speed, we are " +"not aware of a faster (free) tool. Even the most detailed method, " +"RAWDICT, processes all 1'310 pages of the :ref:`AdobeManual` in less than" +" 5 seconds (simple text needs less than 2 seconds here)." +msgstr "" + +#: ../../app1.rst:331 83629ccfb7c9414089033b0147642f2e +msgid "" +"The following table shows average relative speeds (\"RSpeed\", baseline " +"1.00 is TEXT), taken across ca. 1400 text-heavy and 1300 image-heavy " +"pages." +msgstr "" + +#: ../../app1.rst:334 bc84a1d73aa545a3aca4437e5017ed0e +msgid "Method" +msgstr "" + +#: ../../app1.rst:334 9368181159ab4fd6a75aae6bdaa5d189 +msgid "RSpeed" +msgstr "" + +#: ../../app1.rst:334 7110ef6f2a7c4849a31df08c1bbf7f95 +msgid "Comments" +msgstr "" + +#: ../../app1.rst:334 e1c0047fd9194edba834839b48102df9 +msgid "no images" +msgstr "" + +#: ../../app1.rst:336 4b7a66b4248d47dc9f0ac0139eea5321 +msgid "TEXT" +msgstr "" + +#: ../../app1.rst:336 ../../app1.rst:337 ../../app1.rst:340 +#: 25343a3526d44c7e9147a4b83482b458 5c3d7bcdd77648fea697a40e67bab8fc +#: 6669d2767e5c49eeb1606eef0ef897e0 e55d755ae5ee4a62bd2e705a1b4974a4 +#: f0dcc7f23fa74accb9461d0e6ad00b34 +msgid "1.00" +msgstr "" + +#: ../../app1.rst:336 74b3bb1df5a74fe7965c9a036c43b0b6 +msgid "no images, **plain** text, line breaks" +msgstr "" + +#: ../../app1.rst:337 db8f0e8c5f874c7bbbc6d938ebde2e18 +msgid "image bboxes (only), **block** level text with bboxes, line breaks" +msgstr "" + +#: ../../app1.rst:338 075075d180484d1e9a104abafa5c7123 +#: 18d11064908b48228b89fe3c8c0d242c +msgid "1.02" +msgstr "" + +#: ../../app1.rst:338 b3d7c61c84a84af98ad596efb0959503 +msgid "no images, **word** level text with bboxes" +msgstr "" + +#: ../../app1.rst:339 0c5c60a2ef4342038c3a2c60d07bd072 +#: ab025008beb540c3af6517c25c3731c8 +msgid "2.72" +msgstr "" + +#: ../../app1.rst:339 233b3e8abb32457bb01d804468cd86e2 +msgid "no images, **char** level text, layout and font details" +msgstr "" + +#: ../../app1.rst:340 495e91c0090643cd9239576c13e8f216 +msgid "3.32" +msgstr "" + +#: ../../app1.rst:340 b4c7e848e2814720ab1d9fbeb303c9f9 +msgid "**base64** images, **span** level text, no layout info" +msgstr "" + +#: ../../app1.rst:341 e1c73c9152e644efbed95fc738d1ae9d +msgid "3.54" +msgstr "" + +#: ../../app1.rst:341 61d71ce102d24fbbb30ff945dc28f207 +msgid "**base64** images, **span** level text, layout and font details" +msgstr "" + +#: ../../app1.rst:341 892ba5e6677e4561bfe9a5dc406e3852 +msgid "1.01" +msgstr "" + +#: ../../app1.rst:342 5b44d6bc99504bb4bc7e4d457aa5509f +msgid "DICT" +msgstr "" + +#: ../../app1.rst:342 bb46e12ef905445f84a825d968043de6 +msgid "3.93" +msgstr "" + +#: ../../app1.rst:342 426e28067c23452bb6edeb57689a7855 +msgid "**binary** images, **span** level text, layout and font details" +msgstr "" + +#: ../../app1.rst:342 16da06be2e1a492c94b26bb12c8c4022 +msgid "1.04" +msgstr "" + +#: ../../app1.rst:343 02cf93b26e5f449e95976162924b980c +msgid "RAWDICT" +msgstr "" + +#: ../../app1.rst:343 0eddcb199db847968d5f20c520727971 +msgid "4.50" +msgstr "" + +#: ../../app1.rst:343 7ae92e67a9f34967b697139a85969bff +msgid "**binary** images, **char** level text, layout and font details" +msgstr "" + +#: ../../app1.rst:343 b31064906dbc405e9e886eab7a219b5f +msgid "1.68" +msgstr "" + +#: ../../app1.rst:346 bbe02a1a6ecb4053aea6eac932438250 +#, python-format +msgid "" +"As mentioned: when excluding image extraction (last column), the relative" +" speeds are changing drastically: except RAWDICT and XML, the other " +"methods are almost equally fast, and RAWDICT requires 40% less execution " +"time than the **now slowest XML**." +msgstr "" + +#: ../../app1.rst:348 c9763e96efa94f389c83973e6830f9cc +msgid "Look at chapter **Appendix 1** for more performance information." +msgstr "" + +#: ../../footer.rst:46 ee2a605b55f548d69f51e5e9c010b812 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/app2.mo b/docs/locales/ko/LC_MESSAGES/app2.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/app2.po b/docs/locales/ko/LC_MESSAGES/app2.po new file mode 100644 index 000000000..cf3813004 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/app2.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 91d1a3926cf04b7f86982004576a7dac +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 079f5f8f8d67400f8dff2c457815bc6e +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 f3ec318cd565440481d5fc24ebd6dd9d +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../app2.rst:7 df962b6f73f94a62944d489a625e02f6 +msgid "Appendix 2: Considerations on Embedded Files" +msgstr "" + +#: ../../app2.rst:8 fea3691f2b5d49e3be0cdd79daecdb75 +msgid "" +"This chapter provides some background on embedded files support in " +"PyMuPDF." +msgstr "" + +#: ../../app2.rst:11 e6abfba16abf44f5b53d5c259c06168e +msgid "General" +msgstr "" + +#: ../../app2.rst:12 2e9ff1e795ec4a80886665b6d98570d1 +msgid "" +"Starting with version 1.4, PDF supports embedding arbitrary files as part" +" (\"Embedded File Streams\") of a PDF document file (see chapter \"7.11.4" +" Embedded File Streams\", pp. 103 of the :ref:`AdobeManual`)." +msgstr "" + +#: ../../app2.rst:15 3740cf26355f419488a18d5c5bf691e2 +msgid "" +"In many aspects, this is comparable to concepts also found in ZIP files " +"or the OLE technique in MS Windows. PDF embedded files do, however, *not*" +" support directory structures as does the ZIP format. An embedded file " +"can in turn contain embedded files itself." +msgstr "" + +#: ../../app2.rst:17 cf0b0ce27ac343a7989b881239cb446f +msgid "" +"Advantages of this concept are that embedded files are under the PDF " +"umbrella, benefitting from its permissions / password protection and " +"integrity aspects: all data, which a PDF may reference or even may be " +"dependent on, can be bundled into it and so form a single, consistent " +"unit of information." +msgstr "" + +#: ../../app2.rst:19 7979fde2425b48d89516fd519a799cb9 +msgid "" +"In addition to embedded files, PDF 1.7 adds *collections* to its support " +"range. This is an advanced way of storing and presenting meta information" +" (i.e. arbitrary and extensible properties) of embedded files." +msgstr "" + +#: ../../app2.rst:22 96f7716c2f354c4e9734c53ec68da72d +msgid "MuPDF Support" +msgstr "" + +#: ../../app2.rst:23 c829491b2aaa4844aa1c48047af82974 +msgid "" +"After adding initial support for collections (portfolios) and " +"*/EmbeddedFiles* in MuPDF version 1.11, this support was dropped again in" +" version 1.15." +msgstr "" + +#: ../../app2.rst:25 f683f1fd707f420b90cc13279f35ebc0 +msgid "" +"As a consequence, the cli utility *mutool* no longer offers access to " +"embedded files." +msgstr "" + +#: ../../app2.rst:27 de207c079b314eaea490841b284ea876 +msgid "" +"PyMuPDF -- having implemented an */EmbeddedFiles* API in response in its " +"version 1.11.0 -- was therefore forced to change gears starting with its " +"version 1.16.0 (we never published a MuPDF v1.15.x compatible PyMuPDF)." +msgstr "" + +#: ../../app2.rst:29 73bd7a0c6aef40dea2819f6f52a55ff6 +msgid "" +"We are now maintaining our own code basis supporting embedded files. This" +" code makes use of basic MuPDF dictionary and array functions only." +msgstr "" + +#: ../../app2.rst:32 de313e6dfe7e40e781939fab264fd4e5 +msgid "PyMuPDF Support" +msgstr "" + +#: ../../app2.rst:33 420a4c9141134c469dfb6d107c9bcd58 +msgid "" +"We continue to support the full old API with respect to embedded files --" +" with only minor, cosmetic changes." +msgstr "" + +#: ../../app2.rst:35 66a7d51f81c6402caf1d00e67bd1bfd2 +msgid "" +"There even also is a new function, which delivers a list of all names " +"under which embedded data are registered in a PDF, " +":meth:`Document.embfile_names`." +msgstr "" + +#: ../../footer.rst:46 c600b715098140b3b7f197c61eb560ac +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/app3.mo b/docs/locales/ko/LC_MESSAGES/app3.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/app3.po b/docs/locales/ko/LC_MESSAGES/app3.po new file mode 100644 index 000000000..d6b4b0fe3 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/app3.po @@ -0,0 +1,776 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 6a4f4d9aba284482b17f5158db768103 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 ca8dbdbe51984f3d841ffa5414e59d9f +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 acc2a6d07e304bfeb3e884b734b79031 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../app3.rst:7 635cfbba07cc4d7fafc89714611a9318 +msgid "Appendix 3: Assorted Technical Information" +msgstr "" + +#: ../../app3.rst:8 4769a2a2c2d84bf2b3ee95f7b4bf80e3 +msgid "" +"This section deals with various technical topics, that are not " +"necessarily related to each other." +msgstr "" + +#: ../../app3.rst:15 ec8a4400984a477ca650493b54e8d584 +msgid "Image Transformation Matrix" +msgstr "" + +#: ../../app3.rst:16 e34c11954ed74384aadeee4920e21331 +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 "" + +#: ../../app3.rst:18 b72e0ef8b41e494489563ac4faed2c68 +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 "" + +#: ../../app3.rst:20 d13c3c9d78be4c7baf9efb9708ddda02 +msgid "" +"The relationship between image dimension and its bbox on a page is the " +"following:" +msgstr "" + +#: ../../app3.rst:24 24589c9043924415af09f8353878e2fa +msgid "Using the original image's width and height," +msgstr "" + +#: ../../app3.rst:23 5fcd053e3c4745e3ac9752cf844e3899 +msgid "define the image rectangle `imgrect = pymupdf.Rect(0, 0, width, height)`" +msgstr "" + +#: ../../app3.rst:24 7a8b751ef2f84e4eb0d4f3bffd76a9ba +msgid "" +"define the \"shrink matrix\" `shrink = pymupdf.Matrix(1/width, 0, 0, " +"1/height, 0, 0)`." +msgstr "" + +#: ../../app3.rst:26 be4e302d72a047d9ad89310d107eb3e3 +msgid "" +"Transforming the image rectangle with its shrink matrix, will result in " +"the unit rectangle: `imgrect * shrink = pymupdf.Rect(0, 0, 1, 1)`." +msgstr "" + +#: ../../app3.rst:28 cd872603d2774c46a06dda3917faa61c +msgid "" +"Using the image **transformation matrix** \"transform\", the following " +"steps will compute the bbox::" +msgstr "" + +#: ../../app3.rst:34 b2fb7d53a3f8485390e8070c74877726 +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 "" + +#: ../../app3.rst:71 5677aee6873b459a93e06865c3302434 +msgid "PDF Base 14 Fonts" +msgstr "" + +#: ../../app3.rst:72 3df5aeca5c3f4ccf9325390f51398b06 +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 "" + +#: ../../app3.rst:105 a5f070fd9c6546bfa33ed69a6639683e +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 "" + +#: ../../app3.rst:107 6842b8433a9547b6a82435e36e06fb70 +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 "" + +#: ../../app3.rst:114 e3268f776b5a4b06a629bf9f9c25828c +msgid "Adobe PDF References" +msgstr "" + +#: ../../app3.rst:116 17a3fab0bc0d4dcc9ab758228d6be220 +msgid "" +"This PDF Reference manual published by Adobe is frequently quoted " +"throughout this documentation. It can be viewed and downloaded from " +"`opensource.adobe.com `_." +msgstr "" + +#: ../../app3.rst:125 c4f0367b9f574635971bdcbd0d2ca6fb +msgid "Using Python Sequences as Arguments in PyMuPDF" +msgstr "" + +#: ../../app3.rst:126 3d89e490fbf7457284a6ae3fcc59d506 +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 "" + +#: ../../app3.rst:128 bd7b31cc19e54f17857367f55587a14e +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 "" + +#: ../../app3.rst:130 cc50a15ebc1a45c3ba30d1d2615eeb1b +msgid "For example, specifying a sequence `\"s\"` in any of the following ways" +msgstr "" + +#: ../../app3.rst:132 ba9e965ec2384d4aaaacc84791926237 +msgid "`s = [1, 2]` -- a list" +msgstr "" + +#: ../../app3.rst:133 a1b8ab6b13fe41159b6b656dd7debae0 +msgid "`s = (1, 2)` -- a tuple" +msgstr "" + +#: ../../app3.rst:134 c68b9c09194b47c78b57fa6656c1ffea +msgid "`s = array.array(\"i\", (1, 2))` -- an array.array" +msgstr "" + +#: ../../app3.rst:135 3a8427a9db4d4436a94ddb0536f292f1 +msgid "`s = numpy.array((1, 2))` -- a numpy array" +msgstr "" + +#: ../../app3.rst:136 33fa18c1c81f441890f097d10863edf5 +msgid "`s = bytearray((1, 2))` -- a bytearray" +msgstr "" + +#: ../../app3.rst:138 723f57c7a65942108b9add6c3d6123e3 +msgid "will make it usable in the following example expressions:" +msgstr "" + +#: ../../app3.rst:140 7e8310592817456db2c249694ee67e4c +msgid "`pymupdf.Point(s)`" +msgstr "" + +#: ../../app3.rst:141 ef9f88aff26342c1b8b682b45b03735a +msgid "`pymupdf.Point(x, y) + s`" +msgstr "" + +#: ../../app3.rst:142 0a05dd917a434de3b831f92af1f206d8 +msgid "`doc.select(s)`" +msgstr "" + +#: ../../app3.rst:144 e7823b7a8a1642dea3763c0d1fcf75df +msgid "" +"Similarly with all geometry objects :ref:`Rect`, :ref:`IRect`, " +":ref:`Matrix` and :ref:`Point`." +msgstr "" + +#: ../../app3.rst:146 e62989d3437d4c809e933779b0b4f916 +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 "" + +#: ../../app3.rst:163 cd48dbd7918c44989e77808c4e3d2273 +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 "" + +#: ../../app3.rst:170 a239cac6134847fa88f5fdc763bc0034 +msgid "Ensuring Consistency of Important Objects in PyMuPDF" +msgstr "" + +#: ../../app3.rst:171 94db2c4ab30441ca82c022e184f57bf9 +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 "" + +#: ../../app3.rst:173 7cf69b3e065341f0a20a77da785f6027 +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 "" + +#: ../../app3.rst:175 05bb51a7321b4ecd8dc9585c3e3f3b8c +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 "" + +#: ../../app3.rst:177 0d437950b2ba4e1cbdfd6ccd5a4b5f4b +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 "" + +#: ../../app3.rst:179 740cda1605364f24b13938ce08977597 +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 "" + +#: ../../app3.rst:181 9f8e966b70d34ecfabbaf171069a4cca +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 "" + +#: ../../app3.rst:183 a7f44e6e345e43358b3a79b7c052cd44 +msgid "SWIG cannot know about this and consequently does not do it." +msgstr "" + +#: ../../app3.rst:185 9f2723ebd7904acaa02811c5490da7a1 +msgid "" +"The required logic has therefore been built into PyMuPDF itself in the " +"following way." +msgstr "" + +#: ../../app3.rst:187 fd908d3774f14df1b4fb95b1d9afb2f4 +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 "" + +#: ../../app3.rst:189 25e9288e71cb47e586bca43a0f860fb2 +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 "" + +#: ../../app3.rst:191 54df808609fb4f028e086d3d8e9d2f3b +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 563eaa2415b64daabefd0a63dca2bd34 +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 "" + +#: ../../app3.rst:195 e5c1f65e4ac6489ca69e7ebe7b57195c +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 "" + +#: ../../app3.rst:197 d631125a6585402abe79abea78f9a828 +msgid "A sample session:" +msgstr "" + +#: ../../app3.rst:214 9f74080977604195aab03d9e5d402dd0 +msgid "This shows the cascading effect:" +msgstr "" + +#: ../../app3.rst:231 2b8666687af94a81ad4c68af9a5f9e6b +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 "" + +#: ../../app3.rst:238 d3876be10a3649c3b2ab6f5d57c69ce0 +msgid "Design of Method :meth:`Page.show_pdf_page`" +msgstr "" + +#: ../../app3.rst:241 3180435e0924483181b1a26a8cba5f32 +msgid "Purpose and Capabilities" +msgstr "" + +#: ../../app3.rst:243 bf37b033f7ca48c58de17d9d2051b74d +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 "" + +#: ../../app3.rst:245 6f60a372555246208767f53ea2bfd820 +msgid "" +"**In contrast** to :meth:`Page.insert_image`, this display is vector-" +"based and hence remains accurate across zooming levels." +msgstr "" + +#: ../../app3.rst:246 998a98e328ec42aba32d728c2b4334e4 +msgid "" +"**Just like** :meth:`Page.insert_image`, the size of the display is " +"adjusted to the given rectangle." +msgstr "" + +#: ../../app3.rst:248 e75e8ccc88234308a5ec9fa48fa086f2 +msgid "The following variations of the display are currently supported:" +msgstr "" + +#: ../../app3.rst:250 d8cc5e5d21b84c21b682d4ab99c0d9df +msgid "" +"Bool parameter `\"keep_proportion\"` controls whether to maintain the " +"aspect ratio (default) or not." +msgstr "" + +#: ../../app3.rst:251 186e450479084963890fe9da769fab60 +msgid "" +"Rectangle parameter `\"clip\"` restricts the visible part of the source " +"page rectangle. Default is the full page." +msgstr "" + +#: ../../app3.rst:252 4f399ef693d44c11953293c07415b9ae +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 "" + +#: ../../app3.rst:253 64850af2d5454c3b8c0cc5f82512df49 +msgid "" +"Bool parameter `\"overlay\"` controls whether to put the image on top " +"(foreground, default) of current page content or not (background)." +msgstr "" + +#: ../../app3.rst:255 7e80998882b74dbd8a0af43da85cb0d4 +msgid "Use cases include (but are not limited to) the following:" +msgstr "" + +#: ../../app3.rst:257 996173b99261405f88be22fdbd55394b +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 1c47493c9a7d4b9f86bf2e065fad544e +msgid "" +"Combine arbitrary input pages into one output page to support “booklet” " +"or double-sided printing (known as \"4-up\", \"n-up\")." +msgstr "" + +#: ../../app3.rst:259 7e5cd1ef35154a02b0bee17ee2806729 +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 "" + +#: ../../app3.rst:262 b540c10d38674f279374416c7ec65281 +msgid "Technical Implementation" +msgstr "" + +#: ../../app3.rst:264 69b731e1cb1b4b1f82341ad0baeff00b +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 "" + +#: ../../app3.rst:266 50910b81c885485fadb624aecb9e1577 +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 "" + +#: ../../app3.rst:268 a1333276b2c34164b105e04d7d4d2515 +msgid "`/BBox` equals `/Mediabox` of the source page" +msgstr "" + +#: ../../app3.rst:269 fbe66f56505f421dad721b5efa325673 +msgid "`/Matrix` equals the identity matrix." +msgstr "" + +#: ../../app3.rst:270 3a867e67f3d843608d9857ad1253fa34 +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 "" + +#: ../../app3.rst:271 1a49d5440ba142cf9172da9514e3c857 +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 "" + +#: ../../app3.rst:273 dd47a3e1e5374c23ae28df502b54d8a4 +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 "" + +#: ../../app3.rst:275 42724012ec184801b99998826eed3a72 +msgid "" +"A second **Form XObject** is then created which the target page uses to " +"invoke the display. This object has the following properties:" +msgstr "" + +#: ../../app3.rst:277 e03b9eae952d4d1bb6e04da71d195465 +msgid "`/BBox` equals the `/CropBox` of the source page (or `\"clip\"`)." +msgstr "" + +#: ../../app3.rst:278 1749263652a44611a4af6fbe1690c814 +msgid "`/Matrix` represents the mapping of `/BBox` to the target rectangle." +msgstr "" + +#: ../../app3.rst:279 4fb0197364cf4a88b015f8fa5d6d6ff2 +msgid "" +"`/XObject` references the previous Form XObject via the fixed name " +"`fullpage`." +msgstr "" + +#: ../../app3.rst:280 a3736f591c254b8a801d28e108cec9a8 +msgid "" +"The stream of this object contains exactly one fixed statement: " +"`/fullpage Do`." +msgstr "" + +#: ../../app3.rst:281 5d63f1c31a56424b8903208d2ac3af39 +msgid "" +"If the method's `\"oc\"` argument is given, its value is assigned to this" +" Form XObject as `/OC`." +msgstr "" + +#: ../../app3.rst:283 e5c4f530e1134086bac2da1f45b4d894 +msgid "" +"The :data:`resources` and :data:`contents` objects of the target page are" +" now modified as follows." +msgstr "" + +#: ../../app3.rst:285 d81644bc7b114307a984f10eed9801e7 +msgid "" +"Add an entry to the `/XObject` dictionary of `/Resources` with the name " +"`fzFrm` (with n chosen such that this entry is unique on the page)." +msgstr "" + +#: ../../app3.rst:286 ff1f4fdf2e59413da229698f3921b8d0 +msgid "" +"Depending on `\"overlay\"`, prepend or append a new object to the page's " +"`/Contents` array, containing the statement `q /fzFrm Do Q`." +msgstr "" + +#: ../../app3.rst:288 01882ae84bb54534ba3c6ab5ca61b114 +msgid "This design approach ensures that:" +msgstr "" + +#: ../../app3.rst:290 b9976fb7daeb4b6291c769ba97d9ac06 +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 "" + +#: ../../app3.rst:291 521ab75e321e488ca9676c4ce898d1b3 +msgid "" +"Each referring target page can have its own `\"oc\"` parameter to control" +" the source page's visibility individually." +msgstr "" + +#: ../../app3.rst:298 05bf5b83ea6142389d3172a05aa36f27 +msgid "Diagnostics" +msgstr "" + +#: ../../app3.rst:303 b856bdfa521a4448b19dc8a507f2c401 +msgid "|PyMuPDF| messages" +msgstr "" + +#: ../../app3.rst:305 85b5e6f89d3649809ada540c8eea82a1 +msgid "|PyMuPDF| has a Message system for showing text diagnostics." +msgstr "" + +#: ../../app3.rst:307 4c84b6f861ea48f3a8e09715aebfc6d9 +msgid "" +"By default messages are written to `sys.stdout`. This can be controlled " +"in two ways:" +msgstr "" + +#: ../../app3.rst:311 74ccaa7010d84feaaff8d9a38c69b5f1 +msgid "Set environment variable `PYMUPDF_MESSAGE` before |PyMuPDF| is imported." +msgstr "" + +#: ../../app3.rst:314 2f88318d369944be868c62a39006cca7 +msgid "Call `set_messages()`:" +msgstr "" + +#: ../../app3.rst:318 e5c533c2a71c4b608f529bfb4df7afb2 +msgid "|MuPDF| errors and warnings" +msgstr "" + +#: ../../app3.rst:320 1523d23bbbce45f1a25c851f5b69abf0 +msgid "|MuPDF| generates text errors and warnings." +msgstr "" + +#: ../../app3.rst:323 adb68bfb91384894b21b746a73dd6bc0 +msgid "" +"These errors and warnings are appended to an internal list, accessible " +"with `Tools.mupdf_warnings()`. Also see `Tools.reset_mupdf_warnings()`." +msgstr "" + +#: ../../app3.rst:327 79324fa6e32d42af95e9abf26233099a +msgid "" +"By default these errors and warnings are also sent to the |PyMuPDF| " +"message system." +msgstr "" + +#: ../../app3.rst:330 a71ef1ec2b084888adf04787091192a1 +msgid "" +"This can be controlled with `mupdf_display_errors()` and " +"`mupdf_display_warnings()`." +msgstr "" + +#: ../../app3.rst:334 83b10651533947bc9bd63e655367d81e +msgid "" +"These messages are prefixed with `MuPDF error:` and `MuPDF warning:` " +"respectively." +msgstr "" + +#: ../../app3.rst:337 943f00a7c2a849f483525f7b3653f6a0 +msgid "Some |MuPDF| errors may lead to Python exceptions." +msgstr "" + +#: ../../app3.rst:339 0cdf1f5474fa4616a11df5f246a531a1 +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 "" + +#: ../../app3.rst:360 af0558fd6f8c4501a41d850a84d3da7b +msgid "Example output for an **unrecoverable error**:" +msgstr "" + +#: ../../app3.rst:378 01987f6b7c4e4b13a325bf16dc6d2fda +msgid "Coordinates" +msgstr "" + +#: ../../app3.rst:381 cc111c4761774e13839c570b6a760b94 +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 "" + +#: ../../app3.rst:383 8e23a5ba1da047d88532eda8f671451a +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 "" + +#: ../../app3.rst:385 5720add281a54277b7a0232978fa8662 +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 "" + +#: ../../app3.rst:388 9bd43359dae34a3db3ed2502539abb9f +msgid "Coordinates and Images" +msgstr "" + +#: ../../app3.rst:390 ef142876a50648b88ce6825a05daf149 +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 "" + +#: ../../app3.rst:392 a43cf286a2d14b4892269df18f857b1b +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 "" + +#: ../../app3.rst:396 b694fe03ac784433945a778cd53034f2 +msgid "Origin Point, Point Size and Y-Axis" +msgstr "" + +#: ../../app3.rst:398 a92885d699744510b39176e360fb8a63 +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 "" + +#: ../../app3.rst:403 b0a22dfe25a8493dbcd9b65008507920 +msgid "Coordinates are float numbers and measured in **points**, where:" +msgstr "" + +#: ../../app3.rst:405 68d51777bcaf4642b1031f9dc960cd29 +msgid "**one point equals 1/72 inches**." +msgstr "" + +#: ../../app3.rst:407 756d6701c9f747b9830a3c7d01111f53 +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 "" + +#: ../../app3.rst:409 50dac25ebb9848779eb3bff43cb168dc +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 "" + +#: ../../app3.rst:412 e630dd4abdb84c43b0315dfb4e77cef8 +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 "" + +#: ../../app3.rst:414 a69f66be61c5411c909b4daed6378f6c +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 "" + +#: ../../app3.rst:425 0358a41bcfde49298c244a781732a9cc +msgid "Footnotes" +msgstr "" + +#: ../../app3.rst:426 2a940ba3cc664855b3afbb56eaefdade +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 "" + +#: ../../app3.rst:428 12291c684340429ebe3dfc12d79126a2 +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 "" + +#: ../../app3.rst:429 85b00d1ae84a4e159e1accdfa5034bdc +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 "" + +#: ../../footer.rst:46 2a972e62f98f45208da9b9eaf1158726 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/app4.mo b/docs/locales/ko/LC_MESSAGES/app4.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/app4.po b/docs/locales/ko/LC_MESSAGES/app4.po new file mode 100644 index 000000000..8b8992c30 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/app4.po @@ -0,0 +1,1103 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 613ca8dee3af4e18aee8824f32d62bd7 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 3fb1879bb92640d0b871ed41914b2b0d +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 5800ad4c0c8f4aea8589a92458f2afe9 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../app4.rst:14 452ac8cb00694e9abeae5f9e25ddebf6 +msgid "Appendix 4: Performance Comparison Methodology" +msgstr "" + +#: ../../app4.rst:16 14ceae9e1c7f4b8f8a0319fbb991a23c +msgid "" +"This article documents the approach to measure :title:`PyMuPDF's` " +"performance and the tools and example files used to do comparisons." +msgstr "" + +#: ../../app4.rst:18 707cf837e27a4490be01f4ff59f3d6e7 +msgid "The following three sections deal with different performance aspects:" +msgstr "" + +#: ../../app4.rst:20 19bf7499dda54ae094b5f694a8ea950f +msgid "" +":ref:`Document Copying` - This includes opening and parsing" +" :title:`PDFs`, then writing them to an output file. Because the same " +"basic activities are also used for joining (merging) :title:`PDFs`, the " +"results also apply to these use cases." +msgstr "" + +#: ../../app4.rst:21 8902b7d3bdf44cdeb0a02ebaeb788364 +msgid "" +":ref:`Text Extraction` - This extracts plain text " +"from :title:`PDFs` and writes it to an output text file." +msgstr "" + +#: ../../app4.rst:22 c9e28e548b684c15b6fc6c839fb268d0 +msgid "" +":ref:`Page Rendering` - This converts |PDF| pages to" +" image files looking identical to the pages. This ability is the basic " +"prerequisite for using a tool in :title:`Python GUI` scripts to scroll " +"through documents. We have chosen a medium-quality (resolution 150 DPI) " +"version." +msgstr "" + +#: ../../app4.rst:24 d8c56f0cbbb4415497587ade558105c9 +msgid "" +"Please note that in all cases the actual speed in dealing with |PDF| " +"structures is not directly measured: instead, the timings also include " +"the durations of writing files to the operating system's file system. " +"This cannot be avoided because tools other than |PyMuPDF| do not offer " +"the option to e.g., separate the image **creation** step from the " +"following step, which **writes** the image into a file." +msgstr "" + +#: ../../app4.rst:26 c95dca0ce6a24b9cbb4e54005da736be +msgid "" +"So all timings documented include a common, OS-oriented base effort. " +"Therefore, performance **differences per tool are actually larger** than " +"the numbers suggest." +msgstr "" + +#: ../../app4.rst:33 5c8d1822086844e0b5b6e63e24468509 +msgid "Files used" +msgstr "" + +#: ../../app4.rst:35 2439752153d84180a23a0e99527d8073 +msgid "" +"A set of eight files is used for the performance testing. With each file " +"we have the following information:" +msgstr "" + +#: ../../app4.rst:37 b31835ad665241aebc8bce9496462a0b +msgid "**Name** of the file and download **link**." +msgstr "" + +#: ../../app4.rst:38 01b0b7ddaf6342b6acea40fc10548232 +msgid "**Size** in bytes." +msgstr "" + +#: ../../app4.rst:39 5cefe438dda843c68dd254d3911dbf09 +msgid "Total number of **pages** in file." +msgstr "" + +#: ../../app4.rst:40 245d148da06d4becad20aec51e1fd3bf +msgid "Total number of bookmarks (**Table of Contents** entries)." +msgstr "" + +#: ../../app4.rst:41 ff1a2993e3254f7686a848f577c48582 +msgid "Total number of **links**." +msgstr "" + +#: ../../app4.rst:42 fb20f6986d82495e9890d8753eb1f276 +msgid "**KB size** per page." +msgstr "" + +#: ../../app4.rst:43 1224aaf0dfde40e1a5c3bc91ef4011ff +msgid "" +"**Textsize per page** is the amount text in the whole file in KB, divided" +" by the number of pages." +msgstr "" + +#: ../../app4.rst:44 8ceb2129883142a09c9d4d383789ed99 +msgid "Any **notes** to generally describe the type of file." +msgstr "" + +#: ../../app4.rst:50 ../../app4.rst:217 ../../app4.rst:295 ../../app4.rst:407 +#: 1b162242a4a54f7dafcae32349b4ed33 930f7531af8b4c2db858b7c3c63f1c57 +#: b459ef8255c34d8bb8f10527b5b13ae0 dd23f2e000014a6ebfbb0df71f4f4550 +msgid "**Name**" +msgstr "" + +#: ../../app4.rst:51 651fc5cd40134ce993378901eaed782d +msgid "**Size (bytes)**" +msgstr "" + +#: ../../app4.rst:52 830651a701b543dd92495f528872e442 +msgid "**Pages**" +msgstr "" + +#: ../../app4.rst:53 ad04afd00ac744a8b7c099d48dcdc0c3 +msgid "**TOC size**" +msgstr "" + +#: ../../app4.rst:54 4286cb4118494c3c97aa7190ce52bbe1 +msgid "**Links**" +msgstr "" + +#: ../../app4.rst:55 dfccc56073594677aaaf87774c57e911 +msgid "**KB/page**" +msgstr "" + +#: ../../app4.rst:56 85615f3120044a3d8f55f0e03fbe8400 +msgid "**Textsize/page**" +msgstr "" + +#: ../../app4.rst:57 2ed30a8ee08e4381913a180905dc4905 +msgid "**Notes**" +msgstr "" + +#: ../../app4.rst:58 81403b323ce2471990b6addcb9d327ed +msgid "`adobe.pdf`" +msgstr "" + +#: ../../app4.rst:59 6dfced8745d04f139c2262964b78cc6c +msgid "32,472,771" +msgstr "" + +#: ../../app4.rst:60 fe260ad1414a49ad820440768eed3e3d +msgid "1,310" +msgstr "" + +#: ../../app4.rst:61 aecc68ede79f49e7a2f4965c4d6d21fb +msgid "794" +msgstr "" + +#: ../../app4.rst:62 19f68930d6b342c8b63282aacdda31ba +msgid "32,096" +msgstr "" + +#: ../../app4.rst:63 3db3ea234e5e4dbfb2cb18370be6526b +msgid "24" +msgstr "" + +#: ../../app4.rst:64 df9644ba42384b7f8df8f1a7f9ac9ca6 +msgid "1,942" +msgstr "" + +#: ../../app4.rst:65 9a0b2a88e8d14cbbaa5e220051bc2cbc +msgid "linearized, many links / bookmarks" +msgstr "" + +#: ../../app4.rst:66 b450a19150554327a540a48702926bd8 +msgid "`artifex-website.pdf`" +msgstr "" + +#: ../../app4.rst:67 f76c22107d8e466e9e9b938d6d2a0c78 +msgid "31,570,732" +msgstr "" + +#: ../../app4.rst:68 121ca9cb77a44f18ae707dc1f62b6828 +msgid "47" +msgstr "" + +#: ../../app4.rst:69 74407cbb0f3b41c8b248f809abe4cf58 +msgid "46" +msgstr "" + +#: ../../app4.rst:70 5a5a12aa804e4285b2c10f71c7b91631 +msgid "2,035" +msgstr "" + +#: ../../app4.rst:71 24d74ed3a9814878b5faa590d81e830c +msgid "656" +msgstr "" + +#: ../../app4.rst:72 7f66bf0a79ca4e199dd2d27aea8b4e85 +msgid "3,538" +msgstr "" + +#: ../../app4.rst:73 d9c710117eb44abca3a888f45c5f6927 +msgid "graphics oriented" +msgstr "" + +#: ../../app4.rst:74 49bc871f44cb4ddbb8d76e2d42b3155b +msgid "`db-systems.pdf`" +msgstr "" + +#: ../../app4.rst:75 1a5f0c78435c4c6389a2acd6bd91cd28 +msgid "29,326,355" +msgstr "" + +#: ../../app4.rst:76 f88d9c860ac246f49fdafd12ed4cc62e +msgid "1,241" +msgstr "" + +#: ../../app4.rst:77 ../../app4.rst:78 ../../app4.rst:117 ../../app4.rst:118 +#: 35384af101fd403ca7b83c7bf3616f8c 48b4936078bd42bab97c666b770093d6 +#: 95853467cdac44e5905fa2aa5f876d2d d6739a13778847ea9c11a2c7b08bc8e0 +msgid "0" +msgstr "" + +#: ../../app4.rst:79 d215b500b52e41cc99c84f24fe3890ec +msgid "23" +msgstr "" + +#: ../../app4.rst:80 a267452974d549de8748e729075a7ac7 +msgid "2,142" +msgstr "" + +#: ../../app4.rst:82 739b78ec9dc84e99917248ee3622b3b2 +msgid "`fontforge.pdf`" +msgstr "" + +#: ../../app4.rst:83 25bd9632f03d4b2293dc4c8a076d05fa +msgid "8,222,384" +msgstr "" + +#: ../../app4.rst:84 b567e447fe8f4e0490f62422a2d9d569 +msgid "214" +msgstr "" + +#: ../../app4.rst:85 75588fdd5beb42a78773ef5340ecc1b6 +msgid "31" +msgstr "" + +#: ../../app4.rst:86 0c2001d30c0f4f07963b9f2e38b0f614 +msgid "242" +msgstr "" + +#: ../../app4.rst:87 d6c479c026b5484881aa9197ffc88c6a +msgid "38" +msgstr "" + +#: ../../app4.rst:88 b9139930537345d284aa9a31220d74c6 +msgid "1,058" +msgstr "" + +#: ../../app4.rst:89 710514866ee04905bf3be46a44b683bf +msgid "mix of text & graphics" +msgstr "" + +#: ../../app4.rst:90 c8a1f504fd3746ba9397d4e3d6b274a6 +msgid "`pandas.pdf`" +msgstr "" + +#: ../../app4.rst:91 8642835dbf5d4db99a8c4fbca766a571 +msgid "10,585,962" +msgstr "" + +#: ../../app4.rst:92 7b996090e65044c584d83ea7acda42f0 +msgid "3,071" +msgstr "" + +#: ../../app4.rst:93 ff6fdff8d91a417583e2686c79665e97 +msgid "536" +msgstr "" + +#: ../../app4.rst:94 6916626a7d824adfb4b1475a9d0f3eff +msgid "16,554" +msgstr "" + +#: ../../app4.rst:95 bc0f680837344f68abbb708440827a84 +msgid "3" +msgstr "" + +#: ../../app4.rst:96 bba11b24685d4d8c94deaa5e074e4bcb +msgid "1,539" +msgstr "" + +#: ../../app4.rst:97 40e65f53ef05490796b7a4aec9577410 +msgid "many pages" +msgstr "" + +#: ../../app4.rst:98 e798c081493c4df095c56e07a50ca1b9 +msgid "`pymupdf.pdf`" +msgstr "" + +#: ../../app4.rst:99 9648e1df46804af395045a08a83de9fe +msgid "6,805,176" +msgstr "" + +#: ../../app4.rst:100 7f91a57f8a7847b4bd037094e00faa9a +msgid "478" +msgstr "" + +#: ../../app4.rst:101 226cdbfe630949eab54a52805869a6e7 +msgid "276" +msgstr "" + +#: ../../app4.rst:102 f30b492e535c41748786f54e00e90cb8 +msgid "5,277" +msgstr "" + +#: ../../app4.rst:103 2701b877b410466cb1ae77dd1a2a1e90 +msgid "14" +msgstr "" + +#: ../../app4.rst:104 bcc9d1ef612c4e95b015b553232ad25a +msgid "1,937" +msgstr "" + +#: ../../app4.rst:105 befe3de8428943f2b55fa3759ae8cbd0 +msgid "text oriented" +msgstr "" + +#: ../../app4.rst:106 1fde26c15a56401eb49e5db71f99cc25 +msgid "`pythonbook.pdf`" +msgstr "" + +#: ../../app4.rst:107 abde300eb8244d23875981f20afdf6ce +msgid "9,983,856" +msgstr "" + +#: ../../app4.rst:108 f236fb08a1834afeae13579d512733ba +msgid "669" +msgstr "" + +#: ../../app4.rst:109 d7c1691699514ea893a728c74016301d +msgid "198" +msgstr "" + +#: ../../app4.rst:110 4af5202a95164d698a13772fb60448a8 +msgid "1,953" +msgstr "" + +#: ../../app4.rst:111 b4141c07d695403e87cedbe5de5863dd +msgid "15" +msgstr "" + +#: ../../app4.rst:112 72ae61bf2a1b4a52904b806afc0ff6f5 +msgid "1,929" +msgstr "" + +#: ../../app4.rst:114 bb501706366848629a8491cb70e58ec9 +msgid "`sample-50-MB-pdf-file.pdf`" +msgstr "" + +#: ../../app4.rst:115 542f200f9bbd48719bb31d4cf6850f3b +msgid "52,521,850" +msgstr "" + +#: ../../app4.rst:116 d0db6531af4e488ca48300bebf47246e +msgid "1" +msgstr "" + +#: ../../app4.rst:119 b80b76ee70584a34977f50acbea06df8 +msgid "51,291" +msgstr "" + +#: ../../app4.rst:120 52119106cfb04a489c5842fab93cd2c5 +msgid "23,860" +msgstr "" + +#: ../../app4.rst:121 513e58b0ccf547edaf2e1b8d4fc09391 +msgid "single page, graphics oriented, large file size" +msgstr "" + +#: ../../app4.rst:127 b1d1466a4d4f46ee97f9c0c14866930d +msgid "" +"**adobe.pdf** and **pymupdf.pdf** are clearly text oriented, **artifex-" +"website.pdf** and **sample-50-MB-pdf-file.pdf** are graphics oriented. " +"Other files are a mix of both." +msgstr "" + +#: ../../app4.rst:131 a46db6b46cbd476c9aa08e828b1899a9 +msgid "Tools used" +msgstr "" + +#: ../../app4.rst:133 eff071706abe45db98dc970ba599955e +msgid "" +"In each section, the same fixed set of |PDF| files is being processed by " +"a set of tools. The set of tools used per performance aspect however " +"varies, depending on the supported tool features." +msgstr "" + +#: ../../app4.rst:135 e7ff37e32cbd4cdc993c645e7658d227 +msgid "" +"All tools are either platform independent, or at least can run on both, " +":title:`Windows` and :title:`Unix` / :title:`Linux`." +msgstr "" + +#: ../../app4.rst:141 7507beef7859479e94a8fa9cce614373 +msgid "**Tool**" +msgstr "" + +#: ../../app4.rst:142 7e5c5082ee244cc1850b389fa76d162b +msgid "**Description**" +msgstr "" + +#: ../../app4.rst:143 ../../app4.rst:172 ../../app4.rst:218 ../../app4.rst:296 +#: ../../app4.rst:368 ../../app4.rst:408 51f2639233354454a2be6c8cf943caae +#: 75b83e125f444081ac46f5b513ffb434 78511b7a3ae24d7ba242cb9f012c945c +#: cf82339face445409b1cb2230b1cf737 e2f4e337aa6f46ff9d1a57a84bd40231 +#: ea0496359fd4419f88ac295b9d5a7c35 +msgid "|PyMuPDF|" +msgstr "" + +#: ../../app4.rst:144 265dd2b9a51a4748ae710d0a7781b16c +msgid "The tool of this manual." +msgstr "" + +#: ../../app4.rst:145 0d7018f04c2d4b8b91e09d879a94c489 +msgid "PDFrw_" +msgstr "" + +#: ../../app4.rst:146 1871dfbb59ed44559c1143b8f664ab3b +msgid "" +"A pure :title:`Python` tool, being used by :title:`rst2pdf`, has " +"interface to :title:`ReportLab`." +msgstr "" + +#: ../../app4.rst:147 db3dc67db0384a4caf25ec3159cc9e8c +msgid "PyPDF2_" +msgstr "" + +#: ../../app4.rst:148 f00f0472c11846dd8a6d1cb0ac0237bf +msgid "A pure :title:`Python` tool with a large function set." +msgstr "" + +#: ../../app4.rst:149 719bb221eb5b4d34a21a977bfddfa966 +msgid "PDFMiner_" +msgstr "" + +#: ../../app4.rst:150 7c679bd2a294494c86c754ffaddb5cf3 +msgid "A pure :title:`Python` to extract text and other data from |PDF|." +msgstr "" + +#: ../../app4.rst:151 ef3100ff8d5049009f9896ca197346c5 +msgid "XPDF_" +msgstr "" + +#: ../../app4.rst:152 89c9c95eccee414e90d74c494ef8fa0c +msgid "A command line utility with multiple functions." +msgstr "" + +#: ../../app4.rst:153 3ac8573211c94c1996a3f39372a5c365 +msgid "PikePDF_" +msgstr "" + +#: ../../app4.rst:154 ad269cc30d2f43dbbd44e72f1cfa24e9 +msgid "" +"A :title:`Python` package similar to :title:`PDFrw`, but based on " +":title:`C++` library :title:`QPDF`." +msgstr "" + +#: ../../app4.rst:155 f7a4dbe832784e9c80a9bec19efd26e4 +msgid "PDF2JPG_" +msgstr "" + +#: ../../app4.rst:156 2354f030ddfb48028e2dc5dcdca588bf +msgid "" +"A :title:`Python` package specialized on rendering |PDF| pages to " +":title:`JPG` images." +msgstr "" + +#: ../../app4.rst:164 20ec5781714e43979415d31bca6e4d91 +msgid "Copying / Joining / Merging" +msgstr "" + +#: ../../app4.rst:166 24e5ae35daf74ce5af40e0c2fc945067 +msgid "" +"How fast is a |PDF| file read and its content parsed for further " +"processing? The sheer parsing performance cannot directly be compared, " +"because batch utilities always execute a requested task completely, in " +"one go, front to end. :title:`PDFrw` too, has a *lazy* strategy for " +"parsing, meaning it only parses those parts of a document that are " +"required in any moment." +msgstr "" + +#: ../../app4.rst:168 9030ee0b64da48c4b6ba3563a6fe7da8 +msgid "" +"To find an answer to the question, we therefore measure the time to copy " +"a |PDF| file to an output file with each tool, and do nothing else." +msgstr "" + +#: ../../app4.rst:170 ../../app4.rst:365 75c4e9d6b0f94276ad4a46e7ca064b4c +#: d29245da53b44d4c931cdfd53a686bcb +msgid "These are the :title:`Python` commands for how each tool is used:" +msgstr "" + +#: ../../app4.rst:180 40554a7aac2c4529a5cea2cb201adc33 +msgid ":title:`PDFrw`" +msgstr "" + +#: ../../app4.rst:190 2027a14c030c4dafa9b213b842921038 +msgid ":title:`PikePDF`" +msgstr "" + +#: ../../app4.rst:198 0554b1918f0442929d092d7d1aa8c6db +msgid ":title:`PyPDF2`" +msgstr "" + +#: ../../app4.rst:210 ../../app4.rst:288 ../../app4.rst:399 +#: 0cc77d5085aa42b092a9d28c9f9b93d1 2151ed94f39e42489d9407b0a8ac0ccb +#: 8e952a6e6d1d46499282ea93f770529c +msgid "**Observations**" +msgstr "" + +#: ../../app4.rst:212 ../../app4.rst:290 ../../app4.rst:401 +#: 190b33a2a1264d58900d557c11876da4 2995f439d6cb495da4b80e31d49c47a7 +#: 536ccc62e0b8415f92d295558b4e0e5b +msgid "" +"These are our run time findings in **seconds** along with a base rate " +"summary compared to |PyMuPDF|:" +msgstr "" + +#: ../../app4.rst:219 a51de26a6852481a8e70a53e96187379 +msgid "**PDFrw**" +msgstr "" + +#: ../../app4.rst:220 933434ca403749c0a4f630ffec63fbf0 +msgid "**PikePDF**" +msgstr "" + +#: ../../app4.rst:221 ../../app4.rst:298 93a77920ab2f426481a1d5037c17135f +#: a5fda08d4d34464ba81569732331f63c +msgid "**PyPDF2**" +msgstr "" + +#: ../../app4.rst:222 ../../app4.rst:300 ../../app4.rst:411 +#: 5544726c03fb43a2afaa6c61866bba6a 5ade818fb72c4831ad8691c9cf811c78 +#: af7a989e3b5144c1a3f9d080bc5aea03 +msgid "adobe.pdf" +msgstr "" + +#: ../../app4.rst:223 aea85b36f9074c44ac0e480e9feedf9a +msgid "1.75" +msgstr "" + +#: ../../app4.rst:224 1d5d21531c014823b5bd62db7bc0135e +msgid "5.15" +msgstr "" + +#: ../../app4.rst:225 29285cb95fbc41c7b91b01dda4181c2d +msgid "22.37" +msgstr "" + +#: ../../app4.rst:226 68b490eb621f4f4eb992f5e5eb9baff5 +msgid "374.05" +msgstr "" + +#: ../../app4.rst:227 ../../app4.rst:305 ../../app4.rst:415 +#: 00246b4fa6bb413aaecfac538ed32b19 20452d17f0ed4d98ab1d92047ddb55a7 +#: dc633929adc3417d9c90d8be2bf90613 +msgid "artifex-website.pdf" +msgstr "" + +#: ../../app4.rst:228 3e3d60bb5a06431f8423b7fa72008e45 +msgid "0.26" +msgstr "" + +#: ../../app4.rst:229 ../../app4.rst:243 2ce822ddafa04eacb665dcdd8bb34f25 +#: a0ca8a854b9c428a9257c8dbf52b4590 +msgid "0.38" +msgstr "" + +#: ../../app4.rst:230 63e990f7145f451dac1615b7274b980f +msgid "1.41" +msgstr "" + +#: ../../app4.rst:231 e5e9ce25649c4a7e87d9cfed1d4c1f0a +msgid "2.81" +msgstr "" + +#: ../../app4.rst:232 ../../app4.rst:310 ../../app4.rst:419 +#: 1abbb91fd2804bff9cc59d244e834dbe 25ef69a136294635ad82241de488155a +#: 5c166f9365fb4824bbe295d262a4c695 +msgid "db-systems.pdf" +msgstr "" + +#: ../../app4.rst:233 dfa580f9d5494073b720002293a6fa82 +msgid "0.15" +msgstr "" + +#: ../../app4.rst:234 0cabf0e69a2e40a8920e44b780f064b6 +msgid "0.8" +msgstr "" + +#: ../../app4.rst:235 1b45bb6fb5384d11863727a44bc772d5 +msgid "1.68" +msgstr "" + +#: ../../app4.rst:236 482704feedf44b168160d5c6bf430e89 +msgid "2.46" +msgstr "" + +#: ../../app4.rst:237 ../../app4.rst:315 ../../app4.rst:423 +#: 28cf3f5a2e644968b1b497d836968533 619f6293468e4a5b9414def4ae968f6a +#: a54e51785c104643876df4110d7f60fb +msgid "fontforge.pdf" +msgstr "" + +#: ../../app4.rst:238 80142473274946b2b76110266168f6d2 +msgid "0.09" +msgstr "" + +#: ../../app4.rst:239 fdeb0d08542549ad94e6f5ff68f639e1 +msgid "0.14" +msgstr "" + +#: ../../app4.rst:240 fa056a25dbc24ce8bbb7206ac25c05ae +msgid "0.28" +msgstr "" + +#: ../../app4.rst:241 ../../app4.rst:308 4bafecabe76b409d8db8ac377d7f7ea9 +#: 5206ddcbea3c43ab869b569ff3172038 +msgid "1.1" +msgstr "" + +#: ../../app4.rst:242 ../../app4.rst:320 ../../app4.rst:427 +#: 283144343a0949668598a967aab1deef 2bf82f9384f34930a1debf451276e32e +#: f64eb5e532a04104b1c1491cdd231638 +msgid "pandas.pdf" +msgstr "" + +#: ../../app4.rst:244 c0f38df2b0cd4082acfb9b25f340902a +msgid "2.21" +msgstr "" + +#: ../../app4.rst:245 9594837d5d2848c6bd8fc40d23f432db +msgid "2.73" +msgstr "" + +#: ../../app4.rst:246 d52e2689ad7047df8dcab08a5b7c5417 +msgid "70.3" +msgstr "" + +#: ../../app4.rst:247 ../../app4.rst:325 ../../app4.rst:431 +#: 6adf778936ea4b1bac0e0112c0f3d53a ca7e5c0d37d843a5a058022264ef4838 +#: df12e19f983a4715a95aa5e1c4259037 +msgid "pymupdf.pdf" +msgstr "" + +#: ../../app4.rst:248 50c706b1c6eb4ba783605c298016ffd9 +msgid "0.11" +msgstr "" + +#: ../../app4.rst:249 e6316c498d704c12a367a5598ce1dfa4 +msgid "0.56" +msgstr "" + +#: ../../app4.rst:250 c9b02d42498945f39b746d182ceef93f +msgid "0.83" +msgstr "" + +#: ../../app4.rst:251 a866f67188d54c70912cd3e19c35d760 +msgid "6.05" +msgstr "" + +#: ../../app4.rst:252 ../../app4.rst:330 ../../app4.rst:435 +#: 2d6911f21f034fdb99236c6da0e5c8fc ca646d19848a4024b113f84e29e5f016 +#: ddf7610dcd7d4c2085d801cc70dfa46b +msgid "pythonbook.pdf" +msgstr "" + +#: ../../app4.rst:253 6f0fe33ac23b4d0baf5009363bc75c5b +msgid "0.19" +msgstr "" + +#: ../../app4.rst:254 680b3cbd12934d07830711fdf35d8c00 +msgid "1.2" +msgstr "" + +#: ../../app4.rst:255 fbbf220c922f4a53ab16e06f0c5042ee +msgid "1.34" +msgstr "" + +#: ../../app4.rst:256 e94988b7dbc347c09260a2b8a03dd461 +msgid "37.19" +msgstr "" + +#: ../../app4.rst:257 ../../app4.rst:335 ../../app4.rst:439 +#: a9d4ceb80d2c42e0b7bf4c22de480e63 aa346b20c8c14103ad508c92238ca1a8 +#: b0d041755ac04554a0acc858c79f4516 +msgid "sample-50-MB-pdf-file.pdf" +msgstr "" + +#: ../../app4.rst:258 bcc275d36bf04161834713d6d786e356 +msgid "0.12" +msgstr "" + +#: ../../app4.rst:259 cb526a85171a4e5c924b02fae9f5cff1 +msgid "0.1" +msgstr "" + +#: ../../app4.rst:260 57e608621ccb4404a586b7361b537020 +msgid "2.93" +msgstr "" + +#: ../../app4.rst:261 e280682fa0f048f7bf4a842026ed388c +msgid "0.08" +msgstr "" + +#: ../../app4.rst:262 ../../app4.rst:340 ../../app4.rst:443 +#: 147889494a0342d39c8d7bc589e777a1 9dde60202b154d62bb5dc5da1b8f3eb4 +#: dcdc53ddede34633afbb78b8cb474780 +msgid "**Total**" +msgstr "" + +#: ../../app4.rst:263 482ff9ef77514db0a3105d43540c6a79 +msgid "**3.05**" +msgstr "" + +#: ../../app4.rst:264 2f728a892b10493f83a211bbe00dc8c2 +msgid "**10.54**" +msgstr "" + +#: ../../app4.rst:265 8a1310321389468b8eeb7302181de22f +msgid "**33.57**" +msgstr "" + +#: ../../app4.rst:266 8979d1c755ab4d5480e0e543908439ab +msgid "**494.04**" +msgstr "" + +#: ../../app4.rst:272 ../../app4.rst:350 ../../app4.rst:451 +#: 39d408ac310b429a9f4630de549c0218 b1cedcb976d7467cb64b4a03e059059f +#: d60f7ab07be042e9ac4f315656e9d80e +msgid "**Rate compared to PyMuPDF**" +msgstr "" + +#: ../../app4.rst:273 ../../app4.rst:351 ../../app4.rst:452 +#: 5fe241f7da6f4f1287b2ef598e77e63a a1eabf390faf4118b9fbf1c23bcaa970 +#: ca4532068a8749cebe70ecd680077cff +msgid ":green-color:`1.0`" +msgstr "" + +#: ../../app4.rst:274 4bebef049b2147ec9412439a06413b0c +msgid ":orange-color:`3.5`" +msgstr "" + +#: ../../app4.rst:275 bd4c733cfe544784bfac89860db9068e +msgid ":orange-color:`11.0`" +msgstr "" + +#: ../../app4.rst:276 65a3d5ea7ac842238d61067451bc62b9 +msgid ":red-color:`162`" +msgstr "" + +#: ../../app4.rst:283 1cd4fd60fed8493aa0180e6aced6f887 +msgid "Text Extraction" +msgstr "" + +#: ../../app4.rst:285 43ec059052ef49239504e79c59d48792 +msgid "" +"The following table shows plain text extraction durations. All tools have" +" been used with their most basic functionality - i.e. no layout re-" +"arrangements, etc." +msgstr "" + +#: ../../app4.rst:297 ../../app4.rst:409 493d81649a04476aa7e157c8155e8816 +#: c7a4bc884d3e4b39ab49157d277af5e6 +msgid "**XPDF**" +msgstr "" + +#: ../../app4.rst:299 55447e13f7cc43598fde158caf1adfbf +msgid "**PDFMiner**" +msgstr "" + +#: ../../app4.rst:301 71ff39c17b764e46a725f342a082f147 +msgid "2.01" +msgstr "" + +#: ../../app4.rst:302 fce895fddd9544e4b84bbc464bc5d54a +msgid "6.19" +msgstr "" + +#: ../../app4.rst:303 11d7da5f489c4d5c8f08904e64d58b85 +msgid "22.2" +msgstr "" + +#: ../../app4.rst:304 7a43720209f2409891b79edcb6feebc8 +msgid "49.15" +msgstr "" + +#: ../../app4.rst:306 86da45bd435e4e2fac8f537ac4dc33c6 +msgid "0.18" +msgstr "" + +#: ../../app4.rst:307 9f329e56a13e4944887ba215aadd1c50 +msgid "0.3" +msgstr "" + +#: ../../app4.rst:309 412c97e97e644221bec455efaa9ee865 +msgid "4.06" +msgstr "" + +#: ../../app4.rst:311 3211848a2c7541c4b98431190bc82a51 +msgid "1.57" +msgstr "" + +#: ../../app4.rst:312 7888933412524d77b9710d7c349a6ad8 +msgid "4.26" +msgstr "" + +#: ../../app4.rst:313 78ac7fd7df42471aa6a3ac3bb3b13b4f +msgid "25.75" +msgstr "" + +#: ../../app4.rst:314 fbda6230814e4005b8c47d862c0364c4 +msgid "42.19" +msgstr "" + +#: ../../app4.rst:316 05c924d4dc1e4feb955b06be14c5e7e7 +msgid "0.24" +msgstr "" + +#: ../../app4.rst:317 eff929019a05485ab7d424571a631738 +msgid "0.47" +msgstr "" + +#: ../../app4.rst:318 d732cff1f2af4741b0cf005af6150933 +msgid "2.69" +msgstr "" + +#: ../../app4.rst:319 d717cab56bbc403fa2d497180e09afac +msgid "4.2" +msgstr "" + +#: ../../app4.rst:321 6f2bb2d646834a28b637393c83fbe756 +msgid "2.41" +msgstr "" + +#: ../../app4.rst:322 297e3c2d5f354ca6a5f331312ada2eb9 +msgid "10.54" +msgstr "" + +#: ../../app4.rst:323 e7aaee8a7d6d46738acd6d36fd3a1a2b +msgid "25.38" +msgstr "" + +#: ../../app4.rst:324 22691134bd124353bac936a15dc23c7d +msgid "76.56" +msgstr "" + +#: ../../app4.rst:326 beb7e60f87f44b00941524176f83234b +msgid "0.49" +msgstr "" + +#: ../../app4.rst:327 f1987f898ec44e2eae7731378a36d310 +msgid "2.34" +msgstr "" + +#: ../../app4.rst:328 ef61cf5a5cb042fdbb4db7ffb338d866 +msgid "6.44" +msgstr "" + +#: ../../app4.rst:329 22b1b07b84d542088f18ea5fb77ba24f +msgid "13.55" +msgstr "" + +#: ../../app4.rst:331 0832e852468f492a9ecffee3998af4f2 +msgid "0.84" +msgstr "" + +#: ../../app4.rst:332 3a29ccef7ff44af0bbc12374a5983e38 +msgid "2.88" +msgstr "" + +#: ../../app4.rst:333 be833e3e8322409ba592cc7891bfd260 +msgid "9.28" +msgstr "" + +#: ../../app4.rst:334 fb41a43110744ce98af7eee58740fb05 +msgid "24.27" +msgstr "" + +#: ../../app4.rst:336 81ca0ec15e384df3998d921f54470058 +msgid "0.27" +msgstr "" + +#: ../../app4.rst:337 fe5e6af169c04db999c3003913c8ad6e +msgid "0.44" +msgstr "" + +#: ../../app4.rst:338 9220f3fa950e47009211a9f69d405117 +msgid "8.8" +msgstr "" + +#: ../../app4.rst:339 a9338bdb413148689255f70fbeead632 +msgid "13.29" +msgstr "" + +#: ../../app4.rst:341 978aa50a4e73446ca6444f7911b99137 +msgid "**8.01**" +msgstr "" + +#: ../../app4.rst:342 c80a0bb069c644938e92b9da92483efa +msgid "**27.42**" +msgstr "" + +#: ../../app4.rst:343 3aff3e7279a74a2b90e22e23593c2795 +msgid "**101.64**" +msgstr "" + +#: ../../app4.rst:344 4fe0e88c92fd44c7af9bc827ce45422c +msgid "**227.27**" +msgstr "" + +#: ../../app4.rst:352 63cc33b2658d4c45b2ba8cbe943bd222 +msgid ":orange-color:`3.42`" +msgstr "" + +#: ../../app4.rst:353 0533ece4f3e14f7c96cb711e9d3b3fbf +msgid ":orange-color:`12.69`" +msgstr "" + +#: ../../app4.rst:354 1a614a3651e448a9911ab3eedaac4d42 +msgid ":red-color:`28.37`" +msgstr "" + +#: ../../app4.rst:360 00b592ac57f64130a8654c00830f154e +msgid "Page Rendering" +msgstr "" + +#: ../../app4.rst:362 f5119aaf183e4f4eb483e9c337c88488 +msgid "" +"We have tested rendering speed of |PyMuPDF| against :title:`pdf2jpg` and " +":title:`XPDF` at a resolution of 150 DPI," +msgstr "" + +#: ../../app4.rst:382 02cf04dabcd44b9998f6e4e25bbca5ee +msgid ":title:`XPDF`" +msgstr "" + +#: ../../app4.rst:389 90770272b10c416e84826a42e1c212cc +msgid ":title:`PDF2JPG`" +msgstr "" + +#: ../../app4.rst:410 c717d43cc70e48e98e87edcf403d8b03 +msgid "**PDF2JPG**" +msgstr "" + +#: ../../app4.rst:412 da606418caee4a099a285d88fdee4bcb +msgid "51.33" +msgstr "" + +#: ../../app4.rst:413 d42b2bb121b54a939a97fd7c82e60632 +msgid "98.16" +msgstr "" + +#: ../../app4.rst:414 97e1e5c516654f909a445d6158df2fef +msgid "75.71" +msgstr "" + +#: ../../app4.rst:416 c1a00e6812494e27a1e5513c5dcb6515 +msgid "26.35" +msgstr "" + +#: ../../app4.rst:417 525f071275c846daaccf5b9ad9472c35 +msgid "51.28" +msgstr "" + +#: ../../app4.rst:418 dab5c30a6ab14679837b7c79be1baef5 +msgid "54.11" +msgstr "" + +#: ../../app4.rst:420 6347c08651eb4dfc963827edfe3c2dfa +msgid "84.59" +msgstr "" + +#: ../../app4.rst:421 9ff9e6ea2bff413e96b7948a6cdd6c2d +msgid "143.16" +msgstr "" + +#: ../../app4.rst:422 088e57b2eec94b3bbbf1258987f8c664 +msgid "405.22" +msgstr "" + +#: ../../app4.rst:424 b3cf9ee794b34bad8b6dbfe411512b74 +msgid "12.23" +msgstr "" + +#: ../../app4.rst:425 d51b92890c7442579c00adf23e97f279 +msgid "22.18" +msgstr "" + +#: ../../app4.rst:426 3f7b41851cdf4ca493af2c869d25b055 +msgid "20.14" +msgstr "" + +#: ../../app4.rst:428 226831c9dbf7408f9116226b0776dff5 +msgid "138.74" +msgstr "" + +#: ../../app4.rst:429 c0ff7f066efe4586859fcd60916d8201 +msgid "241.67" +msgstr "" + +#: ../../app4.rst:430 c348dd9ee91b448aad5e075ccac79cbc +msgid "202.06" +msgstr "" + +#: ../../app4.rst:432 5ac66403bf9a49aead460327d7c44f45 +msgid "22.35" +msgstr "" + +#: ../../app4.rst:433 9173e53f1f69448a83d553ded32bb807 +msgid "39.11" +msgstr "" + +#: ../../app4.rst:434 89611809173d45ae8ac3a4f7089ee725 +msgid "33.38" +msgstr "" + +#: ../../app4.rst:436 533943d891b74af491898743b80b7be3 +msgid "30.44" +msgstr "" + +#: ../../app4.rst:437 940113c92ada4f3fabf8932a0ec143e4 +msgid "49.12" +msgstr "" + +#: ../../app4.rst:438 0698ab345b994705a75ccfaddd9670fa +msgid "55.68" +msgstr "" + +#: ../../app4.rst:440 022d36dd2a304fca9d994fd8aebb4229 +msgid "1.01" +msgstr "" + +#: ../../app4.rst:441 fb7736a3bc7c4ca29f4fce61faf4b788 +msgid "1.32" +msgstr "" + +#: ../../app4.rst:442 dabe4ab239f1407f95b68ad8269a33af +msgid "5.22" +msgstr "" + +#: ../../app4.rst:444 23819f93562342a8b546fc017760f1c2 +msgid "**367.04**" +msgstr "" + +#: ../../app4.rst:445 1616c1fe2bca4ff2a048b9308c0f246e +msgid "**646**" +msgstr "" + +#: ../../app4.rst:446 5bdba98414414ff8ac81e89e0e221e71 +msgid "**851.52**" +msgstr "" + +#: ../../app4.rst:453 d581d4e1ac754c2b9e0172b86aeb3edf +msgid ":orange-color:`1.76`" +msgstr "" + +#: ../../app4.rst:454 5a2a9f45f5b14d398c5c1891f3ed968c +msgid ":red-color:`2.32`" +msgstr "" + +#: ../../footer.rst:46 6f6b539ff34a4640ab8af9e5deaeacb0 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/archive-class.mo b/docs/locales/ko/LC_MESSAGES/archive-class.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/archive-class.po b/docs/locales/ko/LC_MESSAGES/archive-class.po new file mode 100644 index 000000000..547af409f --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/archive-class.po @@ -0,0 +1,266 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 7172941a6af740c8a8c939eeb12aab6f +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 7f24f6f0cd5c48f7b5ef12886e7d3dc2 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 2ce7ac460eea4d7fa274674358f58cb3 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../archive-class.rst:7 4da66911f34043f4b535f63a47cba447 +msgid "Archive" +msgstr "" + +#: ../../archive-class.rst:9 1dbbb103178b492a8c9bf5b05d021272 +msgid "New in v1.21.0" +msgstr "" + +#: ../../archive-class.rst:11 1e7ee6091313470abe0dcc5c8168a504 +msgid "" +"This class represents a generalization of file folders and container " +"files like ZIP and TAR archives. Archives allow accessing arbitrary " +"collections of file folders, ZIP / TAR files and single binary data " +"elements as if they all were part of one hierarchical tree of folders." +msgstr "" + +#: ../../archive-class.rst:13 bc799244f4a54577b1ab6043ddcef969 +msgid "" +"In PyMuPDF, archives are currently only used by :ref:`Story` objects to " +"specify where to look for fonts, images and other resources." +msgstr "" + +#: ../../archive-class.rst:16 733307d2ac0c48d5943722db88b66ca3 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../archive-class.rst:16 067a02c3d0eb402e87db2ab8a79cec6a +msgid "**Short Description**" +msgstr "" + +#: ../../archive-class.rst:18 917e00b33c264053b763260480ae3cb0 +msgid ":meth:`Archive.add`" +msgstr "" + +#: ../../archive-class.rst:18 5758685d282946d0b76452d8a3d35bf1 +msgid "add new data to the archive" +msgstr "" + +#: ../../archive-class.rst:19 96e83a97ca3a4e0d99f2eba9b8dd862c +msgid ":meth:`Archive.has_entry`" +msgstr "" + +#: ../../archive-class.rst:19 e29b1efc996f43298b3e2c9fd91522a4 +msgid "check if given name is a member" +msgstr "" + +#: ../../archive-class.rst:20 7e3fbbcec68b4db0b0e06433c33177c1 +msgid ":meth:`Archive.read_entry`" +msgstr "" + +#: ../../archive-class.rst:20 4cbe9ceb4c8744f69ad9da999cf33862 +msgid "read the data given by the name" +msgstr "" + +#: ../../archive-class.rst:21 40716b5223004d5ba100ffb57f39be5a +msgid ":attr:`Archive.entry_list`" +msgstr "" + +#: ../../archive-class.rst:21 c6a15b6d228b4c37a9d06697f7992694 +msgid "list[dict] of archive items" +msgstr "" + +#: ../../archive-class.rst:24 d96c6d9573704987968f177a3bf7a3ad +msgid "**Class API**" +msgstr "" + +#: ../../archive-class.rst:30 d4ac6bed829f43429a56efde53217fce +msgid "Creates a new archive. Without parameters, an empty archive is created." +msgstr "" + +#: ../../archive-class.rst:32 ce56c558cdfd467bb88c2e5a14edbc06 +msgid "If provided, `content` may be one of the following:" +msgstr "" + +#: ../../archive-class.rst:34 b4730a481ea84967b6cb58ae9fe5ba6e +msgid "another Archive: the archive is being made a sub-archive of the new one." +msgstr "" + +#: ../../archive-class.rst:36 5b42f6018b314dbca0ec8d6039baf4d7 +msgid "" +"a string: this must be the name of a local folder or file. `pathlib.Path`" +" objects are also supported." +msgstr "" + +#: ../../archive-class.rst:38 619d605a712947c2a548c8e110f21c7d +msgid "" +"A **folder** will be converted to a sub-archive, so its files (and any " +"sub-folders) can be accessed by their names." +msgstr "" + +#: ../../archive-class.rst:39 4cd647737643458d9e392abbb2da302c +msgid "" +"A **file** will be read with mode `\"rb\"` and these binary data (a " +"`bytes` object) be treated as a single-member sub-archive. In this case, " +"the `path` parameter is **mandatory** and should be the member name under" +" which this item can be found / retrieved." +msgstr "" + +#: ../../archive-class.rst:41 6b1e54d53ee048bebe0aa7b13aa24963 +msgid "" +"a `zipfile.ZipFile` or `tarfile.TarFile` object: Will be added as a sub-" +"archive." +msgstr "" + +#: ../../archive-class.rst:43 3e15f440e05843dc80023b21dca6c101 +msgid "" +"a Python binary object (`bytes`, `bytearray`, `io.BytesIO`): this will " +"add a single-member sub-archive. In this case, the `path` parameter is " +"**mandatory** and should be the member name under which this item can be " +"found / retrieved." +msgstr "" + +#: ../../archive-class.rst:45 0d17f917bfaf4703827752f14540c1b0 +msgid "" +"a tuple `(data, name)`: This will add a single-member sub-archive with " +"the member name ``name``. ``data`` may be a Python binary object or a " +"local file name (in which case its binary file content is used). Use this" +" format if you need to specify `path`." +msgstr "" + +#: ../../archive-class.rst:47 1597cdc3f8254638bf2cdf9bc2309574 +msgid "" +"a Python sequence: This is a convenience format to specify any " +"combination of the above." +msgstr "" + +#: ../../archive-class.rst:49 4988de212ed54833a49be91d2d82d21d +msgid "If provided, `path` must be a string." +msgstr "" + +#: ../../archive-class.rst:51 f90f1ba75dbd4b94be663d3d1a03ce47 +msgid "" +"If `content` is either binary data or a file name, this parameter is " +"mandatory and must be the name under which the data can be found." +msgstr "" + +#: ../../archive-class.rst:53 2b3e0332d6b34ab1ad0dd16b095eadfe +msgid "" +"Otherwise this parameter is optional. It can be used to simulate a folder" +" name or a mount point, under which this sub-archive's elements can be " +"found. For example this specification `Archive((data, \"name\"), " +"\"path\")` means that `data` will be found using the element name " +"`\"path/name\"`. Similar is true for other sub-archives: to retrieve " +"members of a ZIP sub-archive, their names must be prefixed with " +"`\"path/\"`. The main purpose of this parameter probably is to " +"differentiate between duplicate names." +msgstr "" + +#: ../../archive-class.rst:55 5faa270a9a8e4b1e9cb54ca0b81bec9e +msgid "" +"If duplicate entry names exist in the archive, always the last entry with" +" that name will be found / retrieved. During archive creation, or " +"appending more data to an archive (see :meth:`Archive.add`) no check for " +"duplicates will be made. Use the `path` parameter to prevent this from " +"happening." +msgstr "" + +#: ../../archive-class.rst:59 8f8691f33cb24edf8cf015488e88618a +msgid "" +"Append a sub-archive. The meaning of the parameters are exactly the same " +"as explained above. Of course, parameter `content` is not optional here." +msgstr "" + +#: ../../archive-class.rst:63 d7d9c4ee5eb44c0b95fe42f32102c97a +msgid "Checks whether an entry exists in any of the sub-archives." +msgstr "" + +#: ../../archive-class.rst 5f8828ec2f374296878d56b8bda07845 +#: 8a109a840a9f48f69f8ad6d589cd57ea +msgid "Parameters" +msgstr "" + +#: ../../archive-class.rst:65 ../../archive-class.rst:73 +#: 9a6f2dbd567f43d2bfe08e06091dcabb ed415071f9ec4041bffb1dcf6075f18d +msgid "" +"The fully qualified name of the entry. So must include any `path` prefix " +"under which the entry's sub-archive has been added." +msgstr "" + +#: ../../archive-class.rst 77dc263426c34dc88d2d354f2137f0bd +#: d7ec8d61f7784b09a3583b2731f89a03 +msgid "Returns" +msgstr "" + +#: ../../archive-class.rst:67 82d8554eda284d14be8c15dcd79fb3ca +msgid "`True` or `False`." +msgstr "" + +#: ../../archive-class.rst:71 a873f11522bd47f09f770c162ec439ca +msgid "Retrieve the data of an entry." +msgstr "" + +#: ../../archive-class.rst:75 1dcd801a861448d2bc31a0ae9ab2b9ca +msgid "" +"The binary data (`bytes`) of the entry. If not found, an exception is " +"raised." +msgstr "" + +#: ../../archive-class.rst:79 7e31c0d4b2874e7aa8dd5ae7daa91341 +msgid "" +"A list of the archive's sub-archives. Each list item is a dictionary with" +" the following keys:" +msgstr "" + +#: ../../archive-class.rst:81 dc6567d9e6a4485690cf0a5f6fb09b30 +msgid "`entries` -- a list of (top-level) entry names in this sub-archive." +msgstr "" + +#: ../../archive-class.rst:82 78d2dbe9caeb4e6b9ae6de4d14d95e52 +msgid "" +"`fmt` -- the format of the sub-archive. This is one of the strings " +"\"dir\" (file folder), \"zip\" (ZIP archive), \"tar\" (TAR archive), or " +"\"tree\" for single binary entries or file content." +msgstr "" + +#: ../../archive-class.rst:83 8934885694024d44ac1f04c95acb8fae +msgid "" +"`path` -- the value of the `path` parameter under which this sub-archive " +"was added." +msgstr "" + +#: ../../archive-class.rst:85 9bd80fbd40594e6da4b7541250d79442 +msgid "**Example:**" +msgstr "" + +#: ../../footer.rst:46 23b6293c2dc24cbd87c6de2cd2f05c0c +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/changes.mo b/docs/locales/ko/LC_MESSAGES/changes.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/changes.po b/docs/locales/ko/LC_MESSAGES/changes.po new file mode 100644 index 000000000..8c15845ee --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/changes.po @@ -0,0 +1,8652 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 4b2125667c71405ca651d2f4f33203ce +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 7a5706b2ba4a4c5f9ab33e6a435e268e +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 232846e89a9147f6abd57e2c5299b488 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../../changes.txt:2 4cd69e5be9794686a140129e41fc4b95 +msgid "Change Log" +msgstr "" + +#: ../../../changes.txt:5 1505d60909e543b7809db6369fa0db8f +msgid "**Changes in version 1.26.7**" +msgstr "" + +#: ../../../changes.txt:7 ../../../changes.txt:43 ../../../changes.txt:73 +#: ../../../changes.txt:95 ../../../changes.txt:117 ../../../changes.txt:146 +#: ../../../changes.txt:171 ../../../changes.txt:192 ../../../changes.txt:212 +#: ../../../changes.txt:236 ../../../changes.txt:285 ../../../changes.txt:335 +#: ../../../changes.txt:366 ../../../changes.txt:387 ../../../changes.txt:423 +#: ../../../changes.txt:443 ../../../changes.txt:457 ../../../changes.txt:485 +#: ../../../changes.txt:507 ../../../changes.txt:530 ../../../changes.txt:556 +#: ../../../changes.txt:589 ../../../changes.txt:611 ../../../changes.txt:625 +#: ../../../changes.txt:642 ../../../changes.txt:664 ../../../changes.txt:673 +#: ../../../changes.txt:686 ../../../changes.txt:698 ../../../changes.txt:715 +#: ../../../changes.txt:728 ../../../changes.txt:741 ../../../changes.txt:754 +#: ../../../changes.txt:766 ../../../changes.txt:778 ../../../changes.txt:801 +#: ../../../changes.txt:833 ../../../changes.txt:859 ../../../changes.txt:899 +#: ../../../changes.txt:926 ../../../changes.txt:948 ../../../changes.txt:1200 +#: ../../../changes.txt:1334 049a26e13bb94229a79a69f81f7b5fbe +#: 1f22271ed0b840efae8df95b0ee00fae 223eca2249444ff9ab2190c5225660fc +#: 287da62560f74d3dab59fced5784a79f 289b8aaf54c746ecad54ca30175d6572 +#: 2a7d7c2ae08a4078a26a35d98478462f 2d7b554ad4614d72aa34334544b1ad84 +#: 3b0c2a7d2f02465d8a435c84b848e950 41d0c2d1b9dc4b92aaee342c76e8f6aa +#: 4347b8c87fab492bb324cd690a0a5039 45a493f9bbb34d5d86014fc796fc7e5f +#: 4ac9e175442d4fed9094777114001d05 5294b3baa70340d4b0683ea893cb8227 +#: 55180f0a4ad14d779385728b45523412 56b9abeb67244e568154b0999908dc54 +#: 590720763c4f4b6e944a5b6e9261c46a 5b96e63e430649e09364197f6640d348 +#: 66a4fb9f871646b39fd2935322ff2bd7 681b44b2d00a428f95bec75570a9bd96 +#: 6d3500e7906d4b5b9d5a852686c41f03 77caed4c8cf543c284393db2214dc425 +#: 7930c830c16148e18e377994a974f7f6 8020c55d92a04b68b29f9b5c839563d9 +#: 8dd9e915003d41dbbf42283bf55adefe 959e7f541c2147928cc800dcf3f54fa8 +#: 980c2a259af24fc599c154fab471a6d4 9eeadae797794ba39efcdfe7dd30ea96 +#: a1f33ce2da084e65927b1037ec5431c9 a5748cc98e13464f8d5833fb09a584c6 +#: b003035ab22a486d8191c52df2f18d51 b1ac215bbe134f3e83fc2c3f1315274d +#: b322fd43be9f42fcb134129f551f03d7 b8505854ea4346dca195196c3c729c8e +#: baa47c681a164ab190fd710ab752c1e5 be5cdf51439747e9856bf7da70502394 +#: c18708d565ec49bb9b6597c6e4746708 cbe526883f0a481b9e4b1e4727d250df +#: d23ff8de34d7483c8f2da67985f1837a e53406c760874e3fba6776cc13ce71c4 +#: ea5c09729ad243d1b44e29edb73a3242 f176ccdd28d44b75bfd267fa28648397 +#: f325e778302b4997b940c6c03dc96ae8 fab1e85d6fcb480fba201316c8c6be02 +msgid "Other:" +msgstr "" + +#: ../../../changes.txt:9 eef8efb3b6884f43ada21c5e779231cb +msgid "" +"Retrospectively mark `4756 " +"`_ as fixed in 1.26.6." +msgstr "" + +#: ../../../changes.txt:10 64ed70e9271b4853b276b73970b50572 +msgid "" +"Improved safety of `pymupdf embed-extract`. This now refuses to write to " +"an existing file or outside current directory, unless `-output` or new " +"flag `-unsafe` is specified." +msgstr "" + +#: ../../../changes.txt:15 f3d0c45b85df4b2e8952e6a2da3389b7 +msgid "**Changes in version 1.26.6** (2025-11-05)" +msgstr "" + +#: ../../../changes.txt:17 f42bfa1ba64243c3bbb367df56f3ac08 +msgid "Use MuPDF-1.26.11." +msgstr "" + +#: ../../../changes.txt:19 50c8518a04f0461d92243888e708323a +msgid "Supported Python versions are now 3.10-3.14." +msgstr "" + +#: ../../../changes.txt:21 ../../../changes.txt:35 ../../../changes.txt:59 +#: ../../../changes.txt:87 ../../../changes.txt:110 ../../../changes.txt:132 +#: ../../../changes.txt:164 ../../../changes.txt:183 ../../../changes.txt:203 +#: ../../../changes.txt:226 ../../../changes.txt:249 ../../../changes.txt:259 +#: ../../../changes.txt:274 ../../../changes.txt:294 ../../../changes.txt:304 +#: ../../../changes.txt:321 ../../../changes.txt:347 ../../../changes.txt:380 +#: ../../../changes.txt:396 ../../../changes.txt:406 ../../../changes.txt:438 +#: ../../../changes.txt:475 ../../../changes.txt:502 ../../../changes.txt:524 +#: ../../../changes.txt:541 ../../../changes.txt:584 ../../../changes.txt:605 +#: ../../../changes.txt:619 ../../../changes.txt:632 ../../../changes.txt:658 +#: ../../../changes.txt:671 07987b0a21a147d98b3290a64ffa8043 +#: 1f57395ac4ea4c218653cd455c477ae4 21d647e365934565aea69ef24f0cd8f9 +#: 262f48050967468c829ffe26a450be4b 4cef11a8719641dbb922f8aa1573a9c6 +#: 4e96e411a9d04f3394926ff7a164019f 4f462e8fc6bf487c991f26164fb54c0f +#: 502470bd29ee4a5f910f9b6c271e6371 5fac41e37738489fa8375e221307b3be +#: 7d9274f30a6d48e080212ec423122787 7fb6e1f0f0a04c768954b3b7aa03e2f1 +#: 8b358fae935541dd89ec020f9bdb1b41 8dbc5997591e480a88aef01fc75581db +#: 94c9d89ad8d543cb833db162ba31fde4 9b23f29736354e1d8ed1668fd1f388bf +#: 9e14b9596afa45b3a83e357fbda360af a2ea1d3f01d945e0b1771aa1b29caa0c +#: a53b73a9f82648878f41f1760093e351 ad004edc4dba484fadde2289418127fe +#: b70bd970a9944857a416f7ca0c9b1c6b bbd89b8b6e3544ab875a3a6e44ebe68d +#: c08f485ce1c34a11ba134e40626b051f d727b39943064157a040eb5ba843fe41 +#: d855c86985754c219d04723faa8e0b48 db0403d789674d7aae95b0d2af2dd802 +#: e0509078460b456b924d980a899d39ea e182efb4eac34ad8bac7dece1504bf23 +#: e2459e41e6d84b248942175137234803 e9129fdd854d4510beb02b78caf662e2 +#: f752594e63ac42a1bc09a307033985cb f9a85782009445d9b72155a12a8ec8ed +msgid "Fixed issues:" +msgstr "" + +#: ../../../changes.txt:23 ae92f1fe5caf4bf1b49a2d9b55379d9c +msgid "" +"**Fixed** `4699 `_: " +"cannot find ExtGState resource" +msgstr "" + +#: ../../../changes.txt:24 22f8d06dd888459aa4f9fe1120d92dc8 +msgid "" +"**Fixed** `4712 `_: Crash" +" with \"corrupted double-linked list\"" +msgstr "" + +#: ../../../changes.txt:25 ccf146dfc96a47d3bab7d6102699c73d +msgid "" +"**Fixed** `4720 `_: " +"Memory leaking in rewrite_images?" +msgstr "" + +#: ../../../changes.txt:26 0f08a4cb18fe493ca72344c67c165f1d +msgid "" +"**Fixed** `4742 `_: " +"'Rect' object has no attribute 'get_area'" +msgstr "" + +#: ../../../changes.txt:27 e4563a3e5c574da8970663d208888aa7 +msgid "" +"**Fixed** `4746 `_: " +"Document.__init__() got an unexpected keyword argument 'encoding'" +msgstr "" + +#: ../../../changes.txt:28 2b1ad6590a63426bb7c3dc1b135aaf86 +msgid "" +"**Fixed** `4756 `_: swig " +"--version doesn't work in all versions of swig; -version should be used " +"instead" +msgstr "" + +#: ../../../changes.txt:31 f4b0a46bedf54bc695a3074e319c3da7 +msgid "**Changes in version 1.26.5** (2025-10-10)" +msgstr "" + +#: ../../../changes.txt:33 25fffdf714bf48d695db8e6ab1a28c67 +msgid "Use MuPDF-1.26.10." +msgstr "" + +#: ../../../changes.txt:37 c88a8d28e397405f93d8379d00535d27 +msgid "" +"**Fixed** `2883 `_: " +"Improve the Python type annotations for fitz_new" +msgstr "" + +#: ../../../changes.txt:38 df91056120a24c1caa9c0b77f3fb1984 +msgid "" +"**Fixed** `4507 `_: Bugs " +"in pyodide" +msgstr "" + +#: ../../../changes.txt:39 70703777c2fa401bbc683f91ad94d06f +msgid "" +"**Fixed** `4613 `_: Thai " +"and number blocks are not auto-scaled and get wrong hyphen when using in " +"insert_htmlbox" +msgstr "" + +#: ../../../changes.txt:40 c88bc69f0f244a52ad6f890499799047 +msgid "" +"**Fixed** `4700 `_: " +"pymupdf.open() processes .zip file without raising" +msgstr "" + +#: ../../../changes.txt:41 e323399440274525b34c54f4dec39093 +msgid "" +"**Fixed** `4716 `_: " +"Problems with unreadable characters" +msgstr "" + +#: ../../../changes.txt:45 3abefa34a28e4adf8e2457613ce56b45 +msgid "Supported Python versions are now 3.9-3.14." +msgstr "" + +#: ../../../changes.txt:46 16783112fa05425cb0e149b83c62e932 +msgid "" +"We now define all class methods explicitly instead of with dynamic " +"assignment; this improves type hints." +msgstr "" + +#: ../../../changes.txt:47 26f54231a095480aa0f42247a5a89ef4 +msgid "Removed `pymupdf.utils.Shape` class, was duplicate of `pymupdf.Shape`." +msgstr "" + +#: ../../../changes.txt:48 7ecda4cd98c54e6a9b9bf91163eff14b +msgid "Allow use of cibuildwheel to build and test on Pyodide." +msgstr "" + +#: ../../../changes.txt:49 93135916c58248c283baf01e7d053cd0 +msgid "Fixed various Pyodide bugs." +msgstr "" + +#: ../../../changes.txt:50 7ecc6290f1054757b942bc4fb105d1eb +msgid "" +"In documentation, added section about Linux wheels and glibc " +"compatibility." +msgstr "" + +#: ../../../changes.txt:51 92f2c3d79a944460985276d312eca3e4 +msgid "Improved documentation of pymupdf.open()'s arg." +msgstr "" + +#: ../../../changes.txt:52 562bb006d36840cdb5aadf8ddd466486 +msgid "" +"Retrospectively mark `4544 " +"`_ as fixed in 1.26.4." +msgstr "" + +#: ../../../changes.txt:55 b67d98ad96244427984fe137baacd5a1 +msgid "**Changes in version 1.26.4 (2025-08-25)**" +msgstr "" + +#: ../../../changes.txt:57 6d0728e9c0d245e69d0197ef60d55ff6 +msgid "Use MuPDF-1.26.7." +msgstr "" + +#: ../../../changes.txt:61 dae25b5e67ed40678841767ca82960df +msgid "" +"**Fixed** `3806 `_: pdf " +"to image rendering ignore optional content offs" +msgstr "" + +#: ../../../changes.txt:62 d27cf6acd0904ba3854fc86e793e1b0e +msgid "" +"**Fixed** `4388 `_: " +"Incorrect PixMap from page due to cached data from other PDF" +msgstr "" + +#: ../../../changes.txt:63 2485533a6f1c4ceeab94a3a74ea0040a +msgid "" +"**Fixed** `4457 `_: Wrong" +" characters displayed after font subsetting (w/ native method)" +msgstr "" + +#: ../../../changes.txt:64 ../../../changes.txt:89 +#: 48034320908941b78280338d69474453 582145c0201942e4a97e4a6715f82496 +msgid "" +"**Fixed** `4462 `_: " +"delete_pages() does not accept a single int" +msgstr "" + +#: ../../../changes.txt:65 ee57c3dd80db447388f6e8ac0d049adb +msgid "" +"**Fixed** `4533 `_: Open " +"PDF error segmentation fault" +msgstr "" + +#: ../../../changes.txt:66 96cc9c5c43084b5e9cf0162eb38b2dbf +msgid "" +"**Fixed** `4544 `_: About" +" pdf_clip_page" +msgstr "" + +#: ../../../changes.txt:67 ed6dabd36ac34857a630542ffd191c57 +msgid "" +"**Fixed** `4565 `_: MacOS" +" uses Tesseract and not Tesseract-OCR" +msgstr "" + +#: ../../../changes.txt:68 fb88b0c8cbc84095bf2500c9a32f50ec +msgid "" +"**Fixed** `4571 `_: " +"Broken merged pdfs." +msgstr "" + +#: ../../../changes.txt:69 ef751fe8798b41eaaf64e166e23768fa +msgid "" +"**Fixed** `4590 `_: " +"TypeError in utils.py scrub(): annot.update_file(buffer=...) is invalid" +msgstr "" + +#: ../../../changes.txt:70 3b8c0e208f554eaebac0ea6abcd8b46d +msgid "" +"**Fixed** `4614 `_: " +"Intercept bad widgets when inserting to another PDF" +msgstr "" + +#: ../../../changes.txt:71 02cfdc76ab714494bf079b968391320e +msgid "" +"**Fixed** `4639 `_: " +"pymupdf.mupdf.FzErrorGeneric: code=1: Director error: : 'JM_new_bbox_device_Device' object has no attribute " +"'layer_name'" +msgstr "" + +#: ../../../changes.txt:75 38712224dd5544e7a462aaeb1e2e304b +msgid "" +"Check that #4392 `Segfault when running with pytest and -Werror` is fixed" +" if PyMuPDF is built with swig>=4.4." +msgstr "" + +#: ../../../changes.txt:76 57972c515886453a932d8eac12c3b328 +msgid "Add `Page.clip_to_rect()`." +msgstr "" + +#: ../../../changes.txt:77 586a552aa4af4245b5e12d417ae1f42d +msgid "Improved search for Tesseract data." +msgstr "" + +#: ../../../changes.txt:78 9f280d1da9b04eedae2eb7fa58bf1973 +msgid "Retrospectively mark #4496 as fixed in 1.26.1." +msgstr "" + +#: ../../../changes.txt:79 3fde7874083c4911a6dd9d05ee3f3e7c +msgid "Retrospectively mark #4503 as fixed in 1.26.3." +msgstr "" + +#: ../../../changes.txt:80 e25d10cd0c8b485b998c07889f2c2b02 +msgid "Added experimental support for Graal." +msgstr "" + +#: ../../../changes.txt:83 a4c9e90997aa40e39b6e88a47283df1f +msgid "**Changes in version 1.26.3 (2025-07-02)**" +msgstr "" + +#: ../../../changes.txt:85 f2e0c9ebfbc8436a90fbc5210c2d61c5 +msgid "Use MuPDF-1.26.3." +msgstr "" + +#: ../../../changes.txt:90 88b28524dc38400e86ede8dfd69bda83 +msgid "" +"**Fixed** `4503 `_: " +"Undetected character styles" +msgstr "" + +#: ../../../changes.txt:91 82e1019dfacf4e889e4e2708d5c2ab67 +msgid "" +"**Fixed** `4527 `_: " +"Rect.intersects() is much slower than necessary" +msgstr "" + +#: ../../../changes.txt:92 3195a73537bc44b6be38e2643857a820 +msgid "" +"**Fixed** `4564 `_: " +"Possible encoding issue in PDF metadata" +msgstr "" + +#: ../../../changes.txt:93 ed811f813c204c15a71a72b02b3fc7f7 +msgid "" +"**Fixed** `4575 `_: Bug " +"with IRect contains method" +msgstr "" + +#: ../../../changes.txt:97 80940db1fc98463084fb0536e2a74c75 +msgid "Class Shape is now available as pymupdf.Shape." +msgstr "" + +#: ../../../changes.txt:98 8d3cbad84fc7406db910769a9e0c49cd +msgid "Added table cell markdown support." +msgstr "" + +#: ../../../changes.txt:101 979c685df84c433a99b2ce9a6192393e +msgid "**Changes in version 1.26.2**" +msgstr "" + +#: ../../../changes.txt:103 6253d76480234ecb99ef69856e2e4d7c +msgid "[Skipped.]" +msgstr "" + +#: ../../../changes.txt:106 696d62b448d042d7ac4c9ae344c9357e +msgid "**Changes in version 1.26.1 (2025-06-11)**" +msgstr "" + +#: ../../../changes.txt:108 97fd68cacc0d460ea6453d0f75969b06 +msgid "Use MuPDF-1.26.2." +msgstr "" + +#: ../../../changes.txt:112 f027534ba7294a6e8c8c22e759448323 +msgid "" +"**Fixed** `4520 `_: " +"show_pdf_page does not like empty pages created by new_page" +msgstr "" + +#: ../../../changes.txt:113 065f392247ae490ab226f1104d666ddc +msgid "" +"**Fixed** `4524 `_: " +"fitz.get_text ignores 'pages' kwarg" +msgstr "" + +#: ../../../changes.txt:114 ../../../changes.txt:137 +#: 1c6997f9c6d7494ba9b55c63784e99cf c6a83f4370734e42a4528f25014f39ab +msgid "" +"**Fixed** `4412 `_: " +"Regression? Spurious error? in insert_pdf in v1.25.4" +msgstr "" + +#: ../../../changes.txt:115 bb0e76951378470a8d36dd42e908266d +msgid "" +"**Fixed** `4496 `_: " +"pymupdf4llm with pymupdfpro" +msgstr "" + +#: ../../../changes.txt:119 87089d7b25b9490a95ea7686681487c8 +msgid "" +"Partial fix for `4503 `_:" +" Undetected character styles" +msgstr "" + +#: ../../../changes.txt:120 ce6c18a243de4e81b72c53d4fefd499e +msgid "" +"New method `Document.rewrite_images()`, useful for reducing file size, " +"changing image formats, or converting color spaces." +msgstr "" + +#: ../../../changes.txt:121 0a3a89d09fd3461ca2a27fcca8f185ed +msgid "`Page.get_text()`: restrict positional args to match docs." +msgstr "" + +#: ../../../changes.txt:122 1a528cc8a62e43639f658f1f709590c9 +msgid "Removed bogus definition of class `Shape`." +msgstr "" + +#: ../../../changes.txt:123 552b40dd8819435dad4a76eae858df20 +msgid "" +"Removed release date from module, docs and changelog. * " +"`pymupdf.pymupdf_date` and `pymupdf.VersionDate` are now both None. * " +"They will be removed in a future release." +msgstr "" + +#: ../../../changes.txt:128 158c863781294c5c93e9b0a8c8e1f847 +msgid "**Changes in version 1.26.0 (2025-05-22)**" +msgstr "" + +#: ../../../changes.txt:130 18567733eef64ab68965ed498958d670 +msgid "Use MuPDF-1.26.1." +msgstr "" + +#: ../../../changes.txt:134 4ea8e6ad2e414e978386c33aad8021d5 +msgid "" +"**Fixed** `4324 `_: " +"cluster_drawings() fails to cluster horizontal and vertical thin lines" +msgstr "" + +#: ../../../changes.txt:135 17554e87f7084cacb19d789d4694754f +msgid "" +"**Fixed** `4363 `_: " +"Trouble with searching" +msgstr "" + +#: ../../../changes.txt:136 2cb8333bfa3948d0a1e1df290b275159 +msgid "" +"**Fixed** `4404 `_: " +"IndexError in page.get_links()" +msgstr "" + +#: ../../../changes.txt:138 3fb86dc38b76431f8fa289ed24574576 +msgid "" +"**Fixed** `4423 `_: " +"pymupdf.mupdf.FzErrorFormat: code=7: cannot find object in xref error " +"encountered after version 1.25.3" +msgstr "" + +#: ../../../changes.txt:139 e4d0ca8ddf164f08b449dac3a6fa04fa +msgid "" +"**Fixed** `4435 `_: " +"get_pixmap method stuck on one page" +msgstr "" + +#: ../../../changes.txt:140 73d115f25755496680f56c79674a6351 +msgid "" +"**Fixed** `4439 `_: New " +"Xml class from data does not work - bug in code" +msgstr "" + +#: ../../../changes.txt:141 b25d62127fea4feaa5d944e835c2a666 +msgid "" +"**Fixed** `4445 `_: " +"Broken XREF table incorrectly repaired" +msgstr "" + +#: ../../../changes.txt:142 a0a2ed6ac1354febb9da6afd02bc9b42 +msgid "" +"**Fixed** `4447 `_: " +"Stroke color of annotations cannot be correctly set" +msgstr "" + +#: ../../../changes.txt:143 616298c000ad48cdbc628ef4cdd172d8 +msgid "" +"**Fixed** `4479 `_: " +"set_layer_ui_config() toggles all layers rather than just one" +msgstr "" + +#: ../../../changes.txt:144 b15ec1ffa6f0419c8b5503c50587840c +msgid "" +"**Fixed** `4505 `_: " +"Follow Widget flag values up its parent structure" +msgstr "" + +#: ../../../changes.txt:148 7b7ea93f30ca49f88b45b05c08ecf10f +msgid "" +"Partial fixed for `4457 " +"`_: Wrong characters " +"displayed after font subsetting (w/ native method)" +msgstr "" + +#: ../../../changes.txt:149 b0ae6f4b0bc24e12bd0071f22e599e11 +msgid "Support image stamp annotations." +msgstr "" + +#: ../../../changes.txt:150 f5f7682cfc6c4abba06ebd809edf0795 +msgid "Support recoloring pages." +msgstr "" + +#: ../../../changes.txt:151 01a95f3b08944431b06a9d2e99e50bdf +msgid "" +"Added example of using Django's file storage API to open files with " +"pymupdf." +msgstr "" + +#: ../../../changes.txt:152 1ea4d799a2714c90a3ad74a4f03f1ed8 +msgid "" +"Clarified FreeText annotation color options. We now raise an exception if" +" an attempt is made to set attributes that can not be supported." +msgstr "" + +#: ../../../changes.txt:154 856acd8f3343442bb8ee7254e8b8d062 +msgid "Fixed potential segv in Pixmap.is_unicolor()." +msgstr "" + +#: ../../../changes.txt:155 90dbf6ef976a4d76a799854a5aa774dc +msgid "" +"Added runtime assert that that PyMuPDF and MuPDF were built with " +"compatible NDEBUG settings (related to `4390 " +"`_)." +msgstr "" + +#: ../../../changes.txt:157 0862256c36d142c48444aab07763f645 +msgid "Simplified handling of filename/filetype when opening documents." +msgstr "" + +#: ../../../changes.txt:158 5e85ed11581b46daaf1a09b8a22dcccb +msgid "" +"Removed PDF linearization support. * Calls to `Document.save()` with " +"`linear` set to true will now raise an exception. * See " +"https://artifex.com/blog/mupdf-removes-linearisation for more " +"information." +msgstr "" + +#: ../../../changes.txt:162 c7ce1a9bb27545978d6d1d9fed1a4524 +msgid "**Changes in version 1.25.5 (2025-03-31)**" +msgstr "" + +#: ../../../changes.txt:166 9548bbf70ba9469e8b935a45f29643ed +msgid "" +"**Fixed** `4372 `_: Text " +"insertion fails due to missing /Resources object" +msgstr "" + +#: ../../../changes.txt:167 f76e7622a9d7433db1b7b82bc7156145 +msgid "" +"**Fixed** `4400 `_: " +"Infinite loop in fill_textbox" +msgstr "" + +#: ../../../changes.txt:168 82f33cb8a6d34f62b854eca17a8c4254 +msgid "" +"**Fixed** `4403 `_: " +"Unable to get_text() - layer/clip nesting too deep" +msgstr "" + +#: ../../../changes.txt:169 84b7b13060424773820d4994525080dc +msgid "" +"**Fixed** `4415 `_: PDF " +"page is mirrored, origin is at bottom-left" +msgstr "" + +#: ../../../changes.txt:173 74a4792d6a8244eb9dcae4beb4bfe0ee +msgid "Use MuPDF-1.25.6." +msgstr "" + +#: ../../../changes.txt:174 d248e14b8c1a4e3fab6235c3cf5c614c +msgid "Fixed MuPDF SEGV on MacOS with particular fonts." +msgstr "" + +#: ../../../changes.txt:175 82ea9eb171144077a7870ae7a0b9eeb7 +msgid "Fixed `Annot.get_textpage()`'s `clip` arg." +msgstr "" + +#: ../../../changes.txt:176 2fccc9761609452e9d10dac746b11059 +msgid "Fixed Python-3.14 (pre-release) build error." +msgstr "" + +#: ../../../changes.txt:179 2fbd0061abcd475fafe6ef6a570e0d7a +msgid "**Changes in version 1.25.4 (2025-03-14)**" +msgstr "" + +#: ../../../changes.txt:181 9fa9e7eec7694807a4577e93e3fdb54e +msgid "Use MuPDF-1.25.5." +msgstr "" + +#: ../../../changes.txt:185 8f7a4be455684495af9c8e17de5ad09d +msgid "" +"**Fixed** `4079 `_: " +"Unexpected result for apply_redactions()" +msgstr "" + +#: ../../../changes.txt:186 6d876027b2104b01830654bbbae308e9 +msgid "" +"**Fixed** `4224 `_: MuPDF" +" error: format error: negative code in 1d faxd" +msgstr "" + +#: ../../../changes.txt:187 b7b89a62c35d4608987e21ec0f356173 +msgid "" +"**Fixed** `4303 `_: " +"page.get_image_info() returns outdated cached results after replacing " +"image" +msgstr "" + +#: ../../../changes.txt:188 8b5c375bcfc24c81a1ab34fdfe2e3f87 +msgid "" +"**Fixed** `4309 `_: " +"FzErrorFormat Error When Deleting First Page" +msgstr "" + +#: ../../../changes.txt:189 33ebf7622662470e98f52b0e0681e4b1 +msgid "" +"**Fixed** `4336 `_: Major" +" Performance Regression: pix.color_count is 150x slower in version 1.25.3" +" compared to 1.23.8" +msgstr "" + +#: ../../../changes.txt:190 159061230d824914a6d19ad6d73eeb7c +msgid "" +"**Fixed** `4341 `_: " +"Invalid label retrieval when /Kids is an array of multiple /Nums" +msgstr "" + +#: ../../../changes.txt:194 37e49743f93f41d9bf5880142941c864 +msgid "Fixed handling of duplicate widget names when joining PDFs (PR #4347)." +msgstr "" + +#: ../../../changes.txt:195 0cac0025172c4dd5baf122fc076da58e +msgid "Improved Pyodide build." +msgstr "" + +#: ../../../changes.txt:196 638ca0a27dd548cfa15a4095bd238671 +msgid "" +"Avoid SWIG-related build errors with Python-3.13 by disabling " +"PY_LIMITED_API." +msgstr "" + +#: ../../../changes.txt:199 24df824cc0ed4dcaa55266a462308f72 +msgid "**Changes in version 1.25.3 (2025-02-06)**" +msgstr "" + +#: ../../../changes.txt:201 86fbdb38e3ab475cb35bce8474a0517d +msgid "Use MuPDF-1.25.4." +msgstr "" + +#: ../../../changes.txt:205 11404e9f065f46d48c17de3eb0a56b4c +msgid "" +"**Fixed** `4139 `_: Text " +"color numbers change between 1.24.14 and 1.25.0" +msgstr "" + +#: ../../../changes.txt:206 f54ac127378c40efbea689f95f729a3d +msgid "" +"**Fixed** `4141 `_: Some " +"insertion methods fails for pages without a /Resources object" +msgstr "" + +#: ../../../changes.txt:207 1debce8303bb430aaf3c754c31d4e54a +msgid "" +"**Fixed** `4180 `_: " +"Search problems" +msgstr "" + +#: ../../../changes.txt:208 a43078709b894315ab60ab8c8077d919 +msgid "" +"**Fixed** `4182 `_: Text " +"coordinate extraction error" +msgstr "" + +#: ../../../changes.txt:209 2aa654ea699a4754864254e38097fcf4 +msgid "" +"**Fixed** `4245 `_: " +"Highlighting issue distorted on recent versions" +msgstr "" + +#: ../../../changes.txt:210 568c972326294ecab31a4378aee8aef3 +msgid "" +"**Fixed** `4254 `_: " +"add_freetext_annot is drawing text outside the annotation box" +msgstr "" + +#: ../../../changes.txt:214 3b1e13a8a53f41568994b6b10d784dd4 +msgid "" +"In annotations: * Added support for subtype FreeTextCallout. * Added " +"support for rich text." +msgstr "" + +#: ../../../changes.txt:217 20ad825019bc421aa9fa359d4c2cf2b9 +msgid "" +"Added miter_limit arg to insert_text*() to allow suppression of spikes " +"caused by long miters." +msgstr "" + +#: ../../../changes.txt:218 d8f3a5bd962d420482fbab442a82a337 +msgid "Add Widget Support to `Document.insert_pdf()`." +msgstr "" + +#: ../../../changes.txt:219 b25922bccda743b4a462eff61aa2da32 +msgid "Add `bibi` to span dicts." +msgstr "" + +#: ../../../changes.txt:220 16e4de5888954261941fe67d4f618949 +msgid "Add `synthetic' to char dict." +msgstr "" + +#: ../../../changes.txt:221 ../../../changes.txt:963 +#: 2b958160bd134274b90ba5bd456e66c5 43a26b5aad0e4fe485acf6a41282f421 +msgid "Fixed Pyodide builds." +msgstr "" + +#: ../../../changes.txt:224 f65069a7584b4f128fa5b7cc86d526ab +msgid "**Changes in version 1.25.2 (2025-01-17)**" +msgstr "" + +#: ../../../changes.txt:228 af70ce0fc1a74152b86dbd49d309fdb9 +msgid "" +"**Fixed** `4055 `_: " +"\"Yes\" for all checkboxes does not work for all PDF rendering engines." +msgstr "" + +#: ../../../changes.txt:229 4410d36a900d450c97588b75ccb21628 +msgid "" +"**Fixed** `4155 `_: " +"samples_mv is unsafe" +msgstr "" + +#: ../../../changes.txt:230 61173d64746b46848303884ad4f7c6c2 +msgid "" +"**Fixed** `4162 `_: Got " +"AttributeError, when tried to add Signature field" +msgstr "" + +#: ../../../changes.txt:231 ade3c33dc1bc4fe5a6c9c79ad335b6ca +msgid "" +"**Fixed** `4186 `_: " +"Incorrect handling of JPEG with color space CMYK image extraction" +msgstr "" + +#: ../../../changes.txt:232 b0f948dd2aec4196879b796a7083ce66 +msgid "" +"**Fixed** `4195 `_: " +"Pixmaps that are inverted and have an alpha channel are not rendered " +"properly" +msgstr "" + +#: ../../../changes.txt:233 f983aaf8e72b40329ef333edb032482d +msgid "" +"**Fixed** `4225 `_: " +"pixmap.pil_save() fails due to colorspace definition" +msgstr "" + +#: ../../../changes.txt:234 b9f784c7a8e347f0839af27a4aee0957 +msgid "" +"**Fixed** `4232 `_: " +"Incorrect Font style and Size" +msgstr "" + +#: ../../../changes.txt:238 46a2de9de8a84001a08386537fad1cb6 +msgid "Use Python's built-in glyphname <> unicode conversion." +msgstr "" + +#: ../../../changes.txt:239 98aaf3100ca44c3eb46b239c085990ce +msgid "Improve speed of pixmap color inversion." +msgstr "" + +#: ../../../changes.txt:240 761c1030615e4b9f8837990276cdd4aa +msgid "" +"Add new `char_flags` member to span dictionary, for example allows " +"detection of invisible text." +msgstr "" + +#: ../../../changes.txt:241 26863d989def4dd6b375f90f90ac816a +msgid "Detect image masks in TextPage output." +msgstr "" + +#: ../../../changes.txt:242 c106eb1531f34065ac0918f8967d868c +msgid "Added `Pixmap.pil_image()`." +msgstr "" + +#: ../../../changes.txt:245 f2917761f4f342b2b20eb583e456ac86 +msgid "**Changes in version 1.25.1 (2024-12-11)**" +msgstr "" + +#: ../../../changes.txt:247 5d2a2817fc15439e8cff5b48d2993934 +msgid "Use MuPDF-1.25.2." +msgstr "" + +#: ../../../changes.txt:251 1aa29c8b332c4f06b69b0f5c16618fed +msgid "" +"**Fixed** `4125 `_: " +"memory leak while convert Pixmap's colorspace" +msgstr "" + +#: ../../../changes.txt:252 6619cbba93b64266b96af9f2fb26333c +msgid "" +"**Fixed** `4034 `_: " +"Possible regression in pdf cleaning during save." +msgstr "" + +#: ../../../changes.txt:255 54ab8ad1ec3246298a9019b2227a46d8 +msgid "**Changes in version 1.25.0 (2024-12-05)**" +msgstr "" + +#: ../../../changes.txt:257 0a8714b7f18e45878f7b252f8af10ade +msgid "Use MuPDF-1.25.1." +msgstr "" + +#: ../../../changes.txt:261 686ebe75128d4be9b77bba0ddb563a43 +msgid "" +"**Fixed** `4026 `_: " +"page.get_text('blocks') output two piece of very similar text with " +"different bbox" +msgstr "" + +#: ../../../changes.txt:262 efd9decd0d2a4a319ebd830a2c8531bd +msgid "" +"**Fixed** `4004 `_: " +"Segmentation Fault When Updating PDF Form Field Value" +msgstr "" + +#: ../../../changes.txt:263 ebdb384bd8e4477d80b10127b014145b +msgid "" +"**Fixed** `3887 `_: " +"Subset Fonts problem using Fallback Font" +msgstr "" + +#: ../../../changes.txt:264 e63e1845d9fb45198345afaff67f30e1 +msgid "" +"**Fixed** `3886 `_: " +"Another issue with destroying PDF when inserting html" +msgstr "" + +#: ../../../changes.txt:265 50adbcf9a18043e68b84aa9286698361 +msgid "" +"**Fixed** `3751 `_: " +"apply_redactions causes part of the page content to be hidden / " +"transparent" +msgstr "" + +#: ../../../changes.txt:270 09e722df03fa4db18c4e0da832e997f7 +msgid "**Changes in version 1.24.14 (2024-11-19)**" +msgstr "" + +#: ../../../changes.txt:272 cb8ebd6072bd4e11919080375887f166 +msgid "Use MuPDF-1.24.11." +msgstr "" + +#: ../../../changes.txt:276 50b663786ee641cb9687580189342f8d +msgid "" +"**Fixed** `3448 `_: " +"get_pixmap function removes the table and leaves just the content behind" +msgstr "" + +#: ../../../changes.txt:277 54321b37a7f9420b8567fbb6d1e426a4 +msgid "" +"**Fixed** `3758 `_: Got " +"\"malloc(): unaligned tcache chunk detected Aborted (core dumped)\" while" +" using add_redact_annot/apply_redactions" +msgstr "" + +#: ../../../changes.txt:278 296dc7d294134423a31f7b6d74f2aeaf +msgid "" +"**Fixed** `3813 `_: " +"Stories: Ordered list count broken with nested unordered list" +msgstr "" + +#: ../../../changes.txt:279 2215310351ca46c1a25a514468a905a8 +msgid "" +"**Fixed** `3933 `_: " +"font.valid_codepoints() - malfunction" +msgstr "" + +#: ../../../changes.txt:280 ff0631f5b7054df4b90b9fa8739b4ec1 +msgid "" +"**Fixed** `4018 `_: " +"PyMuPDF hangs when iterating over zero page PDF pages backwards" +msgstr "" + +#: ../../../changes.txt:281 a2a87af3e4c84a6abc63ea9d9e914391 +msgid "" +"**Fixed** `4043 `_: " +"fullcopypage bug" +msgstr "" + +#: ../../../changes.txt:282 55686d0fa4674d4299310ada01d1735d +msgid "" +"**Fixed** `4047 `_: " +"Segmentation Fault in add_redact_annot" +msgstr "" + +#: ../../../changes.txt:283 0c2e617044914d04b642de2fa1587abb +msgid "" +"**Fixed** `4050 `_: " +"Content of dict returned by doc.embfile_info() does not fit to " +"documentation" +msgstr "" + +#: ../../../changes.txt:287 1bb6617fc61d474c946dbf47c807e5d8 +msgid "" +"Ensure that words from `Page.get_text()` never contain RTL/LTR char " +"mixtures." +msgstr "" + +#: ../../../changes.txt:288 2171b4b55a384da393be21b8cef7cd46 +msgid "Fix building with system MuPDF." +msgstr "" + +#: ../../../changes.txt:289 1b697fc68ecb486aa3b482711dd06c98 +msgid "Add dot product for points and vectors." +msgstr "" + +#: ../../../changes.txt:292 b3aa2aa2bfbc4c9ba5c5d2c84a823910 +msgid "**Changes in version 1.24.13 (2024-10-29)**" +msgstr "" + +#: ../../../changes.txt:296 532324021bbe48718cffa19ecedb034c +msgid "" +"**Fixed** `3848 `_: " +"Piximap program crash" +msgstr "" + +#: ../../../changes.txt:297 ../../../changes.txt:308 +#: 2387d394753a42ad872fa2268d7e9a29 cb2a797b491348f58ab3ce4ba98b73d9 +msgid "" +"**Fixed** `3950 `_: " +"Unable to consistently extract field labels from PDFs" +msgstr "" + +#: ../../../changes.txt:298 51536c1106ea45ac9444978b1684c0c1 +msgid "" +"**Fixed** `3981 `_: " +"PyMuPDF 1.24.12 with pyinstaller throws error." +msgstr "" + +#: ../../../changes.txt:299 f44e8a92c6004f9f8c5c59b80ddbf558 +msgid "" +"**Fixed** `3994 `_: " +"pix.color_topusage raise Segmentation fault (core dumped)" +msgstr "" + +#: ../../../changes.txt:302 6bd1fa6f738340babc3df986bdc5a0a5 +msgid "**Changes in version 1.24.12 (2024-10-21)**" +msgstr "" + +#: ../../../changes.txt:306 5174733bb6794f2b8c431f53170d0267 +msgid "" +"**Fixed** `3914 `_: " +"Ability to print MuPDF errors to logging instead of stdout" +msgstr "" + +#: ../../../changes.txt:307 78495d3820584622819a2d243eabe922 +msgid "" +"**Fixed** `3916 `_: " +"insert_htmlbox error: int too large to convert to float" +msgstr "" + +#: ../../../changes.txt:310 dc5a73b307bb45128375b3e45f21f804 +msgid "Supported Python versions are now 3.9-3.13." +msgstr "" + +#: ../../../changes.txt:312 7fa696ad2ff84d4fb6204d9eeaa72eec +msgid "Dropped support for Python-3.8 because end-of-life." +msgstr "" + +#: ../../../changes.txt:313 2be21c1bbf164eb88dd5059514d52c40 +msgid "Added support for Python-3.13 because now released." +msgstr "" + +#: ../../../changes.txt:314 a07d59ffaf6a48c8827e65b703ee0856 +msgid "See: https://devguide.python.org/versions/" +msgstr "" + +#: ../../../changes.txt:317 d5600d2cd45b4009ba4eb42289cee550 +msgid "**Changes in version 1.24.11 (2024-10-03)**" +msgstr "" + +#: ../../../changes.txt:319 9d700953907b44fe86d10f2023bda708 +msgid "Use MuPDF-1.24.10." +msgstr "" + +#: ../../../changes.txt:323 808cd9169aeb4de68aaf51afd0fbff17 +msgid "" +"**Fixed** `3624 `_: Pdf " +"file transform to image have a black block" +msgstr "" + +#: ../../../changes.txt:324 8f414ff010194b2abb249bd69290b7a1 +msgid "" +"**Fixed** `3859 `_: " +"doc.need_appearances() fails with \"AttributeError: module " +"'pymupdf.mupdf' has no attribute 'PDF_TRUE' \"" +msgstr "" + +#: ../../../changes.txt:325 144003ab4e5743f1a5a6728e0d572424 +msgid "" +"**Fixed** `3863 `_: " +"apply_redactions() does not work as expected" +msgstr "" + +#: ../../../changes.txt:326 dd7478f2b06449c48d6b3c1bda073aa9 +msgid "" +"**Fixed** `3905 `_: open " +"stream can raise a FzErrorFormat error instead of FileDataError" +msgstr "" + +#: ../../../changes.txt:328 bf8693cc8c1349408cbd9fc992ea196e +msgid "Wheels now use the Python Stable ABI:" +msgstr "" + +#: ../../../changes.txt:330 efc06a4c0fd84a09a008423f67eee13e +msgid "There is one PyMuPDF wheel for each platform." +msgstr "" + +#: ../../../changes.txt:331 4c8dea397efc48d68f2a64b021c76ed0 +msgid "Each wheel works with all supported Python versions." +msgstr "" + +#: ../../../changes.txt:332 1c41329749a64d22b3f9e3b61036f38c +msgid "" +"Each wheel is built using the oldest supported Python version (currently " +"3.8)." +msgstr "" + +#: ../../../changes.txt:333 2e864bd74a2f4ef98e175a1e44fec4df +msgid "There is no PyMuPDFb wheel." +msgstr "" + +#: ../../../changes.txt:337 aa491896b5e04bd582e529c840ead400 +msgid "Improvements to get_text_words() with sort=True." +msgstr "" + +#: ../../../changes.txt:338 283df97df8874c3fa38c6c9a57f6af06 +msgid "Tests now always get the latest versions of required Python packages." +msgstr "" + +#: ../../../changes.txt:339 f6a1523241f54a9ba84dfed4f6dde3b2 +msgid "Removed dependency on setuptools." +msgstr "" + +#: ../../../changes.txt:340 1596796af81b476e80835455e0a27a29 +msgid "Added item to PyMuPDF-1.24.10 changes below - fix of #3630." +msgstr "" + +#: ../../../changes.txt:343 0d1ea2fa95e1430a91731b5c309c154f +msgid "**Changes in version 1.24.10 (2024-09-02)**" +msgstr "" + +#: ../../../changes.txt:345 0fdb57593f1f47f78b61e459d90c4fd0 +msgid "Use MuPDF-1.24.9." +msgstr "" + +#: ../../../changes.txt:349 4c1b818189074d939767d48fa6ba40e6 +msgid "" +"**Fixed** `3450 `_: " +"get_pixmap function takes too long to process" +msgstr "" + +#: ../../../changes.txt:350 03bc289e1528407b8433671ea3e5587e +msgid "" +"**Fixed** `3569 `_: " +"Invalid OCGs not ignored by SVG image creation" +msgstr "" + +#: ../../../changes.txt:351 3e64094a0a16437ab1fceb4fd8904883 +msgid "" +"**Fixed** `3603 `_: " +"ObjStm compression and PDF linearization doesn't work together" +msgstr "" + +#: ../../../changes.txt:352 4a6c4d95199b49919c2ec7b76da32a3a +msgid "" +"**Fixed** `3650 `_: " +"Linebreak inserted between each letter" +msgstr "" + +#: ../../../changes.txt:353 a5fb10f857014368871b0ee0628a1ef1 +msgid "" +"**Fixed** `3661 `_: " +"Update Document to check the /XYZ len" +msgstr "" + +#: ../../../changes.txt:354 77892cd87ca346d381b0b249574312b4 +msgid "" +"**Fixed** `3698 `_: " +"documentation issue - old code in the annotations documentation" +msgstr "" + +#: ../../../changes.txt:355 8a4df3770f95440c870288e5f497cf93 +msgid "" +"**Fixed** `3705 `_: " +"Document.select() behaves weirdly in some particular kind of pdf files" +msgstr "" + +#: ../../../changes.txt:356 575c721454394ef5954021b2e3910c5a +msgid "" +"**Fixed** `3706 `_: " +"extend Document.__getitem__ type annotation to reflect that the method " +"also accepts slices" +msgstr "" + +#: ../../../changes.txt:357 b4081c4845a3495cab35195cfcbd4e5f +msgid "" +"**Fixed** `3727 `_: " +"Method get_pixmap() make the program exit without any exceptions or " +"messages" +msgstr "" + +#: ../../../changes.txt:358 4a582d7cc3ca40cfba3314faa5800f56 +msgid "" +"**Fixed** `3767 `_: " +"Cannot get Tessdata with Tesseract-OCR 5" +msgstr "" + +#: ../../../changes.txt:359 9a3c4b91a07e4c118de884a8c386dcfb +msgid "" +"**Fixed** `3773 `_: " +"Link.set_border gives TypeError: '<' not supported between instances of " +"'NoneType' and 'int'" +msgstr "" + +#: ../../../changes.txt:360 d3028f61318447b68e56290fbd6732cc +msgid "" +"**Fixed** `3774 `_: " +"fitz.__version__` does not work anymore" +msgstr "" + +#: ../../../changes.txt:361 596c2f50505948db9e84f139ffaea8fa +msgid "" +"**Fixed** `3789 `_: " +"ValueError: not enough values to unpack (expected 3, got 2) is thrown " +"when call insert_pdf" +msgstr "" + +#: ../../../changes.txt:362 e99c3b3c69d1484f8ea0b97279da22e4 +msgid "" +"**Fixed** `3820 `_: class" +" improves namedDest handling" +msgstr "" + +#: ../../../changes.txt:364 9c63afe342914710a2f4b27172881a97 +msgid "" +"**Fixed** `3630 `_: " +"page.apply_redactions gives unwanted black rectangle" +msgstr "" + +#: ../../../changes.txt:368 a69ca8bf39fc49c78509e477fc16ec48 +msgid "" +"Object streams and linearization cannot be used together; attempting to " +"do so will raise an exception. (#3603)" +msgstr "" + +#: ../../../changes.txt:370 d667244f9aa14f1d8b25176a013989e0 +msgid "Fixed handling of non-existing /Contents object." +msgstr "" + +#: ../../../changes.txt:373 007020c8bc19452da4cd657fdcba20c0 +msgid "**Changes in version 1.24.9 (2024-07-24)**" +msgstr "" + +#: ../../../changes.txt:375 3025163fadb648e88e840b5f088e6d56 +msgid "Use MuPDF-1.24.8." +msgstr "" + +#: ../../../changes.txt:378 259a038beea8413baaac6ee36c977d21 +msgid "**Changes in version 1.24.8 (2024-07-22)**" +msgstr "" + +#: ../../../changes.txt:382 a3d2403d008e4902bda8c294e7d5b193 +msgid "" +"**Fixed** `3636 `_: API " +"documentation for the open function is not obvious to find." +msgstr "" + +#: ../../../changes.txt:383 eb0f33456dca477bb49123d26150dbd5 +msgid "" +"**Fixed** `3654 `_: docx " +"parsing was broken in 1.24.7" +msgstr "" + +#: ../../../changes.txt:384 6c8df8e668094aef8d31035e9dc0e65d +msgid "" +"**Fixed** `3677 `_: " +"Unable to extract subset font name using the newer versions of PyMuPDF : " +"1.24.6 and 1.24.7." +msgstr "" + +#: ../../../changes.txt:385 c5b0babed39f440d99efdd7a90d63f4b +msgid "" +"**Fixed** `3687 `_: " +"Page.get_text results in AssertionError for epub files" +msgstr "" + +#: ../../../changes.txt:389 e245fedf7bb24e8d92d8116cb00ad30e +msgid "Fixed various spelling mistakes spotted by codespell." +msgstr "" + +#: ../../../changes.txt:390 764d9b752f59499e856f560908cee6d9 +msgid "Improved how we modify MuPDF's default configuration on Windows." +msgstr "" + +#: ../../../changes.txt:391 6e8cb04f867c4ad59e8be783e217fc4d +msgid "Make text search to work with ligatures." +msgstr "" + +#: ../../../changes.txt:394 25efadfa996341b38552789392dbaf74 +msgid "**Changes in version 1.24.7 (2024-06-26)**" +msgstr "" + +#: ../../../changes.txt:398 fa9eea5710484750bedce90cc64b9daf +msgid "" +"**Fixed** `3615 `_: " +"Document.pagemode or Document.pagelayout crashes for epub files" +msgstr "" + +#: ../../../changes.txt:399 795aad875dfc458eb4a6c99bccde0cec +msgid "" +"**Fixed** `3616 `_: not " +"last version reported" +msgstr "" + +#: ../../../changes.txt:402 b75b54baeb764ed5bfca7d9290d654f6 +msgid "**Changes in version 1.24.6 (2024-06-25)**" +msgstr "" + +#: ../../../changes.txt:404 ce8d669017974969859f4cf2c64c5c09 +msgid "Use MuPDF-1.24.4" +msgstr "" + +#: ../../../changes.txt:408 f726a1ab74364bca9e9f707167e9d0af +msgid "" +"**Fixed** `3599 `_: " +"Story.fit_width() has a weird line" +msgstr "" + +#: ../../../changes.txt:409 8e99b98271ea423bb26bb068ec39ea52 +msgid "" +"**Fixed** `3594 `_: " +"Garbled extraction for Amazon Sustainability Report" +msgstr "" + +#: ../../../changes.txt:410 651a15f12d5043b6b328618180353f68 +msgid "" +"**Fixed** `3591 `_: " +"'width' in Page.get_drawings() returns width equal as 0" +msgstr "" + +#: ../../../changes.txt:411 02fe36631c264c87895576864dc44e43 +msgid "" +"**Fixed** `3561 `_: " +"ZeroDivisionError: float division by zero with page.apply_redactions()" +msgstr "" + +#: ../../../changes.txt:412 99db39151ed74f9d97810a41633d73e2 +msgid "" +"**Fixed** `3559 `_: " +"SegFault 11 when empty H1 H2 H3 H4 etc element is used in insert_htmlbox" +msgstr "" + +#: ../../../changes.txt:413 5e95ed936be0415c95c278cf1d1a9999 +msgid "" +"**Fixed** `3539 `_: Add " +"dotted gridline detection to table recognition" +msgstr "" + +#: ../../../changes.txt:414 75ffb0d518004dc2a74244b12b6c97bd +msgid "" +"**Fixed** `3519 `_: " +"get_toc(simple=False) AttributeError: 'Outline' object has no attribute " +"'rect'" +msgstr "" + +#: ../../../changes.txt:415 495d1b01dfb7457ebb231eca62c7c539 +msgid "" +"**Fixed** `3510 `_: " +"page.get_label() gets wrong label on the first page of doc" +msgstr "" + +#: ../../../changes.txt:416 60f43a90ceb845b2adf2947634af64ac +msgid "" +"**Fixed** `3494 `_: " +"1.24.2/1.24.3: spurious characters introduced when using subset_fonts and" +" insert_pdf" +msgstr "" + +#: ../../../changes.txt:417 a4e0010c0d8f45beaae70809abc81039 +msgid "" +"**Fixed** `3470 `_: " +"subset_fonts error exit without exception/warning" +msgstr "" + +#: ../../../changes.txt:418 99fd9bbe5dba43aa9c040b3a77aee77c +msgid "" +"**Fixed** `3400 `_: " +"set_toc alters link coordinates for some rotated pages on pymupdf 1.24.2" +msgstr "" + +#: ../../../changes.txt:419 82687af929194a6dbf9c19ea545b5e0b +msgid "" +"**Fixed** `3347 `_: " +"Incorrect links to points on pages having different heights" +msgstr "" + +#: ../../../changes.txt:420 340ce003832a4bf4a832ae0623c2ac19 +msgid "" +"**Fixed** `3237 `_: " +"Set_metadata() does not work" +msgstr "" + +#: ../../../changes.txt:421 ce983433667f4f27a675ad0f4ab90de8 +msgid "" +"**Fixed** `3493 `_: " +"Isolate PyMuPDF from other libraries; issues when PyMuPDF is loaded with " +"other libraries like GdkPixbuf" +msgstr "" + +#: ../../../changes.txt:425 85db5876f5884fdb94a243fa8cea3bb5 +msgid "" +"Fixed concurrent use of PyMuPDF caused by use of constant temporary " +"filenames." +msgstr "" + +#: ../../../changes.txt:427 7bc8d5be62d24850bd1a2d0b042c5dc7 +msgid "Add musllinux x86_64 wheels to release." +msgstr "" + +#: ../../../changes.txt:429 8442053275014be3a2961c23d5c1e875 +msgid "Added clearer version information:" +msgstr "" + +#: ../../../changes.txt:431 898d54fe7f294059a365ce4df283fa8e +msgid "`pymupdf.pymupdf_version`." +msgstr "" + +#: ../../../changes.txt:432 e17b0b91f04f41c49b685ec88163c914 +msgid "`pymupdf.mupdf_version`." +msgstr "" + +#: ../../../changes.txt:433 b2b4d699826c44f3b82cbbffd7b8134e +msgid "`pymupdf.pymupdf_date`." +msgstr "" + +#: ../../../changes.txt:436 0641d353405748829b979a38171a2825 +msgid "**Changes in version 1.24.5 (2024-05-30)**" +msgstr "" + +#: ../../../changes.txt:440 d9b804a172e24fa782e586380589a791 +msgid "" +"**Fixed** `3479 `_: " +"regression: fill_textbox: IndexError: pop from empty list" +msgstr "" + +#: ../../../changes.txt:441 d00ec180a30548e7bd1094a5ff22289b +msgid "" +"**Fixed** `3488 `_: " +"set_toc method error" +msgstr "" + +#: ../../../changes.txt:445 53a42d7778c84e85ab793f4fc54ce4e8 +msgid "Some more fixes to use MuPDF floating formatting." +msgstr "" + +#: ../../../changes.txt:446 8feda6eedae84994a727c20e7a2336be +msgid "Removed/disabled some unnecessary diagnostics." +msgstr "" + +#: ../../../changes.txt:447 e96bd409e11d432aa398f8aeedd58c7a +msgid "Fixed utils.do_links() crash." +msgstr "" + +#: ../../../changes.txt:448 24e4d4aed05840ea9abe1c2c2805be34 +msgid "" +"Experimental new functions `pymupdf.apply_pages()` and " +"`pymupdf.get_text()`." +msgstr "" + +#: ../../../changes.txt:449 b8a6f1cfb64748d79bc0b69465631b51 +msgid "Addresses wrong label generation for label styles \"a\" and \"A\"." +msgstr "" + +#: ../../../changes.txt:452 0ba74ae644a1428d89fe14ef6b0babee +msgid "**Changes in version 1.24.4 (2024-05-16)**" +msgstr "" + +#: ../../../changes.txt:454 8347374b5a5e45b28a7f8f4afb292726 +msgid "" +"**Fixed** `3418 `_: Re-" +"introduced bug, text align add_redact_annot" +msgstr "" + +#: ../../../changes.txt:455 cb6d95a9123f4086b6ac158e88717571 +msgid "" +"**Fixed** `3472 `_: " +"insert_pdf gives SystemError" +msgstr "" + +#: ../../../changes.txt:459 c0361428884345bf8531a84f4780ea38 +msgid "" +"Fixed sysinstall test failing to remove all of prior installation before " +"new install." +msgstr "" + +#: ../../../changes.txt:461 5889a769a9d6497db5651e5de06b452c +msgid "Fixed `utils.do_links()` crash." +msgstr "" + +#: ../../../changes.txt:462 18689db9f7b34a0aada6aabae6348c36 +msgid "Correct `TextPage` creation Code." +msgstr "" + +#: ../../../changes.txt:463 47ec7c100c6c4cb89c0c9032e653d85d +msgid "Unified various diagnostics." +msgstr "" + +#: ../../../changes.txt:464 0ad11e95e8244ebab3b4e28a268c3b58 +msgid "Fix bug in `page_merge()`." +msgstr "" + +#: ../../../changes.txt:467 b8f39f2e163741529a0c07525b38ee4e +msgid "**Changes in version 1.24.3 (2024-05-09)**" +msgstr "" + +#: ../../../changes.txt:470 cad11f9fca1541eda51c5b1ddc360907 +msgid "" +"The Python module is now called `pymupdf`. `fitz` is still supported for " +"backwards compatibility." +msgstr "" + +#: ../../../changes.txt:473 26ab1d955ad94d82a842066be61b2b45 +msgid "Use MuPDF-1.24.2." +msgstr "" + +#: ../../../changes.txt:477 d78b4e742a1540d795b9023df668616a +msgid "" +"**Fixed** `3357 `_: " +"PyMuPDF==1.24.0 will hanging when using page.get_text(\"text\")" +msgstr "" + +#: ../../../changes.txt:478 d3a781ba5c1b4e4ea729e32165591767 +msgid "" +"**Fixed** `3376 `_: " +"Redacting results are not as expected in 1.24.x." +msgstr "" + +#: ../../../changes.txt:479 9d45832a290b4dec88aff88537dbbde6 +msgid "" +"**Fixed** `3379 `_: " +"Documentation mismatch for get_text_blocks return value order." +msgstr "" + +#: ../../../changes.txt:480 fb62ce84c5d24c1b802be0a91c9592fc +msgid "" +"**Fixed** `3381 `_: " +"Contents stream contains floats in scientific notation" +msgstr "" + +#: ../../../changes.txt:481 0862ddcf8e644d3ea7ac0a7c60de28d1 +msgid "" +"**Fixed** `3402 `_: " +"Cannot add Widgets containing inter-field-calculation JavaScript" +msgstr "" + +#: ../../../changes.txt:482 3d4f814eb5ec4e72a5adea1bd245b32f +msgid "" +"**Fixed** `3414 `_: " +"missing attribute set_dpi()" +msgstr "" + +#: ../../../changes.txt:483 cdcbe4b8d58544f0948c1b3c28f9b3d9 +msgid "" +"**Fixed** `3430 `_: " +"page.get_text() cause process freeze with certain pdf on v1.24.2" +msgstr "" + +#: ../../../changes.txt:487 ../../../changes.txt:509 +#: 1034de3f71fc4bd187b3f046c83bedbe 8863ca296ccc4716b6f80e99291be2e5 +msgid "New/modified methods:" +msgstr "" + +#: ../../../changes.txt:489 8cea70e9366142759f75487402e703b3 +msgid "" +"`Page.remove_rotation()`: new, set page rotation to zero while keeping " +"appearance." +msgstr "" + +#: ../../../changes.txt:491 f1014ad8f9ec4d87968c7de24b7e7f70 +msgid "Fixed some problems when checking for PDF properties." +msgstr "" + +#: ../../../changes.txt:492 64cfa246e9094b0ebd62758e2eb3598f +msgid "" +"Fixed pip builds from sdist (see discussion `3360 " +"`_: Alpine linux " +"docker build failing \"No matching distribution found for " +"pymupdfb==1.24.1\")." +msgstr "" + +#: ../../../changes.txt:497 f8ef0c76081a402dbac0efa8b7644241 +msgid "**Changes in version 1.24.2 (2024-04-17)**" +msgstr "" + +#: ../../../changes.txt:499 bf95d9b1e5994a2091c8f66685f22854 +msgid "" +"Removed obsolete classic implementation from releases (previously " +"available as module `fitz_old`)." +msgstr "" + +#: ../../../changes.txt:504 4a87d3564d3d4cedae93e2b51349aaa2 +msgid "" +"**Fixed** `3331 `_: " +"Document.pages() is incorrectly type-hinted" +msgstr "" + +#: ../../../changes.txt:505 84e9e429e5af4263a7fd5db405b5842a +msgid "" +"**Fixed** `3354 `_: " +"PyMuPDF==1.24.1: AttributeError: property 'metadata' of 'Document' object" +" has no setter" +msgstr "" + +#: ../../../changes.txt:511 818e26cf4c0f4ce08f1bf68e48eab8b0 +msgid "`Document.bake()`: new, make annotations / fields permanent content." +msgstr "" + +#: ../../../changes.txt:512 6a0b794fe12f4bb4a005a8f1bdc5c188 +msgid "" +"`Page.cluster_drawings()`: new, identifies drawing items (i.e. vector " +"graphics or line-art) that belong together based on their geometrical " +"vicinity." +msgstr "" + +#: ../../../changes.txt:515 f1fb556a239a49e6b90a938b0360868a +msgid "`Page.apply_redactions()`: added new parameter `text`." +msgstr "" + +#: ../../../changes.txt:516 c47d84ec4dd34a6687719bcfafebdb25 +msgid "" +"`Document.subset_fonts()`: use MuPDF's `pdf_subset_fonts()` instead of " +"PyMuPDF code." +msgstr "" + +#: ../../../changes.txt:518 b56ff5e11e894337b35ae03c405c4666 +msgid "The `Document` class now supports page numbers specified as slices." +msgstr "" + +#: ../../../changes.txt:519 68a2d9fa6804400dbecc0e1d60d85280 +msgid "Avoid causing MuPDF warnings." +msgstr "" + +#: ../../../changes.txt:522 167f53146b304aaf9812103ca9c4e29c +msgid "**Changes in version 1.24.1 (2024-04-02)**" +msgstr "" + +#: ../../../changes.txt:526 9dcf0965da0a489cabf3d2ab88226762 +msgid "" +"**Fixed** `3278 `_: " +"apply_redactions moves some unredacted text" +msgstr "" + +#: ../../../changes.txt:527 c23c377d35194a0094bd6e4beab89d9d +msgid "" +"**Fixed** `3301 `_: Be " +"more permissive when classifying links as kind LINK_URI" +msgstr "" + +#: ../../../changes.txt:528 c6e16db559364535a9c002bd61adb627 +msgid "" +"**Fixed** `3306 `_: Text " +"containing capital 'ET' not appearing as annotation" +msgstr "" + +#: ../../../changes.txt:532 ae65e5dcbdbb47e7b6182ae2f1e35080 +msgid "Use MuPDF-1.24.1." +msgstr "" + +#: ../../../changes.txt:533 606e5f2a82694796b16017c9e6988751 +msgid "" +"Support ObjStm Compression. Methods `Document.save()`, " +"`Document.ez_save()` and `Document.write()` now support new parameters " +"`use_objstm`, compression_effort` and `preserve_metadata`." +msgstr "" + +#: ../../../changes.txt:539 e0d826430dab4605843b857d55556f31 +msgid "**Changes in version 1.24.0 (2024-03-21)**" +msgstr "" + +#: ../../../changes.txt:543 56ae3cb3eae74794bf8c66f9478e1eaa +msgid "" +"**Fixed** `3281 `_: " +"Preparing metadata (pyproject.toml) did not run successfully" +msgstr "" + +#: ../../../changes.txt:544 c2af0005171741dfa062c48305fdff68 +msgid "" +"**Fixed** `3279 `_: " +"PyMuPDF no longer builds in Alpine Linux" +msgstr "" + +#: ../../../changes.txt:545 d9b6c05ed6004aca8f3189adad180c42 +msgid "" +"**Fixed** `3257 `_: " +"apply_redactions() deleting text outside of annoted box" +msgstr "" + +#: ../../../changes.txt:546 8baeb884a8f84d2fbf0d5b17af55639c +msgid "" +"**Fixed** `3216 `_: " +"AttributeError: 'Annot' object has no attribute '__del__'" +msgstr "" + +#: ../../../changes.txt:547 37068b47c21542ccbcc5d6326e7046f1 +msgid "" +"**Fixed** `3207 `_: " +"get_drawings's items is missing line from h path operator" +msgstr "" + +#: ../../../changes.txt:548 a4e36666ffbc4aca8006de811d305b60 +msgid "" +"**Fixed** `3201 `_: " +"Memory leaks when merging PDFs" +msgstr "" + +#: ../../../changes.txt:549 72cdc09b51ef425ab50c8aae8a380ce6 +msgid "" +"**Fixed** `3197 `_: " +"page.get_text() returns hexadecimal text for some characters" +msgstr "" + +#: ../../../changes.txt:550 055ea678a07b4991b05894009ada4484 +msgid "" +"**Fixed** `3196 `_: " +"Remove text not working in 1.23.25 version vs 1.20.2" +msgstr "" + +#: ../../../changes.txt:551 eebdd0d853a04d7890db0116aeda3b84 +msgid "" +"**Fixed** `3172 `_: PDF's" +" 45º lines dissapearing in png conversion" +msgstr "" + +#: ../../../changes.txt:552 fd48b5fe2cf74dbb8772e3ffda26cc5b +msgid "" +"**Fixed** `3135 `_: Do " +"not log warnings to stdout" +msgstr "" + +#: ../../../changes.txt:553 5a2c034748ca435d97157e0e01631edc +msgid "" +"**Fixed** `3125 `_: " +"get_pixmap method stuck on one page and runs forever" +msgstr "" + +#: ../../../changes.txt:554 2b0bc004e652473d8424fbaf44acc132 +msgid "" +"**Fixed** `2964 `_: There" +" is an issue with the image generated by the page.get_pixmap() function" +msgstr "" + +#: ../../../changes.txt:558 7489ffec843d457ca500cfb476753615 +msgid "Use MuPDF-1.24.0." +msgstr "" + +#: ../../../changes.txt:559 7c55068e2bc44f7a90942db48624c211 +msgid "Add support for redacting vector graphics." +msgstr "" + +#: ../../../changes.txt:560 994636840ff242bb90c2538f8b313764 +msgid "Several fixes for table module" +msgstr "" + +#: ../../../changes.txt:562 1cde4b0108a34c66bcf26a1e69169d92 +msgid "Add new method for outputting the table as a markdown string." +msgstr "" + +#: ../../../changes.txt:564 9fcf8beb4cbf4808b3636964252fb397 +msgid "Address errors in computing the table header object:" +msgstr "" + +#: ../../../changes.txt:566 466f446d303f45039a8d621fa72be582 +msgid "" +"We now allow None as the cell value, because this will be resolved where " +"needed (e.g. in the pandas DataFrame)." +msgstr "" + +#: ../../../changes.txt:569 b1456724d60f446b99497879dec77edc +msgid "" +"We previously tried to enforce rect-like tuples in all header cell " +"bboxes, however this fails for tables with all-None columns. This fix " +"enables this and constructs an empty string in the corresponding cell " +"string." +msgstr "" + +#: ../../../changes.txt:574 bd966cd782ae48e6bf574d6aa1e75969 +msgid "" +"We now correctly include start / stop points of lines in the bbox of the " +"clustered graphic. We previously joined the line's rectangle - which had" +" no effect because this is always empty." +msgstr "" + +#: ../../../changes.txt:578 8b34024dc26b46d6bb00721aee57b203 +msgid "Improved exception text if we fail to open document." +msgstr "" + +#: ../../../changes.txt:579 2ad46d306493434ba2f21cbc55598c4e +msgid "Fixed build with new libclang 18." +msgstr "" + +#: ../../../changes.txt:582 e0f45c4d68334077bde30abcb37f442c +msgid "**Changes in version 1.23.26 (2024-02-29)**" +msgstr "" + +#: ../../../changes.txt:586 2f2ec05926254e2f9d6790002f8f0dbb +msgid "" +"**Fixed** `3199 `_: Add " +"entry_points to setuptools configuration to provide command-line console " +"scripts" +msgstr "" + +#: ../../../changes.txt:587 254166b6829a47ebae52f0d1befd4f8c +msgid "" +"**Fixed** `3209 `_: Empty" +" vertices in ink annotation" +msgstr "" + +#: ../../../changes.txt:591 72a0f38fcb3f4fadae2a9750a83ecf70 +msgid "Improvements to table detection:" +msgstr "" + +#: ../../../changes.txt:593 70ae893cd45741a59c2a753e1efe9d04 +msgid "" +"Improved check for empty tables, fixes bugs when determining table " +"headers." +msgstr "" + +#: ../../../changes.txt:594 db5ad6c22fa8479fb66f6ada59044c7e +msgid "Improved computation of enveloping vector graphic rectangles." +msgstr "" + +#: ../../../changes.txt:595 7f5ea75a3d2b47809b85588c78b70318 +msgid "Ignore more meaningless \"pseudo\" tables" +msgstr "" + +#: ../../../changes.txt:597 6cd939d409f341f6a264ff3b4624cca6 +msgid "Install command-line 'pymupdf' command that runs fitz/__main__.py." +msgstr "" + +#: ../../../changes.txt:598 6afb7824085740ccaf2fc01c782dffcb +msgid "Don't overwrite MuPDF's config.h when building on non-Windows." +msgstr "" + +#: ../../../changes.txt:599 86e24a39bb0541a4ac1e71e88541c698 +msgid "" +"Fix `Story` constructor's `archive` arg to match docs - now accepts a " +"single `Archive` constructor arg." +msgstr "" + +#: ../../../changes.txt:600 a3ea96e9f72f483bbf461ca1d128b1e4 +msgid "" +"Do not include MuPDF source in sdist; will be downloaded automatically " +"when building." +msgstr "" + +#: ../../../changes.txt:603 b80b43ad742c43ab9880dd54056a9973 +msgid "**Changes in version 1.23.25 (2024-02-20)**" +msgstr "" + +#: ../../../changes.txt:607 ea65b6e10b4443fd98d4487f8a6227ce +msgid "" +"**Fixed** `3182 `_: " +"Pixmap.invert_irect argument type error" +msgstr "" + +#: ../../../changes.txt:608 420d27a70b34444aba118e43db9e4802 +msgid "" +"**Fixed** `3186 `_: " +"extractText() extracts broken text from pdf" +msgstr "" + +#: ../../../changes.txt:609 90aadcf4b788454abbf2665a0b7b8f22 +msgid "" +"**Fixed** `3191 `_: Error" +" on .find_tables()" +msgstr "" + +#: ../../../changes.txt:613 0a5a831494a04b18b50fdfc5d3833038 +msgid "" +"When building, be able to specify python-config directly, with " +"environment variable `PIPCL_PYTHON_CONFIG`." +msgstr "" + +#: ../../../changes.txt:617 93b9bfcd66aa426eaacb92d54e23c667 +msgid "**Changes in version 1.23.24 (2024-02-19)**" +msgstr "" + +#: ../../../changes.txt:621 3748e8d370624cd1889b240a694cc72e +msgid "" +"**Fixed** `3148 `_: Table" +" extraction - vertical text not handled correctly" +msgstr "" + +#: ../../../changes.txt:622 0017cea29f1247be99c102c56a8fabd1 +msgid "" +"**Fixed** `3179 `_: Table" +" Detection: Incorrect Separation of Vector Graphics Clusters" +msgstr "" + +#: ../../../changes.txt:623 dde9c50cb60147428936ac9e5bdacc81 +msgid "" +"**Fixed** `3180 `_: " +"Cannot show optional content group: AttributeError: module 'fitz.mupdf' " +"has no attribute 'pdf_array_push_drop'" +msgstr "" + +#: ../../../changes.txt:627 838816f12e394f49b9e2ef7b4559fd71 +msgid "Be able to test system install using `sudo pip install` instead of a venv." +msgstr "" + +#: ../../../changes.txt:630 0b4ca8027622493090312b1e74a4839a +msgid "**Changes in version 1.23.23 (2024-02-18)**" +msgstr "" + +#: ../../../changes.txt:634 5c5c4b53219b4e8492fec8aafaa14b7e +msgid "" +"**Fixed** `3126 `_: " +"Initialising Archive with a pathlib.Path fails." +msgstr "" + +#: ../../../changes.txt:635 e5745b8508084965a56f4151794f8378 +msgid "" +"**Fixed** `3131 `_: " +"Calling the next attribute of an Annot raises a \"No attribute .parent\" " +"warning" +msgstr "" + +#: ../../../changes.txt:636 59d2c178ba9c4d47977704a9feccc1ea +msgid "" +"**Fixed** `3134 `_: Using" +" an IRect as clip parameter in Page.get_pixmap no longer works since " +"1.23.9" +msgstr "" + +#: ../../../changes.txt:637 43be27e8f82c45ef90522a9da30a0a72 +msgid "" +"**Fixed** `3140 `_: PDF " +"document stays in use after closing" +msgstr "" + +#: ../../../changes.txt:638 cbe3a25490474db9973829ac9e661e5b +msgid "" +"**Fixed** `3150 `_: " +"doc.select() hangs on this doc." +msgstr "" + +#: ../../../changes.txt:639 b40c96dbbba64f6f82a0dbc3fb5570db +msgid "" +"**Fixed** `3163 `_: " +"AssertionError on using fitz.IRect" +msgstr "" + +#: ../../../changes.txt:640 5b0e909d8b1c42c4815f57178c08f1d0 +msgid "" +"**Fixed** `3177 `_: " +"fitz.Pixmap(None, pix) Unrecognised args for constructing Pixmap" +msgstr "" + +#: ../../../changes.txt:645 bcff5266d81d44828538dd318c25c548 +msgid "" +"Improved `Document.select() by using new MuPDF function " +"`pdf_rearrange_pages()`. This is a more complete (and faster) " +"implementation of what needs to be done here in that not only pages will " +"be rearranged, but also consequential changes will be made to the table " +"of contents, links to removed pages and affected entries in the Optional " +"Content definitions." +msgstr "" + +#: ../../../changes.txt:651 7e5e70f9786348e485e9f480c4c5f649 +msgid "`TextWriter.appendv()`: added `small_caps` arg." +msgstr "" + +#: ../../../changes.txt:652 511da4bdc4cb4d488b5540f7118d05c6 +msgid "Fixed some valgrind errors with MuPDF master." +msgstr "" + +#: ../../../changes.txt:653 9fa27b2a0f6542779698b58b6ef2797f +msgid "Fixed `Document.insert_image()` when build with MuPDF master." +msgstr "" + +#: ../../../changes.txt:656 8215b8e723014b82adeefa3d490e76cf +msgid "**Changes in version 1.23.22 (2024-02-12)**" +msgstr "" + +#: ../../../changes.txt:660 9499acfbd68c4038bf82444da1a07c47 +msgid "" +"**Fixed** `3143 `_: " +"Difference in decoding of OCGs names between doc.get_ocgs() and " +"page.get_drawings()" +msgstr "" + +#: ../../../changes.txt:662 6a05eddb0f5846589fe4c0086fc9e146 +msgid "" +"**Fixed** `3139 `_: " +"Pixmap resizing needs positional arg \"clip\" - even if None." +msgstr "" + +#: ../../../changes.txt:666 9a6bd516b5734957b5d8700fec418b18 +msgid "Removed the use of MuPDF function `fz_image_size()` from PyMuPDF." +msgstr "" + +#: ../../../changes.txt:669 32b339e622b6447890c25a4ab191fd39 +msgid "**Changes in version 1.23.21 (2024-02-01)**" +msgstr "" + +#: ../../../changes.txt:675 fab60867577a487b9c3f486166614839 +msgid "" +"Fixed bug in set_xml_metadata(), PR `3112 " +"https://github.com/pymupdf/PyMuPDF/pull/3112>`_: Fix pdf_add_stream " +"metadata error" +msgstr "" + +#: ../../../changes.txt:676 5db3c0df43d7466bb49c93da76eb7ded +msgid "Fixed lack of `.parent` member in `TextPage` from `Annot.get_textpage()`." +msgstr "" + +#: ../../../changes.txt:677 6886cfc95dcf48449baf3597f9ed5a5b +msgid "Fixed bug in `Page.add_widget()`." +msgstr "" + +#: ../../../changes.txt:680 466b6a96778a400fa703f8a164dc6006 +msgid "**Changes in version 1.23.20 (2024-01-29)**" +msgstr "" + +#: ../../../changes.txt:682 ../../../changes.txt:693 ../../../changes.txt:711 +#: ../../../changes.txt:723 ../../../changes.txt:737 ../../../changes.txt:750 +#: ../../../changes.txt:761 ../../../changes.txt:773 ../../../changes.txt:797 +#: ../../../changes.txt:917 ../../../changes.txt:934 ../../../changes.txt:966 +#: ../../../changes.txt:1023 ../../../changes.txt:1099 +#: ../../../changes.txt:1133 ../../../changes.txt:1142 +#: ../../../changes.txt:1151 ../../../changes.txt:1169 +#: ../../../changes.txt:1269 ../../../changes.txt:1308 +#: 10bae71e3a574059884b4f1d5baea65c 11746df9cf7b4144bc9cabc8e95b78a9 +#: 35c5e4be6606427a95322276ca783f0e 4bbb30be5f60421a87e36a340ddbe65f +#: 524f6c6556b5468c90bac3e6f81b279d 5a44d84debe5475da967de80ba53914b +#: 5ed487b98bc84f92a08fdb4934e8535b 74166ebee93f4e9e999f1cd22be78aaf +#: 780c7d9984234abebe430e3254afc4e8 a47d1d46827b45bebe969ac04f21dc0f +#: a6ae2f8c435749c4a8dc5fbe5c95dff6 a776aae290f74bdfaa636b31d9b933e0 +#: bb6b3124820a4512a56446f360c94404 c7fa8793bb6d44aca1771c6152ac83d8 +#: d22de0587ab24d4ab437626e883261d4 dd73709cf4c74a6e9d9a8eba46753cd2 +#: e4a33a6c03dd49d0a338e5b67900cac8 f7e8261277e44b8abe33e6e0f05bcde7 +#: f98503e4ea7c425391e56ac00fbae870 fc10345ba347482ba6bf7042461f8232 +msgid "Bug fixes:" +msgstr "" + +#: ../../../changes.txt:684 e101eae15b004da2849ab4be087a4010 +msgid "" +"**Fixed** `3100 `_: Wrong" +" internal property accessed in get_xml_metadata" +msgstr "" + +#: ../../../changes.txt:688 30795d0573e140c88dd4cf9e6887fbe0 +msgid "Significantly improved speed of `Document.get_toc()`." +msgstr "" + +#: ../../../changes.txt:691 f23cca9b1fc84d0ea474332f2e1c6c2c +msgid "**Changes in version 1.23.19 (2024-01-25)**" +msgstr "" + +#: ../../../changes.txt:695 36758073da3a48f5bc485fd6a9fc328e +msgid "" +"**Fixed** `3087 `_: " +"Exception in insert_image with mask specified" +msgstr "" + +#: ../../../changes.txt:696 202f997680f84ed9b7bf363b2b348028 +msgid "" +"**Fixed** `3094 `_: " +"TypeError: '<' not supported between instances of 'FzLocation' and 'int' " +"in doc.delete_pages" +msgstr "" + +#: ../../../changes.txt:700 b8dceb00014f42ccb7877fe431320209 +msgid "When finding tables:" +msgstr "" + +#: ../../../changes.txt:702 311dca44e7df40e0a0c2ece5cca045f3 +msgid "" +"Allow addition of user-defined \"virtual\" vector graphics when finding " +"tables." +msgstr "" + +#: ../../../changes.txt:703 743195d5487f4c79b7dea4defa19efdb +msgid "" +"Confirm that the enveloping bboxes of vector graphics are inside the clip" +" rectangle." +msgstr "" + +#: ../../../changes.txt:704 91bcfe988eab4abe82d29ec6a73c24ac +msgid "Avoid slow finding of rectangle intersections." +msgstr "" + +#: ../../../changes.txt:706 6fbf98c2146642699598279e74ace969 +msgid "Added `Font.bbox` property." +msgstr "" + +#: ../../../changes.txt:709 02dd1c5dc69346c3aa052addbe84f62d +msgid "**Changes in version 1.23.18 (2024-01-23)**" +msgstr "" + +#: ../../../changes.txt:713 e98e1fa4a6be43e19c1235f235206973 +msgid "" +"**Fixed** `3081 `_: " +"doc.close() not closing the document" +msgstr "" + +#: ../../../changes.txt:717 da8086b4179148e78eef2c50eb3cd527 +msgid "" +"Reduced size of sdist to fit on pypi.org (by reducing size of two test " +"files)." +msgstr "" + +#: ../../../changes.txt:718 0b7e1df1d1024f52810b0f1778d8d2de +msgid "Fix `Annot.file_info()` if no `Desc` item." +msgstr "" + +#: ../../../changes.txt:721 df117a0a6648402e8810ca3b417979b4 +msgid "**Changes in version 1.23.17 (2024-01-22)**" +msgstr "" + +#: ../../../changes.txt:725 37f262e5ed6b4d118a5a82e4beb2b4ad +msgid "" +"**Fixed** `3062 `_: " +"page_rotation_reset does not return page to original rotation" +msgstr "" + +#: ../../../changes.txt:726 f86ef7904604429884e4c81fcf5ae787 +msgid "" +"**Fixed** `3070 `_: " +"update_link(): AttributeError: 'Page' object has no attribute 'super'" +msgstr "" + +#: ../../../changes.txt:730 6c6a0371126c46b0bcc8ebc5df7be344 +msgid "Fixed bug in `Page.links()` (PR #3075)." +msgstr "" + +#: ../../../changes.txt:731 a9475e5785414f199b597f416d8e1f8d +msgid "Fixed bug in `Page.get_bboxlog()` with layers." +msgstr "" + +#: ../../../changes.txt:732 8867fda0c26e4548b930e7d40da999bc +msgid "Add support for timeouts in scripts/ and tests/run_compound.py." +msgstr "" + +#: ../../../changes.txt:735 50f7599b93df4914acc301398f9fb589 +msgid "**Changes in version 1.23.16 (2024-01-18)**" +msgstr "" + +#: ../../../changes.txt:739 98d0c677086e45b8aefb2561c344d108 +msgid "" +"**Fixed** `3058 `_: " +"Pixmap created from CMYK JPEG delivers RGB format" +msgstr "" + +#: ../../../changes.txt:743 6280e0fb16044307be72a98e78055199 +msgid "" +"In table detection strategy \"lines_strict\", exclude fill-only vector " +"graphics." +msgstr "" + +#: ../../../changes.txt:744 7b87c57e26184d6fab0bf49037ae0ee0 +msgid "Fixed sysinstall test failure." +msgstr "" + +#: ../../../changes.txt:745 479fcf54b5cc40719b42543c6b8eb8d7 +msgid "In documentation, update feature matrix with item about text writing." +msgstr "" + +#: ../../../changes.txt:748 a58ed680108b456f811bd161fcda9c91 +msgid "**Changes in version 1.23.15 (2024-01-16)**" +msgstr "" + +#: ../../../changes.txt:752 db43cbaa428745bbbc155e1449a46274 +msgid "" +"**Fixed** `3050 `_: " +"python3.9 pix.set_pixel has something wrong in c.append( ord(i))" +msgstr "" + +#: ../../../changes.txt:756 85116010a87b4782a3c2cf37d6d3c233 +msgid "Improved docs for Page.find_tables()." +msgstr "" + +#: ../../../changes.txt:759 a0e9d51dec614dd5aad7a32d5195c117 +msgid "**Changes in version 1.23.14 (2024-01-15)**" +msgstr "" + +#: ../../../changes.txt:763 a147e66fe72c47f7ab10b2211f76dd3f +msgid "" +"**Fixed** `3038 `_: " +"JM_pixmap_from_display_list > Assertion Error : Checking for wrong type" +msgstr "" + +#: ../../../changes.txt:764 8e99271499a243a0ad21780cd0aa3b4f +msgid "" +"**Fixed** `3039 `_: Issue" +" with doc.close() not closing the document in PyMuPDF" +msgstr "" + +#: ../../../changes.txt:768 3976a531e434472590b8052395aea031 +msgid "" +"Ensure valid \"re\" rectangles in `Page.get_drawings()` with derotated " +"pages." +msgstr "" + +#: ../../../changes.txt:771 082bdc523e1f473f85543e64d3853ad8 +msgid "**Changes in version 1.23.13 (2024-01-15)**" +msgstr "" + +#: ../../../changes.txt:775 797a7ea0082844de9aa334285db2046a +msgid "" +"**Fixed** `2979 `_: list " +"index out of range in to_pandas()" +msgstr "" + +#: ../../../changes.txt:776 95667931dbcb4237bae8f4c9af83594b +msgid "" +"**Fixed** `3001 `_: " +"Calling find_tables() on one document alters the bounding boxes of a " +"subsequent document" +msgstr "" + +#: ../../../changes.txt:780 186cd9d07f9b4a58beb7e8e41f3bc17d +msgid "Fixed `Rect.height` and `Rect.width` to never return negative values." +msgstr "" + +#: ../../../changes.txt:781 27c5d3626f094ec5863b809e2a812c25 +msgid "Fixed `TextPage.extractIMGINFO()`'s returned `dictkey_yres` value." +msgstr "" + +#: ../../../changes.txt:784 8255dfd1b9d149ba8ce261e1ceaff664 +msgid "**Changes in version 1.23.12 (2024-01-12)**" +msgstr "" + +#: ../../../changes.txt:786 5bb9f57d3682407b99532c75233dba1f +msgid "" +"**Fixed** `3027 `_: " +"Page.get_text throws Attribute Error for 'parent'" +msgstr "" + +#: ../../../changes.txt:789 2dae2447cbb74e1fb8e1a42264ec7e70 +msgid "**Changes in version 1.23.11 (2024-01-12)**" +msgstr "" + +#: ../../../changes.txt:791 cd671647a36347d9b8adbfb7ee2447a9 +msgid "Fixed some Pixmap construction bugs." +msgstr "" + +#: ../../../changes.txt:792 e891dfad684a4752b4e5805a6293dfcf +msgid "Fixed Pixmap.yres()." +msgstr "" + +#: ../../../changes.txt:795 f131f3b1f3b641e989cfeab5425a3e9c +msgid "**Changes in version 1.23.10 (2024-01-12)**" +msgstr "" + +#: ../../../changes.txt:799 ac50349144d841ab902a3ae407ef8714 +msgid "" +"**Fixed** `3020 `_: Can't" +" resize a PixMap" +msgstr "" + +#: ../../../changes.txt:803 3f395fa335f948a6bf2ec8e7dca4ea01 +msgid "Fixed Page.delete_image()." +msgstr "" + +#: ../../../changes.txt:806 c60fab8d493747628cff1c624cb39043 +msgid "**Changes in version 1.23.9 (2024-01-11)**" +msgstr "" + +#: ../../../changes.txt:808 1fa84ae4248d423485aa5cb183570533 +msgid "Default to new \"rebased\" implementation." +msgstr "" + +#: ../../../changes.txt:810 950a6848918d4d6b80203a0558ed5266 +msgid "" +"The old \"classic\" implementation is available with `import fitz_old as " +"fitz`." +msgstr "" + +#: ../../../changes.txt:811 bebd4b40a6314a9b99d384b13f921a74 +msgid "" +"For more information about why we are changing to the rebased " +"implementation, see: https://github.com/pymupdf/PyMuPDF/discussions/2680" +msgstr "" + +#: ../../../changes.txt:814 0a613f5215304e7b922f3fbb0c54ad9c +msgid "Use MuPDF-1.23.9." +msgstr "" + +#: ../../../changes.txt:816 ../../../changes.txt:848 +#: 79b8f33e4c684085bbd12543c914a92c ed73712d903c42daa048538222480c72 +msgid "Bug fixes (rebased implementation only):" +msgstr "" + +#: ../../../changes.txt:818 f0a68870dc7e4101b40fb65d25d18b5a +msgid "" +"**Fixed** `2911 `_: " +"Page.derotation_matrix returns a tuple instead of a Matrix with rebased " +"implementation" +msgstr "" + +#: ../../../changes.txt:819 b056b928a27c4740bfc45a1e268ab0d2 +msgid "" +"**Fixed** `2919 `_: " +"Rebased version: KeyError in resolve_names when merging pdfs" +msgstr "" + +#: ../../../changes.txt:820 736154fa84784e259b795c962116ed21 +msgid "" +"**Fixed** `2922 `_: New " +"feature that allows inserting named-destination links doesn't work" +msgstr "" + +#: ../../../changes.txt:821 bfe6879a0e3449928a0e143e35d1973d +msgid "" +"**Fixed** `2943 `_: " +"ZeroDivisionError: float division by zero when use apply_redactions()" +msgstr "" + +#: ../../../changes.txt:822 3aea2bcd6a984d8f8e814d25a05ea0cd +msgid "" +"**Fixed** `2950 `_: " +"Shelling out to pip during tests is problematic" +msgstr "" + +#: ../../../changes.txt:823 64a074a99c094bf2b64bf0a1175cfd6e +msgid "" +"**Fixed** `2954 `_: " +"Replacement unicode character in text extraction" +msgstr "" + +#: ../../../changes.txt:824 f1ab1e9632c440a1ad3ddceab5970793 +msgid "" +"**Fixed** `2957 `_: " +"apply_redactions() moving text" +msgstr "" + +#: ../../../changes.txt:825 be824c3a45bd4be0b2bc52d892f31652 +msgid "" +"**Fixed** `2961 `_: " +"Passing a string as a page number raises IndexError instead of TypeError." +msgstr "" + +#: ../../../changes.txt:826 e776dd1532cf4e4b930371d30841afe9 +msgid "" +"**Fixed** `2969 `_: " +"annot.next throws AttributeError" +msgstr "" + +#: ../../../changes.txt:827 ac77c79a100942f8a6159beb24f4e67a +msgid "" +"**Fixed** `2978 `_: " +"1.23.9rc1: module 'fitz.mupdf' has no attribute 'fz_copy_pixmap_rect'" +msgstr "" + +#: ../../../changes.txt:829 362af45c412f45c39a1d822fab1286b1 +msgid "" +"**Fixed** `2907 `_: " +"segfault trying to call clean_contents on certain pdfs with python 3.12" +msgstr "" + +#: ../../../changes.txt:830 c1135c0939ef4daab6a8385631c53704 +msgid "" +"**Fixed** `2905 `_: " +"SystemError: returned a " +"result with an exception set" +msgstr "" + +#: ../../../changes.txt:831 a9d0e8515e0c4113af2e60251120838a +msgid "" +"**Fixed** `2742 `_: " +"Segmentation Fault when inserting three (but not two) copies of the same " +"source page into one destination page" +msgstr "" + +#: ../../../changes.txt:835 bdbbaa0c597e4d8690d2acc01a05a511 +msgid "Add optional setting of opacity to `Page.insert_htmlbox()`." +msgstr "" + +#: ../../../changes.txt:836 ec4580cff71a44b881bd2289b03e1e76 +msgid "Fixed issue with add_redact_annot() mentioned in #2934." +msgstr "" + +#: ../../../changes.txt:837 37a7489f60b24988aabf68ab765c53aa +msgid "" +"Fixed `Page.rotation()` to return 0 for non-PDF documents instead of " +"raising an exception." +msgstr "" + +#: ../../../changes.txt:838 c15327390f2c412599adc9f6c2cd41eb +msgid "Fixed internal quad detection to cope with any Python sequence." +msgstr "" + +#: ../../../changes.txt:839 b5b25dcbb0e04533b6f266160078d7ac +msgid "" +"Fixed rebased `fitz.pymupdf_version_tuple` - was previously set to mupdf " +"version." +msgstr "" + +#: ../../../changes.txt:840 417b49c5b97a43b2884451f91a6ccd72 +msgid "" +"Improved support for Linux system installs, including adding regular " +"testing on Github." +msgstr "" + +#: ../../../changes.txt:841 dc9b6649df764b6d8bdd0aeb241c8116 +msgid "Add missing `flake8` to `scripts/gh_release.py:test_packages`." +msgstr "" + +#: ../../../changes.txt:842 526255ea77784aa5a86322e409396fbf +msgid "Use newly public functions in MuPDF-1.23.8." +msgstr "" + +#: ../../../changes.txt:843 78af7dcf823d4333b745e1411e2535c0 +msgid "Improved `scripts/test.py` to help investigation of MuPDF issues." +msgstr "" + +#: ../../../changes.txt:846 c4377b33474d4f08b8bb6ea1785e8cae +msgid "**Changes in version 1.23.8 (2023-12-19)**" +msgstr "" + +#: ../../../changes.txt:850 06bc7d28ba624f879fc3f4225f042ebd +msgid "" +"**Fixed** `2634 `_: " +"get_toc and set_toc do not behave consistently for rotated pages" +msgstr "" + +#: ../../../changes.txt:851 eaabee50b85a41f5a1eee3082375a7d5 +msgid "" +"**Fixed** `2861 `_: " +"AttributeError in getLinkDict during PDF Merge" +msgstr "" + +#: ../../../changes.txt:852 11a45b3c36814980abef6db057685eef +msgid "" +"**Fixed** `2871 `_: " +"KeyError in getLinkDict during PDF merge" +msgstr "" + +#: ../../../changes.txt:853 f6127a8b2c46475da27184f59e39e7ef +msgid "" +"**Fixed** `2886 `_: Error" +" in Skeleton for Named Link Destinations" +msgstr "" + +#: ../../../changes.txt:855 ../../../changes.txt:888 +#: 586f106b986842b08028b0f5f627f7ca d8af7ffde72c450d915b0463309a4314 +msgid "Bug fixes (rebased and classic implementations):" +msgstr "" + +#: ../../../changes.txt:857 b33ad6378a46458cb75ad39284db9641 +msgid "" +"**Fixed** `2885 `_: " +"pymupdf find tables too slow" +msgstr "" + +#: ../../../changes.txt:861 ../../../changes.txt:901 +#: 4728a8ecae8e40aa81aac714354f5cd8 dfafbc41ed064d4e9417228eef3b8869 +msgid "Rebased implementation:" +msgstr "" + +#: ../../../changes.txt:863 d5e148c0135c420faee01c379333d863 +msgid "" +"`Page.insert_htmlbox()`: new, much more powerful alternative to " +"`Page.insert_textbox()` or `TextWriter.fill_textbox()`, using `Story`." +msgstr "" + +#: ../../../changes.txt:864 61b9573e3d5140e89cab3a5f2306ae99 +msgid "`Story.fit*()`: new methods for fitting a Story into an expanded rect." +msgstr "" + +#: ../../../changes.txt:865 2c6161c5bc974598a30735ae4181b27c +msgid "`Story.write_with_links()`: add support for external links." +msgstr "" + +#: ../../../changes.txt:866 98b4230a54804ef4acb0b180f44e9ae5 +msgid "" +"`Document.language()`: fixed to use MuPDF's new " +"`mupdf.fz_string_from_text_language2()`." +msgstr "" + +#: ../../../changes.txt:867 40995750950149ef83a0d8f6ddad76ef +msgid "`Document.subset_fonts()` - fixed." +msgstr "" + +#: ../../../changes.txt:868 8f0552b58651471a97e511567a32e0c2 +msgid "Fixed internal `Archive._add_treeitem()` method." +msgstr "" + +#: ../../../changes.txt:869 87b1222b024441dea38cf29daba33184 +msgid "" +"Fixed `fitz_new.__doc__` to contain PyMuPDF and Python version " +"information, and OS name." +msgstr "" + +#: ../../../changes.txt:870 386cb55b9f0c4087ae1996bb06b51a33 +msgid "" +"Removed use of `(*args, **kwargs)` in API, we now specify keyword args " +"explicitly." +msgstr "" + +#: ../../../changes.txt:871 c59b0cc5fecc4bdd9562cd2ce75075d3 +msgid "Work with new MuPDF Python exception classes." +msgstr "" + +#: ../../../changes.txt:873 e3e5a541241440ed9d367ef19430a835 +msgid "" +"Fixed bug where `button_states()` returns None when `/AP` points to an " +"indirect object." +msgstr "" + +#: ../../../changes.txt:874 5af1990cff754cd89a3aa438eb9d383b +msgid "" +"Fixed pillow test to not ignore all errors, and install pillow when " +"testing." +msgstr "" + +#: ../../../changes.txt:875 1f1299ee32f346b6b3729cf40091e92c +msgid "" +"Added test for `fitz.css_for_pymupdf_font()` (uses package `pymupdf-" +"fonts`)." +msgstr "" + +#: ../../../changes.txt:876 8a8e3b21e7fe474598e60c7c3d327f5b +msgid "Simplified Github Actions test specifications." +msgstr "" + +#: ../../../changes.txt:877 285e6db854b84f7fab4a2c650152d2a2 +msgid "Updated `tests/README.md`." +msgstr "" + +#: ../../../changes.txt:880 25533a44e1824331b867fb200db45187 +msgid "**Changes in version 1.23.7 (2023-11-30)**" +msgstr "" + +#: ../../../changes.txt:882 583b1de242bb4157b4445d6446ee6bbb +msgid "Bug fixes in rebased implementation, not fixed in classic implementation:" +msgstr "" + +#: ../../../changes.txt:884 235fe8226daa4b0abbac192cae7fd37a +msgid "" +"**Fixed** `2232 `_: " +"Geometry helper classes should support keyword arguments" +msgstr "" + +#: ../../../changes.txt:885 e575834fcd73477b81b61829f22f495d +msgid "" +"**Fixed** `2788 `_: " +"Problem with get_toc in pymupdf 1.23.6" +msgstr "" + +#: ../../../changes.txt:886 48886ca53b3d4f75bb21c99311bdb5f3 +msgid "" +"**Fixed** `2791 `_: " +"Experiencing small memory leak in save()" +msgstr "" + +#: ../../../changes.txt:890 10a6b50400ed447497a29b25510f48e4 +msgid "" +"**Fixed** `2736 `_: " +"Failure when set cropbox with mediabox negative value" +msgstr "" + +#: ../../../changes.txt:891 2a0b37db8390439fbb646a9c37103f52 +msgid "" +"**Fixed** `2749 `_: " +"RuntimeError: cycle in structure tree" +msgstr "" + +#: ../../../changes.txt:892 3d06cf904a104c3d90b146fa78bf69ef +msgid "" +"**Fixed** `2753 `_: " +"Story.write_with_links will ignore everything after the first \"page " +"break\" in the HTML." +msgstr "" + +#: ../../../changes.txt:893 8a53b50ea2524665955b3157294a2b2d +msgid "" +"**Fixed** `2812 `_: " +"find_tables on landscape page generates reversed text" +msgstr "" + +#: ../../../changes.txt:894 888fb15372974a36b1fe3d66ef22e391 +msgid "" +"**Fixed** `2829 `_: " +"[cannot create /Annot for kind] is still printed despite #2345 is closed." +msgstr "" + +#: ../../../changes.txt:895 4bddd57842e24f349a1d201577c84f44 +msgid "" +"**Fixed** `2841 `_: " +"Unexpected KeyError when using scrub with fitz_new" +msgstr "" + +#: ../../../changes.txt:897 94aee473c47b4b39a4c3c4cb53567f41 +msgid "Use MuPDF-1.23.7." +msgstr "" + +#: ../../../changes.txt:903 bec49d14f00548e4b548e3392c71e4f9 +msgid "Added flake8 code checking to test suite, and made various fixes." +msgstr "" + +#: ../../../changes.txt:904 5c2f03ef2da94a85b04bdcaa6b4452b2 +msgid "" +"Disable diagnostics during Document constructor to match classic " +"implementation." +msgstr "" + +#: ../../../changes.txt:906 614caa01606b4df1a5f36c79ba7597dc +msgid "" +"Additional fix to `2553 " +"`_: Invalid characters in" +" versions >= 1.22" +msgstr "" + +#: ../../../changes.txt:907 249c2e20b6584ff5bde073c96d14cef8 +msgid "" +"Fixed `MuPDF Bug 707324 " +"`_: Story: HTML " +"table row background color repeated incorrectly" +msgstr "" + +#: ../../../changes.txt:908 40274b78dadb4924955e4fcee62c82e9 +msgid "Added `scripts/test.py`, for simple build+test of PyMuPDF git checkout." +msgstr "" + +#: ../../../changes.txt:909 f4348c71af1f40479d9eb7d08fdba3aa +msgid "Added `fitz.pymupdf_version_tuple`, e.g. `(1, 23, 6)`." +msgstr "" + +#: ../../../changes.txt:910 0125831c6ca04067b9605b86aefa7ebb +msgid "" +"Restored mistakenly-reverted fix for `2345 " +"`_: Turn off print " +"statements in utils.py" +msgstr "" + +#: ../../../changes.txt:911 ecf3f5029df1424ca67fedcd1eac52e1 +msgid "" +"Include any trailing `... repeated times...` text in warnings " +"returned by `mupdf_warnings()` (rebased only)." +msgstr "" + +#: ../../../changes.txt:915 dae1fc58258f4a368eb9b9e73fdc3418 +msgid "**Changes in version 1.23.6 (2023-11-06)**" +msgstr "" + +#: ../../../changes.txt:919 4b44a7b92e344051be42fcb7b2fd86ca +msgid "" +"**Fixed** `2553 `_: " +"Invalid characters in versions >= 1.22" +msgstr "" + +#: ../../../changes.txt:920 c22c67eda878468e84fdce9860d9470e +msgid "" +"**Fixed** `2608 `_: " +"Incorrect utf32 text extraction (high & low surrogates are split)" +msgstr "" + +#: ../../../changes.txt:921 ../../../changes.txt:944 +#: 6e09bf78b2e8482189006eea2acba2bb 9836ec3981e942eab17d9cf2073f8760 +msgid "" +"**Fixed** `2710 `_: " +"page.rect and text location wrong / differing from older version" +msgstr "" + +#: ../../../changes.txt:922 cf4d2d380bbc48eb852fc95710f97677 +msgid "" +"**Fixed** `2774 `_: wrong" +" encoding for \"\\?\" character when sort=True" +msgstr "" + +#: ../../../changes.txt:923 1f6c84f41d254543a72dc62354b851c3 +msgid "" +"**Fixed** `2775 `_: " +"fitz_new does not work with python3.10 or earlier" +msgstr "" + +#: ../../../changes.txt:924 87951ce6577046f9b2d94ccd7a8d15cf +msgid "" +"**Fixed** `2777 `_: With " +"fitz_new, wrong type for Page.mediabox" +msgstr "" + +#: ../../../changes.txt:928 8d946635456d4d35be553ed4ef5c4c20 +msgid "Use MuPDF-1.23.5." +msgstr "" + +#: ../../../changes.txt:929 f7013808115244fc929c4e70b737e840 +msgid "Added Document.resolve_names() (rebased implementation only)." +msgstr "" + +#: ../../../changes.txt:932 fc23c2f02e0f4d6eaaf921039e93a96f +msgid "**Changes in version 1.23.5 (2023-10-11)**" +msgstr "" + +#: ../../../changes.txt:936 6009b9edb3184a869f2ce12fd73c20bd +msgid "" +"**Fixed** `2341 `_: " +"Handling negative values in the zoom section for LINK_GOTO in linkDest" +msgstr "" + +#: ../../../changes.txt:937 0dd0674d2f134d99b73659b6f62b19a1 +msgid "" +"**Fixed** `2522 `_: Typo " +"in set_layer() - NameError: name 'f' is not defined" +msgstr "" + +#: ../../../changes.txt:938 c5288d50055d4c5da1a7e0df44a0ac43 +msgid "" +"**Fixed** `2548 `_: Fitz " +"freezes on some PDFs when calling the fitz.Page.get_text_blocks method." +msgstr "" + +#: ../../../changes.txt:939 5ff84b8fb6be4feb8cdbf5edbbb0abaa +msgid "" +"**Fixed** `2596 `_: " +"save(garbage=3) breaks get_pixmap() with side effect" +msgstr "" + +#: ../../../changes.txt:940 123cb55d916f49108937ed096e7ddb25 +msgid "" +"**Fixed** `2635 `_: " +"\"clean=True\" makes objects invisible in the pdf" +msgstr "" + +#: ../../../changes.txt:941 ../../../changes.txt:969 +#: 7654b31ea4c84890bf69fa4688837d78 8eef4b86cdec4085ae3f96a960c2ce20 +msgid "" +"**Fixed** `2637 `_: " +"Page.insert_textbox incorrectly handles the last word if it starts a new " +"line" +msgstr "" + +#: ../../../changes.txt:942 bcc1d82ed2934ae49084a16db226ddf1 +msgid "" +"**Fixed** `2699 `_: " +"extract paragraph with below table" +msgstr "" + +#: ../../../changes.txt:943 75014a04729c49dd8bc091fb9ba66444 +msgid "" +"**Fixed** `2703 `_: Wrong" +" fontsize calculation in corner cases (\"page.get_texttrace()\")" +msgstr "" + +#: ../../../changes.txt:945 f469c85d192646e5aab002778053d0a5 +msgid "" +"**Fixed** `2723 `_: When " +"will a Python 3.12 wheel be available?" +msgstr "" + +#: ../../../changes.txt:946 0fa82c24bbeb42d2be8390fbba927f0d +msgid "" +"**Fixed** `2730 `_: " +"persistent get_text() formatting" +msgstr "" + +#: ../../../changes.txt:950 72690f1bf41e43bda38ccd424aacca3c +msgid "Use MuPDF-1.23.4." +msgstr "" + +#: ../../../changes.txt:951 30ff227bd04646bdb17474afeccd9981 +msgid "Fix optimisation flags with system installs." +msgstr "" + +#: ../../../changes.txt:952 6906912e05f34a26b46e5f8c0b9dd6e0 +msgid "" +"Fixed the problem that the clip parameter does not take effect during " +"table recognition" +msgstr "" + +#: ../../../changes.txt:953 70a6a8cd8dcc4c90acf6957467999a4f +msgid "Support Pillow mode \"RGBa\"" +msgstr "" + +#: ../../../changes.txt:954 500cf538fcc84a5d88b63e846009e940 +msgid "Support extra word delimiters" +msgstr "" + +#: ../../../changes.txt:955 c5a98d3b81ca4f3b92ee9b55641041eb +msgid "Support checking valid PDF name objects" +msgstr "" + +#: ../../../changes.txt:958 9780d5d181924c1f98f6e987dee32f09 +msgid "**Changes in version 1.23.4 (2023-09-26)**" +msgstr "" + +#: ../../../changes.txt:960 89f0cd5d2bdb4c2a86b8130279eaafbd +msgid "Improved build instructions." +msgstr "" + +#: ../../../changes.txt:961 ba599b28412843c2b4970a1f78cfe599 +msgid "Fixed Tesseract in rebased implementation." +msgstr "" + +#: ../../../changes.txt:962 ad9696206b1147e8a6e75796ad68f204 +msgid "Improvements to build/install with system MuPDF." +msgstr "" + +#: ../../../changes.txt:964 0b8845dfb30c4a3ebf1bab255c2231f3 +msgid "Fixed rebased bug in _insert_image()." +msgstr "" + +#: ../../../changes.txt:968 0c9e490c29db4714af654a120396b8e6 +msgid "" +"**Fixed** `2556 `_: " +"Segmentation fault at caling get_cdrawings(extended=True)" +msgstr "" + +#: ../../../changes.txt:970 b47698c2a99a4d67be8d09ea95ac3f34 +msgid "" +"**Fixed** `2683 `_: " +"Windows sdist build failure - non-quoting of path and using UNIX which " +"command" +msgstr "" + +#: ../../../changes.txt:971 2e8eaa9c953340e3b7f9cab5aa9c144a +msgid "" +"**Fixed** `2691 `_: " +"Page.get_textpage_ocr() bug in rebased fitz_new version" +msgstr "" + +#: ../../../changes.txt:972 01bf199cda4f40eb80f58292500d052e +msgid "" +"**Fixed** `2692 `_: " +"Page.get_pixmap(clip=Rect()) bug in rebased fitz_new version" +msgstr "" + +#: ../../../changes.txt:975 e635ca7f3a7144c7b155a0d53f366bc4 +msgid "**Changes in version 1.23.3 (2023-08-31)**" +msgstr "" + +#: ../../../changes.txt:977 b622f722651945db8c9065920951a027 +msgid "Fixed use of Tesseract for OCR." +msgstr "" + +#: ../../../changes.txt:980 0b6d628f664246e1af3613f80ef88e31 +msgid "**Changes in version 1.23.2 (2023-08-28)**" +msgstr "" + +#: ../../../changes.txt:982 5b021aef8d8846649ea00de593b61159 +msgid "" +"**Fixed** `#2613 `_: " +"release 1.23.0 not MacOS-arm64 compatible" +msgstr "" + +#: ../../../changes.txt:985 18a26e38b78544d8bed38a8639d031b2 +msgid "**Changes in version 1.23.1 (2023-08-24)**" +msgstr "" + +#: ../../../changes.txt:987 e62a756953074ab996467e70681646a5 +msgid "Updated README and package summary description." +msgstr "" + +#: ../../../changes.txt:990 a21901dee64f4a1899288f13aaebfd95 +msgid "" +"Fixed a problem on some Linux installations with Python-3.10 (and " +"possibly earlier versions) where `import fitz` failed with `ImportError: " +"libcrypt.so.2: cannot open shared object file: No such file or " +"directory`." +msgstr "" + +#: ../../../changes.txt:996 57b658dc047548bbbf4b37367da3eb2a +msgid "Fixed `incompatible architecture` error on MacOS arm64." +msgstr "" + +#: ../../../changes.txt:999 d42dcb0953b54804aee03e472206b6ee +msgid "" +"Fixed installation warning from Poetry about missing entry in wheels' " +"RECORD files." +msgstr "" + +#: ../../../changes.txt:1003 d3a8e8bb4f464faf90ac4e4f2d3d4257 +msgid "**Changes in version 1.23.0 (2023-08-22)**" +msgstr "" + +#: ../../../changes.txt:1005 73d894b0d405493fa197c028fc016e16 +msgid "Add method `find_tables()` to the `Page` object." +msgstr "" + +#: ../../../changes.txt:1007 0381413ce0b8400e912c1027cc2af4d5 +msgid "" +"This allows locating tables on any supported document page, and " +"extracting table content by cell." +msgstr "" + +#: ../../../changes.txt:1010 7e8f7d58a9bc4339b09e0b5f9ac4ee2d +msgid "New \"rebased\" implementation of PyMuPDF." +msgstr "" + +#: ../../../changes.txt:1012 9fc6a3029b014900b58e9338c2babb18 +msgid "" +"The rebased implementation is available as Python module `fitz_new`. It " +"can be used as a drop-in replacement with `import fitz_new as fitz`." +msgstr "" + +#: ../../../changes.txt:1017 738d34d7aebd43ff89c69b82aa7d46e8 +msgid "" +"Python-independent MuPDF libraries are now in a second wheel called " +"`PyMuPDFb` that will be automatically installed by pip." +msgstr "" + +#: ../../../changes.txt:1020 bca75d93dfe54dd0b930fe20a80af757 +msgid "" +"This is to save space on pypi.org - a full release only needs one " +"`PyMuPDFb` wheel for each OS." +msgstr "" + +#: ../../../changes.txt:1025 5ea8868d14804747b7a032703ca8e9b5 +msgid "" +"**Fixed** `#2542 `_: " +"fitz.utils.scrub AttributeError Annot object has no attribute fileUpd " +"inside" +msgstr "" + +#: ../../../changes.txt:1026 d834522e9a47458f8df14e8f629b6a80 +msgid "" +"**Fixed** `#2533 `_: " +"get_texttrace returned a incorrect character bbox" +msgstr "" + +#: ../../../changes.txt:1027 fa9e61cc88804262a37529823e6ae230 +msgid "" +"**Fixed** `#2537 `_: " +"Validation when setting a grouped RadioButton throws a RuntimeError: path" +" to 'V' has indirects" +msgstr "" + +#: ../../../changes.txt:1029 ../../../changes.txt:1829 +#: ../../../changes.txt:1993 8bbac0324fdd4e349f9a5fa96e73089b +#: eaf8cd2128cd4c5c877473f9bd315793 ec5d869f0874493ea625e47c43bf59f8 +msgid "Other changes:" +msgstr "" + +#: ../../../changes.txt:1031 038268fa0e3d4530b127e02b008b0de5 +msgid "Dropped support for Python-3.7." +msgstr "" + +#: ../../../changes.txt:1033 2f238ba63e474abd882d994c5d8a6c7d +msgid "Fix for wrong page / annot `/Contents` cleaning." +msgstr "" + +#: ../../../changes.txt:1035 8de4c1abb94c4af0ae76a8bc208f2498 +msgid "We need to set `pdf_filter_options::no_update` to zero." +msgstr "" + +#: ../../../changes.txt:1037 3be90380c41041df9c0e8a4b1514f49a +msgid "Added new function get_tessdata()." +msgstr "" + +#: ../../../changes.txt:1039 e2dd7eb60faf45958693b36439454d65 +msgid "Cope with problem `/Annot` arrays." +msgstr "" + +#: ../../../changes.txt:1041 f3a9365058d14581b262aefd3dc3f5cd +msgid "" +"When copying page annotations in method Document.insert_pdf we previously" +" did not check the validity of members of the `/Annots` array. For " +"faulty members (like null or non-dictionary items) this could cause " +"unnecessary exceptions. This fix implements more checks and skips such " +"array items." +msgstr "" + +#: ../../../changes.txt:1047 15b514dde25a435db2d8761712b2b511 +msgid "Additional annotation type checks." +msgstr "" + +#: ../../../changes.txt:1049 3d28a76d5772428ca847e78115435df5 +msgid "" +"We did not previously check for annotation type when getting / setting " +"annotation border properties. This is now checked in accordance with " +"MuPDF." +msgstr "" + +#: ../../../changes.txt:1053 1db4c46ee27f4603907a8be59ce434bd +msgid "Increase fault tolerance." +msgstr "" + +#: ../../../changes.txt:1055 cfeadbde1d1a4bd28e4394f298039395 +msgid "" +"Avoid exceptions in method `insert_pdf()` when source pages contains " +"invalid items in the `/Annots` array." +msgstr "" + +#: ../../../changes.txt:1058 e95424ad171f4befacebac209026dccf +msgid "Return empty border dict for applicable annots." +msgstr "" + +#: ../../../changes.txt:1060 d32e47da50ad4e1bbec4315e5deb475a +msgid "" +"We previously were returning a non-empty border dictionary even for non-" +"applicable annotation types. We now return the empty dictionary `{}` in " +"these cases. This requires some corresponding changes in the annotation " +"`.update()` method, namely for dashes and border width." +msgstr "" + +#: ../../../changes.txt:1065 a743fc735f8e4751aa4c9fb35972a0e6 +msgid "Restrict `set_rect` to applicable annot types." +msgstr "" + +#: ../../../changes.txt:1067 33dd0a503f44425489708bfc1eba3781 +msgid "" +"We were insufficiently excluding non-applicable annotation types from " +"`set_rect()` method. We now let MuPDF catch unsupported annotations and " +"return `False` in these cases." +msgstr "" + +#: ../../../changes.txt:1071 3c981f3c14264a87a5e5864716eb590f +msgid "Wrong fontsize computation in `page.get_texttrace()`." +msgstr "" + +#: ../../../changes.txt:1073 d2bca3e2d5044d88b32f20c0e92bf049 +msgid "" +"When computing the font size we were using the final text transformation " +"matrix, where we should have taken `span->trm` instead. This is " +"corrected here." +msgstr "" + +#: ../../../changes.txt:1077 4e4387c698a9431c875e14e61bfe5993 +msgid "Updates to cope with changes to latest MuPDF." +msgstr "" + +#: ../../../changes.txt:1079 68949888709c441996bba638e370acdd +msgid "`pdf_lookup_anchor()` has been removed." +msgstr "" + +#: ../../../changes.txt:1081 8e5efc45233c429083dbb2e7710b8e46 +msgid "Update fill_textbox to better respect rect.width" +msgstr "" + +#: ../../../changes.txt:1083 193ee81062494935a4b6e5f7a2d5d470 +msgid "" +"The function norm_words in fill_textbox had a bug in its last loop, " +"appending n+1 characters when actually measuring width of n characters. " +"It led to a bug in fill_texbox when you tried to write a single word " +"mostly composed of \"wide\" letters (M,m, W, w...), causing the written " +"text to exceed the given rect." +msgstr "" + +#: ../../../changes.txt:1089 6719947ef5ad4b44b30317c8cd0d27f0 +msgid "The fix was just to replace n+1 by n." +msgstr "" + +#: ../../../changes.txt:1091 a7647cf90c074ee7bf1e22c92b11aad2 +msgid "Add `script_focus` and `script_blur` options to widget." +msgstr "" + +#: ../../../changes.txt:1095 e7f3a5c65c2a4b4095652b5ee87ecf26 +msgid "**Changes in version 1.22.5 (2023-06-21)**" +msgstr "" + +#: ../../../changes.txt:1097 e0f897c4559d4185828a667deab0b5e1 +msgid "This release uses ``MuPDF-1.22.2``." +msgstr "" + +#: ../../../changes.txt:1101 d01a2996634d4afd910a1b19f88fe54d +msgid "" +"**Fixed** `#2365 `_: " +"Incorrect dictionary values for type \"fs\" drawings." +msgstr "" + +#: ../../../changes.txt:1102 37372904c5fc4a288d1bcfae3658be44 +msgid "" +"**Fixed** `#2391 `_: " +"Check box automatically uncheck when we update same checkbox more than 1 " +"times." +msgstr "" + +#: ../../../changes.txt:1103 da93bf73beab4c7394a870d6ef00aa74 +msgid "" +"**Fixed** `#2400 `_: Gaps" +" within text of same line not filled with spaces." +msgstr "" + +#: ../../../changes.txt:1104 c7bbdcecf83d4af18820e8854d6ed2f7 +msgid "" +"**Fixed** `#2404 `_: " +"Blacklining an image in PDF won't remove underlying content in version " +"1.22.X." +msgstr "" + +#: ../../../changes.txt:1105 5dab0dae25104c5fac71c4bea81bd2ab +msgid "" +"**Fixed** `#2430 `_: " +"Incorrectly reducing ref count of Py_None." +msgstr "" + +#: ../../../changes.txt:1106 28dd826ad25d4fe989f269746f3f3beb +msgid "" +"**Fixed** `#2450 `_: " +"Empty fill color and fill opacity for paths with fill and stroke " +"operations with 1.22.*" +msgstr "" + +#: ../../../changes.txt:1107 6eeb2a8ef825424fad2bdbac330da13d +msgid "" +"**Fixed** `#2462 `_: " +"Error at \"get_drawing(extended=True )\"" +msgstr "" + +#: ../../../changes.txt:1108 d83cacb33bfb43289ba1cac19694532b +msgid "" +"**Fixed** `#2468 `_: " +"Decode error when trying to get drawings" +msgstr "" + +#: ../../../changes.txt:1109 6816013f54d4446bb7b60530a6e49ad6 +msgid "" +"**Fixed** `#2710 `_: " +"page.rect and text location wrong / differing from older version" +msgstr "" + +#: ../../../changes.txt:1110 2a55b8aad74742ba905c8261e774e40e +msgid "" +"**Fixed** `#2723 `_: When" +" will a Python 3.12 wheel be available?" +msgstr "" + +#: ../../../changes.txt:1112 89917a32f35f46348baa0a3c330b174e +msgid "New features:" +msgstr "" + +#: ../../../changes.txt:1114 84e05da539e34fb1b20339210c836492 +msgid "" +"**Changed** Annotations now support \"cloudy\" borders. The " +":attr:`Annot.border` property has the new item `clouds`, and method " +":meth:`Annot.set_border` supports the corresponding `clouds` argument." +msgstr "" + +#: ../../../changes.txt:1118 bce76d38c410446ba81647f0896ef355 +msgid "" +"**Changed** Radio button widgets in the same RB group are now " +"consistently updated **if the group is defined in the standard way**." +msgstr "" + +#: ../../../changes.txt:1121 f53cb26ab76e43dfbbd2f4c2efc5a821 +msgid "" +"**Added** Support for the `/Locked` key in PDF Optional Content. This " +"array inside the catalog entry `/OCProperties` can now be extracted and " +"set." +msgstr "" + +#: ../../../changes.txt:1124 def96ff824944143acfaffad2e689880 +msgid "" +"**Added** Support for new parameter `tessdata` in OCR functions. New " +"function :meth:`get_tessdata` locates the language support folder if " +"Tesseract is installed." +msgstr "" + +#: ../../../changes.txt:1129 ab43957ddc794c8a9b04c475426c4984 +msgid "**Changes in version 1.22.3 (2023-05-10)**" +msgstr "" + +#: ../../../changes.txt:1131 ../../../changes.txt:1140 +#: ../../../changes.txt:1149 ../../../changes.txt:1161 +#: 03ca33346d3944328c25a5c144420613 07f4c427f5f544f5bd7d767983484060 +#: 0fb05318e4944beeb5124143ee76589f d7e781b29559409897126ce3786cd3e7 +msgid "This release uses ``MuPDF-1.22.0``." +msgstr "" + +#: ../../../changes.txt:1135 91c90d81ef504a9d8aeaffb101145d25 +msgid "" +"**Fixed** `#2333 `_: " +"Unable to set any of button radio group in form" +msgstr "" + +#: ../../../changes.txt:1138 016b5d8017ec4b46aa0db0ca2575d91b +msgid "**Changes in version 1.22.2 (2023-04-26)**" +msgstr "" + +#: ../../../changes.txt:1144 2a883f3384d24cb4b50c413be7b7248d +msgid "" +"**Fixed** `#2369 `_: " +"Image extraction bugs with newer versions" +msgstr "" + +#: ../../../changes.txt:1147 558df7978ec349b98ce43b9afb00b02e +msgid "**Changes in version 1.22.1 (2023-04-18)**" +msgstr "" + +#: ../../../changes.txt:1153 2f26d737893143a0b598c60bbf17e7c1 +msgid "" +"**Fixed** `#2345 `_: Turn" +" off print statements in utils.py" +msgstr "" + +#: ../../../changes.txt:1154 88393d4c4b1c4de88301c4a0c889142a +msgid "" +"**Fixed** `#2348 `_: " +"extract_image returns an extension \"flate\" instead of \"png\"" +msgstr "" + +#: ../../../changes.txt:1155 a669f7b9c4be4a208b4f533e8f283873 +msgid "" +"**Fixed** `#2350 `_: Can " +"not make widget (checkbox) to read-only by adding flags " +"PDF_FIELD_IS_READ_ONLY" +msgstr "" + +#: ../../../changes.txt:1156 2b3bdc6748004a1aa84e2d6b31562785 +msgid "" +"**Fixed** `#2355 `_: " +"1.22.0 error when using get_toc (AttributeError: 'SwigPyObject' object " +"has no attribute)" +msgstr "" + +#: ../../../changes.txt:1159 350bcb28a30944fdacb28843123738f2 +msgid "**Changes in version 1.22.0 (2023-04-14)**" +msgstr "" + +#: ../../../changes.txt:1163 44f570ec1df54e41a946bffb631b53c9 +msgid "Behavioural changes:" +msgstr "" + +#: ../../../changes.txt:1165 3826a16556c6458d8e1e603e51ffd973 +msgid "" +"Text extraction now includes glyphs that overlap with clip rect; " +"previously they were included only if they were entirely contained within" +" the clip rect." +msgstr "" + +#: ../../../changes.txt:1171 3c30c3109974444198cf37e90e8ecabb +msgid "" +"**Fixed** `#1763 `_: " +"Interactive(smartform) form PDF calculation not working in pymupdf" +msgstr "" + +#: ../../../changes.txt:1172 af42fd504f0640239d81c483794b7e87 +msgid "" +"**Fixed** `#1995 `_: " +"RuntimeError: image is too high for a long paged pdf file when trying" +msgstr "" + +#: ../../../changes.txt:1173 c1d1a1930cec45f3aeb64999517485da +msgid "" +"**Fixed** `#2093 `_: " +"Image in pdf changes color after applying redactions" +msgstr "" + +#: ../../../changes.txt:1174 44f1654607db4a3a8bea70e0742f243f +msgid "" +"**Fixed** `#2108 `_: " +"Redaction removing more text than expected" +msgstr "" + +#: ../../../changes.txt:1175 13a17730caa849b68c2ae08ecb2ca4d8 +msgid "" +"**Fixed** `#2141 `_: " +"Failed to read JPX header when trying to get blocks" +msgstr "" + +#: ../../../changes.txt:1176 59f63490e3084544a37ad382c51db86f +msgid "" +"**Fixed** `#2144 `_: " +"Replace image throws an error" +msgstr "" + +#: ../../../changes.txt:1177 126c1e66cfb94388a6f083d43390e614 +msgid "" +"**Fixed** `#2146 `_: " +"Wrong Handling of Reference Count of \"None\" Object" +msgstr "" + +#: ../../../changes.txt:1178 c2df8c498e4c4870b10129059c78dc55 +msgid "" +"**Fixed** `#2161 `_: " +"Support adding images as pages directly" +msgstr "" + +#: ../../../changes.txt:1179 fa791f2adef34202b8f713657d47816f +msgid "" +"**Fixed** `#2168 `_: " +"``page.add_highlight_annot(start=pointa, stop=pointb)`` not working" +msgstr "" + +#: ../../../changes.txt:1180 e34fc762c8864c6db478c2a49d9e26ef +msgid "" +"**Fixed** `#2173 `_: " +"Double free of ``Colorspace`` used in ``Pixmap``" +msgstr "" + +#: ../../../changes.txt:1181 18b7a0bf38a14b94a56b1ba2feea09b9 +msgid "" +"**Fixed** `#2179 `_: " +"Incorrect documentation for ``pixmap.tint_with()``" +msgstr "" + +#: ../../../changes.txt:1182 30fdc624e4da4b0da0d438177b35bb4d +msgid "" +"**Fixed** `#2208 `_: " +"Pushbutton widget appears as check box" +msgstr "" + +#: ../../../changes.txt:1183 4d209898906843229670a95f12041360 +msgid "" +"**Fixed** `#2210 `_: " +"``apply_redactions()`` move pdf text to right after redaction" +msgstr "" + +#: ../../../changes.txt:1184 e6423ce2ee3e42cd842814a3ea98cae3 +msgid "" +"**Fixed** `#2220 `_: " +"``Page.delete_image()`` | object has no attribute ``is_image``" +msgstr "" + +#: ../../../changes.txt:1185 c6210c2a77804a929b68c35607fa6823 +msgid "" +"**Fixed** `#2228 `_: open" +" some pdf cost too much time" +msgstr "" + +#: ../../../changes.txt:1186 b599a24386c74a8c913ae912d614557a +msgid "" +"**Fixed** `#2238 `_: Bug " +"- can not extract data from file in the newest version 1.21.1" +msgstr "" + +#: ../../../changes.txt:1187 b350fda19a5149f5848f62509b82c19a +msgid "" +"**Fixed** `#2242 `_: " +"Python quits silently in ``Story.element_positions()`` if callback " +"function prototype is wrong" +msgstr "" + +#: ../../../changes.txt:1188 e6dc566181194da487883bc82530e4c5 +msgid "" +"**Fixed** `#2246 `_: " +"TextWriter write text in a wrong position" +msgstr "" + +#: ../../../changes.txt:1189 3a1d2b5a77714081819e4147e4876ed9 +msgid "" +"**Fixed** `#2248 `_: " +"After redacting the content, the position of the remaining text changes" +msgstr "" + +#: ../../../changes.txt:1190 be48ed21d0f44f6dba17fab6201c8b78 +msgid "" +"**Fixed** `#2250 `_: " +"docs: unclear or broken link in page.rst" +msgstr "" + +#: ../../../changes.txt:1191 1f64252d8b684958a8360570bc1b540a +msgid "" +"**Fixed** `#2251 `_: " +"mupdf_display_errors does not apply to Pixmap when loading broken image" +msgstr "" + +#: ../../../changes.txt:1192 e8ac54952809456694e4b366c0992b6d +msgid "" +"**Fixed** `#2270 `_: " +"``Annot.get_text(\"words\")`` - doesn't return the first line of words" +msgstr "" + +#: ../../../changes.txt:1193 982ad8c99b6f4f739e357ee11cd3b514 +msgid "" +"**Fixed** `#2275 `_: " +"insert_image: document that rotations are counterclockwise" +msgstr "" + +#: ../../../changes.txt:1194 eb8b181a15924a07abee72fea8a50ce9 +msgid "" +"**Fixed** `#2278 `_: Can " +"not make widget (checkbox) to read-only by adding flags " +"PDF_FIELD_IS_READ_ONLY" +msgstr "" + +#: ../../../changes.txt:1195 2dd5e761dcb94cde9a62d9e95e521f8a +msgid "" +"**Fixed** `#2290 `_: " +"Different image format/data from Page.get_text(\"dict\") and " +"Fitz.get_page_images()" +msgstr "" + +#: ../../../changes.txt:1196 b626d2a058c1457bb8fc7b175049d787 +msgid "" +"**Fixed** `#2293 `_: 68 " +"failed tests when installing from sdist on my box" +msgstr "" + +#: ../../../changes.txt:1197 c7c26b4cf78644b98a99810e21c743c5 +msgid "" +"**Fixed** `#2300 `_: Too " +"much recursion in tree (parents), makes program terminate" +msgstr "" + +#: ../../../changes.txt:1198 53cf50d333db4541900b708daa262c2d +msgid "" +"**Fixed** `#2322 `_: " +"add_highlight_annot using clip generates \"A Number is Out of Range\" " +"error in PDF" +msgstr "" + +#: ../../../changes.txt:1202 dc34fa0179bf4c0097c613d4e4d7cd5d +msgid "" +"Add key \"/AS (Yes)\" to the underlying annot object of a selected button" +" form field." +msgstr "" + +#: ../../../changes.txt:1204 851dc87410c04af3811c1fce6e46d473 +msgid "" +"Remove unused ``Document`` methods ``has_xref_streams()`` and " +"``has_old_style_xrefs()`` as MuPDF equivalents have been removed." +msgstr "" + +#: ../../../changes.txt:1207 85d63fb357cc4ae6843661251e81671d +msgid "" +"Add new ``Document`` methods and properties for getting/setting " +"``/PageMode``, ``/PageLayout`` and ``/MarkInfo``." +msgstr "" + +#: ../../../changes.txt:1210 4692f2e3d07246f4b715a11b16c41826 +msgid "" +"New ``Document`` property ``version_count``, which contains the number of" +" incremental saves plus one." +msgstr "" + +#: ../../../changes.txt:1213 35dcac5f24064e0aa4e37ed607d7ee66 +msgid "" +"New ``Document`` property ``is_fast_webaccess`` which tells whether the " +"document is linearized." +msgstr "" + +#: ../../../changes.txt:1216 123a5e07f4e14c818cdcd4df6eb3afee +msgid "``DocumentWriter`` is now a context manager." +msgstr "" + +#: ../../../changes.txt:1218 78db04ba2a9c48b7ad95cf5a7935dbd9 +msgid "Add support for ``Pixmap`` JPEG output." +msgstr "" + +#: ../../../changes.txt:1220 75aea400570e4b6e9fec59457f4f883e +msgid "Add support for drawing rectangles with rounded corners." +msgstr "" + +#: ../../../changes.txt:1222 8f7ef5836f6341ec93a07f437355992f +msgid "``get_drawings()``: added optional ``extended`` arg." +msgstr "" + +#: ../../../changes.txt:1224 e60534dd491e4153a778b53b862c3666 +msgid "" +"Fixed issue where trace devices' state was not being initialised " +"correctly; data returned from things like ``fitz.Page.get_texttrace()`` " +"might be slightly altered, e.g. ``linewidth`` values." +msgstr "" + +#: ../../../changes.txt:1228 5ce1cdb70dd7438d9abe42cb5886dddc +msgid "" +"Output warning to ``stderr`` if it looks like we are being used with " +"current directory containing an invalid ``fitz/`` directory, because this" +" can break import of ``fitz`` module. For example this happens if one " +"attempts to use ``fitz`` when current directory is a PyMuPDF checkout." +msgstr "" + +#: ../../../changes.txt:1234 ../../../changes.txt:1289 +#: 349693fd237b4cbc8a22aa6cf3da10f1 8656870c12324ba69e9770b2a5f4fad6 +msgid "Documentation:" +msgstr "" + +#: ../../../changes.txt:1236 d223e4e942aa4b40ae6748f3f806de5d +msgid "General rework:" +msgstr "" + +#: ../../../changes.txt:1238 f085940fb9eb4248aa37862aa5ee511f +msgid "Introduces a new home page and new table of contents." +msgstr "" + +#: ../../../changes.txt:1239 7d45f07d7c9f45d085714f462f775464 +msgid "Structural update to include new About section." +msgstr "" + +#: ../../../changes.txt:1240 fbd4e460a3094b4e9f3cbe8bdb120960 +msgid "Comparison & performance graphing." +msgstr "" + +#: ../../../changes.txt:1241 42f77bb0503d48488766f5fdb4d19c15 +msgid "Includes performance methodology in appendix." +msgstr "" + +#: ../../../changes.txt:1242 3bc9a3e24e0249a7a103014e58b0cfe0 +msgid "Updates conf.py to understand single back-ticks as code." +msgstr "" + +#: ../../../changes.txt:1243 a3e9a116b3fb453fa81fe3081ca9ac28 +msgid "Converts double back-ticks to single back-ticks." +msgstr "" + +#: ../../../changes.txt:1244 dc12d40a4c6148f6b2c2740f969fe028 +msgid "Removes redundant files." +msgstr "" + +#: ../../../changes.txt:1246 4b1314b91c0c4a57afc180019e7fcf7f +msgid "Improve ``insert_file()`` documentation." +msgstr "" + +#: ../../../changes.txt:1248 d4504863060147358071d6130ed1d42c +msgid "``get_bboxlog()``: aded optional ``layers`` to ``get_bboxlog()``." +msgstr "" + +#: ../../../changes.txt:1249 c11f7f0d2dab4b70968cca0abf587247 +msgid "" +"``Page.get_texttrace()``: add new dictionary key ``layer``, name of " +"Optional Content Group." +msgstr "" + +#: ../../../changes.txt:1251 202373f80f8d415a95fc9f1ab5c7f3c6 +msgid "Mention use of Python venv in installation documentation." +msgstr "" + +#: ../../../changes.txt:1253 b7d408d9e1624b44b165a77a64070262 +msgid "Added missing fix for #2057 to release 1.21.1's changelog." +msgstr "" + +#: ../../../changes.txt:1255 e6cde05edeef4042a0657f838649a63c +msgid "Fixes many links to the PyMuPDF-Utilities repo scripts." +msgstr "" + +#: ../../../changes.txt:1257 038857900256474c9fded24cb273f8b5 +msgid "Avoid duplication of ``changes.txt`` and ``docs/changes.rst``." +msgstr "" + +#: ../../../changes.txt:1259 e343ebb10ae64a2baebc475af2998387 +msgid "Build" +msgstr "" + +#: ../../../changes.txt:1261 70564fcedaa2459bbccc68bc3d893e47 +msgid "Added ``pyproject.toml`` file to improve builds using pip etc." +msgstr "" + +#: ../../../changes.txt:1265 b1ea3fa1f44849439039e1a63d88a6e4 +msgid "**Changes in Version 1.21.1 (2022-12-13)**" +msgstr "" + +#: ../../../changes.txt:1267 92d79ae3bac04eae98a0a5093fe8273d +msgid "This release uses ``MuPDF-1.21.1``." +msgstr "" + +#: ../../../changes.txt:1271 3276e784b07a47648e6c6390b6cd3266 +msgid "" +"**Fixed** `#2110 `_: " +"Fully embedded font is extracted only partially if it occupies more than " +"one object" +msgstr "" + +#: ../../../changes.txt:1272 950a39d02c9a4c8b8fa42d3ac1ac9e37 +msgid "" +"**Fixed** `#2094 `_: " +"Rectangle Detection Logic" +msgstr "" + +#: ../../../changes.txt:1273 2f5a46c0803d4b5a9cbbacd71100b204 +msgid "" +"**Fixed** `#2088 `_: " +"Destination point not set for named links in toc" +msgstr "" + +#: ../../../changes.txt:1274 97e2df4608364a7782f5c3a2e5b51f8d +msgid "" +"**Fixed** `#2087 `_: " +"Image with Filter \"[/FlateDecode/JPXDecode]\" not extracted" +msgstr "" + +#: ../../../changes.txt:1275 2168171e471542ada426f030b803e71d +msgid "" +"**Fixed** `#2086 `_: " +"Document.save() owner_pw & user_pw has buffer overflow bug" +msgstr "" + +#: ../../../changes.txt:1276 a23066f8e8654302b8b78db3816529c8 +msgid "" +"**Fixed** `#2076 `_: " +"Segfault in fitz.py" +msgstr "" + +#: ../../../changes.txt:1277 13898161176b4a65990185478cb80a77 +msgid "" +"**Fixed** `#2057 `_: " +"Document.save garbage parameter not working in PyMuPDF 1.21.0" +msgstr "" + +#: ../../../changes.txt:1278 9d7d27f10c4946fd8036c536b9c192e1 +msgid "" +"**Fixed** `#2051 `_: " +"Missing DPI Parameter" +msgstr "" + +#: ../../../changes.txt:1279 f53e894aea1048b0b6ea80c4ea26c7c5 +msgid "" +"**Fixed** `#2048 `_: " +"Invalid size of TextPage and bbox with newest version 1.21.0" +msgstr "" + +#: ../../../changes.txt:1280 f969ab18933245a593f97d97ee9ecbf6 +msgid "" +"**Fixed** `#2045 `_: " +"SystemError: returned a result " +"with an error set" +msgstr "" + +#: ../../../changes.txt:1281 1f16bd21e2a8445d9592684ec7ecca51 +msgid "" +"**Fixed** `#2039 `_: " +"1.21.0 fails to build against system libmupdf" +msgstr "" + +#: ../../../changes.txt:1282 3c45097d33ee470a9481317257d311f7 +msgid "" +"**Fixed** `#2036 `_: " +"Archive::Archive defined twice" +msgstr "" + +#: ../../../changes.txt:1284 6533ecdf4d754fe7a4443b4a1b02bb72 +msgid "Other" +msgstr "" + +#: ../../../changes.txt:1286 9b576f8a8de143e3b3b9de9b6368ca18 +msgid "Swallow \"&zoom=nan\" in link uri strings." +msgstr "" + +#: ../../../changes.txt:1287 f70b7dad981d4d249124939b4f1aaaee +msgid "" +"Add new Page utility methods ``Page.replace_image()`` and " +"``Page.delete_image()``." +msgstr "" + +#: ../../../changes.txt:1291 4f89ab38e60b43ea987d07e27961bb7d +msgid "" +"`#2040 `_: Added note " +"about test failure with non-default build of MuPDF, to " +"``tests/README.md``." +msgstr "" + +#: ../../../changes.txt:1292 558ff70ae6224480af3e735540cac2e3 +msgid "" +"`#2037 `_: In " +"``docs/installation.rst``, mention incompatibility with chocolatey.org on" +" Windows." +msgstr "" + +#: ../../../changes.txt:1293 397d721cec884107af23df22baffdcb0 +msgid "" +"`#2061 `_: Fixed " +"description of ``Annot.file_info``." +msgstr "" + +#: ../../../changes.txt:1294 c6511b374b8b434caf2413b84c80813d +msgid "" +"`#2065 `_: Show how to " +"insert internal PDF link." +msgstr "" + +#: ../../../changes.txt:1295 6a5f0c4f501b4afd92cfe917137a0758 +msgid "Improved description of building from source without an sdist." +msgstr "" + +#: ../../../changes.txt:1296 67690117d7be41879e6fa66746eefeb1 +msgid "Added information about running tests." +msgstr "" + +#: ../../../changes.txt:1297 49b3f25fb63147c3b4c90a255b9ef648 +msgid "" +"`#2084 `_: Fixed broken " +"link to PyMuPDF-Utilities." +msgstr "" + +#: ../../../changes.txt:1300 575f368bd94e401b9952c6d42b41700d +msgid "**Changes in Version 1.21.0 (2022-11-8)**" +msgstr "" + +#: ../../../changes.txt:1302 673df835349745e7865e5b7f56344a60 +msgid "This release uses ``MuPDF-1.21.0``." +msgstr "" + +#: ../../../changes.txt:1304 17bf58b166d24d168b6139c6e77d3a91 +msgid "New feature: Stories." +msgstr "" + +#: ../../../changes.txt:1306 a17fc35b1e5e48ab82510fb0a263af42 +msgid "Added wheels for Python-3.11." +msgstr "" + +#: ../../../changes.txt:1310 15df913e178e4f6781add4fa251aec7f +msgid "" +"**Fixed** `#1701 `_: " +"Broken custom image insertion." +msgstr "" + +#: ../../../changes.txt:1311 2e7ca2e90f944214af8d8a773028ae37 +msgid "" +"**Fixed** `#1854 `_: " +"`Document.delete_pages()` declines keyword arguments." +msgstr "" + +#: ../../../changes.txt:1312 346bb412bfad447b83a0e599f7336a01 +msgid "" +"**Fixed** `#1868 `_: " +"Access Violation Error at `page.apply_redactions()`." +msgstr "" + +#: ../../../changes.txt:1313 9284226d16f4445cb9f22941a7e04dab +msgid "" +"**Fixed** `#1909 `_: " +"Adding text with `fontname=\"Helvetica\"` can silently fail." +msgstr "" + +#: ../../../changes.txt:1314 c11ff004104f4de1b6e767abc09ba8c4 +msgid "" +"**Fixed** `#1913 `_: " +"`draw_rect()`: does not respect width if color is not specified." +msgstr "" + +#: ../../../changes.txt:1315 0f7b31ba423c48a185bae37f8c31c421 +msgid "" +"**Fixed** `#1917 `_: " +"`subset_fonts()`: make it possible to silence the stdout." +msgstr "" + +#: ../../../changes.txt:1316 a785e9b369404f42b2a872e50d17133b +msgid "" +"**Fixed** `#1936 `_: " +"Rectangle detection can be incorrect producing wrong output." +msgstr "" + +#: ../../../changes.txt:1317 08fa2dec869748e4aa0d6b44cb796106 +msgid "" +"**Fixed** `#1945 `_: " +"Segmentation fault when saving with `clean=True`." +msgstr "" + +#: ../../../changes.txt:1318 3f1f9499ba9540f090c963df0a8cf1c2 +msgid "" +"**Fixed** `#1965 `_: " +"`pdfocr_save()` Hard Crash." +msgstr "" + +#: ../../../changes.txt:1319 e675868f950a47b89b02bdec849ddfaf +msgid "" +"**Fixed** `#1971 `_: " +"Segmentation fault when using `get_drawings()`." +msgstr "" + +#: ../../../changes.txt:1320 9af37195cb0a40ef94d54604e449326c +msgid "" +"**Fixed** `#1946 `_: " +"`block_no` and `block_type` switched in `get_text()` docs." +msgstr "" + +#: ../../../changes.txt:1321 cad632bb6e5347fdb160df1d5e205e7f +msgid "" +"**Fixed** `#2013 `_: " +"AttributeError: 'Widget' object has no attribute '_annot' in delete " +"widget." +msgstr "" + +#: ../../../changes.txt:1323 c6abbf7c5af64afe8a6d1294f4458a5b +msgid "Misc changes to core code:" +msgstr "" + +#: ../../../changes.txt:1325 bcadf404caaf42199adda95adecf0183 +msgid "Fixed various compiler warnings and a sequence-point bug." +msgstr "" + +#: ../../../changes.txt:1326 1e7ac8c3fc184879954a671e241386ce +msgid "Added support for Memento builds." +msgstr "" + +#: ../../../changes.txt:1327 2d4b0ca48cff409ab625548ad136c9dd +msgid "Fixed leaks detected by Memento in test suite." +msgstr "" + +#: ../../../changes.txt:1328 eb361878f2a34aba8443b994d71d171a +msgid "Fixed handling of exceptions in set_name() and set_rect()." +msgstr "" + +#: ../../../changes.txt:1329 a57b2a7cb8ee4135a049aa057aa122ab +msgid "Allow build with latest MuPDF, for regular testing of PyMuPDF master." +msgstr "" + +#: ../../../changes.txt:1330 94ed6dc32d87489980b579f7731e909a +msgid "Cope with new MuPDF exceptions when setting rect for some Annot types." +msgstr "" + +#: ../../../changes.txt:1331 0ddc8291d7994c71af6956edb68bd61f +msgid "" +"Reduced cosmetic differences between MuPDF's config.h and PyMuPDF's " +"_config.h." +msgstr "" + +#: ../../../changes.txt:1332 ca97b466331943fbaf5357ca77d105ff +msgid "Cope with various changes to MuPDF API." +msgstr "" + +#: ../../../changes.txt:1336 ebefa94d051a413c87fa9a3656dcceda +msgid "Fixed various broken links and typos in docs." +msgstr "" + +#: ../../../changes.txt:1337 425cc8bc1fcf4fdaac66e442ee2e5513 +msgid "Mention install of `swig-python` on MacOS for #875." +msgstr "" + +#: ../../../changes.txt:1338 7073906d3d64408c836b7d3de96519aa +msgid "Added (untested) wheels for macos-arm64." +msgstr "" + +#: ../../../changes.txt:1343 30436208e7954516bb195ab1ea1ed488 +msgid "**Changes in Version 1.20.2**" +msgstr "" + +#: ../../../changes.txt:1345 ccf93339cf7245b2820d527e6e093f20 +msgid "This release uses ``MuPDF-1.20.3``." +msgstr "" + +#: ../../../changes.txt:1347 e392d8912dbc4a8596ade19a8161d639 +msgid "" +"**Fixed** `#1787 `_. Fix " +"linking issues on Unix systems." +msgstr "" + +#: ../../../changes.txt:1350 4d180eaf011b4a9fbb8c216aa4a505ec +msgid "" +"**Fixed** `#1824 `_. " +"SegFault when applying redactions overlapping a transparent image. (Fixed" +" in ``MuPDF-1.20.3``.)" +msgstr "" + +#: ../../../changes.txt:1354 6cb696c83bfc47bbb07c549f1a1f0267 +msgid "Improvements to documentation:" +msgstr "" + +#: ../../../changes.txt:1356 0ad4a7a79fe54f24869d872723b404e8 +msgid "" +"Improved information about building from source in " +"``docs/installation.rst``." +msgstr "" + +#: ../../../changes.txt:1357 81117814315f48efbc87955f9a7ef58d +msgid "Clarified memory allocation setting ``JM_MEMORY` in ``docs/tools.rst``." +msgstr "" + +#: ../../../changes.txt:1358 b488d65744d743c4b1333dacf311664c +msgid "Fixed link to PDF Reference manual in ``docs/app3.rst``." +msgstr "" + +#: ../../../changes.txt:1359 472c19e0e68c4c109bde0bb001020dac +msgid "Fixed building of html documentation on OpenBSD." +msgstr "" + +#: ../../../changes.txt:1360 c99ee292bc6c46c686c3cad285701923 +msgid "Moved old ``docs/faq.rst`` into separate ``docs/recipes-*`` files." +msgstr "" + +#: ../../../changes.txt:1362 5fed1f452c8f47549032bcab7853bdde +msgid "Removed some unused files and directories:" +msgstr "" + +#: ../../../changes.txt:1364 7c310414b4384898a324f2841f54decd +msgid "``installation/``" +msgstr "" + +#: ../../../changes.txt:1365 5e5ae4637cb640d19cd1b1a5305c90d8 +msgid "``docs/wheelnames.txt``" +msgstr "" + +#: ../../../changes.txt:1368 f4d58a60a4f946a69ea863d1d7d30c62 +msgid "**Changes in Version 1.20.1**" +msgstr "" + +#: ../../../changes.txt:1370 23e14128203842beadfff33baa6792ae +msgid "" +"**Fixed** `#1724 `_. Fix " +"for building on FreeBSD." +msgstr "" + +#: ../../../changes.txt:1373 ca0919e2a72b45eca23b6ffabb073f2d +msgid "" +"**Fixed** `#1771 `_. " +"`linkDest()` had a broken call to `re.match()`, introduced in 1.20.0." +msgstr "" + +#: ../../../changes.txt:1376 1acfe9e0464545878372d78884eac896 +msgid "" +"**Fixed** `#1751 `_. " +"`get_drawings()` and `get_cdrawings()` previously always returned with " +"`closePath=False`." +msgstr "" + +#: ../../../changes.txt:1379 b1c751d4d6b249f7b1603c75f54e6948 +msgid "" +"**Fixed** `#1645 `_. " +"Default FreeText annotation text color is now black." +msgstr "" + +#: ../../../changes.txt:1382 f7bb3767b4b546a8921290a547e0cf50 +msgid "Improvements to sphinx-generated documentation:" +msgstr "" + +#: ../../../changes.txt:1384 a5a5cb7bebe241279daf65c0700e6d10 +msgid "Use readthedocs theme with enhancements." +msgstr "" + +#: ../../../changes.txt:1385 d06c9bab26ef40449327e0f849c88152 +msgid "Renamed the `.txt` files to have `.rst` suffixes." +msgstr "" + +#: ../../../changes.txt:1389 7af006a5c3a84b03914bc4dcb23055ef +msgid "**Changes in Version 1.20.0**" +msgstr "" + +#: ../../../changes.txt:1391 c5bccf72f35e4edf807800d879e696ff +msgid "This release uses ``MuPDF-1.20.0``, released 2022-06-15." +msgstr "" + +#: ../../../changes.txt:1393 68d1b02687f849fab3365ec98f0308d4 +msgid "" +"Cope with new MuPDF link uri format, changed from ``#,,`` " +"to ``#page=&zoom=,,``." +msgstr "" + +#: ../../../changes.txt:1395 d17d731c792044cfa0b4bc0486f4c5a8 +msgid "" +"In ``tests/test_insertpdf.py``, use new reference output " +"``joined-1.20.pdf``. We also check that new output values are " +"approximately the same as the old ones." +msgstr "" + +#: ../../../changes.txt:1397 96cbfad0c6cb404db15d7aa8d13c5f65 +msgid "" +"**Fixed** `#1738 `_. Leak" +" of `pdf_graft_map`. Also fixed a SEGV issue that this seemed to expose, " +"caused by incorrect freeing of underlying fz_document." +msgstr "" + +#: ../../../changes.txt:1400 a1460a0ec164432ebbe35656a0272c02 +msgid "" +"**Fixed** `#1733 `_. " +"Fixed ownership of `Annotation.get_pixmap()`." +msgstr "" + +#: ../../../changes.txt:1402 1fb8672935f346f18177065d4a876d9b +msgid "Changes to build/release process:" +msgstr "" + +#: ../../../changes.txt:1404 d1f37ff28e754e3891af3658a6d2c4f7 +msgid "" +"If pip builds from source because an appropriate wheel is not available, " +"we no longer require MuPDF to be pre-installed. Instead the required " +"MuPDF source is embedded in the sdist and automatically built into " +"PyMuPDF." +msgstr "" + +#: ../../../changes.txt:1406 c6743d7a837547bfbd14121f922f188b +msgid "" +"Various changes to ``setup.py`` to download the required MuPDF release as" +" required. See comments at start of setup.py for details." +msgstr "" + +#: ../../../changes.txt:1408 2deed3b348e44634a95976500ca61ff1 +msgid "" +"Added ``.github/workflows/build_wheels.yml`` to control building of " +"wheels on Github." +msgstr "" + +#: ../../../changes.txt:1412 bfd2558d12c24e4ba3c0aee0edff3507 +msgid "**Changes in Version 1.19.6**" +msgstr "" + +#: ../../../changes.txt:1414 e9b569d9e70b42518f53a71536bd4f28 +msgid "" +"**Fixed** `#1620 `_. The " +":ref:`TextPage` created by :meth:`Page.get_textpage` will now be freed " +"correctly (removed memory leak)." +msgstr "" + +#: ../../../changes.txt:1415 058f760c8ce740e48a627eb2aee78a56 +msgid "" +"**Fixed** `#1601 `_. " +"Document open errors should now be more concise and easier to interpret. " +"In the course of this, two PyMuPDF-specific Python exceptions have been " +"**added:**" +msgstr "" + +#: ../../../changes.txt:1417 15ef5b12f13b4750a9571bf258d1dd43 +msgid "" +"``EmptyFileError`` -- raised when trying to create a :ref:`Document` " +"(``fitz.open()``) from an empty file or zero-length memory." +msgstr "" + +#: ../../../changes.txt:1418 f1c391fa54a1405ba4a28d352d108404 +msgid "" +"``FileDataError`` -- raised when MuPDF encounters irrecoverable document " +"structure issues." +msgstr "" + +#: ../../../changes.txt:1420 56b2878654114138ac79fad54cecad1b +msgid "**Added** :meth:`Page.load_widget` given a PDF field's xref." +msgstr "" + +#: ../../../changes.txt:1422 c0ece2db951a48efac1849cd7074f28e +msgid "" +"**Added** Dictionary :attr:`pdfcolor` which provide the about 500 colors " +"defined as PDF color values with the lower case color name as key." +msgstr "" + +#: ../../../changes.txt:1424 f9628cc364244bf3a41e4b3a8c2d40c6 +msgid "" +"**Added** algebra functionality to the :ref:`Quad` class. These objects " +"can now also be added and subtracted among themselves, and be multiplied " +"by numbers and matrices." +msgstr "" + +#: ../../../changes.txt:1426 b66574a55e8d41d7accf7dd33f070642 +msgid "" +"**Added** new constants defining the default text extraction flags for " +"more comfortable handling. Their naming convention is like " +":data:`TEXTFLAGS_WORDS` for ``page.get_text(\"words\")``. See " +":ref:`text_extraction_flags`." +msgstr "" + +#: ../../../changes.txt:1428 8f6f15bc876b4df68cda93624b20a4ea +msgid "" +"**Changed** :meth:`Page.annots` and :meth:`Page.widgets` to detect and " +"prevent reloading the page (illegally) inside the iterator loops via " +":meth:`Document.reload_page`. Doing this brings down the interpretor. " +"Documented clean ways to do annotation and widget mass updates within " +"properly designed loops." +msgstr "" + +#: ../../../changes.txt:1430 287feb6044a2402d9651e9690ee78512 +msgid "" +"**Changed** several internal utility functions to become standalone " +"(\"SWIG inline\") as opposed to be part of the :ref:`Tools` class. This, " +"among other things, increases the performance of geometry object " +"creation." +msgstr "" + +#: ../../../changes.txt:1432 ec2b054b07e449debcbc15b510c35e5e +msgid "" +"**Changed** :meth:`Document.update_stream` to always accept stream " +"updates - whether or not the dictionary object behind the xref already is" +" a stream. Thus the former ``new`` parameter is now ignored and will be " +"removed in v1.20.0." +msgstr "" + +#: ../../../changes.txt:1437 89534acd0d50489793f84d93defb75d9 +msgid "**Changes in Version 1.19.5**" +msgstr "" + +#: ../../../changes.txt:1439 15c312e55ff84d4990200b73b5ab7088 +msgid "" +"**Fixed** `#1518 `_. A " +"limited \"fix\": in some cases, rectangles and quadrupels were not " +"correctly encoded to support re-drawing by :ref:`Shape`." +msgstr "" + +#: ../../../changes.txt:1441 4ba09954c0b641a2926f1026d979da09 +msgid "" +"**Fixed** `#1521 `_. This" +" had the same ultimate reason behind issue #1510." +msgstr "" + +#: ../../../changes.txt:1443 dde5fa3810eb4a82b0aa2e61d8cf863b +msgid "" +"**Fixed** `#1513 `_. Some" +" Optional Content functions did not support non-ASCII characters." +msgstr "" + +#: ../../../changes.txt:1445 3d2e4740ec0b41b4aaad51d97655f8e9 +msgid "" +"**Fixed** `#1510 `_. " +"Support more soft-mask image subtypes." +msgstr "" + +#: ../../../changes.txt:1447 e79ebb09f5ea405a8ed23fbed6aa913a +msgid "" +"**Fixed** `#1507 `_. " +"Immunize against items in the outlines chain, that are ``\"null\"`` " +"objects." +msgstr "" + +#: ../../../changes.txt:1449 cd737a2d921f4ee6929d54d756b3ca78 +msgid "" +"**Fixed** re-opened `#1417 " +"`_. (\"too many open " +"files\"). This was due to insufficient calls to MuPDF's " +"``fz_drop_document()``. This also fixes `#1550 " +"`_." +msgstr "" + +#: ../../../changes.txt:1451 10995303e588406895c48eaa98334bdd +msgid "" +"**Fixed** several undocumented issues in relation to incorrectly setting " +"the text span origin :data:`point_like`." +msgstr "" + +#: ../../../changes.txt:1453 c395df4c98a441958d507eaf1a55d6de +msgid "" +"**Fixed** undocumented error computing the character bbox in method " +":meth:`Page.get_texttrace` when text is **flipped** (as opposed to just " +"rotated)." +msgstr "" + +#: ../../../changes.txt:1455 d82b9d2a17b64ddb90e236a9e42f1420 +msgid "" +"**Added** items to the dictionary returned by :meth:`image_properties`: " +"``orientation`` and ``transform`` report the natural image orientation " +"(EXIF data)." +msgstr "" + +#: ../../../changes.txt:1457 30117ed837094556807bb67193004816 +msgid "" +"**Added** method :meth:`Document.xref_copy`. It will make a given target " +"PDF object an exact copy of a source object." +msgstr "" + +#: ../../../changes.txt:1462 c6cda05060f04f1080faf3f5125286a2 +msgid "**Changes in Version 1.19.4**" +msgstr "" + +#: ../../../changes.txt:1465 b2517533bd4f4096af88ca08d40edf65 +msgid "" +"**Fixed** `#1505 `_. " +"Immunize against circular outline items." +msgstr "" + +#: ../../../changes.txt:1467 a0d1479b30084068bad49749240fac45 +msgid "" +"**Fixed** `#1484 `_. " +"Correct CropBox coordinates are now returned in all situations." +msgstr "" + +#: ../../../changes.txt:1469 cf4a7ec57222449f974ef9027151cf36 +msgid "**Fixed** `#1479 `_." +msgstr "" + +#: ../../../changes.txt:1471 89d3111a652d4fe8809050d5c921e6ea +msgid "" +"**Fixed** `#1474 `_. " +"TextPage objects are now properly deleted again." +msgstr "" + +#: ../../../changes.txt:1473 ae6c28903fab4ede991daa53cbb1c7b1 +msgid "" +"**Added** :ref:`Page` methods and attributes for PDF ``/ArtBox``, " +"``/BleedBox``, ``/TrimBox``." +msgstr "" + +#: ../../../changes.txt:1475 d88880cbc50841bfa7c2c78158e9dd46 +msgid "" +"**Added** global attribute :attr:`TESSDATA_PREFIX` for easy checking of " +"OCR support." +msgstr "" + +#: ../../../changes.txt:1477 2be427b5e13c407995bd4f89c694dada +msgid "" +"**Changed** :meth:`Document.xref_set_key` such that dictionary keys will " +"physically be removed if set to value ``\"null\"``." +msgstr "" + +#: ../../../changes.txt:1479 2a9573afceb049e6b671e0432bd529be +msgid "" +"**Changed** :meth:`Document.extract_font` to optionally return a " +"dictionary (instead of a tuple)." +msgstr "" + +#: ../../../changes.txt:1483 4f57093fd45345639ada517bdde872fb +msgid "**Changes in Version 1.19.3**" +msgstr "" + +#: ../../../changes.txt:1485 18dfed128cbf40c38cad3ea42fd28a79 +msgid "" +"This patch version implements minor improvements for :ref:`Pixmap` and " +"also some important fixes." +msgstr "" + +#: ../../../changes.txt:1487 1296ee8815a942b6b05e865c50765b3b +msgid "" +"**Fixed** `#1351 `_." +" Reverted code that introduced the memory growth in v1.18.15." +msgstr "" + +#: ../../../changes.txt:1489 3fb4097c0d9c45d884b47f003b15344b +msgid "" +"**Fixed** `#1417 `_." +" Developped circumvention for growth of open file handles using " +":meth:`Document.insert_pdf`." +msgstr "" + +#: ../../../changes.txt:1491 770e6646f6e74afcb2d4d3dcf9c81366 +msgid "" +"**Fixed** `#1418 `_." +" Developped circumvention for memory growth using " +":meth:`Document.insert_pdf`." +msgstr "" + +#: ../../../changes.txt:1493 9689f4e9544c4246b896448b2322a17e +msgid "" +"**Fixed** `#1430 `_." +" Developped circumvention for mass pixmap generations of document pages." +msgstr "" + +#: ../../../changes.txt:1495 056b81d61e89402fb676e8fa87a24efc +msgid "" +"**Fixed** `#1433 `_." +" Solves a bbox error for some Type 3 font in PyMuPDF text processing." +msgstr "" + +#: ../../../changes.txt:1497 d99a708337c94a539ed17294cc959f0d +msgid "" +"**Added** :meth:`Pixmap.color_topusage` to determine the share of the " +"most frequently used color. Solves `#1397 " +"`_." +msgstr "" + +#: ../../../changes.txt:1499 72e87358c82b4604b24eac87ac4b4a0f +msgid "" +"**Added** :meth:`Pixmap.warp` which makes a new pixmap from a given " +"arbitrary convex quad inside the pixmap." +msgstr "" + +#: ../../../changes.txt:1501 82fcb8b930d84658abdd8396247c78de +msgid "" +"**Added** :attr:`Annot.irt_xref` and :meth:`Annot.set_irt_xref` to " +"inquire or set the `/IRT` (\"In Responde To\") property of an annotation." +" Implements `#1450 " +"`_." +msgstr "" + +#: ../../../changes.txt:1503 9d4d189ab5d14fb799a720844599254d +msgid "" +"**Added** :meth:`Rect.torect` and :meth:`IRect.torect` which compute a " +"matrix that transforms to a given other rectangle." +msgstr "" + +#: ../../../changes.txt:1505 4efbe89603de46a59e1fac42a1a66f6a +msgid "" +"**Changed** :meth:`Pixmap.color_count` to also return the count of each " +"color." +msgstr "" + +#: ../../../changes.txt:1506 d98f12929cce4021be5db663b7606192 +msgid "" +"**Changed** :meth:`Page.get_texttrace` to also return correct span and " +"character bboxes if ``span[\"dir\"] != (1, 0)``." +msgstr "" + +#: ../../../changes.txt:1510 d093ad5f399047259588e551285fd994 +msgid "**Changes in Version 1.19.2**" +msgstr "" + +#: ../../../changes.txt:1512 2de7c1c23ba441aa92a089ee02a4635b +msgid "" +"This patch version implements minor improvements for " +":meth:`Page.get_drawings` and also some important fixes." +msgstr "" + +#: ../../../changes.txt:1514 79ddabf469564139b54099c248dbd2b3 +msgid "" +"**Fixed** `#1388 `_." +" Fixed intermittent memory corruption when insert or updating " +"annotations." +msgstr "" + +#: ../../../changes.txt:1516 3f76bb3657c5462ba1ebcdd58bdd3116 +msgid "" +"**Fixed** `#1375 `_." +" Inconsistencies between line numbers as returned by the \"words\" and " +"the \"dict\" options of :meth:`Page.get_text` have been corrected." +msgstr "" + +#: ../../../changes.txt:1518 da3c5e5c691b4bf89bac0ae41797880b +msgid "" +"**Fixed** `#1364 `_. The " +"check for being a ``\"rawdict\"`` span in :meth:`recover_span_quad` now " +"works correctly." +msgstr "" + +#: ../../../changes.txt:1520 63807063fb894a7e983829cafe298fe5 +msgid "" +"**Fixed** `#1342 `_. " +"Corrected the check for rectangle infiniteness in " +":meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../../changes.txt:1522 517a112dc4114acab7f4f5c1b91d6fa8 +msgid "" +"**Changed** :meth:`Page.get_drawings`, :meth:`Page.get_cdrawings` to " +"return an indicator on the area orientation covered by a rectangle. This " +"implements `#1355 `_. " +"Also, the recognition rate for rectangles and quads has been " +"significantly improved." +msgstr "" + +#: ../../../changes.txt:1524 dcddfb46c54741fd8eda15a642648605 +msgid "" +"**Changed** all text search and extraction methods to set the new " +"``flags`` option ``TEXT_MEDIABOX_CLIP`` to ON by default. That bit causes" +" the automatic suppression of all characters that are completely outside " +"a page's mediabox (in as far as that notion is supported for a document " +"type). This eliminates the need for using ``clip=page.rect`` or similar " +"for omitting text outside the visible area." +msgstr "" + +#: ../../../changes.txt:1526 f1b34d7957c44c178eece4e7a6585117 +msgid "" +"**Added** parameter ``\"dpi\"`` to :meth:`Page.get_pixmap` and " +":meth:`Annot.get_pixmap`. When given, parameter ``\"matrix\"`` is " +"ignored, and a :ref:`Pixmap` with the desired dots per inch is created." +msgstr "" + +#: ../../../changes.txt:1528 1317c20bf9004475b5d9e6eff7531e6d +msgid "" +"**Added** attributes :attr:`Pixmap.is_monochrome` and " +":attr:`Pixmap.is_unicolor` allowing fast checks of pixmap properties. " +"Addresses `#1397 `_." +msgstr "" + +#: ../../../changes.txt:1530 2f34d297248a424d9e4bd6390d4abd59 +msgid "" +"**Added** method :meth:`Pixmap.color_count` to determine the unique " +"colors in the pixmap." +msgstr "" + +#: ../../../changes.txt:1532 0eb08456d2ad4e70b01c79a2c2394012 +msgid "" +"**Added** boolean parameter ``\"compress\"`` to PDF document method " +":meth:`Document.update_stream`. Addresses / enables solution for `#1408 " +"`_." +msgstr "" + +#: ../../../changes.txt:1536 e801177ed48145dda1d2c1383f2b0ffc +msgid "**Changes in Version 1.19.1**" +msgstr "" + +#: ../../../changes.txt:1538 57c5fb9887f847ba933543ad12d8a479 +msgid "" +"This is the first patch version to support MuPDF v1.19.0. Apart from one " +"bug fix, it includes important improvements for OCR support and the " +"option to **sort extracted text** to the standard reading order \"from " +"top-left to bottom-right\"." +msgstr "" + +#: ../../../changes.txt:1540 650b810759ce426fb04200ced720f29f +msgid "" +"**Fixed** `#1328 `_. " +"\"words\" text extraction again returns correct ``(x0, y0)`` coordinates." +msgstr "" + +#: ../../../changes.txt:1542 3ba1314a889d44d78998ee7e4000e490 +msgid "" +"**Changed** :meth:`Page.get_textpage_ocr`: it now supports parameter " +"``dpi`` to control OCR quality. It is also possible to choose whether the" +" **full page** should be OCRed or **only the images displayed** by the " +"page." +msgstr "" + +#: ../../../changes.txt:1544 e63faaa903ec48a596466ba7c81be36a +msgid "" +"**Changed** :meth:`Page.get_drawings` and :meth:`Page.get_cdrawings` to " +"automatically convert colors to RGB color tuples. Implements `#1332 " +"`_. Similar change " +"was applied to :meth:`Page.get_texttrace`." +msgstr "" + +#: ../../../changes.txt:1546 478ae75188fb496dbd68e612249a93be +msgid "" +"**Changed** :meth:`Page.get_text` to support a parameter ``sort``. If set" +" to ``True`` the output is conveniently sorted." +msgstr "" + +#: ../../../changes.txt:1551 1fcee4618b1a4606bc1bb1cb00a3c04c +msgid "**Changes in Version 1.19.0**" +msgstr "" + +#: ../../../changes.txt:1553 ddc73ab2354e49519073ae9c706da26e +msgid "" +"This is the first version supporting MuPDF 1.19.*, published 2021-10-05. " +"It introduces many new features compared to the previous version 1.18.*." +msgstr "" + +#: ../../../changes.txt:1555 b350897b3a7d4af6a0a1184d0161e9f5 +msgid "" +"PyMuPDF has now picked up integrated Tesseract OCR support, which was " +"already present in MuPDF v1.18.0." +msgstr "" + +#: ../../../changes.txt:1557 35dd462d0329459bb8788ee6118ce5b5 +msgid "" +"Supported images can be OCRed via their :ref:`Pixmap` which results in a " +"1-page PDF with a text layer." +msgstr "" + +#: ../../../changes.txt:1558 40eb6a6a0deb477f802cfaa332cd816d +msgid "" +"All supported document pages (i.e. not only PDFs), can be OCRed using " +"specialized text extraction methods. The result is a mixture of standard " +"and OCR text (depending on which part of the page was deemed to require " +"OCRing) that can be searched and extracted without restrictions." +msgstr "" + +#: ../../../changes.txt:1559 734f1859407e4513b2cad5b0b02ac6f4 +msgid "" +"All this requires an independent installation of Tesseract. MuPDF " +"actually (only) needs the location of Tesseract's ``\"tessdata\"`` " +"folder, where its language support data are stored. This location must be" +" available as environment variable ``TESSDATA_PREFIX``." +msgstr "" + +#: ../../../changes.txt:1561 b0bd5ab69f33429697fd89f94ea87403 +msgid "" +"A new MuPDF feature is **journalling PDF updates**, which is also " +"supported by this PyMuPDF version. Changes may be logged, rolled back or " +"replayed, allowing to implement a whole new level of control over PDF " +"document integrity -- similar to functions present in modern database " +"systems." +msgstr "" + +#: ../../../changes.txt:1563 c3bc9664f319416cbfbd764f183ecaf1 +msgid "" +"A third feature (unrelated to the new MuPDF version) includes the ability" +" to detect when page **objects cover or hide each other**. It is now e.g." +" possible to see that text is covered by a drawing or an image." +msgstr "" + +#: ../../../changes.txt:1565 368ec08cb31e489e94e2d8a7e4ee86e4 +msgid "" +"**Changed** terminology and meaning of important geometry concepts: " +"Rectangles are now characterized as *finite*, *valid* or *empty*, while " +"the definitions of these terms have also changed. Rectangles specifically" +" are now thought of being \"open\": not all corners and sides are " +"considered part of the retangle. Please do read the :ref:`Rect` section " +"for details." +msgstr "" + +#: ../../../changes.txt:1567 6dd7d23a06ad4f14b2021126e1286e49 +msgid "" +"**Added** new parameter `\"no_new_id\"` to :meth:`Document.save` / " +":meth:`Document.tobytes` methods. Use it to suppress updating the second " +"item of the document ``/ID`` which in PDF indicates that the original " +"file has been updated. If the PDF has no ``/ID`` at all yet, then no new " +"one will be created either." +msgstr "" + +#: ../../../changes.txt:1569 de9906d677934e3c8dbe4a106dce7c74 +msgid "" +"**Added** a **journalling facility** for PDF updates. This allows logging" +" changes, undoing or redoing them, or saving the journal for later use. " +"Refer to :meth:`Document.journal_enable` and friends." +msgstr "" + +#: ../../../changes.txt:1571 c4160924dc184c4b927a1b6297223458 +msgid "" +"**Added** new :ref:`Pixmap` methods :meth:`Pixmap.pdfocr_save` and " +":meth:`Pixmap.pdfocr_tobytes`, which generate a 1-page PDF containing the" +" pixmap as PNG image with OCR text layer." +msgstr "" + +#: ../../../changes.txt:1573 0e3c62d627264d9f8ffce673e0023b81 +msgid "" +"**Added** :meth:`Page.get_textpage_ocr` which executes optical character " +"recognition for the page, then extracts the results and stores them " +"together with \"normal\" page content in a :ref:`TextPage`. Use or reuse " +"this object in subsequent text extractions and text searches to avoid " +"multiple efforts. The existing text search and text extraction methods " +"have been extended to support a separately created textpage -- see next " +"item." +msgstr "" + +#: ../../../changes.txt:1575 04ef1d300161437ba5b4e28ffed12386 +msgid "" +"**Added** a new parameter ``textpage`` to text extraction and text search" +" methods. This allows reuse of a previously created :ref:`TextPage` and " +"thus achieves significant runtime benefits -- which is especially " +"important for the new OCR features. But \"normal\" text extractions can " +"definitely also benefit." +msgstr "" + +#: ../../../changes.txt:1577 a6d0664ee9d14b07908e08d426ef50e7 +msgid "" +"**Added** :meth:`Page.get_texttrace`, a technical method delivering low-" +"level text character properties. It was present before as a private " +"method, but the author felt it now is mature enough to be officially " +"available. It specifically includes a \"sequence number\" which indicates" +" the page appearance build operation that painted the text." +msgstr "" + +#: ../../../changes.txt:1579 ccb6adfad05549ff96a7d75a2f08de75 +msgid "" +"**Added** :meth:`Page.get_bboxlog` which delivers the list of rectangles " +"of page objects like text, images or drawings. Its significance lies in " +"its sequence: rectangles intersecting areas with a lower index are " +"covering or hiding them." +msgstr "" + +#: ../../../changes.txt:1581 3edfcd55b842410ab082ab50b80e132f +msgid "" +"**Changed** methods :meth:`Page.get_drawings` and " +":meth:`Page.get_cdrawings` to include a \"sequence number\" indicating " +"the page appearance build operation that created the drawing." +msgstr "" + +#: ../../../changes.txt:1583 d4fd7415a1f44eb0b738d6f5df0af7cb +msgid "" +"**Fixed** `#1311 `_. " +"Field values in comboboxes should now be handled correctly." +msgstr "" + +#: ../../../changes.txt:1584 7733dd257974437aa148b45f6ada6568 +msgid "" +"**Fixed** `#1290 `_. " +"Error was caused by incorrect rectangle emptiness check, which is fixed " +"due to new geometry logic of this version." +msgstr "" + +#: ../../../changes.txt:1585 f61c1c44cead4da28d5a0d498a515a7c +msgid "" +"**Fixed** `#1286 `_. Text" +" alignment for redact annotations is working again." +msgstr "" + +#: ../../../changes.txt:1586 bba07d14226e43b498663a99b03b7eb5 +msgid "" +"**Fixed** `#1287 `_. " +"Infinite loop issue for non-Windows systems when applying some redactions" +" has been resolved." +msgstr "" + +#: ../../../changes.txt:1587 5324927b491340e983434647e41ce37e +msgid "" +"**Fixed** `#1284 `_. Text" +" layout destruction after applying redactions in some cases has been " +"resolved." +msgstr "" + +#: ../../../changes.txt:1591 29ec5f63fdcc4f7b857449ced614ae34 +msgid "**Changes in Version 1.18.18 / 1.18.19**" +msgstr "" + +#: ../../../changes.txt:1593 629737c065e9445f96330c435e44d4dc +msgid "" +"**Fixed** issue `#1266 " +"`_. Failure to set " +":attr:`Pixmap.samples` in important cases, was hotfixed in a new version " +"1.18.19." +msgstr "" + +#: ../../../changes.txt:1595 0abe968e8c8349d6991a7e4002c7cc03 +msgid "" +"**Fixed** issue `#1257 " +"`_. Removing the read-" +"only flag from PDF fields is now possible." +msgstr "" + +#: ../../../changes.txt:1597 d5ee064120c44b55a574eb82a9b65093 +msgid "" +"**Fixed** issue `#1252 " +"`_. Now correctly " +"specifying the ``zoom`` value for PDF link annotations." +msgstr "" + +#: ../../../changes.txt:1599 a7183e1808424b69a1a92a0c6c19251d +msgid "" +"**Fixed** issue `#1244 " +"`_. Now correctly " +"computing the transform matrix in :meth:`Page.get_image__bbox`." +msgstr "" + +#: ../../../changes.txt:1601 5b909b03e5e84a92b114914838261915 +msgid "" +"**Fixed** issue `#1241 " +"`_. Prevent returning " +"artifact characters in :meth:`Page.get_textbox`, which happened in " +"certain constellations." +msgstr "" + +#: ../../../changes.txt:1603 76b7202d83754586a167674467627ca6 +msgid "" +"**Fixed** issue `#1234 " +"`_. Avoid creating " +"infinite rectangles in corner cases -- :meth:`Page.get_drawings`, " +":meth:`Page.get_cdrawings`." +msgstr "" + +#: ../../../changes.txt:1605 11277e7c50c84168b89d7c869c0aeb1e +msgid "" +"**Added** test data and test scripts to the source PyPI source " +"distribution." +msgstr "" + +#: ../../../changes.txt:1609 490bf1a121f24135b3e3256666187363 +msgid "**Changes in Version 1.18.17**" +msgstr "" + +#: ../../../changes.txt:1611 d1e131b0d646485daf1c919e31b766d3 +msgid "" +"Focus of this version are major performance improvements of selected " +"functions." +msgstr "" + +#: ../../../changes.txt:1613 03ea6bb0f78c4d679bd6c08b450d9c4e +msgid "" +"**Fixed** issue `#1199 " +"`_. Using a non-existing " +"page number in :meth:`Document.get_page_images` and friends will no " +"longer lead to segfaults." +msgstr "" + +#: ../../../changes.txt:1615 0316ddf4a6a14b918ae314d88765508c +msgid "" +"**Changed** :meth:`Page.get_drawings` to now differentiate between " +"\"stroke\", \"fill\" and combined paths. Paths containing more than one " +"rectangle (i.e. \"re\" items) are now supported. Extracting \"clipped\" " +"paths is now available as an option." +msgstr "" + +#: ../../../changes.txt:1617 68269b90e4374ece9bcc4beae2a5d8ab +msgid "" +"**Added** :meth:`Page.get_cdrawings`, performance-optimized version of " +":meth:`Page.get_drawings`." +msgstr "" + +#: ../../../changes.txt:1619 b9fdb8798cef43d6af0ab313e6117152 +msgid "" +"**Added** :attr:`Pixmap.samples_mv`, *memoryview* of a pixmap's pixel " +"area. Does not copy and thus always accesses the current state of that " +"area." +msgstr "" + +#: ../../../changes.txt:1621 b4530586fbcc46de94110b7f601c43dd +msgid "" +"**Added** :attr:`Pixmap.samples_ptr`, Python \"pointer\" to a pixmap's " +"pixel area. Allows much faster creation (factor 800+) of Qt images." +msgstr "" + +#: ../../../changes.txt:1627 494c735b3a214b2bb172c9afb76b92b1 +msgid "**Changes in Version 1.18.16**" +msgstr "" + +#: ../../../changes.txt:1629 9320ef32a6ec458db091ec9991261f2f +msgid "" +"**Fixed** issue `#1184 " +"`_. Existing PDF widget " +"fonts in a PDF are now accepted (i.e. not forcedly changed to a Base-14 " +"font)." +msgstr "" + +#: ../../../changes.txt:1631 159b6408c2ea4b86a063f21fcce0b7de +msgid "" +"**Fixed** issue `#1154 " +"`_. Text search hits " +"should now be correct when ``clip`` is specified." +msgstr "" + +#: ../../../changes.txt:1633 e98ab6e601d143ab99e23ce8ac756e25 +msgid "**Fixed** issue `#1152 `_." +msgstr "" + +#: ../../../changes.txt:1635 0793a7276f6a47c7833dc4f02c69c59c +msgid "**Fixed** issue `#1146 `_." +msgstr "" + +#: ../../../changes.txt:1637 634669f89d54425fabf3395cef374ae3 +msgid "" +"**Added** :attr:`Link.flags` and :meth:`Link.set_flags` to the " +":ref:`Link` class. Implements enhancement requests `#1187 " +"`_." +msgstr "" + +#: ../../../changes.txt:1639 f0c43b248f16409a8f0905afee41db5d +msgid "" +"**Added** option to *simulate* :meth:`TextWriter.fill_textbox` output for" +" predicting the number of lines, that a given text would occupy in the " +"textbox." +msgstr "" + +#: ../../../changes.txt:1641 7ed434aeca7e4c8283c2ce9ac764e204 +msgid "" +"**Added** text output support as subcommand `gettext` to the ``fitz`` CLI" +" module. Most importantly, original **physical text layout** reproduction" +" is now supported." +msgstr "" + +#: ../../../changes.txt:1646 7a61839613704cb6ba89df11cfd8e0c5 +msgid "**Changes in Version 1.18.15**" +msgstr "" + +#: ../../../changes.txt:1648 76b9d70df76946379cb92b397413d1b1 +msgid "" +"**Fixed** issue `#1088 " +"`_. Removing an " +"annotation's fill color should now work again both ways, using the " +"``fill_color=[]`` argument in :meth:`Annot.update` as well as ``fill=[]``" +" in :meth:`Annot.set_colors`." +msgstr "" + +#: ../../../changes.txt:1650 be8edc4369ba4c6d92c42fd279c10a37 +msgid "" +"**Fixed** issue `#1081 " +"`_. " +":meth:`Document.subset_fonts`: fixed an error which created wrong " +"character widths for some fonts." +msgstr "" + +#: ../../../changes.txt:1652 c86ec8d5f336461a9a82cf58dab23bca +msgid "" +"**Fixed** issue `#1078 " +"`_. :meth:`Page.get_text`" +" and other methods related to text extraction: changed the default value " +"of the :ref:`TextPage` ``flags`` parameter. All whitespace and " +":data:`ligatures` are now preserved." +msgstr "" + +#: ../../../changes.txt:1654 6bf853d1b4f24ed3b493acbbaf102307 +msgid "" +"**Fixed** issue `#1085 " +"`_. The old *snake_cased*" +" alias of ``fitz.detTextlength`` is now defined correctly." +msgstr "" + +#: ../../../changes.txt:1656 0974e8722a4445e0894e2188d5074069 +msgid "" +"**Changed** :meth:`Document.subset_fonts` will now correctly prefix font " +"subsets with an appropriate six letter uppercase tag, complying with the " +"PDF specification." +msgstr "" + +#: ../../../changes.txt:1658 437884a2beb34834be5a5813ff146205 +msgid "" +"**Added** new method :meth:`Widget.button_states` which returns the " +"possible values that a button-type field can have when being set to " +"\"on\" or \"off\"." +msgstr "" + +#: ../../../changes.txt:1660 e165a6b51c0c42f6ac55bb2164ed36ce +msgid "" +"**Added** support of text with **Small Capital** letters to the " +":ref:`Font` and :ref:`TextWriter` classes. This is reflected by an " +"additional bool parameter ``small_caps`` in various of their methods." +msgstr "" + +#: ../../../changes.txt:1665 5fa6df6719ec4a30bc5737a2250ddf26 +msgid "**Changes in Version 1.18.14**" +msgstr "" + +#: ../../../changes.txt:1667 246831ba1ef247c09cc05eb90a12135b +msgid "" +"**Finished** implementing new, \"snake_cased\" names for methods and " +"properties, that were \"camelCased\" and awkward in many aspects. At the " +"end of this documentation, there is section :ref:`Deprecated` with more " +"background and a mapping of old to new names." +msgstr "" + +#: ../../../changes.txt:1669 e9896e6c30074ac28de21b72e13344fd +msgid "" +"**Fixed** issue `#1053 " +"`_. " +":meth:`Page.insert_image`: when given, include image mask in the hash " +"computation." +msgstr "" + +#: ../../../changes.txt:1671 856342d7e04c4c05ad362a20f30a00c5 +msgid "" +"**Fixed** issue `#1043 " +"`_. Added " +"``Pixmap.getPNGdata`` to the aliases of :meth:`Pixmap.tobytes`." +msgstr "" + +#: ../../../changes.txt:1673 a40ac7bfdd1d4c329450f6a5ba99872e +msgid "" +"**Fixed** an internal error when computing the enveloping rectangle of " +"drawn paths as returned by :meth:`Page.get_drawings`." +msgstr "" + +#: ../../../changes.txt:1675 dae13ebf211f48aaa0f6305a01c8c616 +msgid "" +"**Fixed** an internal error occasionally causing loops when outputting " +"text via :meth:`TextWriter.fill_textbox`." +msgstr "" + +#: ../../../changes.txt:1677 944833cd11d14508b1e6e8fa1a487586 +msgid "" +"**Added** :meth:`Font.char_lengths`, which returns a tuple of character " +"widths of a string." +msgstr "" + +#: ../../../changes.txt:1679 4c127faaaa4542d68be1974e72156cdb +msgid "" +"**Added** more ways to specify pages in :meth:`Document.delete_pages`. " +"Now a sequence (list, tuple or range) can be specified, and the Python " +"``del`` statement can be used. In the latter case, Python ``slices`` are " +"also accepted." +msgstr "" + +#: ../../../changes.txt:1681 06fd838ceb61465d9f689dfd3aebbab2 +msgid "" +"**Changed** :meth:`Document.del_toc_item`, which disables a single item " +"of the TOC: previously, the title text was removed. Instead, now the " +"complete item will be shown grayed-out by supporting viewers." +msgstr "" + +#: ../../../changes.txt:1686 7a4fd8bb15ab4fbcaaa183993d721089 +msgid "**Changes in Version 1.18.13**" +msgstr "" + +#: ../../../changes.txt:1688 aeb68fdb27db43d68f6b5362aa749391 +msgid "**Fixed** issue `#1014 `_." +msgstr "" + +#: ../../../changes.txt:1689 8ee7d51d2b5941f8b64a7092fe06f789 +msgid "" +"**Fixed** an internal memory leak when computing image bboxes -- " +":meth:`Page.get_image_bbox`." +msgstr "" + +#: ../../../changes.txt:1690 6e3c2aaf0d0b4752b02aa8c91326937e +msgid "" +"**Added** support for low-level access and modification of the PDF " +"trailer. Applies to :meth:`Document.xref_get_keys`, " +":meth:`Document.xref_get_key`, and :meth:`Document.xref_set_key`." +msgstr "" + +#: ../../../changes.txt:1691 d26b610465374b1a95f57d151f841d2e +msgid "**Added** documentation for maintaining private entries in PDF metadata." +msgstr "" + +#: ../../../changes.txt:1692 49f75a7ada254386acc0d8b341ed91c6 +msgid "" +"**Added** documentation for handling transparent image insertions, " +":meth:`Page.insert_image`." +msgstr "" + +#: ../../../changes.txt:1693 457c2b1325b24f60ab107fe02a4e0085 +msgid "" +"**Added** :meth:`Page.get_image_rects`, an improved version of " +":meth:`Page.get_image_bbox`." +msgstr "" + +#: ../../../changes.txt:1694 a7471bfaf29b46c0bf1baba965058c8b +msgid "" +"**Changed** :meth:`Document.delete_pages` to support various ways of " +"specifying pages to delete. Implements `#1042 " +"`_." +msgstr "" + +#: ../../../changes.txt:1695 3f2e525e5db5466cbf2b21ae6e3e9c36 +msgid "" +"**Changed** :meth:`Page.insert_image` to also accept the xref of an " +"existing image in the file. This allows \"copying\" images between pages," +" and extremely fast mutiple insertions." +msgstr "" + +#: ../../../changes.txt:1696 819681238cbc4a129e57b370dfb026fc +msgid "" +"**Changed** :meth:`Page.insert_image` to also accept the integer " +"parameter ``alpha``. To be used for performance improvements." +msgstr "" + +#: ../../../changes.txt:1697 43b014e80e8041ce88847b0848cd3523 +msgid "" +"**Changed** :meth:`Pixmap.set_alpha` to support new parameters for pre-" +"multiplying colors with their alpha values and setting a specific color " +"to fully transparent (e.g. white)." +msgstr "" + +#: ../../../changes.txt:1698 d00c4f08df31471e976b37826d70cb1c +msgid "" +"**Changed** :meth:`Document.embfile_add` to automatically set creation " +"and modification date-time. Correspondingly, :meth:`Document.embfile_upd`" +" automatically maintains modification date-time (``/ModDate`` PDF key), " +"and :meth:`Document.embfile_info` correspondingly reports these data. In " +"addition, the embedded file's associated \"collection item\" is included " +"via its :data:`xref`. This supports the development of PDF portfolio " +"applications." +msgstr "" + +#: ../../../changes.txt:1702 d6c3f0ac21134173a004ebfa78fe2315 +msgid "**Changes in Version 1.18.11 / 1.18.12**" +msgstr "" + +#: ../../../changes.txt:1704 5c6ecd8a73da4cd6a54e60917ddff07a +msgid "" +"**Fixed** issue `#972 `_. " +"Improved layout of source distribution material." +msgstr "" + +#: ../../../changes.txt:1705 086168881dcc4f639364df509a6877b1 +msgid "" +"**Fixed** issue `#962 `_. " +"Stabilized Linux distribution detection for generating PyMuPDF from " +"sources." +msgstr "" + +#: ../../../changes.txt:1706 3a60973423d2463aa5423dc31856ba76 +msgid "" +"**Added:** :meth:`Page.get_xobjects` delivers the result of " +":meth:`Document.get_page_xobjects`." +msgstr "" + +#: ../../../changes.txt:1707 a0b89ac75a28458fb93356628c87d9ab +msgid "" +"**Added:** :meth:`Page.get_image_info` delivers meta information for all " +"images shown on the page." +msgstr "" + +#: ../../../changes.txt:1708 9e865b21aa37414dbfea24ec37e19b67 +msgid "" +"**Added:** :meth:`Tools.mupdf_display_warnings` allows setting on / off " +"the display of MuPDF-generated warnings. The default is off." +msgstr "" + +#: ../../../changes.txt:1709 e3d2420ee8c24d1aa43455c800972e3c +msgid "" +"**Added:** :meth:`Document.ez_save` convenience alias of " +":meth:`Document.save` with some different defaults." +msgstr "" + +#: ../../../changes.txt:1710 7007006565b94595b23bf039c3e09338 +msgid "" +"**Changed:** Image extractions of document pages now also contain the " +"image's **transformation matrix**. This concerns " +":meth:`Page.get_image_bbox` and the DICT, JSON, RAWDICT, and RAWJSON " +"variants of :meth:`Page.get_text`." +msgstr "" + +#: ../../../changes.txt:1715 62af1c5f6b62467897742422e1590f7d +msgid "**Changes in Version 1.18.10**" +msgstr "" + +#: ../../../changes.txt:1717 922707d45703479bbd67527180a768ec +msgid "" +"**Fixed** issue `#941 `_. " +"Added old aliases for :meth:`DisplayList.get_pixmap` and " +":meth:`DisplayList.get_textpage`." +msgstr "" + +#: ../../../changes.txt:1718 5f5903a43c1f44a3bf154f3b1530d64a +msgid "" +"**Fixed** issue `#929 `_. " +"Stabilized removal of JavaScript objects with :meth:`Document.scrub`." +msgstr "" + +#: ../../../changes.txt:1719 0972fadf04e741629d46a18515526a9d +msgid "" +"**Fixed** issue `#927 `_. " +"Removed a loop in the reworked :meth:`TextWriter.fill_textbox`." +msgstr "" + +#: ../../../changes.txt:1720 033e96b4eceb4014bd5620c1e986198d +msgid "" +"**Changed** :meth:`Document.xref_get_keys` and " +":meth:`Document.xref_get_key` to also allow accessing the PDF trailer " +"dictionary. This can be done by using `-1` as the xref number argument." +msgstr "" + +#: ../../../changes.txt:1721 74ff56e5727c43138b496604bbfe57f9 +msgid "" +"**Added** a number of functions for reconstructing the quads for text " +"lines, spans and characters extracted by :meth:`Page.get_text` options " +"\"dict\" and \"rawdict\". See :meth:`recover_quad` and friends." +msgstr "" + +#: ../../../changes.txt:1722 29aa32686d874d42b22bfa8a3901aa14 +msgid "" +"**Added** :meth:`Tools.unset_quad_corrections` to suppress character quad" +" corrections (occasionally required for erroneous fonts)." +msgstr "" + +#: ../../../changes.txt:1726 3a7453ab65404c52984aee45364e6724 +msgid "**Changes in Version 1.18.9**" +msgstr "" + +#: ../../../changes.txt:1729 e1b22c2f9fe54eb993a50fcd6112601f +msgid "" +"**Fixed** issue `#888 `_. " +"Removed ambiguous statements concerning PyMuPDF's license, which is now " +"clearly stated to be GNU AGPL V3." +msgstr "" + +#: ../../../changes.txt:1730 f4d998abf2364f48a156cb6de76c69b7 +msgid "**Fixed** issue `#895 `_." +msgstr "" + +#: ../../../changes.txt:1731 69b074661fb04a1c9748f0ae259d8153 +msgid "" +"**Fixed** issue `#896 `_. " +"Since v1.17.6 PyMuPDF suppresses the font subset tags and only reports " +"the base fontname in text extraction outputs \"dict\" / \"json\" / " +"\"rawdict\" / \"rawjson\". Now a new global parameter can request the old" +" behaviour, :meth:`Tools.set_subset_fontnames`." +msgstr "" + +#: ../../../changes.txt:1732 0e51b11e295245bdb5143f3055f5f4c6 +msgid "" +"**Fixed** issue `#885 `_. " +"Pixmap creation now also works with filenames given as ``pathlib.Paths``." +msgstr "" + +#: ../../../changes.txt:1733 3bfe043f395249f2ad66c8714a4dcd24 +msgid "" +"**Changed** :meth:`Document.subset_fonts`: Text is **not rewritten** any " +"more and should therefore **retain all its origial properties** -- like " +"being hidden or being controlled by Optional Content mechanisms." +msgstr "" + +#: ../../../changes.txt:1734 23ad1d2d69494a61b31f3bf6e0d688e0 +msgid "" +"**Changed** :ref:`TextWriter` output to also accept text in right to left" +" mode (Arabian, Hebrew): :meth:`TextWriter.fill_textbox`, " +":meth:`TextWriter.append`. These methods now accept a new boolean " +"parameter `right_to_left`, which is *False* by default. Implements `#897 " +"`_." +msgstr "" + +#: ../../../changes.txt:1735 27997725f8e4450c87939082e366439e +msgid "" +"**Changed** :meth:`TextWriter.fill_textbox` to return all lines of text, " +"that did not fit in the given rectangle. Also changed the default of the " +"``warn`` parameter to no longer print a warning message in overflow " +"situations." +msgstr "" + +#: ../../../changes.txt:1736 66e2fd480ef348c094149914650471d0 +msgid "" +"**Added** a utility function :meth:`recover_quad`, which computes the " +"quadrilateral of a span. This function can be used for correctly marking " +"text extracted with the \"dict\" or \"rawdict\" options of " +":meth:`Page.get_text`." +msgstr "" + +#: ../../../changes.txt:1740 dce8476d6a3749f89835fc274cdabd84 +msgid "**Changes in Version 1.18.8**" +msgstr "" + +#: ../../../changes.txt:1743 fa20b571b5c14e288bfcba7b82655bee +msgid "" +"This is a bug fix version only. We are publishing early because of the " +"potentially widely used functions." +msgstr "" + +#: ../../../changes.txt:1745 21142c13d0cd44bea29198c954e7f0e6 +msgid "" +"**Fixed** issue `#881 `_. " +"Fixed a memory leak in :meth:`Page.insert_image` when inserting images " +"from files or memory." +msgstr "" + +#: ../../../changes.txt:1746 5f457acfd5954696ae76970b611ac49a +msgid "" +"**Fixed** issue `#878 `_. " +"``pathlib.Path`` objects should now correctly handle file path " +"hierarchies." +msgstr "" + +#: ../../../changes.txt:1751 85971c3fb54e449190448842ef48209a +msgid "**Changes in Version 1.18.7**" +msgstr "" + +#: ../../../changes.txt:1754 fbe2287c70d74d55bfa1dd7a61d1a827 +msgid "" +"**Added** an experimental :meth:`Document.subset_fonts` which reduces the" +" size of eligible fonts based on their use by text in the PDF. Implements" +" `#855 `_." +msgstr "" + +#: ../../../changes.txt:1755 e300f81c0c2a414a95786dc2a5b922be +msgid "" +"**Implemented** request `#870 " +"`_: " +":meth:`Document.convert_to_pdf` now also supports PDF documents." +msgstr "" + +#: ../../../changes.txt:1756 8b39542efeb8486782751bc4045f8c45 +msgid "" +"**Renamed** ``Document.write`` to :meth:`Document.tobytes` for greater " +"clarity. But the deprecated name remains available for some time." +msgstr "" + +#: ../../../changes.txt:1757 6717eb5a2cfb422a8b239e698e9d1a4e +msgid "" +"**Implemented** request `#843 " +"`_: " +":meth:`Document.tobytes` now supports linearized PDF output. " +":meth:`Document.save` now also supports writing to Python **file " +"objects**. In addition, the open function now also supports Python file " +"objects." +msgstr "" + +#: ../../../changes.txt:1758 318196b9b9f24559b099a5a3b86b61a3 +msgid "**Fixed** issue `#844 `_." +msgstr "" + +#: ../../../changes.txt:1759 22303a902c214152a94cf6908eaada79 +msgid "**Fixed** issue `#838 `_." +msgstr "" + +#: ../../../changes.txt:1760 8d1575cb41f944d1ab091d1f15fdfe3f +msgid "" +"**Fixed** issue `#823 `_. " +"More logic for better support of OCRed text output (Tesseract, ABBYY)." +msgstr "" + +#: ../../../changes.txt:1761 938fa234a4d64b4998e755f30a353917 +msgid "**Fixed** issue `#818 `_." +msgstr "" + +#: ../../../changes.txt:1762 5b25601056b641bebbe1fdbe9fbf59fc +msgid "**Fixed** issue `#814 `_." +msgstr "" + +#: ../../../changes.txt:1763 b4352fd5bf734216a09bc2b65068a9a1 +msgid "" +"**Added** :meth:`Document.get_page_labels` which returns a list of page " +"label definitions of a PDF." +msgstr "" + +#: ../../../changes.txt:1764 d10d74d2add045f19432215b68dc5965 +msgid "" +"**Added** :meth:`Document.has_annots` and :meth:`Document.has_links` to " +"check whether these object types are present anywhere in a PDF." +msgstr "" + +#: ../../../changes.txt:1765 344e56b009634edaa8a7654870785c6a +msgid "" +"**Added** expert low-level functions to simplify inquiry and modification" +" of PDF object sources: :meth:`Document.xref_get_keys` lists the keys of " +"object :data:`xref`, :meth:`Document.xref_get_key` returns type and " +"content of a key, and :meth:`Document.xref_set_key` modifies the key's " +"value." +msgstr "" + +#: ../../../changes.txt:1766 97ffd95b565242c8a475c6f2123f9b83 +msgid "" +"**Added** parameter ``thumbnails`` to :meth:`Document.scrub` to also " +"allow removing page thumbnail images." +msgstr "" + +#: ../../../changes.txt:1767 be54a84b631a4f539269cea4d2530c10 +msgid "" +"**Improved** documentation for how to add valid text marker annotations " +"for non-horizontal text." +msgstr "" + +#: ../../../changes.txt:1769 7ec7306e128341c2a63a9daaf99494bb +msgid "" +"We continued the process of renaming methods and properties from " +"*\"mixedCase\"* to *\"snake_case\"*. Documentation usually mentions the " +"new names only, but old, deprecated names remain available for some time." +msgstr "" + +#: ../../../changes.txt:1775 40b8c78ac8154766b3f786804b70d764 +msgid "**Changes in Version 1.18.6**" +msgstr "" + +#: ../../../changes.txt:1777 099ac66b71ab437b8f793444fbf3c368 +msgid "**Fixed** issue `#812 `_." +msgstr "" + +#: ../../../changes.txt:1778 8d754c7625ba4e16b8b1d2da2931571c +msgid "" +"**Fixed** issue `#793 `_. " +"Invalid document metadata previously prevented opening some documents at " +"all. This error has been removed." +msgstr "" + +#: ../../../changes.txt:1779 b6756d8e13654194ae64028173969354 +msgid "" +"**Fixed** issue `#792 `_. " +"Text search and text extraction will make no rectangle containment checks" +" at all if the default ``clip=None`` is used." +msgstr "" + +#: ../../../changes.txt:1780 f3374a74399e41139ae1b0fd15053232 +msgid "**Fixed** issue `#785 `_." +msgstr "" + +#: ../../../changes.txt:1781 6f0ad41d3e0845679fc1b7f630d9350e +msgid "" +"**Fixed** issue `#780 `_. " +"Corrected a parameter check error." +msgstr "" + +#: ../../../changes.txt:1782 a9af2b2f5b024f1d90aca0eed1eff596 +msgid "" +"**Fixed** issue `#779 `_. " +"Fixed typo" +msgstr "" + +#: ../../../changes.txt:1783 52e2c5d1e3734d0b9c1eafeea70502c0 +msgid "" +"**Added** an option to set the desired line height for text boxes. " +"Implements `#804 `_." +msgstr "" + +#: ../../../changes.txt:1784 8a89dd2499fa4288aa2e4376409bc950 +msgid "" +"**Changed** text position retrieval to better cope with Tesseract's " +"glyphless font. Implements `#803 " +"`_." +msgstr "" + +#: ../../../changes.txt:1785 1c3abaa13d464f07839341b87f7b065c +msgid "" +"**Added** an option to choose the prefix of new annotations, fields and " +"links for providing unique annotation ids. Implements request `#807 " +"`_." +msgstr "" + +#: ../../../changes.txt:1786 705f241926b94e4faed825b90187d9a8 +msgid "" +"**Added** getting and setting color and text properties for Table of " +"Contents items for PDFs. Implements `#779 " +"`_." +msgstr "" + +#: ../../../changes.txt:1787 f290b3e394a643ef92eb166d6ac700ba +msgid "" +"**Added** PDF page label handling: :meth:`Page.get_label()` returns the " +"page label, :meth:`Document.get_page_numbers` return all page numbers " +"having a specified label, and :meth:`Document.set_page_labels` adds or " +"updates a PDF's page label definition." +msgstr "" + +#: ../../../changes.txt:1792 204e52071aeb4560ad583594170382fc +msgid "" +"This version introduces **Python type hinting**. The goal is to provide " +"each parameter and the return value of all functions and methods with " +"type information. This still is work in progress although the majority of" +" functions has already been handled." +msgstr "" + +#: ../../../changes.txt:1797 ff861662db5c4fe985c61a23a602d0ab +msgid "**Changes in Version 1.18.5**" +msgstr "" + +#: ../../../changes.txt:1799 8972338cdcc14af3a7644a3dcddf69e2 +msgid "" +"Apart from several fixes, this version also focusses on several minor, " +"but important feature improvements. Among the latter is a more precise " +"computation of proper line heights and insertion points for writing / " +"inserting text. As opposed to using font-agnostic constants, these values" +" are now taken from the font's properties." +msgstr "" + +#: ../../../changes.txt:1801 f9a9d31367f946218578af60d466b702 +msgid "" +"Also note that this is the first version which does no longer provide " +"pregenerated wheels for Python versions older than 3.6. PIP also " +"discontinues support for these by end of this year 2020." +msgstr "" + +#: ../../../changes.txt:1803 93396822ddee484c904221f0e650bb40 +msgid "" +"**Fixed** issue `#771 `_. " +"By using \"small glyph heights\" option, the full page text can be " +"extracted." +msgstr "" + +#: ../../../changes.txt:1804 4283660ecb4e497a8d5f66c223269138 +msgid "**Fixed** issue `#768 `_." +msgstr "" + +#: ../../../changes.txt:1805 cb94c9971f18482b8a6116bac1e91eda +msgid "**Fixed** issue `#750 `_." +msgstr "" + +#: ../../../changes.txt:1806 0f4ccdc52d33496780a6883b3eac2040 +msgid "" +"**Fixed** issue `#739 `_. " +"The \"dict\", \"rawdict\" and corresponding JSON output variants now have" +" two new *span* keys: ``\"ascender\"`` and ``\"descender\"``. These " +"floats represent special font properties which can be used to compute " +"bboxes of spans or characters of **exactly fontsize height** (as opposed " +"to the default line height). An example algorithm is shown in section " +"\"Span Dictionary\" `here " +"`_. Also improved the " +"detection and correction of ill-specified ascender / descender values " +"encountered in some fonts." +msgstr "" + +#: ../../../changes.txt:1807 46d09243233b47bfabfb624aabe62a7f +msgid "" +"**Added** a new, experimental :meth:`Tools.set_small_glyph_heights` -- " +"also in response to issue `#739 " +"`_. This method sets or " +"unsets a global parameter to **always compute bboxes with fontsize " +"height**. If \"on\", text searching and all text extractions will " +"returned rectangles, bboxes and quads with a smaller height." +msgstr "" + +#: ../../../changes.txt:1808 2348f09c087f4e77a9552300a273b2f9 +msgid "**Fixed** issue `#728 `_." +msgstr "" + +#: ../../../changes.txt:1809 24ffb89f8a2847978a993810a34d9d8e +msgid "" +"**Changed** fill color logic of 'Polyline' annotations: this parameter " +"now only pertains to line end symbols -- the annotation itself can no " +"longer have a fill color. Also addresses issue `#727 " +"`_." +msgstr "" + +#: ../../../changes.txt:1810 d11988b7d91c474394a305026cbdac36 +msgid "" +"**Changed** :meth:`Page.getImageBbox` to also compute the bbox if the " +"image is contained in an XObject." +msgstr "" + +#: ../../../changes.txt:1811 92be2318a74e44bcbfe6d9d124cc6944 +msgid "" +"**Changed** :meth:`Shape.insertTextbox`, resp. " +":meth:`Page.insertTextbox`, resp. :meth:`TextWriter.fillTextbox` to " +"respect font's properties \"ascender\" / \"descender\" when computing " +"line height and insertion point. This should no longer lead to line " +"overlaps for multi-line output. These methods used to ignore font " +"specifics and used constant values instead." +msgstr "" + +#: ../../../changes.txt:1816 726b3c851a2742a08174e040daa6b3fc +msgid "**Changes in Version 1.18.4**" +msgstr "" + +#: ../../../changes.txt:1818 0669695e181f46b8b1d1c44f84c7cc1e +msgid "" +"This version adds several features to support PDF Optional Content. Among" +" other things, this includes OCMDs (Optional Content Membership " +"Dictionaries) with the full scope of *\"visibility expressions\"* (PDF " +"key ``/VE``), text insertions (including the :ref:`TextWriter` class) and" +" drawings." +msgstr "" + +#: ../../../changes.txt:1820 298b682a9c8e4b17b5d9c2763ce13305 +msgid "" +"**Fixed** issue `#727 `_. " +"Freetext annotations now support an uncolored rectangle when " +"``fill_color=None``." +msgstr "" + +#: ../../../changes.txt:1821 2e4c66207d0441dd87fc8dee4d8db80f +msgid "" +"**Fixed** issue `#726 `_. " +"UTF-8 encoding errors are now handled for HTML / XML :meth:`Page.getText`" +" output." +msgstr "" + +#: ../../../changes.txt:1822 e3ea52520ca74100aa5db3c1a47bcb22 +msgid "" +"**Fixed** issue `#724 `_. " +"Empty values are no longer stored in the PDF /Info metadata dictionary." +msgstr "" + +#: ../../../changes.txt:1823 a76c87f209e9404ea2a27260f984c079 +msgid "" +"**Added** new methods :meth:`Document.set_oc` and :meth:`Document.get_oc`" +" to set or get optional content references for **existing** image and " +"form XObjects. These methods are similar to the same-named methods of " +":ref:`Annot`." +msgstr "" + +#: ../../../changes.txt:1824 6ae1cf58b5734e2db334370bae53194f +msgid "" +"**Added** :meth:`Document.set_ocmd`, :meth:`Document.get_ocmd` for " +"handling OCMDs." +msgstr "" + +#: ../../../changes.txt:1825 02c47a051f444e57a07a5c2cc00d8ece +msgid "**Added** **Optional Content** support for text insertion and drawing." +msgstr "" + +#: ../../../changes.txt:1826 033f5fd3092446d89a8b4be25eaf8fa5 +msgid "" +"**Added** new method :meth:`Page.deleteWidget`, which deletes a form " +"field from a page. This is analogous to deleting annotations." +msgstr "" + +#: ../../../changes.txt:1827 f3f7aabfa367473eb2a71dd0d3b0c8ef +msgid "" +"**Added** support for Popup annotations. This includes defining the Popup" +" rectangle and setting the Popup to open or closed. Methods / attributes " +":meth:`Annot.set_popup`, :meth:`Annot.set_open`, :attr:`Annot.has_popup`," +" :attr:`Annot.is_open`, :attr:`Annot.popup_rect`, " +":attr:`Annot.popup_xref`." +msgstr "" + +#: ../../../changes.txt:1831 fff305ae1bfa4fa7a3b33de7de989103 +msgid "" +"The **naming of methods and attributes** in PyMuPDF is far from being " +"satisfactory: we have *CamelCases*, *mixedCases* and " +"*lower_case_with_underscores* all over the place. With the :ref:`Annot` " +"as the first candidate, we have started an activity to clean this up step" +" by step, converting to lower case with underscores for methods and " +"attributes while keeping UPPERCASE for the constants." +msgstr "" + +#: ../../../changes.txt:1833 5a5df8a85edd445a9168a3050257beb0 +msgid "" +"Old names will remain available to prevent code breaks, but they will no " +"longer be mentioned in the documentation." +msgstr "" + +#: ../../../changes.txt:1834 d9dd3ce555be40288946b5c7b8684d7d +msgid "" +"New methods and attributes of all classes will be named according to the " +"new standard." +msgstr "" + +#: ../../../changes.txt:1838 8d1aa669d43242329cb1e644baaea966 +msgid "**Changes in Version 1.18.3**" +msgstr "" + +#: ../../../changes.txt:1840 0cc7942ae4f54d4698a56df9bcfc4df1 +msgid "" +"As a major new feature, this version introduces support for PDF's " +"**Optional Content** concept." +msgstr "" + +#: ../../../changes.txt:1842 eba5a3b05af340fd8d30d56d8053156a +msgid "**Fixed** issue `#714 `_." +msgstr "" + +#: ../../../changes.txt:1843 e0d1304eda394d6a88565ba84484d6fe +msgid "**Fixed** issue `#711 `_." +msgstr "" + +#: ../../../changes.txt:1844 bc199ec49e1945f1947218cd0c858828 +msgid "" +"**Fixed** issue `#707 `_: " +"if a PDF user password, but no owner password is supplied nor present, " +"then the user password is also used as the owner password." +msgstr "" + +#: ../../../changes.txt:1845 1e99eff725e24f2f91fffda242611187 +msgid "" +"**Fixed** ``expand`` and ``deflate`` parameters of methods " +":meth:`Document.save` and :meth:`Document.write`. Individual image and " +"font compression should now finally work. Addresses issue `#713 " +"`_." +msgstr "" + +#: ../../../changes.txt:1846 c7dbcce5af3f4805bc0bff4a3aa999c8 +msgid "" +"**Added** a support of PDF optional content. This includes several new " +":ref:`Document` methods for inquiring and setting optional content status" +" and adding optional content configurations and groups. In addition, " +"images, form XObjects and annotations now can be bound to optional " +"content specifications. **Resolved** issue `#709 " +"`_." +msgstr "" + +#: ../../../changes.txt:1852 7005feac30d44416a7ae56c3c62aa421 +msgid "**Changes in Version 1.18.2**" +msgstr "" + +#: ../../../changes.txt:1854 2557dd6711e74c5687da189106d7b072 +msgid "" +"This version contains some interesting improvements for text searching: " +"any number of search hits is now returned and the **hit_max** parameter " +"was removed. The new **clip** parameter in addition allows to restrict " +"the search area. Searching now detects hyphenations at line breaks and " +"accordingly finds hyphenated words." +msgstr "" + +#: ../../../changes.txt:1856 f5a9d7fa7c5b434388c99b444417932e +msgid "" +"**Fixed** issue `#575 `_: " +"if using ``quads=False`` in text searching, then overlapping rectangles " +"on the same line are joined. Previously, parts of the search string, " +"which belonged to different \"marked content\" items, each generated " +"their own rectangle -- just as if occurring on separate lines." +msgstr "" + +#: ../../../changes.txt:1857 fa0f315fcdbb4aa7a85ebd875b0542b2 +msgid "" +"**Added** :attr:`Document.isRepaired`, which is true if the PDF was " +"repaired on open." +msgstr "" + +#: ../../../changes.txt:1858 29939ef23137444db25656ddb5c2a50b +msgid "" +"**Added** :meth:`Document.setXmlMetadata` which either updates or creates" +" PDF XML metadata. Implements issue `#691 " +"`_." +msgstr "" + +#: ../../../changes.txt:1859 be99f9d509a84865a76d789e59d88508 +msgid "**Added** :meth:`Document.getXmlMetadata` returns PDF XML metadata." +msgstr "" + +#: ../../../changes.txt:1860 b5792e748a424e2f81526972850dbdf9 +msgid "" +"**Changed** creation of PDF documents: they will now always carry a PDF " +"identification (``/ID`` field) in the document trailer. Implements issue " +"`#691 `_." +msgstr "" + +#: ../../../changes.txt:1861 66eda59a33aa45ee88d7c201c85dfd3a +msgid "" +"**Changed** :meth:`Page.searchFor`: a new parameter ``clip`` is accepted " +"to restrict the search to this rectangle. Correspondingly, the attribute " +":attr:`TextPage.rect` is now respected by :meth:`TextPage.search`." +msgstr "" + +#: ../../../changes.txt:1862 40efc3861a01468ba0b65c1950845cde +msgid "" +"**Changed** parameter ``hit_max`` in :meth:`Page.searchFor` and " +":meth:`TextPage.search` is now obsolete: methods will return all hits." +msgstr "" + +#: ../../../changes.txt:1863 52c4e18a02684b35894a335001e4b449 +msgid "" +"**Changed** character **selection criteria** in :meth:`Page.getText`: a " +"character is now considered to be part of a ``clip`` if its bbox is fully" +" contained. Before this, a non-empty intersection was sufficient." +msgstr "" + +#: ../../../changes.txt:1864 b05dff665c9644849dfb39e3b881dc36 +msgid "" +"**Changed** :meth:`Document.scrub` to support a new option " +"`redact_images`. This addresses issue `#697 " +"`_." +msgstr "" + +#: ../../../changes.txt:1869 dcb97ced9507410d944ce850f20740d7 +msgid "**Changes in Version 1.18.1**" +msgstr "" + +#: ../../../changes.txt:1871 ba246f3cc40a4c189c06444a474f03c8 +msgid "" +"**Fixed** issue `#692 `_. " +"PyMuPDF now detects and recovers from more cyclic resource dependencies " +"in PDF pages and for the first time reports them in the MuPDF warnings " +"store." +msgstr "" + +#: ../../../changes.txt:1872 5ea166e77dfd422487491dc7989ac87b +msgid "**Fixed** issue `#686 `_." +msgstr "" + +#: ../../../changes.txt:1873 24c8bae3003740b3b7ef2f1245674d54 +msgid "" +"**Added** opacity options for the :ref:`Shape` class: Stroke and fill " +"colors can now be set to some transparency value. This means that all " +":ref:`Page` draw methods, methods :meth:`Page.insertText`, " +":meth:`Page.insertTextbox`, :meth:`Shape.finish`, " +":meth:`Shape.insertText`, and :meth:`Shape.insertTextbox` support two new" +" parameters: *stroke_opacity* and *fill_opacity*." +msgstr "" + +#: ../../../changes.txt:1874 0eab763d4bde434c99750d05c7744be8 +msgid "" +"**Added** new parameter ``mask`` to :meth:`Page.insertImage` for " +"optionally providing an external image mask. Resolves issue `#685 " +"`_." +msgstr "" + +#: ../../../changes.txt:1875 d7eb84e2b45346e9805c75ed708951db +msgid "" +"**Added** :meth:`Annot.soundGet` for extracting the sound of an audio " +"annotation." +msgstr "" + +#: ../../../changes.txt:1879 8a1eef562c944225a15aca32aa0a68d0 +msgid "**Changes in Version 1.18.0**" +msgstr "" + +#: ../../../changes.txt:1881 f828b2f6db734312b557796ab1a48396 +msgid "" +"This is the first PyMuPDF version supporting MuPDF v1.18. The focus here " +"is on extending PyMuPDF's own functionality -- apart from bug fixing. " +"Subsequent PyMuPDF patches may address features new in MuPDF." +msgstr "" + +#: ../../../changes.txt:1883 a9a5a178f719434b9bd31e65ea52f799 +msgid "" +"**Fixed** issue `#519 `_. " +"This upstream bug occurred occasionally for some pages only and seems to " +"be fixed now: page layout should no longer be ruined in these cases." +msgstr "" + +#: ../../../changes.txt:1885 532d4ce5429a41979de31fd798876926 +msgid "**Fixed** issue `#675 `_." +msgstr "" + +#: ../../../changes.txt:1887 4afda8086e88434b991c90a40f6b3c63 +msgid "" +"Unsuccessful storage allocations should now always lead to exceptions " +"(circumvention of an upstream bug intermittently crashing the " +"interpreter)." +msgstr "" + +#: ../../../changes.txt:1888 9b95a7d89275404592c843e6e1a69d20 +msgid "" +":ref:`Pixmap` size is now based on ``size_t`` instead of ``int`` in C and" +" should be correct even for extremely large pixmaps." +msgstr "" + +#: ../../../changes.txt:1890 50d1e348ab4a420e82ff6163e457c791 +msgid "" +"**Fixed** issue `#668 `_. " +"Specification of dashes for PDF drawing insertion should now correctly " +"reflect the PDF spec." +msgstr "" + +#: ../../../changes.txt:1891 e2c585c3927446b58b695299aacefa37 +msgid "" +"**Fixed** issue `#669 `_. " +"A major source of memory leakage in :meth:`Page.insert_pdf` has been " +"removed." +msgstr "" + +#: ../../../changes.txt:1892 21f99d039e0b406ba748fa27b51b61ab +msgid "" +"**Added** keyword *\"images\"* to :meth:`Page.apply_redactions` for fine-" +"controlling the handling of images." +msgstr "" + +#: ../../../changes.txt:1893 06f2d99671fb4a4693ac550bbe174f39 +msgid "" +"**Added** :meth:`Annot.getText` and :meth:`Annot.getTextbox`, which offer" +" the same functionality as the :ref:`Page` versions." +msgstr "" + +#: ../../../changes.txt:1894 cc38d6a9295a4baabbe0fa91a8729818 +msgid "" +"**Added** key *\"number\"* to the block dictionaries of " +":meth:`Page.getText` / :meth:`Annot.getText` for options \"dict\" and " +"\"rawdict\"." +msgstr "" + +#: ../../../changes.txt:1895 95b81b00ad5f4f67abab2d83e62fa830 +msgid "" +"**Added** :meth:`glyph_name_to_unicode` and " +":meth:`unicode_to_glyph_name`. Both functions do not really connect to a " +"specific font and are now independently available, too. The data are now " +"based on the `Adobe Glyph List `_." +msgstr "" + +#: ../../../changes.txt:1896 3435f8b2d002434ea2961e3bfa9e9ef5 +msgid "" +"**Added** convenience functions :meth:`adobe_glyph_names` and " +":meth:`adobe_glyph_unicodes` which return the respective available data." +msgstr "" + +#: ../../../changes.txt:1897 46734bcd601a4c10b224d8af13288ece +msgid "" +"**Added** :meth:`Page.getDrawings` which returns details of drawing " +"operations on a document page. Works for all document types." +msgstr "" + +#: ../../../changes.txt:1898 0a520f7de35d43a992a69aaff5c5b428 +msgid "" +"Improved performance of :meth:`Document.insert_pdf`. Multiple object " +"copies are now also suppressed across multiple separate insertions from " +"the same source. This saves time, memory and target file size. Previously" +" this mechanism was only active within each single method execution. The " +"feature can also be suppressed with the new method bool parameter " +"*final=1*, which is the default." +msgstr "" + +#: ../../../changes.txt:1899 61af4c935234421da5ee00ff3ad32977 +msgid "" +"For PNG images created from pixmaps, the resolution (dpi) is now " +"automatically set from the respective :attr:`Pixmap.xres` and " +":attr:`Pixmap.yres` values." +msgstr "" + +#: ../../../changes.txt:1904 5787bf266f7743eba6c3ad62840101c8 +msgid "**Changes in Version 1.17.7**" +msgstr "" + +#: ../../../changes.txt:1906 fe5734ffddc1440683824cf9eaeb5f6e +msgid "" +"**Fixed** issue `#651 `_. " +"An upstream bug causing interpreter crashes in corner case redaction " +"processings was fixed by backporting MuPDF changes from their development" +" repo." +msgstr "" + +#: ../../../changes.txt:1907 ebc978213c4446bba6ca783ac6fc99e5 +msgid "" +"**Fixed** issue `#645 `_. " +"Pixmap top-left coordinates can be set (again) by their own method, " +":meth:`Pixmap.set_origin`." +msgstr "" + +#: ../../../changes.txt:1908 28e1c70a439943fb93756b8877d3f067 +msgid "" +"**Fixed** issue `#622 `_. " +":meth:`Page.insertImage` again accepts a :data:`rect_like` parameter." +msgstr "" + +#: ../../../changes.txt:1909 878ea74492ff47559c0f731484ecd4c7 +msgid "" +"**Added** severeal new methods to improve and speed-up table of contents " +"(TOC) handling. Among other things, TOC items can now changed or deleted " +"individually -- without always replacing the complete TOC. Furthermore, " +"access to some PDF page attributes is now possible without first " +"**loading** the page. This has a very significant impact on the " +"performance of TOC manipulation." +msgstr "" + +#: ../../../changes.txt:1910 4808333e353f4b9d9eb4c65d42a50c6d +msgid "" +"**Added** an option to :meth:`Document.insert_pdf` which allows " +"displaying progress messages. Adresses `#640 " +"`_." +msgstr "" + +#: ../../../changes.txt:1911 16de294b58a64f549ba7bd27e208d30b +msgid "" +"**Added** :meth:`Page.getTextbox` which extracts text contained in a " +"rectangle. In many cases, this should obsolete writing your own script " +"for this type of thing." +msgstr "" + +#: ../../../changes.txt:1912 9711b2846e2c49f3bb6c283d0b1d9d67 +msgid "" +"**Added** new ``clip`` parameter to :meth:`Page.getText` to simplify and " +"speed up text extraction of page sub areas." +msgstr "" + +#: ../../../changes.txt:1913 8376ab0f05934f11b21f7fe154f09584 +msgid "" +"**Added** :meth:`TextWriter.appendv` to add text in **vertical write " +"mode**. Addresses issue `#653 " +"`_" +msgstr "" + +#: ../../../changes.txt:1918 bd8548ec9f5e41a8ad54094881be2323 +msgid "**Changes in Version 1.17.6**" +msgstr "" + +#: ../../../changes.txt:1920 d2312ab353dc4344a3ef174e63c10207 +msgid "**Fixed** issue `#605 `_" +msgstr "" + +#: ../../../changes.txt:1921 d52cabcacf8e4c7b8f280b8bb95e5d14 +msgid "" +"**Fixed** issue `#600 `_ " +"-- text should now be correctly positioned also for pages with a CropBox " +"smaller than MediaBox." +msgstr "" + +#: ../../../changes.txt:1922 84afef0f9451476d83841dc61e1ae4d6 +msgid "" +"**Added** text span dictionary key ``origin`` which contains the lower " +"left coordinate of the first character in that span." +msgstr "" + +#: ../../../changes.txt:1923 c2104decab38443f85a9f4afbcf59e5f +msgid "**Added** attribute :attr:`Font.buffer`, a *bytes* copy of the font file." +msgstr "" + +#: ../../../changes.txt:1924 3b8f869df37e4187b691a5636fabbcc4 +msgid "" +"**Added** parameter *sanitize* to :meth:`Page.cleanContents`. Allows " +"switching of sanitization, so only syntax cleaning will be done." +msgstr "" + +#: ../../../changes.txt:1928 79b5769975fc461580fc75e187439f1a +msgid "**Changes in Version 1.17.5**" +msgstr "" + +#: ../../../changes.txt:1930 c3dee94cf9eb4f8c9c29a712da46feee +msgid "" +"**Fixed** issue `#561 `_ " +"-- second go: certain :ref:`TextWriter` usages with many alternating " +"fonts did not work correctly." +msgstr "" + +#: ../../../changes.txt:1931 b1cd45be4c3e414b9a31943b87ffa257 +msgid "**Fixed** issue `#566 `_." +msgstr "" + +#: ../../../changes.txt:1932 c4be58f459d54570a15caabfa48b2fea +msgid "**Fixed** issue `#568 `_." +msgstr "" + +#: ../../../changes.txt:1933 a3a69f69f7e446d190a422fd95946055 +msgid "" +"**Fixed** -- opacity is now correctly taken from the :ref:`TextWriter` " +"object, if not given in :meth:`TextWriter.writeText`." +msgstr "" + +#: ../../../changes.txt:1934 60e36a0e76204fc39ca63f66c0e017f0 +msgid "" +"**Added** a new global attribute :attr:`fitz_fontdescriptors`. Contains " +"information about usable fonts from repository `pymupdf-fonts " +"`_." +msgstr "" + +#: ../../../changes.txt:1935 c5bbfe6d1dfc44bea3cf4c3d67f6d27d +msgid "" +"**Added** :meth:`Font.valid_codepoints` which returns an array of unicode" +" codepoints for which the font has a glyph." +msgstr "" + +#: ../../../changes.txt:1936 d2abd73772384a31a507c1e1d6f4988b +msgid "" +"**Added** option ``text_as_path`` to :meth:`Page.getSVGimage`. this " +"implements `#580 `_. " +"Generates much smaller SVG files with parseable text if set to *False*." +msgstr "" + +#: ../../../changes.txt:1941 0214e36149a247f698e38dfd899ff4fb +msgid "**Changes in Version 1.17.4**" +msgstr "" + +#: ../../../changes.txt:1943 e333e2461114401ea23d111aa11cbe48 +msgid "" +"**Fixed** issue `#561 `_. " +"Handling of more than 10 :ref:`Font` objects on one page should now work " +"correctly." +msgstr "" + +#: ../../../changes.txt:1944 3dc7e6c23bdb4fa2af06fa690d6c50e1 +msgid "" +"**Fixed** issue `#562 `_. " +"Annotation pixmaps are no longer derived from the page pixmap, thus " +"avoiding unintended inclusion of page content." +msgstr "" + +#: ../../../changes.txt:1945 598609fee1c2419f8f22dd734d9e4621 +msgid "" +"**Fixed** issue `#559 `_. " +"This **MuPDF** bug is being temporarily fixed with a pre-version of " +"MuPDF's next release." +msgstr "" + +#: ../../../changes.txt:1946 2b01a159631746d0b9e27d2f4ee7f2f3 +msgid "" +"**Added** utility function :meth:`repair_mono_font` for correcting " +"displayed character spacing for some mono-spaced fonts." +msgstr "" + +#: ../../../changes.txt:1947 d63409b0745449c5b326f78fcbdb243d +msgid "" +"**Added** utility method :meth:`Document.need_appearances` for fine-" +"controlling Form PDF behavior. Addresses issue `#563 " +"`_." +msgstr "" + +#: ../../../changes.txt:1948 261813b8c1164f85bd099615986583b1 +msgid "" +"**Added** utility function :meth:`sRGB_to_pdf` to recover the PDF color " +"triple for a given color integer in sRGB format." +msgstr "" + +#: ../../../changes.txt:1949 087525d5979d4e88b699951008f083cd +msgid "" +"**Added** utility function :meth:`sRGB_to_rgb` to recover the (R, G, B) " +"color triple for a given color integer in sRGB format." +msgstr "" + +#: ../../../changes.txt:1950 dfce06d94de945d298f54486d626b557 +msgid "" +"**Added** utility function :meth:`make_table` which delivers table cells " +"for a given rectangle and desired numbers of columns and rows." +msgstr "" + +#: ../../../changes.txt:1951 a5085ba0096648a5abdb1bac873f8a91 +msgid "" +"**Added** support for optional fonts in repository `pymupdf-fonts " +"`_." +msgstr "" + +#: ../../../changes.txt:1955 6035ab0f4f8f4c22b602c2975ca7a9bb +msgid "**Changes in Version 1.17.3**" +msgstr "" + +#: ../../../changes.txt:1957 dd9eec4fdfa74a648a0ddfffafa83372 +msgid "" +"**Fixed** an undocumented issue, which prevented fully cleaning a PDF " +"page when using :meth:`Page.cleanContents`." +msgstr "" + +#: ../../../changes.txt:1958 0847e901e54e42ab97132b411ad8703a +msgid "" +"**Fixed** issue `#540 `_. " +"Text extraction for EPUB should again work correctly." +msgstr "" + +#: ../../../changes.txt:1959 14b815222173483085dcc120dceb9f9b +msgid "" +"**Fixed** issue `#548 `_. " +"Documentation now includes ``LINK_NAMED``." +msgstr "" + +#: ../../../changes.txt:1960 f5eb1a9ec46e48479fef6e71d0ce3f21 +msgid "" +"**Added** new parameter to control start of text in " +":meth:`TextWriter.fillTextbox`. Implements `#549 " +"`_." +msgstr "" + +#: ../../../changes.txt:1961 67cf556f751344f683f697a61d518948 +msgid "" +"**Changed** documentation of :meth:`Page.add_redact_annot` to explain the" +" usage of non-builtin fonts." +msgstr "" + +#: ../../../changes.txt:1965 cc0c58ad8b0b41eda4f8e5716f2b16a8 +msgid "**Changes in Version 1.17.2**" +msgstr "" + +#: ../../../changes.txt:1967 c27ffc8eec8040018fa36d5790749cec +msgid "**Fixed** issue `#533 `_." +msgstr "" + +#: ../../../changes.txt:1968 27350a32fc7840bb8591f6081f20d94d +msgid "" +"**Added** options to modify 'Redact' annotation appearance. Implements " +"`#535 `_." +msgstr "" + +#: ../../../changes.txt:1973 b8bea379222d4215963ee2eb2ffa9049 +msgid "**Changes in Version 1.17.1**" +msgstr "" + +#: ../../../changes.txt:1975 60814804b9f84f3d8b98c3cf2dc5f20c +msgid "**Fixed** issue `#520 `_." +msgstr "" + +#: ../../../changes.txt:1976 9c3b1af133ad4aa9a4f08296f7affa70 +msgid "" +"**Fixed** issue `#525 `_. " +"Vertices for 'Ink' annots should now be correct." +msgstr "" + +#: ../../../changes.txt:1977 98b1d51b954b4c56bebe479ae1c44fdb +msgid "" +"**Fixed** issue `#524 `_. " +"It is now possible to query and set rotation for applicable annotation " +"types." +msgstr "" + +#: ../../../changes.txt:1979 465b318c922644768dbf6d5a01328404 +msgid "" +"Also significantly improved inline documentation for better support of " +"interactive help." +msgstr "" + +#: ../../../changes.txt:1983 5cd63263f85a4783a6ccfc029201386b +msgid "**Changes in Version 1.17.0**" +msgstr "" + +#: ../../../changes.txt:1985 b87f5b93bd9b48eeb6c65b06340048e4 +msgid "" +"This version is based on MuPDF v1.17. Following are highlights of new and" +" changed features:" +msgstr "" + +#: ../../../changes.txt:1987 b2f1ba6ba94140b98e5cc0fe7a3faa3b +msgid "" +"**Added** extended language support for annotations and widgets: a " +"mixture of Latin, Greece, Russian, Chinese, Japanese and Korean " +"characters can now be used in 'FreeText' annotations and text widgets. No" +" special arrangement is required to use it." +msgstr "" + +#: ../../../changes.txt:1989 e733e136ba8c438db34aca4bb17fc4ef +msgid "" +"Faster page access is implemented for documents supporting a \"chapter\" " +"structure. This applies to EPUB documents currently. This comes with " +"several new :ref:`Document` methods and changes for " +":meth:`Document.loadPage` and the \"indexed\" page access *doc[n]*: In " +"addition to specifying a page number as before, a tuple *(chaper, pno)* " +"can be specified to identify the desired page." +msgstr "" + +#: ../../../changes.txt:1991 971b877040f248cdba6abf69baeef371 +msgid "" +"**Changed:** Improved support of redaction annotations: images overlapped" +" by redactions are **permanantly modified** by erasing the overlap areas." +" Also links are removed if overlapped by redactions. This is now fully in" +" sync with PDF specifications." +msgstr "" + +#: ../../../changes.txt:1995 b49d2e2fb4e447e1b521a7c628189360 +msgid "" +"**Changed** :meth:`TextWriter.writeText` to support the *\"morph\"* " +"parameter." +msgstr "" + +#: ../../../changes.txt:1996 3fc9ed296a4f4010832533bc9a26128c +msgid "" +"**Added** methods :meth:`Rect.morph`, :meth:`IRect.morph`, and " +":meth:`Quad.morph`, which return a new :ref:`Quad`." +msgstr "" + +#: ../../../changes.txt:1997 b20b08f09a414edaacd286b8f526b6f8 +msgid "" +"**Changed** :meth:`Page.add_freetext_annot` to support text alignment via" +" a new *\"align\"* parameter." +msgstr "" + +#: ../../../changes.txt:1998 2361ff8be9cc46e1b8f08ddefa02efae +msgid "" +"**Fixed** issue `#508 `_. " +"Improved image rectangle calculation to hopefully deliver correct values " +"in most if not all cases." +msgstr "" + +#: ../../../changes.txt:1999 236cc95410f34fcc89f66e66388bfb9b +msgid "**Fixed** issue `#502 `_." +msgstr "" + +#: ../../../changes.txt:2000 b1667139e4fd40a187d32b0c93485b50 +msgid "" +"**Fixed** issue `#500 `_. " +":meth:`Document.convertToPDF` should no longer cause memory leaks." +msgstr "" + +#: ../../../changes.txt:2001 08f135a6cd9f48d68424126027bef590 +msgid "" +"**Fixed** issue `#496 `_. " +"Annotations and widgets / fields are now added or modified using the " +"coordinates of the **unrotated page**. This behavior is now in sync with " +"other methods modifying PDF pages." +msgstr "" + +#: ../../../changes.txt:2002 0129ba9864fa48e3b4ddbc7f32269fc2 +msgid "" +"**Added** :attr:`Page.rotationMatrix` and :attr:`Page.derotationMatrix` " +"to support coordinate transformations between the rotated and the " +"original versions of a PDF page." +msgstr "" + +#: ../../../changes.txt:2004 35a97c98b52e49278109e56b99107387 +msgid "Potential code breaking changes:" +msgstr "" + +#: ../../../changes.txt:2006 1a3fbe2084e24a759582e9aa05cc4591 +msgid "" +"The private method ``Page._getTransformation()`` has been removed. Use " +"the public :attr:`Page.transformationMattrix` instead." +msgstr "" + +#: ../../../changes.txt:2011 f06ca5ab722a487f87a29410f2bb377a +msgid "**Changes in Version 1.16.18**" +msgstr "" + +#: ../../../changes.txt:2013 75fa0dcdb41144b680ec66bfd4a6bd1a +msgid "" +"This version introduces several new features around PDF text output. The " +"motivation is to simplify this task, while at the same time offering " +"extending features." +msgstr "" + +#: ../../../changes.txt:2015 13b1f23e60414710b4271079289007c0 +msgid "" +"One major achievement is using MuPDF's capabilities to dynamically " +"choosing fallback fonts whenever a character cannot be found in the " +"current one. This seemlessly works for Base-14 fonts in combination with " +"CJK fonts (China, Japan, Korea). So a text may contain **any combination " +"of characters** from the Latin, Greek, Russian, Chinese, Japanese and " +"Korean languages." +msgstr "" + +#: ../../../changes.txt:2017 6ffef279ab3d445ca46586a05c3e8d90 +msgid "" +"**Fixed** issue `#493 `_. " +"``Pixmap(doc, xref)`` should now again correctly resemble the loaded " +"image object." +msgstr "" + +#: ../../../changes.txt:2018 afdb0475290145d38834c612bbb45088 +msgid "" +"**Fixed** issue `#488 `_. " +"Widget names are now modifiable." +msgstr "" + +#: ../../../changes.txt:2019 141ce60e1fc44924a6cbdea1662c8a7d +msgid "**Added** new class :ref:`Font` which represents a font." +msgstr "" + +#: ../../../changes.txt:2020 819be8edbaf04a2ebe870b12436fdad6 +msgid "" +"**Added** new class :ref:`TextWriter` which serves as a container for " +"text to be written on a page." +msgstr "" + +#: ../../../changes.txt:2021 be45ac51b3d7415e8150584132c49a33 +msgid "" +"**Added** :meth:`Page.writeText` to write one or more :ref:`TextWriter` " +"objects to the page." +msgstr "" + +#: ../../../changes.txt:2026 c355f22137584b4cbab6f6354bd95bda +msgid "**Changes in Version 1.16.17**" +msgstr "" + +#: ../../../changes.txt:2029 f3f07b3f33cc44c5984500283eb306e1 +msgid "" +"**Fixed** issue `#479 `_. " +"PyMuPDF should now more correctly report image resolutions. This applies " +"to both, images (either from images files or extracted from PDF " +"documents) and pixmaps created from images." +msgstr "" + +#: ../../../changes.txt:2030 96daad3b07ac4308a44d307f62c89c50 +msgid "" +"**Added** :meth:`Pixmap.set_dpi` which sets the image resolution in x and" +" y directions." +msgstr "" + +#: ../../../changes.txt:2034 33fc9fed734a4bf4990dd592129e984c +msgid "**Changes in Version 1.16.16**" +msgstr "" + +#: ../../../changes.txt:2037 765ca3ee977d42678126cf84057b4e3d +msgid "**Fixed** issue `#477 `_." +msgstr "" + +#: ../../../changes.txt:2038 6240d3c9c41c46be9652ecabcbae2fbb +msgid "**Fixed** issue `#476 `_." +msgstr "" + +#: ../../../changes.txt:2039 d5cd872ddead486aa29ca5b255ba885e +msgid "" +"**Changed** annotation line end symbol coloring and fixed an error " +"coloring the interior of 'Polyline' /'Polygon' annotations." +msgstr "" + +#: ../../../changes.txt:2043 bb450a98e5e04667aed64c1004529927 +msgid "**Changes in Version 1.16.14**" +msgstr "" + +#: ../../../changes.txt:2046 3228fbb9e5b4467498da27f2ad55fe5b +msgid "" +"**Changed** text marker annotations to accept parameters beyond just " +"quadrilaterals such that now **text lines between two given points can be" +" marked**." +msgstr "" + +#: ../../../changes.txt:2048 a97e5cc2834a4e96b0ede1ad6db5c900 +msgid "" +"**Added** :meth:`Document.scrub` which **removes potentially sensitive " +"data** from a PDF. Implements `#453 " +"`_." +msgstr "" + +#: ../../../changes.txt:2050 2f3c7cef276444c480a491776e3ef6e8 +msgid "" +"**Added** :meth:`Annot.blendMode` which returns the **blend mode** of " +"annotations." +msgstr "" + +#: ../../../changes.txt:2052 866e4a88a77d48a1b7aafb511b41907c +msgid "" +"**Added** :meth:`Annot.setBlendMode` to set the annotation's blend mode. " +"This resolves issue `#416 " +"`_." +msgstr "" + +#: ../../../changes.txt:2053 501eb9ee56e84e60be74f5ba75eaecb4 +msgid "" +"**Changed** :meth:`Annot.update` to accept additional parameters for " +"setting blend mode and opacity." +msgstr "" + +#: ../../../changes.txt:2054 85b91d3af2b944e09ffc418872e3540e +msgid "" +"**Added** advanced graphics features to **control the anti-aliasing " +"values**, :meth:`Tools.set_aa_level`. Resolves `#467 " +"`_" +msgstr "" + +#: ../../../changes.txt:2056 60b4c208b1c04edc9d0cc75db8e9b3ab +msgid "**Fixed** issue `#474 `_." +msgstr "" + +#: ../../../changes.txt:2057 4f4fa5bbd4bb45dc965381d06a2c28e1 +msgid "**Fixed** issue `#466 `_." +msgstr "" + +#: ../../../changes.txt:2063 c2150d5e98ed4b29a8d7d0e0e049893a +msgid "**Changes in Version 1.16.13**" +msgstr "" + +#: ../../../changes.txt:2066 6ffa2c895b184d7c9579c04c5e72d6cc +msgid "" +"**Added** :meth:`Document.getPageXObjectList` which returns a list of " +"**Form XObjects** of the page." +msgstr "" + +#: ../../../changes.txt:2067 1ad5db1dcf4e406d84fe85e8ac783a34 +msgid "" +"**Added** :meth:`Page.setMediaBox` for changing the physical PDF page " +"size." +msgstr "" + +#: ../../../changes.txt:2068 dc4ffb1b3bba4dd7a2c0b5018278954e +msgid "" +"**Added** :ref:`Page` methods which have been internal before: " +":meth:`Page.cleanContents` (= :meth:`Page._cleanContents`), " +":meth:`Page.getContents` (= :meth:`Page._getContents`), " +":meth:`Page.getTransformation` (= :meth:`Page._getTransformation`)." +msgstr "" + +#: ../../../changes.txt:2074 0a926e1f6bb64ff4ab4b4fed8ea0ee89 +msgid "**Changes in Version 1.16.12**" +msgstr "" + +#: ../../../changes.txt:2076 6f5ea75220774bb684dc3fe1dbf48e9b +msgid "**Fixed** issue `#447 `_" +msgstr "" + +#: ../../../changes.txt:2077 71bac266ce3746019c6a08f26d3ec822 +msgid "**Fixed** issue `#461 `_." +msgstr "" + +#: ../../../changes.txt:2078 373fc96ec8a54dee8c321088ee944682 +msgid "**Fixed** issue `#397 `_." +msgstr "" + +#: ../../../changes.txt:2079 7cf9d00c4d19420abaaf8c58b10147a0 +msgid "**Fixed** issue `#463 `_." +msgstr "" + +#: ../../../changes.txt:2080 fe57fdfdfd8d4dbab5eed84540ad2c09 +msgid "" +"**Added** JavaScript support to PDF form fields, thereby fixing `#454 " +"`_." +msgstr "" + +#: ../../../changes.txt:2081 3eb09d62dd6044afa545088e6207f9f5 +msgid "" +"**Added** a new annotation method :meth:`Annot.delete_responses`, which " +"removes 'Popup' and response annotations referring to the current one. " +"Mainly serves data protection purposes." +msgstr "" + +#: ../../../changes.txt:2082 5c849834cfb14620809866c9ac0b1f25 +msgid "" +"**Added** a new form field method :meth:`Widget.reset`, which resets the " +"field value to its default." +msgstr "" + +#: ../../../changes.txt:2083 1d43ac4e7dcf4344b0dfdcf700f6d7a5 +msgid "" +"**Changed** and extended handling of redactions: images and XObjects are " +"removed if *contained* in a redaction rectangle. Any partial only " +"overlaps will just be covered by the redaction background color. Now an " +"*overlay* text can be specified to be inserted in the rectangle area to " +"**take the place the deleted original** text. This resolves `#434 " +"`_." +msgstr "" + +#: ../../../changes.txt:2087 d41286ba5ebd44c280d5f43f2c164594 +msgid "**Changes in Version 1.16.11**" +msgstr "" + +#: ../../../changes.txt:2089 74c14cc395804937832a051835d5fecb +msgid "" +"**Added** Support for redaction annotations via method " +":meth:`Page.add_redact_annot` and :meth:`Page.apply_redactions`." +msgstr "" + +#: ../../../changes.txt:2090 68b7efcedf5f4d94964ff855c1baaa83 +msgid "**Fixed** issue #426 (\"PolygonAnnotation in 1.16.10 version\")." +msgstr "" + +#: ../../../changes.txt:2091 247da6da5b67427fab1dc09bed47037f +msgid "" +"**Fixed** documentation only issues `#443 " +"`_ and `#444 " +"`_." +msgstr "" + +#: ../../../changes.txt:2095 ed5a70ba54b5438786c6e36834b30a3d +msgid "**Changes in Version 1.16.10**" +msgstr "" + +#: ../../../changes.txt:2097 9147f50e16864bfe9fc59b9c324a45ca +msgid "" +"**Fixed** issue #421 (\"annot.set_rect(rect) has no effect on text " +"Annotation\")" +msgstr "" + +#: ../../../changes.txt:2098 2a0e32d4811546f3a036844d15350182 +msgid "" +"**Fixed** issue #417 (\"Strange behavior for page.deleteAnnot on 1.16.9 " +"compare to 1.13.20\")" +msgstr "" + +#: ../../../changes.txt:2099 85979328a4bc4780a1adf5da1b2e3893 +msgid "**Fixed** issue #415 (\"Annot.setOpacity throws mupdf warnings\")" +msgstr "" + +#: ../../../changes.txt:2100 2419b5fdf6bd4e14bf9217b890caa587 +msgid "" +"**Changed** all \"add annotation / widget\" methods to store a unique " +"name in the */NM* PDF key." +msgstr "" + +#: ../../../changes.txt:2101 9d4a65a638864c41800994ff9674b45a +msgid "" +"**Changed** :meth:`Annot.setInfo` to also accept direct parameters in " +"addition to a dictionary." +msgstr "" + +#: ../../../changes.txt:2102 d7c062a9ce2e4526a3f42e875262dd86 +msgid "" +"**Changed** :attr:`Annot.info` to now also show the annotation's unique " +"id (*/NM* PDF key) if present." +msgstr "" + +#: ../../../changes.txt:2103 e8cff5d5c3c8451381b2fbccf05c6ad9 +msgid "" +"**Added** :meth:`Page.annot_names` which returns a list of all annotation" +" names (*/NM* keys)." +msgstr "" + +#: ../../../changes.txt:2104 9e3fa2fe09b54dc29528cfced4d8729f +msgid "" +"**Added** :meth:`Page.load_annot` which loads an annotation given its " +"unique id (*/NM* key)." +msgstr "" + +#: ../../../changes.txt:2105 f5d8b4dd62cf460a9126ea02f116c488 +msgid "" +"**Added** :meth:`Document.reload_page` which provides a new copy of a " +"page after finishing any pending updates to it." +msgstr "" + +#: ../../../changes.txt:2110 072a5e68ce9a45629a888405caa5a5d2 +msgid "**Changes in Version 1.16.9**" +msgstr "" + +#: ../../../changes.txt:2112 c18c92f84efa4cfa8b797880e17d8bcb +msgid "" +"**Fixed** #412 (\"Feature Request: Allow controlling whether TOC entries " +"should be collapsed\")" +msgstr "" + +#: ../../../changes.txt:2113 f9a9a45513f74bfa9a4747231296426f +msgid "**Fixed** #411 (\"Seg Fault with page.firstWidget\")" +msgstr "" + +#: ../../../changes.txt:2114 cbe0b8f39db641068257179e30232c1f +msgid "**Fixed** #407 (\"Annot.setOpacity trouble\")" +msgstr "" + +#: ../../../changes.txt:2115 c4b9b8f9ef874c7f88678471ea871da9 +msgid "" +"**Changed** methods :meth:`Annot.setBorder`, :meth:`Annot.setColors`, " +":meth:`Link.setBorder`, and :meth:`Link.setColors` to also accept direct " +"parameters, and not just cumbersome dictionaries." +msgstr "" + +#: ../../../changes.txt:2119 d0e24eb6d1f34da0aca34159c1e8309c +msgid "**Changes in Version 1.16.8**" +msgstr "" + +#: ../../../changes.txt:2121 78fe31bc2d304b78a7a2cec103ad3a86 +msgid "" +"**Added** several new methods to the :ref:`Document` class, which make " +"dealing with PDF low-level structures easier. I also decided to provide " +"them as \"normal\" methods (as opposed to private ones starting with an " +"underscore \"_\"). These are :meth:`Document.xrefObject`, " +":meth:`Document.xrefStream`, :meth:`Document.xrefStreamRaw`, " +":meth:`Document.PDFTrailer`, :meth:`Document.PDFCatalog`, " +":meth:`Document.metadataXML`, :meth:`Document.updateObject`, " +":meth:`Document.updateStream`." +msgstr "" + +#: ../../../changes.txt:2122 f907ccb57c184be2857e9e13341bcf7f +msgid "" +"**Added** :meth:`Tools.mupdf_disply_errors` which sets the display of " +"mupdf errors on *sys.stderr*." +msgstr "" + +#: ../../../changes.txt:2123 462c8d75060e4a88a09ea596464f5368 +msgid "" +"**Added** a commandline facility. This a major new feature: you can now " +"invoke several utility functions via *\"python -m fitz ...\"*. It should " +"obsolete the need for many of the most trivial scripts. Please refer to " +":ref:`Module`." +msgstr "" + +#: ../../../changes.txt:2128 4f1ac7ae88d343e886b0fc8edee75d46 +msgid "**Changes in Version 1.16.7**" +msgstr "" + +#: ../../../changes.txt:2130 59ec1afd2e0b4cd3a5dc260bd354751e +msgid "" +"Minor changes to better synchronize the binary image streams of " +":ref:`TextPage` image blocks and :meth:`Document.extractImage` images." +msgstr "" + +#: ../../../changes.txt:2132 ac25ec6537ba4e92aab44dcf172c4ba8 +msgid "" +"**Fixed** issue #394 (\"PyMuPDF Segfaults when using " +"TOOLS.mupdf_warnings()\")." +msgstr "" + +#: ../../../changes.txt:2133 d9b7bf416f824ce09246787bdda98e63 +msgid "" +"**Changed** redirection of MuPDF error messages: apart from writing them " +"to Python *sys.stderr*, they are now also stored with the MuPDF warnings." +msgstr "" + +#: ../../../changes.txt:2134 f40406dcc3f04e31b7a7a9805de02e42 +msgid "" +"**Changed** :meth:`Tools.mupdf_warnings` to automatically empty the store" +" (if not deactivated via a parameter)." +msgstr "" + +#: ../../../changes.txt:2135 2299c535d3cb4aa6a186707196175500 +msgid "" +"**Changed** :meth:`Page.getImageBbox` to return an **infinite rectangle**" +" if the image could not be located on the page -- instead of raising an " +"exception." +msgstr "" + +#: ../../../changes.txt:2140 bfbc4d7dee2442f3b0f015ea21421028 +msgid "**Changes in Version 1.16.6**" +msgstr "" + +#: ../../../changes.txt:2142 c28c263feaa6419cb63d73ad8209d28d +msgid "**Fixed** issue #390 (\"Incomplete deletion of annotations\")." +msgstr "" + +#: ../../../changes.txt:2143 c5219152f7854dc88d39a7689713a4a8 +msgid "" +"**Changed** :meth:`Page.searchFor` / :meth:`Document.searchPageFor` to " +"also support the *flags* parameter, which controls the data included in a" +" :ref:`TextPage`." +msgstr "" + +#: ../../../changes.txt:2144 21ea396db0a04f04ac4bf6146ab72b59 +msgid "" +"**Changed** :meth:`Document.getPageImageList`, " +":meth:`Document.getPageFontList` and their :ref:`Page` counterparts to " +"support a new parameter *full*. If true, the returned items will contain " +"the :data:`xref` of the *Form XObject* where the font or image is " +"referenced." +msgstr "" + +#: ../../../changes.txt:2148 69f333b42ed44c918c9378c6632bd3e2 +msgid "**Changes in Version 1.16.5**" +msgstr "" + +#: ../../../changes.txt:2150 9f2ab73d9d874b4784539e77ddee4f5b +msgid "More performance improvements for text extraction." +msgstr "" + +#: ../../../changes.txt:2152 fb2a1a0548f3424b8d89927d5f5047ee +msgid "**Fixed** second part of issue #381 (see item in v1.16.4)." +msgstr "" + +#: ../../../changes.txt:2153 3f0ac5e4286c4997836ff33e123dbaf4 +msgid "" +"**Added** :meth:`Page.getTextPage`, so it is no longer required to create" +" an intermediate display list for text extractions. Page level wrappers " +"for text extraction and text searching are now based on this, which " +"should improve performance by ca. 5%." +msgstr "" + +#: ../../../changes.txt:2157 9e9865f910ed4d4399d4dfbe3c3d0597 +msgid "**Changes in Version 1.16.4**" +msgstr "" + +#: ../../../changes.txt:2160 e7d84df2ad7448e1880d04a6a7858521 +msgid "" +"**Fixed** issue #381 (\"TextPage.extractDICT ... failed ... after " +"upgrading ... to 1.16.3\")" +msgstr "" + +#: ../../../changes.txt:2161 17ca6aae522d4d84a5b1c510ca445cc6 +msgid "" +"**Added** method :meth:`Document.pages` which delivers a generator " +"iterator over a page range." +msgstr "" + +#: ../../../changes.txt:2162 b2b7308c362b461bb878fcc1538a0c92 +msgid "" +"**Added** method :meth:`Page.links` which delivers a generator iterator " +"over the links of a page." +msgstr "" + +#: ../../../changes.txt:2163 765160822cdc4aa9b4b723db791c91b6 +msgid "" +"**Added** method :meth:`Page.annots` which delivers a generator iterator " +"over the annotations of a page." +msgstr "" + +#: ../../../changes.txt:2164 3eb7fc95d4214c22a621ccb900d1e490 +msgid "" +"**Added** method :meth:`Page.widgets` which delivers a generator iterator" +" over the form fields of a page." +msgstr "" + +#: ../../../changes.txt:2165 d91d637897d54651a998f7dc0d19dc08 +msgid "" +"**Changed** :attr:`Document.is_form_pdf` to now contain the number of " +"widgets, and *False* if not a PDF or this number is zero." +msgstr "" + +#: ../../../changes.txt:2170 c01be0ed23784665aa2ce10d9ee9e605 +msgid "**Changes in Version 1.16.3**" +msgstr "" + +#: ../../../changes.txt:2172 112fd892e91d4394b0bbd52b9a508533 +msgid "" +"Minor changes compared to version 1.16.2. The code of the \"dict\" and " +"\"rawdict\" variants of :meth:`Page.getText` has been ported to C which " +"has greatly improved their performance. This improvement is mostly " +"noticeable with text-oriented documents, where they now should execute " +"almost two times faster." +msgstr "" + +#: ../../../changes.txt:2174 529a6e2ef3a44e7496d36d3b262a6697 +msgid "" +"**Fixed** issue #369 (\"mupdf: cmsCreateTransform failed\") by removing " +"ICC colorspace support." +msgstr "" + +#: ../../../changes.txt:2175 d2e2ed462d9a420181f57a3bf178f0c7 +msgid "" +"**Changed** :meth:`Page.getText` to accept additional keywords \"blocks\"" +" and \"words\". These will deliver the results of " +":meth:`Page.getTextBlocks` and :meth:`Page.getTextWords`, respectively. " +"So all text extraction methods are now available via a uniform API. " +"Correspondingly, there are now new methods :meth:`TextPage.extractBLOCKS`" +" and :meth:`TextPage.extractWords`." +msgstr "" + +#: ../../../changes.txt:2176 1c333634e45449ce9b326aff470a6f28 +msgid "" +"**Changed** :meth:`Page.getText` to default bit indicator " +"*TEXT_INHIBIT_SPACES* to **off**. Insertion of additional spaces is **not" +" suppressed** by default." +msgstr "" + +#: ../../../changes.txt:2180 12e20189c1f143da88f1568d186c2402 +msgid "**Changes in Version 1.16.2**" +msgstr "" + +#: ../../../changes.txt:2182 5b0a0190d48d45a79172681a52191e85 +msgid "" +"**Changed** text extraction methods of :ref:`Page` to allow detail " +"control of the amount of extracted data." +msgstr "" + +#: ../../../changes.txt:2183 26cc0a7bee624a97a6c6ee19ee703703 +msgid "" +"**Added** :meth:`planish_line` which maps a given line (defined as a pair" +" of points) to the x-axis." +msgstr "" + +#: ../../../changes.txt:2184 b3df1c1be11846f9993b323a07181579 +msgid "" +"**Fixed** an issue (w/o Github number) which brought down the interpreter" +" when encountering certain non-UTF-8 encodable characters while using " +":meth:`Page.getText` with te \"dict\" option." +msgstr "" + +#: ../../../changes.txt:2185 e6ba0bd1a32e4b12891ded9326249a81 +msgid "**Fixed** issue #362 (\"Memory Leak with getText('rawDICT')\")." +msgstr "" + +#: ../../../changes.txt:2189 e9569fdba664447da20f33096718b92f +msgid "**Changes in Version 1.16.1**" +msgstr "" + +#: ../../../changes.txt:2191 dcc8cf6fc2384f3bb994e03b3a87c729 +msgid "" +"**Added** property :attr:`Quad.is_convex` which checks whether a line is " +"contained in the quad if it connects two points of it." +msgstr "" + +#: ../../../changes.txt:2192 cc61e8f19f5e488b8316b4e8235659f5 +msgid "" +"**Changed** :meth:`Document.insert_pdf` to now allow dropping or " +"including links and annotations independently during the copy. Fixes " +"issue #352 (\"Corrupt PDF data and ...\"), which seemed to intermittently" +" occur when using the method for some problematic PDF files." +msgstr "" + +#: ../../../changes.txt:2193 d407b04268d44237912c00860184f190 +msgid "" +"**Fixed** a bug which, in matrix division using the syntax *\"m1/m2\"*, " +"caused matrix *\"m1\"* to be **replaced** by the result instead of " +"delivering a new matrix." +msgstr "" + +#: ../../../changes.txt:2194 7817d3234a47487b971b3830ef28ec19 +msgid "" +"**Fixed** issue #354 (\"SyntaxWarning with Python 3.8\"). We now always " +"use *\"==\"* for literals (instead of the *\"is\"* Python keyword)." +msgstr "" + +#: ../../../changes.txt:2195 ec50e4c219bd4062ad4ed5c0dddaac86 +msgid "" +"**Fixed** issue #353 (\"mupdf version check\"), to no longer refuse the " +"import when there are only patch level deviations from MuPDF." +msgstr "" + +#: ../../../changes.txt:2201 97813723c7e74febb3697d506c0094da +msgid "**Changes in Version 1.16.0**" +msgstr "" + +#: ../../../changes.txt:2203 2c7908f042184d21a92a433a0dace8f2 +msgid "" +"This major new version of MuPDF comes with several nice new or changed " +"features. Some of them imply programming API changes, however. This is a " +"synopsis of what has changed:" +msgstr "" + +#: ../../../changes.txt:2205 a005bf6b6c26445f8a8e708efa7b1e6d +msgid "" +"PDF document encryption and decryption is now **fully supported**. This " +"includes setting **permissions**, **passwords** (user and owner " +"passwords) and the desired encryption method." +msgstr "" + +#: ../../../changes.txt:2206 f64056f6bc3f4c5c9e5716fd5b547a3b +msgid "" +"In response to the new encryption features, PyMuPDF returns an integer " +"(ie. a combination of bits) for document permissions, and no longer a " +"dictionary." +msgstr "" + +#: ../../../changes.txt:2207 12c5b87d97b548be96df9490e4a9b1f8 +msgid "" +"Redirection of MuPDF errors and warnings is now natively supported. " +"PyMuPDF redirects error messages from MuPDF to *sys.stderr* and no longer" +" buffers them. Warnings continue to be buffered and will not be " +"displayed. Functions exist to access and reset the warnings buffer." +msgstr "" + +#: ../../../changes.txt:2208 9ee23cc47bf54e33ac5b25ec8bd3a5b0 +msgid "Annotations are now **only supported for PDF**." +msgstr "" + +#: ../../../changes.txt:2209 043f8a35721a45789fc958c22ae0db05 +msgid "" +"Annotations and widgets (form fields) are now **separate object chains** " +"on a page (although widgets technically still **are** PDF annotations). " +"This means, that you will **never encounter widgets** when using " +":attr:`Page.firstAnnot` or :meth:`Annot.next`. You must use " +":attr:`Page.firstWidget` and :meth:`Widget.next` to access form fields." +msgstr "" + +#: ../../../changes.txt:2210 98ff046f99264c3aadf74240a8bc473d +msgid "" +"As part of MuPDF's changes regarding widgets, only the following four " +"fonts are supported, when **adding** or **changing** form fields: " +"**Courier, Helvetica, Times-Roman** and **ZapfDingBats**." +msgstr "" + +#: ../../../changes.txt:2212 c153729a2d494ff0ae2def2ff637078a +msgid "List of change details:" +msgstr "" + +#: ../../../changes.txt:2214 b23f45be6d7741b295688a68df3dab61 +msgid "" +"**Added** :meth:`Document.can_save_incrementally` which checks conditions" +" that are preventing use of option *incremental=True* of " +":meth:`Document.save`." +msgstr "" + +#: ../../../changes.txt:2215 f4ec8c96484849b498b2ccf6668ed972 +msgid "" +"**Added** :attr:`Page.firstWidget` which points to the first field on a " +"page." +msgstr "" + +#: ../../../changes.txt:2216 bcff0ac6bdc749b7b1bdca9295590789 +msgid "" +"**Added** :meth:`Page.getImageBbox` which returns the rectangle occupied " +"by an image shown on the page." +msgstr "" + +#: ../../../changes.txt:2217 027854d96da7483d84939b2e60db8b94 +msgid "" +"**Added** :meth:`Annot.setName` which lets you change the (icon) name " +"field." +msgstr "" + +#: ../../../changes.txt:2218 bcc01e342bb8486ca3ef80ba6e2007f8 +msgid "" +"**Added** outputting the text color in :meth:`Page.getText`: the " +"*\"dict\"*, *\"rawdict\"* and *\"xml\"* options now also show the color " +"in sRGB format." +msgstr "" + +#: ../../../changes.txt:2219 bc0cbfa3b0484956b6eaea0bdb98a8fc +msgid "" +"**Changed** :attr:`Document.permissions` to now contain an integer of " +"bool indicators -- was a dictionary before." +msgstr "" + +#: ../../../changes.txt:2220 820b45730e5f4cd09d1a94837ecb4e08 +msgid "" +"**Changed** :meth:`Document.save`, :meth:`Document.write`, which now " +"fully support password-based decryption and encryption of PDF files." +msgstr "" + +#: ../../../changes.txt:2221 4731ba6ffeda46a2a2d03259b480522f +msgid "" +"**Changed the names of all Python constants** related to annotations and " +"widgets. Please make sure to consult the **Constants and Enumerations** " +"chapter if your script is dealing with these two classes. This decision " +"goes back to the dropped support for non-PDF annotations. The **old " +"names** (starting with \"ANNOT_*\" or \"WIDGET_*\") will be available as " +"deprecated synonyms." +msgstr "" + +#: ../../../changes.txt:2222 238de30d8f3c49d48c79ee5b21a0e5f6 +msgid "" +"**Changed** font support for widgets: only *Cour* (Courier), *Helv* " +"(Helvetica, default), *TiRo* (Times-Roman) and *ZaDb* (ZapfDingBats) are " +"accepted when **adding or changing** form fields. Only the plain versions" +" are possible -- not their italic or bold variations. **Reading** " +"widgets, however will show its original font." +msgstr "" + +#: ../../../changes.txt:2223 e763e7235e744348bb116c13b8db7bfa +msgid "" +"**Changed** the name of the warnings buffer to " +":meth:`Tools.mupdf_warnings` and the function to empty this buffer is now" +" called :meth:`Tools.reset_mupdf_warnings`." +msgstr "" + +#: ../../../changes.txt:2224 e51bbdba4a7f47c99ae6f3828cb8299d +msgid "" +"**Changed** :meth:`Page.getPixmap`, :meth:`Document.get_page_pixmap`: a " +"new bool argument *annots* can now be used to **suppress the rendering of" +" annotations** on the page." +msgstr "" + +#: ../../../changes.txt:2225 caaa515792364bf3902f0f1c3f484995 +msgid "" +"**Changed** :meth:`Page.add_file_annot` and :meth:`Page.add_text_annot` " +"to enable setting an icon." +msgstr "" + +#: ../../../changes.txt:2226 0086e4a6b881460f8c71102f2729bc2d +msgid "" +"**Removed** widget-related methods and attributes from the :ref:`Annot` " +"object." +msgstr "" + +#: ../../../changes.txt:2227 f50931d062644b8f880b652ea90f83f5 +msgid "" +"**Removed** :ref:`Document` attributes *openErrCode*, *openErrMsg*, and " +":ref:`Tools` attributes / methods *stderr*, *reset_stderr*, *stdout*, and" +" *reset_stdout*." +msgstr "" + +#: ../../../changes.txt:2228 a67f4a89f4f64dd68267c94b2d73ce86 +msgid "" +"**Removed** **thirdparty zlib** dependency in PyMuPDF: there are now " +"compression functions available in MuPDF. Source installers of PyMuPDF " +"may now omit this extra installation step." +msgstr "" + +#: ../../../changes.txt:2230 42c8303233d940a8bb202082575e9d67 +msgid "**No version published for MuPDF v1.15.0**" +msgstr "" + +#: ../../../changes.txt:2235 0e262b2012e24e66bcbb16697b9750e3 +msgid "**Changes in Version 1.14.20 / 1.14.21**" +msgstr "" + +#: ../../../changes.txt:2237 cf8c37c3fab846c3bfc824d30a64fe50 +msgid "" +"**Changed** text marker annotations to support multiple rectangles / " +"quadrilaterals. This fixes issue #341 (\"Question : How to addhighlight " +"so that a string spread across more than a line is covered by one " +"highlight?\") and similar (#285)." +msgstr "" + +#: ../../../changes.txt:2238 cea5aecbd9e84d1aa23aa5d28149aa16 +msgid "" +"**Fixed** issue #331 (\"Importing PyMuPDF changes warning filtering " +"behaviour globally\")." +msgstr "" + +#: ../../../changes.txt:2243 97bdc13f89b8480bb31a7a26ed32a594 +msgid "**Changes in Version 1.14.19**" +msgstr "" + +#: ../../../changes.txt:2245 6b2efadb462c476c86b64734cc2f0abe +msgid "**Fixed** issue #319 (\"InsertText function error when use custom font\")." +msgstr "" + +#: ../../../changes.txt:2246 55649a3c6956439eb948ff4f5d16de35 +msgid "" +"**Added** new method :meth:`Document.get_sigflags` which returns " +"information on whether a PDF is signed. Resolves issue #326 (\"How to " +"detect signature in a form pdf?\")." +msgstr "" + +#: ../../../changes.txt:2251 8b00c1d84be44f0e843dcc2f618a054f +msgid "**Changes in Version 1.14.17**" +msgstr "" + +#: ../../../changes.txt:2253 bf77aace3abb4d87a3a27f4fde38cdee +msgid "" +"**Added** :meth:`Document.fullcopyPage` to make full page copies within a" +" PDF (not just copied references as :meth:`Document.copyPage` does)." +msgstr "" + +#: ../../../changes.txt:2254 f5f13a70b41041ac94342d177b78283e +msgid "" +"**Changed** :meth:`Page.getPixmap`, :meth:`Document.get_page_pixmap` now " +"use *alpha=False* as default." +msgstr "" + +#: ../../../changes.txt:2255 0b81e0a298f842cfae56289c691fc8af +msgid "" +"**Changed** text extraction: the span dictionary now (again) contains its" +" rectangle under the *bbox* key." +msgstr "" + +#: ../../../changes.txt:2256 80171c31ff824cf5a8796464b7f185bd +msgid "" +"**Changed** :meth:`Document.movePage` and :meth:`Document.copyPage` to " +"use direct functions instead of wrapping :meth:`Document.select` -- " +"similar to :meth:`Document.delete_page` in v1.14.16." +msgstr "" + +#: ../../../changes.txt:2260 2102f0e54ede402daf1c78dac1d0ca26 +msgid "**Changes in Version 1.14.16**" +msgstr "" + +#: ../../../changes.txt:2262 6703d3f0199a482cadb2d9a376aaa7c6 +msgid "" +"**Changed** :ref:`Document` methods around PDF */EmbeddedFiles* to no " +"longer use MuPDF's \"portfolio\" functions. That support will be dropped " +"in MuPDF v1.15 -- therefore another solution was required." +msgstr "" + +#: ../../../changes.txt:2263 6447adac2fa6472d8d443e4326ffe0f4 +msgid "" +"**Changed** :meth:`Document.embfile_Count` to be a function (was an " +"attribute)." +msgstr "" + +#: ../../../changes.txt:2264 0f5ec06d87f74cdc82a5f05fa5beae80 +msgid "" +"**Added** new method :meth:`Document.embfile_Names` which returns a list " +"of names of embedded files." +msgstr "" + +#: ../../../changes.txt:2265 c99e5b42134b48d28118a34b7b00f400 +msgid "" +"**Changed** :meth:`Document.delete_page` and " +":meth:`Document.delete_pages` to internally no longer use " +":meth:`Document.select`, but instead use functions to perform the " +"deletion directly. As it has turned out, the :meth:`Document.select` " +"method yields invalid outline trees (tables of content) for very complex " +"PDFs and sophisticated use of annotations." +msgstr "" + +#: ../../../changes.txt:2270 d47507f7f3114b71864f6f89dff1d8de +msgid "**Changes in Version 1.14.15**" +msgstr "" + +#: ../../../changes.txt:2272 685a47651ab74ab9baa02751bdfeea45 +msgid "" +"**Fixed** issues #301 (\"Line cap and Line join\"), #300 (\"How to draw a" +" shape without outlines\") and #298 (\"utils.updateRect exception\"). " +"These bugs pertain to drawing shapes with PyMuPDF. Drawing shapes without" +" any border is fully supported. Line cap styles and line line join style " +"are now differentiated and support all possible PDF values (0, 1, 2) " +"instead of just being a bool. The previous parameter *roundCap* is " +"deprecated in favor of *lineCap* and *lineJoin* and will be deleted in " +"the next release." +msgstr "" + +#: ../../../changes.txt:2273 69635ffd084f40da8a77aef036ecbc5b +msgid "" +"**Fixed** issue #290 (\"Memory Leak with getText('rawDICT')\"). This bug " +"caused memory not being (completely) freed after invoking the \"dict\", " +"\"rawdict\" and \"json\" versions of :meth:`Page.getText`." +msgstr "" + +#: ../../../changes.txt:2278 347daa4b4d614a538c8264a0f7513365 +msgid "**Changes in Version 1.14.14**" +msgstr "" + +#: ../../../changes.txt:2280 fd89b8ffed0e45b4becf36770405f0a5 +msgid "" +"**Added** new low-level function :meth:`ImageProperties` to determine a " +"number of characteristics for an image." +msgstr "" + +#: ../../../changes.txt:2281 5b71c3a43a3d4b468a46d3704d1a5fed +msgid "" +"**Added** new low-level function :meth:`Document.is_stream`, which checks" +" whether an object is of stream type." +msgstr "" + +#: ../../../changes.txt:2282 7704e37dc4954c43891ea6905e994602 +msgid "" +"**Changed** low-level functions :meth:`Document._getXrefString` and " +":meth:`Document._getTrailerString` now by default return object " +"definitions in a formatted form which makes parsing easy." +msgstr "" + +#: ../../../changes.txt:2286 60c8b7ae348144f590caa8dd2b6475b4 +msgid "**Changes in Version 1.14.13**" +msgstr "" + +#: ../../../changes.txt:2288 409b6e7270844e05986a6af2e04bf234 +msgid "" +"**Changed** methods working with binary input: while ever supporting " +"bytes and bytearray objects, they now also accept *io.BytesIO* input, " +"using their *getvalue()* method. This pertains to document creation, " +"embedded files, FileAttachment annotations, pixmap creation and others. " +"Fixes issue #274 (\"Segfault when using BytesIO as a stream for " +"insertImage\")." +msgstr "" + +#: ../../../changes.txt:2289 517a02e2889046a4bf151c5da878dec9 +msgid "" +"**Fixed** issue #278 (\"Is insertImage(keep_proportion=True) broken?\"). " +"Images are now correctly presented when keeping aspect ratio." +msgstr "" + +#: ../../../changes.txt:2294 d22de33a96de48479a5d908ec0ba6cd2 +msgid "**Changes in Version 1.14.12**" +msgstr "" + +#: ../../../changes.txt:2296 8e8898b2f62f4ccfabbc4633afa8d524 +msgid "" +"**Changed** the draw methods of :ref:`Page` and :ref:`Shape` to support " +"not only RGB, but also GRAY and CMYK colorspaces. This solves issue #270 " +"(\"Is there a way to use CMYK color to draw shapes?\"). This change also " +"applies to text insertion methods of :ref:`Shape`, resp. :ref:`Page`." +msgstr "" + +#: ../../../changes.txt:2297 12008f80180643aeb7c59cd9d81f7b17 +msgid "" +"**Fixed** issue #269 (\"AttributeError in Document.insert_page()\"), " +"which occurred when using :meth:`Document.insert_page` with text " +"insertion." +msgstr "" + +#: ../../../changes.txt:2302 5926b5208b964e5bb1c6d9aa237e3b25 +msgid "**Changes in Version 1.14.11**" +msgstr "" + +#: ../../../changes.txt:2304 7cd2f991658242e0a818633e00e32840 +msgid "" +"**Changed** :meth:`Page.show_pdf_page` to always position the source " +"rectangle centered in the target. This method now also supports " +"**rotation by arbitrary angles**. The argument *reuse_xref* has been " +"deprecated: prevention of duplicates is now **handled internally**." +msgstr "" + +#: ../../../changes.txt:2305 92cb4e6a37f04f8fbe1fe50f20b4315e +msgid "" +"**Changed** :meth:`Page.insertImage` to support rotated display of the " +"image and keeping the aspect ratio. Only rotations by multiples of 90 " +"degrees are supported here." +msgstr "" + +#: ../../../changes.txt:2306 a3321e012bd14420978e83b39fe71692 +msgid "" +"**Fixed** issue #265 (\"TypeError: insertText() got an unexpected keyword" +" argument 'idx'\"). This issue only occurred when using " +":meth:`Document.insert_page` with also inserting text." +msgstr "" + +#: ../../../changes.txt:2310 ce94e552e8634de490994f5a58a88b5a +msgid "**Changes in Version 1.14.10**" +msgstr "" + +#: ../../../changes.txt:2312 91400574def7471c9bcf3e3b784293fa +msgid "" +"**Changed** :meth:`Page.show_pdf_page` to support rotation of the source " +"rectangle. Fixes #261 (\"Cannot rotate insterted pages\")." +msgstr "" + +#: ../../../changes.txt:2313 373a473d44604ea0a33bee60a4608003 +msgid "" +"**Fixed** a bug in :meth:`Page.insertImage` which prevented insertion of " +"multiple images provided as streams." +msgstr "" + +#: ../../../changes.txt:2318 a745612de5d944648494f2f4fe5a7367 +msgid "**Changes in Version 1.14.9**" +msgstr "" + +#: ../../../changes.txt:2320 786372a66f0346f5b2ebf49918ac01fc +msgid "" +"**Added** new low-level method :meth:`Document._getTrailerString`, which " +"returns the trailer object of a PDF. This is much like " +":meth:`Document._getXrefString` except that the PDF trailer has no / " +"needs no :data:`xref` to identify it." +msgstr "" + +#: ../../../changes.txt:2321 166ee0276f23464790afa4aa78d3fb2b +msgid "" +"**Added** new parameters for text insertion methods. You can now set " +"stroke and fill colors of glyphs (text characters) independently, as well" +" as the thickness of the glyph border. A new parameter *render_mode* " +"controls the use of these colors, and whether the text should be visible " +"at all." +msgstr "" + +#: ../../../changes.txt:2322 ec5e00cd07f74051b60872c21459da65 +msgid "" +"**Fixed** issue #258 (\"Copying image streams to new PDF without size " +"increase\"): For JPX images embedded in a PDF, " +":meth:`Document.extractImage` will now return them in their original " +"format. Previously, the MuPDF base library was used, which returns them " +"in PNG format (entailing a massive size increase)." +msgstr "" + +#: ../../../changes.txt:2323 9c4df9a330534524ae96733260628fa2 +msgid "" +"**Fixed** issue #259 (\"Morphing text to fit inside rect\"). Clarified " +"use of :meth:`get_text_length` and removed extra line breaks for long " +"words." +msgstr "" + +#: ../../../changes.txt:2327 40cd0da7bb2c49d28cf036e85d01e73d +msgid "**Changes in Version 1.14.8**" +msgstr "" + +#: ../../../changes.txt:2329 c23dc29674cd4476a5d1ce8bdba7c25b +msgid "" +"**Added** :meth:`Pixmap.set_rect` to change the pixel values in a " +"rectangle. This is also an alternative to setting the color of a complete" +" pixmap (:meth:`Pixmap.clear_with`)." +msgstr "" + +#: ../../../changes.txt:2330 647ba02e1ad3448b85b1e417300551d5 +msgid "" +"**Fixed** an image extraction issue with JBIG2 (monochrome) encoded PDF " +"images. The issue occurred in :meth:`Page.getText` (parameters \"dict\" " +"and \"rawdict\") and in :meth:`Document.extractImage` methods." +msgstr "" + +#: ../../../changes.txt:2331 97187008a30a4a7cad0a589358db47c2 +msgid "" +"**Fixed** an issue with not correctly clearing a non-alpha :ref:`Pixmap` " +"(:meth:`Pixmap.clear_with`)." +msgstr "" + +#: ../../../changes.txt:2332 e8d31f10770246f0a19e29e3fe088dba +msgid "" +"**Fixed** an issue with not correctly inverting colors of a non-alpha " +":ref:`Pixmap` (:meth:`Pixmap.invert_irect`)." +msgstr "" + +#: ../../../changes.txt:2336 67dff84982fa4c1680c49d7d32e32cd7 +msgid "**Changes in Version 1.14.7**" +msgstr "" + +#: ../../../changes.txt:2338 7a13d485e8154810a7af7370e7e9252d +msgid "**Added** :meth:`Pixmap.set_pixel` to change one pixel value." +msgstr "" + +#: ../../../changes.txt:2339 4c9debbd3ad14281953bef2ed96535b3 +msgid "**Added** documentation for image conversion in the :ref:`FAQ`." +msgstr "" + +#: ../../../changes.txt:2340 78bdc22a5a5e4e64a9d8b4b07bfb1123 +msgid "" +"**Added** new function :meth:`get_text_length` to determine the string " +"length for a given font." +msgstr "" + +#: ../../../changes.txt:2341 a5c814fd37c640aa8a93aa10f85c235c +msgid "" +"**Added** Postscript image output (changed :meth:`Pixmap.save` and " +":meth:`Pixmap.tobytes`)." +msgstr "" + +#: ../../../changes.txt:2342 f3c2525369734e7089b7c83e8cf9de47 +msgid "" +"**Changed** :meth:`Pixmap.save` and :meth:`Pixmap.tobytes` to ensure " +"valid combinations of colorspace, alpha and output format." +msgstr "" + +#: ../../../changes.txt:2343 b9e74f4416644fccb65daa7e89c723c3 +msgid "" +"**Changed** :meth:`Pixmap.save`: the desired format is now inferred from " +"the filename." +msgstr "" + +#: ../../../changes.txt:2344 2d75602bfe7c4491afe16b74bc43214f +msgid "" +"**Changed** FreeText annotations can now have a transparent background - " +"see :meth:`Annot.update`." +msgstr "" + +#: ../../../changes.txt:2348 6c3551ae311845ee9b99b03931d18295 +msgid "**Changes in Version 1.14.5**" +msgstr "" + +#: ../../../changes.txt:2350 bf604455e7bc49078d6f8fad925b9c40 +msgid "" +"**Changed:** :ref:`Shape` methods now strictly use the transformation " +"matrix of the :ref:`Page` -- instead of \"manually\" calculating " +"locations." +msgstr "" + +#: ../../../changes.txt:2351 a31dae7889694da7be488d4e185ec9eb +msgid "" +"**Added** method :meth:`Pixmap.pixel` which returns the pixel value (a " +"list) for given pixel coordinates." +msgstr "" + +#: ../../../changes.txt:2352 27fb489fd3c4437dae7d84ea827220f4 +msgid "" +"**Added** method :meth:`Pixmap.tobytes` which returns a bytes object " +"representing the pixmap in a variety of formats. Previously, this could " +"be done for PNG outputs only (:meth:`Pixmap.tobytes`)." +msgstr "" + +#: ../../../changes.txt:2353 1c71f20d72344b9d92a9db58d371f81b +msgid "" +"**Changed:** output of methods :meth:`Pixmap.save` and (the new) " +":meth:`Pixmap.tobytes` may now also be PSD (Adobe Photoshop Document)." +msgstr "" + +#: ../../../changes.txt:2354 fa29ec91aa714c5f907b7366ffb9a3b9 +msgid "" +"**Added** method :meth:`Shape.drawQuad` which draws a :ref:`Quad`. This " +"actually is a shorthand for a :meth:`Shape.drawPolyline` with the edges " +"of the quad." +msgstr "" + +#: ../../../changes.txt:2355 91031a98d09349dbb69473db2e7329ec +msgid "" +"**Changed** method :meth:`Shape.drawOval`: the argument can now be " +"**either** a rectangle (:data:`rect_like`) **or** a quadrilateral " +"(:data:`quad_like`)." +msgstr "" + +#: ../../../changes.txt:2359 0e8436f8a5324f5c854c6da3891f584a +msgid "**Changes in Version 1.14.4**" +msgstr "" + +#: ../../../changes.txt:2361 f161930e41614a59bd8398be1a48b0c9 +msgid "**Fixes** issue #239 \"Annotation coordinate consistency\"." +msgstr "" + +#: ../../../changes.txt:2366 f717329397b04912b44b761001662800 +msgid "**Changes in Version 1.14.3**" +msgstr "" + +#: ../../../changes.txt:2368 c8623149250744e589dc449330738ae7 +msgid "This patch version contains minor bug fixes and CJK font output support." +msgstr "" + +#: ../../../changes.txt:2370 090ca3d9b2344ba888c0876c7b71ace0 +msgid "" +"**Added** support for the four CJK fonts as PyMuPDF generated text " +"output. This pertains to methods :meth:`Page.insertFont`, " +":meth:`Shape.insertText`, :meth:`Shape.insertTextbox`, and corresponding " +":ref:`Page` methods. The new fonts are available under \"reserved\" " +"fontnames \"china-t\" (traditional Chinese), \"china-s\" (simplified " +"Chinese), \"japan\" (Japanese), and \"korea\" (Korean)." +msgstr "" + +#: ../../../changes.txt:2371 0883c9f987274b41ae7f270c3f497622 +msgid "**Added** full support for the built-in fonts 'Symbol' and 'Zapfdingbats'." +msgstr "" + +#: ../../../changes.txt:2372 28cecba376654ea4aabaf41a9a9e76a0 +msgid "" +"**Changed:** The 14 standard fonts can now each be referenced by a " +"4-letter abbreviation." +msgstr "" + +#: ../../../changes.txt:2376 2af6e8674b4443da9ecbfff548ce5a69 +msgid "**Changes in Version 1.14.1**" +msgstr "" + +#: ../../../changes.txt:2378 b0f0dfdd4d05439fbb192a2fff012afd +msgid "This patch version contains minor performance improvements." +msgstr "" + +#: ../../../changes.txt:2380 d55c7a1c5617427cae944d98885ab488 +msgid "" +"**Added** support for :ref:`Document` filenames given as *pathlib* object" +" by using the Python *str()* function." +msgstr "" + +#: ../../../changes.txt:2385 8408ffdc08bd4b988e1d1d8706e8852d +msgid "**Changes in Version 1.14.0**" +msgstr "" + +#: ../../../changes.txt:2387 5e88bed306444855bb7cb18769259f07 +msgid "" +"To support MuPDF v1.14.0, massive changes were required in PyMuPDF -- " +"most of them purely technical, with little visibility to developers. But " +"there are also quite a lot of interesting new and improved features. " +"Following are the details:" +msgstr "" + +#: ../../../changes.txt:2389 ddc84ec9e77d406180396849960f6fd3 +msgid "**Added** \"ink\" annotation." +msgstr "" + +#: ../../../changes.txt:2390 5ef49f9b2028452da946e586194111bd +msgid "**Added** \"rubber stamp\" annotation." +msgstr "" + +#: ../../../changes.txt:2391 4a7bb926db894ea39c7f10315f2e825a +msgid "**Added** \"squiggly\" text marker annotation." +msgstr "" + +#: ../../../changes.txt:2392 3398303dd33846db9cfde43f06070d2d +msgid "" +"**Added** new class :ref:`Quad` (quadrilateral or tetragon) -- which " +"represents a general four-sided shape in the plane. The special subtype " +"of rectangular, non-empty tetragons is used in text marker annotations " +"and as returned objects in text search methods." +msgstr "" + +#: ../../../changes.txt:2393 6c56ac281b924d2fb189ede6e9c8be61 +msgid "" +"**Added** a new option \"decrypt\" to :meth:`Document.save` and " +":meth:`Document.write`. Now you can **keep encryption** when saving a " +"password protected PDF." +msgstr "" + +#: ../../../changes.txt:2394 b394b2a1574646c89160273346915f47 +msgid "" +"**Added** suppression and redirection of unsolicited messages issued by " +"the underlying C-library MuPDF. Consult :ref:`RedirectMessages` for " +"details." +msgstr "" + +#: ../../../changes.txt:2395 47856295d652463f8184801b60dee8a0 +msgid "" +"**Changed:** Changes to annotations now **always require** " +":meth:`Annot.update` to become effective." +msgstr "" + +#: ../../../changes.txt:2396 ef1b316a5b024381bc8ab808d69d2891 +msgid "" +"**Changed** free text annotations to support the full Latin character set" +" and range of appearance options." +msgstr "" + +#: ../../../changes.txt:2397 506d4cd601f04e2c83386b5ec8940898 +msgid "" +"**Changed** text searching, :meth:`Page.searchFor`, to optionally return " +":ref:`Quad` instead :ref:`Rect` objects surrounding each search hit." +msgstr "" + +#: ../../../changes.txt:2398 4fd963295c354372b9e8574e51f097ee +msgid "" +"**Changed** plain text output: we now add a *\\n* to each line if it does" +" not itself end with this character." +msgstr "" + +#: ../../../changes.txt:2399 1db7b0929bbf4596b2a0d22f3ca7b59c +msgid "**Fixed** issue 211 (\"Something wrong in the doc\")." +msgstr "" + +#: ../../../changes.txt:2400 f1128c764272467f8fb8a6c3a9b0087e +msgid "" +"**Fixed** issue 213 (\"Rewritten outline is displayed only by mupdf-based" +" applications\")." +msgstr "" + +#: ../../../changes.txt:2401 f7b1e5c7dc7c4676a9bf4838c03b508c +msgid "**Fixed** issue 214 (\"PDF decryption GONE!\")." +msgstr "" + +#: ../../../changes.txt:2402 7a1c216e3cf04513bac8a38d46fb777a +msgid "**Fixed** issue 215 (\"Formatting of links added with pyMuPDF\")." +msgstr "" + +#: ../../../changes.txt:2403 9c9ae8e5f826442d8888cefae230e64e +msgid "**Fixed** issue 217 (\"extraction through json is failing for my pdf\")." +msgstr "" + +#: ../../../changes.txt:2405 5ae51da467b64e26bfb10cf525eb9581 +msgid "" +"Behind the curtain, we have changed the implementation of geometry " +"objects: they now purely exist in Python and no longer have \"shadow\" " +"twins on the C-level (in MuPDF). This has improved processing speed in " +"that area by more than a factor of two." +msgstr "" + +#: ../../../changes.txt:2407 b5211152c64342a49990467a8d763bd5 +msgid "" +"Because of the same reason, most methods involving geometry parameters " +"now also accept the corresponding Python sequence. For example, in method" +" *\"page.show_pdf_page(rect, ...)\"* parameter *rect* may now be any " +":data:`rect_like` sequence." +msgstr "" + +#: ../../../changes.txt:2409 79b7deaba4ec49f58fd8987c7e950e28 +msgid "" +"We also invested considerable effort to further extend and improve the " +":ref:`FAQ` chapter." +msgstr "" + +#: ../../../changes.txt:2414 fd91322d1a494ed189d8932bb19e425a +msgid "**Changes in Version 1.13.19**" +msgstr "" + +#: ../../../changes.txt:2416 c99f01c86e0f418e8ece858b509f575f +msgid "" +"This version contains some technical / performance improvements and bug " +"fixes." +msgstr "" + +#: ../../../changes.txt:2418 f6ca673e1a514b8c88882528546fc938 +#, python-format +msgid "" +"**Changed** memory management: for Python 3 builds, Python memory " +"management is exclusively used across all C-level code (i.e. no more " +"native *malloc()* in MuPDF code or PyMuPDF interface code). This leads to" +" improved memory usage profiles and also some runtime improvements: we " +"have seen > 2% shorter runtimes for text extractions and pixmap creations" +" (on Windows machines only to date)." +msgstr "" + +#: ../../../changes.txt:2419 5bfccbbb021842b9abb0b04bf9de48c3 +msgid "" +"**Fixed** an error occurring in Python 2.7, which crashed the interpreter" +" when using :meth:`TextPage.extractRAWDICT` (= " +"*Page.getText(\"rawdict\")*)." +msgstr "" + +#: ../../../changes.txt:2420 0f2cb31dfbf9466fa8a235d46d2c6e8a +msgid "" +"**Fixed** an error occurring in Python 2.7, when creating link " +"destinations." +msgstr "" + +#: ../../../changes.txt:2421 08e34b265b7e454f94220ea943997f4d +msgid "**Extended** the :ref:`FAQ` chapter with more examples." +msgstr "" + +#: ../../../changes.txt:2425 63b7e43da4034c64859e960033709c83 +msgid "**Changes in Version 1.13.18**" +msgstr "" + +#: ../../../changes.txt:2427 cf5beb6e03c54affafc84f316858c9aa +msgid "" +"**Added** method :meth:`TextPage.extractRAWDICT`, and a corresponding new" +" string parameter \"rawdict\" to method :meth:`Page.getText`. It extracts" +" text and images from a page in Python *dict* form like " +":meth:`TextPage.extractDICT`, but with the detail level of " +":meth:`TextPage.extractXML`, which is position information down to each " +"single character." +msgstr "" + +#: ../../../changes.txt:2431 9b563f0c8c3a4d1fb8e8fe127bb76d6c +msgid "**Changes in Version 1.13.17**" +msgstr "" + +#: ../../../changes.txt:2433 b3c0162af9db4f608389e2c811c7bc4b +msgid "" +"**Fixed** an error that intermittently caused an exception in " +":meth:`Page.show_pdf_page`, when pages from many different source PDFs " +"were shown." +msgstr "" + +#: ../../../changes.txt:2434 c35c79318b584e5790dbea763351299b +msgid "" +"**Changed** method :meth:`Document.extractImage` to now return more meta " +"information about the extracted imgage. Also, its performance has been " +"greatly improved. Several demo scripts have been changed to make use of " +"this method." +msgstr "" + +#: ../../../changes.txt:2435 ef0a501dd401489f8d0796417bf84a65 +msgid "" +"**Changed** method :meth:`Document._getXrefStream` to now return *None* " +"if the object is no stream and no longer raise an exception if otherwise." +msgstr "" + +#: ../../../changes.txt:2436 7032fecda32745aeb0b54febfa6571f7 +msgid "" +"**Added** method :meth:`Document._deleteObject` which deletes a PDF " +"object identified by its :data:`xref`. Only to be used by the experienced" +" PDF expert." +msgstr "" + +#: ../../../changes.txt:2437 64f62a994fb742cf84570443580cf6a2 +msgid "" +"**Added** a method :meth:`paper_rect` which returns a :ref:`Rect` for a " +"supplied paper format string. Example: *fitz.paper_rect(\"letter\") = " +"fitz.Rect(0.0, 0.0, 612.0, 792.0)*." +msgstr "" + +#: ../../../changes.txt:2438 31e24169fc6849878acc3c4b81c2931b +msgid "**Added** a :ref:`FAQ` chapter to this document." +msgstr "" + +#: ../../../changes.txt:2442 43d63ac60a0c46a591e1b79f54377917 +msgid "**Changes in Version 1.13.16**" +msgstr "" + +#: ../../../changes.txt:2444 d904d04d3cfb4dcda46139c25fe24c71 +msgid "" +"**Added** support for correctly setting transparency (opacity) for " +"certain annotation types." +msgstr "" + +#: ../../../changes.txt:2445 3b7e735489e94623ac095480bdcbc2a5 +msgid "" +"**Added** a tool property (:attr:`Tools.fitz_config`) showing the " +"configuration of this PyMuPDF version." +msgstr "" + +#: ../../../changes.txt:2446 9c879f61145948b188ee8d93c5efe154 +msgid "" +"**Fixed** issue #193 ('insertText(overlay=False) gives \"cannot resize a " +"buffer with shared storage\" error') by avoiding read-only buffers." +msgstr "" + +#: ../../../changes.txt:2450 5d037ed847b44095be41047f123f2c7d +msgid "**Changes in Version 1.13.15**" +msgstr "" + +#: ../../../changes.txt:2452 7b20562ab960458cb2a37834b262bc0a +msgid "" +"**Fixed** issue #189 (\"cannot find builtin CJK font\"), so we are " +"supporting builtin CJK fonts now (CJK = China, Japan, Korea). This should" +" lead to correctly generated pixmaps for documents using these languages." +" This change has consequences for our binary file size: it will now range" +" between 8 and 10 MB, depending on the OS." +msgstr "" + +#: ../../../changes.txt:2453 09714417974d4784bbb8ce28449b0ed4 +msgid "" +"**Fixed** issue #191 (\"Jupyter notebook kernel dies after ca. 40 " +"pages\"), which occurred when modifying the contents of an annotation." +msgstr "" + +#: ../../../changes.txt:2457 5adc29b99ec94005bffd7ef24998e110 +msgid "**Changes in Version 1.13.14**" +msgstr "" + +#: ../../../changes.txt:2459 7f38a7f515424bdf958094ead9ab7ef0 +msgid "This patch version contains several improvements, mainly for annotations." +msgstr "" + +#: ../../../changes.txt:2461 b1c7424aa4d54a5caefae33e0e5f4f84 +msgid "" +"**Changed** :attr:`Annot.lineEnds` is now a list of two integers " +"representing the line end symbols. Previously was a *dict* of strings." +msgstr "" + +#: ../../../changes.txt:2462 641b3d6d6a8f46359ce78aacec1a00fe +msgid "" +"**Added** support of line end symbols for applicable annotations. PyMuPDF" +" now can generate these annotations including the line end symbols." +msgstr "" + +#: ../../../changes.txt:2463 f00765d5f2434220a9bfa1b43ce083c6 +msgid "" +"**Added** :meth:`Annot.setLineEnds` adds line end symbols to applicable " +"annotation types ('Line', 'PolyLine', 'Polygon')." +msgstr "" + +#: ../../../changes.txt:2464 c43498bf8fbe4da3bbbd2a1b57eb2ade +msgid "" +"**Changed** technical implementation of :meth:`Page.insertImage` and " +":meth:`Page.show_pdf_page`: they now create there own contents objects, " +"thereby avoiding changes of potentially large streams with consequential " +"compression / decompression efforts and high change volumes with " +"incremental updates." +msgstr "" + +#: ../../../changes.txt:2468 6d6106b5cef0412c859b77efff74d76a +msgid "**Changes in Version 1.13.13**" +msgstr "" + +#: ../../../changes.txt:2470 76e178082cef4bbcaf9d02facb74a2a8 +msgid "" +"This patch version contains several improvements for embedded files and " +"file attachment annotations." +msgstr "" + +#: ../../../changes.txt:2472 a3ecffcb691f41e18fa492558ef375d5 +msgid "" +"**Added** :meth:`Document.embfile_Upd` which allows changing **file " +"content and metadata** of an embedded file. It supersedes the old method " +":meth:`Document.embfile_SetInfo` (which will be deleted in a future " +"version). Content is automatically compressed and metadata may be " +"unicode." +msgstr "" + +#: ../../../changes.txt:2473 8741c8c5503e49c5a9e436d200d0c70c +msgid "" +"**Changed** :meth:`Document.embfile_Add` to now automatically compress " +"file content. Accompanying metadata can now be unicode (had to be ASCII " +"in the past)." +msgstr "" + +#: ../../../changes.txt:2474 c8825e3ce49940899586673a8c1ca760 +msgid "" +"**Changed** :meth:`Document.embfile_Del` to now automatically delete " +"**all entries** having the supplied identifying name. The return code is " +"now an integer count of the removed entries (was *None* previously)." +msgstr "" + +#: ../../../changes.txt:2475 4958c06f7c0b4eaca87af2482582ca8c +msgid "" +"**Changed** embedded file methods to now also accept or show the PDF " +"unicode filename as additional parameter *ufilename*." +msgstr "" + +#: ../../../changes.txt:2476 0f95f3527f1a489a9a72167a6cee97cf +msgid "" +"**Added** :meth:`Page.add_file_annot` which adds a new file attachment " +"annotation." +msgstr "" + +#: ../../../changes.txt:2477 14f2faf502b74997b3e11958e4ffd5dd +msgid "" +"**Changed** :meth:`Annot.fileUpd` (file attachment annot) to now also " +"accept the PDF unicode *ufilename* parameter. The description parameter " +"*desc* correctly works with unicode. Furthermore, **all** parameters are " +"optional, so metadata may be changed without also replacing the file " +"content." +msgstr "" + +#: ../../../changes.txt:2478 f11e4025175f468fb362dc45b4b459a8 +msgid "" +"**Changed** :meth:`Annot.fileInfo` (file attachment annot) to now also " +"show the PDF unicode filename as parameter *ufilename*." +msgstr "" + +#: ../../../changes.txt:2479 96f083ba329841dc866568603f6bf4e0 +msgid "" +"**Fixed** issue #180 (\"page.getText(output='dict') return invalid " +"bbox\") to now also work for vertical text." +msgstr "" + +#: ../../../changes.txt:2480 b9c17d72bfcd4a87983f018daf4d8fd9 +msgid "" +"**Fixed** issue #185 (\"Can't render the annotations created by " +"PyMuPDF\"). The issue's cause was the minimalistic MuPDF approach when " +"creating annotations. Several annotation types have no */AP* " +"(\"appearance\") object when created by MuPDF functions. MuPDF, " +"SumatraPDF and hence also PyMuPDF cannot render annotations without such " +"an object. This fix now ensures, that an appearance object is always " +"created together with the annotation itself. We still do not support line" +" end styles." +msgstr "" + +#: ../../../changes.txt:2484 17b80da49d874916b1fa04cbc2e8225e +msgid "**Changes in Version 1.13.12**" +msgstr "" + +#: ../../../changes.txt:2486 16cf3df1aa764ac99837e6ba6929de3a +msgid "" +"**Fixed** issue #180 (\"page.getText(output='dict') return invalid " +"bbox\"). Note that this is a circumvention of an MuPDF error, which " +"generates zero-height character rectangles in some cases. When this " +"happens, this fix ensures a bbox height of at least fontsize." +msgstr "" + +#: ../../../changes.txt:2487 61159291a2db420095ce281675ae121e +msgid "" +"**Changed** for ListBox and ComboBox widgets, the attribute list of " +"selectable values has been renamed to :attr:`Widget.choice_values`." +msgstr "" + +#: ../../../changes.txt:2488 bab6778e8c2944089f3b525aa8b0827d +msgid "" +"**Changed** when adding widgets, any missing of the :ref:`Base-14-Fonts` " +"is automatically added to the PDF. Widget text fonts can now also be " +"chosen from existing widget fonts. Any specified field values are now " +"honored and lead to a field with a preset value." +msgstr "" + +#: ../../../changes.txt:2489 30b1813eb102490a896faa64748c1400 +msgid "" +"**Added** :meth:`Annot.updateWidget` which allows changing existing form " +"fields -- including the field value." +msgstr "" + +#: ../../../changes.txt:2493 9bc92bc23e1a46ab8548886763c96d47 +msgid "**Changes in Version 1.13.11**" +msgstr "" + +#: ../../../changes.txt:2495 474a1a3d16e74ac7bcfe223ce5d3daad +msgid "" +"While the preceeding patch subversions only contained various fixes, this" +" version again introduces major new features:" +msgstr "" + +#: ../../../changes.txt:2497 5edc44b1ecc84b25be1507861ce353f4 +msgid "" +"**Added** basic support for PDF widget annotations. You can now add PDF " +"form fields of types Text, CheckBox, ListBox and ComboBox. Where " +"necessary, the PDF is tranformed to a Form PDF with the first added " +"widget." +msgstr "" + +#: ../../../changes.txt:2498 1a904dc65fe64ade80e693aa4edb88ae +msgid "" +"**Fixed** issues #176 (\"wrong file embedding\"), #177 (\"segment fault " +"when invoking page.getText()\")and #179 (\"Segmentation fault using " +"page.getLinks() on encrypted PDF\")." +msgstr "" + +#: ../../../changes.txt:2503 7b2a31d79daa40d497d99853e692f397 +msgid "**Changes in Version 1.13.7**" +msgstr "" + +#: ../../../changes.txt:2505 445d2b1c88854acbb84fecfeeb62cdc1 +msgid "" +"**Added** support of variable page sizes for reflowable documents " +"(e-books, HTML, etc.): new parameters *rect* and *fontsize* in " +":ref:`Document` creation (open), and as a separate method " +":meth:`Document.layout`." +msgstr "" + +#: ../../../changes.txt:2506 b16382d708314b4c9ed3ac5b10f9a517 +msgid "" +"**Added** :ref:`Annot` creation of many annotations types: sticky notes, " +"free text, circle, rectangle, line, polygon, polyline and text markers." +msgstr "" + +#: ../../../changes.txt:2507 1444d852579b4d93837b7fe871afbf81 +msgid "" +"**Added** support of annotation transparency (:attr:`Annot.opacity`, " +":meth:`Annot.setOpacity`)." +msgstr "" + +#: ../../../changes.txt:2508 d544fe252c1f408785338b846f68eb33 +msgid "" +"**Changed** :attr:`Annot.vertices`: point coordinates are now grouped as " +"pairs of floats (no longer as separate floats)." +msgstr "" + +#: ../../../changes.txt:2509 d7dd102d5d974b77a860d4ee2a960da8 +msgid "" +"**Changed** annotation colors dictionary: the two keys are now named " +"*\"stroke\"* (formerly *\"common\"*) and *\"fill\"*." +msgstr "" + +#: ../../../changes.txt:2510 8ba3ff12895543d4b2b60a1b9a3646d4 +msgid "" +"**Added** :attr:`Document.isDirty` which is *True* if a PDF has been " +"changed in this session. Reset to *False* on each :meth:`Document.save` " +"or :meth:`Document.write`." +msgstr "" + +#: ../../../changes.txt:2514 572be3e137d346d1bc831219977e2a47 +msgid "**Changes in Version 1.13.6**" +msgstr "" + +#: ../../../changes.txt:2516 32c7a915842343e78b6da4d29061d488 +msgid "" +"Fix #173: for memory-resident documents, ensure the stream object will " +"not be garbage-collected by Python before document is closed." +msgstr "" + +#: ../../../changes.txt:2520 dfb8278835404213b0f3e00e10fa6f44 +msgid "**Changes in Version 1.13.5**" +msgstr "" + +#: ../../../changes.txt:2522 d0f227e259ff4badbddfa8bc99f77761 +msgid "" +"New low-level method :meth:`Page._setContents` defines an object given by" +" its :data:`xref` to serve as the :data:`contents` object." +msgstr "" + +#: ../../../changes.txt:2523 f305bdd0987e4a1f95ef94714cb586b7 +msgid "" +"Changed and extended PDF form field support: the attribute *widget_text* " +"has been renamed to :attr:`Annot.widget_value`. Values of all form field " +"types (except signatures) are now supported. A new attribute " +":attr:`Annot.widget_choices` contains the selectable values of listboxes " +"and comboboxes. All these attributes now contain *None* if no value is " +"present." +msgstr "" + +#: ../../../changes.txt:2527 4fd769eb21f048a19b8230f7e72178ca +msgid "**Changes in Version 1.13.4**" +msgstr "" + +#: ../../../changes.txt:2529 53ed864ab32f470bb28b858354a50e08 +msgid "" +":meth:`Document.convertToPDF` now supports page ranges, reverted page " +"sequences and page rotation. If the document already is a PDF, an " +"exception is raised." +msgstr "" + +#: ../../../changes.txt:2530 76b57e7db1504c5aba637f3c1da9e11c +msgid "" +"Fixed a bug (introduced with v1.13.0) that prevented " +":meth:`Page.insertImage` for transparent images." +msgstr "" + +#: ../../../changes.txt:2534 2ee92c34815a4f8fb2c8e58d119f4ea1 +msgid "**Changes in Version 1.13.3**" +msgstr "" + +#: ../../../changes.txt:2536 b6964dbe69ac4c14913e804c1db84219 +msgid "" +"Introduces a way to convert **any MuPDF supported document** to a PDF. If" +" you ever wanted PDF versions of your XPS, EPUB, CBZ or FB2 files -- here" +" is a way to do this." +msgstr "" + +#: ../../../changes.txt:2538 3b8c44dc6cc2424186ca83fb933f4d4d +msgid "" +":meth:`Document.convertToPDF` returns a Python *bytes* object in PDF " +"format. Can be opened like normal in PyMuPDF, or be written to disk with " +"the *\".pdf\"* extension." +msgstr "" + +#: ../../../changes.txt:2542 a74fa53b1f63473e95f8ae83eadc426f +msgid "**Changes in Version 1.13.2**" +msgstr "" + +#: ../../../changes.txt:2544 7ebed477136d45edbc0674eaaa9dff08 +msgid "" +"The major enhancement is PDF form field support. Form fields are " +"annotations of type *(19, 'Widget')*. There is a new document method to " +"check whether a PDF is a form. The :ref:`Annot` class has new properties " +"describing field details." +msgstr "" + +#: ../../../changes.txt:2546 6224991d69044aed91933c6ef3db8872 +msgid "" +":attr:`Document.is_form_pdf` is true if object type */AcroForm* and at " +"least one form field exists." +msgstr "" + +#: ../../../changes.txt:2547 3c3eddc4ca6a41179dba2d970ae478cf +msgid "" +":attr:`Annot.widget_type`, :attr:`Annot.widget_text` and " +":attr:`Annot.widget_name` contain the details of a form field (i.e. a " +"\"Widget\" annotation)." +msgstr "" + +#: ../../../changes.txt:2551 33caa17db3314e8f8ec675dfcc887087 +msgid "**Changes in Version 1.13.1**" +msgstr "" + +#: ../../../changes.txt:2553 9344a01be7c64abbbe4577c065593441 +msgid "" +":meth:`TextPage.extractDICT` is a new method to extract the contents of a" +" document page (text and images). All document types are supported as " +"with the other :ref:`TextPage` *extract*()* methods. The returned object " +"is a dictionary of nested lists and other dictionaries, and **exactly " +"equal** to the JSON-deserialization of the old " +":meth:`TextPage.extractJSON`. The difference is that the result is " +"created directly -- no JSON module is used. Because the user needs no " +"JSON module to interpet the information, it should be easier to use, and " +"also have a better performance, because it contains images in their " +"original **binary format** -- they need not be base64-decoded." +msgstr "" + +#: ../../../changes.txt:2554 a0c4ad5a3c484f91ac0a8e10f14f5e12 +msgid "" +":meth:`Page.getText` correspondingly supports the new parameter value " +"*\"dict\"* to invoke the above method." +msgstr "" + +#: ../../../changes.txt:2555 093f2f8fbd7d47c8a423fd962433aaf6 +msgid "" +":meth:`TextPage.extractJSON` (resp. *Page.getText(\"json\")*) is still " +"supported for convenience, but its use is expected to decline." +msgstr "" + +#: ../../../changes.txt:2559 0502f4342d864193843c189056a3f649 +msgid "**Changes in Version 1.13.0**" +msgstr "" + +#: ../../../changes.txt:2561 a1fd3f8dcf7347f0b02e341033bab447 +msgid "" +"This version is based on MuPDF v1.13.0. This release is \"primarily a bug" +" fix release\"." +msgstr "" + +#: ../../../changes.txt:2563 f6293a0c60534e0aa61af056ce5873ab +msgid "" +"In PyMuPDF, we are also doing some bug fixes while introducing minor " +"enhancements. There only very minimal changes to the user's API." +msgstr "" + +#: ../../../changes.txt:2565 112b9e394ace4296b2004b9cc2566a4c +msgid "" +":ref:`Document` construction is more flexible: the new *filetype* " +"parameter allows setting the document type. If specified, any extension " +"in the filename will be ignored. More completely addresses `issue #156 " +"`_. As part of this, the " +"documentation has been reworked." +msgstr "" + +#: ../../../changes.txt:2569 1fd37787dc5e4b74860ae968de485c3a +msgid "Changes to :ref:`Pixmap` constructors:" +msgstr "" + +#: ../../../changes.txt:2568 b1dfea15e23f480e9294338557073269 +msgid "" +"Colorspace conversion no longer allows dropping the alpha channel: source" +" and target **alpha will now always be the same**. We have seen " +"exceptions and even interpreter crashes when using *alpha = 0*." +msgstr "" + +#: ../../../changes.txt:2569 d13b23318d24436a98e726ab0c700090 +msgid "As a replacement, the simple pixmap copy lets you choose the target alpha." +msgstr "" + +#: ../../../changes.txt:2571 1245466299bd401c91dede79edbe0761 +msgid "" +":meth:`Document.save` again offers the full garbage collection range 0 " +"thru 4. Because of a bug in :data:`xref` maintenance, we had to " +"temporarily enforce *garbage > 1*. Finally resolves `issue #148 " +"`_." +msgstr "" + +#: ../../../changes.txt:2573 5e0acf1f4a8b4284b68c4664d8506094 +msgid "" +":meth:`Document.save` now offers to \"prettify\" PDF source via an " +"additional argument." +msgstr "" + +#: ../../../changes.txt:2574 696c719c11ba4d4f8436604179238f4f +msgid "" +":meth:`Page.insertImage` has the additional *stream* \\-parameter, " +"specifying a memory area holding an image." +msgstr "" + +#: ../../../changes.txt:2576 083d9194c33f41068f0776f565c79c87 +msgid "" +"Issue with garbled PNGs on Linux systems has been resolved (`\"Problem " +"writing PNG\" #133) `_." +msgstr "" + +#: ../../../changes.txt:2581 98cc7e1927894f43bd5433b0231b3dcf +msgid "**Changes in Version 1.12.4**" +msgstr "" + +#: ../../../changes.txt:2583 7611c52e40a247d499880fc162bf20bb +msgid "This is an extension of 1.12.3." +msgstr "" + +#: ../../../changes.txt:2585 55de61bfb5954f95b17921dcd4914391 +msgid "" +"Fix of `issue #147 `_: " +"methods :meth:`Document.getPageFontlist` and " +":meth:`Document.getPageImagelist` now also show fonts and images " +"contained in :data:`resources` nested via \"Form XObjects\"." +msgstr "" + +#: ../../../changes.txt:2586 241a50f48e4b403481f23435638646e1 +msgid "" +"Temporary fix of `issue #148 " +"`_: Saving to new PDF " +"files will now automatically use *garbage = 2* if a lower value is given." +" Final fix is to be expected with MuPDF's next version. At that point we " +"will remove this circumvention." +msgstr "" + +#: ../../../changes.txt:2587 d1aeb27a9161455f91a41a0c53d1de52 +msgid "" +"Preventive fix of illegally using stencil / image mask pixmaps in some " +"methods." +msgstr "" + +#: ../../../changes.txt:2588 4d9f3bf7e9db4f75a524f3e201db2d32 +msgid "" +"Method :meth:`Document.getPageFontlist` now includes the encoding name " +"for each font in the list." +msgstr "" + +#: ../../../changes.txt:2589 da72830c7d2c40009f927c37bd604e55 +msgid "" +"Method :meth:`Document.getPageImagelist` now includes the decode method " +"name for each image in the list." +msgstr "" + +#: ../../../changes.txt:2593 b3c6fae68a704c8eb5f4e78304a1d854 +msgid "**Changes in Version 1.12.3**" +msgstr "" + +#: ../../../changes.txt:2595 4c52faae63874d45873aa766f417ab6f +msgid "This is an extension of 1.12.2." +msgstr "" + +#: ../../../changes.txt:2597 943612aea06749f4962d1ced1418925a +msgid "" +"Many functions now return *None* instead of *0*, if the result has no " +"other meaning than just indicating successful execution " +"(:meth:`Document.close`, :meth:`Document.save`, :meth:`Document.select`, " +":meth:`Pixmap.save` and many others)." +msgstr "" + +#: ../../../changes.txt:2601 6f0d4e2bdd41401d94ed4fe0fd9ec7e8 +msgid "**Changes in Version 1.12.2**" +msgstr "" + +#: ../../../changes.txt:2603 630bed92f4e34421925b88efe1ba42b6 +msgid "This is an extension of 1.12.1." +msgstr "" + +#: ../../../changes.txt:2605 50a351aa4579484893c9094cda2cfeba +msgid "" +"Method :meth:`Page.show_pdf_page` now accepts the new *clip* argument. " +"This specifies an area of the source page to which the display should be " +"restricted." +msgstr "" + +#: ../../../changes.txt:2607 80570d982b004e41989292ba7bb4ddb9 +msgid "" +"New :attr:`Page.CropBox` and :attr:`Page.MediaBox` have been included for" +" convenience." +msgstr "" + +#: ../../../changes.txt:2612 54fd6f1c51e04778bac0835de4f0361a +msgid "**Changes in Version 1.12.1**" +msgstr "" + +#: ../../../changes.txt:2614 db11fc420c4b4bd59ba30cf2a4f190d3 +msgid "This is an extension of version 1.12.0." +msgstr "" + +#: ../../../changes.txt:2616 82affdfbc4bb42ccabe2c77070a11719 +msgid "" +"New method :meth:`Page.show_pdf_page` displays another's PDF page. This " +"is a **vector** image and therefore remains precise across zooming. Both " +"involved documents must be PDF." +msgstr "" + +#: ../../../changes.txt:2618 f0e7a4343cf14d058e07063707db7b7e +msgid "" +"New method :meth:`Page.getSVGimage` creates an SVG image from the page. " +"In contrast to the raster image of a pixmap, this is a vector image " +"format. The return is a unicode text string, which can be saved in a " +"*.svg* file." +msgstr "" + +#: ../../../changes.txt:2620 c81d51dc94f646fda815c43c09bab73d +msgid "" +"Method :meth:`Page.getTextBlocks` now accepts an additional bool " +"parameter \"images\". If set to true (default is false), image blocks " +"(metadata only) are included in the produced list and thus allow " +"detecting areas with rendered images." +msgstr "" + +#: ../../../changes.txt:2622 5eafe44f47b34527bfff5138b15affd3 +msgid "Minor bug fixes." +msgstr "" + +#: ../../../changes.txt:2624 6bf7252d584b4c8e9b97592fc0d934e4 +msgid "" +"\"text\" result of :meth:`Page.getText` concatenates all lines within a " +"block using a single space character. MuPDF's original uses \"\\\\n\" " +"instead, producing a rather ragged output." +msgstr "" + +#: ../../../changes.txt:2626 94bf5fb0e50249e78857f02ebaaff525 +msgid "" +"New properties of :ref:`Page` objects :attr:`Page.MediaBoxSize` and " +":attr:`Page.CropBoxPosition` provide more information about a page's " +"dimensions. For non-PDF files (and for most PDF files, too) these will be" +" equal to :attr:`Page.rect.bottom_right`, resp. " +":attr:`Page.rect.top_left`. For example, class :ref:`Shape` makes use of " +"them to correctly position its items." +msgstr "" + +#: ../../../changes.txt:2630 74d15ecb1b914538a684a22683984be7 +msgid "**Changes in Version 1.12.0**" +msgstr "" + +#: ../../../changes.txt:2632 ac50d19ead2044d4afef9637fadb68d5 +msgid "" +"This version is based on and requires MuPDF v1.12.0. The new MuPDF " +"version contains quite a number of changes -- most of them around text " +"extraction. Some of the changes impact the programmer's API." +msgstr "" + +#: ../../../changes.txt:2634 1b465153b5814abe8ed0d412684e1e54 +msgid "" +":meth:`Outline.saveText` and :meth:`Outline.saveXML` have been deleted " +"without replacement. You probably haven't used them much anyway. But if " +"you are looking for a replacement: the output of :meth:`Document.get_toc`" +" can easily be used to produce something equivalent." +msgstr "" + +#: ../../../changes.txt:2636 b2b48a42c44c4a1dab5f5c66edaf406a +msgid "Class *TextSheet* does no longer exist." +msgstr "" + +#: ../../../changes.txt:2638 f6faca5ccc3b4ddab529d2c73f600396 +msgid "" +"Text \"spans\" (one of the hierarchy levels of :ref:`TextPage`) no longer" +" contain positioning information (i.e. no \"bbox\" key). Instead, spans " +"now provide the font information for its text. This impacts our JSON " +"output variant." +msgstr "" + +#: ../../../changes.txt:2640 cc737a16a9114bea9f2892a3d611d32f +msgid "" +"HTML output has improved very much: it now creates valid documents which " +"can be displayed by browsers to produce a similar view as the original " +"document." +msgstr "" + +#: ../../../changes.txt:2642 88630dce5a784283a7c487d4fd39dfe4 +msgid "" +"There is a new output format XHTML, which provides text and images in a " +"browser-readable format. The difference to HTML output is, that no effort" +" is made to reproduce the original layout." +msgstr "" + +#: ../../../changes.txt:2644 3af5ba7ff439426696f0f07a23e1d8fa +msgid "" +"All output formats of :meth:`Page.getText` now support creating complete," +" valid documents, by wrapping them with appropriate header and trailer " +"information. If you are interested in using the HTML output, please make " +"sure to read :ref:`HTMLQuality`." +msgstr "" + +#: ../../../changes.txt:2646 87e42d9c77a54890af57f976c5071ba7 +msgid "" +"To support finding text positions, we have added special methods that " +"don't need detours like :meth:`TextPage.extractJSON` or " +":meth:`TextPage.extractXML`: use :meth:`Page.getTextBlocks` or resp. " +":meth:`Page.getTextWords` to create lists of text blocks or resp. words, " +"which are accompanied by their rectangles. This should be much faster " +"than the standard text extraction methods and also avoids using " +"additional packages for interpreting their output." +msgstr "" + +#: ../../../changes.txt:2651 239ae39492b748df849ea403ef2108f0 +msgid "**Changes in Version 1.11.2**" +msgstr "" + +#: ../../../changes.txt:2653 2c6897b2b1734812a1b0c402d1ba8907 +msgid "This is an extension of v1.11.1." +msgstr "" + +#: ../../../changes.txt:2655 b024b8bd2f954e69a9f3a58c001cc2d8 +msgid "" +"New :meth:`Page.insertFont` creates a PDF */Font* object and returns its " +"object number." +msgstr "" + +#: ../../../changes.txt:2657 17bf32eed08e4af7a9235c26da714f4c +msgid "" +"New :meth:`Document.extractFont` extracts the content of an embedded font" +" given its object number." +msgstr "" + +#: ../../../changes.txt:2659 8a06bf9858264b8aaddd5dcc4b335cca +msgid "" +"Methods **FontList(...)** items no longer contain the PDF generation " +"number. This value never had any significance. Instead, the font file " +"extension is included (e.g. \"pfa\" for a \"PostScript Font for ASCII\")," +" which is more valuable information." +msgstr "" + +#: ../../../changes.txt:2661 f45d17bd4282467ca8855a3a25ae091d +msgid "Fonts other than \"simple fonts\" (Type1) are now also supported." +msgstr "" + +#: ../../../changes.txt:2663 18c58364a89d48b6aa981d0c901c91ea +msgid "New options to change :ref:`Pixmap` size:" +msgstr "" + +#: ../../../changes.txt:2665 399900b7d04b4cda9bdb0645844fa951 +msgid "Method :meth:`Pixmap.shrink` reduces the pixmap proportionally in place." +msgstr "" + +#: ../../../changes.txt:2667 3c624215a18b4ee5acf3b3f95f7d3b8f +msgid "" +"A new :ref:`Pixmap` copy constructor allows scaling via setting target " +"width and height." +msgstr "" + +#: ../../../changes.txt:2672 787726e4ea8e4f998d5c45f15750e062 +msgid "**Changes in Version 1.11.1**" +msgstr "" + +#: ../../../changes.txt:2674 3f97c63d1ab042b0938270157fe47048 +msgid "This is an extension of v1.11.0." +msgstr "" + +#: ../../../changes.txt:2676 51d6f21f07544106b1652c72ebc2ffe2 +msgid "" +"New class *Shape*. It facilitates and extends the creation of image " +"shapes on PDF pages. It contains multiple methods for creating elementary" +" shapes like lines, rectangles or circles, which can be combined into " +"more complex ones and be given common properties like line width or " +"colors. Combined shapes are handled as a unit and e.g. be \"morphed\" " +"together. The class can accumulate multiple complex shapes and put them " +"all in the page's foreground or background -- thus also reducing the " +"number of updates to the page's :data:`contents` object." +msgstr "" + +#: ../../../changes.txt:2678 2d4cfa604e58468ea1577f10209e6280 +msgid "All *Page* draw methods now use the new *Shape* class." +msgstr "" + +#: ../../../changes.txt:2680 fc7ba2646c3448c297ae41f9fadeda05 +msgid "" +"Text insertion methods *insertText()* and *insertTextBox()* now support " +"morphing in addition to text rotation. They have become part of the " +"*Shape* class and thus allow text to be freely combined with graphics." +msgstr "" + +#: ../../../changes.txt:2682 737fb07ba7c242ff9478cdcd66f9c5ec +msgid "" +"A new *Pixmap* constructor allows creating pixmap copies with an added " +"alpha channel. A new method also allows directly manipulating alpha " +"values." +msgstr "" + +#: ../../../changes.txt:2684 8ce597ee78ed4486bbf604c79de4b733 +msgid "" +"Binary algebraic operations with geometry objects (matrices, rectangles " +"and points) now generally also support lists or tuples as the second " +"operand. You can add a tuple *(x, y)* of numbers to a :ref:`Point`. In " +"this context, such sequences are called \":data:`point_like`\" (resp. " +":data:`matrix_like`, :data:`rect_like`)." +msgstr "" + +#: ../../../changes.txt:2686 5788fb7d7f784ac09ae37611ece715fa +msgid "" +"Geometry objects now fully support in-place operators. For example, *p /=" +" m* replaces point p with *p * 1/m* for a number, or *p * ~m* for a " +":data:`matrix_like` object *m*. Similarly, if *r* is a rectangle, then *r" +" |= (3, 4)* is the new rectangle that also includes *fitz.Point(3, 4)*, " +"and *r &= (1, 2, 3, 4)* is its intersection with *fitz.Rect(1, 2, 3, 4)*." +msgstr "" + +#: ../../../changes.txt:2690 34897b5e1f8042e392f5a46fcd148809 +msgid "**Changes in Version 1.11.0**" +msgstr "" + +#: ../../../changes.txt:2692 d292bd8392b648e4a31cef92ae09f8b5 +msgid "This version is based on and requires MuPDF v1.11." +msgstr "" + +#: ../../../changes.txt:2694 6de44e4ec25b476cb9fc163cdece9c5f +msgid "" +"Though MuPDF has declared it as being mostly a bug fix version, one major" +" new feature is indeed contained: support of embedded files -- also " +"called portfolios or collections. We have extended PyMuPDF functionality " +"to embrace this up to an extent just a little beyond the *mutool* utility" +" as follows." +msgstr "" + +#: ../../../changes.txt:2696 3f70b50c029542ff87e1112b28bb11f5 +msgid "" +"The *Document* class now support embedded files with several new methods " +"and one new property:" +msgstr "" + +#: ../../../changes.txt:2698 1922650fdba747cd960cf08984a60150 +msgid "" +"*embfile_Info()* returns metadata information about an entry in the list " +"of embedded files. This is more than *mutool* currently provides: it " +"shows all the information that was used to embed the file (not just the " +"entry's name)." +msgstr "" + +#: ../../../changes.txt:2699 3a1e2417a0dd47e985c0fd31c45e52fa +msgid "" +"*embfile_Get()* retrieves the (decompressed) content of an entry into a " +"*bytes* buffer." +msgstr "" + +#: ../../../changes.txt:2700 9c68f32b3ab04c2ba2849db67d9b5edc +msgid "" +"*embfile_Add(...)* inserts new content into the PDF portfolio. We (in " +"contrast to *mutool*) **restrict** this to entries with a **new name** " +"(no duplicate names allowed)." +msgstr "" + +#: ../../../changes.txt:2701 274f3e1bbceb4acfb7ceb07d7a164afb +msgid "" +"*embfile_Del(...)* deletes an entry from the portfolio (function not " +"offered in MuPDF)." +msgstr "" + +#: ../../../changes.txt:2702 0a75c5b044d54d62b32f6e6a9c1bb143 +msgid "" +"*embfile_SetInfo()* -- changes filename or description of an embedded " +"file." +msgstr "" + +#: ../../../changes.txt:2703 f80bb0230db84d0fb5d130853430ffb0 +msgid "*embfile_Count* -- contains the number of embedded files." +msgstr "" + +#: ../../../changes.txt:2705 5474da97a2ee44f59d0e2fd58ad55665 +msgid "" +"Several enhancements deal with streamlining geometry objects. These are " +"not connected to the new MuPDF version and most of them are also " +"reflected in PyMuPDF v1.10.0. Among them are new properties to identify " +"the corners of rectangles by name (e.g. *Rect.bottom_right*) and new " +"methods to deal with set-theoretic questions like *Rect.contains(x)* or " +"*IRect.intersects(x)*. Special effort focussed on supporting more " +"\"Pythonic\" language constructs: *if x in rect ...* is equivalent to " +"*rect.contains(x)*." +msgstr "" + +#: ../../../changes.txt:2707 2a7db4a61ce24c848f83c0863bad09b7 +msgid "" +"The :ref:`Rect` chapter now has more background on empty amd infinite " +"rectangles and how we handle them. The handling itself was also updated " +"for more consistency in this area." +msgstr "" + +#: ../../../changes.txt:2709 33aee8dea574413681caf242adf8da6a +msgid "We have started basic support for **generation** of PDF content:" +msgstr "" + +#: ../../../changes.txt:2711 deb4a2603a53455cb82d849ad34308aa +msgid "" +"*Document.insert_page()* adds a new page into a PDF, optionally " +"containing some text." +msgstr "" + +#: ../../../changes.txt:2712 f7497c0e1764493a945c64046add98a1 +msgid "*Page.insertImage()* places a new image on a PDF page." +msgstr "" + +#: ../../../changes.txt:2713 59797715081c4303a9d023f624eeda19 +msgid "*Page.insertText()* puts new text on an existing page" +msgstr "" + +#: ../../../changes.txt:2715 1e1119160b9b47b6838fe3a16078aabc +msgid "" +"For **FileAttachment** annotations, content and name of the attached file" +" can extracted and changed." +msgstr "" + +#: ../../../changes.txt:2719 b6b1a71f6e9c4006ad908aca83e94958 +msgid "**Changes in Version 1.10.0**" +msgstr "" + +#: ../../../changes.txt:2721 2d15107ed72748df88b1f193e0590a28 +msgid "**MuPDF v1.10 Impact**" +msgstr "" + +#: ../../../changes.txt:2723 bcefb5c4e9884f03a30f600abedbeb81 +msgid "" +"MuPDF version 1.10 has a significant impact on our bindings. Some of the " +"changes also affect the API -- in other words, **you** as a PyMuPDF user." +msgstr "" + +#: ../../../changes.txt:2725 50ef82a6f0904d01b9d131853ef968fe +msgid "" +"Link destination information has been reduced. Several properties of the " +"*linkDest* class no longer contain valuable information. In fact, this " +"class as a whole has been deleted from MuPDF's library and we in PyMuPDF " +"only maintain it to provide compatibilty to existing code." +msgstr "" + +#: ../../../changes.txt:2727 e0f444dd42e048608c890061f2205bab +msgid "" +"In an effort to minimize memory requirements, several improvements have " +"been built into MuPDF v1.10:" +msgstr "" + +#: ../../../changes.txt:2729 dd57640466d6465693ecfa9e6153edb1 +msgid "" +"A new *config.h* file can be used to de-select unwanted features in the C" +" base code. Using this feature we have been able to reduce the size of " +"our binary *_fitz.o* / *_fitz.pyd* by about 50% (from 9 MB to 4.5 MB). " +"When UPX-ing this, the size goes even further down to a very handy 2.3 " +"MB." +msgstr "" + +#: ../../../changes.txt:2731 42d66398d41a44a099a22715ab110b6a +msgid "" +"The alpha (transparency) channel for pixmaps is now optional. Letting " +"alpha default to *False* significantly reduces pixmap sizes (by 20% -- " +"CMYK, 25% -- RGB, 50% -- GRAY). Many *Pixmap* constructors therefore now " +"accept an *alpha* boolean to control inclusion of this channel. Other " +"pixmap constructors (e.g. those for file and image input) create pixmaps " +"with no alpha alltogether. On the downside, save methods for pixmaps no " +"longer accept a *savealpha* option: this channel will always be saved " +"when present. To minimize code breaks, we have left this parameter in the" +" call patterns -- it will just be ignored." +msgstr "" + +#: ../../../changes.txt:2733 58b3832200ca448a9f2942f1ec5f30d9 +msgid "" +"*DisplayList* and *TextPage* class constructors now **require the " +"mediabox** of the page they are referring to (i.e. the *page.bound()* " +"rectangle). There is no way to construct this information from other " +"sources, therefore a source code change cannot be avoided in these cases." +" We assume however, that not many users are actually employing these " +"rather low level classes explixitely. So the impact of that change should" +" be minor." +msgstr "" + +#: ../../../changes.txt:2735 01de368016c141b1b2553cd585883f58 +msgid "**Other Changes compared to Version 1.9.3**" +msgstr "" + +#: ../../../changes.txt:2737 df26434942574d7da8fc1befaf6d049e +msgid "" +"The new :ref:`Document` method *write()* writes an opened PDF to memory " +"(as opposed to a file, like *save()* does)." +msgstr "" + +#: ../../../changes.txt:2738 5190f090e6f84628be18a2e1c9fd43df +msgid "" +"An annotation can now be scaled and moved around on its page. This is " +"done by modifying its rectangle." +msgstr "" + +#: ../../../changes.txt:2739 0eb2ec9314ee488196226314519b9129 +msgid "" +"Annotations can now be deleted. :ref:`Page` contains the new method " +"*deleteAnnot()*." +msgstr "" + +#: ../../../changes.txt:2740 99724b99bd0548eaa19c8c85f41c3b21 +msgid "" +"Various annotation attributes can now be modified, e.g. content, dates, " +"title (= author), border, colors." +msgstr "" + +#: ../../../changes.txt:2741 d958d6b52dd140669174995b9aa48a2c +msgid "" +"Method *Document.insert_pdf()* now also copies annotations of source " +"pages." +msgstr "" + +#: ../../../changes.txt:2742 a77b60cbc9834c8885e873395b2e5293 +msgid "" +"The *Pages* class has been deleted. As documents can now be accessed with" +" page numbers as indices (like *doc[n] = doc.loadPage(n)*), and document " +"object can be used as iterators, the benefit of this class was too low to" +" maintain it. See the following comments." +msgstr "" + +#: ../../../changes.txt:2743 8310daf4e1854f8d93f3fccbab7b350f +msgid "" +"*loadPage(n)* / *doc[n]* now accept arbitrary integers to specify a page " +"number, as long as *n < pageCount*. So, e.g. *doc[-500]* is always valid " +"and will load page *(-500) % pageCount*." +msgstr "" + +#: ../../../changes.txt:2744 1204cbb1b1c544fb9e21c114bb1d1ba0 +msgid "" +"A document can now also be used as an iterator like this: *for page in " +"doc: ... ...*. This will yield all pages of " +"*doc* as *page*." +msgstr "" + +#: ../../../changes.txt:2745 638b89cc45b748c1871ca2d5aead5130 +msgid "" +"The :ref:`Pixmap` method *getSize()* has been replaced with property " +"*size*. As before *Pixmap.size == len(Pixmap)* is true." +msgstr "" + +#: ../../../changes.txt:2746 08362ae590bb4f6d909e17c344eac186 +msgid "" +"In response to transparency (alpha) being optional, several new " +"parameters and properties have been added to :ref:`Pixmap` and " +":ref:`Colorspace` classes to support determining their characteristics." +msgstr "" + +#: ../../../changes.txt:2747 26af3ec444444862b651b0a46668621b +msgid "" +"The :ref:`Page` class now contains new properties *firstAnnot* and " +"*firstLink* to provide starting points to the respective class chains, " +"where *firstLink* is just a mnemonic synonym to method *loadLinks()* " +"which continues to exist. Similarly, the new property *rect* is a synonym" +" for method *bound()*, which also continues to exist." +msgstr "" + +#: ../../../changes.txt:2748 ded24a5038154723bb3341c82e3cbf85 +msgid "" +":ref:`Pixmap` methods *samplesRGB()* and *samplesAlpha()* have been " +"deleted because pixmaps can now be created without transparency." +msgstr "" + +#: ../../../changes.txt:2749 0f12d21dba014e89b8c28b88440ddf0d +msgid "" +":ref:`Rect` now has a property *irect* which is a synonym of method " +"*round()*. Likewise, :ref:`IRect` now has property *rect* to deliver a " +":ref:`Rect` which has the same coordinates as floats values." +msgstr "" + +#: ../../../changes.txt:2750 30d1287837f24dc3b01d070c0235a6b3 +msgid "" +"Document has the new method *searchPageFor()* to search for a text " +"string. It works exactly like the corresponding *Page.searchFor()* with " +"page number as additional parameter." +msgstr "" + +#: ../../../changes.txt:2755 efde2cd3f108453c92668ab6680d8c22 +msgid "**Changes in Version 1.9.3**" +msgstr "" + +#: ../../../changes.txt:2757 0ea28511a44f47cbabd5e1818b9aa8aa +msgid "" +"This version is also based on MuPDF v1.9a. Changes compared to version " +"1.9.2:" +msgstr "" + +#: ../../../changes.txt:2759 4e290039221648db96c98c392772b446 +msgid "" +"As a major enhancement, annotations are now supported in a similar way as" +" links. Annotations can be displayed (as pixmaps) and their properties " +"can be accessed." +msgstr "" + +#: ../../../changes.txt:2760 9b2336cd5062432881d29cf06440709d +msgid "" +"In addition to the document *select()* method, some simpler methods can " +"now be used to manipulate a PDF:" +msgstr "" + +#: ../../../changes.txt:2762 8d2322bb4a7d4981a30ae2ec5a2cbdb0 +msgid "*copyPage()* copies a page within a document." +msgstr "" + +#: ../../../changes.txt:2763 b7683db8abd54cb09161d5edf19f4bd3 +msgid "*movePage()* is similar, but deletes the original." +msgstr "" + +#: ../../../changes.txt:2764 a4c469e758a1452bb9ab330b06d00638 +msgid "*delete_page()* deletes a page" +msgstr "" + +#: ../../../changes.txt:2765 edfd6b26956f4fbfbe96ae5f0b82abd1 +msgid "*delete_pages()* deletes a page range" +msgstr "" + +#: ../../../changes.txt:2767 39a894ab055d4710b6bd443c6df69890 +msgid "" +"*rotation* or *setRotation()* access or change a PDF page's rotation, " +"respectively." +msgstr "" + +#: ../../../changes.txt:2768 4c32f65b4b694d6bb428aa23ca44e50a +msgid "" +"Available but undocumented before, :ref:`IRect`, :ref:`Rect`, " +":ref:`Point` and :ref:`Matrix` support the *len()* method and their " +"coordinate properties can be accessed via indices, e.g. *IRect.x1 == " +"IRect[2]*." +msgstr "" + +#: ../../../changes.txt:2769 f60011476e35442c8866a3831c378b54 +msgid "" +"For convenience, documents now support simple indexing: *doc.loadPage(n) " +"== doc[n]*. The index may however be in range *-pageCount < n < " +"pageCount*, such that *doc[-1]* is the last page of the document." +msgstr "" + +#: ../../../changes.txt:2773 b923307f30254e48ba8f3dfb4835b05a +msgid "**Changes in Version 1.9.2**" +msgstr "" + +#: ../../../changes.txt:2775 6449dd561a1d46078eff4b1c6983b1ae +msgid "" +"This version is also based on MuPDF v1.9a. Changes compared to version " +"1.9.1:" +msgstr "" + +#: ../../../changes.txt:2777 f9a699d3f70e4d6caed1fb3017bf1f0b +msgid "" +"*fitz.open()* (no parameters) creates a new empty **PDF** document, i.e. " +"if saved afterwards, it must be given a *.pdf* extension." +msgstr "" + +#: ../../../changes.txt:2778 6d6ed72ba57c49cab25dd46b125a7992 +msgid "" +":ref:`Document` now accepts all of the following formats (*Document* and " +"*open* are synonyms):" +msgstr "" + +#: ../../../changes.txt:2780 a3a89203f10e4adeb3cfe637ceb6fdff +msgid "*open()*," +msgstr "" + +#: ../../../changes.txt:2781 adac8cae62784b188b7532c740bb1379 +msgid "*open(filename)* (equivalent to *open(filename, None)*)," +msgstr "" + +#: ../../../changes.txt:2782 5d35476e5dcf46248458a566565f6b6f +msgid "*open(filetype, area)* (equivalent to *open(filetype, stream = area)*)." +msgstr "" + +#: ../../../changes.txt:2784 2fdc6dd492a14cc68fa4d2de4e051cfc +msgid "" +"Type of memory area *stream* may be *bytes* or *bytearray*. Thus, e.g. " +"*area = open(\"file.pdf\", \"rb\").read()* may be used directly (without " +"first converting it to bytearray)." +msgstr "" + +#: ../../../changes.txt:2785 ad12c912ac3247a4a7c774429b01c39b +msgid "" +"New method *Document.insert_pdf()* (PDFs only) inserts a range of pages " +"from another PDF." +msgstr "" + +#: ../../../changes.txt:2786 93f16447ec77443ba90329b70366c78f +msgid "" +"*Document* objects doc now support the *len()* function: ``len(doc) == " +"doc.pageCount``." +msgstr "" + +#: ../../../changes.txt:2787 b9dfdd6106944a0ab643f64882fa6526 +msgid "" +"New method *Document.getPageImageList()* creates a list of images used on" +" a page." +msgstr "" + +#: ../../../changes.txt:2788 f2906fa3f14c4f93bddbe0029d43681f +msgid "" +"New method *Document.getPageFontList()* creates a list of fonts " +"referenced by a page." +msgstr "" + +#: ../../../changes.txt:2789 a053e3c6bd69480aa1a4639e8522af69 +msgid "" +"New pixmap constructor *fitz.Pixmap(doc, xref)* creates a pixmap based on" +" an opened PDF document and an :data:`xref` number of the image." +msgstr "" + +#: ../../../changes.txt:2790 9dfdd7f9d9b14e15963c179646bcbbeb +msgid "" +"New pixmap constructor *fitz.Pixmap(cspace, spix)* creates a pixmap as a " +"copy of another one *spix* with the colorspace converted to *cspace*. " +"This works for all colorspace combinations." +msgstr "" + +#: ../../../changes.txt:2791 2a61334e5c304e09a3efe93e1daf2a53 +msgid "" +"Pixmap constructor *fitz.Pixmap(colorspace, width, height, samples)* now " +"allows *samples* to also be *bytes*, not only *bytearray*." +msgstr "" + +#: ../../../changes.txt:2796 b95080e967b24b66ae4b63c42d239889 +msgid "**Changes in Version 1.9.1**" +msgstr "" + +#: ../../../changes.txt:2798 9273e10701d143069e9c0424e4b6bded +msgid "" +"This version of PyMuPDF is based on MuPDF library source code version " +"1.9a published on April 21, 2016." +msgstr "" + +#: ../../../changes.txt:2800 517fc4042ed6446e9e7457b0f69e8504 +msgid "" +"Please have a look at MuPDF's website to see which changes and " +"enhancements are contained herein." +msgstr "" + +#: ../../../changes.txt:2802 c70db83bdb1d48d198e4344cae4de7b5 +msgid "Changes in version 1.9.1 compared to version 1.8.0 are the following:" +msgstr "" + +#: ../../../changes.txt:2804 0d6385d834804b7d9b0ab1c6ef0d85b8 +msgid "New methods *get_area()* for both *fitz.Rect* and *fitz.IRect*" +msgstr "" + +#: ../../../changes.txt:2805 85fda6915f8c488cb6fbe936f1ea49ab +msgid "" +"Pixmaps can now be created directly from files using the new constructor " +"*fitz.Pixmap(filename)*." +msgstr "" + +#: ../../../changes.txt:2806 d92fe0f7f8304a5190d37c53f89f3a24 +msgid "The Pixmap constructor *fitz.Pixmap(image)* has been extended accordingly." +msgstr "" + +#: ../../../changes.txt:2807 cdaceee4b768492e9110c3d0cd75e175 +msgid "" +"*fitz.Rect* can now be created with all possible combinations of points " +"and coordinates." +msgstr "" + +#: ../../../changes.txt:2808 03f45a90666540d8b5cb4c257457b006 +msgid "" +"PyMuPDF classes and methods now all contain __doc__ strings, most of " +"them created by SWIG automatically. While the PyMuPDF documentation " +"certainly is more detailed, this feature should help a lot when " +"programming in Python-aware IDEs." +msgstr "" + +#: ../../../changes.txt:2809 2ddafe376f5e4f4e9ac5c3db523eea26 +msgid "" +"A new document method of *getPermits()* returns the permissions " +"associated with the current access to the document (print, edit, " +"annotate, copy), as a Python dictionary." +msgstr "" + +#: ../../../changes.txt:2810 38dbe8d276f348d6b76c6d0a15d0676f +msgid "The identity matrix *fitz.Identity* is now **immutable**." +msgstr "" + +#: ../../../changes.txt:2811 fa0425c7b7b04f0bb7c04eec634e2756 +msgid "" +"The new document method *select(list)* removes all pages from a document " +"that are not contained in the list. Pages can also be duplicated and re-" +"arranged." +msgstr "" + +#: ../../../changes.txt:2812 3c561ea70df341be88b491b64dc6f313 +msgid "" +"Various improvements and new members in our demo and examples " +"collections. Perhaps most prominently: *PDF_display* now supports " +"scrolling with the mouse wheel, and there is a new example program " +"*wxTableExtract* which allows to graphically identify and extract table " +"data in documents." +msgstr "" + +#: ../../../changes.txt:2813 4d9bea8a8e514d67958c633b66ca31fb +msgid "*fitz.open()* is now an alias of *fitz.Document()*." +msgstr "" + +#: ../../../changes.txt:2814 f62c2e04dea346d0a23964798a6150e8 +msgid "" +"New pixmap method *tobytes()* which will return a bytearray formatted as " +"a PNG image of the pixmap." +msgstr "" + +#: ../../../changes.txt:2815 691532d03793437899a4b59421388b4c +msgid "" +"New pixmap method *samplesRGB()* providing a *samples* version with alpha" +" bytes stripped off (RGB colorspaces only)." +msgstr "" + +#: ../../../changes.txt:2816 2780806eef3f43b28a7e9601a270e9f2 +msgid "" +"New pixmap method *samplesAlpha()* providing the alpha bytes only of the " +"*samples* area." +msgstr "" + +#: ../../../changes.txt:2817 21fbef3bc0e64a59a9a9b9f5005063e8 +msgid "New iterator *fitz.Pages(doc)* over a document's set of pages." +msgstr "" + +#: ../../../changes.txt:2818 707a5edabf3e4c3cbb66ed5d280d40ae +msgid "" +"New matrix methods *invert()* (calculate inverted matrix), *concat()* " +"(calculate matrix product), *pretranslate()* (perform a shift operation)." +msgstr "" + +#: ../../../changes.txt:2819 cc8cea5eaf77474aa84e90031d6f3318 +msgid "" +"New *IRect* methods *intersect()* (intersection with another rectangle), " +"*translate()* (perform a shift operation)." +msgstr "" + +#: ../../../changes.txt:2820 893b259908084462b3a1a85629a6ee06 +msgid "" +"New *Rect* methods *intersect()* (intersection with another rectangle), " +"*transform()* (transformation with a matrix), *include_point()* (enlarge " +"rectangle to also contain a point), *include_rect()* (enlarge rectangle " +"to also contain another one)." +msgstr "" + +#: ../../../changes.txt:2821 21838e58f15b4457816e55450382ccb9 +msgid "Documented *Point.transform()* (transform a point with a matrix)." +msgstr "" + +#: ../../../changes.txt:2822 3f2842cba4c044eb99d8d250d9f84740 +msgid "" +"*Matrix*, *IRect*, *Rect* and *Point* classes now support compact, " +"algebraic formulations for manipulating such objects." +msgstr "" + +#: ../../../changes.txt:2823 bb13c21e58c14cf59f36e99322166ac4 +msgid "" +"Incremental saves for changes are possible now using the call pattern " +"*doc.save(doc.name, incremental=True)*." +msgstr "" + +#: ../../../changes.txt:2824 34093067a0274622aa66ca0e40f20da0 +msgid "" +"A PDF's metadata can now be deleted, set or changed by document method " +"*set_metadata()*. Supports incremental saves." +msgstr "" + +#: ../../../changes.txt:2825 0e2f9f83f2244178a0772a7f0de76b0d +msgid "" +"A PDF's bookmarks (or table of contents) can now be deleted, set or " +"changed with the entries of a list using document method *set_toc(list)*." +" Supports incremental saves." +msgstr "" + +#: ../../footer.rst:46 0555f8605d724eadbe65f9eb27755b4f +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/classes.mo b/docs/locales/ko/LC_MESSAGES/classes.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/classes.po b/docs/locales/ko/LC_MESSAGES/classes.po new file mode 100644 index 000000000..7b10ca45e --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/classes.po @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 72d124a4df2940ae91c02b99f3c82423 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 0da5ffd890c841748068ca615eab3107 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 9d0127c5f1f14daa981562792c65c9b5 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../classes.rst:5 fe9040dd12d946768ce0d27a27fdaf3d +msgid "Classes" +msgstr "" + +#: ../../footer.rst:46 8ffd075421f949e383a9682ed7ae841d +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/colors.mo b/docs/locales/ko/LC_MESSAGES/colors.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/colors.po b/docs/locales/ko/LC_MESSAGES/colors.po new file mode 100644 index 000000000..1fb25051c --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/colors.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f7f80c710949468b8bd435236ad8e2c4 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 128dbd8ce067437e9fa9367d9a81490c +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 fc29ad4440c04367a8583f77893f5da0 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../colors.rst:7 904c9bd5c37245ada62e1853d3d3ab41 +msgid "Color Database" +msgstr "" + +#: ../../colors.rst:8 3a6a8c4737a04dff80244d2af0ec3eb5 +msgid "" +"Since the introduction of methods involving colors (like " +":meth:`Page.draw_circle`), a requirement may be to have access to " +"predefined colors." +msgstr "" + +#: ../../colors.rst:10 413288a3680f4de18bf71a5e9d578ce4 +msgid "" +"The fabulous GUI package `wxPython `_ has a " +"database of over 540 predefined RGB colors, which are given more or less " +"memorizable names. Among them are not only standard names like \"green\" " +"or \"blue\", but also \"turquoise\", \"skyblue\", and 100 (not only 50 " +"...) shades of \"gray\", etc." +msgstr "" + +#: ../../colors.rst:12 14609f03f5aa4aaa8e49243c7e03e485 +msgid "" +"We have taken the liberty to copy this database (a list of tuples) " +"modified into PyMuPDF and make its colors available as PDF compatible " +"float triples: for wxPython's *(\"WHITE\", 255, 255, 255)* we return *(1," +" 1, 1)*, which can be directly used in *color* and *fill* parameters. We " +"also accept any mixed case of \"wHiTe\" to find a color." +msgstr "" + +#: ../../colors.rst:15 9ad1f31ffff5428d982d997142d514ed +msgid "Function *getColor()*" +msgstr "" + +#: ../../colors.rst:16 a622de02c9de4a36be638603c453810c +msgid "" +"As the color database may not be needed very often, one additional import" +" statement seems acceptable to get access to it::" +msgstr "" + +#: ../../colors.rst:41 77d5cf06ffb64791bf093176968e3823 +msgid "Printing the Color Database" +msgstr "" + +#: ../../colors.rst:42 671f64b3cd454ac79241e57967a08885 +msgid "" +"If you want to actually see how the many available colors look like, use " +"scripts `print by RGB `_ or `print by HSV " +"`_ in the examples directory. They create PDFs (already " +"existing in the same directory) with all these colors. Their only " +"difference is sorting order: one takes the RGB values, the other one the " +"Hue-Saturation-Values as sort criteria. This is a screen print of what " +"these files look like." +msgstr "" + +#: ../../footer.rst:46 8a7d56a546234904856ce9f0b72c1614 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/colorspace.mo b/docs/locales/ko/LC_MESSAGES/colorspace.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/colorspace.po b/docs/locales/ko/LC_MESSAGES/colorspace.po new file mode 100644 index 000000000..911597c34 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/colorspace.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f549435fd225442b88591b9ea748ccf5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 26942a499b7a445b90c295eca24482e7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 af615b1043644e81bbff2aaf9a089159 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../colorspace.rst:7 34c209fdd6e340a2957eb63d18046708 +msgid "Colorspace" +msgstr "" + +#: ../../colorspace.rst:9 f977d2d374354205a274599236a85e9e +msgid "Represents the color space of a :ref:`Pixmap`." +msgstr "" + +#: ../../colorspace.rst:12 1b2a1f6f61a04f109833fcd6f2cd89f6 +msgid "**Class API**" +msgstr "" + +#: ../../colorspace.rst:18 e6633c622a404083816fea39291502e0 +msgid "Constructor" +msgstr "" + +#: ../../colorspace.rst bb53728a68224c1598e93adba7f88d7b +msgid "Parameters" +msgstr "" + +#: ../../colorspace.rst:20 2f9149a75fe74a3ea8f99ed87ca10a79 +msgid "" +"A number identifying the colorspace. Possible values are :data:`CS_RGB`, " +":data:`CS_GRAY` and :data:`CS_CMYK`." +msgstr "" + +#: ../../colorspace.rst:24 68374fc9f8604e2c9f51ccab76cd667f +msgid "" +"The name identifying the colorspace. Example: *pymupdf.csCMYK.name = " +"'DeviceCMYK'*." +msgstr "" + +#: ../../colorspace.rst 2b529cfead5f452aa08c4f0889094f2a +#: de6bc202909d47c1ac4f59fb0cfd08f4 +msgid "type" +msgstr "" + +#: ../../colorspace.rst:26 fae8ee7d418c442591c2744e79c8744d +msgid "str" +msgstr "" + +#: ../../colorspace.rst:30 c1510ca299d344e599e43a51f294701f +msgid "" +"The number of bytes required to define the color of one pixel. Example: " +"*pymupdf.csCMYK.n == 4*." +msgstr "" + +#: ../../colorspace.rst:32 f102b99da0f947f2ad6e51b936a3be73 +msgid "int" +msgstr "" + +#: ../../colorspace.rst:35 38447c5856904db38a697c5fbbac7a22 +msgid "**Predefined Colorspaces**" +msgstr "" + +#: ../../colorspace.rst:37 050d42a00f5a4101af529f195bc8bb1c +msgid "" +"For saving some typing effort, there exist predefined colorspace objects " +"for the three available cases." +msgstr "" + +#: ../../colorspace.rst:39 e4c24c0bade34c0893756619c1ebc542 +msgid ":data:`csRGB` = *pymupdf.Colorspace(pymupdf.CS_RGB)*" +msgstr "" + +#: ../../colorspace.rst:40 2094a63eb7ee45d9ae81e24499dde735 +msgid ":data:`csGRAY` = *pymupdf.Colorspace(pymupdf.CS_GRAY)*" +msgstr "" + +#: ../../colorspace.rst:41 055f0bfcd886462d9efd42028ac34cf4 +msgid ":data:`csCMYK` = *pymupdf.Colorspace(pymupdf.CS_CMYK)*" +msgstr "" + +#: ../../footer.rst:46 db2d1460e2e34af68d7315f27089b57f +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/converting-files.mo b/docs/locales/ko/LC_MESSAGES/converting-files.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/converting-files.po b/docs/locales/ko/LC_MESSAGES/converting-files.po new file mode 100644 index 000000000..7e8d183d8 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/converting-files.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f8990f687e0047c89745e6b15ef5f312 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 606c02d809cb449ab8e5df484cb2149f +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 90891c93f09445feb007b8f80d447d93 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../converting-files.rst:7 153e0c6c14bf4b8bac1dcdc565ac0f16 +msgid "Converting Files" +msgstr "" + +#: ../../converting-files.rst:12 9b1bc6f3061c4fd9a084829ef7554c37 +msgid "Files to PDF" +msgstr "" + +#: ../../converting-files.rst:14 38d5a093dfc24e72b3627f1a2c952515 +msgid "" +":ref:`Document types supported by PyMuPDF` can easily be " +"converted to |PDF| by using the :meth:`Document.convert_to_pdf` method. " +"This method returns a buffer of data which can then be utilized by " +"|PyMuPDF| to create a new |PDF|." +msgstr "" + +#: ../../converting-files.rst:18 ../../converting-files.rst:38 +#: ../../converting-files.rst:62 ../../converting-files.rst:82 +#: 2eff8f1c0f704e9d9e23a98078353847 7345723f19864e81be97447aab194cd9 +#: c3ae18efff164928b70b884d3a47caac ecdbf8cbbb2d46bc9bf312b716b264af +msgid "**Example**" +msgstr "" + +#: ../../converting-files.rst:32 4e3eda1d4bff4593ae1f0333bcc47a5d +msgid "PDF to SVG" +msgstr "" + +#: ../../converting-files.rst:34 d8f0e0e26f99486485d27038482b5558 +msgid "" +"Technically, as SVG files cannot be multipage, we must export each page " +"as an SVG." +msgstr "" + +#: ../../converting-files.rst:36 45efc8839a1b44e9a877335aa51df1b6 +msgid "" +"To get an SVG representation of a page use the :meth:`Page.get_svg_image`" +" method." +msgstr "" + +#: ../../converting-files.rst:58 9249883d41654d3c8041c561743679c6 +msgid "PDF to Markdown" +msgstr "" + +#: ../../converting-files.rst:60 9d35a0dc74c742419817cfab8ac5fbb6 +msgid "" +"By utlilizing the :doc:`PyMuPDF4LLM API ` we are able to" +" convert PDF to a Markdown representation." +msgstr "" + +#: ../../converting-files.rst:76 a8c608159d57471c89e55f3c44adafe2 +msgid "PDF to DOCX" +msgstr "" + +#: ../../converting-files.rst:78 443eb3ec0d3a4ba89f8e4361a7607e16 +msgid "" +"Use the pdf2docx_ library which uses |PyMuPDF| to provide document " +"conversion from |PDF| to **DOCX** format." +msgstr "" + +#: ../../footer.rst:46 bf92de7cbdc140fba9255f9a43b9932a +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/coop_low.mo b/docs/locales/ko/LC_MESSAGES/coop_low.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/coop_low.po b/docs/locales/ko/LC_MESSAGES/coop_low.po new file mode 100644 index 000000000..d85cce791 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/coop_low.po @@ -0,0 +1,171 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 8d754aed1e2740038b917c525f18b9ca +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 48fc1e2d0d4044849ac51203907c3038 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 9455ddb086974d8fbdb10bf9926ee2c2 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../coop_low.rst:7 1424337399114434a5fcad7ec04fb525 +msgid "Working together: DisplayList and TextPage" +msgstr "" + +#: ../../coop_low.rst:8 a3db195fac9545f6bcdb871b180a3157 +msgid "Here are some instructions on how to use these classes together." +msgstr "" + +#: ../../coop_low.rst:10 0151aabe7884411ab744c548ff37a84f +msgid "" +"In some situations, performance improvements may be achievable, when you " +"fall back to the detail level explained here." +msgstr "" + +#: ../../coop_low.rst:13 54d7972a1340441eaea756f718523d0b +msgid "Create a DisplayList" +msgstr "" + +#: ../../coop_low.rst:14 c98d7572988c49e6a0b6a9e9719d1774 +msgid "" +"A :ref:`DisplayList` represents an interpreted document page. Methods for" +" pixmap creation, text extraction and text search are -- behind the " +"curtain -- all using the page's display list to perform their tasks. If a" +" page must be rendered several times (e.g. because of changed zoom " +"levels), or if text search and text extraction should both be performed, " +"overhead can be saved, if the display list is created only once and then " +"used for all other tasks." +msgstr "" + +#: ../../coop_low.rst:18 4e74ccb447ad4e808e44350168bf55d2 +msgid "" +"You can also create display lists for many pages \"on stack\" (in a " +"list), may be during document open, during idling times, or you store it " +"when a page is visited for the first time (e.g. in GUI scripts)." +msgstr "" + +#: ../../coop_low.rst:20 12bb2e8c763e4ad3a237fd80266a2543 +msgid "" +"Note, that for everything what follows, only the display list is needed " +"-- the corresponding :ref:`Page` object could have been deleted." +msgstr "" + +#: ../../coop_low.rst:23 686688813b8745b284b6d509397757da +msgid "Generate Pixmap" +msgstr "" + +#: ../../coop_low.rst:24 d5a176c44d9a4202a1247dbea491d65e +msgid "" +"The following creates a Pixmap from a :ref:`DisplayList`. Parameters are " +"the same as for :meth:`Page.get_pixmap`." +msgstr "" + +#: ../../coop_low.rst:28 141a5838b45c4b229d3aa4b5d32e29e6 +#, python-format +msgid "" +"The execution time of this statement may be up to 50% shorter than that " +"of :meth:`Page.get_pixmap`." +msgstr "" + +#: ../../coop_low.rst:31 23be506420454ef7b8ccdcabdadf9684 +msgid "Perform Text Search" +msgstr "" + +#: ../../coop_low.rst:32 304eb217224047588efee4d3a4959ad2 +msgid "With the display list from above, we can also search for text." +msgstr "" + +#: ../../coop_low.rst:34 6f3c8ea4c8134e719b9c2c789a52eaf5 +msgid "For this we need to create a :ref:`TextPage`." +msgstr "" + +#: ../../coop_low.rst:42 702318fa16304e26a6dbff34f1f56e8c +msgid "Extract Text" +msgstr "" + +#: ../../coop_low.rst:43 50018abeea15456b936054a8e8301808 +msgid "" +"With the same :ref:`TextPage` object from above, we can now immediately " +"use any or all of the 5 text extraction methods." +msgstr "" + +#: ../../coop_low.rst:45 01c692d0961a48d78607d7cdef1b8734 +msgid "" +"Above, we have created our text page without argument. This leads to a " +"default argument of 3 (:data:`ligatures` and white-space are preserved), " +"IAW images will **not** be extracted -- see below." +msgstr "" + +#: ../../coop_low.rst:54 15150223bde3445b8a3ddc5a334745ce +msgid "Further Performance improvements" +msgstr "" + +#: ../../coop_low.rst:56 815c6e2e62894b99850c2da374681e5c +msgid "Pixmap" +msgstr "" + +#: ../../coop_low.rst:57 5fa23435785d41b3aa98150e549e6a24 +msgid "As explained in the :ref:`Page` chapter:" +msgstr "" + +#: ../../coop_low.rst:59 d7489842cfb34a66b6decf4e2c4626a6 +#, python-format +msgid "" +"If you do not need transparency set *alpha = 0* when creating pixmaps. " +"This will save 25% memory (if RGB, the most common case) and possibly 5% " +"execution time (depending on the GUI software)." +msgstr "" + +#: ../../coop_low.rst:62 85b6f710f9d440e6a4e7167325c704a1 +msgid "TextPage" +msgstr "" + +#: ../../coop_low.rst:63 eacc58b3ec3b4895b3defc1f4a0cff2b +msgid "" +"If you do not need images extracted alongside the text of a page, you can" +" set the following option:" +msgstr "" + +#: ../../coop_low.rst:68 494f5310e02d4bc18d9d3742d80c9a1d +#, python-format +msgid "" +"This will save ca. 25% overall execution time for the HTML, XHTML and " +"JSON text extractions and **hugely** reduce the amount of storage (both, " +"memory and disk space) if the document is graphics oriented." +msgstr "" + +#: ../../coop_low.rst:70 c7b5ac2b784947f6a4bd325d1474f9b8 +msgid "If you however do need images, use a value of 7 for flags:" +msgstr "" + +#: ../../footer.rst:46 74ed18ccd6ca45b28e31f30369c051a8 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/device.mo b/docs/locales/ko/LC_MESSAGES/device.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/device.po b/docs/locales/ko/LC_MESSAGES/device.po new file mode 100644 index 000000000..7f8c86f1d --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/device.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 db41752d7d77475b91dce6987192b03e +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 9d1395b42c0242c2937c063ec31289da +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c674fa9ee73a4fcf888b701a69a14f4a +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../device.rst:7 d8f699f2197d4cccb1a32e36349536c8 +msgid "Device" +msgstr "" + +#: ../../device.rst:9 c03889a987f445ea84d79f3d5abfb84d +msgid "" +"The different format handlers (pdf, xps, etc.) interpret pages to a " +"\"device\". Devices are the basis for everything that can be done with a " +"page: rendering, text extraction and searching. The device type is " +"determined by the selected construction method." +msgstr "" + +#: ../../device.rst:11 5997f573701045499919ec1f18ab7518 +msgid "**Class API**" +msgstr "" + +#: ../../device.rst:17 4b9fd079e127474e94506fe9eadb79d7 +msgid "Constructor for either a pixel map or a display list device." +msgstr "" + +#: ../../device.rst 3029384c54544ad783072064ea96675d +#: ca7a504aacc440719aba0931b7724c60 +msgid "Parameters" +msgstr "" + +#: ../../device.rst:19 9b095106055b4d568344ac7d142034f3 +msgid "either a ``Pixmap`` or a ``DisplayList``." +msgstr "" + +#: ../../device.rst:22 30003de713004e58977091af11644238 +msgid "" +"An optional `IRect` for ``Pixmap`` devices to restrict rendering to a " +"certain area of the page. If the complete page is required, specify " +"``None``. For display list devices, this parameter must be omitted." +msgstr "" + +#: ../../device.rst:27 5a3223623124424ba115721d21086469 +msgid "Constructor for a text page device." +msgstr "" + +#: ../../device.rst:29 8f77a7687a804d458ddb9a4be4624d77 +msgid "``TextPage`` object" +msgstr "" + +#: ../../device.rst:32 53c8b35c8b0e4e488b05cfbe1c988a0d +msgid "" +"control the way how text is parsed into the text page. Currently 3 " +"options can be coded into this parameter, see :ref:`TextPreserve`. To set" +" these options use something like `flags=0 | TEXT_PRESERVE_LIGATURES | " +"...`." +msgstr "" + +#: ../../footer.rst:46 233763b8ff7c42718f2a5b6285c3802f +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/displaylist.mo b/docs/locales/ko/LC_MESSAGES/displaylist.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/displaylist.po b/docs/locales/ko/LC_MESSAGES/displaylist.po new file mode 100644 index 000000000..60d4601cb --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/displaylist.po @@ -0,0 +1,241 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 ff003cfb5c0b4ca9ba474a0f6e3841c2 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 c536d6f0052e4f9cbf11534486001461 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 2b6c43a92fad451db1603199ddd7c294 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../displaylist.rst:7 698bbcf656244694aa96f09767a54aa5 +msgid "DisplayList" +msgstr "" + +#: ../../displaylist.rst:9 2b6a249a9e6a46a482202e8b105e8ddc +msgid "" +"DisplayList is a list containing drawing commands (text, images, etc.). " +"The intent is two-fold:" +msgstr "" + +#: ../../displaylist.rst:11 01de3b874c654c729617cd5a69c98a06 +msgid "as a caching-mechanism to reduce parsing of a page" +msgstr "" + +#: ../../displaylist.rst:12 e47cc33899c24e9b8b48607d9cc55aca +msgid "" +"as a data structure in multi-threading setups, where one thread parses " +"the page and another one renders pages. This aspect is currently not " +"supported by PyMuPDF." +msgstr "" + +#: ../../displaylist.rst:14 ff6ed96e5e434d9ab8b7c046b2b5b89e +msgid "" +"A display list is populated with objects from a page, usually by " +"executing :meth:`Page.get_displaylist`. There also exists an independent " +"constructor." +msgstr "" + +#: ../../displaylist.rst:16 66dc12118dd1430c91493428b6adb3ca +msgid "" +"\"Replay\" the list (once or many times) by invoking one of its methods " +":meth:`~DisplayList.run`, :meth:`~DisplayList.get_pixmap` or " +":meth:`~DisplayList.get_textpage`." +msgstr "" + +#: ../../displaylist.rst:20 c6df8741dd9746c4849b6615f4787387 +msgid "**Method**" +msgstr "" + +#: ../../displaylist.rst:20 7f551f0499df4df7ad355142c819deef +msgid "**Short Description**" +msgstr "" + +#: ../../displaylist.rst:22 81094ba0fcee4f3dac4c1d13adccd9d9 +msgid ":meth:`~DisplayList.run`" +msgstr "" + +#: ../../displaylist.rst:22 790d819aba1b4a4e89cf7059456f3be1 +msgid "Run a display list through a device." +msgstr "" + +#: ../../displaylist.rst:23 c12a3766ae42430fadfe30df077ebef7 +msgid ":meth:`~DisplayList.get_pixmap`" +msgstr "" + +#: ../../displaylist.rst:23 a2c2be7f9085440cb858e4a52c0253c3 +msgid "generate a pixmap" +msgstr "" + +#: ../../displaylist.rst:24 2e841e7218aa459b955f952f63f85c7f +msgid ":meth:`~DisplayList.get_textpage`" +msgstr "" + +#: ../../displaylist.rst:24 4b5a1849844142eba8b0e00c4ea85c1b +msgid "generate a text page" +msgstr "" + +#: ../../displaylist.rst:25 e7f6a71e64b144b2bb150227a7b7183b +msgid ":attr:`~DisplayList.rect`" +msgstr "" + +#: ../../displaylist.rst:25 205d05395d674e39a9e4f0e958d3d06f +msgid "mediabox of the display list" +msgstr "" + +#: ../../displaylist.rst:29 4a42cea626fe4460b70834ce0af2a4ef +msgid "**Class API**" +msgstr "" + +#: ../../displaylist.rst:35 9e9d57cb314843a081adb93c9240ac5f +msgid "Create a new display list." +msgstr "" + +#: ../../displaylist.rst 02a4c577c3194a778a9d75f67212861e +#: 27616f064af541208365c4cf3260036b 27eb0863e4044881b0a7ef37d0114e28 +#: d4d3d713dc85432f9ebc95eac1f51a09 +msgid "Parameters" +msgstr "" + +#: ../../displaylist.rst:37 06aebf2ce5d941adbb8e7aa50ae0b2b8 +msgid "The page's rectangle." +msgstr "" + +#: ../../displaylist.rst 3e56029375ab4b639b13a2bd6b5dc316 +#: a18c2d343b454f2bb564792a3fc55a17 d0a557e9eef6429c8aa58d2cbac510a6 +msgid "Return type" +msgstr "" + +#: ../../displaylist.rst:40 b8ad61a1e5a44b7587e9e889a0f7b29a +msgid "``DisplayList``" +msgstr "" + +#: ../../displaylist.rst:44 ce5a41193477481c88976a823b4ad9d6 +msgid "" +"Run the display list through a device. The device will populate the " +"display list with its \"commands\" (i.e. text extraction or image " +"creation). The display list can later be used to \"read\" a page many " +"times without having to re-interpret it from the document file." +msgstr "" + +#: ../../displaylist.rst:46 2dc2aba3d46f4fc4a7820028e1a60253 +msgid "" +"You will most probably instead use one of the specialized run methods " +"below -- :meth:`get_pixmap` or :meth:`get_textpage`." +msgstr "" + +#: ../../displaylist.rst:48 6e70c4b85f91448c9a7c98c37c0a0ae4 +msgid "Device" +msgstr "" + +#: ../../displaylist.rst:51 2f667d2e56bf4e01898f21ff9eb28571 +msgid "Transformation matrix to apply to the display list contents." +msgstr "" + +#: ../../displaylist.rst:54 b64884bb37bd4618a66990bf4733f646 +msgid "" +"Only the part visible within this area will be considered when the list " +"is run through the device." +msgstr "" + +#: ../../displaylist.rst:65 ab527e51c453471f9f60eedf09b9d087 +msgid "Run the display list through a draw device and return a pixmap." +msgstr "" + +#: ../../displaylist.rst:67 61769985d519468490018723da292d0a +msgid "matrix to use. Default is the identity matrix." +msgstr "" + +#: ../../displaylist.rst:70 5932c2f43fdd4b4c8a0f5d2d7c994379 +msgid "the desired colorspace. Default is RGB." +msgstr "" + +#: ../../displaylist.rst:73 fbab40e0ab2c491e9dfb956c94981baa +msgid "determine whether or not (0, default) to include a transparency channel." +msgstr "" + +#: ../../displaylist.rst:75 466d20a9e3a74fb78536c5cce52c0423 +msgid "" +"restrict rendering to the intersection of this area with " +":attr:`DisplayList.rect`." +msgstr "" + +#: ../../displaylist.rst:77 757d1f9a21b041c6ae4ed0b958ce457b +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../displaylist.rst 65ed81ab27df4ce49e030837b6f76d44 +#: bc2f03674971487f858250a2cbe58732 +msgid "Returns" +msgstr "" + +#: ../../displaylist.rst:78 ea8ff1cc1cdf40caa3e75151ca6cb92c +msgid "pixmap of the display list." +msgstr "" + +#: ../../displaylist.rst:82 f854adb186fc469aa47d5bd62e907d4d +msgid "Run the display list through a text device and return a text page." +msgstr "" + +#: ../../displaylist.rst:84 a9b235a2d522430c93c09a55cb019b92 +msgid "" +"control which information is parsed into a text page. Default value in " +"PyMuPDF is `3 = TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE`, i.e." +" :data:`ligatures` are **passed through**, white spaces are **passed " +"through** (not translated to spaces), and images are **not included**. " +"See :ref:`TextPreserve`." +msgstr "" + +#: ../../displaylist.rst:86 daf0b2be9b6a4376b53e036006a9a7e3 +msgid ":ref:`TextPage`" +msgstr "" + +#: ../../displaylist.rst:87 4d6cd4f91f0e4964b02aad9a3db2ad8a +msgid "text page of the display list." +msgstr "" + +#: ../../displaylist.rst:91 e4d71370db2d4368b08b17d8436d7747 +msgid "" +"Contains the display list's mediabox. This will equal the page's " +"rectangle if it was created via :meth:`Page.get_displaylist`." +msgstr "" + +#: ../../displaylist.rst 0b6e65f6961f4c6b9882f9b9dfe93154 +msgid "type" +msgstr "" + +#: ../../displaylist.rst:93 f277dc21a3714454ae8f4cf4f1e5113d +msgid ":ref:`Rect`" +msgstr "" + +#: ../../footer.rst:46 e683ef7401754f0d941d78c8c96788e0 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/document-writer-class.mo b/docs/locales/ko/LC_MESSAGES/document-writer-class.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/document-writer-class.po b/docs/locales/ko/LC_MESSAGES/document-writer-class.po new file mode 100644 index 000000000..0cb05948f --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/document-writer-class.po @@ -0,0 +1,178 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 b5b4277baa2f45589bb33213fe28d133 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 99651177bb7e45218e911de8509ad3d7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 bfa8a6eb19134fd5a3ed2f7ff3e5a66b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../document-writer-class.rst:7 9ec19dc1ee5e4333ada6ca4a81b20c76 +msgid "DocumentWriter" +msgstr "" + +#: ../../document-writer-class.rst:9 a8428a7a09fa4d84ba14e57e1cd9933c +msgid "|pdf_only_class|" +msgstr "" + +#: ../../document-writer-class.rst:12 fdd84ae0909a4d88bcdceeefa2b39965 +msgid "New in v1.21.0" +msgstr "" + +#: ../../document-writer-class.rst:14 2d81b86330d54196bb5037872069be5e +msgid "" +"This class represents a utility which can output various :ref:`document " +"types supported by PyMuPDF`." +msgstr "" + +#: ../../document-writer-class.rst:16 f752c28f5ed14d28b92bcff7e31a12f8 +msgid "" +"In |PyMuPDF| only used for outputting PDF documents whose pages are " +"populated by :ref:`Story` DOMs." +msgstr "" + +#: ../../document-writer-class.rst:18 a51f0f40cbb0442f86dc705ad1fa8132 +msgid "" +"Using DocumentWriter_ also for other document types might happen in the " +"future." +msgstr "" + +#: ../../document-writer-class.rst:21 8c16e93aa1ce4c6e89c38ba3555943a2 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../document-writer-class.rst:21 078570c061cc494ab88a122d6f975a13 +msgid "**Short Description**" +msgstr "" + +#: ../../document-writer-class.rst:23 e28aaeaab2de42e2be303102f8816b38 +msgid ":meth:`DocumentWriter.begin_page`" +msgstr "" + +#: ../../document-writer-class.rst:23 46462fa63c0f497ca2b40e3aa34b103a +msgid "start a new output page" +msgstr "" + +#: ../../document-writer-class.rst:24 3fb4972774e64633aeb1fa920d332d0b +msgid ":meth:`DocumentWriter.end_page`" +msgstr "" + +#: ../../document-writer-class.rst:24 deca462b344444baaba815c62c4ccf49 +msgid "finish the current output page" +msgstr "" + +#: ../../document-writer-class.rst:25 e80c1d8e184c453bbec00d4725057371 +msgid ":meth:`DocumentWriter.close`" +msgstr "" + +#: ../../document-writer-class.rst:25 82b604112a0849018b6017d0b48a269a +msgid "flush pending output and close the file" +msgstr "" + +#: ../../document-writer-class.rst:28 77d9bb485f4345bc9066ac6cbf59d8a9 +msgid "**Class API**" +msgstr "" + +#: ../../document-writer-class.rst:34 ae20c5fbdb154f71a4aa713c0690c587 +msgid "" +"Create a document writer object, passing a Python file pointer or a file " +"path. Options to use when saving the file may also be passed." +msgstr "" + +#: ../../document-writer-class.rst:36 6124d2357c6a4781a34eddaaf0ca7dfa +msgid "This class can also be used as a Python context manager." +msgstr "" + +#: ../../document-writer-class.rst d2e1469751bd4c2e8536b3688da9abc9 +#: e1457a30002847edb1dba253d238fc76 +msgid "Parameters" +msgstr "" + +#: ../../document-writer-class.rst:38 3fd7620d0e854ab3bc313135cc0b7a22 +msgid "" +"the output file. This may be a string file name, or any Python file " +"pointer. .. note:: By using a `io.BytesIO()` object as file pointer, a " +"document writer can create a PDF in memory. Subsequently, this PDF can be" +" re-opened for input and be further manipulated. This technique is used " +"by several example scripts in :ref:`Stories recipes`." +msgstr "" + +#: ../../document-writer-class.rst:38 8206476585d647538a060a35c0be1961 +msgid "" +"the output file. This may be a string file name, or any Python file " +"pointer." +msgstr "" + +#: ../../document-writer-class.rst:40 5cc894a076804ce4bbaf88cd575d9067 +msgid "" +"By using a `io.BytesIO()` object as file pointer, a document writer can " +"create a PDF in memory. Subsequently, this PDF can be re-opened for input" +" and be further manipulated. This technique is used by several example " +"scripts in :ref:`Stories recipes`." +msgstr "" + +#: ../../document-writer-class.rst:42 8e2b505af0b34fec888ef183d42bc55a +msgid "" +"specify saving options for the output PDF. Typical are \"compress\" or " +"\"clean\". More possible values may be taken from help output of the " +"`mutool convert` CLI utility." +msgstr "" + +#: ../../document-writer-class.rst:46 f4aad7b430d043e1af763b51fe58f1be +msgid "Start a new output page of a given dimension." +msgstr "" + +#: ../../document-writer-class.rst:48 d97df503773b4b5d804d95f381624a79 +msgid "" +"a rectangle specifying the page size. After this method, output " +"operations may write content to the page." +msgstr "" + +#: ../../document-writer-class.rst:52 3357a3e14b5c4681a572cf35f2056a51 +msgid "" +"Finish a page. This flushes any pending data and appends the page to the " +"output document." +msgstr "" + +#: ../../document-writer-class.rst:56 b42cc189417341c8939b89cb1ea93a07 +msgid "" +"Close the output file. This method is required for writing any pending " +"data." +msgstr "" + +#: ../../document-writer-class.rst:58 f5b95d821dfe45629904bb96a9fb09e4 +msgid "For usage examples consult the section of :ref:`Story`." +msgstr "" + +#: ../../footer.rst:46 de69d88972544cf695683e1f78897d93 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/document.mo b/docs/locales/ko/LC_MESSAGES/document.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/document.po b/docs/locales/ko/LC_MESSAGES/document.po new file mode 100644 index 000000000..7ee50322f --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/document.po @@ -0,0 +1,5714 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 43b4736175594b648a25f0be7fc42424 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 8a34ee99def04d0395e3977c82a70fb3 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 bf3099d94f984c22b00ddb5b985eef67 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../document.rst:7 e9a8d6bb8a584459bedbb314700c7bc7 +msgid "Document" +msgstr "" + +#: ../../document.rst:11 3a88bb195d634bd1b5bd4e541a3d9a7e +msgid "" +"This class represents a document. It can be constructed from a file or " +"from memory." +msgstr "" + +#: ../../document.rst:13 f093a1011e1247d4b515a122f0025bb6 +msgid "" +"There exists the alias *open* for this class, i.e. " +"`pymupdf.Document(...)` and `pymupdf.open(...)` do exactly the same " +"thing." +msgstr "" + +#: ../../document.rst:15 77bb8938b5534efcb6b05b4559346d2f +msgid "For details on **embedded files** refer to Appendix 3." +msgstr "" + +#: ../../document.rst:19 ed504bde84854a89962d6285ce0c78ac +msgid "" +"Starting with v1.17.0, a new page addressing mechanism for **EPUB files " +"only** is supported. This document type is internally organized in " +"chapters such that pages can most efficiently be found by their so-called" +" \"location\". The location is a tuple *(chapter, pno)* consisting of the" +" chapter number and the page number **in that chapter**. Both numbers are" +" zero-based." +msgstr "" + +#: ../../document.rst:21 15f2eedab10243529b4aa77b9b0c2f8b +msgid "" +"While it is still possible to locate a page via its (absolute) number, " +"doing so may mean that the complete EPUB document must be laid out before" +" the page can be addressed. This may have a significant performance " +"impact if the document is very large. Using the page's *(chapter, pno)* " +"prevents this from happening." +msgstr "" + +#: ../../document.rst:23 a9abb22b0c094890a8af3b64d7d76262 +msgid "" +"To maintain a consistent API, PyMuPDF supports the page *location* syntax" +" for **all file types** -- documents without this feature simply have " +"just one chapter. :meth:`Document.load_page` and the equivalent index " +"access now also support a *location* argument." +msgstr "" + +#: ../../document.rst:25 9d716392e88a47ecaad2863ac6b61457 +msgid "" +"There are a number of methods for converting between page numbers and " +"locations, for determining the chapter count, the page count per chapter," +" for computing the next and the previous locations, and the last page " +"location of a document." +msgstr "" + +#: ../../document.rst:28 add4a5f06f184d7ebc7b45e419cb3a63 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../document.rst:28 5b71e73348ff43b28c42f734ed068fbd +msgid "**Short Description**" +msgstr "" + +#: ../../document.rst:30 58a8217257e948d98b9b26ab120c3aea +msgid ":meth:`Document.add_layer`" +msgstr "" + +#: ../../document.rst:30 39da0dbb831848f1837f2799cac832e1 +msgid "PDF only: make new optional content configuration" +msgstr "" + +#: ../../document.rst:31 d82b8d9a76b246c0a8be037689fbfa06 +msgid ":meth:`Document.add_ocg`" +msgstr "" + +#: ../../document.rst:31 e5ebdc27906c4b5c8896ae1c353b4787 +msgid "PDF only: add new optional content group" +msgstr "" + +#: ../../document.rst:32 e8f6741a63574c62b27f98b22177e828 +msgid ":meth:`Document.authenticate`" +msgstr "" + +#: ../../document.rst:32 defb0d7ebb00414b928eb0e592ae812e +msgid "gain access to an encrypted document" +msgstr "" + +#: ../../document.rst:33 b11af2c7c8694f3fa35bab1d987786a2 +msgid ":meth:`Document.bake`" +msgstr "" + +#: ../../document.rst:33 cf7e8fd44e594a9c90ab7a1833253b0a +msgid "PDF only: make annotations / fields permanent content" +msgstr "" + +#: ../../document.rst:34 20cad3262c664426bb762687b9c4bbd9 +msgid ":meth:`Document.can_save_incrementally`" +msgstr "" + +#: ../../document.rst:34 7b023782514349ee95ef2e72917994c8 +msgid "check if incremental save is possible" +msgstr "" + +#: ../../document.rst:35 dc05c297ca0b4aefa1f1b7c427aa28c5 +msgid ":meth:`Document.chapter_page_count`" +msgstr "" + +#: ../../document.rst:35 4574736b834e4e998c95dfdb960afd78 +msgid "number of pages in chapter" +msgstr "" + +#: ../../document.rst:36 12d37dd646db4d7094ac889b471a0ef8 +msgid ":meth:`Document.close`" +msgstr "" + +#: ../../document.rst:36 4ce3e236e34a4972bcc35cabc61b8cb1 +msgid "close the document" +msgstr "" + +#: ../../document.rst:37 1ba7c8f336184fe5bc4a0d56e99b08ec +msgid ":meth:`Document.convert_to_pdf`" +msgstr "" + +#: ../../document.rst:37 cc1e97d3992c4552aa43c0f0c4f6807b +msgid "write a PDF version to memory" +msgstr "" + +#: ../../document.rst:38 9d859e8c86fa4677925790093524225b +msgid ":meth:`Document.copy_page`" +msgstr "" + +#: ../../document.rst:38 466c568ee935410294a9e211b1e10040 +msgid "PDF only: copy a page reference" +msgstr "" + +#: ../../document.rst:39 3905e8ae3b06492b9fe02446094b4407 +msgid ":meth:`Document.del_toc_item`" +msgstr "" + +#: ../../document.rst:39 9fe2cfba44bd4f73abd8e1af06023fc4 +msgid "PDF only: remove a single TOC item" +msgstr "" + +#: ../../document.rst:40 2e8f53ae81b44437bb7e36151dfdf856 +msgid ":meth:`Document.delete_page`" +msgstr "" + +#: ../../document.rst:40 87da7bfbf0754384ad4bd489a1b62fb7 +msgid "PDF only: delete a page" +msgstr "" + +#: ../../document.rst:41 ac488459c0594d6cb9b355f29f9f1434 +msgid ":meth:`Document.delete_pages`" +msgstr "" + +#: ../../document.rst:41 5ef25e49d8ed498fb185e70e5bbff4e3 +msgid "PDF only: delete multiple pages" +msgstr "" + +#: ../../document.rst:42 c2175653712c47fca1ee1cfaba870c91 +msgid ":meth:`Document.embfile_add`" +msgstr "" + +#: ../../document.rst:42 5fcdd01035ed45c189614dd16f46d767 +msgid "PDF only: add a new embedded file from buffer" +msgstr "" + +#: ../../document.rst:43 95b5b715b6224242a7dfafbc0041b9bd +msgid ":meth:`Document.embfile_count`" +msgstr "" + +#: ../../document.rst:43 8f3b00e038294a4aa1b2634f512da7dc +msgid "PDF only: number of embedded files" +msgstr "" + +#: ../../document.rst:44 d39ae28e4b06484dac1e6ba1528cce4c +msgid ":meth:`Document.embfile_del`" +msgstr "" + +#: ../../document.rst:44 7649e79372904462bbdd49f9ab148373 +msgid "PDF only: delete an embedded file entry" +msgstr "" + +#: ../../document.rst:45 964881d13cae457589969e927b3b7163 +msgid ":meth:`Document.embfile_get`" +msgstr "" + +#: ../../document.rst:45 93f0d4af7e2f49c08cd5565455a16206 +msgid "PDF only: extract an embedded file buffer" +msgstr "" + +#: ../../document.rst:46 e82abf28eaa84b889bf8baed0b1f0132 +msgid ":meth:`Document.embfile_info`" +msgstr "" + +#: ../../document.rst:46 5d46af817ace455296fb97fec4708e1d +msgid "PDF only: metadata of an embedded file" +msgstr "" + +#: ../../document.rst:47 24b4158b60f6487290d8264abb16f507 +msgid ":meth:`Document.embfile_names`" +msgstr "" + +#: ../../document.rst:47 a79a87dd6905428b8c336bc3a5cbfe4c +msgid "PDF only: list of embedded files" +msgstr "" + +#: ../../document.rst:48 d1405add281648888c3aec36f1efa31e +msgid ":meth:`Document.embfile_upd`" +msgstr "" + +#: ../../document.rst:48 3109aa1e33fe4baf82b62abfe73bf1c8 +msgid "PDF only: change an embedded file" +msgstr "" + +#: ../../document.rst:49 df47ab4f60c34106a30295d4248cecc3 +msgid ":meth:`Document.extract_font`" +msgstr "" + +#: ../../document.rst:49 a57f7fb1ecec44c1bef98124eabe2af5 +msgid "PDF only: extract a font by :data:`xref`" +msgstr "" + +#: ../../document.rst:50 74fa6cb6cbf94754807bc74f0001e10c +msgid ":meth:`Document.extract_image`" +msgstr "" + +#: ../../document.rst:50 ff6d3d0e82a64512ad8964b9c9a0628b +msgid "PDF only: extract an embedded image by :data:`xref`" +msgstr "" + +#: ../../document.rst:51 78f28501b7974812a1cd4f5830cd36dc +msgid ":meth:`Document.ez_save`" +msgstr "" + +#: ../../document.rst:51 4a02f4a72a144d43b1754ec32416bb64 +msgid "PDF only: :meth:`Document.save` with different defaults" +msgstr "" + +#: ../../document.rst:52 3154749d16cf48fe96a7f9c8425bfbf6 +msgid ":meth:`Document.find_bookmark`" +msgstr "" + +#: ../../document.rst:52 143e38f832604238a5f900679410b485 +msgid "retrieve page location after laid out document" +msgstr "" + +#: ../../document.rst:53 b271556405414cbaa9d1b57ab58b468c +msgid ":meth:`Document.fullcopy_page`" +msgstr "" + +#: ../../document.rst:53 e7f3a9b06b2c485c9be33faed6e5fe7c +msgid "PDF only: duplicate a page" +msgstr "" + +#: ../../document.rst:54 7bbeb29bdb63453191c3222b3e097f13 +msgid ":meth:`Document.get_layer`" +msgstr "" + +#: ../../document.rst:54 04bc7e5eed374ce89ccbc02847258286 +msgid "PDF only: lists of OCGs in ON, OFF, RBGroups" +msgstr "" + +#: ../../document.rst:55 970f7427be2f4166889a754bf4d7c025 +msgid ":meth:`Document.get_layers`" +msgstr "" + +#: ../../document.rst:55 5697cfd27e9d4b869c8dd5d641f0d33c +msgid "PDF only: list of optional content configurations" +msgstr "" + +#: ../../document.rst:56 78785446fbb14cc19554b28a594181f5 +msgid ":meth:`Document.get_oc`" +msgstr "" + +#: ../../document.rst:56 2556f20aa201451e8bf65b2c20eada2f +msgid "PDF only: get OCG /OCMD xref of image / form xobject" +msgstr "" + +#: ../../document.rst:57 258b50d4a33e45028451dc2a77148f6f +msgid ":meth:`Document.get_ocgs`" +msgstr "" + +#: ../../document.rst:57 afcf637c1119411594869f521a33bd71 +msgid "PDF only: info on all optional content groups" +msgstr "" + +#: ../../document.rst:58 b9e9fda4a6094db0b0ae6679e3068cce +msgid ":meth:`Document.get_ocmd`" +msgstr "" + +#: ../../document.rst:58 2f8facbc52ee427597b065b7b3e02635 +msgid "PDF only: retrieve definition of an :data:`OCMD`" +msgstr "" + +#: ../../document.rst:59 c07ac7981fea4d33bb0144049e3239ee +msgid ":meth:`Document.get_page_fonts`" +msgstr "" + +#: ../../document.rst:59 3236ca270e6648a08aba4bdba5284c5f +msgid "PDF only: list of fonts referenced by a page" +msgstr "" + +#: ../../document.rst:60 644a31787f044848869b3f02a9340f62 +msgid ":meth:`Document.get_page_images`" +msgstr "" + +#: ../../document.rst:60 6c413f170ae84b1d869a89042deb238e +msgid "PDF only: list of images referenced by a page" +msgstr "" + +#: ../../document.rst:61 0bed94104d8144f38c441256e6514eb2 +msgid ":meth:`Document.get_page_labels`" +msgstr "" + +#: ../../document.rst:61 41f65092ee164fc297f86373c5ab102b +msgid "PDF only: list of page label definitions" +msgstr "" + +#: ../../document.rst:62 862369882af44617a8819906a976bc16 +msgid ":meth:`Document.get_page_numbers`" +msgstr "" + +#: ../../document.rst:62 8615e9cd79d941a78c49c2ce9ac0c575 +msgid "PDF only: get page numbers having a given label" +msgstr "" + +#: ../../document.rst:63 dad59db4773e4ee9a396ad31b592ad81 +msgid ":meth:`Document.get_page_pixmap`" +msgstr "" + +#: ../../document.rst:63 cbe4b263ffeb44519224759f35a7b530 +msgid "create a pixmap of a page by page number" +msgstr "" + +#: ../../document.rst:64 876f95670aed4e86bbdd960315d3bc1b +msgid ":meth:`Document.get_page_text`" +msgstr "" + +#: ../../document.rst:64 be31a13a38bd43c6913b7a80c953ee33 +msgid "extract the text of a page by page number" +msgstr "" + +#: ../../document.rst:65 978642d705ed459086758fef87cc6513 +msgid ":meth:`Document.get_page_xobjects`" +msgstr "" + +#: ../../document.rst:65 9ce6ba28bcd84aa2a35ce24bb1699f48 +msgid "PDF only: list of XObjects referenced by a page" +msgstr "" + +#: ../../document.rst:66 b597ff3290d34f83bf1b564ee7d148f8 +msgid ":meth:`Document.get_sigflags`" +msgstr "" + +#: ../../document.rst:66 16ae9c3a7a1e428283fdbab18375d352 +msgid "PDF only: determine signature state" +msgstr "" + +#: ../../document.rst:67 87689643a05c46b4868a2969cda519ea +msgid ":meth:`Document.get_toc`" +msgstr "" + +#: ../../document.rst:67 031806a18b7d4bc0a5ca012eda1b7dbb +msgid "extract the table of contents" +msgstr "" + +#: ../../document.rst:68 5cfc41d652204ddc955125491bc8ba44 +msgid ":meth:`Document.get_xml_metadata`" +msgstr "" + +#: ../../document.rst:68 08d4b18bcfad4ff28f56780ac161ad6d +msgid "PDF only: read the XML metadata" +msgstr "" + +#: ../../document.rst:69 ff2b33d4bb2c42f4bb77426a3e22dbd7 +msgid ":meth:`Document.has_annots`" +msgstr "" + +#: ../../document.rst:69 1e8a505220e24e65a8c808697aa64afa +msgid "PDF only: check if PDF contains any annots" +msgstr "" + +#: ../../document.rst:70 38f7a0c4a98d4ecb90798f4830568061 +msgid ":meth:`Document.has_links`" +msgstr "" + +#: ../../document.rst:70 948d1a0444544a568098d8f5abcbe626 +msgid "PDF only: check if PDF contains any links" +msgstr "" + +#: ../../document.rst:71 d1ce6cf6cce1457caabc424ad112e57e +msgid ":meth:`Document.insert_page`" +msgstr "" + +#: ../../document.rst:71 fff75002fe13475b84fc3f18e1ff8ada +msgid "PDF only: insert a new page" +msgstr "" + +#: ../../document.rst:72 cf8bb81eaa8a48ea9d5a1fbdc1a7ab5a +msgid ":meth:`Document.insert_pdf`" +msgstr "" + +#: ../../document.rst:72 289d2e5d58fe42a1a42bcf72bf0d6ff8 +msgid "PDF only: insert pages from another PDF" +msgstr "" + +#: ../../document.rst:73 8cd752947d534369a28e538b9fb6853c +msgid ":meth:`Document.insert_file`" +msgstr "" + +#: ../../document.rst:73 5cc1ad88bf844c96bf15f6586fd84cb8 +msgid "PDF only: insert pages from arbitrary document" +msgstr "" + +#: ../../document.rst:74 8178801a98ca4bfca4dc9b6ad47ba89f +msgid ":meth:`Document.journal_can_do`" +msgstr "" + +#: ../../document.rst:74 2c867cd421094f95bc050a133eafad70 +msgid "PDF only: which journal actions are possible" +msgstr "" + +#: ../../document.rst:75 283b597442494a8ba9ae9b5bec8bd8fa +msgid ":meth:`Document.journal_enable`" +msgstr "" + +#: ../../document.rst:75 8416ce80179c432d8919be5ce1cb0af6 +msgid "PDF only: enables journalling for the document" +msgstr "" + +#: ../../document.rst:76 6b953871829946af9c2773facdc83609 +msgid ":meth:`Document.journal_load`" +msgstr "" + +#: ../../document.rst:76 180edecda8984b7cb87a6274ea19f89a +msgid "PDF only: load journal from a file" +msgstr "" + +#: ../../document.rst:77 8391be9d1b0441a0910e17782c0b15ef +msgid ":meth:`Document.journal_op_name`" +msgstr "" + +#: ../../document.rst:77 a817a795918345018097f192480ce45b +msgid "PDF only: return name of a journalling step" +msgstr "" + +#: ../../document.rst:78 bdb35edbe9394a7fb719c39e4a98e434 +msgid ":meth:`Document.journal_position`" +msgstr "" + +#: ../../document.rst:78 22c8acf5b55d4901a0706583047f98ac +msgid "PDF only: return journalling status" +msgstr "" + +#: ../../document.rst:79 bfb92de11a49415b9a637a6bdd41a08a +msgid ":meth:`Document.journal_redo`" +msgstr "" + +#: ../../document.rst:79 941f312fd6dc434bb3e7bb22b43982f9 +msgid "PDF only: redo current operation" +msgstr "" + +#: ../../document.rst:80 e39c415d7d064a2ebd5d1597dbd8837e +msgid ":meth:`Document.journal_save`" +msgstr "" + +#: ../../document.rst:80 b584d240bee04b9d8dbaa84d5f8ace78 +msgid "PDF only: save journal to a file" +msgstr "" + +#: ../../document.rst:81 377ee634b1b64808a581ac868f85eae3 +msgid ":meth:`Document.journal_start_op`" +msgstr "" + +#: ../../document.rst:81 a0ca366002234f6886d132221ae925fc +msgid "PDF only: start an \"operation\" giving it a name" +msgstr "" + +#: ../../document.rst:82 10f762396c4f489d8414e1f85d21c394 +msgid ":meth:`Document.journal_stop_op`" +msgstr "" + +#: ../../document.rst:82 ba97728a122047fd83681c7e71538f60 +msgid "PDF only: end current operation" +msgstr "" + +#: ../../document.rst:83 84244b3958754e2f8e60e088d4e9eaf8 +msgid ":meth:`Document.journal_undo`" +msgstr "" + +#: ../../document.rst:83 ac3708bf674842c5802292badc7ce153 +msgid "PDF only: undo current operation" +msgstr "" + +#: ../../document.rst:84 e59cb5b39d03491fb5bae5b59bbfcb28 +msgid ":meth:`Document.layer_ui_configs`" +msgstr "" + +#: ../../document.rst:84 d9375c2112274868896c4d42fc331428 +msgid "PDF only: list of optional content intents" +msgstr "" + +#: ../../document.rst:85 407287d007564aa49ddd7d761d16a854 +msgid ":meth:`Document.layout`" +msgstr "" + +#: ../../document.rst:85 24b905752b8f4103b44d7a072952a14d +msgid "re-paginate the document (if supported)" +msgstr "" + +#: ../../document.rst:86 05540cbb5a6844d2b0066a9329eec704 +msgid ":meth:`Document.load_page`" +msgstr "" + +#: ../../document.rst:86 d027aa3f5e7f40449d955369ac59be65 +msgid "read a page" +msgstr "" + +#: ../../document.rst:87 0f4a3571b20e46c8a8b0a056ca69d9c4 +msgid ":meth:`Document.make_bookmark`" +msgstr "" + +#: ../../document.rst:87 3b3bccdfd1ea485b9725001d0321b5c5 +msgid "create a page pointer in reflowable documents" +msgstr "" + +#: ../../document.rst:88 41b1ca13914b4f2c945a7fed504d9517 +msgid ":meth:`Document.move_page`" +msgstr "" + +#: ../../document.rst:88 00c89823b1274ff99f648f5b2c87ef02 +msgid "PDF only: move a page to different location in doc" +msgstr "" + +#: ../../document.rst:89 e84ed54f2d154b439faeaab883f5e93b +msgid ":meth:`Document.need_appearances`" +msgstr "" + +#: ../../document.rst:89 676fd03bdf7e409b984fe0faa6d88a76 +msgid "PDF only: get/set `/NeedAppearances` property" +msgstr "" + +#: ../../document.rst:90 669abfabfa6b490aae5c20a6028b2af7 +msgid ":meth:`Document.new_page`" +msgstr "" + +#: ../../document.rst:90 8535930473244385bd64d7584523da86 +msgid "PDF only: insert a new empty page" +msgstr "" + +#: ../../document.rst:91 8706fe76caf44c4a9380d5fc92e71903 +msgid ":meth:`Document.next_location`" +msgstr "" + +#: ../../document.rst:91 da98e11be3fc4193abf54b8f9d212634 +msgid "return (chapter, pno) of following page" +msgstr "" + +#: ../../document.rst:92 22873ddadc3b468c8092ae45a23efe56 +msgid ":meth:`Document.outline_xref`" +msgstr "" + +#: ../../document.rst:92 939075b4724544878a76f87d8dd1283e +msgid "PDF only: :data:`xref` a TOC item" +msgstr "" + +#: ../../document.rst:93 6722c38d0d78497091278cbd1e7b0d6b +msgid ":meth:`Document.page_cropbox`" +msgstr "" + +#: ../../document.rst:93 04b54737e5ca450ca0f3e1483639382d +msgid "PDF only: the unrotated page rectangle" +msgstr "" + +#: ../../document.rst:94 af8716cd59ac46be87f21422bc3f8c5e +msgid ":meth:`Document.page_xref`" +msgstr "" + +#: ../../document.rst:94 caf5f921388245b5b5f9b49940c056a7 +msgid "PDF only: :data:`xref` of a page number" +msgstr "" + +#: ../../document.rst:95 571b7ea1b2ed4a0da1e2203deda7aa8d +msgid ":meth:`Document.pages`" +msgstr "" + +#: ../../document.rst:95 278ecce412fc4bc58337a84b851ec028 +msgid "iterator over a page range" +msgstr "" + +#: ../../document.rst:96 b85d12a3953342a89d8ffe83eb92ebf9 +msgid ":meth:`Document.pdf_catalog`" +msgstr "" + +#: ../../document.rst:96 14e5593718754a4da76d72a4bd33e7bd +msgid "PDF only: :data:`xref` of catalog (root)" +msgstr "" + +#: ../../document.rst:97 c11a1743ca684d3ca89d53ff36f33438 +msgid ":meth:`Document.pdf_trailer`" +msgstr "" + +#: ../../document.rst:97 8108cc2e14de4c0c948f8ea439c4819c +msgid "PDF only: trailer source" +msgstr "" + +#: ../../document.rst:98 b323bdef35c64155905c4cc4403eac19 +msgid ":meth:`Document.prev_location`" +msgstr "" + +#: ../../document.rst:98 7617a1f4aac44dddbcc6f92b8d6c45c0 +msgid "return (chapter, pno) of preceding page" +msgstr "" + +#: ../../document.rst:99 dedcbf0566f74df9aad30be8105ef527 +msgid ":meth:`Document.rewrite_images`" +msgstr "" + +#: ../../document.rst:99 974b6b3159ed459e8e279788df4cced8 +msgid "PDF only: rewrite / extra compression for images" +msgstr "" + +#: ../../document.rst:100 d2f820953f0446d8be040f143bfd61fb +msgid ":meth:`Document.recolor`" +msgstr "" + +#: ../../document.rst:100 feaa2f0d59f5474facff3305163251d5 +msgid "PDF only: execute :meth:`Page.recolor` for all pages" +msgstr "" + +#: ../../document.rst:101 51ab18b8dc104059b4b26a3cc37ee5a2 +msgid ":meth:`Document.reload_page`" +msgstr "" + +#: ../../document.rst:101 82cadc34466a4036abf146722491a023 +msgid "PDF only: provide a new copy of a page" +msgstr "" + +#: ../../document.rst:102 ba53f93a3acc4fbd883b60252e16bf2d +msgid ":meth:`Document.resolve_names`" +msgstr "" + +#: ../../document.rst:102 ea55d63d05fa4c9b897eac4f3ec3a2e4 +msgid "PDF only: Convert destination names into a Python dict" +msgstr "" + +#: ../../document.rst:103 1f12d96d086840e0b6a9c584969fe937 +msgid ":meth:`Document.save`" +msgstr "" + +#: ../../document.rst:103 bcb05fe7cc084d47a2a47419224e8e50 +msgid "PDF only: save the document" +msgstr "" + +#: ../../document.rst:104 c17d570731634e2899a9fef7b19f17b8 +msgid ":meth:`Document.saveIncr`" +msgstr "" + +#: ../../document.rst:104 c0269e939b344fd597a6956b62bbf2bb +msgid "PDF only: save the document incrementally" +msgstr "" + +#: ../../document.rst:105 96f92a2b46f64f5d93f97b5e38e2e0a7 +msgid ":meth:`Document.scrub`" +msgstr "" + +#: ../../document.rst:105 1ded1c45911c40bb88b0e8789286f7a1 +msgid "PDF only: remove sensitive data" +msgstr "" + +#: ../../document.rst:106 f6dacc40814f47b2a61ebd3fef801051 +msgid ":meth:`Document.search_page_for`" +msgstr "" + +#: ../../document.rst:106 f416a3e245d2413e9b92e1ac94a34eb9 +msgid "search for a string on a page" +msgstr "" + +#: ../../document.rst:107 5b7fa0d81fc6489fb3aa22c2f9532987 +msgid ":meth:`Document.select`" +msgstr "" + +#: ../../document.rst:107 1b7f3ad42e3748a9bc0b1c819ebfb37f +msgid "PDF only: select a subset of pages" +msgstr "" + +#: ../../document.rst:108 a1bef9a0f9aa4faf97bc5a4d7dd2c439 +msgid ":meth:`Document.set_layer_ui_config`" +msgstr "" + +#: ../../document.rst:108 4cabc4e8de1547b6933c5571b6715a17 +msgid "PDF only: set OCG visibility temporarily" +msgstr "" + +#: ../../document.rst:109 8f9c6e7f590c4b078b22910ae021833f +msgid ":meth:`Document.set_layer`" +msgstr "" + +#: ../../document.rst:109 cccc69e7410e4bb695682ffd1ad32d9f +msgid "PDF only: mass changing OCG states" +msgstr "" + +#: ../../document.rst:110 05d50371618b43b4aa923361a11eb0b5 +msgid ":meth:`Document.set_markinfo`" +msgstr "" + +#: ../../document.rst:110 a7ac2c7a68e546a49bd24c64b96a58e6 +msgid "PDF only: set the MarkInfo values" +msgstr "" + +#: ../../document.rst:111 b936b94e1de847abaf79d0a2b034e2bc +msgid ":meth:`Document.set_metadata`" +msgstr "" + +#: ../../document.rst:111 ab7be95036d144ae96c077e8c019ae15 +msgid "PDF only: set the metadata" +msgstr "" + +#: ../../document.rst:112 e1375d72fe6846d9a08e10a4ee9927c7 +msgid ":meth:`Document.set_oc`" +msgstr "" + +#: ../../document.rst:112 f3c50c202d7c4cdf837fb18d8b5c40cf +msgid "PDF only: attach OCG/OCMD to image / form xobject" +msgstr "" + +#: ../../document.rst:113 2fdc13211d934a72829f8f6851b833e5 +msgid ":meth:`Document.set_ocmd`" +msgstr "" + +#: ../../document.rst:113 77f29139986644ce953f3f1afce1e36c +msgid "PDF only: create or update an :data:`OCMD`" +msgstr "" + +#: ../../document.rst:114 56b1be1913b8456b8af7a92efb5bce6c +msgid ":meth:`Document.set_page_labels`" +msgstr "" + +#: ../../document.rst:114 e2ee4ffee5244f369f11d507a9b056ac +msgid "PDF only: add/update page label definitions" +msgstr "" + +#: ../../document.rst:115 2a236deda376461d8e02dd777aa86a45 +msgid ":meth:`Document.set_pagemode`" +msgstr "" + +#: ../../document.rst:115 11e3ef0ce8e7442c849b83550cdd06e9 +msgid "PDF only: set the PageMode" +msgstr "" + +#: ../../document.rst:116 32bd955e107e410b89537cae1c991d61 +msgid ":meth:`Document.set_pagelayout`" +msgstr "" + +#: ../../document.rst:116 4a6c5debab1643529562d2e5e7f9ec92 +msgid "PDF only: set the PageLayout" +msgstr "" + +#: ../../document.rst:117 2144e914bdaf45a399949c3c3df56bb5 +msgid ":meth:`Document.set_toc_item`" +msgstr "" + +#: ../../document.rst:117 c03b6a76e34d4c29b288cefc04600f0d +msgid "PDF only: change a single TOC item" +msgstr "" + +#: ../../document.rst:118 f8fd3e681d2e40dbbd45e3b30913de56 +msgid ":meth:`Document.set_toc`" +msgstr "" + +#: ../../document.rst:118 c25e27e0effa448d8988947b633e20cb +msgid "PDF only: set the table of contents (TOC)" +msgstr "" + +#: ../../document.rst:119 a304c7f00f824dd88396f97ef442c347 +msgid ":meth:`Document.set_xml_metadata`" +msgstr "" + +#: ../../document.rst:119 e2419cc26cce4233b4a8273cac482f57 +msgid "PDF only: create or update document XML metadata" +msgstr "" + +#: ../../document.rst:120 2e11620ea9d6476e9a56a93b2c3c2d5d +msgid ":meth:`Document.subset_fonts`" +msgstr "" + +#: ../../document.rst:120 ae59a4fbc18b440eb2a7542d14a4c882 +msgid "PDF only: create font subsets" +msgstr "" + +#: ../../document.rst:121 85fa8be173614f9395fad32a48d9021b +msgid ":meth:`Document.switch_layer`" +msgstr "" + +#: ../../document.rst:121 e2bf17afb8eb44fb8d394c7da1b04185 +msgid "PDF only: activate OC configuration" +msgstr "" + +#: ../../document.rst:122 7cf8c2ba034d430383e1bbf0dfe7f8e5 +msgid ":meth:`Document.tobytes`" +msgstr "" + +#: ../../document.rst:122 96ef34ce12fa4117920b6d9a451bfec0 +msgid "PDF only: writes document to memory" +msgstr "" + +#: ../../document.rst:123 9c18cc7be02846ceabcc47cb305f4e32 +msgid ":meth:`Document.xref_copy`" +msgstr "" + +#: ../../document.rst:123 1d344c6f485149d08e8cbcb30f14bbfd +msgid "PDF only: copy a PDF dictionary to another :data:`xref`" +msgstr "" + +#: ../../document.rst:124 d40fcf719f7745d0988864bbd78a0702 +msgid ":meth:`Document.xref_get_key`" +msgstr "" + +#: ../../document.rst:124 73c52ddd3eee43a0a4ee02fd0c0654c6 +msgid "PDF only: get the value of a dictionary key" +msgstr "" + +#: ../../document.rst:125 573343d13a364c9c8d257a1d98a89f3e +msgid ":meth:`Document.xref_get_keys`" +msgstr "" + +#: ../../document.rst:125 81c53f9f870f4f59a618391c6a2cb5c4 +msgid "PDF only: list the keys of object at :data:`xref`" +msgstr "" + +#: ../../document.rst:126 76398d72d880411cb46bd73eda703503 +msgid ":meth:`Document.xref_object`" +msgstr "" + +#: ../../document.rst:126 53a6e32b9e6b411ebcf5c8e3f096bd6c +msgid "PDF only: get the definition source of :data:`xref`" +msgstr "" + +#: ../../document.rst:127 e66235038073450c9f5a839095cac4c4 +msgid ":meth:`Document.xref_set_key`" +msgstr "" + +#: ../../document.rst:127 8204850e62a846f88fbffa42e2637b9a +msgid "PDF only: set the value of a dictionary key" +msgstr "" + +#: ../../document.rst:128 fd30d01999014bbab567b38ddb4353f0 +msgid ":meth:`Document.xref_stream_raw`" +msgstr "" + +#: ../../document.rst:128 99ccc2453ba946e7831daec6b7581cf6 +msgid "PDF only: raw stream source at :data:`xref`" +msgstr "" + +#: ../../document.rst:129 413b3807f32f45a580cca989305c9008 +msgid ":meth:`Document.xref_xml_metadata`" +msgstr "" + +#: ../../document.rst:129 fe64670c8c334c77b851161354240171 +msgid "PDF only: :data:`xref` of XML metadata" +msgstr "" + +#: ../../document.rst:130 9db7fc2a6be446c9a0d597777ccb3db5 +msgid ":attr:`Document.chapter_count`" +msgstr "" + +#: ../../document.rst:130 d81d64b31cb94d3caeca06bd43e1e31e +msgid "number of chapters" +msgstr "" + +#: ../../document.rst:131 88fa80583a8148bdb519161be5facabe +msgid ":attr:`Document.FormFonts`" +msgstr "" + +#: ../../document.rst:131 822a58355d084a57bf43f78079ad7109 +msgid "PDF only: list of global widget fonts" +msgstr "" + +#: ../../document.rst:132 3187d844634044e2978d4d650d2b453e +msgid ":attr:`Document.is_closed`" +msgstr "" + +#: ../../document.rst:132 58a7a1c8d488427daf9b1a3fd1b0baa1 +msgid "has document been closed?" +msgstr "" + +#: ../../document.rst:133 c6f2bfcdd3db47b9ae0572f8c6b52068 +msgid ":attr:`Document.is_dirty`" +msgstr "" + +#: ../../document.rst:133 c18fd15219484228bbb05b979d2fe93a +msgid "PDF only: has document been changed yet?" +msgstr "" + +#: ../../document.rst:134 c0b6d32bf1e4495dbf4add91153500f6 +msgid ":attr:`Document.is_encrypted`" +msgstr "" + +#: ../../document.rst:134 8d7f114a51b14761b0bad0ab267c341c +msgid "document (still) encrypted?" +msgstr "" + +#: ../../document.rst:135 1d1dc29fc5324c8b9c4c46188293b390 +msgid ":attr:`Document.is_fast_webaccess`" +msgstr "" + +#: ../../document.rst:135 e076fbc4f4f4419f8dfdbbc78e750bc2 +msgid "is PDF linearized?" +msgstr "" + +#: ../../document.rst:136 4c5d509be68646a2a5e6d9288e486e9d +msgid ":attr:`Document.is_form_pdf`" +msgstr "" + +#: ../../document.rst:136 7587e6c5fa74464484f04d42b82a8154 +msgid "is this a Form PDF?" +msgstr "" + +#: ../../document.rst:137 fc1951f5f9b644eca1bf32692e0a1084 +msgid ":attr:`Document.is_pdf`" +msgstr "" + +#: ../../document.rst:137 6744e037129540b5a068f48e079dd435 +msgid "is this a PDF?" +msgstr "" + +#: ../../document.rst:138 03fdede084af4116b4d1587c067ff1f9 +msgid ":attr:`Document.is_reflowable`" +msgstr "" + +#: ../../document.rst:138 4a6c359253dd4c9690d177ea6a3b6683 +msgid "is this a reflowable document?" +msgstr "" + +#: ../../document.rst:139 26433c11990f4f1e902b967ec62f9520 +msgid ":attr:`Document.is_repaired`" +msgstr "" + +#: ../../document.rst:139 3c658c42265747b7b521caba0b46b998 +msgid "PDF only: has this PDF been repaired during open?" +msgstr "" + +#: ../../document.rst:140 cb53e80ca0614de784a45e404b379a60 +msgid ":attr:`Document.last_location`" +msgstr "" + +#: ../../document.rst:140 b7ace66466d54470b61071e9bfce414a +msgid "(chapter, pno) of last page" +msgstr "" + +#: ../../document.rst:141 d4fd8a51760b4c4a964822cf87c4fd5b +msgid ":attr:`Document.metadata`" +msgstr "" + +#: ../../document.rst:141 e49fe7d5415b4ea0aa5ff965dea0a4c2 +msgid "metadata" +msgstr "" + +#: ../../document.rst:142 b1eb281747194e0c9dc37769e5a35996 +msgid ":attr:`Document.markinfo`" +msgstr "" + +#: ../../document.rst:142 5c53ed8e5b3a43f790eb41430cf74c00 +msgid "PDF MarkInfo value" +msgstr "" + +#: ../../document.rst:143 28f8419fd8854bc281aa1a7973a0d651 +msgid ":attr:`Document.name`" +msgstr "" + +#: ../../document.rst:143 c074932b6df14c2a9bbac171d00a72e1 +msgid "filename of document" +msgstr "" + +#: ../../document.rst:144 c143ec8f77d7403ba2f5e950ada44f9f +msgid ":attr:`Document.needs_pass`" +msgstr "" + +#: ../../document.rst:144 3a653b354e264d5ab111c00c2150d5ce +msgid "require password to access data?" +msgstr "" + +#: ../../document.rst:145 57c337795d3b41af8567072e6b7cf577 +msgid ":attr:`Document.outline`" +msgstr "" + +#: ../../document.rst:145 4c478e059e5b4ac0ac83ee75ae7da76b +msgid "first `Outline` item" +msgstr "" + +#: ../../document.rst:146 396a4b645ae04c80b5961baa2e075796 +msgid ":attr:`Document.page_count`" +msgstr "" + +#: ../../document.rst:146 67b13af7113547a8918fa5f210dcfaeb +msgid "number of pages" +msgstr "" + +#: ../../document.rst:147 cd51b0df05524051bca654f008981df0 +msgid ":attr:`Document.permissions`" +msgstr "" + +#: ../../document.rst:147 f33c48f888124f82af9dc413e5f9a50e +msgid "permissions to access the document" +msgstr "" + +#: ../../document.rst:148 0868038137794381a564152619e1814b +msgid ":attr:`Document.pagemode`" +msgstr "" + +#: ../../document.rst:148 783f323a456349b186450d63549da121 +msgid "PDF PageMode value" +msgstr "" + +#: ../../document.rst:149 032d2ee20d6542c4975ad6c7e2f75522 +msgid ":attr:`Document.pagelayout`" +msgstr "" + +#: ../../document.rst:149 d9816800d017496f8603c2fca0b2e1d0 +msgid "PDF PageLayout value" +msgstr "" + +#: ../../document.rst:150 cf17ce8d51c043f3a964384ca0a92c53 +msgid ":attr:`Document.version_count`" +msgstr "" + +#: ../../document.rst:150 646aa6db9c8b4351b27593bdfaf5f24c +msgid "PDF count of versions" +msgstr "" + +#: ../../document.rst:153 8f58511508294d49bd7a7f950c9bd7c9 +msgid "**Class API**" +msgstr "" + +#: ../../document.rst:174 b482340231f44738bb9cf3c571f4f7d5 +msgid "Create a ``Document`` object." +msgstr "" + +#: ../../document.rst:176 1c55311b5fa64850a06598e2a8ce9a7c +msgid "With default parameters, a **new empty PDF** document will be created." +msgstr "" + +#: ../../document.rst:177 22c55c2d255f491f89be960f4babb5e5 +msgid "If ``stream`` is given, then the document is created from memory." +msgstr "" + +#: ../../document.rst:178 3a8f75233dd54040a52ad9ae44d26e74 +msgid "" +"If ``stream`` is `None`, then a document is created from the file given " +"by ``filename``." +msgstr "" + +#: ../../document.rst 00a908e8a7684c1db0a3b35d910dfc89 +#: 035c82154d7945aeaedacdae5ef9e83e 0494f5c7dd3e4dbdad753d8fc418426a +#: 053524db9ab3421685fe89d78c566686 09e2f20f6eb4448a8af6859f0c972be3 +#: 1164be645ddb4224a7d1dfbaf1cd5aae 11a4366dcede41cfaa7fdd36496c01f8 +#: 134ee532dfa449f7a4ae06f57cf5988e 13b2e4a1b9744b59bf530b2f115364c0 +#: 242606a542a04a0eb4db1492072bbbd1 26c165f89a5f499eb2bad0cdc07423df +#: 28a91b3ddd5446e6ac630c63f80bc46c 2d988720b730480abd51f3485f33b9dd +#: 2dc2f4b45060421cb1b0e7609a77cf95 36c8dc94af7341e0bdd08b5127d8485c +#: 38acd225df3c4b4ca9c150e5d7033af0 3d87ac16734548f390215976b31c8c04 +#: 3ef1c3fc9e334d3fb17e329f068ea72c 409cb3c2f05441b9be706339b72b0f8b +#: 448429be618e43a0b10ba1ae0e5d7e88 45ae45d35fe74d62b719166a69e7064d +#: 45bce8087950479e8fa7477db3a20711 530ff5d58e3a4d9e98c9aeb8c5605bdb +#: 551a6935861b439098d9d062611f616a 58261b2fcc5c49f5933bcfdab369ef17 +#: 5a5aea508b954bb49e513cf02243ce16 5ac5beffb52646b18b7348ac1b2737e7 +#: 5ea82374068c4ab4b571bb6daa9be348 6414b2f2a6ac4b7ba788941cca287706 +#: 6a5b8d3dc8bf40e29ded3ec3e9ffc38b 6c98f98bb31f4c98ae8a19bf33683ff0 +#: 6f1d6803f6944c3eb09805a162627403 6f37c861b8b84191948d358812e43a6a +#: 73823030d66d461c9de9c71a08b04c67 7423014684c24e4e94f2ed1856e30e86 +#: 766ac26fd7d04013a82d44a6359f02e4 7a58704d8b8c46fa9d2a7e06b609b5e6 +#: 7c1441be492648c6868dc599cbcf5290 7d00af6b27284bc49da99cf2abcd1c4a +#: 7f44721ca2974b3390c251bd6d32cb0d 8645eb3d5aff4b538c51ae5de766f320 +#: 8cf10f5e5765410c89421d4efc29c2bb 8faa136e57734811b95284b118993d56 +#: 9098706c0a9241599811b31b5e16c768 99d0a9c7f22d43fd91b94d3c9d440d40 +#: 9af405444dc145959d9744d4fca8d186 9c7eefa6c1ab43fb9581311c53f3dbae +#: 9cd2f9315b7e4cf6b879188ba6e88ad3 9e5092bbf1e14cdba4a8622d40c8e74a +#: a542a56d8f1347c6bbbeb1c6edbd40a1 a72dfd60198e40ae9582c427e0a70e8a +#: ac4cc19f3f184b118dc2bb188462d316 ac57ebf36eac4d7eb5338b7d3e1d2a38 +#: af376c9284994378ba44d7d738372d08 b294f327f5df461a865037b3521e9b64 +#: b34e803114f74c439be67a2ea91fa82c b38308ff71d54e1f94cc7c713b830e63 +#: b8c7e0cb4b5c4e28b7cd299e01fc5c13 c37ef0bd30d84df79116ba9247cfb66c +#: c8b4346f33e5443fbb32425aeaac3976 cb94891111504901bb93c32cc492a56e +#: cc075b040dc84fd79ab823949da8569a cc70b1049ca94aae8a5ed47bbc2731b1 +#: cc8c8e6cb09e446dbd6c913800d9e92d cd44b293d5944613acbb4ebf13982f69 +#: de44007b099b4574b6ba370e8062081d e91161bf404a4c1aa6938f7206969d75 +#: e92666d7cb144f5aa9320e4172973126 ecb58c0295154bcba79da2c6bb14ecd0 +#: f5e2748d98ca490ba49440b716ce1557 f6ab3d9b4a4c4173b419ce4f678343f3 +#: f9bc09fc5ea34227a7114500e5ce81a6 fa33f17ae9614356bbae44d1f3ec88ff +#: fd852a1fe1934034b07fecc82f20016f +msgid "Parameters" +msgstr "" + +#: ../../document.rst:180 58d96afc6c3f4041817e26ee41843ed2 +msgid "" +"A UTF-8 string or ``pathlib.Path`` object containing a file path. The " +"document type is always determined from the file content. The " +"``filetype`` parameter is ignored, except when content inspection was " +"unsuccessful. This is regularly the case for plain text types like " +"\"txt\", \"html\", \"xml\" etc. with a wrong or missing file extension." +msgstr "" + +#: ../../document.rst:182 42a021002ca24463805b8c682c3ef247 +msgid "" +"A memory area containing file data. The document type is always detected " +"from the data content. The ``filetype`` parameter is ignored, except when" +" content inspection was unsuccessful. This is regularly the case for " +"plain text types like \"txt\", \"html\", \"xml\" etc." +msgstr "" + +#: ../../document.rst:184 df0bacd926f548f7993192643669e3da +msgid "" +"A string specifying the type of document. This is only ever needed when " +"file content inspection fails. Text types like \"txt\", \"html\", \"xml\"" +" etc. cannot be disambiguated by their content. When such files are " +"provided in memory or being provided with the wrong file extension, this " +"parameter **must** be used." +msgstr "" + +#: ../../document.rst:186 78759e58f1034e9b8808547679e5f0c7 +msgid "" +"a rectangle specifying the desired page size. This parameter is only " +"meaningful for documents with a variable page layout (\"reflowable\" " +"documents), like e-books or HTML, and ignored otherwise. If specified, it" +" must be a non-empty, finite rectangle with top-left coordinates (0, 0). " +"Together with parameter :data:`fontsize`, each page will be accordingly " +"laid out and hence also determine the number of pages." +msgstr "" + +#: ../../document.rst:188 a39ff59bcd5b443e8be15251425208dd +msgid "" +"may used together with ``height`` as an alternative to ``rect`` to " +"specify layout information." +msgstr "" + +#: ../../document.rst:190 5850f945318e4c5ba3ad88d7be9ed8f7 +msgid "" +"may used together with ``width`` as an alternative to ``rect`` to specify" +" layout information." +msgstr "" + +#: ../../document.rst:192 a2fc132738884e6f835292f70dbf813b +msgid "" +"the default :data:`fontsize` for reflowable document types. This " +"parameter is ignored if none of the parameters ``rect`` or ``width`` and " +"``height`` are specified. Will be used to calculate the page layout." +msgstr "" + +#: ../../document.rst 31cdc47b32794a798531bbe848c5bda9 +#: 8c8d6154dfd44d2ba07f8f96a6d9efca +msgid "Raises" +msgstr "" + +#: ../../document.rst:194 93b67db706e5441b96d643f164ce062f +msgid "if the *type* of any parameter does not conform." +msgstr "" + +#: ../../document.rst:195 42762fcf592649558e1963103f6dc8a7 +msgid "" +"if the file / path cannot be found. Re-implemented as subclass of " +"`RuntimeError`." +msgstr "" + +#: ../../document.rst:196 2057576b00c94522986d094e8c68c1df +msgid "" +"if the file / path is empty or the `bytes` object in memory has zero " +"length. A subclass of `FileDataError` and `RuntimeError`." +msgstr "" + +#: ../../document.rst:197 7af323bd72ba4aeab2300ae9ce1c8deb +msgid "if an unknown file type is explicitly specified." +msgstr "" + +#: ../../document.rst:198 18d265e2b9244cc3abe76c5bbd2278b0 +msgid "" +"if the document has an invalid structure for the given type -- or is no " +"file at all (but e.g. a folder). A subclass of `RuntimeError`." +msgstr "" + +#: ../../document.rst 047c76e2fca94ff59ddfc0ba555820e2 +#: 05f5daa98f00493bbb7a374f27f0a4b2 0659f08fa83e47a5955522391fa15698 +#: 06edaf8239974c938d93dc80fa34d7b3 07f23348a83747a994bfc38292cb6817 +#: 158edb1f340741378949ce4bab7d1208 192965113ee04caf8146575bc393c6b2 +#: 2059d856b5964cc6a0bf7b8f3fda5404 22190b4c653441329a53fd9cd6af3bb8 +#: 226eb33d228e44ddb55b37be48020765 24bc92cfaa3940289ca3ea8cd27d3106 +#: 2dafdb9211e64d488d5e9593226ca06e 312853a1c43e4fe0a603faa0c4dceabc +#: 31ab2b887428472a8ad5bd876a2c0fa3 3ecac14ada7f4ac787def38bf6a8f6cf +#: 3f9435a31fca4d4d8cbb170875d2a3a4 464a3d0819674be3a513b02da8c87f09 +#: 4c3f4194da5c4dea946bb543c410e000 556c0e94fdbc48f7ad1c45b988d89c4b +#: 57359910ea7448e7a17fd9dedd43b13f 57bff51834564091b9d1b4055ff2a4e2 +#: 6056f1e956114601907e8db93075c69d 64ecbf4b3b474f7eb72622284e2cb7ba +#: 66279346c97044d48e845dc1660bd20c 729ef3cc086d42e98982d5116d01854d +#: 760161a30c3e4264b6add40c459ecd55 779098b76b7e497ea7d0ac5ff5f230ba +#: 7807cc54e173424c98cd91c0e09a81fe 7ae314f6b0e24da3a92ce747b3bbcf11 +#: 882d32145fa2437186746febf7ff6b9e 8dd9a3cf674448ce866dfa99e2966320 +#: 977bcac8f3714ed9bc2f7a27dce3d310 9988c1213e394ff0839023541b3cda02 +#: acbfc888b60d461b8e34b1893ba6857b ad784150a80c454cb020cf1b36616ada +#: addfabd60db741858e920a4caf7bee46 aff867c7df6c43feb44be7a1705c3c90 +#: b532e1af2f86421292f40080c67d8130 ce1aa2bb29194111b35b8883f494fbbb +#: cfed3fbff8a046ed885355b399d4a2ab ebbe17e44f874fdd8ecbc146d1756273 +#: ec39975fff364d138618b3f0a03d7f7c f01df95655be4d7ba337b69dc87134d0 +#: faa22c65030b43fabbb90aae7cc4bcbb fb61cf4fd04246d88877968bcd325279 +msgid "Returns" +msgstr "" + +#: ../../document.rst:200 cf78e0bdd8b34963964a9914c2b152e3 +msgid "" +"A document object. If the document cannot be created, an exception is " +"raised in the above sequence. Note that PyMuPDF-specific exceptions, " +"`FileNotFoundError`, `EmptyFileError` and `FileDataError` are intercepted" +" if you check for `RuntimeError`. In case of problems you can see more " +"detail in the internal messages store: " +"`print(pymupdf.TOOLS.mupdf_warnings())` (which will be emptied by this " +"call, but you can also prevent this -- consult " +":meth:`Tools.mupdf_warnings`)." +msgstr "" + +#: ../../document.rst:200 a8c942677a9c4be198f8b855f9a7aa87 +msgid "" +"A document object. If the document cannot be created, an exception is " +"raised in the above sequence. Note that PyMuPDF-specific exceptions, " +"`FileNotFoundError`, `EmptyFileError` and `FileDataError` are intercepted" +" if you check for `RuntimeError`." +msgstr "" + +#: ../../document.rst:202 e37b3dcfa1ef4bb18a5147e0847b1947 +msgid "" +"In case of problems you can see more detail in the internal messages " +"store: `print(pymupdf.TOOLS.mupdf_warnings())` (which will be emptied by " +"this call, but you can also prevent this -- consult " +":meth:`Tools.mupdf_warnings`)." +msgstr "" + +#: ../../document.rst:204 2b66040c852944bf8054bbb5fc40f830 +msgid "Overview of possible forms, note: `open` is a synonym of `Document`::" +msgstr "" + +#: ../../document.rst:221 64bcc08b1e204f36b85a92e3bf4a7b7b +msgid "" +"Raster images with a wrong (but supported) file extension **are no " +"problem**. MuPDF will determine the correct image type when file " +"**content** is actually accessed and will process it without complaint." +msgstr "" + +#: ../../document.rst:223 f9c50ee3ebf24470b38de4cdc1f54b1b +msgid "" +"The Document class can be also be used as a **context manager**. Exiting " +"the content manager will close the document automatically." +msgstr "" + +#: ../../document.rst:239 ../../document.rst:249 ../../document.rst:309 +#: ../../document.rst:355 1730d717878941ef892b30c483eca126 +#: 483dca214c8e48079d2e4c46ba3235ca 4d05d842450e4edfae325ef65d2b7611 +#: f30d1bf6555e43a49b37fc613c1508b0 +msgid "New in v1.18.4" +msgstr "" + +#: ../../document.rst:241 eba6c4b1e61146a6bb640a3f95719819 +msgid "" +"Return the cross reference number of an :data:`OCG` or :data:`OCMD` " +"attached to an image or form xobject." +msgstr "" + +#: ../../document.rst:243 ad2e8305cca245ccbb0fb3c0b6258d90 +msgid "" +"the :data:`xref` of an image or form xobject. Valid such cross reference " +"numbers are returned by :meth:`Document.get_page_images`, resp. " +":meth:`Document.get_page_xobjects`. For invalid numbers, an exception is " +"raised." +msgstr "" + +#: ../../document.rst 0500953c20e7437cb07eb1e5b5ab6d95 +#: 0a34e8c806934adbb39a562cec45ed00 0dbcdc6042ab41719e7bfb23d45e9498 +#: 0f529499a28c45e689047cb279bef176 2dfb2fc75f3c4ae48c9621d951c8b20d +#: 34e50adf35b049d59f94366d6a1c4d01 3c8c31137eed41449dd23adac7aa0431 +#: 4b2ccda028124833b98c4b8d75dc5796 4bef2068106e4e12b153e5f9c3d0a73f +#: 553755100d5e4a9fbdac0009e6aab03b 613035964f614edeaf5c9e07ebae1838 +#: 6ef8b75ae6c942cb8bab3048fece0e1c 7f12d638e7764df0b3b1b81088afcdad +#: 80b0f09950a4445fa028f7bff7e85366 80f84520db924d0398f865a7c6875a5f +#: 821c42fa24fe4ff68ef126f5150071ab 8a85efe68f114c0eae3355efc6be9ed9 +#: 90fd0a7b1fd84565868c7a4915335e92 910331f87ce84bedb176f82e21061663 +#: ab6d6004faef490596417bcdad04ff0e ab9ee70f563b4f58b630bd00db9096cc +#: b1fb8a32cfbf4a3185cc6a0b9dffa6f0 b35706daab7e445e88f47d8377413f7f +#: ba9ffa28e36f4e13bbd25d4f25a464a1 bfdee673d70a4b918589e416740c1b9c +#: cbc5f629858c4424b7ee4ec850a7588b cd443890b968437eae8ea9cc73288cec +#: d1a86fcdf8044a5cae21c2c3e71a8a30 d211bea9230d4be78a69c08250062eca +#: e5405416c793476395b89cc26926e4a6 e810c1ec77c24b9b983b6168bc72c737 +#: e9ad8885d4414821ab5dda6ccb064634 f51ea798020a41dfa00ef5586e64de2a +#: f8a557a2ff2a48ecbece73e853f0a03b fc5ab7c5392b43dfb5212c6091f15304 +#: fef16f5342014574b4c13ceed01202b0 +msgid "Return type" +msgstr "" + +#: ../../document.rst:245 c041477b58714e209412601d6ad826df +msgid "" +"the cross reference number of an optional contents object or zero if " +"there is none." +msgstr "" + +#: ../../document.rst:251 c8de893dbc234e21bc29025c8fced233 +msgid "" +"If :data:`xref` represents an image or form xobject, set or remove the " +"cross reference number *ocxref* of an optional contents object." +msgstr "" + +#: ../../document.rst:253 6267c33679a84edbad42cf549b96a4d7 +msgid "" +"the :data:`xref` of an image or form xobject [#f5]_. Valid such cross " +"reference numbers are returned by :meth:`Document.get_page_images`, resp." +" :meth:`Document.get_page_xobjects`. For invalid numbers, an exception is" +" raised." +msgstr "" + +#: ../../document.rst:254 dafcd054da864b7bac355ee5b787c2db +msgid "" +"the :data:`xref` number of an :data:`OCG` / :data:`OCMD`. If not zero, an" +" invalid reference raises an exception. If zero, any OC reference is " +"removed." +msgstr "" + +#: ../../document.rst:259 ../../document.rst:269 ../../document.rst:280 +#: ../../document.rst:292 ../../document.rst:366 ../../document.rst:378 +#: ../../document.rst:400 ../../document.rst:418 ../../document.rst:434 +#: 23926cee6be044648a5c37b816d143bd 5cb2942c0bd2436aa86c4ef9fe4aeb7c +#: 89fe4090f50d42499290ad8b8c5d9d27 8aab2fbbb4b740cc93f678bbf28f5d89 +#: bbf66277dd1d49b8aa08f5333630c6aa bfee650f7a0840288662be53901e0e16 +#: d64e06f1af29426e832fa442c29fae08 e6c3241b846345b49e2c2654f71724b5 +#: ec6c47d3bc2e4eeb91c14aba11424529 +msgid "New in v1.18.3" +msgstr "" + +#: ../../document.rst:261 4a50ac946de94468b0d17ce0c5cd0bfd +msgid "" +"Show optional layer configurations. There always is a standard one, which" +" is not included in the response." +msgstr "" + +#: ../../document.rst:271 62a7c759e42d4b04873f1b12d3184db4 +msgid "" +"Add an optional content configuration. Layers serve as a collection of ON" +" / OFF states for optional content groups and allow fast visibility " +"switches between different views on the same document." +msgstr "" + +#: ../../document.rst:273 0407f1ddb2e2486d857a6ecfee7bdd01 +msgid "arbitrary name." +msgstr "" + +#: ../../document.rst:274 78e5e16c7cde40f587fa378470778e67 +msgid "(optional) creating software." +msgstr "" + +#: ../../document.rst:275 141b82fff5454e1bb16c1ad6b039bbed +msgid "" +"a sequence of OCG :data:`xref` numbers which should be set to ON when " +"this layer gets activated. All OCGs not listed here will be set to OFF." +msgstr "" + +#: ../../document.rst:282 f4c042d87e1840a2843af4d4117001eb +msgid "" +"Switch to a document view as defined by the optional layer's " +"configuration number. This is temporary, except if established as " +"default." +msgstr "" + +#: ../../document.rst:284 c5e86d78dd054fe59d48bfdfd027505f +msgid "config number as returned by :meth:`Document.layer_configs`." +msgstr "" + +#: ../../document.rst:285 12da226f47384fb9856ab8e3539b8f7f +msgid "make this the default configuration." +msgstr "" + +#: ../../document.rst:287 a0359149d06f41c3a0c31aa7fd513161 +msgid "" +"Activates the ON / OFF states of OCGs as defined in the identified layer." +" If ``as_default=True``, then additionally all layers, including the " +"standard one, are merged and the result is written back to the standard " +"layer, and **all optional layers are deleted**." +msgstr "" + +#: ../../document.rst:294 019d0c5001d94da99732a3ea85edb766 +msgid "" +"Add an optional content group. An OCG is the most important unit of " +"information to determine object visibility. For a PDF, in order to be " +"regarded as having optional content, at least one OCG must exist." +msgstr "" + +#: ../../document.rst:296 df98d756b4024732b2403d8409bb80d0 +msgid "arbitrary name. Will show up in supporting PDF viewers." +msgstr "" + +#: ../../document.rst:297 645459e390354faea10340dc61b7b599 +msgid "layer configuration number. Default -1 is the standard configuration." +msgstr "" + +#: ../../document.rst:298 f6fa2faa541148c5accbe497d973571b +msgid "standard visibility status for objects pointing to this OCG." +msgstr "" + +#: ../../document.rst:299 40453f0b3a0b40219a2f25b7ebc97193 +msgid "" +"a string or list of strings declaring the visibility intents. There are " +"two PDF standard values to choose from: \"View\" and \"Design\". Default " +"is \"View\". Correct **spelling is important**." +msgstr "" + +#: ../../document.rst:300 5c48545ceb124bb5a9377cf6d70d146f +msgid "" +"another influencer for OCG visibility. This will become part of the OCG's" +" `/Usage` key. There are two PDF standard values to choose from: " +"\"Artwork\" and \"Technical\". Default is \"Artwork\". Please only change" +" when required." +msgstr "" + +#: ../../document.rst:302 747d12bc0ae0484c9865443714401394 +msgid "" +":data:`xref` of the created OCG. Use as entry for `oc` parameter in " +"supporting objects." +msgstr "" + +#: ../../document.rst:304 e6da50b60736424ab6212f1f73d1e613 +msgid "" +"Multiple OCGs with identical parameters may be created. This will not " +"cause problems. Garbage option 3 of :meth:`Document.save` will get rid of" +" any duplicates." +msgstr "" + +#: ../../document.rst:311 af571053832447268949688f1f4dfb77 +msgid "" +"Create or update an :data:`OCMD`, **Optional Content Membership " +"Dictionary.**" +msgstr "" + +#: ../../document.rst:313 176f6da4c473440c9136b9f539104722 +msgid ":data:`xref` of the OCMD to be updated, or 0 for a new OCMD." +msgstr "" + +#: ../../document.rst:314 c62679a99da644e8b4803a0c9d329a9a +msgid "a sequence of :data:`xref` numbers of existing :data:`OCG` PDF objects." +msgstr "" + +#: ../../document.rst:315 4b77e6d94ae7432085d1e1936f946ec6 +msgid "" +"one of \"AnyOn\" (default), \"AnyOff\", \"AllOn\", \"AllOff\" (mixed or " +"lower case)." +msgstr "" + +#: ../../document.rst:316 52aa1d09e9274734ae9c2082f3543182 +msgid "" +"a \"visibility expression\". This is a list of arbitrarily nested other " +"lists -- see explanation below. Use as an alternative to the combination " +"*ocgs* / *policy* if you need to formulate more complex conditions." +msgstr "" + +#: ../../document.rst:318 82c5e6b9f0df4f9e8364caf4e1030f20 +msgid "" +":data:`xref` of the OCMD. Use as `oc=xref` parameter in supporting " +"objects, and respectively in :meth:`Document.set_oc` or " +":meth:`Annot.set_oc`." +msgstr "" + +#: ../../document.rst:322 ff4a88e9bc164073a711f1c9e12ff4e5 +msgid "" +"Like an OCG, an OCMD has a visibility state ON or OFF, and it can be used" +" like an OCG. In contrast to an OCG, the OCMD state is determined by " +"evaluating the state of one or more OCGs via special forms of **boolean " +"expressions.** If the expression evaluates to true, the OCMD state is ON " +"and OFF for false." +msgstr "" + +#: ../../document.rst:324 7624a64d7d344afcb6b9c711969255fd +msgid "There are two ways to formulate OCMD visibility:" +msgstr "" + +#: ../../document.rst:326 f286a0292bdc4233bb5cae6692a86360 +msgid "" +"Use the combination of *ocgs* and *policy*: The *policy* value is " +"interpreted as follows:" +msgstr "" + +#: ../../document.rst:328 cd5febb83dd14249b5c74b772683ca78 +msgid "AnyOn -- (default) true if at least one OCG is ON." +msgstr "" + +#: ../../document.rst:329 d198b9b66f374b60b940b079312cd963 +msgid "AnyOff -- true if at least one OCG is OFF." +msgstr "" + +#: ../../document.rst:330 075a921c145249f5b1eca9f6602422ba +msgid "AllOn -- true if all OCGs are ON." +msgstr "" + +#: ../../document.rst:331 fa6c2c43aba44d159e35b8f57e646e0c +msgid "AllOff -- true if all OCGs are OFF." +msgstr "" + +#: ../../document.rst:333 06df4aa95eb7403f92d354cdafc71cc9 +msgid "" +"Suppose you want two PDF objects be displayed exactly one at a time (if " +"one is ON, then the other one must be OFF):" +msgstr "" + +#: ../../document.rst:335 65c7260ce3b54ff484d2f1642d17fc89 +msgid "" +"Solution: use an **OCG** for object 1 and an **OCMD** for object 2. " +"Create the OCMD via `set_ocmd(ocgs=[xref], policy=\"AllOff\")`, with the " +":data:`xref` of the OCG." +msgstr "" + +#: ../../document.rst:337 daf6a22c4b2a43d6a4bab99eff6c02c3 +msgid "" +"Use the **visibility expression** *ve*: This is a list of two or more " +"items. The **first item** is a logical keyword: one of the strings " +"**\"and\"**, **\"or\"**, or **\"not\"**. The **second** and all " +"subsequent items must either be an integer or another list. An integer " +"must be the :data:`xref` number of an OCG. A list must again have at " +"least two items starting with one of the boolean keywords. This syntax is" +" a bit awkward, but quite powerful:" +msgstr "" + +#: ../../document.rst:339 3542e922141d45e9bcd5d64b3ad00ead +msgid "Each list must start with a logical keyword." +msgstr "" + +#: ../../document.rst:340 fa6c94f45a68492895b165d5688053b2 +msgid "" +"If the keyword is a **\"not\"**, then the list must have exactly two " +"items. If it is **\"and\"** or **\"or\"**, any number of other items may " +"follow." +msgstr "" + +#: ../../document.rst:341 2d88da6745cb40e5afe68d8a712a15df +msgid "" +"Items following the logical keyword may be either integers or again a " +"list. An *integer* must be the xref of an OCG. A *list* must conform to " +"the previous rules." +msgstr "" + +#: ../../document.rst:343 d786a59eab5449a5ad1c6130e01c2bca +msgid "**Examples:**" +msgstr "" + +#: ../../document.rst:345 32e37d05f4b94a2c9f8a2241e144216c +msgid "" +"`set_ocmd(ve=[\"or\", 4, [\"not\", 5], [\"and\", 6, 7]])`. This delivers " +"ON if the following is true: **\"4 is ON, or 5 is OFF, or 6 and 7 are " +"both ON\"**." +msgstr "" + +#: ../../document.rst:346 8bff1ec6e8a545a19fcf60c341c39b3f +msgid "" +"`set_ocmd(ve=[\"not\", xref])`. This has the same effect as the OCMD " +"example created under 1." +msgstr "" + +#: ../../document.rst:348 bb5ab99cc5154c058bd6c6c21d77efdb +msgid "" +"For more details and examples see page 224 of :ref:`AdobeManual`. Also do" +" have a look at example scripts `here `_." +msgstr "" + +#: ../../document.rst:350 710f05e9b696464fa3f0137f62c2204b +msgid "" +"Visibility expressions, `/VE`, are part of PDF specification version 1.6." +" So not all PDF viewers / readers may already support this feature and " +"hence will react in some standard way for those cases." +msgstr "" + +#: ../../document.rst:357 fad572b38ee64c15b7ffc0ca037efa59 +msgid "Retrieve the definition of an :data:`OCMD`." +msgstr "" + +#: ../../document.rst:359 3a57bb52cf234bbeaa0eef4f2d589d31 +msgid "the :data:`xref` of the OCMD." +msgstr "" + +#: ../../document.rst:361 8beef4ef63b642df94ebb105bec160d8 +msgid "a dictionary with the keys :data:`xref`, *ocgs*, *policy* and *ve*." +msgstr "" + +#: ../../document.rst:368 e2155a3ac05040b9add64191e6b9e0ff +msgid "" +"List of optional content groups by status in the specified configuration." +" This is a dictionary with lists of cross reference numbers for OCGs that" +" occur in the arrays `/ON`, `/OFF` or in some radio button group " +"(`/RBGroups`)." +msgstr "" + +#: ../../document.rst:370 5c4df35639784744a466356b3362cbc6 +msgid "the configuration layer (default is the standard config layer)." +msgstr "" + +#: ../../document.rst:380 2f281f33088346b08c527ae42e6f1c4e +msgid "Changed in v1.22.5: Support list of *locked* OCGs." +msgstr "" + +#: ../../document.rst:382 e1b37420106d4246a034d0a858461ca2 +msgid "" +"Mass status changes of optional content groups. **Permanently** sets the " +"status of OCGs." +msgstr "" + +#: ../../document.rst:384 a2e67c4937b043b797822f7cd599b808 +msgid "desired configuration layer, choose -1 for the default one." +msgstr "" + +#: ../../document.rst:385 a5d626582a0c4adeac28522f8e23f533 +msgid "" +"list of :data:`xref` of OCGs to set ON. Replaces previous values. An " +"empty list will cause no OCG being set to ON anymore. Should be specified" +" if `basestate=\"ON\"` is used." +msgstr "" + +#: ../../document.rst:386 b105d154868648c0a78aa7ddeab0e341 +msgid "" +"list of :data:`xref` of OCGs to set OFF. Replaces previous values. An " +"empty list will cause no OCG being set to OFF anymore. Should be " +"specified if `basestate=\"OFF\"` is used." +msgstr "" + +#: ../../document.rst:387 00ee5fd0e019474a870809b586d7a8dc +msgid "" +"state of OCGs that are not mentioned in *on* or *off*. Possible values " +"are \"ON\", \"OFF\" or \"Unchanged\". Upper / lower case possible." +msgstr "" + +#: ../../document.rst:388 00be43e01f734962a6706a02e112feb2 +msgid "" +"a list of lists. Replaces previous values. Each sublist should contain " +"two or more OCG xrefs. OCGs in the same sublist are handled like buttons " +"in a radio button group: setting one to ON automatically sets all other " +"group members to OFF." +msgstr "" + +#: ../../document.rst:389 fa0a09aca08c40b1b90f36b23146c355 +msgid "a list of OCG xref number that cannot be changed by the user interface." +msgstr "" + +#: ../../document.rst:391 e1c4e0490d9940e1883ad98f81859df8 +msgid "Values `None` will not change the corresponding PDF array." +msgstr "" + +#: ../../document.rst:402 6b83e49681b24a10b144d4a9e4acc01d +msgid "" +"Details of all optional content groups. This is a dictionary of " +"dictionaries like this (key is the OCG's :data:`xref`):" +msgstr "" + +#: ../../document.rst:420 36edc40743fe4afb943bac223003f082 +msgid "" +"Show the visibility status of optional content that is modifiable by the " +"user interface of supporting PDF viewers." +msgstr "" + +#: ../../document.rst:422 75b0b7f00565469eb5c15de91d146e92 +msgid "" +"Only reports items contained in the currently selected layer " +"configuration." +msgstr "" + +#: ../../document.rst:429 34d23ea600964ffa9e171337ddac9bef +msgid "The meaning of the dictionary keys is as follows:" +msgstr "" + +#: ../../document.rst:425 a6f590d8251a4781a92016be8710b113 +msgid "*depth:* item's nesting level in the `/Order` array" +msgstr "" + +#: ../../document.rst:426 f6a9c537d38e4cdb89490b8d63d75c4b +msgid "*locked:* true if cannot be changed via user interfaces" +msgstr "" + +#: ../../document.rst:427 208b1ca352e74127bda9ca8a9983cbe6 +msgid "*number:* running sequence number" +msgstr "" + +#: ../../document.rst:428 ab611eafc0ae4bbfb5cfc33ec4c9f161 +msgid "*on:* item state" +msgstr "" + +#: ../../document.rst:429 6fd780d71a13487ca690fbfc3311d4bd +msgid "*text:* text string or name field of the originating OCG" +msgstr "" + +#: ../../document.rst:430 286752141da0452e9dff2a920379fecb +msgid "" +"*type:* one of \"label\" (set by a text string), \"checkbox\" (set by a " +"single OCG) or \"radiobox\" (set by a set of connected OCGs)" +msgstr "" + +#: ../../document.rst:436 623754e00b3f43feaccf231803da154d +msgid "" +"Modify OC visibility status of content groups. This is analog to what " +"supporting PDF viewers would offer." +msgstr "" + +#: ../../document.rst:438 7a68db8cb2cb477680821155ce320684 +msgid "" +"Please note that visibility is **not** a property stored with the OCG. It" +" is not even information necessarily present in the PDF document at all. " +"Instead, the current visibility is **temporarily** set using the user " +"interface of some supporting PDF consumer software. The same type of " +"functionality is offered by this method." +msgstr "" + +#: ../../document.rst:440 81a92011a9ea497fb7600465d2f7249c +msgid "To make **permanent** changes, use :meth:`Document.set_layer`." +msgstr "" + +#: ../../document.rst:442 995bfe639a02475fbeeb37b8f6e73e95 +msgid "" +"either the sequence number of the item in list " +":meth:`Document.layer_configs` or the \"text\" of one of these items." +msgstr "" + +#: ../../document.rst:443 775f2c9f68934b7098b0531a61f3e3a1 +msgid "" +"`PDF_OC_ON` = set on (default), `PDF_OC_TOGGLE` = toggle on/off, " +"`PDF_OC_OFF` = set off." +msgstr "" + +#: ../../document.rst:448 27be24636736454f8669d2bf32f5850e +msgid "" +"Decrypts the document with the string *password*. If successful, document" +" data can be accessed. For PDF documents, the \"owner\" and the \"user\" " +"have different privileges, and hence different passwords may exist for " +"these authorization levels. The method will automatically establish the " +"appropriate (owner or user) access rights for the provided password." +msgstr "" + +#: ../../document.rst:450 85327273191345d7a0064b7bfa2198b3 +msgid "owner or user password." +msgstr "" + +#: ../../document.rst:453 9c5364f7fc154375a06079af2df92681 +msgid "" +"a positive value if successful, zero otherwise (the string does not match" +" either password). If positive, the indicator " +":attr:`Document.is_encrypted` is set to ``False``. **Positive** return " +"codes carry the following information detail: * 1 => authenticated, but " +"the PDF has neither owner nor user passwords. * 2 => authenticated with " +"the **user** password. * 4 => authenticated with the **owner** password. " +"* 6 => authenticated and both passwords are equal -- probably a rare " +"situation. .. note:: The document may be protected by an owner, but " +"**not** by a user password. Detect this situation via " +"`doc.authenticate(\"\") == 2`. This allows opening and reading the " +"document without authentication, but, depending on the " +":attr:`Document.permissions` value, other actions may be prohibited. " +"PyMuPDF (like MuPDF) in this case **ignores those restrictions**. So, -- " +"in contrast to any PDF viewers -- you can for example extract text and " +"add or modify content, even if the respective permission flags " +"`PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE`, etc. are set " +"off! It is your responsibility building a legally compliant application " +"where applicable." +msgstr "" + +#: ../../document.rst:453 08583032eafa41b7ac9b194f3bda03fa +msgid "" +"a positive value if successful, zero otherwise (the string does not match" +" either password). If positive, the indicator " +":attr:`Document.is_encrypted` is set to ``False``. **Positive** return " +"codes carry the following information detail:" +msgstr "" + +#: ../../document.rst:455 91f0bb6a692a4682a4c34c71ee148f1e +msgid "1 => authenticated, but the PDF has neither owner nor user passwords." +msgstr "" + +#: ../../document.rst:456 ba4f57095e824261b0a64d65bc13465d +msgid "2 => authenticated with the **user** password." +msgstr "" + +#: ../../document.rst:457 bfb7a0beede248c8a99fea4df83c1674 +msgid "4 => authenticated with the **owner** password." +msgstr "" + +#: ../../document.rst:458 b8eaae626e8f42f29a0612cb9c166585 +msgid "" +"6 => authenticated and both passwords are equal -- probably a rare " +"situation." +msgstr "" + +#: ../../document.rst:462 73fc6cf7a70b4ed7b17c292f3bc63fa7 +msgid "" +"The document may be protected by an owner, but **not** by a user " +"password. Detect this situation via `doc.authenticate(\"\") == 2`. This " +"allows opening and reading the document without authentication, but, " +"depending on the :attr:`Document.permissions` value, other actions may be" +" prohibited. PyMuPDF (like MuPDF) in this case **ignores those " +"restrictions**. So, -- in contrast to any PDF viewers -- you can for " +"example extract text and add or modify content, even if the respective " +"permission flags `PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE`," +" etc. are set off! It is your responsibility building a legally compliant" +" application where applicable." +msgstr "" + +#: ../../document.rst:466 119ec5a546d0492cbc3d44a94c5c6e67 +msgid "New in v 1.18.6" +msgstr "" + +#: ../../document.rst:468 71cef20992634be89bc64e392ac17031 +msgid "" +"PDF only: Return a list of page numbers that have the specified label -- " +"note that labels may not be unique in a PDF. This implies a sequential " +"search through **all page numbers** to compare their labels." +msgstr "" + +#: ../../document.rst:470 a2a599a9359442d8b21007f88a6371db +msgid "Implementation detail -- pages are **not loaded** for this purpose." +msgstr "" + +#: ../../document.rst:472 946caeaeaaec48838a6a321dc1963727 +msgid "the label to look for, e.g. \"vii\" (Roman number 7)." +msgstr "" + +#: ../../document.rst:473 76acb3f67de149159a5b95ff30cb08b6 +msgid "" +"stop after first hit. Useful e.g. if labelling is known to be unique, or " +"there are many pages, etc. The default will check every page number." +msgstr "" + +#: ../../document.rst:475 9adccc3fc8054990ad6014e9041d93de +msgid "" +"list of page numbers that have this label. Empty if none found, no labels" +" defined, etc." +msgstr "" + +#: ../../document.rst:480 ../../document.rst:843 ../../document.rst:864 +#: ../../document.rst:1897 ../../document.rst:1921 +#: 05910086455448f18e257168cd8e2a36 14ada1583e2942948f2bb1e6134d7866 +#: 3450b554a2e0411eacdd819c036cccc2 80adb24663644aa28fa9a11528256936 +#: 92afdec41f4a4a328c24a25cbcd0b7a6 +msgid "New in v1.18.7" +msgstr "" + +#: ../../document.rst:482 743daa378cfe4792ad9fa83a2909eb8d +msgid "" +"PDF only: Extract the list of page label definitions. Typically used for " +"modifications before feeding it into :meth:`Document.set_page_labels`." +msgstr "" + +#: ../../document.rst:484 0f5d97b8193a461b8fe7e04b712adae9 +msgid "a list of dictionaries as defined in :meth:`Document.set_page_labels`." +msgstr "" + +#: ../../document.rst:488 244cbe336b1e4cddb8491c05e5ec5b15 +msgid "New in v1.18.6" +msgstr "" + +#: ../../document.rst:490 470a1bc4f0404283b7358f77bc840a9d +msgid "PDF only: Add or update the page label definitions of the PDF." +msgstr "" + +#: ../../document.rst:492 d0c5ec05dc0f4ba5a381635a4cf3c93b +msgid "" +"a list of dictionaries. Each dictionary defines a label building rule and" +" a 0-based \"start\" page number. That start page is the first for which " +"the label definition is valid. Each dictionary has up to 4 items and " +"looks like `{'startpage': int, 'prefix': str, 'style': str, " +"'firstpagenum': int}` and has the following items. - `startpage`: (int) " +"the first page number (0-based) to apply the label rule. This key **must " +"be present**. The rule is applied to all subsequent pages until either " +"end of document or superseded by the rule with the next larger page " +"number. - `prefix`: (str) an arbitrary string to start the label with, " +"e.g. \"A-\". Default is \"\". - `style`: (str) the numbering style. " +"Available are \"D\" (decimal), \"r\"/\"R\" (Roman numbers, lower / upper " +"case), and \"a\"/\"A\" (lower / upper case alphabetical numbering: \"a\" " +"through \"z\", then \"aa\" through \"zz\", etc.). Default is \"\". If " +"\"\", no numbering will take place and the pages in that range will " +"receive the same label consisting of the `prefix` value. If prefix is " +"also omitted, then the label will be \"\". - `firstpagenum`: (int) start " +"numbering with this value. Default is 1, smaller values are ignored." +msgstr "" + +#: ../../document.rst:492 0fab77fbe73e4149aa809d1d7d83d4ce +msgid "" +"a list of dictionaries. Each dictionary defines a label building rule and" +" a 0-based \"start\" page number. That start page is the first for which " +"the label definition is valid. Each dictionary has up to 4 items and " +"looks like `{'startpage': int, 'prefix': str, 'style': str, " +"'firstpagenum': int}` and has the following items." +msgstr "" + +#: ../../document.rst:494 7eeface47e22458b9ccd093d60a289a2 +msgid "" +"`startpage`: (int) the first page number (0-based) to apply the label " +"rule. This key **must be present**. The rule is applied to all subsequent" +" pages until either end of document or superseded by the rule with the " +"next larger page number." +msgstr "" + +#: ../../document.rst:495 74fd610222f54117be5ff8aa62d5e852 +msgid "" +"`prefix`: (str) an arbitrary string to start the label with, e.g. \"A-\"." +" Default is \"\"." +msgstr "" + +#: ../../document.rst:496 27261aba29414162837b13ebf37bfbb9 +msgid "" +"`style`: (str) the numbering style. Available are \"D\" (decimal), " +"\"r\"/\"R\" (Roman numbers, lower / upper case), and \"a\"/\"A\" (lower /" +" upper case alphabetical numbering: \"a\" through \"z\", then \"aa\" " +"through \"zz\", etc.). Default is \"\". If \"\", no numbering will take " +"place and the pages in that range will receive the same label consisting " +"of the `prefix` value. If prefix is also omitted, then the label will be " +"\"\"." +msgstr "" + +#: ../../document.rst:497 3ceaa9f717194b72bdd2f7f205217200 +msgid "" +"`firstpagenum`: (int) start numbering with this value. Default is 1, " +"smaller values are ignored." +msgstr "" + +#: ../../document.rst:499 2afd6593eaf0423e8afcd6635c826754 +msgid "For example::" +msgstr "" + +#: ../../document.rst:504 040ded0fb2be4e5cbeadc76208560d19 +msgid "" +"will generate the labels \"A-10\", \"A-11\", \"A-12\", \"A-13\", \"1\", " +"\"2\", \"3\", ... for pages 6, 7 and so on until end of document. Pages 0" +" through 5 will have the label \"\"." +msgstr "" + +#: ../../document.rst:509 ../../document.rst:523 +#: 0aa8b9c83c1b41719f9cbd43feabcdf8 846b39d637a5466f8c256fcfce4f4571 +msgid "New in v.1.17.3" +msgstr "" + +#: ../../document.rst:511 12e98a99804a4723ac02582721c5a896 +msgid "" +"Return a page pointer in a reflowable document. After re-layouting the " +"document, the result of this method can be used to find the new location " +"of the page." +msgstr "" + +#: ../../document.rst:513 c31102cafa52492ca638735d028e8d7f +msgid "Do not confuse with items of a table of contents, TOC." +msgstr "" + +#: ../../document.rst:515 9ffd70204ee543ffa134b90dad39f75a +msgid "page location. Must be a valid *(chapter, pno)*." +msgstr "" + +#: ../../document.rst:518 c028fcff4f6a4c409c5bd4f2c7094af3 +msgid "" +"a long integer in pointer format. To be used for finding the new location" +" of the page after re-layouting the document. Do not touch or re-assign." +msgstr "" + +#: ../../document.rst:525 aae59f9b08ae4ed7b02b7f7a2dd7a991 +msgid "Return the new page location after re-layouting the document." +msgstr "" + +#: ../../document.rst:527 a8da17fc210f4a43a9d2b4ceb3185c5f +msgid "created by :meth:`Document.make_bookmark`." +msgstr "" + +#: ../../document.rst:530 1d07a10894004002a21058fdfeac44af +msgid "the new (chapter, pno) of the page." +msgstr "" + +#: ../../document.rst:535 ../../document.rst:547 ../../document.rst:558 +#: 61c1413e338345c9ab33c2b1c5f9decc 6a5cad42e88f4f499c7181e080b1f971 +#: 946e1b36b28b4432a39b16f8c68d62e0 +msgid "New in v.1.17.0" +msgstr "" + +#: ../../document.rst:537 c8b174e76e7b434db43abd0893095ba8 +msgid "Return the number of pages of a chapter." +msgstr "" + +#: ../../document.rst:539 967dfc416734482196f7a8ffa7d45bd4 +msgid "the 0-based chapter number." +msgstr "" + +#: ../../document.rst:542 2a83ec2d4ea54b1897eeb50f82566adc +msgid "" +"number of pages in chapter. Relevant only for document types with chapter" +" support (EPUB currently)." +msgstr "" + +#: ../../document.rst:549 162f24578e6749c8ada15b85d4be6bea +msgid "Return the location of the following page." +msgstr "" + +#: ../../document.rst:551 ../../document.rst:562 +#: 76dcbeac58be4a63aa5feb22ccbcc31e b635038017484753aa510b172311664a +msgid "" +"the current page id. This must be a tuple *(chapter, pno)* identifying an" +" existing page." +msgstr "" + +#: ../../document.rst:553 077a38466aeb4464b21c75847fc03419 +msgid "" +"The tuple of the following page, i.e. either *(chapter, pno + 1)* or " +"*(chapter + 1, 0)*, **or** the empty tuple *()* if the argument was the " +"last page. Relevant only for document types with chapter support (EPUB " +"currently)." +msgstr "" + +#: ../../document.rst:560 540ac91bacd24f2184f90373daac0a7e +msgid "Return the locator of the preceding page." +msgstr "" + +#: ../../document.rst:564 bec578e6b61c4cc9b0f254bbcb0f48b7 +msgid "" +"The tuple of the preceding page, i.e. either *(chapter, pno - 1)* or the " +"last page of the preceding chapter, **or** the empty tuple *()* if the " +"argument was the first page. Relevant only for document types with " +"chapter support (EPUB currently)." +msgstr "" + +#: ../../document.rst:569 68dfefa5502f425289fc497e0d9c6238 +msgid "" +"Changed in v1.17.0: For document types supporting a so-called \"chapter " +"structure\" (like EPUB), pages can also be loaded via the combination of " +"chapter number and relative page number, instead of the absolute page " +"number. This should **significantly speed up access** for large " +"documents." +msgstr "" + +#: ../../document.rst:571 e7a2e814cced49258d2f9b21245d2ce6 +msgid "" +"Create a :ref:`Page` object for further processing (like rendering, text " +"searching, etc.)." +msgstr "" + +#: ../../document.rst:573 ac4b297778cb465a83c732f4f6565380 +msgid "" +"*(Changed in v1.17.0)* Either a 0-based page number, or a tuple " +"*(chapter, pno)*. For an **integer**, any `-∞ < page_id < page_count` is " +"acceptable. While page_id is negative, :attr:`page_count` will be added " +"to it. For example: to load the last page, you can use " +"*doc.load_page(-1)*. After this you have page.number = doc.page_count - " +"1. For a tuple, *chapter* must be in range " +":attr:`Document.chapter_count`, and *pno* must be in range " +":meth:`Document.chapter_page_count` of that chapter. Both values are " +"0-based. Using this notation, :attr:`Page.number` will equal the given " +"tuple. Relevant only for document types with chapter support (EPUB " +"currently)." +msgstr "" + +#: ../../document.rst:573 b9bae2aee5bb433692e4d9ced23afc6b +msgid "*(Changed in v1.17.0)*" +msgstr "" + +#: ../../document.rst:575 17221ad920ec4edda2e3f56e1ee986a5 +msgid "" +"Either a 0-based page number, or a tuple *(chapter, pno)*. For an " +"**integer**, any `-∞ < page_id < page_count` is acceptable. While page_id" +" is negative, :attr:`page_count` will be added to it. For example: to " +"load the last page, you can use *doc.load_page(-1)*. After this you have " +"page.number = doc.page_count - 1." +msgstr "" + +#: ../../document.rst:577 039ea62786ac4483a2ff851942f8e61e +msgid "" +"For a tuple, *chapter* must be in range :attr:`Document.chapter_count`, " +"and *pno* must be in range :meth:`Document.chapter_page_count` of that " +"chapter. Both values are 0-based. Using this notation, " +":attr:`Page.number` will equal the given tuple. Relevant only for " +"document types with chapter support (EPUB currently)." +msgstr "" + +#: ../../document.rst:579 ../../document.rst:683 ../../document.rst:1452 +#: 0006a5a1428c489b85ee1ef72f368b66 1abd4533c839432f8b762c82cf15dc63 +#: 78a10b5d4c74403ab6e8fb90b05f6cc0 +msgid ":ref:`Page`" +msgstr "" + +#: ../../document.rst:583 d4516954d08e43daae3d737a83243151 +msgid "" +"Documents also follow the Python sequence protocol with page numbers as " +"indices: *doc.load_page(n) == doc[n]*." +msgstr "" + +#: ../../document.rst:585 caf16253efc94349815ad78668652297 +msgid "" +"For **absolute page numbers** only, expressions like *\"for page in doc: " +"...\"* and *\"for page in reversed(doc): ...\"* will successively yield " +"the document's pages. Refer to :meth:`Document.pages` which allows " +"processing pages as with slicing." +msgstr "" + +#: ../../document.rst:587 4eec9f75b1a648e5954520327f163582 +msgid "" +"You can also use index notation with the new chapter-based page " +"identification: use *page = doc[(5, 2)]* to load the third page of the " +"sixth chapter." +msgstr "" + +#: ../../document.rst:589 d88b05b23ebe48cdbc81a8716291829e +msgid "" +"To maintain a consistent API, for document types not supporting a chapter" +" structure (like PDFs), :attr:`Document.chapter_count` is 1, and pages " +"can also be loaded via tuples *(0, pno)*. See this [#f3]_ footnote for " +"comments on performance improvements." +msgstr "" + +#: ../../document.rst:594 5877b0a8ee034827a6486e55a27c1721 +msgid "" +"PDF only: Walk through all images and rewrite them according to the " +"specified parameters. This is useful for reducing file size, changing " +"image formats, or converting color spaces." +msgstr "" + +#: ../../document.rst:596 1894640743d14d81939992952b89a89f +msgid "" +"The typical usage is extra compression of images for significantly " +"reducing the file size of the PDF. When setting quality and the dpi " +"parameters to positive values and accepting defaults for the rest, the " +"following will happen:" +msgstr "" + +#: ../../document.rst:598 3a74a4a4263048e1bfc0579a97bb35b8 +msgid "" +"Lossy and lossless images will be rewritten as JPEG images " +"(FZ_RECOMPRESS_JPEG) as far as technically possible." +msgstr "" + +#: ../../document.rst:600 01a553ed3bbe401db8ad3152294f8695 +msgid "" +"Bitonal (monochrome) images will be rewritten in FAX format " +"(FZ_RECOMPRESS_FAX)." +msgstr "" + +#: ../../document.rst:602 38e8687fa2994142bc5da75bec6d83e2 +msgid "Subsampling method is **FZ_SUBSAMPLE_AVERAGE** (see below)." +msgstr "" + +#: ../../document.rst:604 79b3413d2429401d99ae3a43030056f6 +msgid "" +"target DPI value for the resampled images. Ignored if `dpi_threshold` is " +"`None`, otherwise must be less than `dpi_threshold` and positive." +msgstr "" + +#: ../../document.rst:606 41d9689ed361448fbcb5a13023c76806 +msgid "" +"If None (the default) no resampling takes place. Otherwise images with a " +"DPI value larger than this will be resampled to `dpi_target` (which must " +"be less than `dpi_threshold`)." +msgstr "" + +#: ../../document.rst:608 29da9ea4d0af4d69a22f61ffa363e949 +msgid "" +"desired target JPEG quality, a value between 0 and 100. 0 means no " +"quality change, 100 means best quality." +msgstr "" + +#: ../../document.rst:610 1aa75d1dd8f3426d8dcb2ebb3b2e4c90 +msgid "include lossy image types (e.g. JPEG)." +msgstr "" + +#: ../../document.rst:612 9697131e0d414bb4933c23e702734b4d +msgid "include lossless image types (e.g. PNG)." +msgstr "" + +#: ../../document.rst:614 0c8117c9cafd459880a5aec4cc9d974d +msgid "include black-and-white images (e.g. FAX)." +msgstr "" + +#: ../../document.rst:616 21bb122962844205b76401ccbbb01a30 +msgid "include colored images." +msgstr "" + +#: ../../document.rst:618 2eb49df120b7429296a9281ccd362ad8 +msgid "include grayscale images." +msgstr "" + +#: ../../document.rst:620 b54e5d5881bd40679b8c78f0b46f72ec +msgid "" +"if True, the PDF will be converted to grayscale by executing " +":meth:`Document.recolor` before all image processing. Please note that " +"this will also change text and vector graphics to grayscale -- not just " +"the images." +msgstr "" + +#: ../../document.rst:622 3afbe56d4eae4bf291351d87ea284a07 +msgid "" +"This parameter is intended for expert users. Except ``set_to_gray``, all " +"other parameters are ignored. It must be an object prepared in the " +"following way: ``options = pymupdf.mupdf.PdfImageRewriterOptions()``. " +"Then attributes of this object can be set to achieve fine-grained " +"control. Following are the adjustable attributes of the ``options`` " +"object and their default (do nothing) values." +msgstr "" + +#: ../../document.rst:652 226b700f0609456da42369d0a574ec09 +msgid "" +"The ``*_recompress_method`` attributes may be one of the values " +"**FZ_RECOMPRESS_NEVER (0), FZ_RECOMPRESS_SAME (1), FZ_RECOMPRESS_LOSSLESS" +" (2), FZ_RECOMPRESS_JPEG (3), FZ_RECOMPRESS_J2K (4), FZ_RECOMPRESS_FAX " +"(5)**. Value FZ_RECOMPRESS_NEVER will skip this image type altogether and" +" FZ_RECOMPRESS_SAME will not change the type. The other values will " +"execute type conversions (as far as technically possible)." +msgstr "" + +#: ../../document.rst:654 28345897c04e47cb8bd7b419a399e52e +msgid "" +"The ``*_quality`` values are strings of integers from \"0\" to \"100\" or" +" ``None``." +msgstr "" + +#: ../../document.rst:656 431fb82d92d144e39a7eb33de4cee3d5 +msgid "" +"The ``*_subsample_method`` attributes are either **FZ_SUBSAMPLE_AVERAGE " +"(0)** or **FZ_SUBSAMPLE_BICUBIC (1)** and refer to how a pixel value is " +"derived from its neighboring pixels during subsampling. For some " +"background see `this Wikipedia article about bicubic interpolation " +"`_." +msgstr "" + +#: ../../document.rst:658 a5582d3eeef04969839b567872912234 +msgid "" +"Attributes ``*_subsample_threshold`` excludes images from subsampling " +"which have a lower DPI. Participating images will be subsampled to the " +"DPI values given by the ``*_subsample_to`` values. Values of 0 mean that " +"no subsampling will take place." +msgstr "" + +#: ../../document.rst:660 c5e4028872844f00bd7eb9ce4c910e75 +msgid "" +"The ``*_subsample_threshold`` values should be chosen notably larger than" +" the ``*_subsample_to`` values to ensure that there are enough size " +"savings. After all, every subsampling inevitably incurs quality losses." +msgstr "" + +#: ../../document.rst:662 4021cd52c00c475ca2229590caeff58a +msgid "An example for a good choice is ``threshold=100`` and ``to=72``." +msgstr "" + +#: ../../document.rst:667 62fadb98a46e4b6ab9224f097849e731 +msgid "" +"PDF only: Change the color component counts for all object types text, " +"images and vector graphics for all pages." +msgstr "" + +#: ../../document.rst:669 fac366c35c4f430489dc4d0814e4349d +msgid "" +"desired color space indicated by the number of color components: 1 = " +"DeviceGRAY, 3 = DeviceRGB, 4 = DeviceCMYK." +msgstr "" + +#: ../../document.rst:671 baaefdcc658142cfb2d0d72964381651 +msgid "" +"The typical use case is 1 (DeviceGRAY) which converts the PDF to " +"grayscale." +msgstr "" + +#: ../../document.rst:676 b3feb6280dce4bb68a6d09f67ad179e5 +msgid "New in v1.16.10" +msgstr "" + +#: ../../document.rst:678 e20ca78781fd4ff7a8ed580599a1ec63 +msgid "" +"PDF only: Provide a new copy of a page after finishing and updating all " +"pending changes." +msgstr "" + +#: ../../document.rst:680 d63490fa56354fc49d5d536ea547ebe1 +msgid "page object." +msgstr "" + +#: ../../document.rst:685 f33b5c1ccafd4b1c975285d4daf5b37d +msgid "" +"a new copy of the same page. All pending updates (e.g. to annotations or " +"widgets) will be finalized and a fresh copy of the page will be loaded. " +".. note:: In a typical use case, a page :ref:`Pixmap` should be taken " +"after annotations / widgets have been added or changed. To force all " +"those changes being reflected in the page structure, this method re-" +"instates a fresh copy while keeping the object hierarchy \"document -> " +"page -> annotations/widgets\" intact." +msgstr "" + +#: ../../document.rst:685 5e83a01c5a4f43609931c09d2cd5bf4e +msgid "" +"a new copy of the same page. All pending updates (e.g. to annotations or " +"widgets) will be finalized and a fresh copy of the page will be loaded." +msgstr "" + +#: ../../document.rst:687 aa9f1f86225a4ad39148e534ef4be453 +msgid "" +"In a typical use case, a page :ref:`Pixmap` should be taken after " +"annotations / widgets have been added or changed. To force all those " +"changes being reflected in the page structure, this method re-instates a " +"fresh copy while keeping the object hierarchy \"document -> page -> " +"annotations/widgets\" intact." +msgstr "" + +#: ../../document.rst:692 e255e70994eb4eea840af29512883ee8 +msgid "PDF only: Convert destination names into a Python dict." +msgstr "" + +#: ../../document.rst:694 e3317825d1b84d09a0976e4563a7d1e8 +msgid "" +"A dictionary with the following layout: * *key*: (str) the name. * " +"*value*: (dict) with the following layout: * \"page\": target page " +"number (0-based). If no page number found -1. * \"to\": (x, y) target" +" point on page. Currently in PDF coordinates, i.e. point (0,0) is " +"the bottom-left of the page. * \"zoom\": (float) the zoom factor." +" * \"dest\": (str) only present if the target location on the page " +"has not been provided as \"/XYZ\" or if no page number was found. " +"Examples:: { '__bookmark_1': {'page': 0, 'to': (0.0, 541.0)," +" 'zoom': 0.0}, '__bookmark_2': {'page': 0, 'to': (0.0, 481.45), " +"'zoom': 0.0}, } or:: { " +"'21154a7c20684ceb91f9c9adc3b677c40': {'page': -1, 'dest': '/XYZ 15.75 " +"1486 0'}, ... }" +msgstr "" + +#: ../../document.rst:695 d974d89343f748ec8a5cc27429f3e94d +msgid "A dictionary with the following layout:" +msgstr "" + +#: ../../document.rst:697 f4ac483d1fc042b18a323b154eb5a4f2 +msgid "*key*: (str) the name." +msgstr "" + +#: ../../document.rst:703 333b90d0cade45ef8d3c12111bba5ae8 +msgid "*value*: (dict) with the following layout:" +msgstr "" + +#: ../../document.rst:699 1299456f72ed4127a7574602814bfe6f +msgid "\"page\": target page number (0-based). If no page number found -1." +msgstr "" + +#: ../../document.rst:700 7e4c618113094b25b9edc3ad8396e7bf +msgid "" +"\"to\": (x, y) target point on page. Currently in PDF coordinates, i.e. " +"point (0,0) is the bottom-left of the page." +msgstr "" + +#: ../../document.rst:702 cfa4c5d417154aa5a6c373ee783adb27 +msgid "\"zoom\": (float) the zoom factor." +msgstr "" + +#: ../../document.rst:703 37cf95d00aae40aaba647f6bc7c9e566 +msgid "" +"\"dest\": (str) only present if the target location on the page has not " +"been provided as \"/XYZ\" or if no page number was found." +msgstr "" + +#: ../../document.rst:705 4171adc015d64c7c9d92bebe575448f8 +msgid "Examples::" +msgstr "" + +#: ../../document.rst:712 d7fb5dcb203748afb273aac0c2a9a100 +msgid "or::" +msgstr "" + +#: ../../document.rst:719 a874c7048ebb4429a74d36e9cd9d1ca5 +msgid "" +"All names found in the catalog under keys \"/Dests\" and \"/Names/Dests\"" +" are included." +msgstr "" + +#: ../../document.rst:722 51b104ce68654b67ab928f76dddb73f1 +msgid "New in v1.23.6" +msgstr "" + +#: ../../document.rst:727 ../../document.rst:737 ../../document.rst:1166 +#: ../../document.rst:1176 ../../document.rst:1188 +#: 00ae9907f6a54b55baab674cf76aed28 2415dd9f180a4b7382a3d9297719fed0 +#: 27ca4d25a0534901a9ec78d94dced53f a3a52436d0f141078ff75591bac0f5bf +#: d5f1f55ab01a49bca5f15494ce1880e5 +msgid "New in v1.17.7" +msgstr "" + +#: ../../document.rst:729 abe5b967ce1c41568bb16dd577d6a71e +msgid "" +"PDF only: Return the unrotated page rectangle -- **without loading the " +"page** (via :meth:`Document.load_page`). This is meant for internal " +"purpose requiring best possible performance." +msgstr "" + +#: ../../document.rst:731 ../../document.rst:741 +#: 87245fe71e5749bbb5fdd8323971d38a 9aa5f7f4352646a6874011b4413b9eb2 +msgid "0-based page number." +msgstr "" + +#: ../../document.rst:733 8ae5e02a100d4c57be33964251202070 +msgid ":ref:`Rect` of the page like :meth:`Page.rect`, but ignoring any rotation." +msgstr "" + +#: ../../document.rst:739 afe91f4bac4e4f20b4d11da8c7b6a121 +msgid "" +"PDF only: Return the :data:`xref` of the page -- **without loading the " +"page** (via :meth:`Document.load_page`). This is meant for internal " +"purpose requiring best possible performance." +msgstr "" + +#: ../../document.rst:743 e13e841034c54a368597cae910b0bd41 +msgid ":data:`xref` of the page like :attr:`Page.xref`." +msgstr "" + +#: ../../document.rst:747 9212f6c6b841428ea6bd7592d5586fb1 +msgid "New in v1.16.4" +msgstr "" + +#: ../../document.rst:749 17449b4eba2f4041965b2d8d7fb19b83 +msgid "" +"A generator for a range of pages. Parameters have the same meaning as in " +"the built-in function *range()*. Intended for expressions of the form " +"*\"for page in doc.pages(start, stop, step): ...\"*." +msgstr "" + +#: ../../document.rst:751 775c0864ae46420c9c3f515b377a7e2e +msgid "" +"start iteration with this page number. Default is zero, allowed values " +"are `-∞ < start < page_count`. While this is negative, :attr:`page_count`" +" is added **before** starting the iteration." +msgstr "" + +#: ../../document.rst:752 99edc914fc1f455b97fabaf836e1ebbf +msgid "" +"stop iteration at this page number. Default is :attr:`page_count`, " +"possible are `-∞ < stop <= page_count`. Larger values are **silently " +"replaced** by the default. Negative values will cyclically emit the pages" +" in reversed order. As with the built-in *range()*, this is the first " +"page **not** returned." +msgstr "" + +#: ../../document.rst:753 94a16241b73e479a8fb39b6e7ecdf23b +msgid "" +"stepping value. Defaults are 1 if start < stop and -1 if start > stop. " +"Zero is not allowed." +msgstr "" + +#: ../../document.rst:755 a7bd93c5ab5640fd8a828ca438a31865 +msgid "" +"a generator iterator over the document's pages. Some examples: * " +"\"doc.pages()\" emits all pages. * \"doc.pages(4, 9, 2)\" emits pages 4, " +"6, 8. * \"doc.pages(0, None, 2)\" emits all pages with even numbers. * " +"\"doc.pages(-2)\" emits the last two pages. * \"doc.pages(-1, -1)\" emits" +" all pages in reversed order. * \"doc.pages(-1, -10)\" always emits 10 " +"pages in reversed order, starting with the last page -- **repeatedly** if" +" the document has less than 10 pages. So for a 4-page document the " +"following page numbers are emitted: 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, " +"3." +msgstr "" + +#: ../../document.rst:755 cc92b04eb37d4654ac39f335cb55af6e +msgid "a generator iterator over the document's pages. Some examples:" +msgstr "" + +#: ../../document.rst:757 2aee4283e6af403382105fb2889ef17e +msgid "\"doc.pages()\" emits all pages." +msgstr "" + +#: ../../document.rst:758 56483ad2fcb04e8ab0aec6fd11cb6e1f +msgid "\"doc.pages(4, 9, 2)\" emits pages 4, 6, 8." +msgstr "" + +#: ../../document.rst:759 5cd6a791eadb403db8d65526627bdb2d +msgid "\"doc.pages(0, None, 2)\" emits all pages with even numbers." +msgstr "" + +#: ../../document.rst:760 20d5d59f55454cbf886fcc21995dad97 +msgid "\"doc.pages(-2)\" emits the last two pages." +msgstr "" + +#: ../../document.rst:761 591d03692b724c96b7a6d853e1e12b95 +msgid "\"doc.pages(-1, -1)\" emits all pages in reversed order." +msgstr "" + +#: ../../document.rst:762 630fb05a54d244e7b9f565ba6c0792b3 +msgid "" +"\"doc.pages(-1, -10)\" always emits 10 pages in reversed order, starting " +"with the last page -- **repeatedly** if the document has less than 10 " +"pages. So for a 4-page document the following page numbers are emitted: " +"3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3." +msgstr "" + +#: ../../document.rst:771 0fa355e484264f9abb37a38413d80d59 +msgid "" +"Create a PDF version of the current document and write it to memory. " +"**All document types** are supported. The parameters have the same " +"meaning as in :meth:`insert_pdf`. In essence, you can restrict the " +"conversion to a page subset, specify page rotation, and revert page " +"sequence." +msgstr "" + +#: ../../document.rst:773 f660af86d92b44218c359971345422f9 +msgid "first page to copy (0-based). Default is first page." +msgstr "" + +#: ../../document.rst:775 3d05e54e25ec4883ba7e2f21584ced49 +msgid "last page to copy (0-based). Default is last page." +msgstr "" + +#: ../../document.rst:777 e908fe6a3ae046c19144a9205411192b +msgid "" +"rotation angle. Default is 0 (no rotation). Should be *n * 90* with an " +"integer n (not checked)." +msgstr "" + +#: ../../document.rst:780 85de97fa9e5449bc9293fe03eef6116f +msgid "" +"a Python *bytes* object containing a PDF file image. It is created by " +"internally using `tobytes(garbage=4, deflate=True)`. See :meth:`tobytes`." +" You can output it directly to disk or open it as a PDF. Here are some " +"examples:: >>> # convert an XPS file to PDF >>> xps = " +"pymupdf.open(\"some.xps\") >>> pdfbytes = xps.convert_to_pdf() >>> >>> # " +"either do this --> >>> pdf = pymupdf.open(\"pdf\", pdfbytes) >>> " +"pdf.save(\"some.pdf\") >>> >>> # or this --> >>> pdfout = " +"open(\"some.pdf\", \"wb\") >>> pdfout.tobytes(pdfbytes) >>> " +"pdfout.close() >>> # copy image files to PDF pages >>> # each page will " +"have image dimensions >>> doc = pymupdf.open() # new " +"PDF >>> imglist = [ ... image file names ...] # e.g. a directory listing " +">>> for img in imglist: imgdoc=pymupdf.open(img) # open" +" image as a document pdfbytes=imgdoc.convert_to_pdf() # make a " +"1-page PDF of it imgpdf=pymupdf.open(\"pdf\", pdfbytes) " +"doc.insert_pdf(imgpdf) # insert the image PDF >>> " +"doc.save(\"allmyimages.pdf\")" +msgstr "" + +#: ../../document.rst:780 20b5ab52b58544c4999de0b6274f05b2 +msgid "" +"a Python *bytes* object containing a PDF file image. It is created by " +"internally using `tobytes(garbage=4, deflate=True)`. See :meth:`tobytes`." +" You can output it directly to disk or open it as a PDF. Here are some " +"examples::" +msgstr "" + +#: ../../document.rst:806 d8485f88d433407bb0cd60e194f20727 +msgid "" +"The method uses the same logic as the *mutool convert* CLI. This works " +"very well in most cases -- however, beware of the following limitations." +msgstr "" + +#: ../../document.rst:808 357cacd34cd642f39b1da1f75056dc90 +msgid "" +"Image files: perfect, no issues detected. However, image transparency is " +"ignored. If you need that (like for a watermark), use " +":meth:`Page.insert_image` instead. Otherwise, this method is recommended " +"for its much better performance." +msgstr "" + +#: ../../document.rst:809 06b36e92e8d645b7bc68371b93dbc572 +msgid "" +"XPS: appearance very good. Links work fine, outlines (bookmarks) are " +"lost, but can easily be recovered [#f2]_." +msgstr "" + +#: ../../document.rst:810 8d7b046661b24660b15edfc764b15786 +msgid "EPUB, CBZ, FB2: similar to XPS." +msgstr "" + +#: ../../document.rst:811 78e1835be7ce41eaa08865503b86c38c +msgid "" +"SVG: medium. Roughly comparable to `svglib " +"`_." +msgstr "" + +#: ../../document.rst:815 55fb4e92b6f84d06b5b5c8aec273b3e2 +msgid "Creates a table of contents (TOC) out of the document's outline chain." +msgstr "" + +#: ../../document.rst:817 3c16d727444c4c31980289c39d4e07b3 +msgid "" +"Indicates whether a simple or a detailed TOC is required. If ``False``, " +"each item of the list also contains a dictionary with :ref:`linkDest` " +"details for each outline entry." +msgstr "" + +#: ../../document.rst:821 e45ac6b1b63f4d28b26628339a2251b7 +msgid "" +"a list of lists. Each entry has the form *[lvl, title, page, dest]*. Its " +"entries have the following meanings: * *lvl* -- hierarchy level " +"(positive *int*). The first entry is always 1. Entries in a row are " +"either **equal**, **increase** by 1, or **decrease** by any number. * " +"*title* -- title (*str*) * *page* -- 1-based source page number (*int*). " +"`-1` if no destination or outside document. * *dest* -- (*dict*) included" +" only if *simple=False*. Contains details of the TOC item as follows: " +"- kind: destination kind, see :ref:`linkDest Kinds`. - file: filename " +"if kind is :data:`LINK_GOTOR` or :data:`LINK_LAUNCH`. - page: target " +"page, 0-based, :data:`LINK_GOTOR` or :data:`LINK_GOTO` only. - to: " +"position on target page (:ref:`Point`). - zoom: (float) zoom factor on " +"target page. - xref: :data:`xref` of the item (0 if no PDF). - color:" +" item color in PDF RGB format `(red, green, blue)`, or omitted (always " +"omitted if no PDF). - bold: true if bold item text or omitted. PDF " +"only. - italic: true if italic item text, or omitted. PDF only. - " +"collapse: true if sub-items are folded, or omitted. PDF only. - " +"nameddest: target name if kind=4. PDF only. (New in 1.23.7.)" +msgstr "" + +#: ../../document.rst:821 1f4b3e4744174653ae693109208dc49e +msgid "" +"a list of lists. Each entry has the form *[lvl, title, page, dest]*. Its " +"entries have the following meanings:" +msgstr "" + +#: ../../document.rst:823 e192fb552d1c4616a8fb7a8144812e58 +msgid "" +"*lvl* -- hierarchy level (positive *int*). The first entry is always 1. " +"Entries in a row are either **equal**, **increase** by 1, or **decrease**" +" by any number." +msgstr "" + +#: ../../document.rst:824 29ecc17d35fa4115831c070fb3dc3da6 +msgid "*title* -- title (*str*)" +msgstr "" + +#: ../../document.rst:825 b5a9d59ce8954429a123261cd1e5e2ce +msgid "" +"*page* -- 1-based source page number (*int*). `-1` if no destination or " +"outside document." +msgstr "" + +#: ../../document.rst:826 1ed7122c8921425fa82f34ab81b0e14a +msgid "" +"*dest* -- (*dict*) included only if *simple=False*. Contains details of " +"the TOC item as follows:" +msgstr "" + +#: ../../document.rst:828 18fd10a0fe68426b8268f99befab8ea5 +msgid "kind: destination kind, see :ref:`linkDest Kinds`." +msgstr "" + +#: ../../document.rst:829 aeeca928a4f149d4b22d0f844cb317ce +msgid "file: filename if kind is :data:`LINK_GOTOR` or :data:`LINK_LAUNCH`." +msgstr "" + +#: ../../document.rst:830 21331bc906fb47aa9693dfe714690418 +msgid "page: target page, 0-based, :data:`LINK_GOTOR` or :data:`LINK_GOTO` only." +msgstr "" + +#: ../../document.rst:831 129a6492e95f4d6b9235c8566486f1cd +msgid "to: position on target page (:ref:`Point`)." +msgstr "" + +#: ../../document.rst:832 1760adf4a8fe4f5d916c06a0718c0b3c +msgid "zoom: (float) zoom factor on target page." +msgstr "" + +#: ../../document.rst:833 b72db90d2fd5463883c5566c8d708676 +msgid "xref: :data:`xref` of the item (0 if no PDF)." +msgstr "" + +#: ../../document.rst:834 ef52959e5a364bbdbede8eba835399d0 +msgid "" +"color: item color in PDF RGB format `(red, green, blue)`, or omitted " +"(always omitted if no PDF)." +msgstr "" + +#: ../../document.rst:835 c6abd3655b1041c49d660425bdda3b9d +msgid "bold: true if bold item text or omitted. PDF only." +msgstr "" + +#: ../../document.rst:836 790bd5ed794d4267aa960bc8d4ea5458 +msgid "italic: true if italic item text, or omitted. PDF only." +msgstr "" + +#: ../../document.rst:837 7a972813f0bc46f2aec437108637c21c +msgid "collapse: true if sub-items are folded, or omitted. PDF only." +msgstr "" + +#: ../../document.rst:838 0a4c3b65b69e40f2bc742b0f74fa774e +msgid "nameddest: target name if kind=4. PDF only. (New in 1.23.7.)" +msgstr "" + +#: ../../document.rst:845 a5836c5cdff0458b8bee0e893e323504 +msgid "" +"PDF only: Return the PDF dictionary keys of the :data:`dictionary` object" +" provided by its xref number." +msgstr "" + +#: ../../document.rst:847 05b0b53203ac4aa9b0d24d401d355137 +msgid "" +"the :data:`xref`. *(Changed in v1.18.10)* Use `-1` to access the special " +"dictionary \"PDF trailer\"." +msgstr "" + +#: ../../document.rst:849 608982aaeb9c4e0483f619e22304399f +msgid "" +"a tuple of dictionary keys present in object :data:`xref`. Examples: >>>" +" from pprint import pprint >>> import pymupdf >>> " +"doc=pymupdf.open(\"pymupdf.pdf\") >>> xref = doc.page_xref(0) # xref of " +"page 0 >>> pprint(doc.xref_get_keys(xref)) # primary level keys of a " +"page ('Type', 'Contents', 'Resources', 'MediaBox', 'Parent') >>> " +"pprint(doc.xref_get_keys(-1)) # primary level keys of the trailer " +"('Type', 'Index', 'Size', 'W', 'Root', 'Info', 'ID', 'Length', 'Filter') " +">>>" +msgstr "" + +#: ../../document.rst:849 df215624f145490e82a53931b1a144ba +msgid "a tuple of dictionary keys present in object :data:`xref`. Examples:" +msgstr "" + +#: ../../document.rst:866 6575211909ea416eb59abe9e9d74b18a +msgid "" +"PDF only: Return type and value of a PDF dictionary key of a " +":data:`dictionary` object given by its xref." +msgstr "" + +#: ../../document.rst:868 e72020a16f2c46d9b9c110390a8ef3b8 +msgid "" +"the :data:`xref`. *Changed in v1.18.10:* Use `-1` to access the special " +"dictionary \"PDF trailer\"." +msgstr "" + +#: ../../document.rst:870 15710a8605c242738c9d34bc9295c2a8 +msgid "" +"the desired PDF key. Must **exactly** match (case-sensitive) one of the " +"keys contained in :meth:`Document.xref_get_keys`." +msgstr "" + +#: ../../document.rst:874 1d8b5b14cc604c8097524b1e8ce3bd1a +msgid "" +"A tuple (type, value) of strings, where type is one of \"xref\", " +"\"array\", \"dict\", \"int\", \"float\", \"null\", \"bool\", \"name\", " +"\"string\" or \"unknown\" (should not occur). Independent of \"type\", " +"the value of the key is **always** formatted as a string -- see the " +"following example -- and (almost always) a faithful reflection of what is" +" stored in the PDF. In most cases, the format of the value string also " +"gives a clue about the key type:" +msgstr "" + +#: ../../document.rst:876 f3a754b526724add862cf709d3e6a80f +msgid "A \"name\" always starts with a \"/\" slash." +msgstr "" + +#: ../../document.rst:877 156bcb3e4be0431a950ef8733fb4726f +msgid "An \"xref\" always ends with \" 0 R\"." +msgstr "" + +#: ../../document.rst:878 028b075a7b6743b4992177c05b64dd3c +msgid "An \"array\" is always enclosed in \"[...]\" brackets." +msgstr "" + +#: ../../document.rst:879 498042f7ba7941f489e490897176da71 +msgid "A \"dict\" is always enclosed in \"<<...>>\" brackets." +msgstr "" + +#: ../../document.rst:880 9a602b09b09445b8ab3a85710d4daff4 +msgid "" +"A \"bool\", resp. \"null\" always equal either \"true\", \"false\", resp." +" \"null\"." +msgstr "" + +#: ../../document.rst:881 3599f60a08a442d2a3fe36a99d5cbfbe +msgid "" +"\"float\" and \"int\" are represented by their string format -- and are " +"thus not always distinguishable." +msgstr "" + +#: ../../document.rst:882 178b674795594e1d8c179336c614b1c2 +msgid "" +"A \"string\" is converted to UTF-8 and may therefore deviate from what is" +" stored in the PDF. For example, the PDF key \"Author\" may have a value " +"of \"\" in the " +"file, but the method will return `('string', 'Jorj X. McKie')`." +msgstr "" + +#: ../../document.rst:911 5ec6251f88fd4c9a8f9aa0c0de4ef793 +msgid "New in v1.18.7, changed in v 1.18.13" +msgstr "" + +#: ../../document.rst:912 277a8925b1254249865a344d4e15ce92 +msgid "Changed in v1.19.4: remove a key \"physically\" if set to \"null\"." +msgstr "" + +#: ../../document.rst:914 3800031db9924e0b93e21a204f5abfd2 +msgid "" +"PDF only: Set (add, update, delete) the value of a PDF key for the " +":data:`dictionary` object given by its xref." +msgstr "" + +#: ../../document.rst:916 87400e3bfd904856bd104cdc238c25ef +msgid "" +"This is an expert function: if you do not know what you are doing, there " +"is a high risk to render (parts of) the PDF unusable. Please do consult " +":ref:`AdobeManual` about object specification formats (page 18) and the " +"structure of special dictionary types like page objects." +msgstr "" + +#: ../../document.rst:918 249156cd0aa4484c824c8bd971c5f55d +msgid "" +"the :data:`xref`. *Changed in v1.18.13:* To update the PDF trailer, " +"specify -1." +msgstr "" + +#: ../../document.rst:919 defb25fd803549ecbd76352234501833 +msgid "" +"the desired PDF key (without leading \"/\"). Must not be empty. Any valid" +" PDF key -- whether already present in the object (which will be " +"overwritten) -- or new. It is possible to use PDF path notation like " +"`\"Resources/ExtGState\"` -- which sets the value for key " +"`\"/ExtGState\"` as a sub-object of `\"/Resources\"`." +msgstr "" + +#: ../../document.rst:920 90eda3333fa54a88ba8598e27bdc720a +msgid "" +"the value for the key. It must be a non-empty string and, depending on " +"the desired PDF object type, the following rules must be observed. There " +"is some syntax checking, but **no type checking** and no checking if it " +"makes sense PDF-wise, i.e. **no semantics checking**. Upper / lower case " +"is important!" +msgstr "" + +#: ../../document.rst:922 a7fd503efdb34cf08f1886ee7162fb2f +msgid "" +"*:data:`xref`* -- must be provided as `\"nnn 0 R\"` with a valid " +":data:`xref` number nnn of the PDF. The suffix \"`0 R`\" is required to " +"be recognizable as an xref by PDF applications." +msgstr "" + +#: ../../document.rst:923 80568ddddb28424aafbeb4bfb8629262 +msgid "" +"**array** -- a string like `\"[a b c d e f]\"`. The brackets are " +"required. Array items must be separated by at least one space (not commas" +" like in Python). An empty array `\"[]\"` is possible and *equivalent* to" +" removing the key. Array items may be any PDF objects, like dictionaries," +" xrefs, other arrays, etc. Like in Python, array items may be of " +"different types." +msgstr "" + +#: ../../document.rst:924 8776c9b8b4a24c0591f8ceec49ed2dca +msgid "" +"**dict** -- a string like `\"<< ... >>\"`. The brackets are required and " +"must enclose a valid PDF dictionary definition. The empty dictionary " +"`\"<<>>\"` is possible and *equivalent* to removing the key." +msgstr "" + +#: ../../document.rst:925 e8b31a1d2c3a4878a02465e970ff484d +msgid "**int** -- an integer formatted **as a string**." +msgstr "" + +#: ../../document.rst:926 4efb1d2d1f8248bd9c93bdbed526f048 +msgid "" +"**float** -- a float formatted **as a string**. Scientific notation (with" +" exponents) is **not allowed by PDF**." +msgstr "" + +#: ../../document.rst:927 28ad2273e2b04ec1a4e28b1e8627be22 +msgid "" +"**null** -- the string `\"null\"`. This is the PDF equivalent to Python's" +" `None` and causes the key to be ignored -- however not necessarily " +"removed, resp. removed on saves with garbage collection. *Changed in " +"v1.19.4:* If the key is no path hierarchy (i.e. contains no slash \"/\")," +" then it will be completely removed." +msgstr "" + +#: ../../document.rst:928 adabb0e0f0ed4a6681b1296c1502547a +msgid "**bool** -- one of the strings `\"true\"` or `\"false\"`." +msgstr "" + +#: ../../document.rst:929 1594ca312d7f48acbc4d82268247f9ee +msgid "" +"**name** -- a valid PDF name with a leading slash like this: " +"`\"/PageLayout\"`. See page 16 of the :ref:`AdobeManual`." +msgstr "" + +#: ../../document.rst:930 28a5e09473bf4296a58a3ec3460e12be +msgid "" +"**string** -- a valid PDF string. **All PDF strings must be enclosed by " +"brackets**. Denote the empty string as `\"()\"`. Depending on its " +"content, the possible brackets are" +msgstr "" + +#: ../../document.rst:932 bf4426b2937d496185dc5ca3086d1560 +msgid "" +"\"(...)\" for ASCII-only text. Reserved PDF characters must be backslash-" +"escaped and non-ASCII characters must be provided as 3-digit backslash-" +"escaped octals -- including leading zeros. Example: 12 = 0x0C must be " +"encoded as `\\014`." +msgstr "" + +#: ../../document.rst:933 b3138023eeab42d8976d82ae328a48e7 +msgid "" +"\"<...>\" for hex-encoded text. Every character must be represented by " +"two hex-digits (lower or upper case)." +msgstr "" + +#: ../../document.rst:935 04514ffed9104a3f82cba27d60dae539 +msgid "" +"If in doubt, we **strongly recommend** to use :meth:`get_pdf_str`! This " +"function automatically generates the right brackets, escapes, and overall" +" format. It will for example do conversions like these:" +msgstr "" + +#: ../../document.rst:947 e157d6a6ebb44a58a5382b3125619640 +msgid "" +"Creates a pixmap from page *pno* (zero-based). Invokes " +":meth:`Page.get_pixmap`." +msgstr "" + +#: ../../document.rst:949 bb646c2e759e4d2bbee44f4ad97ec08e +msgid "All parameters except `pno` are *keyword-only.*" +msgstr "" + +#: ../../document.rst:951 663b27e190f34a04a42b233cf48b0d2d +msgid "page number, 0-based in `-∞ < pno < page_count`." +msgstr "" + +#: ../../document.rst:953 83e16eb54fbc471cbb9c5e21748734af +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../document.rst:957 4aaceb696b71426cac76aa4f65fadab7 +msgid "New in v1.16.13" +msgstr "" + +#: ../../document.rst:958 b4622be6eecf433d824b4e0092311b23 +msgid "Changed in v1.18.11" +msgstr "" + +#: ../../document.rst:960 a50d47a57f9a458cbdb6f4c19c9ecc2f +msgid "PDF only: Return a list of all XObjects referenced by a page." +msgstr "" + +#: ../../document.rst:962 ../../document.rst:977 ../../document.rst:1004 +#: b512284cd0944db08267225142b30973 b7a9d1c1640a44e49194253e80f28940 +#: bcc36ae910474f22b80c5aeb1e3cd296 +msgid "page number, 0-based, `-∞ < pno < page_count`." +msgstr "" + +#: ../../document.rst:965 c4fd71139bd44bb8ada4e97a475737cd +msgid "" +"a list of (non-image) XObjects. These objects typically represent pages " +"*embedded* (not copied) from other PDFs. For example, " +":meth:`Page.show_pdf_page` will create this type of object. An item of " +"this list has the following layout: `(xref, name, invoker, bbox)`, where" +" * *:data:`xref`* (*int*) is the XObject's :data:`xref`. * **name** " +"(*str*) is the symbolic name to reference the XObject. * **invoker** " +"(*int*) the :data:`xref` of the invoking XObject or zero if the page " +"directly invokes it. * **bbox** (:ref:`Rect`) the boundary box of the " +"XObject's location on the page **in untransformed coordinates**. To get " +"actual, non-rotated page coordinates, multiply with the page's " +"transformation matrix :attr:`Page.transformation_matrix`. *Changed in " +"v.18.11:* the bbox is now formatted as :ref:`Rect`." +msgstr "" + +#: ../../document.rst:965 21d6f7f8ef56493e8984e44eec7d841b +msgid "" +"a list of (non-image) XObjects. These objects typically represent pages " +"*embedded* (not copied) from other PDFs. For example, " +":meth:`Page.show_pdf_page` will create this type of object. An item of " +"this list has the following layout: `(xref, name, invoker, bbox)`, where" +msgstr "" + +#: ../../document.rst:967 d6f78447afef45d7a168cf13ab89fbcc +msgid "*:data:`xref`* (*int*) is the XObject's :data:`xref`." +msgstr "" + +#: ../../document.rst:968 2f42c8f85790488dbce62e7093baa9c5 +msgid "**name** (*str*) is the symbolic name to reference the XObject." +msgstr "" + +#: ../../document.rst:969 2355cf43667b42aaae40b91b5a5937b9 +msgid "" +"**invoker** (*int*) the :data:`xref` of the invoking XObject or zero if " +"the page directly invokes it." +msgstr "" + +#: ../../document.rst:970 ce656f07b3d3474ba08d6e123b8117c4 +msgid "" +"**bbox** (:ref:`Rect`) the boundary box of the XObject's location on the " +"page **in untransformed coordinates**. To get actual, non-rotated page " +"coordinates, multiply with the page's transformation matrix " +":attr:`Page.transformation_matrix`. *Changed in v.18.11:* the bbox is now" +" formatted as :ref:`Rect`." +msgstr "" + +#: ../../document.rst:975 6fe8a93907b94d18969a4b9ab14c4359 +msgid "" +"PDF only: Return a list of all images (directly or indirectly) referenced" +" by the page." +msgstr "" + +#: ../../document.rst:978 9f4e6fd3f1e04b22a5a95840ab1550ff +msgid "" +"whether to also include the referencer's :data:`xref` (which is zero if " +"this is the page)." +msgstr "" + +#: ../../document.rst:982 4efb3fbf341f42098699c1b7689ee45c +msgid "" +"a list of images **referenced** by this page. Each item looks like: " +"`(xref, smask, width, height, bpc, colorspace, alt_colorspace, name, " +"filter, referencer)` * ``xref`` (*int*) is the image object number *" +" ``smask`` (*int*) is the object number of its soft-mask image * " +"``width`` (*int*) is the image width * ``height`` (*int*) is the image " +"height * ``bpc`` (*int*) denotes the number of bits per component " +"(normally 8) * ``colorspace`` (*str*) a string naming the colorspace " +"(like **DeviceRGB**) * ``alt_colorspace`` (*str*) is any alternate " +"colorspace depending on the value of **colorspace** * ``name`` (*str*) " +"is the symbolic name by which the image is referenced * ``filter`` " +"(*str*) is the decode filter of the image (:ref:`AdobeManual`, pp. 22)." +" * ``referencer`` (*int*) the :data:`xref` of the referencer. Zero if " +"directly referenced by the page. Only present if *full=True*." +msgstr "" + +#: ../../document.rst:982 8f9928f663504d3d9168282aed83e5cc +msgid "a list of images **referenced** by this page. Each item looks like:" +msgstr "" + +#: ../../document.rst:984 00f4ef107d1c4db385603c6339a76099 +msgid "" +"`(xref, smask, width, height, bpc, colorspace, alt_colorspace, name, " +"filter, referencer)`" +msgstr "" + +#: ../../document.rst:986 3d896dcb29714890a22bfb1f0ffc4a34 +msgid "``xref`` (*int*) is the image object number" +msgstr "" + +#: ../../document.rst:987 9acc8321d4094ed1b2397b95f2886d22 +msgid "``smask`` (*int*) is the object number of its soft-mask image" +msgstr "" + +#: ../../document.rst:988 0f53d4a9d9074947a83aab2d9a176cb1 +msgid "``width`` (*int*) is the image width" +msgstr "" + +#: ../../document.rst:989 35c2acc0727549249953c971d8917290 +msgid "``height`` (*int*) is the image height" +msgstr "" + +#: ../../document.rst:990 7413ba2b65df40ec96a73858402002a4 +msgid "``bpc`` (*int*) denotes the number of bits per component (normally 8)" +msgstr "" + +#: ../../document.rst:991 b43082aeae534bf3af1fdd913d40e5b1 +msgid "``colorspace`` (*str*) a string naming the colorspace (like **DeviceRGB**)" +msgstr "" + +#: ../../document.rst:992 029549b0601a446da7e5e1b15bdc3f5d +msgid "" +"``alt_colorspace`` (*str*) is any alternate colorspace depending on the " +"value of **colorspace**" +msgstr "" + +#: ../../document.rst:993 e2137f9fc6d845d4b63d058fc6cd19d3 +msgid "``name`` (*str*) is the symbolic name by which the image is referenced" +msgstr "" + +#: ../../document.rst:994 6676261a491d4bc4b0e9543f4d842080 +msgid "" +"``filter`` (*str*) is the decode filter of the image (:ref:`AdobeManual`," +" pp. 22)." +msgstr "" + +#: ../../document.rst:995 d92b9e1700fd4c62854642a1f6dde89c +msgid "" +"``referencer`` (*int*) the :data:`xref` of the referencer. Zero if " +"directly referenced by the page. Only present if *full=True*." +msgstr "" + +#: ../../document.rst:997 c07f09a4315a4410bcdfa4e0e35c5613 +msgid "" +"In general, this is not the list of images that are **actually " +"displayed**. This method only parses several PDF objects to collect " +"references to embedded images. It does not analyse the page's " +":data:`contents`, where all the actual image display commands are " +"defined. To get this information, please use :meth:`Page.get_image_info`." +" Also have a look at the discussion in section :ref:`textpagedict`." +msgstr "" + +#: ../../document.rst:1002 50688d36bbf24221a9c4c9d2d3383083 +msgid "" +"PDF only: Return a list of all fonts (directly or indirectly) referenced " +"by the page object definition." +msgstr "" + +#: ../../document.rst:1005 0f887570532b4208be1fe1b83d43adbc +msgid "" +"whether to also include the referencer's :data:`xref`. If ``True``, the " +"returned items are one entry longer. Use this option if you need to know," +" whether the page directly references the font. In this case the last " +"entry is 0. If the font is referenced by an `/XObject` of the page, you " +"will find its :data:`xref` here." +msgstr "" + +#: ../../document.rst:1009 b483bbc3f4c244c6acc8c409b25f1dd5 +msgid "" +"a list of fonts referenced by the object definition of the page. Each " +"entry looks like: `(xref, ext, type, basefont, name, encoding, " +"referencer)` * ``xref`` (*int*) is the font object number (may be " +"zero if the PDF uses one of the builtin fonts directly) * ``ext`` " +"(*str*) font file extension (e.g. \"ttf\", see :ref:`FontExtensions`)" +" * ``type`` (*str*) is the font type (like \"Type1\" or \"TrueType\" " +"etc.) * ``basefont`` (*str*) is the base font name, * ``name`` " +"(*str*) is the symbolic name, by which the font is referenced * " +"``encoding`` (*str*) the font's character encoding if different from its " +"built-in encoding (:ref:`AdobeManual`, p. 254): * ``referencer`` " +"(*int* optional) the :data:`xref` of the referencer. Zero if directly " +"referenced by the page, otherwise the xref of an XObject. Only present if" +" *full=True*." +msgstr "" + +#: ../../document.rst:1009 58bcdadb2ba8444d931f586e64adae5e +msgid "" +"a list of fonts referenced by the object definition of the page. Each " +"entry looks like:" +msgstr "" + +#: ../../document.rst:1011 4a04236fee1f48d1a11fcb7b3892c541 +msgid "`(xref, ext, type, basefont, name, encoding, referencer)`" +msgstr "" + +#: ../../document.rst:1013 82b62283f3904f859c1cfc7fd913aa3a +msgid "" +"``xref`` (*int*) is the font object number (may be zero if the PDF uses " +"one of the builtin fonts directly)" +msgstr "" + +#: ../../document.rst:1014 b281d41a2a104abc96fb433a1ccf6917 +msgid "" +"``ext`` (*str*) font file extension (e.g. \"ttf\", see " +":ref:`FontExtensions`)" +msgstr "" + +#: ../../document.rst:1015 a3da8b4719364cddb5b13b0530926e71 +msgid "``type`` (*str*) is the font type (like \"Type1\" or \"TrueType\" etc.)" +msgstr "" + +#: ../../document.rst:1016 a967a9a698a54fc6b11d779661ce60f1 +msgid "``basefont`` (*str*) is the base font name," +msgstr "" + +#: ../../document.rst:1017 614bd868a5294452b00f8986ef84424a +msgid "``name`` (*str*) is the symbolic name, by which the font is referenced" +msgstr "" + +#: ../../document.rst:1018 76630068ae7f4e588fb71e0a5e8fda81 +msgid "" +"``encoding`` (*str*) the font's character encoding if different from its " +"built-in encoding (:ref:`AdobeManual`, p. 254):" +msgstr "" + +#: ../../document.rst:1019 d9bbbba29f0d49179ac6534d71492729 +msgid "" +"``referencer`` (*int* optional) the :data:`xref` of the referencer. Zero " +"if directly referenced by the page, otherwise the xref of an XObject. " +"Only present if *full=True*." +msgstr "" + +#: ../../document.rst:1021 0754eb9f62d34168ad17f5bc693e308d +msgid "Example::" +msgstr "" + +#: ../../document.rst:1034 bf4929ce53d44735a61082c4227b290d +msgid "" +"This list has no duplicate entries: the combination of :data:`xref`, " +"*name* and *referencer* is unique." +msgstr "" + +#: ../../document.rst:1035 1b9423c83bd84bdfbc55c57f23bc2164 +msgid "" +"In general, this is a true superset of the fonts actually in use by this " +"page. The PDF creator may e.g. have specified some global list, of which " +"each page make only partial use." +msgstr "" + +#: ../../document.rst:1036 9b8712ad035b4ee5af594a3e164f7d0b +msgid "" +"Be aware that font names returned by some variants of " +":meth:`Page.get_text` (respectively :ref:`TextPage` methods) need not " +"(exactly) equal the base font name shown here. Reasons for any " +"differences include:" +msgstr "" + +#: ../../document.rst:1038 9e3187a8049f43a8ab6ba7659956a13b +msgid "" +"This method always shows any subset prefixes (the pattern ``ABCDEF+``), " +"whereas text extractions do not do this by default." +msgstr "" + +#: ../../document.rst:1039 0abee5e9efcf4f259b19dbbf3c112ac9 +msgid "" +"Text extractions use the base library to access the font name, which has " +"a length cap of 31 bytes and generally interrogates the font file binary " +"to access the name. Method ``get_page_fonts()`` however looks at the PDF " +"definition source." +msgstr "" + +#: ../../document.rst:1040 ceff7473261d4ef0af2e8cd13f8a1f2b +msgid "" +"Text extractions work for all supported document types in exactly the " +"same way -- not just for PDFs. Consequently they do not contain PDF-" +"specifics." +msgstr "" + +#: ../../document.rst:1044 b8db4c274c904f3e8d043eaf8c4fa329 +msgid "" +"Extracts the text of a page given its page number *pno* (zero-based). " +"Invokes :meth:`Page.get_text`." +msgstr "" + +#: ../../document.rst:1046 ab0bf8a80bdf468dae5fcab8e58d513e +msgid "page number, 0-based, any value `-∞ < pno < page_count`." +msgstr "" + +#: ../../document.rst:1048 27bf81508d0b4d2c934168e49148ac1b +msgid "For other parameter refer to the page method." +msgstr "" + +#: ../../document.rst:1060 881bca230ae54f04b7233142e165e1fc +msgid "" +"Re-paginate (\"reflow\") the document based on the given page dimension " +"and fontsize. This only affects some document types like e-books and " +"HTML. Ignored if not supported. Supported documents have ``True`` in " +"property :attr:`is_reflowable`." +msgstr "" + +#: ../../document.rst:1062 b4368178fd834f7cba473e3683f57587 +msgid "desired page size. Must be finite, not empty and start at point (0, 0)." +msgstr "" + +#: ../../document.rst:1063 ff2a60554e4c4e2a812c93fbdb80be62 +msgid "use it together with ``height`` as alternative to ``rect``." +msgstr "" + +#: ../../document.rst:1064 0ba8b89ec07f4191990fb69a81e9d18e +msgid "use it together with ``width`` as alternative to ``rect``." +msgstr "" + +#: ../../document.rst:1065 9073142bb51c42689875626b7abe5c25 +msgid "the desired default fontsize." +msgstr "" + +#: ../../document.rst:1069 a01cabf5e69f408980b2a61a12447312 +msgid "" +"PDF only: Keeps only those pages of the document whose numbers occur in " +"the list. Empty sequences or elements outside `range(doc.page_count)` " +"will cause a *ValueError*. For more details see remarks at the bottom or " +"this chapter." +msgstr "" + +#: ../../document.rst:1071 b811b2733b5a4543a065fd5bef0c2d19 +msgid "" +"The sequence (see :ref:`SequenceTypes`) of page numbers (zero-based) to " +"be included. Pages not in the sequence will be deleted (from memory) and " +"become unavailable until the document is reopened. **Page numbers can " +"occur multiple times and in any order:** the resulting document will " +"reflect the sequence exactly as specified." +msgstr "" + +#: ../../document.rst:1075 a0e792f0e7504785a8c3f46ae77381a0 +msgid "" +"Page numbers in the sequence need not be unique nor be in any particular " +"order. This makes the method a versatile utility to e.g. select only the " +"even or the odd pages or meeting some other criteria and so forth." +msgstr "" + +#: ../../document.rst:1077 a835fa5157904b5ab455cb2eb91f202c +msgid "" +"On a technical level, the method will always create a new " +":data:`pagetree`." +msgstr "" + +#: ../../document.rst:1079 ccc5be5dc4ae4ec0b2ef3ca6f735a437 +msgid "" +"When dealing with only a few pages, methods :meth:`copy_page`, " +":meth:`move_page`, :meth:`delete_page` are easier to use. In fact, they " +"are also **much faster** -- by at least one order of magnitude when the " +"document has many pages." +msgstr "" + +#: ../../document.rst:1084 6ea57c9287dc40f394387af6be79301e +msgid "" +"PDF only: Sets or updates the metadata of the document as specified in " +"*m*, a Python dictionary." +msgstr "" + +#: ../../document.rst:1086 8f5fd7f7e37241278a248b6dfdf47633 +msgid "" +"A dictionary with the same keys as *metadata* (see below). All keys are " +"optional. A PDF's format and encryption method cannot be set or changed " +"and will be ignored. If any value should not contain data, do not specify" +" its key or set the value to `None`. If you use *{}* all metadata " +"information will be cleared to the string *\"none\"*. If you want to " +"selectively change only some values, modify a copy of *doc.metadata* and " +"use it as the argument. Arbitrary unicode values are possible if " +"specified as UTF-8-encoded." +msgstr "" + +#: ../../document.rst:1088 378dd664bfff4b00a333924796f6afa1 +msgid "" +"*(Changed in v1.18.4)* Empty values or \"none\" are no longer written, " +"but completely omitted." +msgstr "" + +#: ../../document.rst:1092 7defc5da9e384a81910c8e57c5c08c9b +msgid "PDF only: Get the document XML metadata." +msgstr "" + +#: ../../document.rst:1095 022fd903a25f47d892ec5c148aa9731c +msgid "XML metadata of the document. Empty string if not present or not a PDF." +msgstr "" + +#: ../../document.rst:1099 3bc746006bd14cad95bbd71e15614ea4 +msgid "PDF only: Sets or updates XML metadata of the document." +msgstr "" + +#: ../../document.rst:1101 815c87ed354f45afb5034d3fa4df2b7a +msgid "" +"the new XML metadata. Should be XML syntax, however no checking is done " +"by this method and any string is accepted." +msgstr "" + +#: ../../document.rst:1106 ../../document.rst:1115 ../../document.rst:1124 +#: ../../document.rst:2062 ../../document.rst:2070 ../../document.rst:2078 +#: ../../document.rst:2086 ../../document.rst:2094 +#: 4956c403ef204b3a9535793528deea60 54acf2c9d3094866ada7757386c3c700 +#: 697a878d761047fb8f538a6c5d2b112d 897bf7c435d6499494abe2b762aa7625 +#: d481448871f2481096ebf5ba1c5cd890 e1271d18b89947ae8490b4cecbcc4277 +#: e7a671ebea5446029fd0019bf910f05a fc68fc012f1e4cbcbcf1e4f9c9adbca6 +msgid "New in v1.22.2" +msgstr "" + +#: ../../document.rst:1108 6095a410473445d68dd1082d0e3598f9 +msgid "PDF only: Set the `/PageLayout`." +msgstr "" + +#: ../../document.rst:1110 b8d4a1a8ad4c46a6bb4dc931bfb281a2 +msgid "" +"one of the strings \"SinglePage\", \"OneColumn\", \"TwoColumnLeft\", " +"\"TwoColumnRight\", \"TwoPageLeft\", \"TwoPageRight\". Lower case is " +"supported." +msgstr "" + +#: ../../document.rst:1117 83135c81dcbb41e49d6872b76d675476 +msgid "PDF only: Set the `/PageMode`." +msgstr "" + +#: ../../document.rst:1119 361f59248bed437f82de57b9c0cff394 +msgid "" +"one of the strings \"UseNone\", \"UseOutlines\", \"UseThumbs\", " +"\"FullScreen\", \"UseOC\", \"UseAttachments\". Lower case is supported." +msgstr "" + +#: ../../document.rst:1126 484c93332c134d25b3c8e46c7153b12a +msgid "PDF only: Set the `/MarkInfo` values." +msgstr "" + +#: ../../document.rst:1128 a217e06c6a7c47e1a6fe64aeadf09de5 +msgid "" +"a dictionary like this one: `{\"Marked\": False, \"UserProperties\": " +"False, \"Suspects\": False}`. This dictionary contains information about " +"the usage of Tagged PDF conventions. For details please see the `PDF " +"specifications `_." +msgstr "" + +#: ../../document.rst:1133 1a3785bb335b40d5b5f05f19d59dc55f +msgid "" +"PDF only: Replaces the **complete current outline** tree (table of " +"contents) with the one provided as the argument. After successful " +"execution, the new outline tree can be accessed as usual via " +":meth:`Document.get_toc` or via :attr:`Document.outline`. Like with other" +" output-oriented methods, changes become permanent only via :meth:`save` " +"(incremental save supported). Internally, this method consists of the " +"following two steps. For a demonstration see example below." +msgstr "" + +#: ../../document.rst:1135 fab5fac64dd3452580cdcccdd7303f00 +msgid "Step 1 deletes all existing bookmarks." +msgstr "" + +#: ../../document.rst:1137 3e9734d29cee4dd182cbcc2cfd77a07c +msgid "Step 2 creates a new TOC from the entries contained in *toc*." +msgstr "" + +#: ../../document.rst:1139 1e6897bee93b42f48e1da50ac920665c +msgid "" +"A list / tuple with **all bookmark entries** that should form the new " +"table of contents. Output variants of :meth:`get_toc` are acceptable. To " +"completely remove the table of contents specify an empty sequence or " +"None. Each item must be a list with the following format. * [lvl, title," +" page [, dest]] where - **lvl** is the hierarchy level (int > 0) of " +"the item, which **must be 1** for the first item and at most 1 larger " +"than the previous one. - **title** (str) is the title to be displayed." +" It is assumed to be UTF-8-encoded (relevant for multibyte code points " +"only). - **page** (int) is the target page number **(attention: " +"1-based)**. Must be in valid range if positive. Set it to -1 if there is " +"no target, or the target is external. - **dest** (optional) is a " +"dictionary or a number. If a number, it will be interpreted as the " +"desired height (in points) this entry should point to on the page. Use a " +"dictionary (like the one given as output by `get_toc(False)`) for a " +"detailed control of the bookmark's properties, see " +":meth:`Document.get_toc` for a description." +msgstr "" + +#: ../../document.rst:1141 fe3a1323fbad4254982338ebfe8c989f +msgid "" +"A list / tuple with **all bookmark entries** that should form the new " +"table of contents. Output variants of :meth:`get_toc` are acceptable. To " +"completely remove the table of contents specify an empty sequence or " +"None. Each item must be a list with the following format." +msgstr "" + +#: ../../document.rst:1143 85509f224b1249c4b5b63690222e9eb0 +msgid "[lvl, title, page [, dest]] where" +msgstr "" + +#: ../../document.rst:1145 690744393f344093958f9ddfa8f135c0 +msgid "" +"**lvl** is the hierarchy level (int > 0) of the item, which **must be 1**" +" for the first item and at most 1 larger than the previous one." +msgstr "" + +#: ../../document.rst:1147 0e0033a874d3456abc5787e7192d318d +msgid "" +"**title** (str) is the title to be displayed. It is assumed to be " +"UTF-8-encoded (relevant for multibyte code points only)." +msgstr "" + +#: ../../document.rst:1149 4803db27502949be9cae49f68a00c3c4 +msgid "" +"**page** (int) is the target page number **(attention: 1-based)**. Must " +"be in valid range if positive. Set it to -1 if there is no target, or the" +" target is external." +msgstr "" + +#: ../../document.rst:1151 de6ec335a2dc463b9619f7d960d55fd8 +msgid "" +"**dest** (optional) is a dictionary or a number. If a number, it will be " +"interpreted as the desired height (in points) this entry should point to " +"on the page. Use a dictionary (like the one given as output by " +"`get_toc(False)`) for a detailed control of the bookmark's properties, " +"see :meth:`Document.get_toc` for a description." +msgstr "" + +#: ../../document.rst:1153 4b2509feab4d42c1896479cb753f319a +msgid "" +"*(new in v1.16.9)* controls the hierarchy level beyond which outline " +"entries should initially show up collapsed. The default 1 will hence only" +" display level 1, higher levels must be unfolded using the PDF viewer. To" +" unfold everything, specify either a large integer, 0 or None." +msgstr "" + +#: ../../document.rst:1156 2e9ef17d9ad7433caf717d11a0bef04d +msgid "the number of inserted, resp. deleted items." +msgstr "" + +#: ../../document.rst:1158 cc6b2a61bf8745ad9a685a8bdb934307 +msgid "" +"Changed in v1.23.8: Destination 'to' coordinates should now be in the " +"same coordinate system as those returned by `get_toc()` (internally they " +"are now transformed with `page.cropbox` and `page.rotation_matrix`). So " +"for example `set_toc(get_toc())` now gives unchanged destination 'to' " +"coordinates." +msgstr "" + +#: ../../document.rst:1168 69ead51269304dd6b951d0f68345cb21 +msgid "" +"PDF only: Return the :data:`xref` of the outline item. This is mainly " +"used for internal purposes." +msgstr "" + +#: ../../document.rst:1170 ac5515f1060a4f2f8cfea8c5de047f36 +msgid "index of the item in list :meth:`Document.get_toc`." +msgstr "" + +#: ../../document.rst:1172 968f01ffca3d4358afb5662a933cd835 +msgid ":data:`xref`." +msgstr "" + +#: ../../document.rst:1177 34e33888ad8a4b238bbf919bd98c86cd +msgid "" +"Changed in v1.18.14: no longer remove the item's text, but show it " +"grayed-out." +msgstr "" + +#: ../../document.rst:1179 dd42c42f2ed74d9f9c635912f3d908da +msgid "" +"PDF only: Remove this TOC item. This is a high-speed method, which " +"**disables** the respective item, but leaves the overall TOC structure " +"intact. Physically, the item still exists in the TOC tree, but is shown " +"grayed-out and will no longer point to any destination." +msgstr "" + +#: ../../document.rst:1181 14518935bf6542a1909828b5acc5bb9d +msgid "" +"This also implies that you can reassign the item to a new destination " +"using :meth:`Document.set_toc_item`, when required." +msgstr "" + +#: ../../document.rst:1183 22d9b55991c34bb6b5b50464e9d3ede0 +msgid "the index of the item in list :meth:`Document.get_toc`." +msgstr "" + +#: ../../document.rst:1189 f97ad420e8f2448d89a3942f5f4ecdde +msgid "Changed in v1.18.6" +msgstr "" + +#: ../../document.rst:1191 f37714c941aa4caab4557723d10633c7 +msgid "" +"PDF only: Changes the TOC item identified by its index. Change the item " +"**title**, **destination**, **appearance** (color, bold, italic) or " +"collapsing sub-items -- or to remove the item altogether." +msgstr "" + +#: ../../document.rst:1193 28fc5be05b3a4afa92b7a5f95bbf478b +msgid "" +"Use this method if you need specific changes for selected entries only " +"and want to avoid replacing the complete TOC. This is beneficial " +"especially when dealing with large table of contents." +msgstr "" + +#: ../../document.rst:1195 288fc512c31544d3be554d8f5cce5cb9 +msgid "the index of the entry in the list created by :meth:`Document.get_toc`." +msgstr "" + +#: ../../document.rst:1196 a16b6cc4ad6a49e496bc2541ff752cfd +msgid "" +"the new destination. A dictionary like the last entry of an item in " +"`doc.get_toc(False)`. Using this as a template is recommended. When " +"given, **all other parameters are ignored** -- except title." +msgstr "" + +#: ../../document.rst:1197 8d519eb7f6f84aa586f6894b855ec1b4 +msgid "" +"the link kind, see :ref:`linkDest Kinds`. If :data:`LINK_NONE`, then all " +"remaining parameter will be ignored, and the TOC item will be removed -- " +"same as :meth:`Document.del_toc_item`. If None, then only the title is " +"modified and the remaining parameters are ignored. All other values will " +"lead to making a new destination dictionary using the subsequent " +"arguments." +msgstr "" + +#: ../../document.rst:1198 23d121f44ba448deb820d78571787db2 +msgid "" +"the 1-based page number, i.e. a value 1 <= pno <= doc.page_count. " +"Required for LINK_GOTO." +msgstr "" + +#: ../../document.rst:1199 32c7c87f9e8e403ab8146f49e7a37529 +msgid "the URL text. Required for LINK_URI." +msgstr "" + +#: ../../document.rst:1200 43fcbce5ce9847278bc2628a403f4e40 +msgid "the desired new title. None if no change." +msgstr "" + +#: ../../document.rst:1201 6840fbdc207c43779b48e2f8df7435b6 +msgid "" +"(optional) points to a coordinate on the target page. Relevant for " +"LINK_GOTO. If omitted, a point near the page's top is chosen." +msgstr "" + +#: ../../document.rst:1202 7c940e27b57c48529e5d3e8ff0325a69 +msgid "required for LINK_GOTOR and LINK_LAUNCH." +msgstr "" + +#: ../../document.rst:1203 132587a96eb44d79895a5275d7a58ec9 +msgid "use this zoom factor when showing the target page." +msgstr "" + +#: ../../document.rst:1205 51f0afa8fe36446da6457ee40177e6ac +msgid "**Example use:** Change the TOC of the SWIG manual to achieve this:" +msgstr "" + +#: ../../document.rst:1207 89691e2e24d042b7afaa252f2404e728 +msgid "" +"Collapse everything below top level and show the chapter on Python " +"support in red, bold and italic::" +msgstr "" + +#: ../../document.rst:1224 cb071d795eef4051859facdf9c2c7f83 +msgid "" +"In the previous example, we have changed only 42 of the 1240 TOC items of" +" the file." +msgstr "" + +#: ../../document.rst:1228 4b6c6cb7b0cd41fe85e5ecb9dfbff8ec +msgid "" +"PDF only: Convert annotations and / or widgets to become permanent parts " +"of the pages. The PDF **will be changed** by this method. If `widgets` is" +" `True`, the document will also no longer be a \"Form PDF\"." +msgstr "" + +#: ../../document.rst:1230 b1618c1259c44d298694a1fdd071bea7 +msgid "" +"All pages will look the same, but will no longer have annotations, " +"respectively fields. The visible parts will be converted to standard " +"text, vector graphics or images as required." +msgstr "" + +#: ../../document.rst:1232 4e629c4362f5458dacd2bb2f00dc9a42 +msgid "" +"The method may thus be a viable **alternative for PDF-to-PDF " +"conversions** using :meth:`Document.convert_to_pdf`." +msgstr "" + +#: ../../document.rst:1234 eac5b3e2fdae4934a3324c3826cb5be0 +msgid "" +"Please consider that annotations are complex objects and may consist of " +"more data \"underneath\" their visual appearance. Examples are \"Text\" " +"and \"FileAttachment\" annotations. When \"baking in\" annotations / " +"widgets with this method, all this underlying information (attached " +"files, comments, associated PopUp annotations, etc.) will be lost and be " +"removed on next garbage collection." +msgstr "" + +#: ../../document.rst:1236 8a23bab53bf14c8aa574e2e600474bcd +msgid "" +"Use this feature for instance for :meth:`Page.show_pdf_page` (which " +"supports neither annotations nor widgets) when the source pages should " +"look exactly the same in the target." +msgstr "" + +#: ../../document.rst:1239 a39cbfa8407c4df6af1eb80d30cb91ff +msgid "convert annotations." +msgstr "" + +#: ../../document.rst:1240 45f21baaa61b4e06b77104c6c6735089 +msgid "" +"convert fields / widgets. After execution, the document will no longer be" +" a \"Form PDF\"." +msgstr "" + +#: ../../document.rst:1245 6cddb53c70e64e57b442090c1f2207d2 +msgid "New in v1.16.0" +msgstr "" + +#: ../../document.rst:1247 fa1fdbe516594d0d98a0d538a5555317 +msgid "" +"Check whether the document can be saved incrementally. Use it to choose " +"the right option without encountering exceptions." +msgstr "" + +#: ../../document.rst:1251 34130af2a2be4418bd86e36c3ebe8d5a +msgid "New in v1.16.14" +msgstr "" + +#: ../../document.rst:1253 d9e7b0b6be0e4bb98d2275cf4c18136d +msgid "" +"PDF only: Remove potentially sensitive data from the PDF. This function " +"is inspired by the similar \"Sanitize\" function in Adobe Acrobat " +"products. The process is configurable by a number of options." +msgstr "" + +#: ../../document.rst:1255 122850b369374792b6f0ff12b94fc87b +msgid "Search for 'FileAttachment' annotations and remove the file content." +msgstr "" + +#: ../../document.rst:1256 e8f4d3ec34634deeb615c44f546d61d3 +msgid "" +"Remove any comments from page painting sources. If this option is set to " +"``False``, then this is also done for *hidden_text* and *redactions*." +msgstr "" + +#: ../../document.rst:1257 6919e0d4f13c46b1ade6ed30abaf7ef7 +msgid "Remove embedded files." +msgstr "" + +#: ../../document.rst:1258 7e5564f6654a4449bb1bad2f78316f86 +msgid "Remove OCRed text and invisible text [#f7]_." +msgstr "" + +#: ../../document.rst:1259 fd5111edbec040ae8e77d30b21c503a4 +msgid "Remove JavaScript sources." +msgstr "" + +#: ../../document.rst:1260 7054ef539ad641c2bf57e166ebbd4952 +msgid "Remove PDF standard metadata." +msgstr "" + +#: ../../document.rst:1261 8f65baf5ab154d0b992eefec509ce93e +msgid "Apply redaction annotations." +msgstr "" + +#: ../../document.rst:1262 f7f0f74a02e9491988b1dc2a0587aaae +msgid "" +"how to handle images if applying redactions. One of 0 (ignore), 1 (blank " +"out overlaps) or 2 (remove)." +msgstr "" + +#: ../../document.rst:1263 a65be763835e4d588b701873d968784e +msgid "Remove all links." +msgstr "" + +#: ../../document.rst:1264 9931675e2d0040f7a193eb79f2ee2884 +msgid "Reset all form fields to their defaults." +msgstr "" + +#: ../../document.rst:1265 5f0d45da4d9f4c71b72ef46e91b342fd +msgid "Remove all responses from all annotations." +msgstr "" + +#: ../../document.rst:1266 3253836eaaec4b2ca87df3b3b95f015a +msgid "Remove thumbnail images from pages." +msgstr "" + +#: ../../document.rst:1267 73179141037a4f01b4e064b767ebb9a8 +msgid "Remove XML metadata." +msgstr "" + +#: ../../document.rst:1272 ../../document.rst:1349 +#: 46784658632a419388980eb13c1041a1 da6e920ba12d438988b9655f9fac67c5 +msgid "Changed in v1.18.7" +msgstr "" + +#: ../../document.rst:1273 ../../document.rst:1350 +#: 12262e65b5664f109f47051864977083 56c375b6fe6a4791bf227b919ad7e097 +msgid "Changed in v1.19.0" +msgstr "" + +#: ../../document.rst:1274 ../../document.rst:1351 +#: 5260dc902fd9499b8410a0aaa18efdd9 b9acb7ade9fc4b05939e79ad1d0d7a94 +msgid "Changed in v1.24.1" +msgstr "" + +#: ../../document.rst:1276 bc516f2e012c4878bd37006c7e9e88b0 +msgid "PDF only: Saves the document in its **current state**." +msgstr "" + +#: ../../document.rst:1278 ce7de6ce58a34138ace194aa363ea3c0 +msgid "" +"The file path, `pathlib.Path` or file object to save to. A file object " +"must have been created before via `open(...)` or `io.BytesIO()`. Choosing" +" `io.BytesIO()` is similar to :meth:`Document.tobytes` below, which " +"equals the `getvalue()` output of an internally created `io.BytesIO()`." +msgstr "" + +#: ../../document.rst:1280 aa801ed2c60e4edc9a6b9a636ce2c7ce +msgid "" +"Do garbage collection. Positive values exclude \"incremental\". * 0 = " +"none * 1 = remove unused (unreferenced) objects. * 2 = in addition to 1, " +"compact the :data:`xref` table. * 3 = in addition to 2, merge duplicate " +"objects. * 4 = in addition to 3, check :data:`stream` objects for " +"duplication. This may be slow because such data are typically large." +msgstr "" + +#: ../../document.rst:1280 98a9fdc676634ec3b02acc9b22deea8a +msgid "Do garbage collection. Positive values exclude \"incremental\"." +msgstr "" + +#: ../../document.rst:1282 ../../document.rst:1300 +#: 01264ad0b1f348908fb979dacacd82dd a59c0bd122c043e99f85c56dbb619e23 +msgid "0 = none" +msgstr "" + +#: ../../document.rst:1283 c584c994c62c47b6bb2d9c9eec495a25 +msgid "1 = remove unused (unreferenced) objects." +msgstr "" + +#: ../../document.rst:1284 90892bbc3ba948e49451a75bd88e5ec1 +msgid "2 = in addition to 1, compact the :data:`xref` table." +msgstr "" + +#: ../../document.rst:1285 441ba00255e545c58a3c0873eb9b5b75 +msgid "3 = in addition to 2, merge duplicate objects." +msgstr "" + +#: ../../document.rst:1286 da68f0ef05be4518b693fe96dcf63799 +msgid "" +"4 = in addition to 3, check :data:`stream` objects for duplication. This " +"may be slow because such data are typically large." +msgstr "" + +#: ../../document.rst:1288 87ab7b3d94364600a46fd3583338cf33 +msgid "" +"Clean and sanitize content streams [#f1]_. Corresponds to \"mutool clean " +"-sc\"." +msgstr "" + +#: ../../document.rst:1290 307368cf4bae4dd3a31a1c6dba695999 +msgid "Deflate (compress) uncompressed streams." +msgstr "" + +#: ../../document.rst:1291 074aa683f32949a09fd3b5218932b9d2 +msgid "*(new in v1.18.3)* Deflate (compress) uncompressed image streams [#f4]_." +msgstr "" + +#: ../../document.rst:1292 f47d59f8289a4a0b8f6227e131941c9e +msgid "" +"*(new in v1.18.3)* Deflate (compress) uncompressed fontfile streams " +"[#f4]_." +msgstr "" + +#: ../../document.rst:1294 98dd2b4baaf142159a443d2deb715b9b +msgid "" +"Only save changes to the PDF. Excludes \"garbage\" and \"linear\". Can " +"only be used if *outfile* is a string or a `pathlib.Path` and equal to " +":attr:`Document.name`. Cannot be used for files that are decrypted or " +"repaired and also in some other cases. To be sure, check " +":meth:`Document.can_save_incrementally`. If this is false, saving to a " +"new file is required." +msgstr "" + +#: ../../document.rst:1296 b7d42cf66e264b78b3aaa3cee4468fa6 +msgid "convert binary data to ASCII." +msgstr "" + +#: ../../document.rst:1298 005ca024523d404887a1514b77c99675 +msgid "" +"Decompress objects. Generates versions that can be better read by some " +"other programs and will lead to larger files. * 0 = none * 1 = images * " +"2 = fonts * 255 = all" +msgstr "" + +#: ../../document.rst:1298 2bb773df27374e8880b5a9762601b294 +msgid "" +"Decompress objects. Generates versions that can be better read by some " +"other programs and will lead to larger files." +msgstr "" + +#: ../../document.rst:1301 4c34dc68468f45819bd8a5140a26fc7d +msgid "1 = images" +msgstr "" + +#: ../../document.rst:1302 9b54dc5c6dee40a8ac7fda271235a869 +msgid "2 = fonts" +msgstr "" + +#: ../../document.rst:1303 7559171a73a04f818f09a84c49f541b8 +msgid "255 = all" +msgstr "" + +#: ../../document.rst:1305 4b275a55b310440cbc6bed0da1fcc137 +msgid "" +"Save a linearised version of the document. This option creates a file " +"format for improved performance for Internet access. Excludes " +"\"incremental\" and \"use_objstms\"." +msgstr "" + +#: ../../document.rst:1307 8d34e1be34a6456583de08a964b06ffe +msgid "" +"Prettify the document source for better readability. PDF objects will be " +"reformatted to look like the default output of " +":meth:`Document.xref_object`." +msgstr "" + +#: ../../document.rst:1309 6c8fa6521582483489eafa899e3a7b5e +msgid "" +"Suppress the update of the file's `/ID` field. If the file happens to " +"have no such field at all, also suppress creation of a new one. Default " +"is `False`, so every save will lead to an updated file identification." +msgstr "" + +#: ../../document.rst:1311 2abbbdfe20de45a989cb6206cb2a676c +msgid "" +"*(new in v1.16.0)* Set the desired permission levels. See " +":ref:`PermissionCodes` for possible values. Default is granting all." +msgstr "" + +#: ../../document.rst:1313 8026bd5ba1c04716af36a27cfb56c0f3 +msgid "" +"*(new in v1.16.0)* set the desired encryption method. See " +":ref:`EncryptionMethods` for possible values." +msgstr "" + +#: ../../document.rst:1315 973dde478560485086c44526497bacd5 +msgid "" +"*(new in v1.16.0)* set the document's owner password. *(Changed in " +"v1.18.3)* If not provided, the user password is taken if provided. The " +"string length must not exceed 40 characters." +msgstr "" + +#: ../../document.rst:1317 3c2c2b927a9448bfb0a16d0db2c915e4 +msgid "" +"*(new in v1.16.0)* set the document's user password. The string length " +"must not exceed 40 characters." +msgstr "" + +#: ../../document.rst:1319 7fee682328a94e6288a75978a7630ce1 +msgid "" +"*(new in v1.24.0)* compression option that converts eligible PDF object " +"definitions to information that is stored in some other object's " +":data:`stream` data. Depending on the `deflate` parameter value, the " +"converted object definitions will be compressed -- which can lead to very" +" significant file size reductions." +msgstr "" + +#: ../../document.rst:1321 8ffaa1fceb4f4e34a5b8891e046c1ee3 +msgid "" +"The method does not check, whether a file of that name already exists, " +"will hence not ask for confirmation, and overwrite the file. It is your " +"responsibility as a programmer to handle this." +msgstr "" + +#: ../../document.rst:1325 be3ee913b5004b3d9517106841ba688a +msgid "**File size reduction**" +msgstr "" + +#: ../../document.rst:1327 1bf790168b284a5d9aaaf7d91cc13bbc +msgid "" +"1. Use the save options like `garbage=3|4, deflate=True, " +"use_objstms=True|1`. Do not touch the default values `expand=False|0, " +"clean=False|0, incremental=False|0, linear=False|0`. This is a " +"\"lossless\" file size reduction. There is a convenience version of this " +"method with these values set by default, :meth:`Document.ez_save` -- " +"please see below." +msgstr "" + +#: ../../document.rst:1330 3d1ee9059bd24a83a6aaae8687200458 +msgid "" +"\"Lossy\" file size reduction in essence must give up something with " +"respect to images, like (a) remove all images (b) replace images by their" +" grayscale versions (c) reduce image resolutions. Find examples in the " +"`PyMuPDF Utilities \"replace-image\" folder `_." +msgstr "" + +#: ../../document.rst:1334 805878d8902f44539b76f7fba424c58d +msgid "New in v1.18.11" +msgstr "" + +#: ../../document.rst:1336 fb2bc3ab13bc4cbdb9cdeedc4a300457 +msgid "" +"PDF only: The same as :meth:`Document.save` but with changed defaults " +"`deflate=True, garbage=3, use_objstms=1`." +msgstr "" + +#: ../../document.rst:1340 4ca43c0eb0764d4d86c7783d00292313 +msgid "" +"PDF only: saves the document incrementally. This is a convenience " +"abbreviation for ``doc.save(doc.name, incremental=True, " +"encryption=PDF_ENCRYPT_KEEP)``." +msgstr "" + +#: ../../document.rst:1344 3722cd78e2724185aa38db282136d51f +msgid "" +"Saving incrementally may be required if the document contains verified " +"signatures which would be invalidated by saving to a new file." +msgstr "" + +#: ../../document.rst:1353 abab584e13af432a87536b0dd1525b25 +msgid "" +"PDF only: Writes the **current content of the document** to a bytes " +"object instead of to a file. Obviously, you should be wary about memory " +"requirements. The meanings of the parameters exactly equal those in " +":meth:`save`. Chapter :ref:`FAQ` contains an example for using this " +"method as a pre-processor to `pdfrw " +"`_." +msgstr "" + +#: ../../document.rst:1355 0d08d4531d0547afa8dd2711eb5fb49a +msgid "*(Changed in v1.16.0)* for extended encryption support." +msgstr "" + +#: ../../document.rst:1358 6de0cf28802e42058ca66973d5ee0b8c +msgid "a bytes object containing the complete document." +msgstr "" + +#: ../../document.rst:1362 0274353b276b45c697447eefc6c5af10 +msgid "" +"Search for \"text\" on page number \"pno\". Works exactly like the " +"corresponding :meth:`Page.search_for`. Any integer `-∞ < pno < " +"page_count` is acceptable." +msgstr "" + +#: ../../document.rst:1380 8f33a8224c6b4cd698ee597a13d325b1 +msgid "" +"PDF only: Copy the page range **[from_page, to_page]** (including both) " +"of PDF document *docsrc* into the current one. Inserts will start with " +"page number *start_at*. Value -1 indicates default values. All pages thus" +" copied will be rotated as specified. Links, annotations and widgets can " +"be excluded in the target, see below. All page numbers are 0-based." +msgstr "" + +#: ../../document.rst:1382 5c1428d40caa43a5a10f4b77f20b3e69 +msgid "" +"An opened PDF *Document* which must not be the current document. However," +" it may refer to the same underlying file." +msgstr "" + +#: ../../document.rst:1385 07b6f53e82724a5ab67dd0b79067fa1e +msgid "First page number in *docsrc*. Default is zero." +msgstr "" + +#: ../../document.rst:1387 fea37107f5404d54996345114e37441b +msgid "Last page number in *docsrc* to copy. Defaults to last page." +msgstr "" + +#: ../../document.rst:1389 524d0fb0b9814e21962ad50b5f471743 +msgid "" +"First copied page, will become page number *start_at* in the target. " +"Default -1 appends the page range to the end. If zero, the page range " +"will be inserted before current first page." +msgstr "" + +#: ../../document.rst:1391 4c91282a041f4252be3ddf0b31888ef6 +msgid "" +"All copied pages will be rotated by the provided value (degrees, integer " +"multiple of 90)." +msgstr "" + +#: ../../document.rst:1393 d336910ac6904a34ad264c74f9a12eb0 +msgid "" +"Choose whether (internal and external) links should be included in the " +"copy. Default is `True`. *Named* links (:data:`LINK_NAMED`) and internal " +"links to outside the copied page range are **always excluded**." +msgstr "" + +#: ../../document.rst:1395 a02aff5f97f748429af6f525e52152d3 +msgid "choose whether annotations should be included in the copy." +msgstr "" + +#: ../../document.rst:1397 b94bf24da9974674ace2e3acc4991939 +msgid "" +"choose whether annotations should be included in the copy. If `True` and " +"at least one of the source pages contains form fields, the target PDF " +"will be turned into a Form PDF (if not already being one)." +msgstr "" + +#: ../../document.rst:1399 291ec7b0d4b64883aba67c7050c566bf +msgid "" +"*(New in version 1.25.5)* Choose how to handle duplicate root field names" +" in the source pages. This parameter is ignored if `widgets=False`. " +"Default is ``False`` which will add unifying strings to the name of those" +" source root fields which have a duplicate in the target. For instance, " +"if \"name\" already occurs in the target, the source widget's name will " +"be changed to \"name [text]\" with a suitably chosen string \"text\". If" +" ``True``, root fields with duplicate names in source and target will be " +"converted to so-called \"Kids\" of a \"Parent\" object (which lists all " +"kid widgets in a PDF array). This will effectively turn those kids into " +"instances of the \"same\" widget: if e.g. one of the kids is changed, " +"then all its instances will automatically inherit this change -- no " +"matter on which page they happen to be displayed." +msgstr "" + +#: ../../document.rst:1399 78659c3b81a3457a9ea0a009a43d5632 +msgid "" +"*(New in version 1.25.5)* Choose how to handle duplicate root field names" +" in the source pages. This parameter is ignored if `widgets=False`." +msgstr "" + +#: ../../document.rst:1401 690ea9568fba4c748332acfea9bf268d +msgid "" +"Default is ``False`` which will add unifying strings to the name of those" +" source root fields which have a duplicate in the target. For instance, " +"if \"name\" already occurs in the target, the source widget's name will " +"be changed to \"name [text]\" with a suitably chosen string \"text\"." +msgstr "" + +#: ../../document.rst:1403 207b76f69b4b43b8abf32aaed907a586 +msgid "" +"If ``True``, root fields with duplicate names in source and target will " +"be converted to so-called \"Kids\" of a \"Parent\" object (which lists " +"all kid widgets in a PDF array). This will effectively turn those kids " +"into instances of the \"same\" widget: if e.g. one of the kids is " +"changed, then all its instances will automatically inherit this change --" +" no matter on which page they happen to be displayed." +msgstr "" + +#: ../../document.rst:1405 8d9fefec8ad44d23b3c63e2ae6a7a00f +msgid "" +"*(new in v1.17.7)* specify an interval size greater zero to see progress " +"messages on `sys.stdout`. After each interval, a message like `Inserted " +"30 of 47 pages.` will be printed." +msgstr "" + +#: ../../document.rst:1407 d77922d1b37a405687f51453c41a5a42 +msgid "" +"*(new in v1.18.0)* controls whether the list of already copied objects " +"should be **dropped** after this method, default ``True``. Set it to 0 " +"except for the last one of multiple insertions from the same source PDF. " +"This saves target file size and speeds up execution considerably." +msgstr "" + +#: ../../document.rst:1411 56b4354a86094489a6bf9bde208dc994 +msgid "" +"This is a page-based method. Document-level information of source " +"documents is therefore mostly ignored. Examples include Optional Content," +" Embedded Files, `StructureElem`, table of contents, page labels, " +"metadata, named destinations (and other named entries) and some more." +msgstr "" + +#: ../../document.rst:1413 5a07fe3f9eea4d2fae962abdd3b1a7ff +msgid "" +"If `from_page > to_page`, pages will be **copied in reverse order**. If " +"`0 <= from_page == to_page`, then one page will be copied." +msgstr "" + +#: ../../document.rst:1415 dc1395aabeda4fbcabbf2f13c6749c77 +msgid "" +"`docsrc` TOC entries **will not be copied**. It is easy however, to " +"recover a table of contents for the resulting document. Look at the " +"examples below and at program `join.py `_ in the " +"*examples* directory: it can join PDF documents and at the same time " +"piece together respective parts of the tables of contents." +msgstr "" + +#: ../../document.rst:1432 45174efe8b574e39bd0fee7fda1c588a +msgid "New in v1.22.0" +msgstr "" + +#: ../../document.rst:1434 cd44330e994a49b99c61e25595eb7c0b +msgid "" +"PDF only: Add an arbitrary supported document to the current PDF. Opens " +"\"infile\" as a document, converts it to a PDF and then invokes " +":meth:`Document.insert_pdf`. Parameters are the same as for that method. " +"Among other things, this features an easy way to append images as full " +"pages to an output PDF." +msgstr "" + +#: ../../document.rst:1436 e33a6fdc9cda41afbf2acefddf2174a3 +msgid "" +"the input document to insert. May be a filename specification as is valid" +" for creating a :ref:`Document` or a :ref:`Pixmap`." +msgstr "" + +#: ../../document.rst:1445 43f27667e5fa455e8b6be14bbed94320 +msgid "PDF only: Insert an empty page." +msgstr "" + +#: ../../document.rst:1447 760c94fa936d413985a6348d9a97a2fa +msgid "" +"page number index (zero-indexed) at which to insert page. Special values " +"-1 and *doc.page_count* insert **after** the last page." +msgstr "" + +#: ../../document.rst:1449 9c2a0e62a39a43d19cf8bc37207291e7 +msgid "page width." +msgstr "" + +#: ../../document.rst:1450 4a2e0f95cd75496fb7ca0aa473e0434a +msgid "page height." +msgstr "" + +#: ../../document.rst:1453 0bd2d3396b664c20a387f310baf3c618 +msgid "" +"the created page object. Be aware that the page numbers of pages after " +"the inserted one will have changed after method execution. For the same " +"reason, **all existing page objects will be invalidated.** Using them " +"will lead to exceptions." +msgstr "" + +#: ../../document.rst:1465 e582e4a0e898429a8087c9237aea9caf +msgid "" +"PDF only: Insert a new page and insert some text. Convenience function " +"which combines :meth:`Document.new_page` and (parts of) " +":meth:`Page.insert_text`." +msgstr "" + +#: ../../document.rst:1467 05fc5d62cf1442ef87870b03bf4656e6 +msgid "" +"page number index (zero-indexed) at which to insert page. Special values " +"-1 and `doc.page_count` insert **after** the last page. Changed in " +"v1.14.12 This is now a positional parameter" +msgstr "" + +#: ../../document.rst:1467 93c42f35dfc74d969baf39f16e854b2c +msgid "" +"page number index (zero-indexed) at which to insert page. Special values " +"-1 and `doc.page_count` insert **after** the last page." +msgstr "" + +#: ../../document.rst:1470 b97cd8599f7b49db97a3779b3b40e27a +msgid "Changed in v1.14.12" +msgstr "" + +#: ../../document.rst:1470 f6d15d624bcd4485930085e83cc129ac +msgid "This is now a positional parameter" +msgstr "" + +#: ../../document.rst:1472 cf6bb035b54e4fcdad814450ae34dcef +msgid "For the other parameters, please consult the aforementioned methods." +msgstr "" + +#: ../../document.rst:1475 62dbaf5e5aea49478a003ee16008856d +msgid "" +"the result of :meth:`Page.insert_text` (number of successfully inserted " +"lines)." +msgstr "" + +#: ../../document.rst:1479 587c560e526a416f9adba46d934431cd +msgid "" +"PDF only: Delete a page given by its 0-based number in `-∞ < pno < " +"page_count`." +msgstr "" + +#: ../../document.rst:1481 ../../document.rst:1488 +#: 2de6c5ed33694928b05b3af60acc735b 5e0e19b1164a4922a5c4de39dadf8d94 +msgid "Changed in v1.18.14: support Python's `del` statement." +msgstr "" + +#: ../../document.rst:1483 b53db2a971f54e8fa8fe54fc059f0ece +msgid "" +"the page to be deleted. Negative number count backwards from the end of " +"the document (like with indices). Default is the last page." +msgstr "" + +#: ../../document.rst:1487 f663c7417d0c4717918bc0edbdaa19f6 +msgid "Changed in v1.18.13: more flexibility specifying pages to delete." +msgstr "" + +#: ../../document.rst:1490 5a7de5dc80b84affad561bc4fedaf80b +msgid "PDF only: Delete multiple pages given as 0-based numbers." +msgstr "" + +#: ../../document.rst:1494 875c5dde7ff14ca9aa7522c71259f94c +msgid "" +"**Format 1:** Use keywords. Represents the old format. A contiguous range" +" of pages is removed." +msgstr "" + +#: ../../document.rst:1493 6b7772a6ff3f4a2db6d2dcb99fded671 +msgid "\"from_page\": first page to delete. Zero if omitted." +msgstr "" + +#: ../../document.rst:1494 0e5c6f821d7044d5ac7c0e6f5ed7f64b +msgid "" +"\"to_page\": last page to delete. Last page in document if omitted. Must " +"not be less then \"from_page\"." +msgstr "" + +#: ../../document.rst:1496 e8904441ed83424eb87fa87a6a684b2a +msgid "" +"**Format 2:** Two page numbers as positional parameters. Handled like " +"Format 1." +msgstr "" + +#: ../../document.rst:1498 163ec2bcd7934971b9000245d8e3d209 +msgid "" +"**Format 3:** One positional integer parameter. Equivalent to " +":meth:`Page.delete_page`." +msgstr "" + +#: ../../document.rst:1500 ac9b0d2bb525429d8ac5afe495854517 +msgid "" +"**Format 4:** One positional parameter of type *list*, *tuple* or " +"*range()* of page numbers. The items of this sequence may be in any order" +" and may contain duplicates." +msgstr "" + +#: ../../document.rst:1502 2e8e4f3f1ff24632b93215697d0a2594 +msgid "" +"**Format 5:** *(New in v1.18.14)* Using the Python `del` statement and " +"index / slice notation is now possible." +msgstr "" + +#: ../../document.rst:1506 be52d2bac85f42c8a561522fc5dc7694 +msgid "" +"*(Changed in v1.14.17, optimized in v1.17.7)* In an effort to maintain a " +"valid PDF structure, this method and :meth:`delete_page` will also " +"deactivate items in the table of contents which point to deleted pages. " +"\"Deactivation\" here means, that the bookmark will point to nowhere and " +"the title will be shown grayed-out by supporting PDF viewers. The overall" +" TOC structure is left intact." +msgstr "" + +#: ../../document.rst:1508 2ea9db623ee644ce851f517b21468bbc +msgid "" +"It will also remove any **links on remaining pages** which point to a " +"deleted one. This action may have an extended response time for documents" +" with many pages." +msgstr "" + +#: ../../document.rst:1510 9e268616509345318e19407e7f4fce54 +msgid "Following examples will all delete pages 500 through 519:" +msgstr "" + +#: ../../document.rst:1512 8554875e1e58416180c485b06d4698b6 +msgid "`doc.delete_pages(500, 519)`" +msgstr "" + +#: ../../document.rst:1513 1c822f9af13441608441afe5bf0640dd +msgid "`doc.delete_pages(from_page=500, to_page=519)`" +msgstr "" + +#: ../../document.rst:1514 e46ee2d732134660b9a9f857991dabce +msgid "`doc.delete_pages((500, 501, 502, ... , 519))`" +msgstr "" + +#: ../../document.rst:1515 b30e293c5c9640ba9f5d8f3875607c97 +msgid "`doc.delete_pages(range(500, 520))`" +msgstr "" + +#: ../../document.rst:1516 1e369b51a48c4110bfb776a7c91dac36 +msgid "`del doc[500:520]`" +msgstr "" + +#: ../../document.rst:1517 33382327b14c40309cb885c892db74dc +msgid "`del doc[(500, 501, 502, ... , 519)]`" +msgstr "" + +#: ../../document.rst:1518 835883ce222348f1939be4af90e88154 +msgid "`del doc[range(500, 520)]`" +msgstr "" + +#: ../../document.rst:1520 65e4760990f848c7a684989dd067afbd +msgid "" +"For the :ref:`AdobeManual` the above takes about 0.6 seconds, because the" +" remaining 1290 pages must be cleaned from invalid links." +msgstr "" + +#: ../../document.rst:1522 7af3a67223f04f44835189f49959825d +msgid "" +"In general, the performance of this method is dependent on the number of " +"remaining pages -- **not** on the number of deleted pages: in the above " +"example, **deleting all pages except** those 20, will need much less " +"time." +msgstr "" + +#: ../../document.rst:1527 652ee83c146f452098f4379a8c73047a +msgid "PDF only: Copy a page reference within the document." +msgstr "" + +#: ../../document.rst:1529 ac1cce6e9936446eb35a3ffe8ca915d1 +msgid "the page to be copied. Must be in range `0 <= pno < page_count`." +msgstr "" + +#: ../../document.rst:1531 ../../document.rst:1543 +#: c41b90dc8ef640408f1a617a2e0fc519 ca3166610784468cbc085259ba27a3ea +msgid "" +"the page number in front of which to copy. The default inserts **after** " +"the last page." +msgstr "" + +#: ../../document.rst:1533 8468fc8b63444047b7a1fe75547cd1fd +msgid "" +"Only a new **reference** to the page object will be created -- not a new " +"page object, all copied pages will have identical attribute values, " +"including the :attr:`Page.xref`. This implies that any changes to one of " +"these copies will appear on all of them." +msgstr "" + +#: ../../document.rst:1537 d97170af740a4e5fbd5d5be2e8c4c008 +msgid "New in v1.14.17" +msgstr "" + +#: ../../document.rst:1539 e5bfe27961644509afa6eb237a7aaa90 +msgid "PDF only: Make a full copy (duplicate) of a page." +msgstr "" + +#: ../../document.rst:1541 bb27bf35370f4350896c2af762ffb1bc +msgid "the page to be duplicated. Must be in range `0 <= pno < page_count`." +msgstr "" + +#: ../../document.rst:1547 f703ba87ea974305a4c30425ca1ff9b9 +msgid "" +"In contrast to :meth:`copy_page`, this method creates a new page object " +"(with a new :data:`xref`), which can be changed independently from the " +"original." +msgstr "" + +#: ../../document.rst:1549 07e3b642c6b94e9e8f52daa72f74a907 +msgid "" +"Any Popup and \"IRT\" (\"in response to\") annotations are **not copied**" +" to avoid potentially incorrect situations." +msgstr "" + +#: ../../document.rst:1553 43ec556cbc38492c8049b8372e53daac +msgid "PDF only: Move (copy and then delete original) a page within the document." +msgstr "" + +#: ../../document.rst:1555 b044a8f7a7af40788e9d81537eb619ad +msgid "the page to be moved. Must be in range `0 <= pno < page_count`." +msgstr "" + +#: ../../document.rst:1557 946f21ee475c42878bf3b1dae84f7d69 +msgid "" +"the page number in front of which to insert the moved page. The default " +"moves **after** the last page." +msgstr "" + +#: ../../document.rst:1562 e8d7a9d259534c618a11baa88ffeb3fc +msgid "New in v1.17.4" +msgstr "" + +#: ../../document.rst:1564 8b3171a1d9a142c9a9c030fe8d31c8d2 +msgid "" +"PDF only: Get or set the */NeedAppearances* property of Form PDFs. Quote:" +" *\"(Optional) A flag specifying whether to construct appearance streams " +"and appearance dictionaries for all widget annotations in the document " +"... Default value: false.\"* This may help controlling the behavior of " +"some readers / viewers." +msgstr "" + +#: ../../document.rst:1566 21bdc7002b114b8794f1a0a9c6ee76a5 +msgid "" +"set the property to this value. If omitted or `None`, inquire the current" +" value." +msgstr "" + +#: ../../document.rst:1569 78f9700e38dd443e9f73a91fda3dc450 +msgid "" +"* None: not a Form PDF, or property not defined. * True / False: the " +"value of the property (either just set or existing for inquiries). Has no" +" effect if no Form PDF." +msgstr "" + +#: ../../document.rst:1570 c0025670860c42d5bd1c8f5c34a6dad6 +msgid "None: not a Form PDF, or property not defined." +msgstr "" + +#: ../../document.rst:1571 eb06f30be4434520bda89c558742261d +msgid "" +"True / False: the value of the property (either just set or existing for " +"inquiries). Has no effect if no Form PDF." +msgstr "" + +#: ../../document.rst:1577 75e79125f8c7472cb0a19ed8e1458e1a +msgid "" +"PDF only: Return whether the document contains signature fields. This is " +"an optional PDF property: if not present (return value -1), no " +"conclusions can be drawn -- the PDF creator may just not have bothered " +"using it." +msgstr "" + +#: ../../document.rst:1580 9a14234501f54034bb1bf739d64a15fa +msgid "" +"* -1: not a Form PDF / no signature fields recorded / no *SigFlags* " +"found. * 1: at least one signature field exists. * 3: contains " +"signatures that may be invalidated if the file is saved (written) in a " +"way that alters its previous contents, as opposed to an incremental " +"update." +msgstr "" + +#: ../../document.rst:1581 9bad9283ef584aa2b078c83f7d777b63 +msgid "-1: not a Form PDF / no signature fields recorded / no *SigFlags* found." +msgstr "" + +#: ../../document.rst:1582 deabde5552354d23bc0241dce237b354 +msgid "1: at least one signature field exists." +msgstr "" + +#: ../../document.rst:1583 af34d2d341994de4b3f79434d0d6027a +msgid "" +"3: contains signatures that may be invalidated if the file is saved " +"(written) in a way that alters its previous contents, as opposed to an " +"incremental update." +msgstr "" + +#: ../../document.rst:1592 04fdb7d7d7c84095a3494d40af0b5926 +msgid "" +"Changed in v1.14.16: The sequence of positional parameters \"name\" and " +"\"buffer\" has been changed to comply with the call pattern of other " +"functions." +msgstr "" + +#: ../../document.rst:1594 fcd3db75809240cc8f190dd9a00289d2 +msgid "" +"PDF only: Embed a new file. All string parameters except the name may be " +"unicode (in previous versions, only ASCII worked correctly). File " +"contents will be compressed (where beneficial)." +msgstr "" + +#: ../../document.rst:1596 2cea88e56a044b0c8bad08e9a205ccde +msgid "entry identifier, **must not already exist**." +msgstr "" + +#: ../../document.rst:1597 b4cb313585c3435fa169abd1fa4d1619 +msgid "" +"file contents. *(Changed in v1.14.13)* *io.BytesIO* is now also " +"supported." +msgstr "" + +#: ../../document.rst:1597 4280d1c050654a94a34238d69e159094 +msgid "file contents." +msgstr "" + +#: ../../document.rst:1599 ../../document.rst:1673 +#: 31a1f516458f40c39c3f700e4ef89de4 b0eb6859ed644497bc3e05f9f73434b3 +msgid "*(Changed in v1.14.13)* *io.BytesIO* is now also supported." +msgstr "" + +#: ../../document.rst:1601 ac97d3204a544f86b77d976c92acbf7b +msgid "optional filename. Documentation only, will be set to *name* if `None`." +msgstr "" + +#: ../../document.rst:1602 a5690203a4ba480eb382e82deceb9895 +msgid "" +"optional unicode filename. Documentation only, will be set to *filename* " +"if `None`." +msgstr "" + +#: ../../document.rst:1603 6d4f198ba29348218b4fe50cccdefa1f +msgid "optional description. Documentation only, will be set to *name* if `None`." +msgstr "" + +#: ../../document.rst:1606 7b71f66a34ea47e9a71e7fe5e7d64fa0 +msgid "" +"*(Changed in v1.18.13)* The method now returns the :data:`xref` of the " +"inserted file. In addition, the file object now will be automatically " +"given the PDF keys `/CreationDate` and `/ModDate` based on the current " +"date-time." +msgstr "" + +#: ../../document.rst:1611 207a6bc78c654390b4b1f2cf463dd50f +msgid "" +"Changed in v1.14.16: This is now a method. In previous versions, this was" +" a property." +msgstr "" + +#: ../../document.rst:1613 0cb7ff09b67448ac9cd78cb7b0b7efb7 +msgid "PDF only: Return the number of embedded files." +msgstr "" + +#: ../../document.rst:1617 005666a2614842c9b4353f5f802b6c55 +msgid "" +"PDF only: Retrieve the content of embedded file by its entry number or " +"name. If the document is not a PDF, or entry cannot be found, an " +"exception is raised." +msgstr "" + +#: ../../document.rst:1619 ../../document.rst:1639 ../../document.rst:1670 +#: 869875aa0dfe44808e52deebefea1de1 b13cd4114f2545a9be72cfc74d7c87be +#: bf32473089a3483e8ddc9dac22d37916 +msgid "index or name of entry. An integer must be in `range(embfile_count())`." +msgstr "" + +#: ../../document.rst:1625 e338d280c75b4573b622feabbe710c57 +msgid "Changed in v1.14.16: Items can now be deleted by index, too." +msgstr "" + +#: ../../document.rst:1627 333fc09a48dc4e96be1d0d96576eccba +msgid "" +"PDF only: Remove an entry from `/EmbeddedFiles`. As always, physical " +"deletion of the embedded file content (and file space regain) will occur " +"only when the document is saved to a new file with a suitable garbage " +"option." +msgstr "" + +#: ../../document.rst:1629 eee9b150efa74ebb95b8d065ce663d9e +msgid "index or name of entry." +msgstr "" + +#: ../../document.rst:1631 8c4ab8c1f77e4c2985abe3c93f92b10d +msgid "" +"When specifying an entry name, this function will only **delete the first" +" item** with that name. Be aware that PDFs not created with PyMuPDF may " +"contain duplicate names. So you may want to take appropriate precautions." +msgstr "" + +#: ../../document.rst:1635 ce3e3fdc43df49f29497bf219a55ffb7 +msgid "Changed in v1.18.13" +msgstr "" + +#: ../../document.rst:1637 66294342e3bd417fa3d25391a8d4394d +msgid "" +"PDF only: Retrieve information of an embedded file given by its number or" +" by its name." +msgstr "" + +#: ../../document.rst:1642 d938771d7b2e410ebbe66f3bffdc3111 +msgid "" +"a dictionary with the following keys: * ``name`` -- (*str*) name under " +"which this entry is stored * ``filename`` -- (*str*) filename * " +"``ufilename`` -- (*unicode*) filename * ``description`` -- (*str*) " +"description * ``size`` -- (*int*) original file size * ``length`` -- " +"(*int*) compressed file length * ``creationDate`` -- (*str*) date-time of" +" item creation in PDF format * ``modDate`` -- (*str*) date-time of last " +"change in PDF format * ``collection`` -- (*int*) :data:`xref` of the " +"associated PDF portfolio item if any, else zero. * ``checksum`` -- " +"(*str*) a hashcode of the stored file content as a hexadecimal string. " +"Should be MD5 according to PDF specifications, but be prepared to see " +"other hashing algorithms." +msgstr "" + +#: ../../document.rst:1642 ab305172c9934b6d9c00eb5ed6e4649a +msgid "a dictionary with the following keys:" +msgstr "" + +#: ../../document.rst:1644 b7a076e5859b4bcab80e34541859d7ca +msgid "``name`` -- (*str*) name under which this entry is stored" +msgstr "" + +#: ../../document.rst:1645 121172b7332143a8b549ef30f4bd5bb1 +msgid "``filename`` -- (*str*) filename" +msgstr "" + +#: ../../document.rst:1646 89fd41822ad34573a7b952b2fd4303ac +msgid "``ufilename`` -- (*unicode*) filename" +msgstr "" + +#: ../../document.rst:1647 437589e818d74dc3aa02750c07e6aff9 +msgid "``description`` -- (*str*) description" +msgstr "" + +#: ../../document.rst:1648 8bf22226e6b946ba8904a12c9047c6db +msgid "``size`` -- (*int*) original file size" +msgstr "" + +#: ../../document.rst:1649 aac50a010de4434abbf736335b328344 +msgid "``length`` -- (*int*) compressed file length" +msgstr "" + +#: ../../document.rst:1650 e79e7816a4a14e959f1d7ae2ce4e4ee3 +msgid "``creationDate`` -- (*str*) date-time of item creation in PDF format" +msgstr "" + +#: ../../document.rst:1651 d29662d08223403686e394f5d5d4de79 +msgid "``modDate`` -- (*str*) date-time of last change in PDF format" +msgstr "" + +#: ../../document.rst:1652 69752e18d0a54012a9dbebd7a2a8eded +msgid "" +"``collection`` -- (*int*) :data:`xref` of the associated PDF portfolio " +"item if any, else zero." +msgstr "" + +#: ../../document.rst:1653 870473bef4414d4a9f160c797a395163 +msgid "" +"``checksum`` -- (*str*) a hashcode of the stored file content as a " +"hexadecimal string. Should be MD5 according to PDF specifications, but be" +" prepared to see other hashing algorithms." +msgstr "" + +#: ../../document.rst:1657 b293ff432c4943c7b13c527f6ae85be2 +msgid "" +"PDF only: Return a list of embedded file names. The sequence of the names" +" equals the physical sequence in the document." +msgstr "" + +#: ../../document.rst:1668 40d7ae2aac41481b8256423dedbe2570 +msgid "" +"PDF only: Change an embedded file given its entry number or name. All " +"parameters are optional. Letting them default leads to a no-operation." +msgstr "" + +#: ../../document.rst:1671 f59d2798159c472e8b861edc7cafc49e +msgid "" +"the new file content. *(Changed in v1.14.13)* *io.BytesIO* is now also " +"supported." +msgstr "" + +#: ../../document.rst:1671 cb03da4bee5c476891ce54c568329d5b +msgid "the new file content." +msgstr "" + +#: ../../document.rst:1675 5b7dac2348554f989d99d3971995632c +msgid "the new filename." +msgstr "" + +#: ../../document.rst:1676 cf4779ea31f6485baa24ba26f618ee73 +msgid "the new unicode filename." +msgstr "" + +#: ../../document.rst:1677 0c0c1f586af547b3806f6c000e271d90 +msgid "the new description." +msgstr "" + +#: ../../document.rst:1679 0588e113557544cfa618e9fa05550f26 +msgid "" +"*(Changed in v1.18.13)* The method now returns the :data:`xref` of the " +"file object." +msgstr "" + +#: ../../document.rst:1682 caacf7f8451042be88437cdd7ebf80f6 +msgid "" +"xref of the file object. Automatically, its `/ModDate` PDF key will be " +"updated with the current date-time." +msgstr "" + +#: ../../document.rst:1687 c1612e02ab6e4aaa90882747a1695057 +msgid "" +"Release objects and space allocations associated with the document. If " +"created from a file, also closes *filename* (releasing control to the " +"OS). Explicitly closing a document is equivalent to deleting it, `del " +"doc`, or assigning it to something else like `doc = None`." +msgstr "" + +#: ../../document.rst:1691 ../../document.rst:1705 ../../document.rst:1712 +#: ../../document.rst:1719 ../../document.rst:1730 ../../document.rst:1739 +#: ../../document.rst:1888 2d1db6abe10b4b30a5fee4fc3150a1a2 +#: 3696c9e47a5d4f279ca6e13ca9badc38 5dffd418b2484c78bff8e129dd0beda0 +#: 90fec84dc6174a0e8a82750746e35157 c721b36a29cf4051bbf9e0ca82266951 +#: c9d56f09885c4db3afad4b92d4bb30c5 d854778651b548139937059eb60c11db +msgid "New in v1.16.8" +msgstr "" + +#: ../../document.rst:1692 a23659b9ffbc469f9b1e6aeaf63329c8 +msgid "Changed in v1.18.10" +msgstr "" + +#: ../../document.rst:1694 8ef598a908184a068d803110e0727a3e +msgid "PDF only: Return the definition source of a PDF object." +msgstr "" + +#: ../../document.rst:1696 2f3c19c00a5c4c33880871794c2207c2 +msgid "" +"the object's :data:`xref`. *Changed in v1.18.10:* A value of `-1` returns" +" the PDF trailer source." +msgstr "" + +#: ../../document.rst:1697 d7825dd896e841a4946cd46633cc1cba +msgid "whether to generate a compact output with no line breaks or spaces." +msgstr "" + +#: ../../document.rst:1698 4a2d6a2741b84dbbabd0ae4824b249b6 +msgid "whether to ASCII-encode binary data." +msgstr "" + +#: ../../document.rst:1701 d289d49008164203be7390dad133165b +msgid "The object definition source." +msgstr "" + +#: ../../document.rst:1707 33f4eb609f2e4a31bcedf6bbb15f807b +msgid "" +"PDF only: Return the :data:`xref` number of the PDF catalog (or root) " +"object. Use that number with :meth:`Document.xref_object` to see its " +"source." +msgstr "" + +#: ../../document.rst:1714 25deae598bf0499b83ce312067283693 +msgid "" +"PDF only: Return the trailer source of the PDF, which is usually located" +" at the PDF file's end. This is :meth:`Document.xref_object` with an " +":data:`xref` argument of -1." +msgstr "" + +#: ../../document.rst:1721 e4cb3087b0c64d3eb47f44d544152d83 +msgid "" +"PDF only: Return the **decompressed** contents of the :data:`xref` stream" +" object." +msgstr "" + +#: ../../document.rst:1723 ../../document.rst:1743 ../../document.rst:1762 +#: bd1262c85c614c2d81fa5f15f512c739 e80e7230a803497aa97d368a20d6e190 +#: f5b32eb85c0e4db8be3bb7ba4cea4d21 +msgid ":data:`xref` number." +msgstr "" + +#: ../../document.rst:1726 c2333be86e844fc98605aa5bf81d198f +msgid "the (decompressed) stream of the object." +msgstr "" + +#: ../../document.rst:1732 283d3fc3dd6540698765de3addb1126c +msgid "" +"PDF only: Return the **unmodified** (esp. **not decompressed**) contents " +"of the :data:`xref` stream object. Otherwise equal to " +":meth:`Document.xref_stream`." +msgstr "" + +#: ../../document.rst:1735 462546377c3c4cd4b1472360c095b7c1 +msgid "the (original, unmodified) stream of the object." +msgstr "" + +#: ../../document.rst:1741 0b9b082e450d41eb9b314d3946b524a8 +msgid "" +"PDF only: Replace object definition of :data:`xref` with the provided " +"string. The xref may also be new, in which case this instruction " +"completes the object definition. If a page object is also given, its " +"links and annotations will be reloaded afterwards." +msgstr "" + +#: ../../document.rst:1745 8933f62dde2645e88c680302e0737fdd +msgid "a string containing a valid PDF object definition." +msgstr "" + +#: ../../document.rst:1747 a2630fd6e0d64414b7ad457df37269b0 +msgid "" +"a page object. If provided, indicates, that annotations of this page " +"should be refreshed (reloaded) to reflect changes incurred with links and" +" / or annotations." +msgstr "" + +#: ../../document.rst:1751 6e2ff3cc8ba1477faddb0b4a8c62a0c1 +msgid "zero if successful, otherwise an exception will be raised." +msgstr "" + +#: ../../document.rst:1756 59e3f67362e24cab9751cfb4f80bdaee +msgid "New in v.1.16.8" +msgstr "" + +#: ../../document.rst:1757 e613c9bdf9154e69bfdb4290b3db58b3 +msgid "Changed in v1.19.2: added parameter \"compress\"" +msgstr "" + +#: ../../document.rst:1758 b5a2a17e15894322882de2242d8fd8d7 +msgid "" +"Changed in v1.19.6: deprecated parameter \"new\". Now confirms that the " +"object is a PDF dictionary object." +msgstr "" + +#: ../../document.rst:1760 be549db0daac4457bfaa4bd7267ba26b +msgid "" +"Replace the stream of an object identified by :data:`xref`, which must be" +" a PDF dictionary. If the object is no :data:`stream`, it will be turned " +"into one. The function automatically performs a compress operation " +"(\"deflate\") where beneficial." +msgstr "" + +#: ../../document.rst:1764 10fe63cbe0d341f3a69640433bd62174 +msgid "" +"the new content of the stream. *(Changed in v1.14.13:)* *io.BytesIO* " +"objects are now also supported." +msgstr "" + +#: ../../document.rst:1764 af4a5ac5fb2a4e098c781ed0b4edc120 +msgid "the new content of the stream." +msgstr "" + +#: ../../document.rst:1766 8f1f5a91c7ab489dbcf4485406b77160 +msgid "*(Changed in v1.14.13:)* *io.BytesIO* objects are now also supported." +msgstr "" + +#: ../../document.rst:1768 15ae756f4ecb41b288efbd1eb2c46b65 +msgid "*deprecated* and ignored. Will be removed some time after v1.20.0." +msgstr "" + +#: ../../document.rst:1769 937c966669724ea086fc25ab2b60cdac +msgid "" +"whether to compress the inserted stream. If `True` (default), the stream " +"will be inserted using `/FlateDecode` compression (if beneficial), " +"otherwise the stream will inserted as is." +msgstr "" + +#: ../../document.rst:1771 52d2cd2519ce458b821f982d7560f805 +msgid "" +"if :data:`xref` does not represent a PDF :data:`dict`. An empty " +"dictionary ``<<>>`` is accepted. So if you just created the xref and want" +" to give it a stream, first execute `doc.update_object(xref, \"<<>>\")`, " +"and then insert the stream data with this method." +msgstr "" + +#: ../../document.rst:1773 cb6a6dc6a8254e4c8bb0f9c0590b4a57 +msgid "" +"The method is primarily (but not exclusively) intended to manipulate " +"streams containing PDF operator syntax (see pp. 643 of the " +":ref:`AdobeManual`) as it is the case for e.g. page content streams." +msgstr "" + +#: ../../document.rst:1775 e6f22217dcf04f5ca0789618ccc4b6a1 +msgid "" +"If you update a contents stream, consider using save parameter " +"*clean=True* to ensure consistency between PDF operator source and the " +"object structure." +msgstr "" + +#: ../../document.rst:1777 9175289674fe42d58a6b6abdb5e16e51 +msgid "" +"Example: Let us assume that you no longer want a certain image appear on " +"a page. This can be achieved by deleting the respective reference in its " +"contents source(s) -- and indeed: the image will be gone after reloading " +"the page. But the page's :data:`resources` object would still show the " +"image as being referenced by the page. This save option will clean up any" +" such mismatches." +msgstr "" + +#: ../../document.rst:1782 d9275845ca0549f9810fe1c459229023 +msgid "New in v1.19.5" +msgstr "" + +#: ../../document.rst:1784 1978f66df0e74a988b853cc4459b38d0 +msgid "" +"PDF Only: Make ``target`` xref an exact copy of ``source``. If ``source``" +" is a :data:`stream`, then this data is also copied." +msgstr "" + +#: ../../document.rst:1786 ede3e57cd1a54c4dae2acc826a5ca8bf +msgid "the source :data:`xref`. It must be an existing **dictionary** object." +msgstr "" + +#: ../../document.rst:1787 a114c0a1e048457db2694da7e1b8a322 +msgid "" +"the target xref. Must be an existing **dictionary** object. If the xref " +"has just been created, make sure to initialize it as a PDF dictionary " +"with the minimum specification ``<<>>``." +msgstr "" + +#: ../../document.rst:1788 59c3eb8299844c509459fa4e5a6ff3b1 +msgid "" +"an optional list of top-level keys in ``target``, that should not be " +"removed in preparation of the copy process." +msgstr "" + +#: ../../document.rst:1792 1447fd7c08ef42a7ae90572fa47e3c80 +msgid "This method has much in common with Python's *dict* method `copy()`." +msgstr "" + +#: ../../document.rst:1793 c332b30c15b841de889aa5834596e374 +msgid "Both xref numbers must represent existing dictionaries." +msgstr "" + +#: ../../document.rst:1794 c4b2efbb94164cf0bb995217e6390c71 +msgid "" +"Before data is copied from *source*, all *target* dictionary keys are " +"deleted. You can specify exceptions from this in the ``keep`` list. If " +"*source* however has a same-named key, its value will still replace the " +"target." +msgstr "" + +#: ../../document.rst:1795 a83d35411e754766978f64291fb8cb50 +msgid "" +"If ``source`` is a :data:`stream` object, then these data will also be " +"copied over, and ``target`` will be converted to a stream object." +msgstr "" + +#: ../../document.rst:1796 344e7a4ddcfb4ab89dcfcc2862bc8f8d +msgid "" +"A typical use case is to replace or remove an existing image without " +"using redaction annotations. Example scripts can be seen `in this PyMuPDF" +" Utilities example `_." +msgstr "" + +#: ../../document.rst:1800 bb36292ec69e4f9b98c4ec88541612f9 +msgid "" +"PDF Only: Extract data and meta information of an image stored in the " +"document. The output can directly be used to be stored as an image file, " +"as input for PIL, :ref:`Pixmap` creation, etc. This method avoids using " +"pixmaps wherever possible to present the image in its original format " +"(e.g. as JPEG)." +msgstr "" + +#: ../../document.rst:1802 78f689ab3d4340b284a59caa46718c80 +msgid "" +":data:`xref` of an image object. If this is not in `range(1, " +"doc.xref_length())`, or the object is no image or other errors occur, " +"`None` is returned and no exception is raised." +msgstr "" + +#: ../../document.rst:1805 6f94452f16664114839249285cdf2d94 +msgid "" +"a dictionary with the following keys * *ext* (*str*) image type (e.g. " +"*'jpeg'*), usable as image file extension * *smask* (*int*) :data:`xref` " +"number of a stencil (/SMask) image or zero * ``width`` (*int*) image " +"width * ``height`` (*int*) image height * *colorspace* (*int*) the " +"image's *colorspace.n* number. * *cs-name* (*str*) the image's " +"*colorspace.name*. * *xres* (*int*) resolution in x direction. Please " +"also see :data:`resolution`. * *yres* (*int*) resolution in y direction. " +"Please also see :data:`resolution`. * *image* (*bytes*) image data, " +"usable as image file content" +msgstr "" + +#: ../../document.rst:1805 d87f3e046f2f4b23bc0807e8168812e2 +msgid "a dictionary with the following keys" +msgstr "" + +#: ../../document.rst:1807 ba7ba718761e492e8f662d09ddc95835 +msgid "*ext* (*str*) image type (e.g. *'jpeg'*), usable as image file extension" +msgstr "" + +#: ../../document.rst:1808 9522a445d9c2447e81797f1553daa0ed +msgid "*smask* (*int*) :data:`xref` number of a stencil (/SMask) image or zero" +msgstr "" + +#: ../../document.rst:1809 07061033da1b4b1888cc6d96246e3731 +msgid "``width`` (*int*) image width" +msgstr "" + +#: ../../document.rst:1810 7a2ee3334e0b43b799cce3fa8a5067cf +msgid "``height`` (*int*) image height" +msgstr "" + +#: ../../document.rst:1811 674a1227dfb24764810f8a3c8e1d5115 +msgid "*colorspace* (*int*) the image's *colorspace.n* number." +msgstr "" + +#: ../../document.rst:1812 87b5931935934adaac549c6c0d2dae5c +msgid "*cs-name* (*str*) the image's *colorspace.name*." +msgstr "" + +#: ../../document.rst:1813 d1cdc8cf4e38466bad4393a9edda8188 +msgid "" +"*xres* (*int*) resolution in x direction. Please also see " +":data:`resolution`." +msgstr "" + +#: ../../document.rst:1814 41f36105a6ef458ca0d0efda56b787f7 +msgid "" +"*yres* (*int*) resolution in y direction. Please also see " +":data:`resolution`." +msgstr "" + +#: ../../document.rst:1815 3b09fc2f822e4a66bcf89f5064888d20 +msgid "*image* (*bytes*) image data, usable as image file content" +msgstr "" + +#: ../../document.rst:1827 a2ca74b0d3fb44a6af4caf922486b13a +msgid "" +"There is a functional overlap with *pix = pymupdf.Pixmap(doc, xref)*, " +"followed by a *pix.tobytes()*. Main differences are that extract_image, " +"**(1)** does not always deliver PNG image formats, **(2)** is **very** " +"much faster with non-PNG images, **(3)** usually results in much less " +"disk storage for extracted images, **(4)** returns `None` in error cases " +"(generates no exception). Look at the following example images within the" +" same PDF." +msgstr "" + +#: ../../document.rst:1829 ebb9a040a28642529996bc8a3d5e3341 +msgid "xref 1268 is a PNG -- Comparable execution time and identical output::" +msgstr "" + +#: ../../document.rst:1841 b4ad30db2af64226b788bc78cdbf2620 +msgid "" +"xref 1186 is a JPEG -- :meth:`Document.extract_image` is **many times " +"faster** and produces a **much smaller** output (2.48 MB vs. 0.35 MB)::" +msgstr "" + +#: ../../document.rst:1856 f238369b37934968ae4ada422517679c +msgid "Changed in v1.19.4: return a dictionary if `named == True`." +msgstr "" + +#: ../../document.rst:1858 63b965c660cb48f599a8e3ef61279d03 +msgid "" +"PDF Only: Return an embedded font file's data and appropriate file " +"extension. This can be used to store the font as an external file. The " +"method does not throw exceptions (other than via checking for PDF and " +"valid :data:`xref`)." +msgstr "" + +#: ../../document.rst:1860 5868fff7a5c1434d8331e423b2da5b01 +msgid "PDF object number of the font to extract." +msgstr "" + +#: ../../document.rst:1861 e93cee0f89174e4bac856b0c26d404a5 +msgid "" +"only return font information, not the buffer. To be used for information-" +"only purposes, avoids allocation of large buffer areas." +msgstr "" + +#: ../../document.rst:1862 fa79f073e29f4634a730854470e90a80 +msgid "" +"If true, a dictionary with the following keys is returned: 'name' (font " +"base name), 'ext' (font file extension), 'type' (font type), 'content' " +"(font file content)." +msgstr "" + +#: ../../document.rst:1865 ab89baff11f24d95bf92e569980f0cfe +msgid "" +"a tuple `(basename, ext, type, content)`, where *ext* is a 3-byte " +"suggested file extension (*str*), *basename* is the font's name (*str*), " +"*type* is the font's type (e.g. \"Type1\") and *content* is a bytes " +"object containing the font file's content (or *b\"\"*). For possible " +"extension values and their meaning see :ref:`FontExtensions`. Return " +"details on error: * `(\"\", \"\", \"\", b\"\")` -- invalid xref or xref " +"is not a (valid) font object. * `(basename, \"n/a\", \"Type1\", b\"\")` " +"-- *basename* is not embedded and thus cannot be extracted. This is the " +"case for e.g. the :ref:`Base-14-Fonts` and Type 3 fonts." +msgstr "" + +#: ../../document.rst:1865 3b2b1686981b408f9b4ca383fc8e0886 +msgid "" +"a tuple `(basename, ext, type, content)`, where *ext* is a 3-byte " +"suggested file extension (*str*), *basename* is the font's name (*str*), " +"*type* is the font's type (e.g. \"Type1\") and *content* is a bytes " +"object containing the font file's content (or *b\"\"*). For possible " +"extension values and their meaning see :ref:`FontExtensions`. Return " +"details on error:" +msgstr "" + +#: ../../document.rst:1867 481c41a571e542b7a7aa786175062a42 +msgid "" +"`(\"\", \"\", \"\", b\"\")` -- invalid xref or xref is not a (valid) font" +" object." +msgstr "" + +#: ../../document.rst:1868 cb4b7c40a27e4f8d8952d515656acd8b +msgid "" +"`(basename, \"n/a\", \"Type1\", b\"\")` -- *basename* is not embedded and" +" thus cannot be extracted. This is the case for e.g. the " +":ref:`Base-14-Fonts` and Type 3 fonts." +msgstr "" + +#: ../../document.rst:1870 41ac3a9a578a46a889335bb7b87bcaf6 +msgid "Example:" +msgstr "" + +#: ../../document.rst:1879 02cfca352adb406f958c62b5d22f6565 +msgid "" +"The basename is returned unchanged from the PDF. So it may contain " +"characters (such as blanks) which may disqualify it as a filename for " +"your operating system. Take appropriate action." +msgstr "" + +#: ../../document.rst:1882 986fdf8314ca4329828c2ddb689dc2cd +msgid "" +"The returned *basename* in general is **not** the original file name, but" +" it probably has some similarity." +msgstr "" + +#: ../../document.rst:1883 1a93938a9e004ef4a3f2d30cbd5711b6 +msgid "" +"If parameter `named == True`, a dictionary with the following keys is " +"returned: `{'name': 'T1', 'ext': 'n/a', 'type': 'Type3', 'content': " +"b''}`." +msgstr "" + +#: ../../document.rst:1890 bf48f5599c0b4eba92b57c5c2878337f +msgid "PDF only: Return the :data:`xref` of the document's XML metadata." +msgstr "" + +#: ../../document.rst:1899 b15d00f9e287463e9d85fb59c132c2fb +msgid "" +"PDF only: Check whether there are links, resp. annotations anywhere in " +"the document." +msgstr "" + +#: ../../document.rst:1901 a8ad087d8d95460885065c1393b39d3c +msgid "" +"``True`` / ``False``. As opposed to fields, which are also stored in a " +"central place of a PDF document, the existence of links / annotations can" +" only be detected by parsing each page. These methods are tuned to do " +"this efficiently and will immediately return, if the answer is ``True`` " +"for a page. For PDFs with many thousand pages however, an answer may take" +" some time [#f6]_ if no link, resp. no annotation is found." +msgstr "" + +#: ../../document.rst:1906 e21fcef1343540d1a708042f4c0792a7 +msgid "" +"PDF only: Investigate eligible fonts for their use by text in the " +"document. If a font is supported and a size reduction is possible, that " +"font is replaced by a version with a subset of its characters." +msgstr "" + +#: ../../document.rst:1908 09503144287d4b18848ae8923ddfa67b +msgid "Use this method immediately before saving the document." +msgstr "" + +#: ../../document.rst:1910 539a01e1c805488b9294c170eac3feac +msgid "" +"write various progress information to sysout. This currently only has an " +"effect if `fallback` is `True`." +msgstr "" + +#: ../../document.rst:1911 8981e0208a9f4e28b42ee5f66a328834 +msgid "" +"if `True` use the deprecated algorithm that makes use of package " +"`fontTools `_ (which hence must be " +"installed). If using the recommended value `False` (default), MuPDF's " +"native function is used -- which is **very much faster** and can subset a" +" broader range of font types. Package fontTools is not required then." +msgstr "" + +#: ../../document.rst:1913 a15a1047f45b4352a716896e69d6a301 +msgid "" +"The greatest benefit can be achieved when creating new PDFs using large " +"fonts like is typical for Asian scripts. When using the :ref:`Story` " +"class or method :meth:`Page.insert_htmlbox`, multiple fonts may " +"automatically be included -- without the programmer becoming aware of it." +msgstr "" + +#: ../../document.rst:1915 7fadfbd8f00548ec9586225f78483b9b +msgid "" +"In all these cases, the set of actually used unicodes mostly is very " +"small compared to the number of glyphs available in the used fonts. Using" +" this method can easily reduce the embedded font binaries by two orders " +"of magnitude -- from several megabytes down to a low two-digit kilobyte " +"amount." +msgstr "" + +#: ../../document.rst:1917 866600d061f646dbb57bf75dabe4392e +msgid "" +"Creating font subsets leaves behind a large number of large, now unused " +"PDF objects (\"ghosts\"). Therefore, make sure to compress and garbage-" +"collect when saving the file. We recommend to use " +":meth:`Document.ez_save`." +msgstr "" + +#: ../../document.rst:1919 024990b74b30463dbc350e966d4356da +msgid "|history_begin|" +msgstr "" + +#: ../../document.rst:1922 513bd76513be4e288a19f6b96bbaa3ef +msgid "Changed in v1.18.9" +msgstr "" + +#: ../../document.rst:1923 c85bdf00338b456db45d324b6c867387 +msgid "Changed in v1.24.2 use native function of MuPDF." +msgstr "" + +#: ../../document.rst:1925 3535b4d59fd44f9a83c2e71b62145fcd +msgid "|history_end|" +msgstr "" + +#: ../../document.rst:1930 ../../document.rst:1936 ../../document.rst:1943 +#: ../../document.rst:1950 ../../document.rst:1959 ../../document.rst:1966 +#: ../../document.rst:1975 ../../document.rst:1982 ../../document.rst:1989 +#: ../../document.rst:1998 ../../document.rst:2007 +#: 23c850b632f041fc84bbedf086e50e40 29d64060d52e41a994835f8172a847b0 +#: 60d9d50b61334a3683c961e3a783127f 6b69181c8a7a4cfcaa51258244099614 +#: 92ffa30293174c12bdea4b8d6057552d b587c518ff2b4b239282ddc410c7020a +#: bda3066db65e4117823bef6cd27678a5 bf910fcc06ee45ccb89cd50ea75979e3 +#: da2ebdf8956f483cb5f692d348eb4f5e dd484398c14a4d69b0296188557677a0 +#: e1bd5bb69f054b608a0564f9de3951e3 +msgid "New in v1.19.0" +msgstr "" + +#: ../../document.rst:1932 e3b3225611884f5f8a13d93a5fa8fed2 +msgid "" +"PDF only: Enable journalling. Use this before you start logging " +"operations." +msgstr "" + +#: ../../document.rst:1938 8249cad73bec4dd3811b53fedbf3851b +msgid "" +"PDF only: Start journalling an *\"operation\"* identified by a string " +"\"name\". Updates will fail for a journal-enabled PDF, if no operation " +"has been started." +msgstr "" + +#: ../../document.rst:1945 704071b7f7704603a6810cce4ef29486 +msgid "" +"PDF only: Stop the current operation. The updates between start and stop " +"of an operation belong to the same unit of work and will be undone / " +"redone together." +msgstr "" + +#: ../../document.rst:1952 8856cfd27a08421e8a3a415ac03757b5 +msgid "" +"PDF only: Return the numbers of the current operation and the total " +"operation count." +msgstr "" + +#: ../../document.rst:1954 7aef4dabfe7f42ee8e132777108552c3 +msgid "" +"a tuple `(step, steps)` containing the current operation number and the " +"total number of operations in the journal. If **step** is 0, we are at " +"the top of the journal. If **step** equals **steps**, we are at the " +"bottom. Updating the PDF with anything other than undo or redo will " +"automatically remove all journal entries after the current one and the " +"new update will become the new last entry in the journal. The updates " +"corresponding to the removed journal entries will be permanently lost." +msgstr "" + +#: ../../document.rst:1961 5804540e567442e986c965d58055649e +msgid "PDF only: Return the name of operation number *step.*" +msgstr "" + +#: ../../document.rst:1968 f0a5f14026814bc0838219dad0e6c78d +msgid "" +"PDF only: Show whether forward (\"redo\") and / or backward (\"undo\") " +"executions are possible from the current journal position." +msgstr "" + +#: ../../document.rst:1970 5066e32c51d74905ac1aaf5bb22faf52 +msgid "" +"a dictionary `{\"undo\": bool, \"redo\": bool}`. The respective method is" +" available if its value is `True`." +msgstr "" + +#: ../../document.rst:1977 bca8256424854422903812de1880cf69 +msgid "" +"PDF only: Revert (undo) the current step in the journal. This moves " +"towards the journal's top." +msgstr "" + +#: ../../document.rst:1984 c840e9624cdb422484fa864d8235880f +msgid "" +"PDF only: Re-apply (redo) the current step in the journal. This moves " +"towards the journal's bottom." +msgstr "" + +#: ../../document.rst:1991 58b8caa5be0c42e4ad1af76dfb16eb62 +msgid "PDF only: Save the journal to a file." +msgstr "" + +#: ../../document.rst:1993 64c4bc40fb8f405e9953e7eb030677d4 +msgid "" +"either a filename as string or a file object opened as \"wb\" (or an " +"`io.BytesIO()` object)." +msgstr "" + +#: ../../document.rst:2000 b77b3dcb8b40499faf7067ff14e0ac3d +msgid "" +"PDF only: Load journal from a file. Enables journalling for the document." +" If journalling is already enabled, an exception is raised." +msgstr "" + +#: ../../document.rst:2002 4961c34dc2e34a79bc11de4657129a91 +msgid "" +"the filename (str) of the journal or a file object opened as \"rb\" (or " +"an `io.BytesIO()` object)." +msgstr "" + +#: ../../document.rst:2009 b7d0c0f588064a908bf9eb652ed74157 +msgid "" +"PDF only: Saves a \"snapshot\" of the document. This is a PDF document " +"with a special, incremental-save format compatible with journalling -- " +"therefore no save options are available. Saving a snapshot is not " +"possible for new documents." +msgstr "" + +#: ../../document.rst:2011 2545bccc73fa4299b3e544581d325b2d +msgid "" +"This is a normal PDF document with no usage restrictions whatsoever. If " +"it is not being changed in any way, it can be used together with its " +"journal to undo / redo operations or continue updating." +msgstr "" + +#: ../../document.rst:2016 e424a27e6b2643928977f3d6aa555cb3 +msgid "" +"Contains the first :ref:`Outline` entry of the document (or `None`). Can " +"be used as a starting point to walk through all outline items. Accessing " +"this property for encrypted, not authenticated documents will raise an " +"*AttributeError*." +msgstr "" + +#: ../../document.rst 1602273cc936401281de518030afe066 +#: 16f29bf99132426f87c8a1a3a19e00e2 28f47def4ae34ebba8d1b7ed547bef39 +#: 2d1462d16cab46708c2ea82e0c12389d 3042551ff76e414a8b0fbd0249e3dbc2 +#: 32ae939840b646df97a2f59c6dbbb95d 37ba5b84daea4a13bd04359c6cd8f01d +#: 610be889b0ed46b6b67b919761c5328c 7198eba9028c42ab86329761fdd6189d +#: 7f3d268e33dc4d32ade745103b248f42 8757f1490fa24ef3a7e6900eece671f5 +#: 8c9cfec8c566490b9639225e031a57fe a081d38bf1be4385a577bfc95efe4956 +#: a15d802d6d3f4b57988cd8306eb4c8ef a4df564b9c0a486e84405a39b6299935 +#: b1f9eacd35de4db691b1ed0287a78333 bb8e4f6e9b2c4e09abe1a99243658dca +#: c4a68e2e7f19437b8849a9ffe38fbf3b cda3e67477524036890a97e0103ac73b +#: ce0880d44e354062a461cde8ea9b8ecc f50c8eac8d5b46b989ee843ce5e55e52 +msgid "type" +msgstr "" + +#: ../../document.rst:2018 09f8caef7fbd48cd82a0924621d2a9e0 +msgid ":ref:`Outline`" +msgstr "" + +#: ../../document.rst:2022 f6902ea6d7c74e0e9df77ba8f44bc184 +msgid "" +"``False`` if document is still open. If closed, most other attributes and" +" methods will have been deleted / disabled. In addition, :ref:`Page` " +"objects referring to this document (i.e. created with " +":meth:`Document.load_page`) and their dependent objects will no longer be" +" usable. For reference purposes, :attr:`Document.name` still exists and " +"will contain the filename of the original document (if applicable)." +msgstr "" + +#: ../../document.rst:2024 ../../document.rst:2030 ../../document.rst:2036 +#: ../../document.rst:2050 ../../document.rst:2058 ../../document.rst:2066 +#: ../../document.rst:2104 ../../document.rst:2110 +#: 0cefab557d984344bfda0158a1f52684 394c1dd8d7534572ba79ebb0cccca67f +#: 66e5ea720bed4a8db1dc0ce57284dd20 7727b1750813444ba91203426800b004 +#: 7e8cf3312cff4ac48dce16a36311f52a aa51fa3df40249eaa4a1e1a0d5310e13 +#: d9e029f9473442ebbb79145d3e00c7d3 f2ab1deb6ba9463aaa494cc84adb11ea +msgid "bool" +msgstr "" + +#: ../../document.rst:2028 be46ed59c726495784dfc24c6c0e257d +msgid "" +"``True`` if this is a PDF document and contains unsaved changes, else " +"``False``." +msgstr "" + +#: ../../document.rst:2034 b53c8bd571224a64808858ec1262f49c +msgid "``True`` if this is a PDF document, else ``False``." +msgstr "" + +#: ../../document.rst:2040 5b077860c7f84173a695652fa22ede87 +msgid "" +"``False`` if this is not a PDF or has no form fields, otherwise the " +"number of root form fields (fields with no ancestors)." +msgstr "" + +#: ../../document.rst:2042 c94346686fa04426a6f4827511abb382 +msgid "*(Changed in v1.16.4)* Returns the total number of (root) form fields." +msgstr "" + +#: ../../document.rst:2044 64d2a67af100488b8d2efa6e1883d02a +msgid "bool,int" +msgstr "" + +#: ../../document.rst:2048 c2a8e91d886f4dd39afa57c9e57ace12 +msgid "" +"``True`` if document has a variable page layout (like e-books or HTML). " +"In this case you can set the desired page dimensions during document " +"creation (open) or via method :meth:`layout`." +msgstr "" + +#: ../../document.rst:2054 097934b832ba49788816a0be330fcc4d +msgid "New in v1.18.2" +msgstr "" + +#: ../../document.rst:2056 a3953a101b3d436c889b977615129521 +msgid "" +"``True`` if PDF has been repaired during open (because of major structure" +" issues). Always ``False`` for non-PDF documents. If true, more details " +"have been stored in `TOOLS.mupdf_warnings()`, and " +":meth:`Document.can_save_incrementally` will return ``False``." +msgstr "" + +#: ../../document.rst:2064 2cce725fd9f3422f8aecbdee94679aea +msgid "``True`` if PDF is in linearized format. ``False`` for non-PDF documents." +msgstr "" + +#: ../../document.rst:2072 f3bed56567f343e7be019a7113151958 +msgid "" +"A dictionary indicating the `/MarkInfo` value. If not specified, the " +"empty dictionary is returned. If not a PDF, `None` is returned." +msgstr "" + +#: ../../document.rst:2074 ../../document.rst:2138 +#: 4fac34bbddf141cc9db4746145385918 c43c67dc2942407d8e9945f28ce574e8 +msgid "dict" +msgstr "" + +#: ../../document.rst:2080 3c2381448f9746669bed68baf5d9bb53 +msgid "" +"A string containing the `/PageMode` value. If not specified, the default " +"\"UseNone\" is returned. If not a PDF, `None` is returned." +msgstr "" + +#: ../../document.rst:2082 ../../document.rst:2090 ../../document.rst:2144 +#: 3be5c37120cd4a79b8474f458308b81a 531912d21abf43ce967a311e2f37dbb5 +#: 68eeac57aeee49e799a0fb10f3ff10db +msgid "str" +msgstr "" + +#: ../../document.rst:2088 94d13e47f92c425ca9ceffd8061d5b3c +msgid "" +"A string containing the `/PageLayout` value. If not specified, the " +"default \"SinglePage\" is returned. If not a PDF, `None` is returned." +msgstr "" + +#: ../../document.rst:2096 376302c8e2864821a4ed3203d7970057 +msgid "" +"An integer counting the number of versions present in the document. Zero " +"if not a PDF, otherwise the number of incremental saves plus one." +msgstr "" + +#: ../../document.rst:2098 ../../document.rst:2118 ../../document.rst:2150 +#: ../../document.rst:2158 ../../document.rst:2166 +#: 3ccae1d5a11a4795b4cb9fbb7abb90fb 551cfa067ca747078f3544b2b9a4c75d +#: 6dc1779125fa4a5e89941961eedf2852 c694fc32adcc41ba87ad799a94b4e7e4 +#: e3e8e1e7807b4796bdf0baacbe43920e +msgid "int" +msgstr "" + +#: ../../document.rst:2102 15c8db41a1944a7bbc1153ac5f6933af +msgid "" +"Indicates whether the document is password-protected against access. This" +" indicator remains unchanged -- **even after the document has been " +"authenticated**. Precludes incremental saves if true." +msgstr "" + +#: ../../document.rst:2108 cfd83d7fc9914f1ea0b309e4421dafc9 +msgid "" +"This indicator initially equals :attr:`Document.needs_pass`. After " +"successful authentication, it is set to ``False`` to reflect the " +"situation." +msgstr "" + +#: ../../document.rst:2114 9694db51001240f19eb22fb0d5f7c271 +msgid "" +"Changed in v1.16.0: This is now an integer comprised of bit indicators. " +"Was a dictionary previously." +msgstr "" + +#: ../../document.rst:2116 1db1f23f8ebc4475b568658aa43f199a +msgid "" +"Contains the permissions to access the document. This is an integer " +"containing bool values in respective bit positions. For example, if " +"*doc.permissions & pymupdf.PDF_PERM_MODIFY > 0*, you may change the " +"document. See :ref:`PermissionCodes` for details." +msgstr "" + +#: ../../document.rst:2122 7962fdc44f174396b7e69eae4e54c130 +msgid "" +"Contains the document's meta data as a Python dictionary or `None` (if " +"*is_encrypted=True* and *needPass=True*). Keys are *format*, " +"*encryption*, *title*, *author*, *subject*, *keywords*, *creator*, " +"*producer*, *creationDate*, *modDate*, *trapped*. All item values are " +"strings or `None`." +msgstr "" + +#: ../../document.rst:2124 6cfc801351f94f7b861f48bb410d28c7 +msgid "" +"Except *format* and *encryption*, for PDF documents, the key names " +"correspond in an obvious way to the PDF keys */Creator*, */Producer*, " +"*/CreationDate*, */ModDate*, */Title*, */Author*, */Subject*, */Trapped* " +"and */Keywords* respectively." +msgstr "" + +#: ../../document.rst:2126 f20bf71e53de47268b103331add7edf9 +msgid "*format* contains the document format (e.g. 'PDF-1.6', 'XPS', 'EPUB')." +msgstr "" + +#: ../../document.rst:2128 3efef9d77a4c425db7765bd868246cfe +msgid "" +"*encryption* either contains `None` (no encryption), or a string naming " +"an encryption method (e.g. *'Standard V4 R4 128-bit RC4'*). Note that an " +"encryption method may be specified **even if** *needs_pass=False*. In " +"such cases not all permissions will probably have been granted. Check " +":attr:`Document.permissions` for details." +msgstr "" + +#: ../../document.rst:2130 9d90a31d5dc443e499dc24e80ac6a7fd +msgid "" +"If the date fields contain valid data (which need not be the case at " +"all!), they are strings in the PDF-specific timestamp format " +"\"D:\", where" +msgstr "" + +#: ../../document.rst:2132 20a10dd0049e479fb79845780b64734a +msgid "" +" is the 12 character ISO timestamp *YYYYMMDDhhmmss* (*YYYY* - year, " +"*MM* - month, *DD* - day, *hh* - hour, *mm* - minute, *ss* - second), and" +msgstr "" + +#: ../../document.rst:2134 5da96c47c93747d58f34b49ac5ef58cd +msgid "" +" is a time zone value (time interval relative to GMT) containing a " +"sign ('+' or '-'), the hour (*hh*), and the minute (*'mm'*, note the " +"apostrophes!)." +msgstr "" + +#: ../../document.rst:2136 22d1786adac24570a27a1aae46488101 +msgid "" +"A Paraguayan value might hence look like *D:20150415131602-04'00'*, which" +" corresponds to the timestamp April 15, 2015, at 1:16:02 pm local time " +"Asuncion." +msgstr "" + +#: ../../document.rst:2142 b0cf324cb8914ca695f619ae42bd9652 +msgid "" +"Contains the *filename* or *filetype* value with which *Document* was " +"created." +msgstr "" + +#: ../../document.rst:2148 7f4ed0f5c41e456189313cbfc5952e49 +msgid "" +"Contains the number of pages of the document. May return 0 for documents " +"with no pages. Function `len(doc)` will also deliver this result." +msgstr "" + +#: ../../document.rst:2154 ../../document.rst:2162 +#: 73610f94f5a34127a2dda3a113913b25 c06566f44d3f4e20a91862264e4a1c99 +msgid "New in v1.17.0" +msgstr "" + +#: ../../document.rst:2156 8cf8164c876c405e800d30202732e6f6 +msgid "" +"Contains the number of chapters in the document. Always at least 1. " +"Relevant only for document types with chapter support (EPUB currently). " +"Other documents will return 1." +msgstr "" + +#: ../../document.rst:2164 e5dfbd74ae114264bf5b918a7e215bda +msgid "" +"Contains (chapter, pno) of the document's last page. Relevant only for " +"document types with chapter support (EPUB currently). Other documents " +"will return `(0, page_count - 1)` and `(0, -1)` if it has no pages." +msgstr "" + +#: ../../document.rst:2170 6161488e20a3440a8af171ec632bfd3e +msgid "" +"A list of form field font names defined in the */AcroForm* object. `None`" +" if not a PDF." +msgstr "" + +#: ../../document.rst:2172 ef0288df376442b1b18ffdc60b13aad3 +msgid "list" +msgstr "" + +#: ../../document.rst:2174 3cddcafda79b4acfa4346bad9396da59 +msgid "" +"For methods that change the structure of a PDF (:meth:`insert_pdf`, " +":meth:`select`, :meth:`copy_page`, :meth:`delete_page` and others), be " +"aware that objects or properties in your program may have been " +"invalidated or orphaned. Examples are :ref:`Page` objects and their " +"children (links, annotations, widgets), variables holding old page " +"counts, tables of content and the like. Remember to keep such variables " +"up to date or delete orphaned objects. Also refer to " +":ref:`ReferenialIntegrity`." +msgstr "" + +#: ../../document.rst:2177 a2398cf6ad98476d944c903b70fee21b +msgid ":meth:`set_metadata` Example" +msgstr "" + +#: ../../document.rst:2178 ddf7de671f964452acd94d777e10a07d +msgid "" +"Clear metadata information. If you do this out of privacy / data " +"protection concerns, make sure you save the document as a new file with " +"*garbage > 0*. Only then the old */Info* object will also be physically " +"removed from the file. In this case, you may also want to clear any XML " +"metadata inserted by several PDF editors:" +msgstr "" + +#: ../../document.rst:2196 642d2b67cd2f40c088b9ab627d5bcce7 +msgid ":meth:`set_toc` Demonstration" +msgstr "" + +#: ../../document.rst:2197 23344c44c0964dfd87e2ed6368dfe5f2 +msgid "" +"This shows how to modify or add a table of contents. Also have a look at " +"`import.py `_ and `export.py " +"`_ in the examples directory." +msgstr "" + +#: ../../document.rst:2217 c5bd350315cb42bb9d44f2ed5f142cf7 +msgid ":meth:`insert_pdf` Examples" +msgstr "" + +#: ../../document.rst:2218 37f35aaa221e450b9c7923b3fb645393 +msgid "**(1) Concatenate two documents including their TOCs:**" +msgstr "" + +#: ../../document.rst:2230 19d9ac4c4ce54408a9ff1fc42b2ec3ab +msgid "" +"Obviously, similar ways can be found in more general situations. Just " +"make sure that hierarchy levels in a row do not increase by more than " +"one. Inserting dummy bookmarks before and after *toc2* segments would " +"heal such cases. A ready-to-use GUI (wxPython) solution can be found in " +"script `join.py `_ of the examples " +"directory." +msgstr "" + +#: ../../document.rst:2232 ec37bfa672424492b706bb55ae38792d +msgid "**(2) More examples:**" +msgstr "" + +#: ../../document.rst:2244 daa47d21176046b3b8cdcc9a15eff373 +msgid "Other Examples" +msgstr "" + +#: ../../document.rst:2245 25b5f7ff173e4cbb974822ddf15bda53 +msgid "**Extract all page-referenced images of a PDF into separate PNG files**::" +msgstr "" + +#: ../../document.rst:2260 9dcc333da1824dcb84886586cf37039d +msgid "**Rotate all pages of a PDF:**" +msgstr "" + +#: ../../document.rst:2265 00e524b709ed425197a1390a21596acd +msgid "Footnotes" +msgstr "" + +#: ../../document.rst:2266 a15a2e8120a74e39a05d411ee7c1c7d1 +msgid "" +"Content streams describe what (e.g. text or images) appears where and how" +" on a page. PDF uses a specialized mini language similar to PostScript to" +" do this (pp. 643 in :ref:`AdobeManual`), which gets interpreted when a " +"page is loaded." +msgstr "" + +#: ../../document.rst:2268 ca3b618244bb41b19d1e10271e0d41c1 +msgid "" +"However, you **can** use :meth:`Document.get_toc` and " +":meth:`Page.get_links` (which are available for all document types) and " +"copy this information over to the output PDF. See demo `convert.py " +"`_." +msgstr "" + +#: ../../document.rst:2270 6f0e49f40f3b42b282cf974f985eacf7 +msgid "" +"For applicable (EPUB) document types, loading a page via its absolute " +"number may result in layouting a large part of the document, before the " +"page can be accessed. To avoid this performance impact, prefer chapter-" +"based access. Use convenience methods and attributes " +":meth:`Document.next_location`, :meth:`Document.prev_location` and " +":attr:`Document.last_location` for maintaining a high level of coding " +"efficiency." +msgstr "" + +#: ../../document.rst:2272 7e142ce80a5a4b0a88149a89bca628b3 +msgid "" +"These parameters cause separate handling of stream categories: use it " +"together with `expand` to restrict decompression to streams other than " +"images / fontfiles." +msgstr "" + +#: ../../document.rst:2274 03c1d89d03c1475593eabb3e4292b9a3 +msgid "Examples for \"Form XObjects\" are created by :meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../document.rst:2276 7a2f02a6696b4fbe97fb5959655cf631 +msgid "" +"For a ``False`` the **complete document** must be scanned. Both methods " +"**do not load pages,** but only scan object definitions. This makes them " +"at least 10 times faster than application-level loops (where total " +"response time roughly equals the time for loading all pages). For the " +":ref:`AdobeManual` (756 pages) and the Pandas documentation (over 3070 " +"pages) -- both have no annotations -- the method needs about 11 ms for " +"the answer ``False``. So response times will probably become significant " +"only well beyond this order of magnitude." +msgstr "" + +#: ../../document.rst:2278 877071710b344f2f93ce93231f4a36a5 +msgid "" +"This only works under certain conditions. For example, if there is normal" +" text covered by some image on top of it, then this is undetectable and " +"the respective text is **not** removed. Similar is true for white text on" +" white background, and so on." +msgstr "" + +#: ../../footer.rst:46 1a755c93e67b4ba193138e8e29cfc599 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/faq.mo b/docs/locales/ko/LC_MESSAGES/faq.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/faq.po b/docs/locales/ko/LC_MESSAGES/faq.po new file mode 100644 index 000000000..5c2254055 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/faq.po @@ -0,0 +1,57 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 26b7c00502e4429388cabf9a042f5238 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 7a2feb7c7c9a4331ab92ee52778c6ed3 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 6f902b541af847b1b3f894dde5be9209 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../faq.rst:7 6ac2612360e64fa9b4c17369cb8c60f3 +msgid "FAQ" +msgstr "" + +#: ../../faq.rst:9 dcceb2d26f344dca90e1cf158b5648f4 +msgid "A collection of recipes in “How-To” format for using PyMuPDF." +msgstr "" + +#: ../../faq.rst:12 5c72bd18a4a24c00a6a60585bc9f17d3 +msgid "Please see:" +msgstr "" + +#: ../../faq.rst:14 9b73bbc3abad40ddbe598984f532aa9d +msgid ":ref:`Recipes: Table of Contents`" +msgstr "" + +#: ../../footer.rst:46 c31113147f904375bfc8ba0a1e1c1959 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/font.mo b/docs/locales/ko/LC_MESSAGES/font.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/font.po b/docs/locales/ko/LC_MESSAGES/font.po new file mode 100644 index 000000000..637c7afbd --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/font.po @@ -0,0 +1,1028 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 e188dde9abe149bc8995bf7a6a0bc7d6 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 3cb714fa525c44bbbbd491bc8f62336e +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c23c7d47fe3e429dbde810adabc353b6 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../font.rst:7 d2748ea1ae9940f6b22b259ae4533e13 +msgid "Font" +msgstr "" + +#: ../../font.rst:9 3bf53a70d692484eaabd5afc3aab44c8 +msgid "New in v1.16.18" +msgstr "" + +#: ../../font.rst:11 4c18f6c0f2b6494fbf226048ecce0907 +msgid "" +"This class represents a font as defined in |MuPDF| (``fz_font_s`` " +"structure). It is required for the new class :ref:`TextWriter` and the " +"new :meth:`Page.write_text`. Currently, it has no connection to how fonts" +" are used in methods :meth:`Page.insert_text` or " +":meth:`Page.insert_textbox`, respectively." +msgstr "" + +#: ../../font.rst:13 2125868871f645fb9fa0d4390f116a1a +msgid "" +"A ``Font`` object also contains useful general information, like the font" +" bbox, the number of defined glyphs, glyph names or the ``bbox`` of a " +"single glyph." +msgstr "" + +#: ../../font.rst:17 842b44a70bf34b07ac2692aa84a193da +msgid "**Method / Attribute**" +msgstr "" + +#: ../../font.rst:17 f69a466cefe443c3855949e5cc5ffcd6 +msgid "**Short Description**" +msgstr "" + +#: ../../font.rst:19 1bba986439da408a84c24de22da3768d +msgid ":meth:`~Font.glyph_advance`" +msgstr "" + +#: ../../font.rst:19 627a6c4218dd4762ae098709cdb920ad +msgid "Width of a character" +msgstr "" + +#: ../../font.rst:20 6ca041bd76a54c949510e2ed77ca58f0 +msgid ":meth:`~Font.glyph_bbox`" +msgstr "" + +#: ../../font.rst:20 d9fb542d691c44a19873b891f02b7812 +msgid "Glyph rectangle" +msgstr "" + +#: ../../font.rst:21 e7791392edbd4e5d9094df1b320d2c5b +msgid ":meth:`~Font.glyph_name_to_unicode`" +msgstr "" + +#: ../../font.rst:21 13f06c680aba44698114079c036bcdba +msgid "Get unicode from glyph name" +msgstr "" + +#: ../../font.rst:22 c04368ada6c341f093c2f4872cd5cd52 +msgid ":meth:`~Font.has_glyph`" +msgstr "" + +#: ../../font.rst:22 689634c88d144bef9223b78f39009eda +msgid "Return glyph id of unicode" +msgstr "" + +#: ../../font.rst:23 a369a0e87b4340168dce9cd130684d3c +msgid ":meth:`~Font.text_length`" +msgstr "" + +#: ../../font.rst:23 f20e22d5c6534f99a10aad9ab98d9ae3 +msgid "Compute string length" +msgstr "" + +#: ../../font.rst:24 d46c723021014de19f30cce31dd6fa83 +msgid ":meth:`~Font.char_lengths`" +msgstr "" + +#: ../../font.rst:24 2c939c616c2a45d19cef1d2e9148c5f8 +msgid "Tuple of char widths of a string" +msgstr "" + +#: ../../font.rst:25 30fcbf0fac8c4137ac05697051b7a487 +msgid ":meth:`~Font.unicode_to_glyph_name`" +msgstr "" + +#: ../../font.rst:25 96a805868d65421593f69cabcbdff444 +msgid "Get glyph name of a unicode" +msgstr "" + +#: ../../font.rst:26 556560ade52f45878ccd9247ed48b124 +msgid ":meth:`~Font.valid_codepoints`" +msgstr "" + +#: ../../font.rst:26 f98352016c9a420597ecdc2d4da47bcd +msgid "Array of supported unicodes" +msgstr "" + +#: ../../font.rst:27 8046f6ca0658408896ffec620e7c19d2 +msgid ":attr:`~Font.ascender`" +msgstr "" + +#: ../../font.rst:27 bdef6c925fd24cd6a8bd423203561e10 +msgid "Font ascender" +msgstr "" + +#: ../../font.rst:28 b9972b7d50024c5f92aae461b95e9b9d +msgid ":attr:`~Font.descender`" +msgstr "" + +#: ../../font.rst:28 333b36880ce240299a20b8d485071b31 +msgid "Font descender" +msgstr "" + +#: ../../font.rst:29 1ca68d63143c41ae9afaf82231bb0b98 +msgid ":attr:`~Font.bbox`" +msgstr "" + +#: ../../font.rst:29 88947fe258eb49d5a4bcd7f9262d6f64 +msgid "Font rectangle" +msgstr "" + +#: ../../font.rst:30 70204c08ad4f48bfb90c610ace5e2f16 +msgid ":attr:`~Font.buffer`" +msgstr "" + +#: ../../font.rst:30 d8dc88a830a143b69cf9198d43a1d8be +msgid "Copy of the font's binary image" +msgstr "" + +#: ../../font.rst:31 087ab4d9b8c245329f433d0e0bc1dae2 +msgid ":attr:`~Font.flags`" +msgstr "" + +#: ../../font.rst:31 b08397d234cf4d828c277f81b7e5797c +msgid "Collection of font properties" +msgstr "" + +#: ../../font.rst:32 1b9e053341ba4bf29f37614365fca44e +msgid ":attr:`~Font.glyph_count`" +msgstr "" + +#: ../../font.rst:32 9266fb9484fe42618bd4b861302ec139 +msgid "Number of supported glyphs" +msgstr "" + +#: ../../font.rst:33 a1a23dee533f4eb9a0253e7ed4dc2160 +msgid ":attr:`~Font.name`" +msgstr "" + +#: ../../font.rst:33 f7c44ea05506418686745a0a8b4ccf1e +msgid "Name of font" +msgstr "" + +#: ../../font.rst:34 4d8600344c934dca966561b9b23705a3 +msgid ":attr:`~Font.is_bold`" +msgstr "" + +#: ../../font.rst:34 42bd831f9b604a58adec9428f2799d4a +msgid "`True` if bold" +msgstr "" + +#: ../../font.rst:35 4fd252e5611e4f25ad7279f120909cc1 +msgid ":attr:`~Font.is_monospaced`" +msgstr "" + +#: ../../font.rst:35 53567d475247479ebe27771a05253749 +msgid "`True` if mono-spaced" +msgstr "" + +#: ../../font.rst:36 386c083d80e24cd8889a76d1ed0d655e +msgid ":attr:`~Font.is_serif`" +msgstr "" + +#: ../../font.rst:36 dc515a68d8984513880dd9652137056b +msgid "`True` if serif, `False` if sans-serif" +msgstr "" + +#: ../../font.rst:37 ef38964ab5634a4a8afc1a4043834bcb +msgid ":attr:`~Font.is_italic`" +msgstr "" + +#: ../../font.rst:37 6ab8b6017630445e8a8d73bd87250888 +msgid "`True` if italic" +msgstr "" + +#: ../../font.rst:41 ef6bc7e0d9cf42848d2ea5ec97cad0e8 +msgid "**Class API**" +msgstr "" + +#: ../../font.rst:60 07b4413b01ae4ae89132a4d69299fcff +msgid "" +"Font constructor. The large number of parameters are used to locate font," +" which most closely resembles the requirements. Not all parameters are " +"ever required -- see the below pseudo code explaining the logic how the " +"parameters are evaluated." +msgstr "" + +#: ../../font.rst 51829dd751b848658d1ba228b94ce1de +#: 6865a3bfb8444b439d877a9d8a59cb0a 722fbb72278d4e3e8bb0df13f398859a +#: 8cbc7148711c4ee9a078b6a806370c78 a100d7e7206946cda8a733ebb3f80137 +#: c931f89accb14562827a19ea990df0aa f0f58970e4794ad2b4f9ab161b976692 +#: f42510c818544c6180a85f87a852dd28 +msgid "Parameters" +msgstr "" + +#: ../../font.rst:62 b7c66967af094eed88e4cd0bfa9c0b59 +msgid "" +"one of the :ref:`Base-14-Fonts` or CJK fontnames. Also possible are a " +"select few other names like (watch the correct spelling): \"Arial\", " +"\"Times\", \"Times Roman\". *(Changed in v1.17.5)* If you have " +"installed `pymupdf-fonts `_, " +"there are also new \"reserved\" fontnames available, which are listed in " +":attr:`fitz_fonts` and in the table further down." +msgstr "" + +#: ../../font.rst:62 4f54e9a21f4e4cdd94eb896e84a11207 +msgid "" +"one of the :ref:`Base-14-Fonts` or CJK fontnames. Also possible are a " +"select few other names like (watch the correct spelling): \"Arial\", " +"\"Times\", \"Times Roman\"." +msgstr "" + +#: ../../font.rst:64 33128ec921644adcb669eed87f58d1ad +msgid "*(Changed in v1.17.5)*" +msgstr "" + +#: ../../font.rst:66 2580ac163f6d40a6a97df2667e044b70 +msgid "" +"If you have installed `pymupdf-fonts `_, there are also new \"reserved\" fontnames available, which are" +" listed in :attr:`fitz_fonts` and in the table further down." +msgstr "" + +#: ../../font.rst:68 0115b8805a994350b1e9b88652d9c671 +msgid "the filename of a fontfile somewhere on your system [#f1]_." +msgstr "" + +#: ../../font.rst:69 855671c475ce4d4a95574d50da436fa8 +msgid "a fontfile loaded in memory [#f1]_." +msgstr "" + +#: ../../font.rst:70 b4cd7e175eb14d658f5faa379b3ef701 +msgid "" +"the number of a UCDN script. Currently supported in PyMuPDF are numbers " +"24, and 32 through 35." +msgstr "" + +#: ../../font.rst:71 d5a5fc15ea7c4e1b8d26964a61b402e8 +msgid "" +"one of the values \"zh-Hant\" (traditional Chinese), \"zh-Hans\" " +"(simplified Chinese), \"ja\" (Japanese) and \"ko\" (Korean). Otherwise, " +"all ISO 639 codes from the subsets 1, 2, 3 and 5 are also possible, but " +"are currently documentary only." +msgstr "" + +#: ../../font.rst:72 5b0e786be58c4a09a48eacc61882197e +msgid "an alternative selector for one of the CJK fonts." +msgstr "" + +#: ../../font.rst:73 6af1f2fb252e4071bab746f2ad57c01d +msgid "look for a bold font." +msgstr "" + +#: ../../font.rst:74 6f2bffef2aa94c92b00fa9cf6d97a283 +msgid "look for an italic font." +msgstr "" + +#: ../../font.rst:75 23ca0f2751ed4b2f834236f7e744dd36 +msgid "look for a serifed font." +msgstr "" + +#: ../../font.rst 1d22b29a05e741f387368f96870d4c1b +#: 1e8b6f0bc4da4c4db71fcd4ce33f7f4d 1ebfff0006a54633b2e48a4cf728c55b +#: 3126e087ce6d47cbb326a10281420878 3aaf4a67eaa8475e97bebd3b14716268 +#: 3b8e58b5a2034fddbba0b9f34d785351 425ebf256d4842928912c98469178b2e +#: 455992af6eea4168919f71ca6e0a63e9 7512b5e1267b491c80d9886fcb846c91 +msgid "Returns" +msgstr "" + +#: ../../font.rst:77 d564d7e503224782b914ea4c4d4bd55b +msgid "" +"a |MuPDF| font if successful. This is the overall sequence of checks to " +"determine an appropriate font: =========== " +"============================================================ Argument " +"Action =========== " +"============================================================ fontfile? " +"Create font from file, exception if failure. fontbuffer? Create font from" +" buffer, exception if failure. ordering>=0 Create universal font, always " +"succeeds. fontname? Create a Base-14 font, universal font, or font" +" provided by `pymupdf-fonts `_. See table below. =========== " +"============================================================" +msgstr "" + +#: ../../font.rst:77 cea38fccea5241229aadba228571f8be +msgid "" +"a |MuPDF| font if successful. This is the overall sequence of checks to " +"determine an appropriate font:" +msgstr "" + +#: ../../font.rst:80 580ec24b97e749299e613764ef3403c6 +msgid "Argument" +msgstr "" + +#: ../../font.rst:80 c41ca6b5584649b586f676f06f22549b +msgid "Action" +msgstr "" + +#: ../../font.rst:82 98333181f4584c9c8bca13c85c415262 +msgid "fontfile?" +msgstr "" + +#: ../../font.rst:82 73d6da924f634bc7b6e4fe044072fe6d +msgid "Create font from file, exception if failure." +msgstr "" + +#: ../../font.rst:83 130073b0bea44ffc890479cdb5f5340d +msgid "fontbuffer?" +msgstr "" + +#: ../../font.rst:83 a74986c74e6843eea78fcc35d447c3a2 +msgid "Create font from buffer, exception if failure." +msgstr "" + +#: ../../font.rst:84 29919d8588f5493dafda4cfe7f0555b1 +msgid "ordering>=0" +msgstr "" + +#: ../../font.rst:84 3f0b6b784f1742238213e67a82078abf +msgid "Create universal font, always succeeds." +msgstr "" + +#: ../../font.rst:85 fe70636ee76b429da54199e913507119 +msgid "fontname?" +msgstr "" + +#: ../../font.rst:85 a411aeb787b5416f854bb729f143e0b6 +msgid "" +"Create a Base-14 font, universal font, or font provided by `pymupdf-fonts" +" `_. See table below." +msgstr "" + +#: ../../font.rst:92 d6d370d9961e418c8c6a25a191d46651 +msgid "" +"With the usual reserved names \"helv\", \"tiro\", etc., you will create " +"fonts with the expected names \"Helvetica\", \"Times-Roman\" and so on. " +"**However**, and in contrast to :meth:`Page.insert_font` and friends," +msgstr "" + +#: ../../font.rst:94 31fed8debc7c42ca9166ee0b1ef74c98 +msgid "a font file will **always** be embedded in your PDF," +msgstr "" + +#: ../../font.rst:95 9b3d8892b4424474889b2416ef13836b +msgid "" +"Greek and Cyrillic characters are supported without needing the " +"*encoding* parameter." +msgstr "" + +#: ../../font.rst:97 c07988cc48644ac8846d43cf555ae595 +msgid "" +"Using *ordering >= 0*, or fontnames \"cjk\", \"china-t\", \"china-s\", " +"\"japan\" or \"korea\" will **always create the same \"universal\"** font" +" **\"Droid Sans Fallback Regular\"**. This font supports **all Chinese, " +"Japanese, Korean and Latin characters**, including Greek and Cyrillic. " +"This is a sans-serif font." +msgstr "" + +#: ../../font.rst:99 6db4519008e44ee682c2a27e4d316f4b +msgid "" +"Actually, you would rarely ever need another sans-serif font than " +"**\"Droid Sans Fallback Regular\"**. **Except** that this font file is " +"relatively large and adds about 1.65 MB (compressed) to your PDF file " +"size. If you do not need CJK support, stick with specifying \"helv\", " +"\"tiro\" etc., and you will get away with about 35 KB compressed." +msgstr "" + +#: ../../font.rst:101 79c699cd0e0a44828e95752e5f6f2ebe +msgid "" +"If you **know** you have a mixture of CJK and Latin text, consider just " +"using `Font(\"cjk\")` because this supports everything and also " +"significantly (by a factor of up to three) speeds up execution: MuPDF " +"will always find any character in this single font and never needs to " +"check fallbacks." +msgstr "" + +#: ../../font.rst:103 71613c830de34e6f9ecdf39faec59a38 +msgid "" +"But if you do use some other font, you will still automatically be able " +"to also write CJK characters: MuPDF detects this situation and silently " +"falls back to the universal font (which will then of course also be " +"embedded in your PDF)." +msgstr "" + +#: ../../font.rst:105 f904db70b3d246e1b10894809cb39326 +msgid "" +"*(New in v1.17.5)* Optionally, some new \"reserved\" fontname codes " +"become available if you install `pymupdf-fonts `_, `pip install pymupdf-fonts`. **\"Fira Mono\"** is a " +"mono-spaced sans font set and **FiraGO** is another non-serifed " +"\"universal\" font set which supports all Latin (including Cyrillic and " +"Greek) plus Thai, Arabian, Hewbrew and Devanagari -- but none of the CJK " +"languages. The size of a FiraGO font is only a quarter of the \"Droid " +"Sans Fallback\" size (compressed 400 KB vs. 1.65 MB) -- **and** it " +"provides the weights bold, italic, bold-italic -- which the universal " +"font doesn't." +msgstr "" + +#: ../../font.rst:107 51115005ef5b45048d055b7507f8bde1 +msgid "" +"**\"Space Mono\"** is another nice and small mono-spaced font from Google" +" Fonts, which supports Latin Extended characters and comes with all 4 " +"important weights." +msgstr "" + +#: ../../font.rst:109 96727739a91940c6a331ed087081f309 +msgid "" +"The following table maps a fontname code to the corresponding font. For " +"the current content of the package please see its documentation:" +msgstr "" + +#: ../../font.rst:112 1a8503b417cf4c8fada552e8610a6e75 +msgid "Code" +msgstr "" + +#: ../../font.rst:112 2d8f3f6732334560b3d503193be52bed +msgid "Fontname" +msgstr "" + +#: ../../font.rst:112 c74b2b12e6aa454b8f2dbb4143ffd7bf +msgid "New in" +msgstr "" + +#: ../../font.rst:112 09250ac84f2f444481bee3de0bd29007 +msgid "Comment" +msgstr "" + +#: ../../font.rst:114 3092d884950f4b6eb710a9de0dd03966 +msgid "figo" +msgstr "" + +#: ../../font.rst:114 660c171a6c564814aecb4286056ec31a +msgid "FiraGO Regular" +msgstr "" + +#: ../../font.rst:114 ../../font.rst:115 ../../font.rst:116 ../../font.rst:117 +#: ../../font.rst:118 ../../font.rst:119 3e80c8fdb0dd48d780069b2449ee507f +#: 410d087d7e1243d1a54c1ae0aab172ac 6f27e46024f84abd97777e835ae6517f +#: 794afaec71784e91b7e817f22ead4ffe baa94f214aea4d77a1a5fad071d449f1 +#: ed541c0c11684da3bebb342489caa3cb +msgid "v1.0.0" +msgstr "" + +#: ../../font.rst:114 aababde120ff4dbcbe21832121ff155b +msgid "narrower than Helvetica" +msgstr "" + +#: ../../font.rst:115 01a9c98efef34d0aba6ba3fa0d37813b +msgid "figbo" +msgstr "" + +#: ../../font.rst:115 b83719e8b5724cd69e516c29b9367ebb +msgid "FiraGO Bold" +msgstr "" + +#: ../../font.rst:116 4bbe563434c7425796dc77766d23c9c8 +msgid "figit" +msgstr "" + +#: ../../font.rst:116 480523c94e564e26be18e84adb38e861 +msgid "FiraGO Italic" +msgstr "" + +#: ../../font.rst:117 1e31c41d5df44c4fb09a83fdbd89e06d +msgid "figbi" +msgstr "" + +#: ../../font.rst:117 0e71b818d3cd4256a6f49c7416f6b1ca +msgid "FiraGO Bold Italic" +msgstr "" + +#: ../../font.rst:118 7137d532bea243b482a7189e3a3286f8 +msgid "fimo" +msgstr "" + +#: ../../font.rst:118 d52c3785bf6c4c6c9fa414b6953b3c21 +msgid "Fira Mono Regular" +msgstr "" + +#: ../../font.rst:119 a6bb6a057367406e8c6451c50221bd10 +msgid "fimbo" +msgstr "" + +#: ../../font.rst:119 a9be831c53d643c381182387817e7347 +msgid "Fira Mono Bold" +msgstr "" + +#: ../../font.rst:120 2ff90048652c45d8ad808bd8e873a930 +msgid "spacemo" +msgstr "" + +#: ../../font.rst:120 10b17a9bdac441b2a4af57265d22e503 +msgid "Space Mono Regular" +msgstr "" + +#: ../../font.rst:120 ../../font.rst:121 ../../font.rst:122 ../../font.rst:123 +#: 71f76d3cde6b47a3b8a7a0a571913454 74e5c245413f43a1b0bcd54884d11f9b +#: 811a2ce8ecf443c3b7c4a0009f550f69 ad9d314c839645d1b264c21f9d500a5d +msgid "v1.0.1" +msgstr "" + +#: ../../font.rst:121 cc6628c7c246454785eae18aa76df135 +msgid "spacembo" +msgstr "" + +#: ../../font.rst:121 899d31ca415d4d60a771344775afb052 +msgid "Space Mono Bold" +msgstr "" + +#: ../../font.rst:122 0fa8a8df23aa46a18ebc85a45faef555 +msgid "spacemit" +msgstr "" + +#: ../../font.rst:122 121e740c51fa4e13b45b780076fdc770 +msgid "Space Mono Italic" +msgstr "" + +#: ../../font.rst:123 8c761931925c4c9080802855c8de2158 +msgid "spacembi" +msgstr "" + +#: ../../font.rst:123 c294981796074117b39f66e1d0fc697f +msgid "Space Mono Bold-Italic" +msgstr "" + +#: ../../font.rst:124 fb3d22993d774962addb0d5e18962566 +msgid "math" +msgstr "" + +#: ../../font.rst:124 d72ffadba17c47d98e45bad69d43f48a +msgid "Noto Sans Math Regular" +msgstr "" + +#: ../../font.rst:124 ../../font.rst:125 ../../font.rst:126 ../../font.rst:127 +#: 4a51871589de44a49f3d817a3e4641ca a1e187ea3001421b848c3e15b2da294f +#: c7f9419b4b474f9990c0e7b2548b89bd f44b20960c864e1a812db6b82ccc7b01 +msgid "v1.0.2" +msgstr "" + +#: ../../font.rst:124 3527017ccae847e198b6aa3fd407bf86 +msgid "math symbols" +msgstr "" + +#: ../../font.rst:125 f0c044192be8422bbb062dcfe3fa3867 +msgid "music" +msgstr "" + +#: ../../font.rst:125 5091921f86b8478b884595a229b30799 +msgid "Noto Music Regular" +msgstr "" + +#: ../../font.rst:125 0cfb05fc68a6412895e997a6f27ab557 +msgid "musical symbols" +msgstr "" + +#: ../../font.rst:126 198d0ac76851400696fd7bfe7e9c60b3 +msgid "symbol1" +msgstr "" + +#: ../../font.rst:126 8bf74ea20b3d41c081691ba396ba7ec2 +msgid "Noto Sans Symbols Regular" +msgstr "" + +#: ../../font.rst:126 96ef9a86cd4c4af9ad70de3493072981 +msgid "replacement for \"symb\"" +msgstr "" + +#: ../../font.rst:127 4eae35b6626f44edb67bbd03f28f00d6 +msgid "symbol2" +msgstr "" + +#: ../../font.rst:127 b1fdca63e3d74dd29efec985e0b244dc +msgid "Noto Sans Symbols2 Regular" +msgstr "" + +#: ../../font.rst:127 0bd6d32f20eb48dd988041621b3d5200 +msgid "extended symbol set" +msgstr "" + +#: ../../font.rst:128 aa751e08f13849d1a55e72c6aebf8f49 +msgid "notos" +msgstr "" + +#: ../../font.rst:128 89dea662c0eb4c7eb232a7fdba6ebc9a +msgid "Noto Sans Regular" +msgstr "" + +#: ../../font.rst:128 ../../font.rst:129 ../../font.rst:130 ../../font.rst:131 +#: 459d3d0e43ff4bf5aa61c68e8e685e29 67cb7c095cf74781840d29e84aa0034b +#: 91a98cec9643445d9d588f6c148714f4 d8bd23d980b1436583464316e47308db +msgid "v1.0.3" +msgstr "" + +#: ../../font.rst:128 6b98b595462b4d478057da307cdea30a +msgid "alternative to Helvetica" +msgstr "" + +#: ../../font.rst:129 691a807af162494ab0b5af4186c9110c +msgid "notosit" +msgstr "" + +#: ../../font.rst:129 24201a800ba0419c9bee4bf90edf8825 +msgid "Noto Sans Italic" +msgstr "" + +#: ../../font.rst:130 4dd91c5ba63544bba1ceb32e1fdefd55 +msgid "notosbo" +msgstr "" + +#: ../../font.rst:130 ff244216f5904a4697fcab3f6d021a6a +msgid "Noto Sans Bold" +msgstr "" + +#: ../../font.rst:131 aa8c2e1781f54593b3331c086c19b814 +msgid "notosbi" +msgstr "" + +#: ../../font.rst:131 6857edcacab24c27817264bb11d9bdad +msgid "Noto Sans BoldItalic" +msgstr "" + +#: ../../font.rst:141 2a37a1a4a1aa4945b8df8dbf7e64e154 +msgid "" +"Check whether the unicode ``chr`` exists in the font or (option) some " +"fallback font. May be used to check whether any \"TOFU\" symbols will " +"appear on output." +msgstr "" + +#: ../../font.rst:143 009b9aeb3f9944d596e9f49f9899c324 +msgid "the unicode of the character (i.e. ``ord()``)." +msgstr "" + +#: ../../font.rst:144 a8641b2b63ec4b07875c388e202271b9 +msgid "the language -- currently unused." +msgstr "" + +#: ../../font.rst:145 1bf9dc08f5954b5f965c6b5ea1570763 +msgid "the UCDN script number." +msgstr "" + +#: ../../font.rst:146 c652199037ea41779589cd7c702796e7 +msgid "" +"*(new in v1.17.5)* perform an extended search in fallback fonts or " +"restrict to current font (default)." +msgstr "" + +#: ../../font.rst:147 97e5feeeb43a4af0bb9163c00cad3e2b +msgid "*(changed in 1.17.7)* the glyph number. Zero indicates no glyph found." +msgstr "" + +#: ../../font.rst:151 fed10a374e2445d1be29d1f78a496de5 +msgid "New in v1.17.5" +msgstr "" + +#: ../../font.rst:153 290f44f3033a469e89d5444b5d3ec4f9 +msgid "Return an array of unicodes supported by this font." +msgstr "" + +#: ../../font.rst:155 ab16e827b27d4022b45b4c90a328da02 +#, python-format +msgid "" +"an ``array.array`` [#f2]_ of length at most :attr:`Font.glyph_count`. " +"I.e. ``chr()`` of every item in this array has a glyph in the font " +"without using fallbacks. This is an example display of the supported " +"glyphs: >>> import pymupdf >>> font = pymupdf.Font(\"math\") >>> vuc = " +"font.valid_codepoints() >>> for i in vuc: print(\"%04X %s (%s)\" % " +"(i, chr(i), font.unicode_to_glyph_name(i))) 0000 000D (CR) 0020 " +"(space) 0021 ! (exclam) 0022 \" (quotedbl) 0023 # (numbersign) 0024 $ " +"(dollar) 0025 % (percent) ... 00AC ¬ (logicalnot) 00B1 ± (plusminus) ... " +"21D0 ⇐ (arrowdblleft) 21D1 ⇑ (arrowdblup) 21D2 ⇒ (arrowdblright) 21D3 ⇓ " +"(arrowdbldown) 21D4 ⇔ (arrowdblboth) ... 221E ∞ (infinity) ..." +msgstr "" + +#: ../../font.rst:155 7031be6a1bcf4a65b62350eb968608e6 +msgid "" +"an ``array.array`` [#f2]_ of length at most :attr:`Font.glyph_count`. " +"I.e. ``chr()`` of every item in this array has a glyph in the font " +"without using fallbacks. This is an example display of the supported " +"glyphs:" +msgstr "" + +#: ../../font.rst:183 c5ad65fa71a74dd9a63ab09809f0f9cf +msgid "" +"This method only returns meaningful data for fonts having a CMAP " +"(character map, charmap, the `/ToUnicode` PDF key). Otherwise, this array" +" will have length 1 and contain zero only." +msgstr "" + +#: ../../font.rst:192 af8b042889b54a38b2a5ddd689449328 +msgid "Calculate the \"width\" of the character's glyph (visual representation)." +msgstr "" + +#: ../../font.rst:194 c1f6c6b34907404e97ad72617e0fc346 +msgid "" +"the unicode number of the character. Use ``ord()``, not the character " +"itself. Again, this should normally work even if a character is not " +"supported by that font, because fallback fonts will be checked where " +"necessary." +msgstr "" + +#: ../../font.rst:195 e838a07682d84a869e2fa1cc89abf58a +msgid "write mode, ``0`` = horizontal, ``1`` = vertical." +msgstr "" + +#: ../../font.rst:197 2dc7e2ceacbb4ef690b919a430d04d1b +msgid "The other parameters are not in use currently." +msgstr "" + +#: ../../font.rst:199 e8423a5397284db1919f456052773ded +msgid "a float representing the glyph's width relative to **fontsize 1**." +msgstr "" + +#: ../../font.rst:203 47dc9dab1b4c4cb8b9e6a069008d81b1 +msgid "" +"Return the unicode value for a given glyph name. Use it in conjunction " +"with `chr()` if you want to output e.g. a certain symbol." +msgstr "" + +#: ../../font.rst:205 749831c099134aa7bf7ffe282b0836b5 +msgid "The name of the glyph." +msgstr "" + +#: ../../font.rst:207 377293d9901943dbb4c7c31c7985c7d9 +msgid "" +"The unicode integer, or 65533 = 0xFFFD if the name is unknown. Examples: " +"`font.glyph_name_to_unicode(\"Sigma\") = 931`, " +"`font.glyph_name_to_unicode(\"sigma\") = 963`. Refer to the `Adobe Glyph " +"List `_ publication for a list of glyph names " +"and their unicode numbers. Example: >>> font = pymupdf.Font(\"helv\") " +">>> font.has_glyph(font.glyph_name_to_unicode(\"infinity\")) True" +msgstr "" + +#: ../../font.rst:207 765a70f4e5934d66adf72deeaaad3599 +msgid "" +"The unicode integer, or 65533 = 0xFFFD if the name is unknown. Examples: " +"`font.glyph_name_to_unicode(\"Sigma\") = 931`, " +"`font.glyph_name_to_unicode(\"sigma\") = 963`. Refer to the `Adobe Glyph " +"List `_ publication for a list of glyph names " +"and their unicode numbers. Example:" +msgstr "" + +#: ../../font.rst:219 ceed99f4b1f641ae9879e4ef9b43cfcf +msgid "The glyph rectangle relative to :data:`fontsize` 1." +msgstr "" + +#: ../../font.rst:221 9803fc558ea94924824b3c6f36f33ce5 +msgid "``ord()`` of the character." +msgstr "" + +#: ../../font.rst:223 cae0a18260bf47dcb9d033363ab5176b +msgid "a :ref:`Rect`." +msgstr "" + +#: ../../font.rst:228 c530486f148348589a870c1a6fad982d +msgid "Show the name of the character's glyph." +msgstr "" + +#: ../../font.rst:230 b33374c8c5234c618bbb03b5c25bd99b +msgid "" +"the unicode number of the character. Use ``ord()``, not the character " +"itself." +msgstr "" + +#: ../../font.rst:232 39265ca9c3774508a81f7b6c33627e8d +msgid "" +"a string representing the glyph's name. E.g. `font.glyph_name(ord(\"#\"))" +" = \"numbersign\"`. For an invalid code \".notfound\" is returned. .. " +"note:: *(Changed in v1.18.0)* This method and " +":meth:`Font.glyph_name_to_unicode` no longer depend on a font and instead" +" retrieve information from the **Adobe Glyph List**. Also available as " +"`pymupdf.unicode_to_glyph_name()` and resp. " +"`pymupdf.glyph_name_to_unicode()`." +msgstr "" + +#: ../../font.rst:232 7b64931c6f244cfca3c0761329de7f73 +msgid "" +"a string representing the glyph's name. E.g. `font.glyph_name(ord(\"#\"))" +" = \"numbersign\"`. For an invalid code \".notfound\" is returned." +msgstr "" + +#: ../../font.rst:234 20712f7e063243888f6395b18c3acae8 +msgid "" +"*(Changed in v1.18.0)* This method and :meth:`Font.glyph_name_to_unicode`" +" no longer depend on a font and instead retrieve information from the " +"**Adobe Glyph List**. Also available as `pymupdf.unicode_to_glyph_name()`" +" and resp. `pymupdf.glyph_name_to_unicode()`." +msgstr "" + +#: ../../font.rst:241 38b6209e6a4344a8b3be848dc476755c +msgid "Calculate the length in points of a unicode string." +msgstr "" + +#: ../../font.rst:243 142ac4b87bb644ffa8514275b3e51007 +msgid "" +"There is a functional overlap with :meth:`get_text_length` for Base-14 " +"fonts only." +msgstr "" + +#: ../../font.rst:245 ../../font.rst:269 7c8abec195d7425ab74856419d327b59 +#: f31ddd69af474ca98115ec49230627cf +msgid "a text string, UTF-8 encoded." +msgstr "" + +#: ../../font.rst:247 ../../font.rst:271 280e2e6390a84299b1eb50742751cc45 +#: 5880b72ffefe4073a534b44ef82aa00b +msgid "the :data:`fontsize`." +msgstr "" + +#: ../../font.rst 24af9fb41f6d40be800f9d6a56909af0 +#: 375fd3e160764b6f97a1b86fc740fe8a 465db7792c4b472f806017a0d364f367 +#: 53682f9b23a84002ab90b511020b49f6 5fa74d99fa99412f91d3a82aefa8e4bf +#: 70db0a0a767e4ee8867951f816a54be0 9353b0e144af4fc7a2f47be5d63e325b +#: b579c7fff96e4c608f8eb22666e2666d d2e13bff74024b768ddd4405202d6cab +#: d3196a22363c47ecb37dd5972f00334e +msgid "Return type" +msgstr "" + +#: ../../font.rst:251 ec7a7979f9e7418fbdceaeee4f29b39d +msgid "" +"the length of the string in points when stored in the PDF. If a character" +" is not contained in the font, it will automatically be looked up in a " +"fallback font. .. note:: This method was originally implemented in " +"Python, based on calling :meth:`Font.glyph_advance`. For performance " +"reasons, it has been rewritten in C for v1.18.14. To compute the width of" +" a single character, you can now use either of the following without " +"performance penalty: 1. `font.glyph_advance(ord(\"Ä\")) * fontsize`" +" 2. `font.text_length(\"Ä\", fontsize=fontsize)` For multi-" +"character strings, the method offers a huge performance advantage " +"compared to the previous implementation: instead of about 0.5 " +"microseconds for each character, only 12.5 nanoseconds are required for " +"the second and subsequent ones." +msgstr "" + +#: ../../font.rst:251 f41d04198f2341a990157155d7f740b1 +msgid "" +"the length of the string in points when stored in the PDF. If a character" +" is not contained in the font, it will automatically be looked up in a " +"fallback font." +msgstr "" + +#: ../../font.rst:253 57ccdf4bd0474e3280e1cdda9d041027 +msgid "" +"This method was originally implemented in Python, based on calling " +":meth:`Font.glyph_advance`. For performance reasons, it has been " +"rewritten in C for v1.18.14. To compute the width of a single character, " +"you can now use either of the following without performance penalty:" +msgstr "" + +#: ../../font.rst:255 b485562f46994ef3a76ed0ba8f486f14 +msgid "`font.glyph_advance(ord(\"Ä\")) * fontsize`" +msgstr "" + +#: ../../font.rst:256 7b3106bb9bf0498198809c557ab60339 +msgid "`font.text_length(\"Ä\", fontsize=fontsize)`" +msgstr "" + +#: ../../font.rst:258 3724b3d50f664946b0d42d8fab2f84f6 +msgid "" +"For multi-character strings, the method offers a huge performance " +"advantage compared to the previous implementation: instead of about 0.5 " +"microseconds for each character, only 12.5 nanoseconds are required for " +"the second and subsequent ones." +msgstr "" + +#: ../../font.rst:265 aafd060e84e541abbe7b30af94aa8ded +msgid "*New in v1.18.14*" +msgstr "" + +#: ../../font.rst:267 7decb74d1d39477b9462d29370e42a35 +msgid "Sequence of character lengths in points of a unicode string." +msgstr "" + +#: ../../font.rst:275 76401a090dc249fcab049f83b6f83cee +msgid "" +"the lengths in points of the characters of a string when stored in the " +"PDF. It works like :meth:`Font.text_length` broken down to single " +"characters. This is a high speed method, used e.g. in " +":meth:`TextWriter.fill_textbox`. The following is true (allowing rounding" +" errors): `font.text_length(text) == sum(font.char_lengths(text))`. >>> " +"font = pymupdf.Font(\"helv\") >>> text = \"PyMuPDF\" >>> " +"font.text_length(text) 50.115999937057495 >>> " +"pymupdf.get_text_length(text, fontname=\"helv\") 50.115999937057495 >>> " +"sum(font.char_lengths(text)) 50.115999937057495 >>> " +"pprint(font.char_lengths(text)) (7.336999952793121, # P 5.5," +" # y 9.163000047206879, # M 6.115999937057495, # u " +"7.336999952793121, # P 7.942000031471252, # D 6.721000015735626) # " +"F" +msgstr "" + +#: ../../font.rst:275 1544e745681a4b6da063619a2e9620b7 +msgid "" +"the lengths in points of the characters of a string when stored in the " +"PDF. It works like :meth:`Font.text_length` broken down to single " +"characters. This is a high speed method, used e.g. in " +":meth:`TextWriter.fill_textbox`. The following is true (allowing rounding" +" errors): `font.text_length(text) == sum(font.char_lengths(text))`." +msgstr "" + +#: ../../font.rst:297 d80b29e9dd8c454da9c51b26d9cad2fe +msgid "New in v1.17.6" +msgstr "" + +#: ../../font.rst:299 30834747dcfd4dc48a79f57ad356cdd3 +msgid "Copy of the binary font file content." +msgstr "" + +#: ../../font.rst:305 71cd13ec6bab4c46bb9c7dbb8108fb63 +msgid "" +"A dictionary with various font properties, each represented as bools. " +"Example for Helvetica::" +msgstr "" + +#: ../../font.rst:325 dbe85241cd3a4910a0da84236fc69d03 +msgid "Name of the font. May be \"\" or \"(null)\"." +msgstr "" + +#: ../../font.rst:329 190864bf642d4836b3e8ed0493dc4672 +msgid "The font bbox. This is the maximum of its glyph bboxes." +msgstr "" + +#: ../../font.rst:331 33b968a3b28241e9a604dd232bd3bf7c +msgid ":ref:`Rect`" +msgstr "" + +#: ../../font.rst:337 38e95b49eec642f784ca39d58b0b40df +msgid "The number of glyphs defined in the font." +msgstr "" + +#: ../../font.rst:341 ../../font.rst:349 aa9a0f03418b4adba2109af305a941e1 +#: b18be968a53743bdb4bdab316af4c374 +msgid "New in v1.18.0" +msgstr "" + +#: ../../font.rst:343 d3c64bfaff7540aa857c6dcc2fc2b0a0 +msgid "" +"The ascender value of the font, see `ascender typography " +"`_ for details. " +"Please note that there is a difference to the strict definition: our " +"value includes everything above the baseline -- not just the height " +"difference between upper case \"A\" and and lower case \"a\"." +msgstr "" + +#: ../../font.rst:351 7fba1bd77fd74cc1abdb335fe3269fbc +msgid "" +"The descender value of the font, see `descender typography " +"`_ for details. This value " +"always is negative and is the portion that some glyphs descend below the " +"base line, for example \"g\" or \"y\". As a consequence, the value " +"`ascender - descender` is the total height, that every glyph of the font " +"fits into. This is true at least for most fonts -- as always, there are " +"exceptions, especially for calligraphic fonts, etc." +msgstr "" + +#: ../../font.rst:363 4ffede0fc21c4b5fa0f667a903b92e93 +msgid "" +"A number of attributes with obvious meanings. Reflect some values of the " +":attr:`Font.flags` dictionary." +msgstr "" + +#: ../../font.rst:368 4bd92baafe77479faa63b31082e0c69a +msgid "Footnotes" +msgstr "" + +#: ../../font.rst:369 d66637c72e2b45aea7edd3cb116ec328 +msgid "" +"MuPDF does not support all fontfiles with this feature and will raise " +"exceptions like *\"mupdf: FT_New_Memory_Face((null)): unknown file " +"format\"*, if it encounters issues." +msgstr "" + +#: ../../font.rst:371 7213fcc59c214e508d3da6221ec0d21a +msgid "" +"The built-in Python module `array` has been chosen for its speed and low " +"memory requirement." +msgstr "" + +#: ../../footer.rst:46 3dc04747492b4b4bac6e2c6af8d83002 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/footer.mo b/docs/locales/ko/LC_MESSAGES/footer.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/footer.po b/docs/locales/ko/LC_MESSAGES/footer.po new file mode 100644 index 000000000..5d313ca02 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/footer.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../footer.rst:46 6174f91a653847f0bf61a4cba1c92a19 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/functions.mo b/docs/locales/ko/LC_MESSAGES/functions.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/functions.po b/docs/locales/ko/LC_MESSAGES/functions.po new file mode 100644 index 000000000..905e15daa --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/functions.po @@ -0,0 +1,2091 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 4362cd8e08a74daebc63e2250a1293cd +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 8c3fd3acd0a54dacaaaea104c5ca20e2 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 7d4f452edf45487b8855a2fdb4b7f37b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../functions.rst:5 764415be522b4af7bed822bf808d3c81 +msgid "Functions" +msgstr "" + +#: ../../functions.rst:6 7d85734965b44884afa1f60ccbb9fce3 +msgid "" +"The following are miscellaneous functions and attributes on a fairly low-" +"level technical detail." +msgstr "" + +#: ../../functions.rst:8 87eea67bd6bd469c809cfb2f400fd0ac +msgid "" +"Some functions provide detail access to PDF structures. Others are " +"stripped-down, high performance versions of other functions which provide" +" more information." +msgstr "" + +#: ../../functions.rst:10 3e757537a03d4b07bdcba164caba05f3 +msgid "Yet others are handy, general-purpose utilities." +msgstr "" + +#: ../../functions.rst:14 3a980a38ec2e42368864c2737353297a +msgid "**Function**" +msgstr "" + +#: ../../functions.rst:14 53d11d16c6cb41359e0d1eb9434091a8 +msgid "**Short Description**" +msgstr "" + +#: ../../functions.rst:16 add8a0f8af544090bd2b69bec2a08b06 +msgid ":attr:`Annot.apn_bbox`" +msgstr "" + +#: ../../functions.rst:16 5e6c725340da4680b4b2182ec97992ef +msgid "PDF only: bbox of the appearance object" +msgstr "" + +#: ../../functions.rst:17 0e00e13e8cd249aea5b27907a5924ac2 +msgid ":attr:`Annot.apn_matrix`" +msgstr "" + +#: ../../functions.rst:17 f099fa1353fa448486e549396e8c85c4 +msgid "PDF only: the matrix of the appearance object" +msgstr "" + +#: ../../functions.rst:18 04cb195c672149e79a5dbf453e0dd2d2 +msgid ":attr:`Page.is_wrapped`" +msgstr "" + +#: ../../functions.rst:18 733534121ca84a7dae39d79a0e4fdf8e +msgid "check whether contents wrapping is present" +msgstr "" + +#: ../../functions.rst:19 6070d8798ae847c7b81482b126630c8a +msgid ":meth:`adobe_glyph_names`" +msgstr "" + +#: ../../functions.rst:19 3e1263f453fb48c78527c09031c8dfda +msgid "list of glyph names defined in **Adobe Glyph List**" +msgstr "" + +#: ../../functions.rst:20 8540cf95e6284b908e38968f6e2b84b1 +msgid ":meth:`adobe_glyph_unicodes`" +msgstr "" + +#: ../../functions.rst:20 868c1c4b39334083b57fc6f75dc63c73 +msgid "list of unicodes defined in **Adobe Glyph List**" +msgstr "" + +#: ../../functions.rst:21 b9f2db6bdc1f4375b9d86730afc564cf +msgid ":meth:`Annot.clean_contents`" +msgstr "" + +#: ../../functions.rst:21 c89e0a09bfd5482e9a00164e53985cdb +msgid "PDF only: clean the annot's :data:`contents` object" +msgstr "" + +#: ../../functions.rst:22 32cff1b105fc415ab1df92fb4a1367ee +msgid ":meth:`Annot.set_apn_bbox`" +msgstr "" + +#: ../../functions.rst:22 490b8142dc73479a84f8532efe1a7dd0 +msgid "PDF only: set the bbox of the appearance object" +msgstr "" + +#: ../../functions.rst:23 825eafcadc4840a6b3da5b4eae9803b5 +msgid ":meth:`Annot.set_apn_matrix`" +msgstr "" + +#: ../../functions.rst:23 bd593d88e1054999ba94daf514352282 +msgid "PDF only: set the matrix of the appearance object" +msgstr "" + +#: ../../functions.rst:24 c442dc2915174eb9bca27cc7aaec5a63 +msgid ":meth:`ConversionHeader`" +msgstr "" + +#: ../../functions.rst:24 39f5b60624524140bcf3d19279f48605 +msgid "return header string for *get_text* methods" +msgstr "" + +#: ../../functions.rst:25 2832c8a25ff645c1833824445cd50d2e +msgid ":meth:`ConversionTrailer`" +msgstr "" + +#: ../../functions.rst:25 809aa5cd142a4d28927bdedc1f5d789a +msgid "return trailer string for *get_text* methods" +msgstr "" + +#: ../../functions.rst:26 793c18c2f91c4349a65f71f6504d9872 +msgid ":meth:`Document.del_xml_metadata`" +msgstr "" + +#: ../../functions.rst:26 2c210b89288b437482fee9c882c0c7a4 +msgid "PDF only: remove XML metadata" +msgstr "" + +#: ../../functions.rst:27 0bd03bc3092d4f75ab36f591dd57098a +msgid ":meth:`Document.get_char_widths`" +msgstr "" + +#: ../../functions.rst:27 cb86339da05542aaafc997cf781c9fb9 +msgid "PDF only: return a list of glyph widths of a font" +msgstr "" + +#: ../../functions.rst:28 56fc88a38fce4ad58e50e488249dc90a +msgid ":meth:`Document.get_new_xref`" +msgstr "" + +#: ../../functions.rst:28 950c2315e268432ca322e1428ccede80 +msgid "PDF only: create and return a new :data:`xref` entry" +msgstr "" + +#: ../../functions.rst:29 496d02cad3d94be590dc49051170a1c4 +msgid ":meth:`Document.is_stream`" +msgstr "" + +#: ../../functions.rst:29 586f78f3e3d24a80bc537b10b6756ccb +msgid "PDF only: check whether an :data:`xref` is a stream object" +msgstr "" + +#: ../../functions.rst:30 578b7d1ff1d6471a84f62fa135e05681 +msgid ":meth:`Document.xml_metadata_xref`" +msgstr "" + +#: ../../functions.rst:30 253ad5dd537940c684f95c34413e9613 +msgid "PDF only: return XML metadata :data:`xref` number" +msgstr "" + +#: ../../functions.rst:31 4f8b6a367f104e19b3686d48c220b2e8 +msgid ":meth:`Document.xref_length`" +msgstr "" + +#: ../../functions.rst:31 944580e1219b4d6da596e2f0ecac1e0c +msgid "PDF only: return length of :data:`xref` table" +msgstr "" + +#: ../../functions.rst:32 9e00d8d6db8640a48b68b28cce3d2d56 +msgid ":meth:`EMPTY_IRECT`" +msgstr "" + +#: ../../functions.rst:32 ../../functions.rst:34 +#: 4f93c48b456e40edb3bf54e18372fbcd 8885468553b943e2804495b185674bdb +msgid "return the (standard) empty / invalid rectangle" +msgstr "" + +#: ../../functions.rst:33 116425823f97476ba4ef170d8f70b2a5 +msgid ":meth:`EMPTY_QUAD`" +msgstr "" + +#: ../../functions.rst:33 1db98794aff94fc58a84179249ea06eb +msgid "return the (standard) empty / invalid quad" +msgstr "" + +#: ../../functions.rst:34 9000c9e5d6c6449ea2fac2877457a80c +msgid ":meth:`EMPTY_RECT`" +msgstr "" + +#: ../../functions.rst:35 a2378f40c3bd4ff68bf33e9d7f8d55a0 +msgid ":meth:`get_pdf_now`" +msgstr "" + +#: ../../functions.rst:35 e3d896a505e3415f91020a611d1b60cb +msgid "return the current timestamp in PDF format" +msgstr "" + +#: ../../functions.rst:36 44be0971a3e943d4b339543e89c7d3e5 +msgid ":meth:`get_pdf_str`" +msgstr "" + +#: ../../functions.rst:36 d222dad1da46497a90683f26ca17b272 +msgid "return PDF-compatible string" +msgstr "" + +#: ../../functions.rst:37 97fc6fa0db4446d9884dd169f4279dba +msgid ":meth:`get_text_length`" +msgstr "" + +#: ../../functions.rst:37 110ac58da1a44ce2999975602c6c0e1a +msgid "return string length for a given font & :data:`fontsize`" +msgstr "" + +#: ../../functions.rst:38 c90ff4bd56b84326a2666157890bfd03 +msgid ":meth:`glyph_name_to_unicode`" +msgstr "" + +#: ../../functions.rst:38 401f5bf92bb74478b4d7029ec15dd089 +msgid "return unicode from a glyph name" +msgstr "" + +#: ../../functions.rst:39 99beef3b550a46ba98443a9d326de35b +msgid ":meth:`image_profile`" +msgstr "" + +#: ../../functions.rst:39 143bc56e8ef9413e96b151d77c64ae6f +msgid "return a dictionary of basic image properties" +msgstr "" + +#: ../../functions.rst:40 2290ac67413048f9a7e8bc3c1bed82da +msgid ":meth:`INFINITE_IRECT`" +msgstr "" + +#: ../../functions.rst:40 ../../functions.rst:42 +#: 6c93c70e175b4feebad851e5e2d302e5 db34282539ff4d0cbcbb59a0746f4ad5 +msgid "return the (only existing) infinite rectangle" +msgstr "" + +#: ../../functions.rst:41 15427ddf5f9d40ea95e44583d180da0e +msgid ":meth:`INFINITE_QUAD`" +msgstr "" + +#: ../../functions.rst:41 c51f25d2a9ab403aaf35fdc880ac80ea +msgid "return the (only existing) infinite quad" +msgstr "" + +#: ../../functions.rst:42 9c580aaf4136403aa2944098c657ef29 +msgid ":meth:`INFINITE_RECT`" +msgstr "" + +#: ../../functions.rst:43 ffa25a10067248539ecece4ed9e0453d +msgid ":meth:`make_table`" +msgstr "" + +#: ../../functions.rst:43 7533bf849012437cbd56f1d3ab66a42c +msgid "split rectangle in sub-rectangles" +msgstr "" + +#: ../../functions.rst:44 312874e2effa4bc0bfd1300774e3a463 +msgid ":meth:`Page.clean_contents`" +msgstr "" + +#: ../../functions.rst:44 01e6fccf3e744a89a6858df35f24007a +msgid "PDF only: clean the page's :data:`contents` objects" +msgstr "" + +#: ../../functions.rst:45 3dd8b9b45ab44ebba9d1b686be8dc50b +msgid ":meth:`Page.get_bboxlog`" +msgstr "" + +#: ../../functions.rst:45 dfbe6b6c5f9f47fd88042b9ae17531f3 +msgid "list of rectangles that envelop text, drawing or image objects" +msgstr "" + +#: ../../functions.rst:46 c65e19fd4d02409cb4543812fa3b43d4 +msgid ":meth:`Page.get_contents`" +msgstr "" + +#: ../../functions.rst:46 299985f0af5147d7aa248ec6d462f2d1 +msgid "PDF only: return a list of content :data:`xref` numbers" +msgstr "" + +#: ../../functions.rst:47 c2ceb3b6204947318ef0c33b8b87b0d3 +msgid ":meth:`Page.get_displaylist`" +msgstr "" + +#: ../../functions.rst:47 c37180301960473ba34f6e7663b61b99 +msgid "create the page's display list" +msgstr "" + +#: ../../functions.rst:48 5b0003105f4240f88525d89fa0c0908d +msgid ":meth:`Page.get_text_blocks`" +msgstr "" + +#: ../../functions.rst:48 dd0afb0850654e8695ffc98210144dc8 +msgid "extract text blocks as a Python list" +msgstr "" + +#: ../../functions.rst:49 76e04262af69408e9a63c3184fb7bad0 +msgid ":meth:`Page.get_text_words`" +msgstr "" + +#: ../../functions.rst:49 9f393e28ef804590afa7ec5de0048155 +msgid "extract text words as a Python list" +msgstr "" + +#: ../../functions.rst:50 1c8ae2f8f1f84b618bf7807fb1a10cc4 +msgid ":meth:`Page.get_texttrace`" +msgstr "" + +#: ../../functions.rst:50 e214fbbc63ae4d19a39fbd35f361f107 +msgid "low-level text information" +msgstr "" + +#: ../../functions.rst:51 c12d9e81a4f14a1ead2ead8d7f981a7c +msgid ":meth:`Page.read_contents`" +msgstr "" + +#: ../../functions.rst:51 4ea4aa95a0e74da39d80427e97d0c2f4 +msgid "PDF only: get complete, concatenated /Contents source" +msgstr "" + +#: ../../functions.rst:52 0a7b92c5ce184b8696922871f9786f30 +msgid ":meth:`Page.run`" +msgstr "" + +#: ../../functions.rst:52 e20ec70bf4894a6aa07e7a11aaf63d9e +msgid "run a page through a device" +msgstr "" + +#: ../../functions.rst:53 f318ac76d76d4865bd43843061a922e7 +msgid ":meth:`Page.set_contents`" +msgstr "" + +#: ../../functions.rst:53 efe0c81605704542bfd7c295f5f6ccce +msgid "PDF only: set page's :data:`contents` to some :data:`xref`" +msgstr "" + +#: ../../functions.rst:54 4eb1f3fa01d74d89bd9e13660d80aace +msgid ":meth:`Page.wrap_contents`" +msgstr "" + +#: ../../functions.rst:54 1e1087f91ea540e786db6751528af559 +msgid "wrap contents with stacking commands" +msgstr "" + +#: ../../functions.rst:55 09fa362cbcc546d5bf5d8ff7ab48a08e +msgid ":meth:`css_for_pymupdf_font`" +msgstr "" + +#: ../../functions.rst:55 e8300bd4f1b44f5db6278ec60b77cd26 +msgid "create CSS source for a font in package pymupdf_fonts" +msgstr "" + +#: ../../functions.rst:56 f03759eda97c48b2a48fa4f9b0fedb9a +msgid ":meth:`paper_rect`" +msgstr "" + +#: ../../functions.rst:56 b1fb4ea8173343e4b372c4196e07d4ea +msgid "return rectangle for a known paper format" +msgstr "" + +#: ../../functions.rst:57 18bd1781e96740a0bd73013a3d7b664c +msgid ":meth:`paper_size`" +msgstr "" + +#: ../../functions.rst:57 4c71d20789bf4aafba9b403c91023308 +msgid "return width, height for a known paper format" +msgstr "" + +#: ../../functions.rst:58 448bae55c0144a77bf34e084c2087748 +msgid ":meth:`paper_sizes`" +msgstr "" + +#: ../../functions.rst:58 a4b88a6f83704283b1d067b9b422950b +msgid "dictionary of pre-defined paper formats" +msgstr "" + +#: ../../functions.rst:59 b534913dfb3a46caa10a1f68b16f99f5 +msgid ":meth:`planish_line`" +msgstr "" + +#: ../../functions.rst:59 dfa9809478844cd3a030cab4d9dfd1c2 +msgid "matrix to map a line to the x-axis" +msgstr "" + +#: ../../functions.rst:60 73b07e7023524c939f290cfec3c5147d +msgid ":meth:`recover_char_quad`" +msgstr "" + +#: ../../functions.rst:60 5d790e90a6db4ee39f6b9c7eaeaabaee +msgid "compute the quad of a char (\"rawdict\")" +msgstr "" + +#: ../../functions.rst:61 c7b763ff7e8242908671eb76801b55c5 +msgid ":meth:`recover_line_quad`" +msgstr "" + +#: ../../functions.rst:61 907e455060ee4289a865a3187bb4704e +msgid "compute the quad of a subset of line spans" +msgstr "" + +#: ../../functions.rst:62 7f4adbdf1e7345cd91ccb084d979616b +msgid ":meth:`recover_quad`" +msgstr "" + +#: ../../functions.rst:62 0077aa420f404be69c0b00c321022093 +msgid "compute the quad of a span (\"dict\", \"rawdict\")" +msgstr "" + +#: ../../functions.rst:63 02efaa1a3ddc4f1c8aa20484a700e7e4 +msgid ":meth:`recover_span_quad`" +msgstr "" + +#: ../../functions.rst:63 8ce412850eb445b78abe6ca665a2a77f +msgid "compute the quad of a subset of span characters" +msgstr "" + +#: ../../functions.rst:64 c8a3bffef95e412ca257c252d6bff657 +msgid ":meth:`set_messages`" +msgstr "" + +#: ../../functions.rst:64 ae0c40a4b5ed4b718dfb8abc492ca10e +msgid "set destination of |PyMuPDF| messages." +msgstr "" + +#: ../../functions.rst:65 0d4e3f46893442b5b8eba64b982bf3f2 +msgid ":meth:`sRGB_to_pdf`" +msgstr "" + +#: ../../functions.rst:65 d696f1caa15445b6bb8d91e71984f0a4 +msgid "return PDF RGB color tuple from an sRGB integer" +msgstr "" + +#: ../../functions.rst:66 65f3ad24442c445fb34dae8002131da9 +msgid ":meth:`sRGB_to_rgb`" +msgstr "" + +#: ../../functions.rst:66 3d999340cd904162a8038d1a4126b947 +msgid "return (R, G, B) color tuple from an sRGB integer" +msgstr "" + +#: ../../functions.rst:67 766d7f863ca4428e842619c0ebca36ef +msgid ":meth:`unicode_to_glyph_name`" +msgstr "" + +#: ../../functions.rst:67 6d5f5fe4327b4bf9b8aae045c9bf2b99 +msgid "return glyph name from a unicode" +msgstr "" + +#: ../../functions.rst:68 b9b504a041b94a4f8519153749eb4825 +msgid ":meth:`get_tessdata`" +msgstr "" + +#: ../../functions.rst:68 a2891d94940c4cf8a54ab447f7b15370 +msgid "locates the language support of the Tesseract-OCR installation" +msgstr "" + +#: ../../functions.rst:69 f1824ee678fd459f92586806ad603df7 +msgid ":meth:`colors_pdf_dict`" +msgstr "" + +#: ../../functions.rst:69 0d099e9629fb4b689e08965adfc300e0 +msgid "return dict of color names." +msgstr "" + +#: ../../functions.rst:70 8dffcc2057e74973bf33f55a5145efa7 +msgid ":meth:`colors_wx_list`" +msgstr "" + +#: ../../functions.rst:70 df83f96c7f9049f9a2135f8c7c3e1f45 +msgid "return list of color names." +msgstr "" + +#: ../../functions.rst:71 a7d1b2ff6e7b499991be2827f2ce182f +msgid ":attr:`fitz_fontdescriptors`" +msgstr "" + +#: ../../functions.rst:71 2bd5030a1ab34dfea799a7bac792e409 +msgid "dictionary of available supplement fonts" +msgstr "" + +#: ../../functions.rst:72 213d79bfa9874a63ac1a4cfeb7032132 +msgid ":attr:`PYMUPDF_MESSAGE`" +msgstr "" + +#: ../../functions.rst:72 01828b10e24e4ca7a6ec84f910c2955e +msgid "destination of |PyMuPDF| messages." +msgstr "" + +#: ../../functions.rst:73 fe68fe9641d94830aac3959ef70a3a46 +msgid ":attr:`pdfcolor`" +msgstr "" + +#: ../../functions.rst:73 19755c9b06fb412fac21ab46d85760d4 +msgid "dictionary of almost 500 RGB colors in PDF format." +msgstr "" + +#: ../../functions.rst:78 688881b3cb454361936fad432734136c +msgid "" +"Convenience function to return width and height of a known paper format " +"code. These values are given in pixels for the standard resolution 72 " +"pixels = 1 inch." +msgstr "" + +#: ../../functions.rst:80 df6f7db7c5e64bb99187e217a5e55d94 +msgid "" +"Currently defined formats include **'A0'** through **'A10'**, **'B0'** " +"through **'B10'**, **'C0'** through **'C10'**, **'Card-4x6'**, **'Card-" +"5x7'**, **'Commercial'**, **'Executive'**, **'Invoice'**, **'Ledger'**, " +"**'Legal'**, **'Legal-13'**, **'Letter'**, **'Monarch'** and **'Tabloid-" +"Extra'**, each in either portrait or landscape format." +msgstr "" + +#: ../../functions.rst:82 1227353c5f80413d8e4366aaa7e00301 +msgid "" +"A format name must be supplied as a string (case **in** \\sensitive), " +"optionally suffixed with \"-L\" (landscape) or \"-P\" (portrait). No " +"suffix defaults to portrait." +msgstr "" + +#: ../../functions.rst 0859ddc790de48e98a47485cde669401 +#: 09aae792d39a4719b5feaf0ab83fff20 19bfd0356987458d83477865a5d1a227 +#: 49070de6bbd648339c39152b16917361 5abb2b0067e04d25a6a480258935ec7b +#: 64942c1bcabb4af8b61d6c1763fa9ec1 7e3314757aad4fc1a94940b29ca6827c +#: 813511b4bfb04affbe03c50f1c74e9c8 82b50464d79647069ebf77eb5eaa2f72 +#: 89cb96a7503f42ea8e5af77eae2653a1 92ffa13c8ae94cb2b2fa323e85adf355 +#: 99b800f8ef394726a8cf31b1e64c2e16 9d31e1e684094f7b843f37fca583e403 +#: 9fd573cd7d544e0aa4901376821e273b a1c3d38ad8b348718a4c58ba8de0d1f6 +#: a36d22d544834da3858edb86ef6f1644 ac8c99d18c2b4b9bb781c6f88660d86b +#: b6d2ba4ce7ea4aeda4dcafbeb54f8f0d b770518ae6a749dbb83e9e8e640a10ee +#: cd5810abe8154ef1bb614e2940eece1a f11cee020a504c72a63ce27fbbd09651 +#: fa237829f2624242ba676a501a682730 fe1aebb4ec3b40bd940fea19abc2ba9f +msgid "Parameters" +msgstr "" + +#: ../../functions.rst:84 58f6fc5980274479b8466f9943b239a0 +msgid "" +"any format name from above in upper or lower case, like *\"A4\"* or " +"*\"letter-l\"*." +msgstr "" + +#: ../../functions.rst 03f1fe2e5c3943e183598885bc51d1dc +#: 1857900ce17a4569876c842ed42c6268 20b469d28e6e4ef18b3176a5e74627d3 +#: 20f0ad032864401e8e11b10c90f9c24b 27537b59f5694129a544cd09ee1e4957 +#: 2e112e3af1b74659bdb9c43d7db12a74 3062eec0ad0247d28f2f532f9cd5cce4 +#: 51bd37f77a214f6a8d3c6918723b9eea 5a94a14aae9b4984be7e3591cb6101df +#: 6b1952aa0aa84cbe8c865623124268ab 6cf6024e798045079d4c6551e3a7b175 +#: 8bbd1c084844464088dab98f7d9f4965 9caea92222fe4cdc8432df38e26f83c6 +#: acae4a31653a4d72b4a2e701c6c059b0 ad60dbf189334ee5a807f1faec163c26 +#: b13938ce54e342d49bb6ee61f3927459 bd9c2eff50e34f239e7589f9e6ad949c +#: d3cd059ede494646bac809314f2a7aa3 dedeff11b7fe409fa341704aee20d714 +#: f446e807ba984edf862a261ccd18ee92 f661f3aea2174106b4f7c07557d2937d +#: fcea4521481d45bb8138e2bc86f57dd6 fd35d8681ef34d8882c8131bfbb9325f +#: ffae2284aadc4ea5b7ce903b300110e5 +msgid "Return type" +msgstr "" + +#: ../../functions.rst 241f189d177b4abe8781c1323a0ec686 +#: 269469e84adb406bba0203eeb27db4ea 3002f251a3b34a938e7f3b2d8ff54f55 +#: 393bd2c99abb435c9096087b1340609a 4c3f97315cf04d0891ea76a1bc4cdec7 +#: 4ce3f7bf85464affb653fdc3cde40999 4d87d3c54e3f482fbeae0695ccae2f3d +#: 54eed5b94cd8484089e327a49e09c976 6b22f8b9a6ca4d4cbc8cc4d236263067 +#: 7c586b43f1e2413b82c7aec73497ad09 7d42f6afd5844f1caca525f80b3c1328 +#: 8bc58d3f2fc9447e98d7349da31213de a168611b4d644084a80c9ebf51127c66 +#: a636bdbee8ca4bb993b51dab8564eb04 afce09bb4d3e4e5dad5ccfaa3e62395a +#: b4b81ec6ce2548c6a66b0675d31bd1d6 b7e7fb7a4c2747b1adf7a8583f8654c4 +#: b8cab8292e6e4f3ea1b79e200dca449d be0506cde75249c5b7cf35d1ae34c87d +#: c02e22251e0c496c99819e2bbfd566f2 e1d0fe254797467e8a7b7fe3ea0ae483 +#: e1de8b977cf8465eb45cad2ef5f5e0dd eb4281b814a647efb2ad231baf1ca7ae +#: f468fa01ceb94ad8ac3451a68a33ae39 fda237d8691b4a959eeca8fe09b6bbae +msgid "Returns" +msgstr "" + +#: ../../functions.rst:87 b4296412402b46a4965f9ad12430f3a5 +msgid "" +"*(width, height)* of the paper format. For an unknown format *(-1, -1)* " +"is returned. Examples: *pymupdf.paper_size(\"A4\")* returns *(595, 842)* " +"and *pymupdf.paper_size(\"letter-l\")* delivers *(792, 612)*." +msgstr "" + +#: ../../functions.rst:93 5b13894197174f5b9b605cf39be91764 +msgid "Convenience function to return a :ref:`Rect` for a known paper format." +msgstr "" + +#: ../../functions.rst:95 2b01808a6f984885ad72685e42b6ba34 +msgid "any format name supported by :meth:`paper_size`." +msgstr "" + +#: ../../functions.rst:97 398230d02c1a4139a2c25e15afd00441 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../functions.rst:98 3bcbeafd12094f66b7da10fbb6e44d13 +msgid "" +"*pymupdf.Rect(0, 0, width, height)* with *width, " +"height=pymupdf.paper_size(s)*." +msgstr "" + +#: ../../functions.rst:109 dfd4fa5a7ed645d687e1add0d26f8fd9 +msgid "" +"Sets destination of |PyMuPDF| messages to a file descriptor, a file, an " +"existing stream or `Python's logging system " +"`_." +msgstr "" + +#: ../../functions.rst:113 7ca7d103b38f48e6807607f1b5fb4e04 +msgid "Usually one would only set one arg, or one or more `pylogging*` args." +msgstr "" + +#: ../../functions.rst:115 d3110ebcfa014f9a9e9dffbfb07b8429 +msgid "" +"A text specification of destination; for details see description of " +"environmental variable `PYMUPDF_MESSAGE`." +msgstr "" + +#: ../../functions.rst:118 f2568fbdee6a469e86d30e697b54e228 +msgid "Write to file descriptor." +msgstr "" + +#: ../../functions.rst:120 3005a922a0bd4a02926e0a5b40014183 +msgid "" +"Write to existing stream, which must have methods `.write(text)` and " +"`.flush()`." +msgstr "" + +#: ../../functions.rst:123 7bae0338bdf7484c9e843251d5c4268e +msgid "Write to a file." +msgstr "" + +#: ../../functions.rst:125 629d6fa80e1140f48a18cd82a8d2631d +msgid "Append to a file." +msgstr "" + +#: ../../functions.rst:127 af3dad1d6ce942b8bc8207879fb6e153 +msgid "Write to Python's `logging` system." +msgstr "" + +#: ../../functions.rst:129 edef27de299d43b580f0142468f71ade +msgid "Write to Python's `logging` system using specified Logger." +msgstr "" + +#: ../../functions.rst:131 97f0f14a9c6543069de109bdaa320698 +msgid "Write to Python's `logging` system using specified level." +msgstr "" + +#: ../../functions.rst:133 54a6240e34794f1d8f029e59eef09948 +msgid "" +"Write to Python's `logging` system using specified logger name. Only used" +" if `pylogging_logger` is ``None``. Default is `pymupdf`." +msgstr "" + +#: ../../functions.rst:137 7fc3645c02074a4aa4ff724cf1ab0856 +msgid "" +"If any `pylogging*` arg is not ``None``, we write to `Python's logging " +"system `_." +msgstr "" + +#: ../../functions.rst:144 ../../functions.rst:156 ../../functions.rst:270 +#: 70ea9f075bbc45bc9f22e2b8a925f0c2 d9fd6097dd8642d681771c59c34ec163 +#: e3bdeda869f54aae9ed48140bfa9aa51 +msgid "*New in v1.17.4*" +msgstr "" + +#: ../../functions.rst:146 0aa93594a530468e84df8471d05d150d +msgid "" +"Convenience function returning a PDF color triple (red, green, blue) for " +"a given sRGB color integer as it occurs in :meth:`Page.get_text` " +"dictionaries \"dict\" and \"rawdict\"." +msgstr "" + +#: ../../functions.rst:148 ../../functions.rst:160 +#: 864b3d47658d4c118df2f33b9208300f 8b645478645441eebd77be6157685571 +msgid "" +"an integer of format RRGGBB, where each color component is an integer in " +"range(255)." +msgstr "" + +#: ../../functions.rst:150 87564fe0c411497099602ced50913c18 +msgid "" +"a tuple (red, green, blue) with float items in interval *0 <= item <= 1* " +"representing the same color. Example `sRGB_to_pdf(0xff0000) = (1, 0, 0)` " +"(red)." +msgstr "" + +#: ../../functions.rst:158 33afb580cfbe4b5fb5fed85569086eeb +msgid "" +"Convenience function returning a color (red, green, blue) for a given " +"*sRGB* color integer." +msgstr "" + +#: ../../functions.rst:162 99b662fe46f9469682b0a7ec89eed460 +msgid "" +"a tuple (red, green, blue) with integer items in `range(256)` " +"representing the same color. Example `sRGB_to_pdf(0xff0000) = (255, 0, " +"0)` (red)." +msgstr "" + +#: ../../functions.rst:168 ../../functions.rst:183 ../../functions.rst:198 +#: ../../functions.rst:211 79490e25884e4b379b80f56b00625d5c +#: 8802b9dd8e1644918618883055d9afaf 8d692f79ec3d47b5a19c94c7e7f90981 +#: cc00fcf3f3834541862d9a786318f32f +msgid "*New in v1.18.0*" +msgstr "" + +#: ../../functions.rst:170 5ba3d698e66646eeba96e992e95fc235 +msgid "" +"Return the unicode number of a glyph name based on the **Adobe Glyph " +"List**." +msgstr "" + +#: ../../functions.rst:172 bdb4dabbf07a42e1b2aaa60fafc3f6a5 +msgid "" +"the name of some glyph. The function is based on the `Adobe Glyph List " +"`_." +msgstr "" + +#: ../../functions.rst:175 7f83c8a40f1f4f5182386d25b2900e70 +msgid "the unicode. Invalid ``name`` entries return `0xfffd (65533)`." +msgstr "" + +#: ../../functions.rst:177 ../../functions.rst:205 ../../functions.rst:218 +#: 06e18a271eb844ff8ee1fc0870be4fb8 d7d9853398734fcbb59570519db66ef3 +#: e5f542bf904c4baf92ddadf03e7802e6 +msgid "" +"A similar functionality is provided by package `fontTools " +"`_ in its *agl* sub-package." +msgstr "" + +#: ../../functions.rst:185 9c9f41d26b6f44d5a0675c56c191b7b5 +msgid "" +"Return the glyph name of a unicode number, based on the **Adobe Glyph " +"List**." +msgstr "" + +#: ../../functions.rst:187 3efb1935917c44828cdb74dd8e802d39 +#: a7cc8fab866e446fb5d9bd91531a6e33 +msgid "" +"the unicode given by e.g. `ord(\"ß\")`. The function is based on the " +"`Adobe Glyph List `_." +msgstr "" + +#: ../../functions.rst:190 5176a1a461ef43a1bfbefacc552c8a8b +msgid "" +"the glyph name. E.g. `pymupdf.unicode_to_glyph_name(ord(\"Ä\"))` returns " +"`'Adieresis'`." +msgstr "" + +#: ../../functions.rst:192 2d968ce1f4004533b122972fdbbabdf7 +msgid "" +"A similar functionality is provided by package `fontTools " +"`_: in its *agl* sub-package." +msgstr "" + +#: ../../functions.rst:200 cdc27cc2524340f49b6cc45e587c802c +msgid "Return a list of glyph names defined in the **Adobe Glyph List**." +msgstr "" + +#: ../../functions.rst:203 2fd087c0315e407ea96067edc1c4393c +msgid "list of strings." +msgstr "" + +#: ../../functions.rst:213 a02dfb86773a455382f6a6c0268d3499 +msgid "" +"Return a list of unicodes for there exists a glyph name in the **Adobe " +"Glyph List**." +msgstr "" + +#: ../../functions.rst:216 b7378500b7af448d86db01202a45986c +msgid "list of integers." +msgstr "" + +#: ../../functions.rst:224 44322f42c7554831ac045bccb97dbc3c +msgid "*New in v1.21.0*" +msgstr "" + +#: ../../functions.rst:226 24ae3761fb07422393846de0c9c3fa88 +msgid "**Utility function for use with \"Story\" applications.**" +msgstr "" + +#: ../../functions.rst:228 fd42be5d92474036bd944ca8660478de +msgid "" +"Create CSS `@font-face` items for the given fontcode in pymupdf-fonts. " +"Creates a CSS font-family for all fonts starting with string " +"\"fontcode\"." +msgstr "" + +#: ../../functions.rst:230 a814b536199949e891f96f03e13d68a2 +msgid "" +"The font naming convention in package pymupdf-fonts is \"fontcode\", " +"where the suffix \"sf\" is one of \"\" (empty), \"it\"/\"i\", " +"\"bo\"/\"b\" or \"bi\". These suffixes thus represent the regular, " +"italic, bold or bold-italic variants of that font." +msgstr "" + +#: ../../functions.rst:232 ee523a99cc234e859fb1a6cabd4448c4 +msgid "For example, font code \"notos\" refers to fonts" +msgstr "" + +#: ../../functions.rst:234 1624cd3ce5cb41d68b00cfbdefbab550 +msgid "\"notos\" - \"Noto Sans Regular\"" +msgstr "" + +#: ../../functions.rst:235 b5bfb596ccb74dcf835b39d8f7d13881 +msgid "\"notosit\" - \"Noto Sans Italic\"" +msgstr "" + +#: ../../functions.rst:236 f4b764ed2d584d8893bf0b2de910b9cf +msgid "\"notosbo\" - \"Noto Sans Bold\"" +msgstr "" + +#: ../../functions.rst:237 a8b2daa11b7845f3bed1ce18440ef016 +msgid "\"notosbi\" - \"Noto Sans Bold Italic\"" +msgstr "" + +#: ../../functions.rst:239 cb8e8390629f4d188e7e1dbc5af60b03 +msgid "" +"The function creates (up to) four CSS `@font-face` definitions and " +"collectively assigns the `font-family` name \"notos\" to them (or the " +"\"name\" value if provided). Associated font buffers are placed / added " +"to the provided archive." +msgstr "" + +#: ../../functions.rst:241 b1578620590c4d49a662b6873f7c33e7 +msgid "" +"To use the font in the Python API for :ref:`Story`, execute " +"`.set_font(fontcode)` (or \"name\" if given). The correct font weight or " +"style will automatically be selected as required." +msgstr "" + +#: ../../functions.rst:243 5c4c7320f1f8400e924e56c72a17c2c3 +msgid "" +"For example to replace the \"sans-serif\" HTML standard (i.e. Helvetica) " +"with the above \"notos\", execute the following. Whenever \"sans-serif\" " +"is used (whether explicitly or implicitly), the Noto Sans fonts will be " +"selected." +msgstr "" + +#: ../../functions.rst:245 3ab4384a20d149669910ef03ad792c3a +msgid "" +"`CSS = pymupdf.css_for_pymupdf_font(\"notos\", name=\"sans-serif\", " +"archive=...)`" +msgstr "" + +#: ../../functions.rst:247 3206db2b9e4548d9873d135de0833c62 +msgid "Expects and returns the CSS source, with the new CSS definitions appended." +msgstr "" + +#: ../../functions.rst:249 a2d622ad8ee347cdbf24cf65b46dd835 +msgid "" +"one of the font codes present in package `pymupdf-fonts " +"`_ (usually) representing the " +"regular version of the font family." +msgstr "" + +#: ../../functions.rst:250 3e43aa6f3cb7415c856593e0c2009f4d +msgid "" +"any already existing CSS source, or `None`. The function will append its " +"new definitions to this. This is the string that **must be used** as " +"`user_css` when creating the :ref:`Story`." +msgstr "" + +#: ../../functions.rst:251 96d99d7375ed4394a4e5ec1661857dde +msgid "" +":ref:`Archive`, **mandatory**. All font binaries (i.e. up to four) found " +"for \"fontcode\" will be added to the archive. This is the archive that " +"**must be used** as `archive` when creating the :ref:`Story`." +msgstr "" + +#: ../../functions.rst:252 efd7cc2ac7184a718e3bdc84648becc0 +msgid "" +"the name under which the \"fontcode\" fonts should be found. If omitted, " +"\"fontcode\" will be used." +msgstr "" + +#: ../../functions.rst:255 d17bb0f3f24845159c50104934ef2fc9 +msgid "" +"Modified CSS, with appended `@font-face` statements for each font variant" +" of fontcode. Fontbuffers associated with \"fontcode\" will have been " +"added to 'archive'. The function will automatically find up to 4 font " +"variants. All pymupdf-fonts (that are no special purpose like math or " +"music, etc.) have regular, bold, italic and bold-italic variants. To see " +"currently available font codes check " +"`pymupdf.fitz_fontdescriptors.keys()`. This will show something like " +"`dict_keys(['cascadia', 'cascadiai', 'cascadiab', 'cascadiabi', 'figbo', " +"'figo', 'figbi', 'figit', 'fimbo', 'fimo', 'spacembo', 'spacembi', " +"'spacemit', 'spacemo', 'math', 'music', 'symbol1', 'symbol2', 'notosbo', " +"'notosbi', 'notosit', 'notos', 'ubuntu', 'ubuntubo', 'ubuntubi', " +"'ubuntuit', 'ubuntm', 'ubuntmbo', 'ubuntmbi', 'ubuntmit'])`." +msgstr "" + +#: ../../functions.rst:257 9c918c7741a8450fadc38bb8e6d8248e +msgid "" +"Here is a complete snippet for using the \"Noto Sans\" font instead of " +"\"Helvetica\"::" +msgstr "" + +#: ../../functions.rst:272 b6bf01dfadf043f89d73dc2362986d56 +msgid "" +"Convenience function to split a rectangle into sub-rectangles of equal " +"size. Returns a list of `rows` lists, each containing `cols` :ref:`Rect` " +"items. Each sub-rectangle can then be addressed by its row and column " +"index." +msgstr "" + +#: ../../functions.rst:274 2379b768d70b429e80b9ee76ff6affc6 +msgid "the rectangle to split." +msgstr "" + +#: ../../functions.rst:275 bc2cff2237ae4cc2b772925cc341db0f +msgid "the desired number of columns." +msgstr "" + +#: ../../functions.rst:276 bb04dcac38e94e4ea02e6ce480164b8f +msgid "the desired number of rows." +msgstr "" + +#: ../../functions.rst:277 afead5470e7e4b4ba96f6b47fa94c27f +msgid "" +"a list of :ref:`Rect` objects of equal size, whose union equals *rect*. " +"Here is the layout of a 3x4 table created by `cell = " +"pymupdf.make_table(rect, cols=4, rows=3)`:" +msgstr "" + +#: ../../functions.rst:287 3cf17d4592c24625a3c0f8b4ccf257b9 +msgid "New in version 1.16.2)*" +msgstr "" + +#: ../../functions.rst:289 3de02919aba44c58882ea49db6a70ca4 +msgid "" +"Return a matrix which maps the line from p1 to p2 to the x-axis such that" +" p1 will become (0,0) and p2 a point with the same distance to (0,0)." +msgstr "" + +#: ../../functions.rst:291 d5051adab1c74eff8ca8bbcac46881e6 +msgid "starting point of the line." +msgstr "" + +#: ../../functions.rst:292 0739796326eb427b8251e930406ec398 +msgid "end point of the line." +msgstr "" + +#: ../../functions.rst:294 b3f32ee30e7e408ea53d346c946793b4 +msgid ":ref:`Matrix`" +msgstr "" + +#: ../../functions.rst:295 80f96c88c5c54adb87efd7e63247f4cf +msgid "" +"a matrix which combines a rotation and a translation:: >>> p1 = " +"pymupdf.Point(1, 1) >>> p2 = pymupdf.Point(4, 5) >>> abs(p2 - p1) " +"# distance of points 5.0 >>> m = pymupdf.planish_line(p1, p2) " +">>> p1 * m Point(0.0, 0.0) >>> p2 * m Point(5.0, " +"-5.960464477539063e-08) >>> # distance of the resulting points >>> " +"abs(p2 * m - p1 * m) 5.0 .. image:: images/img-planish.png " +":scale: 40" +msgstr "" + +#: ../../functions.rst:295 85ea149f226e4e2ca4d42190a34693e5 +msgid "a matrix which combines a rotation and a translation::" +msgstr "" + +#: ../../functions.rst:319 d7085018534f47e2b428476e6d18257b +msgid "" +"A dictionary of pre-defines paper formats. Used as basis for " +":meth:`paper_size`." +msgstr "" + +#: ../../functions.rst:325 1100f2cd223244e098a59cab294695cd +msgid "New in v1.17.5" +msgstr "" + +#: ../../functions.rst:327 611b74fc7f2f49e7be426fe3db89be8f +msgid "" +"A dictionary of usable fonts from repository `pymupdf-fonts " +"`_. Items are keyed by their " +"reserved fontname and provide information like this::" +msgstr "" + +#: ../../functions.rst:343 43582b0da1f84beba44a5e36e2cdd048 +msgid "If `pymupdf-fonts` is not installed, the dictionary is empty." +msgstr "" + +#: ../../functions.rst:345 5c5c8927cd35468f8b40e91051754525 +msgid "" +"The dictionary keys can be used to define a :ref:`Font` via e.g. `font = " +"pymupdf.Font(\"fimo\")` -- just like you can do it with the builtin fonts" +" \"Helvetica\" and friends." +msgstr "" + +#: ../../functions.rst:351 829280be90364ab59d34ab8bcb9ee3a5 +msgid "" +"If in `os.environ` when |PyMuPDF| is imported, sets destination of " +"|PyMuPDF| messages. Otherwise messages are sent to `sys.stdout`." +msgstr "" + +#: ../../functions.rst:355 2a7234b598ca4be78a6ed7fd2cd0e68b +msgid "" +"If the value starts with `fd:`, the remaining text should be an integer " +"file descriptor to which messages are written." +msgstr "" + +#: ../../functions.rst:358 52dfedc05920490596eb9bb364ca70ad +msgid "For example `PYMUPDF_MESSAGE=fd:2` will send messages to stderr." +msgstr "" + +#: ../../functions.rst:360 c2c608b9dd754c2095660836dded1873 +msgid "" +"If the value starts with `path:`, the remaining text is the path of a " +"file to which messages are written. If the file already exists, it is " +"truncated." +msgstr "" + +#: ../../functions.rst:364 f8a67537ff5540058906057a31801f10 +msgid "" +"If the value starts with `path+:`, the remaining text is the path of file" +" to which messages are written. If the file already exists, we append " +"output." +msgstr "" + +#: ../../functions.rst:369 a97a4cc6ac8941099d31bee564b661d6 +msgid "" +"If the value starts with `logging:`, messages are written to `Python's " +"logging system `_. The " +"remaining text can contain comma-separated name=value items:" +msgstr "" + +#: ../../functions.rst:373 85f8ee63e7c242de87aa78d6da95ec89 +msgid "`level=` sets the logging level." +msgstr "" + +#: ../../functions.rst:374 ced54a7765f14a2c90cc9b941ac3cdaf +msgid "`name=` sets the logger name (default is `pymupdf`)." +msgstr "" + +#: ../../functions.rst:376 79d9e976d47c48d2b2f5d924b71d2bdd +msgid "Other items are ignored." +msgstr "" + +#: ../../functions.rst:378 e6049a9e63db495e951e0a96d3dbe162 +msgid "Other prefixes will cause an error." +msgstr "" + +#: ../../functions.rst:380 cea43b4378c542439ade76acf38cef95 +msgid "Also see `set_messages()`." +msgstr "" + +#: ../../functions.rst:387 d33f434c014340318a8b4f2408cf37ee +msgid "New in v1.19.6" +msgstr "" + +#: ../../functions.rst:389 2d49cc1b71804cc6add57d8ac8aeeb40 +msgid "" +"Contains about 500 RGB colors in PDF format with the color name as key. " +"To see what is there, you can obviously look at " +"`pymupdf.pdfcolor.keys()`." +msgstr "" + +#: ../../functions.rst:391 210b4f32e51c447c920aa1e17090177d +msgid "Examples:" +msgstr "" + +#: ../../functions.rst:393 78b6aa54c3d8499c933344b9d67aa935 +msgid "`pymupdf.pdfcolor[\"red\"] = (1.0, 0.0, 0.0)`" +msgstr "" + +#: ../../functions.rst:394 25976b6b069c4a278c407ca0a6e0dd34 +msgid "" +"`pymupdf.pdfcolor[\"skyblue\"] = (0.5294117647058824, 0.807843137254902, " +"0.9215686274509803)`" +msgstr "" + +#: ../../functions.rst:395 036d984bb9494bfb970022074689d37d +msgid "" +"`pymupdf.pdfcolor[\"wheat\"] = (0.9607843137254902, 0.8705882352941177, " +"0.7019607843137254)`" +msgstr "" + +#: ../../functions.rst:401 8e917a8067e94f15b90b52ee3016acc1 +msgid "" +"Convenience function to return the current local timestamp in PDF " +"compatible format, e.g. *D:20170501121525-04'00'* for local datetime May " +"1, 2017, 12:15:25 in a timezone 4 hours westward of the UTC meridian." +msgstr "" + +#: ../../functions.rst:404 f9d2422e60aa4b95b2387399f8819412 +msgid "current local PDF timestamp." +msgstr "" + +#: ../../functions.rst:410 7c48f1b5388547b9847fe88c7fbcd18a +msgid "New in version 1.14.7" +msgstr "" + +#: ../../functions.rst:412 64c91a6941404cf293748277c1e40776 +msgid "" +"Calculate the length of text on output with a given **builtin** font, " +":data:`fontsize` and encoding." +msgstr "" + +#: ../../functions.rst:414 1b351f62d3ce47ba820d95770c3b7ccf +msgid "the text string." +msgstr "" + +#: ../../functions.rst:415 7a65fc2611854e61ae76f3d30079961a +msgid "" +"the font name. Must be one of either the :ref:`Base-14-Fonts` or the CJK " +"fonts, identified by their \"reserved\" fontnames (see table in " +":meth:`Page.insert_font`)." +msgstr "" + +#: ../../functions.rst:416 932954ed0adf44ef9900d8f882a388e7 +msgid "the :data:`fontsize`." +msgstr "" + +#: ../../functions.rst:417 d499111356cf4e9081c8c3c2912a57bd +msgid "" +"the encoding to use. Besides 0 = Latin, 1 = Greek and 2 = Cyrillic " +"(Russian) are available. Relevant for Base-14 fonts \"Helvetica\", " +"\"Courier\" and \"Times\" and their variants only. Make sure to use the " +"same value as in the corresponding text insertion." +msgstr "" + +#: ../../functions.rst:419 9120edd3ebae44b4acc13d6f9de3fc03 +msgid "" +"the length in points the string will have (e.g. when used in " +":meth:`Page.insert_text`)." +msgstr "" + +#: ../../functions.rst:421 79cef2d8477740418dbe285f8a7e7d06 +msgid "" +"This function will only do the calculation -- it won't insert font nor " +"text." +msgstr "" + +#: ../../functions.rst:423 00b63292efa741d3a51b9a25802baf30 +msgid "" +"The :ref:`Font` class offers a similar method, :meth:`Font.text_length`, " +"which supports Base-14 fonts and any font with a character map (CMap, " +"Type 0 fonts)." +msgstr "" + +#: ../../functions.rst:425 cfcfc76eb218486fa8b032c6c50ab81e +msgid "" +"If you use this function to determine the required rectangle width for " +"the (:ref:`Page` or :ref:`Shape`) *insert_textbox* methods, be aware that" +" they calculate on a **by-character level**. Because of rounding effects," +" this will mostly lead to a slightly larger number: " +"*sum([pymupdf.get_text_length(c) for c in text]) > " +"pymupdf.get_text_length(text)*. So either (1) do the same, or (2) use " +"something like *pymupdf.get_text_length(text + \"'\")* for your " +"calculation." +msgstr "" + +#: ../../functions.rst:431 763b708ba6ae4ddab04cf7af4a0c1d41 +msgid "" +"Make a PDF-compatible string: if the text contains code points *ord(c) > " +"255*, then it will be converted to UTF-16BE with BOM as a hexadecimal " +"character string enclosed in \"<>\" brackets like **. Otherwise," +" it will return the string enclosed in (round) brackets, replacing any " +"characters outside the ASCII range with some special code. Also, every " +"\"(\", \")\" or backslash is escaped with a backslash." +msgstr "" + +#: ../../functions.rst:433 c2b249b32f5f45e889b055dec35c3b1c +msgid "the object to convert" +msgstr "" + +#: ../../functions.rst:436 1acb62d7d240428ab032edcf601996ca +msgid "PDF-compatible string enclosed in either *()* or *<>*." +msgstr "" + +#: ../../functions.rst:442 702d8585021a43eba297b69d4836db1d +msgid "New in v1.16.7" +msgstr "" + +#: ../../functions.rst:443 d731f027bad84dc4a0c0fa97dddbc2ba +msgid "" +"Changed in v1.19.5: also return natural image orientation extracted from " +"EXIF data if present." +msgstr "" + +#: ../../functions.rst:444 27b180112c374ac4a920954d1634ef4d +msgid "" +"Changed in v1.22.5: always return `None` in error cases instead of an " +"empty dictionary." +msgstr "" + +#: ../../functions.rst:446 9803cc75c9f044399d2dda1e316afe12 +msgid "" +"Show important properties of an image provided as a memory area. Its main" +" purpose is to avoid using other Python packages just to determine them." +msgstr "" + +#: ../../functions.rst:448 fdf0ee2300ce40418b494c923b925202 +msgid "" +"either an image in memory or an **opened** file. An image in memory may " +"be any of the formats `bytes`, `bytearray` or `io.BytesIO`." +msgstr "" + +#: ../../functions.rst:451 fe8ea596a2524046aa4127a94283a123 +msgid "" +"No exception is ever raised. In case of an error, `None` is returned. " +"Otherwise, there are the following items:: In [2]: " +"pymupdf.image_profile(open(\"nur-ruhig.jpg\", \"rb\").read()) Out[2]:" +" {'width': 439, 'height': 501, 'orientation': 0, # natural " +"orientation (from EXIF) 'transform': (1.0, 0.0, 0.0, 1.0, 0.0, 0.0), " +"# orientation matrix 'xres': 96, 'yres': 96, 'colorspace': 3," +" 'bpc': 8, 'ext': 'jpeg', 'cs-name': 'DeviceRGB'} There is the " +"following relation to **Exif** information encoded in `orientation`, and " +"correspondingly in the `transform` matrix-like (quoted from MuPDF " +"documentation, *ccw* = counter-clockwise): 0. Undefined 1. 0 " +"degree ccw rotation. (Exif = 1) 2. 90 degree ccw rotation. (Exif = 8)" +" 3. 180 degree ccw rotation. (Exif = 3) 4. 270 degree ccw rotation." +" (Exif = 6) 5. flip on X. (Exif = 2) 6. flip on X, then rotate ccw " +"by 90 degrees. (Exif = 5) 7. flip on X, then rotate ccw by 180 " +"degrees. (Exif = 4) 8. flip on X, then rotate ccw by 270 degrees. " +"(Exif = 7) .. note:: * For some \"exotic\" images (FAX encodings, " +"RAW formats and the like), this method will not work. You can however " +"still work with such images in PyMuPDF, e.g. by using " +":meth:`Document.extract_image` or create pixmaps via `Pixmap(doc, xref)`." +" These methods will automatically convert exotic images to the PNG format" +" before returning results. * You can also get the properties of images" +" embedded in a PDF, via their :data:`xref`. In this case make sure to " +"extract the raw stream: " +"`pymupdf.image_profile(doc.xref_stream_raw(xref))`. * Images as " +"returned by the image blocks of :meth:`Page.get_text` using \"dict\" or " +"\"rawdict\" options are also supported." +msgstr "" + +#: ../../functions.rst:452 6c919d4bab45428dbd8afb4362c1639b +msgid "" +"No exception is ever raised. In case of an error, `None` is returned. " +"Otherwise, there are the following items::" +msgstr "" + +#: ../../functions.rst:467 b9c14ed655074650822790e551f4ca7d +msgid "" +"There is the following relation to **Exif** information encoded in " +"`orientation`, and correspondingly in the `transform` matrix-like (quoted" +" from MuPDF documentation, *ccw* = counter-clockwise):" +msgstr "" + +#: ../../functions.rst:469 19e611ede392404ba77fd6f75497a37d +msgid "Undefined" +msgstr "" + +#: ../../functions.rst:470 32314d4117e54bddb20d74a136422abf +msgid "0 degree ccw rotation. (Exif = 1)" +msgstr "" + +#: ../../functions.rst:471 781696a0f9f242fe89d413224e12432e +msgid "90 degree ccw rotation. (Exif = 8)" +msgstr "" + +#: ../../functions.rst:472 589888419f494f768f3287b5f5fa3e86 +msgid "180 degree ccw rotation. (Exif = 3)" +msgstr "" + +#: ../../functions.rst:473 f01ff82a9eed4b9f844b157ad3881ef5 +msgid "270 degree ccw rotation. (Exif = 6)" +msgstr "" + +#: ../../functions.rst:474 0446ad252a924396aaeed11ed1109b46 +msgid "flip on X. (Exif = 2)" +msgstr "" + +#: ../../functions.rst:475 26416c1428b9417cb36e3f04129eb26b +msgid "flip on X, then rotate ccw by 90 degrees. (Exif = 5)" +msgstr "" + +#: ../../functions.rst:476 7bf8066761234bc9b89b24615ac9ff55 +msgid "flip on X, then rotate ccw by 180 degrees. (Exif = 4)" +msgstr "" + +#: ../../functions.rst:477 e588846b59874666b6702e6ff455f044 +msgid "flip on X, then rotate ccw by 270 degrees. (Exif = 7)" +msgstr "" + +#: ../../functions.rst:482 b2e5bec7f40640858d351ef7a4d13151 +msgid "" +"For some \"exotic\" images (FAX encodings, RAW formats and the like), " +"this method will not work. You can however still work with such images in" +" PyMuPDF, e.g. by using :meth:`Document.extract_image` or create pixmaps " +"via `Pixmap(doc, xref)`. These methods will automatically convert exotic " +"images to the PNG format before returning results." +msgstr "" + +#: ../../functions.rst:483 60dfbff3781a411aa5ac084ed06bc481 +msgid "" +"You can also get the properties of images embedded in a PDF, via their " +":data:`xref`. In this case make sure to extract the raw stream: " +"`pymupdf.image_profile(doc.xref_stream_raw(xref))`." +msgstr "" + +#: ../../functions.rst:484 68c194bfed0d449c9f716b2f8c1e9a6d +msgid "" +"Images as returned by the image blocks of :meth:`Page.get_text` using " +"\"dict\" or \"rawdict\" options are also supported." +msgstr "" + +#: ../../functions.rst:491 841e72c301064b7d8cd16a7659df3715 +msgid "" +"Return the header string required to make a valid document out of page " +"text outputs." +msgstr "" + +#: ../../functions.rst:493 ../../functions.rst:505 +#: 98ab75da842e44f0aba2173690b17420 be09e3df54dd47cc9a0f9dad37daf7ba +msgid "type of document. Use the same as the output parameter of *get_text()*." +msgstr "" + +#: ../../functions.rst:495 91d48bdf66814693aa7ac8c87d1d2704 +msgid "optional arbitrary name to use in output types \"json\" and \"xml\"." +msgstr "" + +#: ../../functions.rst:503 8f75e703912b484cad9c58f9ef286a30 +msgid "" +"Return the trailer string required to make a valid document out of page " +"text outputs. See :meth:`Page.get_text` for an example." +msgstr "" + +#: ../../functions.rst:513 7bf3dbf728174900a685386f86d7b613 +msgid "" +"Delete an object containing XML-based metadata from the PDF. (Py-) MuPDF " +"does not support XML-based metadata. Use this if you want to make sure " +"that the conventional metadata dictionary will be used exclusively. Many " +"thirdparty PDF programs insert their own metadata in XML format and thus " +"may override what you store in the conventional dictionary. This method " +"deletes any such reference, and the corresponding PDF object will be " +"deleted during next garbage collection of the file." +msgstr "" + +#: ../../functions.rst:519 62c4ccaa8b8c436c990340d78e6341c0 +msgid "" +"Return the XML-based metadata :data:`xref` of the PDF if present -- also " +"refer to :meth:`Document.del_xml_metadata`. You can use it to retrieve " +"the content via :meth:`Document.xref_stream` and then work with it using " +"some XML software." +msgstr "" + +#: ../../functions.rst:522 28fca2e874754c1b8e1f76de939f070b +msgid ":data:`xref` of PDF file level XML metadata -- or 0 if none exists." +msgstr "" + +#: ../../functions.rst:528 bb22cba4009542cf9cbe10b1bdf7d0a0 +msgid "Run a page through a device." +msgstr "" + +#: ../../functions.rst:530 b59467cb760a428cb9a1ad3ddc2372f5 +msgid "Device, obtained from one of the :ref:`Device` constructors." +msgstr "" + +#: ../../functions.rst:533 764e316039514bc2b1c84a2a3613584f +msgid "" +"Transformation to apply to the page. Set it to :ref:`Identity` if no " +"transformation is desired." +msgstr "" + +#: ../../functions.rst:540 132d218ecda54d83a572eccb181b290d +msgid "New in v1.19.0" +msgstr "" + +#: ../../functions.rst:541 eb0d8183af6d46dcaa937647ed837885 +msgid "" +"Changed in v1.22.0: optionally also return the OCG name applicable to the" +" boundary box." +msgstr "" + +#: ../../functions.rst:543 2b307ac70a2c47239fe84735d4ea5dcc +msgid "" +"a list of rectangles that envelop text, image or drawing objects. Each " +"item is a tuple `(type, (x0, y0, x1, y1))` where the second tuple " +"consists of rectangle coordinates, and *type* is one of the following " +"values. If `layers=True`, there is a third item containing the OCG name " +"or `None`: `(type, (x0, y0, x1, y1), None)`. * `\"fill-text\"` -- normal" +" text (painted without character borders) * `\"stroke-text\"` -- text " +"showing character borders only * `\"ignore-text\"` -- text that should " +"not be displayed (e.g. as used by OCR text layers) * `\"fill-path\"` -- " +"drawing with fill color (and no border) * `\"stroke-path\"` -- drawing " +"with border (and no fill color) * `\"fill-image\"` -- displays an image *" +" `\"fill-shade\"` -- display a shading The item sequence represents the " +"**sequence in which these commands are executed** to build the page's " +"appearance. Therefore, if an item's bbox intersects or contains that of a" +" previous item, then the previous item may be (partially) covered / " +"hidden. So this list can be used to detect such situations. An item's " +"index in this list equals the value of a `\"seqno\"` in dictionaries as " +"returned by :meth:`Page.get_drawings` and :meth:`Page.get_texttrace`." +msgstr "" + +#: ../../functions.rst:543 1b114fa4f3f64d72bd937199e3a3d2f7 +msgid "" +"a list of rectangles that envelop text, image or drawing objects. Each " +"item is a tuple `(type, (x0, y0, x1, y1))` where the second tuple " +"consists of rectangle coordinates, and *type* is one of the following " +"values. If `layers=True`, there is a third item containing the OCG name " +"or `None`: `(type, (x0, y0, x1, y1), None)`." +msgstr "" + +#: ../../functions.rst:545 abf0c36f44e04ee8a5a2afa7b724f5a1 +msgid "`\"fill-text\"` -- normal text (painted without character borders)" +msgstr "" + +#: ../../functions.rst:546 37dd54d3f17044c6b337bff4655966a0 +msgid "`\"stroke-text\"` -- text showing character borders only" +msgstr "" + +#: ../../functions.rst:547 849119a86cd44565a26d3541b70c0516 +msgid "" +"`\"ignore-text\"` -- text that should not be displayed (e.g. as used by " +"OCR text layers)" +msgstr "" + +#: ../../functions.rst:548 aec96117beef420c82608445b9e8819a +msgid "`\"fill-path\"` -- drawing with fill color (and no border)" +msgstr "" + +#: ../../functions.rst:549 b1d6ad4002a641048ce03e94bd21d5bb +msgid "`\"stroke-path\"` -- drawing with border (and no fill color)" +msgstr "" + +#: ../../functions.rst:550 b0e26ed279dc4820a41a7f8a4e615183 +msgid "`\"fill-image\"` -- displays an image" +msgstr "" + +#: ../../functions.rst:551 7ad6ff9b7faf470cbe306351c31df8ec +msgid "`\"fill-shade\"` -- display a shading" +msgstr "" + +#: ../../functions.rst:553 218f82ee4e624649b8e8a57969e46706 +msgid "" +"The item sequence represents the **sequence in which these commands are " +"executed** to build the page's appearance. Therefore, if an item's bbox " +"intersects or contains that of a previous item, then the previous item " +"may be (partially) covered / hidden." +msgstr "" + +#: ../../functions.rst:556 5593f221ed344831866cbd474df50bc3 +msgid "" +"So this list can be used to detect such situations. An item's index in " +"this list equals the value of a `\"seqno\"` in dictionaries as returned " +"by :meth:`Page.get_drawings` and :meth:`Page.get_texttrace`." +msgstr "" + +#: ../../functions.rst:563 1b4ab5c71554402a9c63ee38f27e71cb +msgid "New in v1.18.16" +msgstr "" + +#: ../../functions.rst:564 83fdfa37d163451e9ff96def5e0de5c0 +msgid "Changed in v1.19.0: added key \"seqno\"." +msgstr "" + +#: ../../functions.rst:565 916f4cdfdeda417abeea07844d42deca +msgid "" +"Changed in v1.19.1: stroke and fill colors now always are either RGB or " +"GRAY" +msgstr "" + +#: ../../functions.rst:566 8c99ffdc891844ad872fd6def677e08b +msgid "" +"Changed in v1.19.3: span and character bboxes are now also correct if " +"`dir != (1, 0)`." +msgstr "" + +#: ../../functions.rst:567 03678344ac2e4f0ba4e15f06b3b558d0 +msgid "Changed in v1.22.0: add new dictionary key \"layer\"." +msgstr "" + +#: ../../functions.rst:570 6d08591e52224bc08f77d6dcb26d9a04 +msgid "" +"Return low-level text information of the page. The method is available " +"for **all** document types. The result is a list of Python dictionaries " +"with the following content::" +msgstr "" + +#: ../../functions.rst:606 cc0d6a11bdbc410cb9411001f8e05eee +msgid "Details:" +msgstr "" + +#: ../../functions.rst:608 11f8d880efa247139f7f83220839a83a +msgid "" +"Information above tagged with \"(1)\" has the same meaning and value as " +"explained in :ref:`TextPage`." +msgstr "" + +#: ../../functions.rst:610 4d9d835859f449e0a40b7667d81451a8 +msgid "" +"Please note that the font ``flags`` value will never contain a " +"*superscript* flag bit: the detection of superscripts is done within " +"MuPDF :ref:`TextPage` code -- it is not a property of any font." +msgstr "" + +#: ../../functions.rst:611 d9f311aa264940be9b1fd7dc476446f3 +msgid "" +"Also note, that the text *color* is encoded as the usual tuple of floats " +"0 <= f <= 1 -- not in sRGB format. Depending on `span[\"type\"]`, " +"interpret this as fill color or stroke color." +msgstr "" + +#: ../../functions.rst:613 c32efb528d114e888542af9a76a9477a +msgid "There are 3 text span types:" +msgstr "" + +#: ../../functions.rst:615 ea8c6854860c4abc84f35271f246cf6f +msgid "" +"0: Filled text -- equivalent to PDF text rendering mode 0 (`0 Tr`, the " +"default in PDF), only each character's \"inside\" is shown." +msgstr "" + +#: ../../functions.rst:616 8c5b60838d0043ad832b76f6964725ec +msgid "" +"1: Stroked text -- equivalent to `1 Tr`, only the character borders are " +"shown." +msgstr "" + +#: ../../functions.rst:617 aad83dab705242819a32cf3d87f3fcd2 +msgid "3: Ignored text -- equivalent to `3 Tr` (hidden text)." +msgstr "" + +#: ../../functions.rst:619 95d1e914c8254b37a6c64251be78ac76 +#, python-format +msgid "" +"Line width in this context is important only for processing " +"`span[\"type\"] != 0`: it determines the thickness of the character's " +"border line. This value may not be provided at all with the text data. In" +" this case, a value of 5% of the :data:`fontsize` (`span[\"size\"] * " +"0,05`) is generated. Often, an \"artificial\" bold text in PDF is created" +" by `2 Tr`. There is no equivalent span type for this case. Instead, " +"respective text is represented by two consecutive spans -- which are " +"identical in every aspect, except for their types, which are 0, resp 1. " +"It is your responsibility to handle this type of situation - in " +":meth:`Page.get_text`, MuPDF is doing this for you." +msgstr "" + +#: ../../functions.rst:620 606f56ad2fa34ddb82e2171ac68c7ae0 +msgid "" +"For data compactness, the character's unicode is provided here. Use " +"built-in function `chr()` for the character itself." +msgstr "" + +#: ../../functions.rst:621 eafb5c8d2c0a47fe87b904f337b62657 +msgid "" +"The alpha / opacity value of the span's text, `0 <= opacity <= 1`, 0 is " +"invisible text, 1 (100%) is intransparent. Depending on `span[\"type\"]`," +" interpret this value as *fill* opacity or, resp. *stroke* opacity." +msgstr "" + +#: ../../functions.rst:622 eb23d9902fba49d087006466112feef8 +msgid "" +"*(Changed in v1.19.0)* This value is equal or close to `char[\"bbox\"]` " +"of \"rawdict\". In particular, the bbox **height** value is always " +"computed as if **\"small glyph heights\"** had been requested." +msgstr "" + +#: ../../functions.rst:623 3ef916cf4c6d4625b153f657810bcaac +msgid "*(New in v1.19.0)* This is the union of all character bboxes." +msgstr "" + +#: ../../functions.rst:624 b64b0fd0a2f8435aada9591350d3276e +msgid "" +"*(New in v1.19.0)* Enumerates the commands that build up the page's " +"appearance. Can be used to find out whether text is effectively hidden by" +" objects, which are painted \"later\", or *over* some object. So if there" +" is a drawing or image with a higher sequence number, whose bbox overlaps" +" (parts of) this text span, one may assume that such an object hides the " +"resp. text. Different text spans have identical sequence numbers if they " +"were created in one go." +msgstr "" + +#: ../../functions.rst:625 4e53fc30ab4b434a8dd462b37df55b15 +msgid "" +"*(New in v1.22.0)* The name of the Optional Content Group (OCG) if " +"applicable or `None`." +msgstr "" + +#: ../../functions.rst:627 18fcebc358184f629a5dac8dd24f561d +msgid "" +"Here is a list of similarities and differences of `page.get_texttrace()` " +"compared to `page.get_text(\"rawdict\")`:" +msgstr "" + +#: ../../functions.rst:629 10242bfca81e4c638b761ecd11ecc22b +msgid "" +"The method is up to **twice as fast,** compared to \"rawdict\" " +"extraction. Depends on the amount of text." +msgstr "" + +#: ../../functions.rst:630 563d2bcc5e534c8aa65c037cb918a041 +msgid "" +"The returned data is very **much smaller in size** -- although it " +"provides more information." +msgstr "" + +#: ../../functions.rst:631 22d9ce68958844f9b04f8ce7c51e84a7 +msgid "" +"Additional types of text **invisibility can be detected**: opacity = 0 or" +" type > 1 or overlapping bbox of an object with a higher sequence number." +msgstr "" + +#: ../../functions.rst:632 b7e1c0e67b62467e9bdadba9d42d6c6b +msgid "" +"If MuPDF returns unicode 0xFFFD (65533) for unrecognized characters, you " +"may still be able to deduct desired information from the glyph id." +msgstr "" + +#: ../../functions.rst:633 b1f31df6bda84153ace8673ae63e9996 +msgid "" +"The `span[\"chars\"]` **contains no spaces**, **except** the document " +"creator has explicitly coded them. They **will never be generated** like " +"it happens in :meth:`Page.get_text` methods. To provide some help for " +"doing your own computations here, the width of a space character is " +"given. This value is derived from the font where possible. Otherwise the " +"value of a fallback font is taken." +msgstr "" + +#: ../../functions.rst:634 c94dc74956874bfa8ac4c59d48c0cc87 +msgid "" +"There is no effort to organize text like it happens for a :ref:`TextPage`" +" (the hierarchy of blocks, lines, spans, and characters). Characters are " +"simply extracted in sequence, one by one, and put in a span. Whenever any" +" of the span's characteristics changes, a new span is started. So you may" +" find characters with different `origin.y` values in the same span (which" +" means they would appear in different lines). You cannot assume, that " +"span characters are sorted in any particular order -- you must make sense" +" of the info yourself, taking `span[\"dir\"]`, `span[\"wmode\"]`, etc. " +"into account." +msgstr "" + +#: ../../functions.rst:652 7acddc7741614360bf17d5596c8cc5ab +msgid "Ligatures are represented like this:" +msgstr "" + +#: ../../functions.rst:636 e72abf836baf467c93105d9dde8d8035 +msgid "" +"MuPDF handles the following ligatures: \"fi\", \"ff\", \"fl\", \"ft\", " +"\"st\", \"ffi\", and \"ffl\" (only the first 3 are mostly ever used). If " +"the page contains e.g. ligature \"fi\", you will find the following two " +"character items subsequent to each other::" +msgstr "" + +#: ../../functions.rst:641 d46f58a609804bea982da0876d2ba90f +msgid "" +"This means that the bbox of the first ligature character is the area " +"containing the complete, compound glyph. Subsequent ligature components " +"are recognizable by their glyph value -1 and a bbox of width zero." +msgstr "" + +#: ../../functions.rst:642 5f6b5b48f4684036ad328bffca38325a +msgid "" +"You may want to replace those 2 or 3 char tuples by one, that represents " +"the ligature itself. Use the following mapping of ligatures to unicodes:" +msgstr "" + +#: ../../functions.rst:644 889bc72258b64c39bbba09ab96188589 +msgid "`\"ff\" -> 0xFB00`" +msgstr "" + +#: ../../functions.rst:645 950a98981e9b4f3cad52eca1073f9df2 +msgid "`\"fi\" -> 0xFB01`" +msgstr "" + +#: ../../functions.rst:646 897debd680f84f00b2b72a621eb0ef78 +msgid "`\"fl\" -> 0xFB02`" +msgstr "" + +#: ../../functions.rst:647 06805958e3a24f58ba7fe31f2c71b37c +msgid "`\"ffi\" -> 0xFB03`" +msgstr "" + +#: ../../functions.rst:648 108d095c0546443c9aed1a351b544e51 +msgid "`\"ffl\" -> 0xFB04`" +msgstr "" + +#: ../../functions.rst:649 685cc70784514cb8b5c01b88bff6ab68 +msgid "`\"ft\" -> 0xFB05`" +msgstr "" + +#: ../../functions.rst:650 0b2c082689e24ccca607cf35dac9ca2f +msgid "`\"st\" -> 0xFB06`" +msgstr "" + +#: ../../functions.rst:652 3916ffdd9f474f4a8021e3466c4251ec +msgid "" +"So you may want to replace the two example tuples above by the following " +"single one: `(0xFB01, glyph, (x, y), (x0, y0, x1, y1))` (there is usually" +" no need to lookup the correct glyph id for 0xFB01 in the resp. font, but" +" you may execute `font.has_glyph(0xFB01)` and use its return value)." +msgstr "" + +#: ../../functions.rst:654 57e26aabbddd4a9f9a02d4b02c1ef955 +msgid "" +"**Changed in v1.19.3:** Similar to other text extraction methods, the " +"character and span bboxes envelop the character quads. To recover the " +"quads, follow the same methods :meth:`recover_quad`, " +":meth:`recover_char_quad` or :meth:`recover_span_quad` as explained in " +":ref:`textpagedict`. Use either `None` or `span[\"dir\"]` for the writing" +" direction." +msgstr "" + +#: ../../functions.rst:656 c735d25ff37c439293d1c84142159a58 +msgid "" +"**Changed in v1.21.1:** If applicable, the name of the OCG is shown in " +"`\"layer\"`." +msgstr "" + +#: ../../functions.rst:662 73cb0ecbc9904cfd9eedd2cf201a34ac +msgid "" +"Ensures that the page's so-called graphics state is balanced and new " +"content can be inserted correctly." +msgstr "" + +#: ../../functions.rst:664 2fce8c9f6cfc4f5580d8dbfbdac54581 +msgid "" +"In versions 1.24.1+ of PyMuPDF the method was improved and is being " +"executed automatically as required, so you should no longer need to " +"concern yourself with it." +msgstr "" + +#: ../../functions.rst:666 6ca70959e73644b19510f3250902df9a +msgid "We discourage using :meth:`Page.clean_contents` to achieve this." +msgstr "" + +#: ../../functions.rst:672 fbfdfc139dba4d859c7e23c259a08157 +msgid "" +"Indicate whether the page's so-called graphic state is balanced. If " +"`False`, :meth:`Page.wrap_contents` should be executed if new content is " +"inserted (only relevant in `overlay=True` mode). In newer versions " +"(1.24.1+), this check and corresponding adjustments are automatically " +"executed -- you therefore should not be concerned about this anymore." +msgstr "" + +#: ../../functions.rst:680 de1474a27a3c4f17a4b06482b9593875 +msgid "" +"Deprecated wrapper for :meth:`TextPage.extractBLOCKS`. Use " +":meth:`Page.get_text` with the \"blocks\" option instead." +msgstr "" + +#: ../../functions.rst:688 88b9617fbc71462e867dbd12dd918d79 +msgid "" +"Deprecated wrapper for :meth:`TextPage.extractWORDS`. Use " +":meth:`Page.get_text` with the \"words\" option instead." +msgstr "" + +#: ../../functions.rst:696 e63d78e973014b5da39d398c04e37cd0 +msgid "Run a page through a list device and return its display list." +msgstr "" + +#: ../../functions.rst:698 18c7a9bcd3614b61abe4ffa70c25080c +msgid ":ref:`DisplayList`" +msgstr "" + +#: ../../functions.rst:699 95ce406969764ffea7a51bd7cb001954 +msgid "the display list of the page." +msgstr "" + +#: ../../functions.rst:705 2f7950caaff2497e85a41efaf8b7ab40 +msgid "" +"PDF only: Retrieve a list of :data:`xref` of :data:`contents` objects of " +"a page. May be empty or contain multiple integers. If the page is cleaned" +" (:meth:`Page.clean_contents`), it will be no more than one entry. The " +"\"source\" of each `/Contents` object can be individually read by " +":meth:`Document.xref_stream` using an item of this list. Method " +":meth:`Page.read_contents` in contrast walks through this list and " +"concatenates the corresponding sources into one `bytes` object." +msgstr "" + +#: ../../functions.rst:713 0e0e858c5fb34899bf5b31067d9f6cf0 +msgid "" +"PDF only: Let the page's `/Contents` key point to this xref. Any " +"previously used contents objects will be ignored and can be removed via " +"garbage collection." +msgstr "" + +#: ../../functions.rst:719 5d1261cb25b84350a7512c2587a9a33e +msgid "Changed in v1.17.6" +msgstr "" + +#: ../../functions.rst:721 246c4ca104b04817bab2b24be75d9bcb +msgid "" +"PDF only: Clean and concatenate all :data:`contents` objects associated " +"with this page. \"Cleaning\" includes syntactical corrections, " +"standardizations and \"pretty printing\" of the contents stream. " +"Discrepancies between :data:`contents` and :data:`resources` objects will" +" also be corrected if sanitize is true. See :meth:`Page.get_contents` for" +" more details." +msgstr "" + +#: ../../functions.rst:723 301ef7e95bd144f8b88b541724fc0d58 +msgid "" +"Changed in version 1.16.0 Annotations are no longer implicitly cleaned by" +" this method. Use :meth:`Annot.clean_contents` separately." +msgstr "" + +#: ../../functions.rst:725 fb9142fcb2a94012a3fdd682a262552a +msgid "" +"*(new in v1.17.6)* if true, synchronization between resources and their " +"actual use in the contents object is snychronized. For example, if a font" +" is not actually used for any text of the page, then it will be deleted " +"from the `/Resources/Font` object." +msgstr "" + +#: ../../functions.rst:727 fc916fcfc1a14c108f31a9985fbb06f9 +msgid "" +"This is a complex function which may generate large amounts of new data " +"and render old data unused. It is **not recommended** using it together " +"with the **incremental save** option. Also note that the resulting " +"singleton new */Contents* object is **uncompressed**. So you should save " +"to a **new file** using options *\"deflate=True, garbage=3\"*." +msgstr "" + +#: ../../functions.rst:729 ee091ea4bbad4137bdf94b65bf7e1505 +msgid "" +"Do not any longer use this method to ensure correct insertions on PDF " +"pages. Since PyMuPDF version 1.24.2 this is taken care of automatically." +msgstr "" + +#: ../../functions.rst:735 da8e22bf756d4516a6435fef2ee406ef +msgid "" +"*New in version 1.17.0.* Return the concatenation of all :data:`contents`" +" objects associated with the page -- without cleaning or otherwise " +"modifying them. Use this method whenever you need to parse this source in" +" its entirety without having to bother how many separate contents objects" +" exist." +msgstr "" + +#: ../../functions.rst:744 0ea4768fd42d4fcdb406a86bb35b0b3c +msgid "" +"Clean the :data:`contents` streams associated with the annotation. This " +"is the same type of action which :meth:`Page.clean_contents` performs -- " +"just restricted to this annotation." +msgstr "" + +#: ../../functions.rst:751 c48de20f6397476e88558a5f14a2c96c +msgid "" +"Return a list of character glyphs and their widths for a font that is " +"present in the document. A font must be specified by its PDF cross " +"reference number :data:`xref`. This function is called automatically from" +" :meth:`Page.insert_text` and :meth:`Page.insert_textbox`. So you should " +"rarely need to do this yourself." +msgstr "" + +#: ../../functions.rst:753 005b7266f7284e90bab8b77be14c642e +msgid "" +"cross reference number of a font embedded in the PDF. To find a font " +":data:`xref`, use e.g. *doc.get_page_fonts(pno)* of page number *pno* and" +" take the first entry of one of the returned list entries." +msgstr "" + +#: ../../functions.rst:755 c40931be83a048c2b0e4d6547935db08 +msgid "" +"limits the number of returned entries. The default of 256 is enforced for" +" all fonts that only support 1-byte characters, so-called \"simple " +"fonts\" (checked by this method). All :ref:`Base-14-Fonts` are simple " +"fonts." +msgstr "" + +#: ../../functions.rst:758 c0afe718bd2442b18653b0b77f36b88c +msgid "" +"a list of *limit* tuples. Each character *c* has an entry *(g, w)* in " +"this list with an index of *ord(c)*. Entry *g* (integer) of the tuple is " +"the glyph id of the character, and float *w* is its normalized width. The" +" actual width for some :data:`fontsize` can be calculated as *w * " +"fontsize*. For simple fonts, the *g* entry can always be safely ignored. " +"In all other cases *g* is the basis for graphically representing *c*." +msgstr "" + +#: ../../functions.rst:760 d14f388f645f450e95a675c15496f9d0 +msgid "This function calculates the pixel width of a string called *text*::" +msgstr "" + +#: ../../functions.rst:772 8580164da36b4e0c9468ee8d665d36ac +msgid "New in version 1.14.14" +msgstr "" + +#: ../../functions.rst:774 e5ce7ef74ebc4d4f8905c40e607a49ce +msgid "" +"PDF only: Check whether the object represented by :data:`xref` is a " +":data:`stream` type. Return is ``False`` if not a PDF or if the number is" +" outside the valid xref range." +msgstr "" + +#: ../../functions.rst:776 2cbd0ce6bddd4eb7894ddab3fda4d4c8 +msgid ":data:`xref` number." +msgstr "" + +#: ../../functions.rst:778 9a6d0c88e56045e394739af6408a6b4e +msgid "" +"``True`` if the object definition is followed by data wrapped in keyword " +"pair *stream*, *endstream*." +msgstr "" + +#: ../../functions.rst:784 5b978581dd6b490e8af4afbf4586ca56 +msgid "" +"Increase the :data:`xref` by one entry and return that number. This can " +"then be used to insert a new object." +msgstr "" + +#: ../../functions.rst:786 948cbb06043d486e90adbfb3b3275fa8 +msgid "" +"int :returns: the number of the new :data:`xref` entry. Please note, that" +" only a new entry in the PDF's cross reference table is created. At this " +"point, there will not yet exist a PDF object associated with it. To " +"create an (empty) object with this number use `doc.update_xref(xref, " +"\"<<>>\")`." +msgstr "" + +#: ../../functions.rst:793 e932ac5caa9f4c298a13a6d379dd7a51 +msgid "Return length of :data:`xref` table." +msgstr "" + +#: ../../functions.rst:796 f840df5df4b545b1bbf730bf184c5803 +msgid "the number of entries in the :data:`xref` table." +msgstr "" + +#: ../../functions.rst:802 b5d9bd2f14554b25bbb8fb9470c51da6 +msgid "" +"Compute the quadrilateral of a text span extracted via options \"dict\" " +"or \"rawdict\" of :meth:`Page.get_text`." +msgstr "" + +#: ../../functions.rst:804 91a864a4261a4b1abf61f04339ba4ede +msgid "" +"`line[\"dir\"]` of the owning line. Use `None` for a span from " +":meth:`Page.get_texttrace`." +msgstr "" + +#: ../../functions.rst:805 ../../functions.rst:815 ../../functions.rst:826 +#: 7033d11e092540f4ba156c04a297c691 74f50cf2036e4339af0cf16e7378d340 +#: 994444b97874454798b14763f2d63fca +msgid "the span." +msgstr "" + +#: ../../functions.rst:806 ddc5c01bb3e44f12bf7284bf4fe74e81 +msgid "" +"the :ref:`Quad` of the span, usable for text marker annotations " +"('Highlight', etc.)." +msgstr "" + +#: ../../functions.rst:812 f9901afa0a67408ebc90c04e01c93f8a +msgid "" +"Compute the quadrilateral of a text character extracted via option " +"\"rawdict\" of :meth:`Page.get_text`." +msgstr "" + +#: ../../functions.rst:814 ../../functions.rst:825 +#: 67860855da1c47c8828ebecc90f766d6 7da81809c8ba42679d5e884d49b6878f +msgid "" +"`line[\"dir\"]` of the owning line. Use `None` for a span from " +":meth:`Page.get_texttrace`." +msgstr "" + +#: ../../functions.rst:816 131dbbd284734ed089c4778deb4dd003 +msgid "the character." +msgstr "" + +#: ../../functions.rst:817 f88cafc7c32a4d6fad1b6135cd5cc40f +msgid "" +"the :ref:`Quad` of the character, usable for text marker annotations " +"('Highlight', etc.)." +msgstr "" + +#: ../../functions.rst:823 d59e0653bc4246c7a9357ca70c5860b0 +msgid "" +"Compute the quadrilateral of a subset of characters of a span extracted " +"via option \"rawdict\" of :meth:`Page.get_text`." +msgstr "" + +#: ../../functions.rst:827 dadf644469074a32aa88fc7fdcf7698b +msgid "" +"the characters to consider. If given, the selected extraction option must" +" be \"rawdict\"." +msgstr "" + +#: ../../functions.rst:828 dfa12d94ceb3431eb63330adacb7bfe9 +msgid "" +"the :ref:`Quad` of the selected characters, usable for text marker " +"annotations ('Highlight', etc.)." +msgstr "" + +#: ../../functions.rst:834 6aa28bd6817943bfbb2746f7a6243580 +msgid "" +"Compute the quadrilateral of a subset of spans of a text line extracted " +"via options \"dict\" or \"rawdict\" of :meth:`Page.get_text`." +msgstr "" + +#: ../../functions.rst:836 78daeef8140c41a8a9c0b8b6c4532d1b +msgid "the line." +msgstr "" + +#: ../../functions.rst:837 e903ee7d5d594fc1811c896806a6bb8e +msgid "" +"a sub-list of `line[\"spans\"]`. If omitted, the full line quad will be " +"returned." +msgstr "" + +#: ../../functions.rst:838 4d44abbf27ac4dd98103b18718b1b07a +msgid "" +"the :ref:`Quad` of the selected line spans, usable for text marker " +"annotations ('Highlight', etc.)." +msgstr "" + +#: ../../functions.rst:844 4afcc06f3e38430bafe222f1079b22a0 +msgid "Detect Tesseract language support folder." +msgstr "" + +#: ../../functions.rst:846 cab287431498493d97889bd9dc044f9d +msgid "" +"This function is used to enable OCR via Tesseract even if the language " +"support folder is not specified directly or in environment variable " +"TESSDATA_PREFIX." +msgstr "" + +#: ../../functions.rst:850 9ae2a9e271bd4bee918746c9384d309b +msgid "If is set we return it directly." +msgstr "" + +#: ../../functions.rst:852 ff58521ec09244cf9af0e5556f7a846f +msgid "Otherwise we return `os.environ['TESSDATA_PREFIX']` if set." +msgstr "" + +#: ../../functions.rst:854 e6350e60bfa84e9e9bc83ba51e45b115 +msgid "" +"Otherwise we search for a Tesseract installation and return its language " +"support folder." +msgstr "" + +#: ../../functions.rst:857 0e05c86bfe6f46f1b4451934cd24174b +msgid "Otherwise we raise an exception." +msgstr "" + +#: ../../functions.rst:867 ec04b5d7ae7c4b2698bdbf79b6fee421 +msgid "" +"Return the (unique) infinite rectangle `Rect(-2147483648.0, " +"-2147483648.0, 2147483520.0, 2147483520.0)`, resp. the :ref:`IRect` and " +":ref:`Quad` counterparts. It is the largest possible rectangle: all valid" +" rectangles are contained in it." +msgstr "" + +#: ../../functions.rst:877 0089e42de5e24fdc9314358b9f612356 +msgid "" +"Return the \"standard\" empty and invalid rectangle `Rect(2147483520.0, " +"2147483520.0, -2147483648.0, -2147483648.0)` resp. quad. Its top-left and" +" bottom-right point values are reversed compared to the infinite " +"rectangle. It will e.g. be used to indicate empty bboxes in " +"`page.get_text(\"dict\")` dictionaries. There are however infinitely many" +" empty or invalid rectangles." +msgstr "" + +#: ../../functions.rst:883 fea470f568524b038bb0e30aed353ec9 +msgid "" +"Returns a dict mapping lower-case color name to `(red, green, blue)` " +"tuple, and `red`, `green`, `blue` are floats in range 0..1." +msgstr "" + +#: ../../functions.rst:888 c23cf90537d54067a5727d87647c89d2 +msgid "" +"Returns a list of `(colorname, red, green, blue)` tuples, where " +"`colorname` is upper case and `red`, `green`, `blue` are integers in " +"range 0..255." +msgstr "" + +#: ../../footer.rst:46 e369c07a6dfc4a3d9e7f48a78f52b9bf +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/glossary.mo b/docs/locales/ko/LC_MESSAGES/glossary.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/glossary.po b/docs/locales/ko/LC_MESSAGES/glossary.po new file mode 100644 index 000000000..298117da5 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/glossary.po @@ -0,0 +1,405 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 d08d3d2cd62e4347ae2805cfcc06a70f +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 739bd76d85de44ed9317676c5473c0c4 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 4c57e05fc77144dfb8faf379a03cc56b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../glossary.rst:7 28cd3665c98c4ea997db495f331f026c +msgid "Glossary" +msgstr "" + +#: ../../glossary.rst:11 586bce9bf00e4c89b0241028b3c7ff08 +msgid "" +"This is an essential general mathematical / geometrical term for " +"understanding this documentation. Please see this section for a more " +"detailed discussion: :ref:`Coordinates`." +msgstr "" + +#: ../../glossary.rst:15 6bb8cff798704bbb98656190f68b478d +msgid "A Python sequence of 6 numbers." +msgstr "" + +#: ../../glossary.rst:19 4be6452df2ab4c31adadf519dd1f3f3d +msgid "A Python sequence of 4 numbers." +msgstr "" + +#: ../../glossary.rst:23 4f04da6f55df426d9a81f7ddd5cf35a4 +msgid "A Python sequence of 4 integers." +msgstr "" + +#: ../../glossary.rst:27 0816befe649d4c23ac61285cc1d4c68a +msgid "A Python sequence of 2 numbers." +msgstr "" + +#: ../../glossary.rst:31 4b252ecf18494010ac1b4abf8318014b +msgid "A Python sequence of 4 :data:`point_like` items." +msgstr "" + +#: ../../glossary.rst:35 08979edc495d4e0c8fb3091ac014aeb6 +msgid "" +"A number of values in a PDF can inherited by objects further down in a " +"parent-child relationship. The mediabox (physical size) of pages may for " +"example be specified only once or in some node(s) of the :data:`pagetree`" +" and will then be taken as value for all *kids*, that do not specify " +"their own value." +msgstr "" + +#: ../../glossary.rst:41 bd92584d9672427a92de7ae2ca2c9ef5 +msgid "" +"A PDF array of 4 floats specifying a physical page size -- " +"(:data:`inheritable`, mandatory). This rectangle should contain all other" +" PDF -- optional -- page rectangles, which may be specified in addition:" +" CropBox, TrimBox, ArtBox and BleedBox. Please consult :ref:`AdobeManual`" +" for details. The MediaBox is the only rectangle, for which there is no " +"difference between MuPDF and PDF coordinate systems: " +":attr:`Page.mediabox` will always show the same coordinates as the " +"`/MediaBox` key in a page's object definition. For all other rectangles, " +"MuPDF transforms y coordinates such that the **top** border is the point " +"of reference. This can sometimes be confusing -- you may for example " +"encounter a situation like this one:" +msgstr "" + +#: ../../glossary.rst:43 c84f72a1ef1a493db58b9912d0b5c864 +msgid "" +"The page definition contains the following identical values: `/MediaBox [" +" 36 45 607.5 765 ]`, `/CropBox [ 36 45 607.5 765 ]`." +msgstr "" + +#: ../../glossary.rst:44 a0a14effa0694f848b4b68f6433c6e41 +msgid "" +"PyMuPDF accordingly shows `page.mediabox = Rect(36.0, 45.0, 607.5, " +"765.0)`." +msgstr "" + +#: ../../glossary.rst:45 6452ee0315854e7a8d8c7b5ceae4b2f4 +msgid "" +"**BUT:** `page.cropbox = Rect(36.0, 0.0, 607.5, 720.0)`, because the two " +"y-coordinates have been transformed (45 subtracted from both of them)." +msgstr "" + +#: ../../glossary.rst:49 54bb2fd6606f42b0b61698e8f5e4264f +msgid "" +"A PDF array of 4 floats specifying a page's visible area -- " +"(:data:`inheritable`, optional). It is the default for TrimBox, ArtBox " +"and BleedBox. If not present, it defaults to MediaBox. This value is " +"**not affected** if the page is rotated -- in contrast to " +":attr:`Page.rect`. Also, other than the page rectangle, the top-left " +"corner of the cropbox may or may not be *(0, 0)*." +msgstr "" + +#: ../../glossary.rst:54 32d13994ea71438cba097ae7ab179529 +msgid "" +"A central PDF :data:`dictionary` -- also called the \"root\" -- " +"containing document-wide parameters and pointers to many other " +"information. Its :data:`xref` is returned by " +":meth:`Document.pdf_catalog`." +msgstr "" + +#: ../../glossary.rst:58 5758183571814745904de85f3da96f2c +msgid "" +"More precisely, the **PDF trailer** contains information in " +":data:`dictionary` format. It is usually located at the file's end. In " +"this dictionary, you will find things like the xrefs of the catalog and " +"the metadata, the number of :data:`xref` numbers, etc. Here is the " +"definition of the PDF spec:" +msgstr "" + +#: ../../glossary.rst:60 0d85c5a6d7454c289824fc58d0a6fdef +msgid "" +"*\"The trailer of a PDF file enables an application reading the file to " +"quickly find the cross-reference table and certain special objects. " +"Applications should read a PDF file from its end.\"*" +msgstr "" + +#: ../../glossary.rst:62 5e0b8a538504497aa555e757cfa9f113 +msgid "" +"To access the trailer in PyMuPDF, use the usual methods " +":meth:`Document.xref_object`, :meth:`Document.xref_get_key` and " +":meth:`Document.xref_get_keys` with `-1` instead of a positive xref " +"number." +msgstr "" + +#: ../../glossary.rst:66 96ea53e1526e4f31b6a7cd5ebbeef7a7 +msgid "" +"A **content stream** is a PDF :data:`object` with an attached " +":data:`stream`, whose data consists of a sequence of instructions " +"describing the graphical elements to be painted on a page, see \"Stream " +"Objects\" on page 19 of :ref:`AdobeManual`. For an overview of the mini-" +"language used in these streams, see chapter \"Operator Summary\" on page " +"643 of the :ref:`AdobeManual`. A PDF :data:`page` can have none to many " +"contents objects. If it has none, the page is empty (but still may show " +"annotations). If it has several, they will be interpreted in sequence as " +"if their instructions had been present in one such object (i.e. like in a" +" concatenated string). It should be noted that there are more stream " +"object types which use the same syntax: e.g. appearance dictionaries " +"associated with annotations and Form XObjects." +msgstr "" + +#: ../../glossary.rst:68 789ecf52493843de99d4baf64aac0706 +msgid "PyMuPDF provides a number of methods to deal with contents of PDF pages:" +msgstr "" + +#: ../../glossary.rst:70 7af31d456e6049c781db775b0d937ce4 +msgid "" +":meth:`Page.read_contents()` -- reads and concatenates all page contents " +"into one `bytes` object." +msgstr "" + +#: ../../glossary.rst:71 ed6a3af3341c4060a1e4a75572b4ddd5 +msgid "" +":meth:`Page.clean_contents()` -- a wrapper of a MuPDF function that " +"reads, concatenates and syntax-cleans all page contents. After this, only" +" one `/Contents` object will exist. In addition, page :data:`resources` " +"will have been synchronized with it such that it will contain exactly " +"those images, fonts and other objects that the page actually references." +msgstr "" + +#: ../../glossary.rst:72 b5f192573e604b7ab3a23459f4ff8d28 +msgid "" +":meth:`Page.get_contents()` -- return a list of :data:`xref` numbers of a" +" page's :data:`contents` objects. May be empty. Use " +":meth:`Document.xref_stream()` with one of these xrefs to read the resp. " +"contents section." +msgstr "" + +#: ../../glossary.rst:73 1999ff45a4f744478c87ada7170c63a7 +msgid "" +":meth:`Page.set_contents()` -- set a page's `/Contents` key to the " +"provided :data:`xref` number." +msgstr "" + +#: ../../glossary.rst:77 a33fe5bd332e49fbac0209663f12f749 +msgid "" +"A :data:`dictionary` containing references to any resources (like images " +"or fonts) required by a PDF :data:`page` (required, inheritable, " +":ref:`AdobeManual` p. 81) and certain other objects (Form XObjects). This" +" dictionary appears as a sub-dictionary in the object definition under " +"the key */Resources*. Being an inheritable object type, there may exist " +"\"parent\" resources for all pages or certain subsets of pages." +msgstr "" + +#: ../../glossary.rst:81 d54465f90aea45f4be640dcb0dd409ab +msgid "" +"A PDF :data:`object` type, which is somewhat comparable to the same-named" +" Python notion: \"A dictionary object is an associative table containing " +"pairs of objects, known as the dictionary's entries. The first element of" +" each entry is the key and the second element is the value. The key must " +"be a name (...). The value can be any kind of object, including another " +"dictionary. A dictionary entry whose value is null (...) is equivalent to" +" an absent entry.\" (:ref:`AdobeManual` p. 18)." +msgstr "" + +#: ../../glossary.rst:83 f8dd50a4a4dd44b2ab3811dde6bd8cf3 +msgid "" +"Dictionaries are the most important :data:`object` type in PDF. Here is " +"an example (describing a :data:`page`)::" +msgstr "" + +#: ../../glossary.rst:102 b9f82bb7035946b4804cfd94101fd4c4 +msgid "" +"*Contents*, *Type*, *MediaBox*, etc. are **keys**, *40 0 R*, *Page*, *[0 " +"0 595.32 841.92]*, etc. are the respective **values**. The strings " +"*\"<<\"* and *\">>\"* are used to enclose object definitions." +msgstr "" + +#: ../../glossary.rst:104 b635f1dd09be42db81dc681669f2d25d +msgid "" +"This example also shows the syntax of **nested** dictionary values: " +"*Resources* has an object as its value, which in turn is a dictionary " +"with keys like *ExtGState* (with the value *<>*, which is " +"another dictionary), etc." +msgstr "" + +#: ../../glossary.rst:108 acf84ed282d0488ca9ec42cb7a8b05cd +msgid "" +"A PDF page is a :data:`dictionary` object which defines one page in a " +"PDF, see :ref:`AdobeManual` p. 71." +msgstr "" + +#: ../../glossary.rst:112 2e0101c6f2df4a99a2a341fe77b08849 +msgid "" +"The pages of a document are accessed through a structure known as the " +"page tree, which defines the ordering of pages in the document. The tree " +"structure allows PDF consumer applications, using only limited memory, to" +" quickly open a document containing thousands of pages. The tree contains" +" nodes of two types: intermediate nodes, called page tree nodes, and leaf" +" nodes, called page objects. (:ref:`AdobeManual` p. 75)." +msgstr "" + +#: ../../glossary.rst:114 4d06cfcc4e614225ae5861c899219585 +msgid "" +"While it is possible to list all page references in just one array, PDFs " +"with many pages are often created using *balanced tree* structures " +"(\"page trees\") for faster access to any single page. In relation to the" +" total number of pages, this can reduce the average page access time by " +"page number from a linear to some logarithmic order of magnitude." +msgstr "" + +#: ../../glossary.rst:116 01db9b917bcc4cb89215ac102dda29c9 +msgid "" +"For fast page access, MuPDF can use its own array in memory -- " +"independently from what may or may not be present in the document file. " +"This array is indexed by page number and therefore much faster than even " +"the access via a perfectly balanced page tree." +msgstr "" + +#: ../../glossary.rst:120 387b50e08c0a4411b5174a213523a1c0 +msgid "" +"Similar to Python, PDF supports the notion *object*, which can come in " +"eight basic types: boolean values (\"true\" or \"false\"), integer and " +"real numbers, strings (**always** enclosed in brackets -- either \"()\", " +"or \"<>\" to indicate hexadecimal), names (must always start with a " +"\"/\", e.g. `/Contents`), arrays (enclosed in brackets \"[]\"), " +"dictionaries (enclosed in brackets \"<<>>\"), streams (enclosed by " +"keywords \"stream\" / \"endstream\"), and the null object (\"null\") " +"(:ref:`AdobeManual` p. 13). Objects can be made identifiable by assigning" +" a label. This label is then called *indirect* object. PyMuPDF supports " +"retrieving definitions of indirect objects via their cross reference " +"number via :meth:`Document.xref_object`." +msgstr "" + +#: ../../glossary.rst:124 06fab8191ebd49d98a31a5d42c048ce5 +msgid "" +"A PDF :data:`dictionary` :data:`object` type which is followed by a " +"sequence of bytes, similar to Python *bytes*. \"However, a PDF " +"application can read a stream incrementally, while a string must be read " +"in its entirety. Furthermore, a stream can be of unlimited length, " +"whereas a string is subject to an implementation limit. For this reason, " +"objects with potentially large amounts of data, such as images and page " +"descriptions, are represented as streams.\" \"A stream consists of a " +":data:`dictionary` followed by zero or more bytes bracketed between the " +"keywords *stream* and *endstream*\"::" +msgstr "" + +#: ../../glossary.rst:135 8dc0a34bf972472abef68fc3fe378101 +msgid "" +"See :ref:`AdobeManual` p. 19. PyMuPDF supports retrieving stream content " +"via :meth:`Document.xref_stream`. Use :meth:`Document.is_stream` to " +"determine whether an object is of stream type." +msgstr "" + +#: ../../glossary.rst:139 d4686fb4f3814da3a119b81f119de382 +msgid "" +"A mathematical notion meaning a vector of norm (\"length\") 1 -- usually " +"the Euclidean norm is implied. In PyMuPDF, this term is restricted to " +":ref:`Point` objects, see :attr:`Point.unit`." +msgstr "" + +#: ../../glossary.rst:143 e286649e7ce1436db8fbb7e65637ba3a +msgid "" +"Abbreviation for cross-reference number: this is an integer unique " +"identification for objects in a PDF. There exists a cross-reference table" +" (which may physically consist of several separate segments) in each PDF," +" which stores the relative position of each object for quick lookup. The " +"cross-reference table is one entry longer than the number of existing " +"object: item zero is reserved and must not be used in any way. Many " +"PyMuPDF classes have an :data:`xref` attribute (which is zero for non-" +"PDFs), and one can find out the total number of objects in a PDF via " +":meth:`Document.xref_length` *- 1*." +msgstr "" + +#: ../../glossary.rst:148 6aa968ee6fb249d1bc62117c164aba0c +msgid "" +"When referring to font size this metric is measured in points where 1 " +"inch = 72 points." +msgstr "" + +#: ../../glossary.rst:152 8c31d4e0a1d44b928122302b18a161d4 +msgid "" +"Images and :ref:`Pixmap` objects may contain resolution information " +"provided as \"dots per inch\", dpi, in each direction (horizontal and " +"vertical). When MuPDF reads an image from a file or from a PDF object, it" +" will parse this information and put it in :attr:`Pixmap.xres`, " +":attr:`Pixmap.yres`, respectively. If it finds no meaningful information " +"in the input (like non-positive values or values exceeding 4800), it will" +" use \"sane\" defaults instead. The usual default value is 96, but it may" +" also be 72 in some cases (e.g. for JPX images)." +msgstr "" + +#: ../../glossary.rst:156 3e01cf857dca416c8faa34ba7d94265e +msgid "" +"Optional content properties dictionary - a sub :data:`dictionary` of the " +"PDF :data:`catalog`. The central place to store optional content " +"information, which is identified by the key `/OCProperties`. This " +"dictionary has two required and one optional entry: (1) `/OCGs`, " +"required, an array listing all optional content groups, (2) `/D`, " +"required, the default optional content configuration dictionary (OCCD), " +"(3) `/Configs`, optional, an array of alternative OCCDs." +msgstr "" + +#: ../../glossary.rst:161 428928e7e81c403491625f300bc7e77c +msgid "" +"Optional content configuration dictionary - a PDF :data:`dictionary` " +"inside the PDF :data:`OCPD`. It stores a setting of ON / OFF states of " +"OCGs and how they are presented to a PDF viewer program. Selecting a " +"configuration is quick way to achieve temporary mass visibility state " +"changes. After opening a PDF, the `/D` configuration of the :data:`OCPD` " +"is always activated. Viewer should offer a way to switch between the " +"`/D`, or one of the optional configurations contained in array " +"`/Configs`." +msgstr "" + +#: ../../glossary.rst:166 01fc3682e86d471d815772b433b66de6 +msgid "" +"Optional content group -- a :data:`dictionary` object used to control the" +" visibility of other PDF objects like images or annotations. " +"Independently on which page they are defined, objects with the same OCG " +"can simultaneously be shown or hidden by setting their OCG to ON or OFF. " +"This can be achieved via the user interface provided by many PDF viewers " +"(Adobe Acrobat), or programmatically." +msgstr "" + +#: ../../glossary.rst:170 63d877bcd5ef46dbb557f06da22dff6e +msgid "" +"Optional content membership dictionary -- a :data:`dictionary` object " +"which can be used like an :data:`OCG`: it has a visibility state. The " +"visibility of an OCMD is **computed:** it is a logical expression, which " +"uses the state of one or more OCGs to produce a boolean value. The " +"expression's result is interpreted as ON (true) or OFF (false)." +msgstr "" + +#: ../../glossary.rst:174 7685086584e0476aa01c94592195fd87 +msgid "" +"Some frequent character combinations are represented by their own special" +" glyphs in more advanced fonts. Typical examples are \"fi\", \"fl\", " +"\"ffi\" and \"ffl\". These compounds are called *ligatures*. In PyMuPDF " +"text extractions, there is the option to either return the corresponding " +"unicode unchanged, or split ligatures up into their constituent parts: " +"\"fi\" ==> \"f\" + \"i\", etc." +msgstr "" + +#: ../../footer.rst:46 55f27ea4f801402884fd2fc89352730f +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/header-404.mo b/docs/locales/ko/LC_MESSAGES/header-404.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/header-404.po b/docs/locales/ko/LC_MESSAGES/header-404.po new file mode 100644 index 000000000..5958421b3 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/header-404.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header-404.rst:-1 eeba22b6b6f24accb7aaaf2ca8de91f4 +msgid "Artifex" +msgstr "" + +#: ../../header-404.rst:-1 32c66b9fa56c4fa3b5b6abcd9f3abcfc +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header-404.rst:-1 6b881eb1ccc64d55990a936130aecf2d +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/header.mo b/docs/locales/ko/LC_MESSAGES/header.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/header.po b/docs/locales/ko/LC_MESSAGES/header.po new file mode 100644 index 000000000..ca4c3e10b --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/header.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 2f3a42d58aed4c8d919199a1628e46e5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 8c5d0e6b475d4acbbd44f0169353b949 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 8a0b412ed68e4084a844b1d3978b547f +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.mo b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po new file mode 100644 index 000000000..f391026a3 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po @@ -0,0 +1,255 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 21b5c4028adc463abcc84975940e6301 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 ee82d615395c4e24b8b07395ed871d70 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 1d5b2478c53f433882bce199582d444d +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../how-to-open-a-file.rst:7 5ea3d22849e641d897ccb82f8a12500f +msgid "Opening Files" +msgstr "" + +#: ../../how-to-open-a-file.rst:16 395abd8299ba47be838498d680488494 +msgid "Supported File Types" +msgstr "" + +#: ../../how-to-open-a-file.rst:21 cb3463a996b24a14a008c2fc0ad2b685 +msgid "PyMuPDF" +msgstr "" + +#: ../../how-to-open-a-file.rst:23 036ac377808741358875a6692e0b2d95 +msgid "|PyMuPDF| can open files other than just |PDF|." +msgstr "" + +#: ../../how-to-open-a-file.rst:25 ../../how-to-open-a-file.rst:38 +#: 1a17fc4b2c2e43a9a47e3a2a1ed82bd4 40ef4134dff248bc8869aed36fd176fc +msgid "The following file types are supported:" +msgstr "" + +#: ../../how-to-open-a-file.rst:34 fa9ae965eea142478505848892067bb0 +msgid "PyMuPDF Pro" +msgstr "" + +#: ../../how-to-open-a-file.rst:36 c4725d269a0e41b0867c5b6b16b8960b +msgid "|PyMuPDF Pro| can open Office files." +msgstr "" + +#: ../../how-to-open-a-file.rst:43 d91d49bc138843188ab0077259cd82ae +msgid "**DOC/DOCX**" +msgstr "" + +#: ../../how-to-open-a-file.rst:44 6ff3d492743f45da9b9967b7ac205f1c +msgid "**XLS/XLSX**" +msgstr "" + +#: ../../how-to-open-a-file.rst:45 4c317c161ef64bebb742fc17e8e5c6d3 +msgid "**PPT/PPTX**" +msgstr "" + +#: ../../how-to-open-a-file.rst:46 dfd0df787a6d4a8bada3b55675495889 +msgid "**HWP/HWPX**" +msgstr "" + +#: ../../how-to-open-a-file.rst:63 61701c1d1007436987106ec058719b82 +msgid "How to Open a File" +msgstr "" + +#: ../../how-to-open-a-file.rst:65 9dd2157acd454f2ea9e62168276399c2 +msgid "To open a file, do the following:" +msgstr "" + +#: ../../how-to-open-a-file.rst:72 284b59b0b7ca41789da44c7d61f81fc7 +msgid "" +"The above creates a :ref:`Document`. The instruction `doc = " +"pymupdf.Document(\"a.pdf\")` does exactly the same. So, `open` is just a " +"convenient alias and you can find its full API documented in that " +"chapter." +msgstr "" + +#: ../../how-to-open-a-file.rst:76 1a5ad0264ff94231899c2caafe461a22 +msgid "" +"File Recognizer: Opening with :index:`a Wrong File Extension `" +msgstr "" + +#: ../../how-to-open-a-file.rst:78 90b4fc7ee95f43f49a70a15c890eb8b8 +msgid "" +"If you have a document with a wrong file extension for its type, do not " +"worry: it will still be opened correctly, thanks to the integrated file " +"\"content recognizer\"." +msgstr "" + +#: ../../how-to-open-a-file.rst:80 792fc8fc530d4591b0673684e9d0b274 +msgid "" +"This component looks at the actual data in the file using a number of " +"heuristics -- independent of the file extension. This of course is also " +"true for file names **without** an extension." +msgstr "" + +#: ../../how-to-open-a-file.rst:82 8eec48ad8d35400f93aa9ef384f1baee +msgid "Here is a list of details about how the file content recognizer works:" +msgstr "" + +#: ../../how-to-open-a-file.rst:84 999889fc95024292bbe0dc81938a321a +msgid "" +"When opening from a file name, use the ``filetype`` parameter if your " +"file format cannot be determined by content inspection. This is for " +"instance the case for all text files: \"txt\", \"html\", \"xml\" or " +"source files. If the file extension is missing or wrong or the file " +"resides in memory, the ``filetype`` must be used. File formats that can " +"successfully be recognized will be opened even without or wrong " +"extensions, and the ``filetype`` paraneter will be ignored." +msgstr "" + +#: ../../how-to-open-a-file.rst:86 1ac5dd5257eb4ed280e6ec3ed082da31 +msgid "" +"Files based on text content do not contain unambiguously recognizable " +"internal structures. This is true for source files (Python, C, etc.) but " +"also HTML, XML and so on. Here, the file extensions and the ``filetype`` " +"parameter continue to play a role and are used to create a \"Tex\" / " +"\"HTML\" / ... document. Correspondingly, text files with other / no " +"extensions, can successfully be opened using ``filetype``." +msgstr "" + +#: ../../how-to-open-a-file.rst:92 b9b6d23c55ea4547afea0a22f2d79c6d +msgid "Opening Remote Files" +msgstr "" + +#: ../../how-to-open-a-file.rst:95 3b43bf59bfc148328c683743eac1329f +msgid "" +"For remote files on a server (i.e. non-local files), you will need to " +"*stream* the file data to |PyMuPDF|." +msgstr "" + +#: ../../how-to-open-a-file.rst:97 34b7bf2e937a4250810966ed193bdfc8 +msgid "" +"For example use the `requests " +"`_ library as follows:" +msgstr "" + +#: ../../how-to-open-a-file.rst:110 f259d8091f7242e7bdd2c51ebdd3f925 +msgid "Opening Files from Cloud Services" +msgstr "" + +#: ../../how-to-open-a-file.rst:112 21d40cb6351a4c69bc14196e1eb014ea +msgid "" +"For further examples which deal with files held on typical cloud services" +" please see these `Cloud Interactions code snippets " +"`_." +msgstr "" + +#: ../../how-to-open-a-file.rst:120 de92d6a4c46143de86751bded4adc336 +msgid "Opening Django Files" +msgstr "" + +#: ../../how-to-open-a-file.rst:122 2a24401c8daf4ec1967ffd20ab41ce1c +msgid "" +"Django implements a `File Storage API " +"`_ to store " +"files. The default is the `FileSystemStorage " +"`_, but the `django-storages `_ library provides a number" +" of other storage backends." +msgstr "" + +#: ../../how-to-open-a-file.rst:124 ce91bc54879b4e0caad6216633c87800 +msgid "" +"You can open the file, move the contents into memory, then pass the " +"contents to |PyMuPDF| as a stream." +msgstr "" + +#: ../../how-to-open-a-file.rst:139 619bd327f13f4ed1a9204d62ce0a0e40 +msgid "Please note that if the file you open is large, you may run out of memory." +msgstr "" + +#: ../../how-to-open-a-file.rst:141 e974ef8989724d7ca39ae4e2f528060d +msgid "" +"The File Storage API works well if you're using different storage " +"backends in different environments. If you're only using the " +"`FileSystemStorage`, you can simply use the `obj.file.name` to open the " +"file directly with |PyMuPDF| as shown in an earlier example." +msgstr "" + +#: ../../how-to-open-a-file.rst:149 11fadcb68ef146fc93ca9f4473e140a5 +msgid "Opening Files as Text" +msgstr "" + +#: ../../how-to-open-a-file.rst:152 79658fdcc60c4f62821491708e3874a6 +msgid "" +"|PyMuPDF| has the capability to open any plain text file as a document. " +"In order to do this you should provide the `filetype` parameter for the " +"`pymupdf.open` function as `\"txt\"`." +msgstr "" + +#: ../../how-to-open-a-file.rst:159 d72a0b8f986843488dfc6ddc257e4f45 +msgid "" +"In this way you are able to open a variety of file types and perform the " +"typical **non-PDF** specific features like text searching, text " +"extracting and page rendering. Obviously, once you have rendered your " +"`txt` content, then saving as |PDF| or merging with other |PDF| files is " +"no problem." +msgstr "" + +#: ../../how-to-open-a-file.rst:163 25cb1a49799b43669b7c520e52fc2e46 +msgid "Examples" +msgstr "" + +#: ../../how-to-open-a-file.rst:167 df4ce47e55a94298b344689b280a64df +msgid "Opening a `C#` file" +msgstr "" + +#: ../../how-to-open-a-file.rst:176 2f20ca6b671845fca3ae2bceeb25eebd +msgid "Opening an ``XML`` file" +msgstr "" + +#: ../../how-to-open-a-file.rst:184 1c25e62b57d843c9b5b8122f59295144 +msgid "Opening a `JSON` file" +msgstr "" + +#: ../../how-to-open-a-file.rst:191 687e69a017bb48b682d8b720ad323f52 +msgid "And so on!" +msgstr "" + +#: ../../how-to-open-a-file.rst:193 f6ae4e85cdb1469bbf04502e1bb02ccd +msgid "" +"As you can imagine many text based file formats can be *very simply " +"opened* and *interpreted* by |PyMuPDF|. This can make data analysis and " +"extraction for a wide range of previously unavailable files possible." +msgstr "" + +#: ../../footer.rst:46 6894d49c24fc4cfa8f9d99a9257edfdf +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/identity.mo b/docs/locales/ko/LC_MESSAGES/identity.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/identity.po b/docs/locales/ko/LC_MESSAGES/identity.po new file mode 100644 index 000000000..5df896c76 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/identity.po @@ -0,0 +1,64 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 74c1aedfabcd4a5c96f4c2597285c328 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 6b94c7df538e4108a3a5ad33241349ec +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 23ee2c9ef17542ffbf5210e348e9de6a +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../identity.rst:7 ec6871dd23a6408aba45460204127d54 +msgid "Identity" +msgstr "" + +#: ../../identity.rst:9 776ab5a8eb3b4fd5ac5d1b88b17d507a +msgid "" +"Identity is a :ref:`Matrix` that performs no action -- to be used " +"whenever the syntax requires a matrix, but no actual transformation " +"should take place. It has the form *pymupdf.Matrix(1, 0, 0, 1, 0, 0)*." +msgstr "" + +#: ../../identity.rst:11 2260793ef04b4f739e2e3ba60744f1c2 +msgid "" +"Identity is a constant, an \"immutable\" object. So, all of its matrix " +"properties are read-only and its methods are disabled." +msgstr "" + +#: ../../identity.rst:13 66677799dfa547a68a4f708a29d071a0 +msgid "" +"If you need a **mutable** identity matrix as a starting point, use one of" +" the following statements::" +msgstr "" + +#: ../../footer.rst:46 62e975eb99a4452285d40da0e91fc76e +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/index.mo b/docs/locales/ko/LC_MESSAGES/index.mo new file mode 100644 index 0000000000000000000000000000000000000000..6768f65965b3ce15da8690b4052fc49c88448d36 GIT binary patch literal 1258 zcmb7DTW=dh6kbGm@gwRZ59bM$G_$@$rPb!5y0zU}vJ)#cAb25Td+c4h-dWAgRxI*E zP`6T*q@t(|H6jkKNVzEwZqr67;veuI_yOMWf8ea`)ZqrhSF@3sH#Ww>9ko(g#SNAU#I<1Jc!V_^Fzf z2Mu2L+su(vTHJv;zr%zF)V3jJQ00N|g5=Pd${k(%gxPi8W@Bw7DEpOMp`&$9Il!P4 zOsi!Qmx(49ZR*q+%*|B-X>w<74s5F?s0aZ6L4!&P>`N(VJuYA#s6*|*v%Gn%#hK=W z_W^@gu5VAOmEz3Z4O~m-qLp+7|AN)!sdEy&b*(Z{ zl465=Jh@5(rqLm-XFk*~C)SzEg(PLKWi`k(zvYoCHy}}2tCH)2je8|IDwzS9ROS*% zr%C1#WEPBtg^MXXXh_!C9V;Hw)b7)KcAb>hNG=OE*Nk%U;%95C`9z6&l2iqCJiI_I z3@Ch5D#2>DoQI`+Ia@4U&E|6J`CGSE(9~)9w1p{e^EU#iGTM$cuv98twZ~1bBr3Kq zs7(quVb1`^9gE&_dJ!hahH6FwMVZKH4i>iDrb-kXQ$ zI8Cq-eod@-Fp!UCwJ)^B>aW2*08y>wH?RMkP!=t_mpW~mi&nfEti9w^2o#@BI z=;uSVfA6$`*_(`=|L6M0ZI8MqYU^OMb1!<>#oVy*-yZ, 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../index.rst:39 952c2d69888a45e9b0da6e043ddab148 +msgid "About" +msgstr "" + +#: ../../index.rst:50 83a8e5dd2a9b4d099b68e52044113c27 +msgid "User Guide" +msgstr "" + +#: ../../index.rst:62 d17242cca69d431c8485f8ab5b729f2e +msgid "How to Guide" +msgstr "" + +#: ../../index.rst:69 7466b8745c424beaac09483b379e1f16 +msgid "API Reference" +msgstr "" + +#: ../../index.rst:82 b24fcc31226540bc96465c601658ca98 +msgid "Other" +msgstr "" + +#: ../../header.rst:-1 43d585d8a38b489ca647a0f6d7ee01dd +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 6af6f9115aea4bcba5a905e65f50def7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 d0fa97b60e13424eb62997400c445a63 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../index.rst:20 3275915a8da84e58bd47e046c54375d2 +msgid "Welcome to |PyMuPDF|" +msgstr "PyMuPDF에 오신 것을 환영합니다" + +#: ../../index.rst:22 443397ce6ddd47f5b1d2c0008cd4b639 +msgid "" +"|PyMuPDF| is a high-performance **Python** library for data extraction, " +"analysis, conversion & manipulation of |PDF| (and other) documents." +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작 기능을 제공하는 고성능 **Python** 라이브러리입니다." + +#: ../../index.rst:24 b09454f69e4247b09e28b65c7744f34a +msgid "" +"|PyMuPDF| is hosted on `GitHub `_ and" +" registered on `PyPI `_." +msgstr "|PyMuPDF| 는 `GitHub `_ 에 호스팅되고 `PyPI `_ 에 등록되어 있습니다." + +#: ../../footer.rst:46 ../../index.rst:35 9c0239a10d754ddea28f6b0d7597c26f +#: d10c71ec0c454e0899fc16f6f34f2a83 +msgid "This documentation covers all versions up to |version|." +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." + diff --git a/docs/locales/ko/LC_MESSAGES/installation.mo b/docs/locales/ko/LC_MESSAGES/installation.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/installation.po b/docs/locales/ko/LC_MESSAGES/installation.po new file mode 100644 index 000000000..39cdbd15d --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/installation.po @@ -0,0 +1,569 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 bc107b9bc1f9411db1b06a2b9a73ce64 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 d7d772a2db0344ea81f7e2d671249a0d +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 3d75e7a13d97463585cb89b8a4cf50e2 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../installation.rst:6 ../../installation.rst:31 +#: 0e5b938092394f76bb79bd60b8b7bcc8 362130f7ee184277a844a2094e73b166 +msgid "Installation" +msgstr "" + +#: ../../installation.rst:9 5756ccf1a8cf47d489d528757b4ff1ed +msgid "Requirements" +msgstr "" + +#: ../../installation.rst:11 59418d8369d141eb9ff64af78a5cd0d1 +msgid "" +"All the examples below assume that you are running inside a Python " +"virtual environment. See: https://docs.python.org/3/library/venv.html for" +" details. We also assume that `pip` is up to date." +msgstr "" + +#: ../../installation.rst:15 c0c567ab87e545dcb02f98a499237cac +msgid "For example:" +msgstr "" + +#: ../../installation.rst:17 3566b454695c4d74836795503dc32f88 +msgid "Windows::" +msgstr "" + +#: ../../installation.rst:23 30d9561c3bbd45f79998c3672a481495 +msgid "Linux, MacOS::" +msgstr "" + +#: ../../installation.rst:33 a214d3639973479385b1f7fb97f49eb2 +msgid "|PyMuPDF| should be installed using pip with::" +msgstr "" + +#: ../../installation.rst:37 ea5698bf08544d95ab4dfd879681ba77 +msgid "" +"This will install from a Python wheel if one is available for your " +"platform." +msgstr "" + +#: ../../installation.rst:41 41710c287f054c699809c8bb0c6be619 +msgid "Installation when a suitable wheel is not available" +msgstr "" + +#: ../../installation.rst:43 edcf8eac64af49bb9cbe25cbe7de7c5a +msgid "" +"If a suitable Python wheel is not available, pip will automatically build" +" from source using a Python sdist." +msgstr "" + +#: ../../installation.rst:46 10c33b59ba9e4c868ae010f2a7028814 +msgid "**This requires C/C++ development tools to be installed**:" +msgstr "" + +#: ../../installation.rst:48 5ad6beabf5d6474dab9c471133784cb8 +msgid "On Windows:" +msgstr "" + +#: ../../installation.rst:51 c850480032484111ad409c8a6d7cc794 +msgid "" +"Install Visual Studio 2019. If not installed in a standard location, set " +"environmental variable `PYMUPDF_SETUP_DEVENV` to the location of the " +"`devenv.com` binary." +msgstr "" + +#: ../../installation.rst:56 65947958187d45018d139034858bc083 +msgid "" +"Having other installed versions of Visual Studio, for example Visual " +"Studio 2022, can cause problems because one can end up with MuPDF and " +"PyMuPDF code being compiled with different compiler versions." +msgstr "" + +#: ../../installation.rst:60 9e448ffec0c64a40968de3839f6b2855 +msgid "The build will automatically download and build MuPDF." +msgstr "" + +#: ../../installation.rst:66 9ea3e134885d4f05a4c3e2a4f5bc1095 +msgid "Problems after installation" +msgstr "" + +#: ../../installation.rst:68 ../../installation.rst:117 +#: 0d4df66268c544a69e1dba24527b39dc da5b4f00d11844939c6ba2c50436cde5 +msgid "On Windows, Python error::" +msgstr "" + +#: ../../installation.rst:72 05623aa04f7948f1928a5424140c8d9d +msgid "" +"This has been occasionally seen if `MSVCP140.dll` is missing, and appears" +" to be caused by a bug in some versions (2015-2017) of `Microsoft Visual " +"C++ Redistributables`." +msgstr "" + +#: ../../installation.rst:76 9472b21821c84665a04e27961520861f +msgid "" +"It is recommended to search for `MSVCP140.dll` in https://msdn.com to " +"find instructions for how to reinstall it. For example " +"https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist has " +"permalinks to the latest supported versions." +msgstr "" + +#: ../../installation.rst:81 3007dd23091741939a53721b7d628b74 +msgid "See https://github.com/pymupdf/PyMuPDF/issues/2678 for more details." +msgstr "" + +#: ../../installation.rst:84 c9a39b500d3d45a1b18d1c3f00c2982e +msgid "Python error::" +msgstr "" + +#: ../../installation.rst:88 53589cbbfa6944378c7034ed948fa3b4 +msgid "" +"This can happen if PyMuPDF's legacy name `fitz` is used (for example " +"`import fitz` instead of `import pymupdf`), and an unrelated Python " +"package called `fitz` (https://pypi.org/project/fitz/) is installed." +msgstr "" + +#: ../../installation.rst:92 f32677d324ec471f8b25f4becffc62f5 +msgid "" +"The fitz package appears to be no longer maintained (the latest release " +"is from 2017), but unfortunately it does not seem possible to remove it " +"from pypi.org. It does not even work on its own, as well as breaking the " +"use of PyMuPDF's legacy name." +msgstr "" + +#: ../../installation.rst:97 31c58415e64d4285b88f8e33a6d97802 +msgid "There are a few ways to avoid this problem:" +msgstr "" + +#: ../../installation.rst:100 3f88b66501a544699823982b2254031f +msgid "" +"Use `import pymupdf` instead of `import fitz`, and update one's code to " +"match." +msgstr "" + +#: ../../installation.rst:103 eb2fe6e966f44853b6678fc67361a0c0 +msgid "Or uninstall the `fitz` package and reinstall PyMuPDF::" +msgstr "" + +#: ../../installation.rst:108 f733312e30d5442d8681d28dfc2e0418 +msgid "Or use `import pymupdf as fitz`. However this has not been well tested." +msgstr "" + +#: ../../installation.rst:110 d2942ed579c547888ca1290602ed28cc +msgid "With Jupyter labs on Apple Silicon (arm64), Python error::" +msgstr "" + +#: ../../installation.rst:114 3dedae1d6af9447eb2192ed96052aa90 +msgid "" +"This appears to be a problem in Jupyter labs; see: " +"https://github.com/pymupdf/PyMuPDF/issues/3643#issuecomment-2210588778." +msgstr "" + +#: ../../installation.rst:121 7bd3b3ebec5f4f07900684f56429ad36 +msgid "" +"This was reported 2025-03-26 in " +"https://github.com/pymupdf/PyMuPDF/issues/4405." +msgstr "" + +#: ../../installation.rst:123 b6139c99d78e45a6a9105ecc8404f710 +msgid "The fix appears to be to install the latest `VC_redist.x64.exe`." +msgstr "" + +#: ../../installation.rst:127 bccf958282944bd4ac99d1ccf70707d4 +msgid "Notes" +msgstr "" + +#: ../../installation.rst:130 61583f96dcfd4261a2c77d364470a2ac +msgid "Wheels are available for the following platforms:" +msgstr "" + +#: ../../installation.rst:132 182364ca9ac94666825e7076e6d26a82 +msgid "Windows 32-bit Intel." +msgstr "" + +#: ../../installation.rst:133 005535b4e858480eb22fb9ed70cd49fe +msgid "Windows 64-bit Intel." +msgstr "" + +#: ../../installation.rst:134 7687fad16e9e41379221c5187c01a9f6 +msgid "Linux 64-bit Intel." +msgstr "" + +#: ../../installation.rst:135 e8bae64d60a44c078ddab450469e771d +msgid "Linux 64-bit ARM." +msgstr "" + +#: ../../installation.rst:136 2064ef5679e64d3db0b45c1dfbdff952 +msgid "MacOS 64-bit Intel." +msgstr "" + +#: ../../installation.rst:137 2190d152d5d0476b86a7e483d9bf4e00 +msgid "MacOS 64-bit ARM." +msgstr "" + +#: ../../installation.rst:139 5ba4832bb0ca40c3a6f960f5b5665e84 +msgid "Details:" +msgstr "" + +#: ../../installation.rst:141 41c9bfb953b447c484a012628de54f36 +msgid "We release a single wheel for each of the above platforms." +msgstr "" + +#: ../../installation.rst:144 8cf71ef8029a4d07ada650d699bfd1fc +msgid "" +"Each wheel uses the Python Stable ABI of the current oldest supported " +"Python version (currently 3.10), and so works with all later Python " +"versions, including new Python releases." +msgstr "" + +#: ../../installation.rst:149 85f0cb2340464eacb0b93de71ce3a42b +msgid "" +"Wheels are tested on all Python versions currently marked as " +"\"Supported\" on https://devguide.python.org/versions/, currently " +"|python_versions|." +msgstr "" + +#: ../../installation.rst:153 b10deebc967f4ab8bdb0f24ad98ed832 +msgid "" +"Wheels are not available for Python installed with `Chocolatey " +"`_ on Windows. Instead install Python using the " +"Windows installer from the python.org website, see: " +"http://www.python.org/downloads" +msgstr "" + +#: ../../installation.rst:159 624bcf09993d4be0ae0f8a75b8353859 +msgid "" +"Wheels are not available for Linux-aarch64 with `Musl libc " +"`_ (For example `Alpine Linux " +"`_ on aarch64), and building from source is " +"known to fail." +msgstr "" + +#: ../../installation.rst:164 efeb850ab27c435e9bdc7b4bfcce4292 +msgid "" +"There are no **mandatory** external dependencies. However, some optional " +"feature are available only if additional components are installed:" +msgstr "" + +#: ../../installation.rst:166 112f6dc0117840bb96de1ccb40383a6e +msgid "" +"`Pillow `_ is required for " +":meth:`Pixmap.pil_save` and :meth:`Pixmap.pil_tobytes`." +msgstr "" + +#: ../../installation.rst:167 1ee77df6b8b94e6798a002846af1766e +msgid "" +"`fontTools `_ is required for " +":meth:`Document.subset_fonts`." +msgstr "" + +#: ../../installation.rst:168 28cbd6c15f344131b911099e680559b0 +msgid "" +"`pymupdf-fonts `_ is a " +"collection of nice fonts to be used for text output methods." +msgstr "" + +#: ../../installation.rst:170 4e52c3cf248c4abcb79594a420fd423f +msgid "" +"`Tesseract-OCR `_ for optical" +" character recognition in images and document pages. Tesseract is " +"separate software, not a Python package. To enable OCR functions in " +"PyMuPDF, Tesseract must be installed and the `tessdata` folder name " +"specified; see below." +msgstr "" + +#: ../../installation.rst:176 c26a998174ff490b98bd7883858b8b37 +msgid "" +"You can install these additional components at any time -- before or " +"after installing PyMuPDF. PyMuPDF will detect their presence during " +"import or when the respective functions are being used." +msgstr "" + +#: ../../installation.rst:180 06f197dc89334f00b8fde2aa343e6a2f +msgid "Build and install from a local PyMuPDF source tree" +msgstr "" + +#: ../../installation.rst:182 a5b05e1ca807403ba4f04f8b040f4089 +msgid "Initial setup:" +msgstr "" + +#: ../../installation.rst:184 6544cbacb1694401940667fbf45ebbe0 +msgid "Install C/C++ development tools as described above." +msgstr "" + +#: ../../installation.rst:185 0645317ab66746168a76c49a26e93d39 +msgid "Enter a Python venv and update pip, as described above." +msgstr "" + +#: ../../installation.rst:187 82271eef944e4faf817e14c489cd2c16 +msgid "Get a PyMuPDF source tree:" +msgstr "" + +#: ../../installation.rst:189 3c67a60c157048679a1dafd0e6abe5fb +msgid "Clone the PyMuPDF git repository::" +msgstr "" + +#: ../../installation.rst:194 7b0c1e0a13d44979ab25c04feb345ad1 +msgid "" +"Or download and extract a `.zip` or `.tar.gz` source release from " +"https://github.com/pymupdf/PyMuPDF/releases." +msgstr "" + +#: ../../installation.rst:197 9edcc8838b654d3a9e1882ee8edefa4c +msgid "Then one can build PyMuPDF in two ways:" +msgstr "" + +#: ../../installation.rst:199 575e45b815c94f7cad04f1b45e7c3d7f +msgid "Build and install PyMuPDF with default MuPDF version::" +msgstr "" + +#: ../../installation.rst:203 bb7099833f204ff3829afd0cd54324cf +msgid "" +"This will automatically download a specific hard-coded MuPDF source " +"release, and build it into PyMuPDF." +msgstr "" + +#: ../../installation.rst:206 86e76ec90c1c4d7a89dcb112d69ccbba +msgid "Or build and install PyMuPDF using a local MuPDF source tree:" +msgstr "" + +#: ../../installation.rst:208 b9853c693d1f49358428f38af93edc33 +msgid "Clone the MuPDF git repository::" +msgstr "" + +#: ../../installation.rst:213 854b5ebfeb9847efb51d37d0f3e4c259 +msgid "" +"Build PyMuPDF, specifying the location of the local MuPDF tree with the " +"environmental variables `PYMUPDF_SETUP_MUPDF_BUILD`::" +msgstr "" + +#: ../../installation.rst:218 24b5cda1241e4f36b5aaf31c8df91447 +msgid "" +"Also, one can build for different Python versions in the same PyMuPDF " +"tree:" +msgstr "" + +#: ../../installation.rst:221 fc0b1a2699064aaaa377451775502e20 +msgid "" +"PyMuPDF will build for the version of Python that is being used to run " +"`pip`. To run `pip` with a specific Python version, use `python -m pip` " +"instead of `pip`." +msgstr "" + +#: ../../installation.rst:225 dd80aa73dedb4313a237f8c77a2d783d +msgid "So for example on Windows one can build different versions with::" +msgstr "" + +#: ../../installation.rst:229 4fbc355486c04e7fb88bcdd8ffae7059 +msgid "or::" +msgstr "" + +#: ../../installation.rst:235 207c24c76f364447839aefe03523527b +msgid "Running tests" +msgstr "" + +#: ../../installation.rst:237 052b595cbe1448d79c441e326e94f9d7 +msgid "" +"Having a PyMuPDF tree available allows one to run PyMuPDF's `pytest` test" +" suite::" +msgstr "" + +#: ../../installation.rst:246 795e4545d04f4e04baa8a0527281f16e +msgid "Notes about using a non-default MuPDF" +msgstr "" + +#: ../../installation.rst:248 9a130c5a8a0946668b8885f28af8aa04 +msgid "" +"Using a non-default build of MuPDF by setting environmental variable " +"`PYMUPDF_SETUP_MUPDF_BUILD` can cause various things to go wrong and so " +"is not generally supported:" +msgstr "" + +#: ../../installation.rst:252 79b112fde2cc4475bbef94325d535a3d +msgid "" +"If MuPDF's major version number differs from what PyMuPDF uses by " +"default, PyMuPDF can fail to build, because MuPDF's API can change " +"between major versions." +msgstr "" + +#: ../../installation.rst:256 26963aaabb354a0fb893981e3cd6b8d0 +msgid "" +"Runtime behaviour of PyMuPDF can change because MuPDF's runtime behaviour" +" changes between different minor releases. This can also break some " +"PyMuPDF tests." +msgstr "" + +#: ../../installation.rst:260 cf6ea4f83bfa409381276082a6a8bdf9 +msgid "" +"If MuPDF was built with its default config instead of PyMuPDF's " +"customised config (for example if MuPDF is a system install), it is " +"possible that `tests/test_textbox.py:test_textbox3()` will fail. One can " +"skip this particular test by adding `-k 'not test_textbox3'` to the " +"`pytest` command line." +msgstr "" + +#: ../../installation.rst:268 700f4d8e58e84935b6c6975860df3b8f +msgid "Official PyMuPDF Linux wheels may not install on older Linux systems" +msgstr "" + +#: ../../installation.rst:270 b47547ab827c4869a01099c6505cf69a +msgid "Releases of PyMuPDF are incompatible with older Linux systems." +msgstr "" + +#: ../../installation.rst:272 808eb6388cc546d782e08fad72571c1d +msgid "" +"For example as of 2025-09-03, `pip install pymupdf` does not work on some" +" AWS Lambda systems - see " +"https://github.com/pymupdf/PyMuPDF/discussions/4631." +msgstr "" + +#: ../../installation.rst:275 debea54d4d7a43c2878628b326c0c3f0 +msgid "" +"This is because official PyMuPDF Linux wheels are built with a version of" +" glibc determined by the current Python manylinux environment. These " +"wheels are incompatible with Linux systems that have an older glibc." +msgstr "" + +#: ../../installation.rst:279 bf75483c6b084df08b1cc5bd8206d1bf +msgid "" +"The official Python manylinux environment is updated periodically to use " +"newer glibc versions, so new releases of PyMuPDF become increasingly " +"incompatible with older Linux systems." +msgstr "" + +#: ../../installation.rst:283 91117ed642e046819ecc665f9b6c9b50 +msgid "" +"There is nothing that can be done about this, other than updating older " +"Linux systems, or building PyMuPDF locally from source." +msgstr "" + +#: ../../installation.rst:286 e7b222da2a044c2fa1eedf9c819d97ca +msgid "" +"For more details, please see: `Python Packaging Authority " +"`_." +msgstr "" + +#: ../../installation.rst:290 4adbb8931dfd4590a44a57ffb3936e97 +msgid "Packaging" +msgstr "" + +#: ../../installation.rst:292 53c33343b4c24290ad643762f5bbb050 +msgid "See :doc:`packaging`." +msgstr "" + +#: ../../installation.rst:296 477e709115dd4d119aea37fb3a68a54b +msgid "Using with Pyodide" +msgstr "" + +#: ../../installation.rst:298 28b8424d39f448fd863709fd16271d9a +msgid "See :doc:`pyodide`." +msgstr "" + +#: ../../installation.rst:304 05d1ad76d8ff49d8b8be1c318e026ccb +msgid "Enabling Integrated OCR Support" +msgstr "" + +#: ../../installation.rst:306 1088128a9ea343a09d2433086fcee140 +msgid "" +"If you do not intend to use this feature, skip this step. Otherwise, it " +"is required for both installation paths: **from wheels and from " +"sources.**" +msgstr "" + +#: ../../installation.rst:308 18290d46b0854568b242288afd51a0da +msgid "" +"PyMuPDF will already contain all the logic to support OCR functions. But " +"it additionally does need `Tesseract’s language support data " +"`_." +msgstr "" + +#: ../../installation.rst:310 0cbfeba7ee2e4382baa33ea4562e36c3 +msgid "" +"If not specified explicitly, PyMuPDF will attempt to find the installed " +"Tesseract's tessdata, but this should probably not be relied upon." +msgstr "" + +#: ../../installation.rst:313 340c284211c64d04a0a7705bbaed97a1 +msgid "" +"Otherwise PyMuPDF requires that Tesseract's language support folder is " +"specified explicitly either in PyMuPDF OCR functions' `tessdata` " +"arguments or `os.environ[\"TESSDATA_PREFIX\"]`." +msgstr "" + +#: ../../installation.rst:317 4050e5d26f8d4fcebd4429bf4468f2c1 +msgid "So for a working OCR functionality, make sure to complete this checklist:" +msgstr "" + +#: ../../installation.rst:319 ae04b692262d427da4c557773bbb6331 +msgid "" +"Locate Tesseract's language support folder. Typically you will find it " +"here:" +msgstr "" + +#: ../../installation.rst:321 518b279edc7f426199e22b43bb47488e +msgid "Windows: `C:/Program Files/Tesseract-OCR/tessdata`" +msgstr "" + +#: ../../installation.rst:322 2829c0e448b44e639344346371835824 +msgid "Unix systems: `/usr/share/tesseract-ocr/4.00/tessdata`" +msgstr "" + +#: ../../installation.rst:324 d8669511863246a096ce609ebddc096b +msgid "Specify the language support folder when calling PyMuPDF OCR functions:" +msgstr "" + +#: ../../installation.rst:326 2defdb35431444ab8cb2a6832cb3cc88 +msgid "Set the `tessdata` argument." +msgstr "" + +#: ../../installation.rst:327 eda39b64a6ca464d8c23f1eeec197a8f +msgid "Or set `os.environ[\"TESSDATA_PREFIX\"]` from within Python." +msgstr "" + +#: ../../installation.rst:328 d711c5765afc4c0cafadc80892c613e9 +msgid "" +"Or set environment variable `TESSDATA_PREFIX` before running Python, for " +"example:" +msgstr "" + +#: ../../installation.rst:330 adb02ed301f749c0b70fa768f6279980 +msgid "" +"Windows: `setx TESSDATA_PREFIX \"C:/Program Files/Tesseract-" +"OCR/tessdata\"`" +msgstr "" + +#: ../../installation.rst:331 a7d44e96bab64a1492085fe6649aa5ba +msgid "" +"Unix systems: `declare -x TESSDATA_PREFIX=/usr/share/tesseract-" +"ocr/4.00/tessdata`" +msgstr "" + +#: ../../footer.rst:46 04ec8ea4e7e743ab9f77de31a752358a +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/irect.mo b/docs/locales/ko/LC_MESSAGES/irect.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/irect.po b/docs/locales/ko/LC_MESSAGES/irect.po new file mode 100644 index 000000000..87b0cc247 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/irect.po @@ -0,0 +1,504 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 fba66bf65f8244c99a76005b4aa13c77 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 c942dc1ee97843a1823121e8c22c5942 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 8e36a463460e419f9787f96dfe806717 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../irect.rst:7 5159d7062cad401c98bbfc419330c03c +msgid "IRect" +msgstr "" + +#: ../../irect.rst:9 da2f82891e674e9a99975f0e1c77534a +msgid "" +"IRect is a rectangular bounding box, very similar to :ref:`Rect`, except " +"that all corner coordinates are integers. IRect is used to specify an " +"area of pixels, e.g. to receive image data during rendering. Otherwise, " +"e.g. considerations concerning emptiness and validity of rectangles also " +"apply to this class. Methods and attributes have the same names, and in " +"many cases are implemented by re-using the respective :ref:`Rect` " +"counterparts." +msgstr "" + +#: ../../irect.rst:12 a2319632991b4392b7ea2363ed3ce3ca +msgid "**Attribute / Method**" +msgstr "" + +#: ../../irect.rst:12 985bc4b51a2844cc8c87af7ba3568037 +msgid "**Short Description**" +msgstr "" + +#: ../../irect.rst:14 312b0f5bcbbd40a2bd8e8e1e19229048 +msgid ":meth:`IRect.contains`" +msgstr "" + +#: ../../irect.rst:14 1ccbbb3d38b14035b18375fea8176585 +msgid "checks containment of another object" +msgstr "" + +#: ../../irect.rst:15 48378afa42394efc9fdbf9eb14494570 +msgid ":meth:`IRect.get_area`" +msgstr "" + +#: ../../irect.rst:15 7c5d16bc4f66409496a2544313c511e1 +msgid "calculate rectangle area" +msgstr "" + +#: ../../irect.rst:16 f0ccc3542ac74ea990d056a328e04a38 +msgid ":meth:`IRect.intersect`" +msgstr "" + +#: ../../irect.rst:16 1dc1ecaee3494262a0fe5f21fa1f14d9 +msgid "common part with another rectangle" +msgstr "" + +#: ../../irect.rst:17 dcc6834c254f4196bae3b0d0fab4ceb1 +msgid ":meth:`IRect.intersects`" +msgstr "" + +#: ../../irect.rst:17 4fa770702f6f48ddab2468a3aa6c9af1 +msgid "checks for non-empty intersection" +msgstr "" + +#: ../../irect.rst:18 1475b0caba85400c836e2e24795f6c17 +msgid ":meth:`IRect.morph`" +msgstr "" + +#: ../../irect.rst:18 185917170ebf4403aecdb06acfbbdb30 +msgid "transform with a point and a matrix" +msgstr "" + +#: ../../irect.rst:19 f89cd99364a04f8ead7c40c76d334821 +msgid ":meth:`IRect.torect`" +msgstr "" + +#: ../../irect.rst:19 b73013e1bd9c44e28fb742260bdf0272 +msgid "matrix that transforms to another rectangle" +msgstr "" + +#: ../../irect.rst:20 15c7541278e84bb8ab6442f22f75170c +msgid ":meth:`IRect.norm`" +msgstr "" + +#: ../../irect.rst:20 5344860eef7b4ebca725b7087c5ba8b1 +msgid "the Euclidean norm" +msgstr "" + +#: ../../irect.rst:21 b4daf225e3034e7f9a2a7efdb849941e +msgid ":meth:`IRect.normalize`" +msgstr "" + +#: ../../irect.rst:21 da5ac901945f432e951f9ccfbde9a1e3 +msgid "makes a rectangle finite" +msgstr "" + +#: ../../irect.rst:22 b57e345172924c9f92f87bdeee2b8b3b +msgid ":attr:`IRect.bottom_left`" +msgstr "" + +#: ../../irect.rst:22 8de2dbecf83540c2845f6fea2e7ecc7b +msgid "bottom left point, synonym *bl*" +msgstr "" + +#: ../../irect.rst:23 78ac63f7fbd94c12a1bb2853a704964d +msgid ":attr:`IRect.bottom_right`" +msgstr "" + +#: ../../irect.rst:23 694a01dd73e044ebb482e19a2d477c0f +msgid "bottom right point, synonym *br*" +msgstr "" + +#: ../../irect.rst:24 c996baab80024480b6fa888ba3dae48d +msgid ":attr:`IRect.height`" +msgstr "" + +#: ../../irect.rst:24 5cfaf1765add470395b5f7e3f9f3af09 +msgid "height of the rectangle" +msgstr "" + +#: ../../irect.rst:25 1b7c56522528489b89e2c3863d10335b +msgid ":attr:`IRect.is_empty`" +msgstr "" + +#: ../../irect.rst:25 0f3aefc4a2e247f4909ac53517ac039c +msgid "whether rectangle is empty" +msgstr "" + +#: ../../irect.rst:26 ebba20f4de03492090a9968e1e5dd412 +msgid ":attr:`IRect.is_infinite`" +msgstr "" + +#: ../../irect.rst:26 9c334c81b9b8415ba1053a2528ecb6ff +msgid "whether rectangle is infinite" +msgstr "" + +#: ../../irect.rst:27 5001534eb64f471d85cc5b89d7d974a1 +msgid ":attr:`IRect.rect`" +msgstr "" + +#: ../../irect.rst:27 4b920cbbb5bd436ea5424583f46a971f +msgid "the :ref:`Rect` equivalent" +msgstr "" + +#: ../../irect.rst:28 73d2bc3e97c64f5facee96dfcf12b95c +msgid ":attr:`IRect.top_left`" +msgstr "" + +#: ../../irect.rst:28 5806b5f7f43040419aec40fe1ec99f9b +msgid "top left point, synonym *tl*" +msgstr "" + +#: ../../irect.rst:29 856082fe624c4dd4b8eeb24285c1a347 +msgid ":attr:`IRect.top_right`" +msgstr "" + +#: ../../irect.rst:29 0b985550b8ed4625a72796ab4c754952 +msgid "top_right point, synonym *tr*" +msgstr "" + +#: ../../irect.rst:30 5cc9d50c8cec4d768741a74eca8abf0b +msgid ":attr:`IRect.quad`" +msgstr "" + +#: ../../irect.rst:30 d135c468e28048fc921fdfdf4bbb13cf +msgid ":ref:`Quad` made from rectangle corners" +msgstr "" + +#: ../../irect.rst:31 022996f05c34445fa253e0e774b365a3 +msgid ":attr:`IRect.width`" +msgstr "" + +#: ../../irect.rst:31 0b36bdc4d3bf46afab89889318dc863a +msgid "width of the rectangle" +msgstr "" + +#: ../../irect.rst:32 521608cb542c4976ba07f2f56d904ace +msgid ":attr:`IRect.x0`" +msgstr "" + +#: ../../irect.rst:32 d0964024870440a58844774693381ec8 +msgid "X-coordinate of the top left corner" +msgstr "" + +#: ../../irect.rst:33 548e8fbd99a442b2b5a586073ff4f2ab +msgid ":attr:`IRect.x1`" +msgstr "" + +#: ../../irect.rst:33 30a1db52025e46e0be799ff23b4f2696 +msgid "X-coordinate of the bottom right corner" +msgstr "" + +#: ../../irect.rst:34 f81b38bd9fde4f54bed975e459d7a9ac +msgid ":attr:`IRect.y0`" +msgstr "" + +#: ../../irect.rst:34 2b16ddf8934849fbaab256d3d54e4363 +msgid "Y-coordinate of the top left corner" +msgstr "" + +#: ../../irect.rst:35 70d84d3ce7a34c4297a1e7700d3f7109 +msgid ":attr:`IRect.y1`" +msgstr "" + +#: ../../irect.rst:35 b3e0e713d8d046a8968b780c0340f966 +msgid "Y-coordinate of the bottom right corner" +msgstr "" + +#: ../../irect.rst:38 2edafd03825b4939bfe6472c41b08bcf +msgid "**Class API**" +msgstr "" + +#: ../../irect.rst:50 70995ff946be4d8d84849a0c0b6f16d3 +msgid "" +"Overloaded constructors. Also see examples below and those for the " +":ref:`Rect` class." +msgstr "" + +#: ../../irect.rst:52 8f664a86d7374ec9bda83e6905b4e67b +msgid "If another irect is specified, a **new copy** will be made." +msgstr "" + +#: ../../irect.rst:54 6e6e21909c9c4ae3a9139bde73277f88 +msgid "" +"If sequence is specified, it must be a Python sequence type of 4 numbers " +"(see :ref:`SequenceTypes`). Non-integer numbers will be truncated, non-" +"numeric values will raise an exception." +msgstr "" + +#: ../../irect.rst:56 f9a414d271ee415fb26b8f0b142958b7 +msgid "The other parameters mean integer coordinates." +msgstr "" + +#: ../../irect.rst:61 7c84bdc985c64c339d0548802f831996 +msgid "" +"Calculates the area of the rectangle and, with no parameter, equals " +"*abs(IRect)*. Like an empty rectangle, the area of an infinite rectangle " +"is also zero." +msgstr "" + +#: ../../irect.rst 18e4b1fb1da640de88306538351ca10b +#: 218364ce30ff4c0a9be4541c11fe1e9f 394c5a21898045d19dc3fca6edc763a7 +#: 489a707b54a24c2eb3edb81f8229ef4f 5b5047f52c7a458c90e239164e797307 +#: 6408eafe7a4547e980f6763bd4b559e1 +msgid "Parameters" +msgstr "" + +#: ../../irect.rst:63 63bea0a8781c48c49fac02eaeda867ce +msgid "" +"Specify required unit: respective squares of \"px\" (pixels, default), " +"\"in\" (inches), \"cm\" (centimeters), or \"mm\" (millimeters)." +msgstr "" + +#: ../../irect.rst 0f9fbd309a584cab995697cae68f899d +#: 7c2bab6d8e594a5589e33354d18a1796 ba5dbf6b9e214071aaec6e290fac295f +#: e6ca9e94a86f416a922d607f4943a5a3 +msgid "Return type" +msgstr "" + +#: ../../irect.rst:69 5dc2badf5382432fa2d57f3db0e32119 +msgid "" +"The intersection (common rectangular area) of the current rectangle and " +"*ir* is calculated and replaces the current rectangle. If either " +"rectangle is empty, the result is also empty. If either rectangle is " +"infinite, the other one is taken as the result -- and hence also infinite" +" if both rectangles were infinite." +msgstr "" + +#: ../../irect.rst:71 8af38038c172477b9e9af3e3b7862926 +msgid "Second rectangle." +msgstr "" + +#: ../../irect.rst:75 e7214be906944cddbd77c8aecdd86d95 +msgid "" +"Checks whether *x* is contained in the rectangle. It may be " +":data:`rect_like`, :data:`point_like` or a number. If *x* is an empty " +"rectangle, this is always true. Conversely, if the rectangle is empty " +"this is always ``False``, if *x* is not an empty rectangle and not a " +"number. If *x* is a number, it will be checked to be one of the four " +"components. *x in irect* and *irect.contains(x)* are equivalent." +msgstr "" + +#: ../../irect.rst:77 7cc8752befc847a9885e54e61f00faee +msgid "the object to check." +msgstr "" + +#: ../../irect.rst:84 41a07fef21a04ff9b1f1c59de07d83d1 +msgid "" +"Checks whether the rectangle and the :data:`rect_like` \"r\" contain a " +"common non-empty :ref:`IRect`. This will always be ``False`` if either is" +" infinite or empty." +msgstr "" + +#: ../../irect.rst:86 aa8981e507b44374bd69c86ddf1f7541 +msgid "the rectangle to check." +msgstr "" + +#: ../../irect.rst:92 e0237b4a333a4949bae56a33d349416d +msgid "New in version 1.19.3" +msgstr "" + +#: ../../irect.rst:94 a8f435e24dcb48e2bdbca8838eca5764 +msgid "" +"Compute the matrix which transforms this rectangle to a given one. See " +":meth:`Rect.torect`." +msgstr "" + +#: ../../irect.rst:96 d1c97833dc404dbf9a4af4245c9a4541 +msgid "the target rectangle. Must not be empty or infinite." +msgstr "" + +#: ../../irect.rst:97 2f2d67d9571f465fa494157309add0d7 +msgid ":ref:`Matrix`" +msgstr "" + +#: ../../irect.rst 75c56c65e0e64566a450b019b0cac229 +#: a68dd79a643440fbb2173c54bf9da905 +msgid "Returns" +msgstr "" + +#: ../../irect.rst:98 c705e90002274a80b333b03348c54360 +msgid "" +"a matrix `mat` such that `self * mat = rect`. Can for example be used to " +"transform between the page and the pixmap coordinates." +msgstr "" + +#: ../../irect.rst:103 287c04b5d7f141ccb8d6ad779ecaeb1e +msgid "New in version 1.17.0" +msgstr "" + +#: ../../irect.rst:105 e37ea5bfcc8d496abb5f6decf903b78d +msgid "Return a new quad after applying a matrix to it using a fixed point." +msgstr "" + +#: ../../irect.rst:107 05bbb73520154a3181137a24fec1c86f +msgid "the fixed point." +msgstr "" + +#: ../../irect.rst:108 b34bf6b64a6543358399eee20fed216a +msgid "the matrix." +msgstr "" + +#: ../../irect.rst:109 c69142f99a804255b75e2eaf0d41597a +msgid "" +"a new :ref:`Quad`. This a wrapper of the same-named quad method. If " +"infinite, the infinite quad is returned." +msgstr "" + +#: ../../irect.rst:113 1cacf407916d48f49e0c36e73c9d2795 +msgid "New in version 1.16.0" +msgstr "" + +#: ../../irect.rst:115 73cccdef3ba54c138d3c2949905823f1 +msgid "" +"Return the Euclidean norm of the rectangle treated as a vector of four " +"numbers." +msgstr "" + +#: ../../irect.rst:119 1e3b3df827f64cdaa8f3e30d20539c21 +msgid "" +"Make the rectangle finite. This is done by shuffling rectangle corners. " +"After this, the bottom right corner will indeed be south-eastern to the " +"top left one. See :ref:`Rect` for a more details." +msgstr "" + +#: ../../irect.rst:125 80fcd714078d4459b6446f7aa881ded8 +msgid "Equals *Point(x0, y0)*." +msgstr "" + +#: ../../irect.rst 1185a0d53778409b8eb3beb582b64888 +#: 34743c436e9f444485fae4bae2ddb7f9 352aed9e86654ed0bfb3414c7c9f882a +#: 451fc25fef3146ae8daf60b87a4dc707 49a176812ba94813ba64a196ce27e163 +#: 4f24b7a2272a40bcb5f1498431a01dff 6692646f4aef49ceb6263730817ee21f +#: 89ab45a59a934aa39249ed1a86f07ee5 9d4221e962164e72948ac5d4b8d2703c +#: b2290785b17149418de10d614a0f8eda c787e5b509d24f1b838ac1e121cfc685 +#: d95b0909ef3d4300a206cd4f2b8c8671 f6cdc81509354493aa34a01e5ebc06b4 +#: f97ab05a65224ade959a073fae8e16c2 +msgid "type" +msgstr "" + +#: ../../irect.rst:127 ../../irect.rst:135 ../../irect.rst:143 +#: ../../irect.rst:151 88e60a9d15ad4d409f7a85722cd1cb9c +#: c7e32fdd1a374a44979cdc28e388d038 fb5fa1bba9ab48979d23d8dd6744ca12 +#: fdc51db9a96f4153893929ddb8e95ee3 +msgid ":ref:`Point`" +msgstr "" + +#: ../../irect.rst:133 305506d4a8894b98b370bfdaf51af233 +msgid "Equals *Point(x1, y0)*." +msgstr "" + +#: ../../irect.rst:141 9af3c12519684f28bb4bc50d612e4372 +msgid "Equals *Point(x0, y1)*." +msgstr "" + +#: ../../irect.rst:149 ae11bdfc7226476aac26a17b08ad9204 +msgid "Equals *Point(x1, y1)*." +msgstr "" + +#: ../../irect.rst:155 6b6c7c24528e4d028bb599bcaba2d291 +msgid "The :ref:`Rect` with the same coordinates as floats." +msgstr "" + +#: ../../irect.rst:157 07b31a4170c647d1ae20c438ea29c332 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../irect.rst:161 6d942227a8804d80be71085d59471e1f +msgid "The quadrilateral *Quad(irect.tl, irect.tr, irect.bl, irect.br)*." +msgstr "" + +#: ../../irect.rst:163 21c9866abaed4b9ea6806095673297f4 +msgid ":ref:`Quad`" +msgstr "" + +#: ../../irect.rst:167 aa41fcfcf80642958f591e2014a05804 +msgid "Contains the width of the bounding box. Equals *abs(x1 - x0)*." +msgstr "" + +#: ../../irect.rst:169 ../../irect.rst:175 ../../irect.rst:181 +#: ../../irect.rst:187 ../../irect.rst:193 ../../irect.rst:199 +#: 36d28775650b4893b50c1bb5ecf9c14e 65120d228f2f4ab28e5fa51eb06d8761 +#: a72fd244eafd454380cfe3bc5def6325 f2ef5e017dda4f76ab39cff8b6079d88 +#: fa70673340164af19d538be4a10b59ad fc10d7f00d79406db00d1066e4567571 +msgid "int" +msgstr "" + +#: ../../irect.rst:173 e896ac73b5c64e75b7724b41502abd00 +msgid "Contains the height of the bounding box. Equals *abs(y1 - y0)*." +msgstr "" + +#: ../../irect.rst:179 29e02c90a309472484e82207f4e2bb94 +msgid "X-coordinate of the left corners." +msgstr "" + +#: ../../irect.rst:185 ec2198ff697e420d9c05f93f973367bb +msgid "Y-coordinate of the top corners." +msgstr "" + +#: ../../irect.rst:191 e02641fa0cb443a58d8b6f6d447edb7a +msgid "X-coordinate of the right corners." +msgstr "" + +#: ../../irect.rst:197 2e367ece51d84b1280d4ec05cc038c6a +msgid "Y-coordinate of the bottom corners." +msgstr "" + +#: ../../irect.rst:203 900a2545643f4623905b338b7edefd8b +msgid "``True`` if rectangle is infinite, ``False`` otherwise." +msgstr "" + +#: ../../irect.rst:205 ../../irect.rst:211 4c1a21a29dfe4414ad6992b3dcc0b117 +#: aec6fc0ebb874b20bfb1a90a68a30dcc +msgid "bool" +msgstr "" + +#: ../../irect.rst:209 877573fb6317435ca1b1a73c24606949 +msgid "``True`` if rectangle is empty, ``False`` otherwise." +msgstr "" + +#: ../../irect.rst:216 7cc608bcd141490a9f473438421895b4 +msgid "" +"This class adheres to the Python sequence protocol, so components can be " +"accessed via their index, too. Also refer to :ref:`SequenceTypes`." +msgstr "" + +#: ../../irect.rst:217 a3c01f53c9ef4d5eb1b84f26294b538b +msgid "" +"Rectangles can be used with arithmetic operators -- see chapter " +":ref:`Algebra`." +msgstr "" + +#: ../../footer.rst:46 512cd6db01a142258a5b31acbcb8a187 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/link.mo b/docs/locales/ko/LC_MESSAGES/link.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/link.po b/docs/locales/ko/LC_MESSAGES/link.po new file mode 100644 index 000000000..429ff3fe0 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/link.po @@ -0,0 +1,372 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f61795372a914927a8bb8d2bc7871cd0 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 b6c88945ca3e433796ac09242bcafb92 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 f29d92f907804c35aff5269176052c3a +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../link.rst:7 a2ac83b843064d1690148214e4e62cab +msgid "Link" +msgstr "" + +#: ../../link.rst:8 e3ca00a770434f0896694fc8c2dc8e8d +msgid "" +"Represents a pointer to somewhere (this document, other documents, the " +"internet). Links exist per document page, and they are forward-chained to" +" each other, starting from an initial link which is accessible by the " +":attr:`Page.first_link` property." +msgstr "" + +#: ../../link.rst:10 55f719cc6bfa4e1dbdf8bba301fe4110 +msgid "" +"There is a parent-child relationship between a link and its page. If the " +"page object becomes unusable (closed document, any document structure " +"change, etc.), then so does every of its existing link objects -- an " +"exception is raised saying that the object is \"orphaned\", whenever a " +"link property or method is accessed." +msgstr "" + +#: ../../link.rst:13 a4193e607a9145218508afeabe0b4c2e +msgid "**Attribute**" +msgstr "" + +#: ../../link.rst:13 af32ee5e21764bdab065a26b66230ad7 +msgid "**Short Description**" +msgstr "" + +#: ../../link.rst:15 9f4a2508022d463a93f91c3406c08ab1 +msgid ":meth:`Link.set_border`" +msgstr "" + +#: ../../link.rst:15 6a3d66278e124793bee041fb82bd823a +msgid "modify border properties" +msgstr "" + +#: ../../link.rst:16 ca6e0ec1d2e5409894887ce466dd9c14 +msgid ":meth:`Link.set_colors`" +msgstr "" + +#: ../../link.rst:16 ebd1bee66f204d6bbd8e54086d79f55f +msgid "modify color properties" +msgstr "" + +#: ../../link.rst:17 111ec52301b74aac956f980fdfcaf35a +msgid ":meth:`Link.set_flags`" +msgstr "" + +#: ../../link.rst:17 502cb7c9642642f293df7c93f92a2fd6 +msgid "modify link flags" +msgstr "" + +#: ../../link.rst:18 489cb6995acd4a8f9459e84f8e29671e +msgid ":attr:`Link.border`" +msgstr "" + +#: ../../link.rst:18 c61da7b8553c4f35b0de3f5b60a3f9e9 +msgid "border characteristics" +msgstr "" + +#: ../../link.rst:19 5a1564c23ae44405bedf7e18c649d130 +msgid ":attr:`Link.colors`" +msgstr "" + +#: ../../link.rst:19 01a00d5d838a47e3964be170b4b2aca4 +msgid "border line color" +msgstr "" + +#: ../../link.rst:20 df6c0ef2a13f47b28ec2cb2b88f5decf +msgid ":attr:`Link.dest`" +msgstr "" + +#: ../../link.rst:20 2d7f3af920794e158f2472af28c69a4c +msgid "points to destination details" +msgstr "" + +#: ../../link.rst:21 c858c9ac8f3148deb29f863be9b27de6 +msgid ":attr:`Link.is_external`" +msgstr "" + +#: ../../link.rst:21 df77568aba6c4d24babf4d0d97c19d54 +msgid "checks if the link is an external destination" +msgstr "" + +#: ../../link.rst:22 09dcfdc3988d4ab0bb1b56be72905b8a +msgid ":attr:`Link.flags`" +msgstr "" + +#: ../../link.rst:22 0fb0e2e7ae3944e6aa9886cccd29ba57 +msgid "link annotation flags" +msgstr "" + +#: ../../link.rst:23 8b3432b79e804e8a8467829f70a5504d +msgid ":attr:`Link.next`" +msgstr "" + +#: ../../link.rst:23 482fbb3ecd0442a8bb0a43de75382822 +msgid "points to next link" +msgstr "" + +#: ../../link.rst:24 7baaa58c6b184381b9aba640162dfe9b +msgid ":attr:`Link.rect`" +msgstr "" + +#: ../../link.rst:24 0e0788e18be94b5784f4c8a3d0c8590b +msgid "clickable area in untransformed coordinates" +msgstr "" + +#: ../../link.rst:25 e8df77ad16fe4114a80eff4b8240b89c +msgid ":attr:`Link.uri`" +msgstr "" + +#: ../../link.rst:25 502ec4ee36504004bd39daf295626fbc +msgid "link destination" +msgstr "" + +#: ../../link.rst:26 d17729b40a80480caa127d310a3450c2 +msgid ":attr:`Link.xref`" +msgstr "" + +#: ../../link.rst:26 678f619f97a244a0a539107e973f3986 +msgid ":data:`xref` number of the entry" +msgstr "" + +#: ../../link.rst:29 f76011eb2dd2424bba83dfb242a73eb3 +msgid "**Class API**" +msgstr "" + +#: ../../link.rst:35 e01c9234e1b24ef4a42fe98da9e3b5b8 +msgid "PDF only: Change border width and dashing properties." +msgstr "" + +#: ../../link.rst:37 00c3ab6e292048be95d9d1e26a0319ce +msgid "" +"*(Changed in version 1.16.9)* Allow specification without using a " +"dictionary. The direct parameters are used if *border* is not a " +"dictionary." +msgstr "" + +#: ../../link.rst 00e8660458ca4df49c759966985d7ccf +#: 4560ff2f8db3457ea45107e432c3e7ee +msgid "Parameters" +msgstr "" + +#: ../../link.rst:39 9210f90061d54d20bb40b7811a63e193 +msgid "" +"a dictionary as returned by the :attr:`border` property, with keys " +"*\"width\"* (*float*), *\"style\"* (*str*) and *\"dashes\"* (*sequence*)." +" Omitted keys will leave the resp. property unchanged. To e.g. remove " +"dashing use: *\"dashes\": []*. If dashes is not an empty sequence, " +"\"style\" will automatically be set to \"D\" (dashed)." +msgstr "" + +#: ../../link.rst:41 ../../link.rst:42 ../../link.rst:43 ../../link.rst:54 +#: 0f652b3dc1754811b0fd20b619f58221 2a2addfc429e4856a5b9d38ccc565155 +#: 4b687a46789e46148cf496194b0b604d 6666190d7e824106bd77ad41db6f0b41 +msgid "see above." +msgstr "" + +#: ../../link.rst:47 8657681111dc457788d3482a31e7fd86 +msgid "PDF only: Changes the \"stroke\" color." +msgstr "" + +#: ../../link.rst:49 a9f5e77a06364c1a8e73536a14d852c9 +msgid "" +"In PDF, links are a subtype of annotations technically and **do not " +"support fill colors**. However, to keep a consistent API, we do allow " +"specifying a `fill=` parameter like with all annotations, which will be " +"ignored with a warning." +msgstr "" + +#: ../../link.rst:51 2f9965cf55cc4fa69cb5dc350c17ad09 +msgid "" +"*(Changed in version 1.16.9)* Allow colors to be directly set. These " +"parameters are used if *colors* is not a dictionary." +msgstr "" + +#: ../../link.rst:53 d1bb1f867e02444ebfbb4a94573959bf +msgid "" +"a dictionary containing color specifications. For accepted dictionary " +"keys and values see below. The most practical way should be to first make" +" a copy of the *colors* property and then modify this dictionary as " +"required." +msgstr "" + +#: ../../link.rst:58 ../../link.rst:65 986b15f24ea54de580c0c662299fe12d +#: bb27f8be006d4918acba2be1f77e4ee4 +msgid "*New in v1.18.16*" +msgstr "" + +#: ../../link.rst:60 df2a5f5ab5654a15a59600eb3536f242 +msgid "" +"Set the PDF `/F` property of the link annotation. See " +":meth:`Annot.set_flags` for details. If not a PDF, this method is a no-" +"op." +msgstr "" + +#: ../../link.rst:67 e8cfa36461074dacb4c30dea81b83979 +msgid "" +"Return the link annotation flags, an integer (see :attr:`Annot.flags` for" +" details). Zero if not a PDF." +msgstr "" + +#: ../../link.rst:72 004a6c2778ec462eb43f612d6513adde +msgid "" +"Meaningful for PDF only: A dictionary of two tuples of floats in range `0" +" <= float <= 1` specifying the *stroke* and the interior (*fill*) colors." +" If not a PDF, ``None`` is returned. As mentioned above, the fill color " +"is always `None` for links. The stroke color is used for the border of " +"the link rectangle. The length of the tuple implicitly determines the " +"colorspace: 1 = GRAY, 3 = RGB, 4 = CMYK. So `(1.0, 0.0, 0.0)` stands for " +"RGB color red. The value of each float *f* is mapped to the integer value" +" *i* in range 0 to 255 via the computation *f = i / 255*." +msgstr "" + +#: ../../link.rst 114960dc31e14f46bd090eb9728c77c2 +#: 4fbd9899261b4dcebb25e7595add5438 +msgid "Return type" +msgstr "" + +#: ../../link.rst:78 3cbc8f0469d241929e34c352e5745bc1 +msgid "" +"Meaningful for PDF only: A dictionary containing border characteristics. " +"It will be ``None`` for non-PDFs and an empty dictionary if no border " +"information exists. The following keys can occur:" +msgstr "" + +#: ../../link.rst:80 c1ab318b501a47688d2fc6b081566c84 +msgid "" +"*width* -- a float indicating the border thickness in points. The value " +"is -1.0 if no width is specified." +msgstr "" + +#: ../../link.rst:82 ee2605f02f554ef69ce01c7ce647b5c6 +msgid "" +"*dashes* -- a sequence of integers specifying a line dash pattern. *[]* " +"means no dashes, *[n]* means equal on-off lengths of *n* points, longer " +"lists will be interpreted as specifying alternating on-off length values." +" See the :ref:`AdobeManual` page 126 for more detail." +msgstr "" + +#: ../../link.rst:84 b4b27c2220234e3c9f0da44681173211 +msgid "" +"*style* -- 1-byte border style: *S* (Solid) = solid rectangle surrounding" +" the annotation, *D* (Dashed) = dashed rectangle surrounding the link, " +"the dash pattern is specified by the *dashes* entry, *B* (Beveled) = a " +"simulated embossed rectangle that appears to be raised above the surface " +"of the page, *I* (Inset) = a simulated engraved rectangle that appears to" +" be recessed below the surface of the page, *U* (Underline) = a single " +"line along the bottom of the annotation rectangle." +msgstr "" + +#: ../../link.rst:90 052b846ac7bf4348bb05373fe93c7f66 +msgid "The area that can be clicked in untransformed coordinates." +msgstr "" + +#: ../../link.rst 278b7dd100364049a9a0f8a608dfe200 +#: 5b8584b479504935a82003972fba8296 91cdff8cf9e5471f8c8c7ebd105a9694 +#: 92b24b7f7b1d434bab261bfbfc850087 a7dd1626e8024de0a8394b7ac58b00dc +#: b3fc6b24eede40c5a5ff68c9552eb5d3 +msgid "type" +msgstr "" + +#: ../../link.rst:92 b6cde768d2b448d3918fcc2629f09e45 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../link.rst:96 9cbf66013e07421da625a37f62f421af +msgid "" +"A bool specifying whether the link target is outside of the current " +"document." +msgstr "" + +#: ../../link.rst:98 3bf7415e10f64b17a00d1894d75abd4d +msgid "bool" +msgstr "" + +#: ../../link.rst:102 7722949c512e472da9f50b38d703a9f0 +msgid "" +"A string specifying the link target. The meaning of this property should " +"be evaluated in conjunction with property `is_external`:" +msgstr "" + +#: ../../link.rst:106 8a85f4db122a4632acda8a79099ab276 +msgid "" +"`is_external` is true: `uri` points to some target outside the current " +"PDF, which may be an internet resource (`uri` starts with ``http://`` or " +"similar), another file (`uri` starts with \"file:\" or \"file://\") or " +"some other service like an e-mail address (`uri` starts with " +"``mailto:``)." +msgstr "" + +#: ../../link.rst:112 aa85a467ae894a49801187d31376da42 +msgid "" +"`is_external` is false: `uri` will be `None` or point to an internal " +"location. In case of PDF documents, this should either be *#nnnn* to " +"indicate a 1-based (!) page number *nnnn*, or a named location. The " +"format varies for other document types, for example " +"\"../FixedDoc.fdoc#PG_2_LNK_1\" for page number 2 (1-based) in an XPS " +"document." +msgstr "" + +#: ../../link.rst:119 169f5e74d4d248acaf39fe0e78f64c8c +msgid "str" +msgstr "" + +#: ../../link.rst:123 b896a257acf94231987101c53ec2a3ee +msgid "An integer specifying the PDF :data:`xref`. Zero if not a PDF." +msgstr "" + +#: ../../link.rst:125 0a7066aaee624b82bdccf14c63cbeb5a +msgid "int" +msgstr "" + +#: ../../link.rst:129 3d5c16c89c01444b862176bdfbe17241 +msgid "The next link or ``None``." +msgstr "" + +#: ../../link.rst:131 aeff8c341c48462292eba7bef8c73eeb +msgid "*Link*" +msgstr "" + +#: ../../link.rst:135 bc9d0756ee4e4e0c8f03bde2e4a58991 +msgid "The link destination details object." +msgstr "" + +#: ../../link.rst:137 9b93286e15e64f8f9bc75c6e2a1305bb +msgid ":ref:`linkDest`" +msgstr "" + +#: ../../footer.rst:46 74c752369b354d73af2f7c11e7b19f1f +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/linkdest.mo b/docs/locales/ko/LC_MESSAGES/linkdest.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/linkdest.po b/docs/locales/ko/LC_MESSAGES/linkdest.po new file mode 100644 index 000000000..1831aaeef --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/linkdest.po @@ -0,0 +1,273 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 d57c78d809254da4835f2c2e979be9bf +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 a9ed1908021a4b46ac047f81afa8fd03 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c383513223a942bea5aee21e50d9b3c2 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../linkdest.rst:7 6f11bc05a63745008c94dda126160905 +msgid "linkDest" +msgstr "" + +#: ../../linkdest.rst:8 0b3bb1ecff3b4317aaaabd080edb44e8 +msgid "" +"Class representing the `dest` property of an outline entry or a link. " +"Describes the destination to which such entries point." +msgstr "" + +#: ../../linkdest.rst:10 c02022acb8024740b76912d137b9899a +msgid "" +"Up to MuPDF v1.9.0 this class existed inside MuPDF and was dropped in " +"version 1.10.0. For backward compatibility, PyMuPDF is still maintaining " +"it, although some of its attributes are no longer backed by data actually" +" available via MuPDF." +msgstr "" + +#: ../../linkdest.rst:13 192d952a7df04c4cb3800c0c6f8b6f99 +msgid "**Attribute**" +msgstr "" + +#: ../../linkdest.rst:13 71e9a555483944ff92a77001b3d42f49 +msgid "**Short Description**" +msgstr "" + +#: ../../linkdest.rst:15 3ccecaa069ff4226b5794d23afcb6f38 +msgid ":attr:`linkDest.dest`" +msgstr "" + +#: ../../linkdest.rst:15 b0182cc143894b7397921f5e6efe2ad8 +msgid "destination" +msgstr "" + +#: ../../linkdest.rst:16 94cfb537b2034d95b10812ca82ab0904 +msgid ":attr:`linkDest.fileSpec`" +msgstr "" + +#: ../../linkdest.rst:16 8c2d54d1045244c2b2c7be7fe3aff94d +msgid "file specification (path, filename)" +msgstr "" + +#: ../../linkdest.rst:17 c9d87d20c7e34bdcba3e15b52958cc2d +msgid ":attr:`linkDest.flags`" +msgstr "" + +#: ../../linkdest.rst:17 8eab10462616444ca0c07141a25997d1 +msgid "descriptive flags" +msgstr "" + +#: ../../linkdest.rst:18 d3ee936fbf09442985e09022f97346a0 +msgid ":attr:`linkDest.isMap`" +msgstr "" + +#: ../../linkdest.rst:18 6b10fcc4b7024312b80879a046dde7a1 +msgid "is this a MAP?" +msgstr "" + +#: ../../linkdest.rst:19 ebd316b494c341949404a1013a0c3716 +msgid ":attr:`linkDest.isUri`" +msgstr "" + +#: ../../linkdest.rst:19 a3d669f5e1b24a5f8817d790b4dfce24 +msgid "is this a URI?" +msgstr "" + +#: ../../linkdest.rst:20 5f79bf4078184f17aed9690ec43a9e28 +msgid ":attr:`linkDest.kind`" +msgstr "" + +#: ../../linkdest.rst:20 da66f3a913634b5197318056882d489c +msgid "kind of destination" +msgstr "" + +#: ../../linkdest.rst:21 a9f255b3361541bbbc58d4b524552874 +msgid ":attr:`linkDest.lt`" +msgstr "" + +#: ../../linkdest.rst:21 8696049fe5f14b5e898e8894961de97a +msgid "top left coordinates" +msgstr "" + +#: ../../linkdest.rst:22 e69848891b564b91b789e415193e2599 +msgid ":attr:`linkDest.named`" +msgstr "" + +#: ../../linkdest.rst:22 3e9e08f3e3f646e39ea6939d38f92ea7 +msgid "name if named destination" +msgstr "" + +#: ../../linkdest.rst:23 e55ceb925d38472da5faac759c6c1f39 +msgid ":attr:`linkDest.newWindow`" +msgstr "" + +#: ../../linkdest.rst:23 9da63baa93924bb3810f8b14cd3c6f08 +msgid "name of new window" +msgstr "" + +#: ../../linkdest.rst:24 3133f4f237c54427b5f38bb9e4ee0870 +msgid ":attr:`linkDest.page`" +msgstr "" + +#: ../../linkdest.rst:24 4e9fb63bb49e45838a66455c5ee65ae9 +msgid "page number" +msgstr "" + +#: ../../linkdest.rst:25 007c86d9023d40e5bb0e4e5b93d802dd +msgid ":attr:`linkDest.rb`" +msgstr "" + +#: ../../linkdest.rst:25 6eeedea7ed6145018567f08541f89224 +msgid "bottom right coordinates" +msgstr "" + +#: ../../linkdest.rst:26 748aaf1c62434b01970667a3b3033d87 +msgid ":attr:`linkDest.uri`" +msgstr "" + +#: ../../linkdest.rst:26 7ad45d4c5bba4618bf6a5964e2571854 +msgid "URI" +msgstr "" + +#: ../../linkdest.rst:29 fb8d1e50444c4cd08673dbee32636872 +msgid "**Class API**" +msgstr "" + +#: ../../linkdest.rst:35 899ccd076a8a486087261429c87c1e49 +msgid "" +"Target destination name if :attr:`linkDest.kind` is :data:`LINK_GOTOR` " +"and :attr:`linkDest.page` is *-1*." +msgstr "" + +#: ../../linkdest.rst 04ee6c88174848ac8bab86ad2416c0a3 +#: 1464a774b9d54e0e990c6ebe2da4c6e8 473cf52ca9cf41cf99038dd29cc31c14 +#: 4dd16d523ebf4121a0e9a79f97cd9d11 63054de214a4471fbb6d1ab8f3b7b573 +#: 670cff5c69074cc6a2bc4689ab5393c9 9ddddca25b3d4f75bcfa839cc96b9a21 +#: b44b0784cdb246cfa94a0a2059b94018 b58c6c51b75c480294d940a64089a608 +#: bb350508308a4d99acad49e328495653 e224131ce0fe4fd0a1df5250c0487ca4 +#: e5f8f3174dfc4ff997a1743196c9e4d6 +msgid "type" +msgstr "" + +#: ../../linkdest.rst:37 ../../linkdest.rst:43 ../../linkdest.rst:79 +#: ../../linkdest.rst:103 581dcd6df6224fbe8745cc8ab2b07a91 +#: a81ed9ea22224e639705fc5e3839af2f d3182a558fb849428de433c60a1bdad7 +#: f69f354db0e14b7ea4880f6b4e0aa8ff +msgid "str" +msgstr "" + +#: ../../linkdest.rst:41 90baaf8b636c4ee591f82da46afacac7 +msgid "" +"Contains the filename and path this link points to, if " +":attr:`linkDest.kind` is :data:`LINK_GOTOR` or :data:`LINK_LAUNCH`." +msgstr "" + +#: ../../linkdest.rst:47 ee1974ce6ace4936a3d8b8b75df71cb3 +msgid "" +"A bitfield describing the validity and meaning of the different aspects " +"of the destination. As far as possible, link destinations are constructed" +" such that e.g. :attr:`linkDest.lt` and :attr:`linkDest.rb` can be " +"treated as defining a bounding box. But the flags indicate which of the " +"values were actually specified, see :ref:`linkDest Flags`." +msgstr "" + +#: ../../linkdest.rst:49 ../../linkdest.rst:67 ../../linkdest.rst:91 +#: 3b848969f4524896b56f42ff138fb1c9 4f8b0dea71b94d5dbc70216822055473 +#: bcc9a9fb3afa46a898733753cf361878 +msgid "int" +msgstr "" + +#: ../../linkdest.rst:53 09670cfe131548ddaff754f8d49d8e50 +msgid "" +"This flag specifies whether to track the mouse position when the URI is " +"resolved. Default value: False." +msgstr "" + +#: ../../linkdest.rst:55 ../../linkdest.rst:61 ../../linkdest.rst:85 +#: 0f0bd710715f40efbacc9b29ff09ea21 44063c7c188e4ce083c47c800c7fe09f +#: 64522ffbee3a4d4a93db40e43a1b4f85 +msgid "bool" +msgstr "" + +#: ../../linkdest.rst:59 fbb535a20f504c3e943e5b5a817ff056 +msgid "" +"Specifies whether this destination is an internet resource (as opposed to" +" e.g. a local file specification in URI format)." +msgstr "" + +#: ../../linkdest.rst:65 ca4f535dd57b4577b7809ce0b0137464 +msgid "" +"Indicates the type of this destination, like a place in this document, a " +"URI, a file launch, an action or a place in another file. Look at " +":ref:`linkDest Kinds` to see the names and numerical values." +msgstr "" + +#: ../../linkdest.rst:71 47371977bcbb41fca7f337d5784b6648 +msgid "The top left :ref:`Point` of the destination." +msgstr "" + +#: ../../linkdest.rst:73 ../../linkdest.rst:97 8e3bc240ba0743959b8cbaa03d0dcff8 +#: c1283cb2f6344dc99b2a97cb147bba13 +msgid ":ref:`Point`" +msgstr "" + +#: ../../linkdest.rst:77 c723aab53cf843ebae6f749ce9ff4e59 +msgid "" +"This destination refers to some named action to perform (e.g. a " +"javascript, see :ref:`AdobeManual`). Standard actions provided are " +"*NextPage*, *PrevPage*, *FirstPage*, and *LastPage*." +msgstr "" + +#: ../../linkdest.rst:83 1a909731575743f18e88a17658993f9c +msgid "If true, the destination should be launched in a new window." +msgstr "" + +#: ../../linkdest.rst:89 09037d0a5d7f4c37a6408b92ec712af6 +msgid "" +"The page number (in this or the target document) this destination points " +"to. Only set if :attr:`linkDest.kind` is :data:`LINK_GOTOR` or " +":data:`LINK_GOTO`. May be *-1* if :attr:`linkDest.kind` is " +":data:`LINK_GOTOR`. In this case :attr:`linkDest.dest` contains the " +"**name** of a destination in the target document." +msgstr "" + +#: ../../linkdest.rst:95 c34d69f4dd99459b8b7b950ce4b817ef +msgid "The bottom right :ref:`Point` of this destination." +msgstr "" + +#: ../../linkdest.rst:101 ab5be4b38a0d488996cc185c94c3339d +msgid "The name of the URI this destination points to." +msgstr "" + +#: ../../footer.rst:46 fa618bdc623f48169996365910295fee +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/lowlevel.mo b/docs/locales/ko/LC_MESSAGES/lowlevel.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/lowlevel.po b/docs/locales/ko/LC_MESSAGES/lowlevel.po new file mode 100644 index 000000000..2457fa4a3 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/lowlevel.po @@ -0,0 +1,51 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 218a54ea43ac4940a4a60f2c3a6a2478 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 07e59acd2f254f13ab7d70dabdc0b0e5 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 b0edbb6b219e443c991a8de67143adf0 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../lowlevel.rst:5 ab1b60182cf44f4cbdbc96550824ae06 +msgid "Low Level Functions and Classes" +msgstr "" + +#: ../../lowlevel.rst:6 7cd71eb177ee46c7809cc02f9cf0360a +msgid "" +"Contains a number of functions and classes for the experienced user. To " +"be used for special needs or performance requirements." +msgstr "" + +#: ../../footer.rst:46 e5486934644f471b8a6673bf428a5c43 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/matrix.mo b/docs/locales/ko/LC_MESSAGES/matrix.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/matrix.po b/docs/locales/ko/LC_MESSAGES/matrix.po new file mode 100644 index 000000000..3d0994ef2 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/matrix.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 22b6a2a0571c4176bce077c545c814b3 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 73c9619ac3ee44d084a65d56842dc380 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 84065a34a4a14808906180f02e2efea2 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../matrix.rst:7 8a040befeffb44ac97583a22b00537bb +msgid "Matrix" +msgstr "" + +#: ../../matrix.rst:9 8eb69980d89943bb8e94c77820ab6263 +msgid "" +"Matrix is a row-major 3x3 matrix used by image transformations in MuPDF " +"(which complies with the respective concepts laid down in the " +":ref:`AdobeManual`). With matrices you can manipulate the rendered image " +"of a page in a variety of ways: (parts of) the page can be rotated, " +"zoomed, flipped, sheared and shifted by setting some or all of just six " +"float values." +msgstr "" + +#: ../../matrix.rst:12 99311bf26c5b4fd5b0df9afed1d8ff5a +msgid "" +"Since all points or pixels live in a two-dimensional space, one column " +"vector of that matrix is a constant unit vector, and only the remaining " +"six elements are used for manipulations. These six elements are usually " +"represented by `[a, b, c, d, e, f]`. Here is how they are positioned in " +"the matrix:" +msgstr "" + +#: ../../matrix.rst:17 981036c6e6c24d00adc24601b311399b +msgid "Please note:" +msgstr "" + +#: ../../matrix.rst:19 f1ae75aa82ce4a989a3afb538b648bd5 +msgid "" +"the below methods are just convenience functions -- everything they do, " +"can also be achieved by directly manipulating the six numerical values" +msgstr "" + +#: ../../matrix.rst:20 26c41674818040ab9d706c72f62e5b31 +msgid "" +"all manipulations can be combined -- you can construct a matrix that " +"rotates **and** shears **and** scales **and** shifts, etc. in one go. If " +"you however choose to do this, do have a look at the **remarks** further " +"down or at the :ref:`AdobeManual`." +msgstr "" + +#: ../../matrix.rst:23 afd4ea95b6d34a6e914cc64e20f4259b +msgid "**Method / Attribute**" +msgstr "" + +#: ../../matrix.rst:23 c34d2903bcee45ddb3cc5e621baefea0 +msgid "**Description**" +msgstr "" + +#: ../../matrix.rst:25 11abdcd6cd234d4fa95850fe12580df9 +msgid ":meth:`Matrix.prerotate`" +msgstr "" + +#: ../../matrix.rst:25 80427e602a66422cac1da53c44af455f +msgid "perform a rotation" +msgstr "" + +#: ../../matrix.rst:26 cad3e578828b433ba7ba0051be2032bf +msgid ":meth:`Matrix.prescale`" +msgstr "" + +#: ../../matrix.rst:26 a7e0bd6a201641fb912613e9f27fd76f +msgid "perform a scaling" +msgstr "" + +#: ../../matrix.rst:27 50c7f90d06004c62b19c6bff1b5a0ee9 +msgid ":meth:`Matrix.preshear`" +msgstr "" + +#: ../../matrix.rst:27 10745ab48ff842fa86f0dba65a8ac4c9 +msgid "perform a shearing (skewing)" +msgstr "" + +#: ../../matrix.rst:28 b4c7cc3f2aff4f929fd556b21396c232 +msgid ":meth:`Matrix.pretranslate`" +msgstr "" + +#: ../../matrix.rst:28 cefba85880554c02abc66d69a6a32faf +msgid "perform a translation (shifting)" +msgstr "" + +#: ../../matrix.rst:29 b3b9abc777594cf8b33d5290836afe88 +msgid ":meth:`Matrix.concat`" +msgstr "" + +#: ../../matrix.rst:29 fe1f3aa66e6042309e54265e9b99b18d +msgid "perform a matrix multiplication" +msgstr "" + +#: ../../matrix.rst:30 fb89b2f56f6247ac8fc9b88f34f7e6c1 +msgid ":meth:`Matrix.invert`" +msgstr "" + +#: ../../matrix.rst:30 4dab7517ebb647c78b179fbe83285a9f +msgid "calculate the inverted matrix" +msgstr "" + +#: ../../matrix.rst:31 3f0c29fd96594bd7824f5d9ab40c0fd7 +msgid ":meth:`Matrix.norm`" +msgstr "" + +#: ../../matrix.rst:31 bee6a79c30594e5a9982c37569a07722 +msgid "the Euclidean norm" +msgstr "" + +#: ../../matrix.rst:32 b0e601bc11b94c5b978faf3969d20262 +msgid ":attr:`Matrix.a`" +msgstr "" + +#: ../../matrix.rst:32 7bd503f42cb2438da182834d71fb2dd4 +msgid "zoom factor X direction" +msgstr "" + +#: ../../matrix.rst:33 b20b6e26dcf04b37bf9d3226d6b7720f +msgid ":attr:`Matrix.b`" +msgstr "" + +#: ../../matrix.rst:33 dc49e0f4424c40eaa3c9b116b0a0d20f +msgid "shearing effect Y direction" +msgstr "" + +#: ../../matrix.rst:34 d2e19dfdd9104ec19d44f40c663bcc03 +msgid ":attr:`Matrix.c`" +msgstr "" + +#: ../../matrix.rst:34 0a2f7dcd0de34db7a4c69a001674c37a +msgid "shearing effect X direction" +msgstr "" + +#: ../../matrix.rst:35 c72a8985cba049b487c8ffebefcf9d99 +msgid ":attr:`Matrix.d`" +msgstr "" + +#: ../../matrix.rst:35 c1fe0a57201a4eb6ad2a830ae1b17b15 +msgid "zoom factor Y direction" +msgstr "" + +#: ../../matrix.rst:36 e471bd7cfd92424ab1e5f3e5059d4be9 +msgid ":attr:`Matrix.e`" +msgstr "" + +#: ../../matrix.rst:36 d19ab3110ade4ac3b17c845a8c80fb37 +msgid "horizontal shift" +msgstr "" + +#: ../../matrix.rst:37 4a6eb68a255c4608873196c13298d411 +msgid ":attr:`Matrix.f`" +msgstr "" + +#: ../../matrix.rst:37 0f0db520282844e9869b27e82d6fba11 +msgid "vertical shift" +msgstr "" + +#: ../../matrix.rst:38 e75c12f64eee44059ea4b0762741fdb1 +msgid ":attr:`Matrix.is_rectilinear`" +msgstr "" + +#: ../../matrix.rst:38 bc57693d7a8c445eb2a7717732d081b9 +msgid "true if rect corners will remain rect corners" +msgstr "" + +#: ../../matrix.rst:41 01aaa6a5cece41dd86f5e6c6f0d08b42 +msgid "**Class API**" +msgstr "" + +#: ../../matrix.rst:59 56627216de1442368ffe90a40bd40b5a +msgid "Overloaded constructors." +msgstr "" + +#: ../../matrix.rst:61 ab9ade436b794d9cb70e8ec07c59573e +msgid "" +"Without parameters, the zero matrix *Matrix(0.0, 0.0, 0.0, 0.0, 0.0, " +"0.0)* will be created." +msgstr "" + +#: ../../matrix.rst:63 0ff005031e87475e82c82f509a503432 +msgid "" +"*zoom-** and *shear-** specify zoom or shear values (float) and create a " +"zoom or shear matrix, respectively." +msgstr "" + +#: ../../matrix.rst:65 3772827e3c4e46efaa66e0541654fbde +msgid "For \"matrix\" a **new copy** of another matrix will be made." +msgstr "" + +#: ../../matrix.rst:67 e0de220e569d4fb192d61776da7cc98d +msgid "" +"Float value \"degree\" specifies the creation of a rotation matrix which " +"rotates anti-clockwise." +msgstr "" + +#: ../../matrix.rst:69 202fbb08a1534f9b873b978d1ee2f25e +msgid "" +"A \"sequence\" must be any Python sequence object with exactly 6 float " +"entries (see :ref:`SequenceTypes`)." +msgstr "" + +#: ../../matrix.rst:71 3290c36cfd044349b8b73b9a12b39105 +msgid "" +"*pymupdf.Matrix(1, 1)* and *pymupdf.Matrix(pymupdf.Identity)* create " +"modifiable versions of the :ref:`Identity` matrix, which looks like *[1, " +"0, 0, 1, 0, 0]*." +msgstr "" + +#: ../../matrix.rst:75 2d27925e056c4beab39284c17c097dc8 +msgid "New in version 1.16.0" +msgstr "" + +#: ../../matrix.rst:77 23099b3eeb904d19a2fca93ba4ff4ac2 +msgid "Return the Euclidean norm of the matrix as a vector." +msgstr "" + +#: ../../matrix.rst:81 cf82a48349524343a3a9fb35951b2482 +msgid "" +"Modify the matrix to perform a counter-clockwise rotation for positive " +"*deg* degrees, else clockwise. The matrix elements of an identity matrix " +"will change in the following way:" +msgstr "" + +#: ../../matrix.rst:83 a024346df65d49e7bcdef1a35d0f0ea9 +msgid "*[1, 0, 0, 1, 0, 0] -> [cos(deg), sin(deg), -sin(deg), cos(deg), 0, 0]*." +msgstr "" + +#: ../../matrix.rst 0e2caa4b969d4e8c883315663dfbb010 +#: 2a76f7fdef494d7cb96fb9bcb0b288a0 44ed05851fab4cd4b3017cd0b82bc4f4 +#: 797389fbee9c42f6a11d44d628804863 c8b2675c06ee43c4abcd46c105be0f19 +#: e6e50d5d62724013ba993ce51b6e65a8 +msgid "Parameters" +msgstr "" + +#: ../../matrix.rst:85 34bf9b5e70b9486285ffd6799c5556ca +msgid "" +"The rotation angle in degrees (use conventional notation based on Pi = " +"180 degrees)." +msgstr "" + +#: ../../matrix.rst:89 94eb659613c24f939142b8fc6dd19ab4 +msgid "" +"Modify the matrix to scale by the zoom factors sx and sy. Has effects on " +"attributes *a* thru *d* only: *[a, b, c, d, e, f] -> [a*sx, b*sx, c*sy, " +"d*sy, e, f]*." +msgstr "" + +#: ../../matrix.rst:91 72c725939ccb4e8b90b12926ae88abec +msgid "" +"Zoom factor in X direction. For the effect see description of attribute " +"*a*." +msgstr "" + +#: ../../matrix.rst:93 2ef911aad48643e18db6f643f2613c9a +msgid "" +"Zoom factor in Y direction. For the effect see description of attribute " +"*d*." +msgstr "" + +#: ../../matrix.rst:97 a47d6e8530894f2aac1846c0416c7f14 +msgid "" +"Modify the matrix to perform a shearing, i.e. transformation of " +"rectangles into parallelograms (rhomboids). Has effects on attributes *a*" +" thru *d* only: *[a, b, c, d, e, f] -> [c*sy, d*sy, a*sx, b*sx, e, f]*." +msgstr "" + +#: ../../matrix.rst:99 7af0396c77db4280bd8b6ef9764cab2d +msgid "Shearing effect in X direction. See attribute *c*." +msgstr "" + +#: ../../matrix.rst:101 5a8d7d2b58c348f0bf481d54d9ff5b01 +msgid "Shearing effect in Y direction. See attribute *b*." +msgstr "" + +#: ../../matrix.rst:105 152c5f45800e42b6a038fee68ba116d4 +msgid "" +"Modify the matrix to perform a shifting / translation operation along the" +" x and / or y axis. Has effects on attributes *e* and *f* only: *[a, b, " +"c, d, e, f] -> [a, b, c, d, tx*a + ty*c, tx*b + ty*d]*." +msgstr "" + +#: ../../matrix.rst:107 8b15e98fb7734d2fb7d3a90c734616fd +msgid "Translation effect in X direction. See attribute *e*." +msgstr "" + +#: ../../matrix.rst:109 1ac03cdeaadf47039b40d141265dad51 +msgid "Translation effect in Y direction. See attribute *f*." +msgstr "" + +#: ../../matrix.rst:113 a7232949340949e6bee6b5a75b157849 +msgid "" +"Calculate the matrix product *m1 * m2* and store the result in the " +"current matrix. Any of *m1* or *m2* may be the current matrix. Be aware " +"that matrix multiplication is not commutative. So the sequence of *m1*, " +"*m2* is important." +msgstr "" + +#: ../../matrix.rst:115 c868c7bce6e24c17aefb279a2b589bad +msgid "First (left) matrix." +msgstr "" + +#: ../../matrix.rst:118 6a23a720cc824c018154df578fbe2287 +msgid "Second (right) matrix." +msgstr "" + +#: ../../matrix.rst:123 c1c62753df994db5a29eaf60b74d5311 +msgid "" +"Calculate the matrix inverse of *m* and store the result in the current " +"matrix. Returns *1* if *m* is not invertible (\"degenerate\"). In this " +"case the current matrix **will not change**. Returns *0* if *m* is " +"invertible, and the current matrix is replaced with the inverted *m*." +msgstr "" + +#: ../../matrix.rst:125 6f3f8c966b71407b9e3b02488f7f4034 +msgid "Matrix to be inverted. If not provided, the current matrix will be used." +msgstr "" + +#: ../../matrix.rst e8077cac107d4551bdd9b1c1d14a4952 +msgid "Return type" +msgstr "" + +#: ../../matrix.rst:132 db229e59a31b455b98ea5ccfa578122a +msgid "" +"Scaling in X-direction **(width)**. For example, a value of 0.5 performs " +"a shrink of the **width** by a factor of 2. If a < 0, a left-right flip " +"will (additionally) occur." +msgstr "" + +#: ../../matrix.rst 6fcedf91827d4c289e6a645364d76ea6 +#: 8654b40d08014804b0c0e8c304580291 96cbe6754a4b4f99bb7e0e80e180c0a6 +#: afc20c369a9f4c739bc1f16197754859 c2c0c17a6a334d9daf1a246b0a95ca15 +#: fab66c3105f3412b8e17b401ecfe57ab fceb1d67502e44b49baa260b088dd68f +msgid "type" +msgstr "" + +#: ../../matrix.rst:134 ../../matrix.rst:140 ../../matrix.rst:146 +#: ../../matrix.rst:152 ../../matrix.rst:158 ../../matrix.rst:164 +#: 137024cc37b74d68971a780ab821bb5c 20de69effd914f3f92727bc07f7de025 +#: 5804209069a04b28ae858ceb0466f4d1 5b5b333b8cb346858ac4e11335709c2a +#: 789de033d5c0443997dabc1c08157dbc 867fd680a9e9402583480286d03e27ca +msgid "float" +msgstr "" + +#: ../../matrix.rst:138 c229f8ba4d804490b761e624fe313b6d +msgid "" +"Causes a shearing effect: each `Point(x, y)` will become `Point(x, y - " +"b*x)`. Therefore, horizontal lines will be \"tilt\"." +msgstr "" + +#: ../../matrix.rst:144 7b98255d69974126bcf901feb1b268f6 +msgid "" +"Causes a shearing effect: each `Point(x, y)` will become `Point(x - c*y, " +"y)`. Therefore, vertical lines will be \"tilt\"." +msgstr "" + +#: ../../matrix.rst:150 ac4f38489ad847b7827dcac0e26521a5 +msgid "" +"Scaling in Y-direction **(height)**. For example, a value of 1.5 performs" +" a stretch of the **height** by 50%. If d < 0, an up-down flip will " +"(additionally) occur." +msgstr "" + +#: ../../matrix.rst:156 9660c53c0df84ae99b72badb3989dddf +msgid "" +"Causes a horizontal shift effect: Each *Point(x, y)* will become *Point(x" +" + e, y)*. Positive (negative) values of *e* will shift right (left)." +msgstr "" + +#: ../../matrix.rst:162 96c71528239744f1b8cd967c2e46cb62 +msgid "" +"Causes a vertical shift effect: Each *Point(x, y)* will become *Point(x, " +"y - f)*. Positive (negative) values of *f* will shift down (up)." +msgstr "" + +#: ../../matrix.rst:168 fbbefd1680244e43b84002ed9a436dec +msgid "" +"Rectilinear means that no shearing is present and that any rotations are " +"integer multiples of 90 degrees. Usually this is used to confirm that " +"(axis-aligned) rectangles before the transformation are still axis-" +"aligned rectangles afterwards." +msgstr "" + +#: ../../matrix.rst:170 36d4d94103214600af41eafe39212e90 +msgid "bool" +msgstr "" + +#: ../../matrix.rst:174 90ffe958045f48d090dba5ba44f73165 +msgid "" +"This class adheres to the Python sequence protocol, so components can be " +"accessed via their index, too. Also refer to :ref:`SequenceTypes`." +msgstr "" + +#: ../../matrix.rst:175 ae28f509b9434158ad3509b43fcadd26 +msgid "" +"Matrices can be used with arithmetic operators almost like ordinary " +"numbers: they can be added, subtracted, multiplied or divided -- see " +"chapter :ref:`Algebra`." +msgstr "" + +#: ../../matrix.rst:176 8bec4a086d304bbb9bfd022e4556dd29 +msgid "" +"Matrix multiplication is **not commutative** -- changing the sequence of " +"the multiplicands will change the result in general. So it can quickly " +"become unclear which result a transformation will yield." +msgstr "" + +#: ../../matrix.rst:180 281fd31e543c4617a40894e7ac37597e +msgid "Examples" +msgstr "" + +#: ../../matrix.rst:181 401084daabc9429b9009d38c9e0f2aec +msgid "" +"Here are examples that illustrate some of the achievable effects. All " +"pictures show some text, inserted under control of some matrix and " +"relative to a fixed reference point (the red dot)." +msgstr "" + +#: ../../matrix.rst:183 ef95f7140bc84ceb80f3fe9cc5ffe0d2 +msgid "The :ref:`Identity` matrix performs no operation." +msgstr "" + +#: ../../matrix.rst:188 a80fc2a091374e8cb6815dfe8672bddd +msgid "" +"The scaling matrix `Matrix(2, 0.5)` stretches by a factor of 2 in " +"horizontal, and shrinks by factor 0.5 in vertical direction." +msgstr "" + +#: ../../matrix.rst:193 9699134c66a146af9068adb90948b8f2 +msgid "" +"Attributes :attr:`Matrix.e` and :attr:`Matrix.f` shift horizontally and, " +"respectively vertically. In the following 10 to the right and 20 down." +msgstr "" + +#: ../../matrix.rst:198 168fe9a931a94651ac55f633dffbe987 +msgid "A negative :attr:`Matrix.a` causes a left-right flip." +msgstr "" + +#: ../../matrix.rst:203 f2cb4722af2e45f6ac67fda814935ea4 +msgid "A negative :attr:`Matrix.d` causes an up-down flip." +msgstr "" + +#: ../../matrix.rst:208 28cc582a5ec24205816af0c892b692d1 +msgid "Attribute :attr:`Matrix.b` tilts upwards / downwards along the x-axis." +msgstr "" + +#: ../../matrix.rst:213 a2b77644fc61456690d3603561dae948 +msgid "Attribute :attr:`Matrix.c` tilts left / right along the y-axis." +msgstr "" + +#: ../../matrix.rst:218 bd842bfbd48b44509584185764d44373 +msgid "" +"Matrix `Matrix(beta)` performs counterclockwise rotations for positive " +"angles `beta`." +msgstr "" + +#: ../../matrix.rst:223 ac0b2cc97b1347ab9f63fa8f97f50072 +msgid "Show some effects on a rectangle::" +msgstr "" + +#: ../../footer.rst:46 2a49496b580540908297c502618954b2 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/module.mo b/docs/locales/ko/LC_MESSAGES/module.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/module.po b/docs/locales/ko/LC_MESSAGES/module.po new file mode 100644 index 000000000..6d360c528 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/module.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 62136ba5c5a74ecfa227336e448d62b5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 6fc9c3c622e84783910d3b11c3709f37 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 d611277d72c64dd99b3b9f2f8ec96367 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../module.rst:7 f33c4cbb9f05422084dddcddaf87949a +msgid "Command line interface" +msgstr "" + +#: ../../module.rst:9 9f557fd4350a42ed9a1df58860be9669 +msgid "New in version 1.16.8" +msgstr "" + +#: ../../module.rst:11 ecd7d23131464943807a4fb959173755 +msgid "" +"PyMuPDF can also be used from the command line to perform utility " +"functions. This feature should obsolete writing some of the most basic " +"scripts." +msgstr "" + +#: ../../module.rst:13 20b8d208b65e4c74bf7ad83bfb388393 +msgid "" +"Admittedly, there is some functional overlap with the MuPDF CLI `mutool`." +" On the other hand, PDF embedded files are no longer supported by MuPDF, " +"so PyMuPDF is offering something unique here." +msgstr "" + +#: ../../module.rst:16 61944c3cbe72440580bdadeeb1269b75 +msgid "Invocation" +msgstr "" + +#: ../../module.rst:18 295dfa35e12a40d48e27c0055204d5a7 +msgid "The command-line interface can be invoked in two ways." +msgstr "" + +#: ../../module.rst:20 7177082a690146019882a6b232aa8853 +msgid "Use the installed `pymupdf` command::" +msgstr "" + +#: ../../module.rst:24 87e819afc653442caceed77952e1ed58 +msgid "Or use Python's `-m` switch with PyMuPDF's `pymupdf` module::" +msgstr "" + +#: ../../module.rst:31 c1e7f23de6ef452a83faa31ed988d657 +msgid "General remarks:" +msgstr "" + +#: ../../module.rst:33 fd3bac8dc3e9421eb2371c451ec1c3da +msgid "" +"Request help via `\"-h\"`, resp. command-specific help via `\"command " +"-h\"`." +msgstr "" + +#: ../../module.rst:34 dbd5a72f66d84df5b18b6bec2f4fd2f5 +msgid "Parameters may be abbreviated where this does not introduce ambiguities." +msgstr "" + +#: ../../module.rst:35 73cd69c626714f7aa1e084d11447cea6 +msgid "" +"Several commands support parameters `-pages` and `-xrefs`. They are " +"intended for down-selection. Please note that:" +msgstr "" + +#: ../../module.rst:37 7ff6972a285a4695baa4e4276641b755 +msgid "**page numbers** for this utility must be given **1-based**." +msgstr "" + +#: ../../module.rst:38 b9688dc1937342d0a9ba2a88937c6d0a +msgid "valid :data:`xref` numbers start at 1." +msgstr "" + +#: ../../module.rst:39 7c0c1890d37b41f6820770dd6bed4376 +msgid "" +"Specify a comma-separated list of either *single* integers or integer " +"*ranges*. A **range** is a pair of integers separated by one hyphen " +"\"-\". Integers must not exceed the maximum page, resp. xref number. To " +"specify that maximum, the symbolic variable \"N\" may be used. Integers " +"or ranges may occur several times, in any sequence and may overlap. If in" +" a range the first number is greater than the second one, the respective " +"items will be processed in reversed order." +msgstr "" + +#: ../../module.rst:41 ee46edb0ea2b44e98364d207aaa2d1ef +msgid "How to use the module inside your script::" +msgstr "" + +#: ../../module.rst:50 123a2e5ad2564826b878adadaf638eeb +msgid "" +"Use the following 2-liner and compile it with `Nuitka " +"`_ in standalone mode. This will give " +"you a CLI executable with all the module's features, that can be used on " +"all compatible platforms without Python, PyMuPDF or MuPDF being " +"installed." +msgstr "" + +#: ../../module.rst:59 621c5379e7d44e29a5ae735c58352834 +msgid "Cleaning and Copying" +msgstr "" + +#: ../../module.rst:63 a41c329fb87940c482d0805086ecc3cf +msgid "" +"This command will optimize the PDF and store the result in a new file. " +"You can use it also for encryption, decryption and creating sub " +"documents. It is mostly similar to the MuPDF command line utility " +"*\"mutool clean\"*::" +msgstr "" + +#: ../../module.rst:96 95c61ecff9474da7a32002be18ff00b3 +msgid "" +"If you specify \"-pages\", be aware that only page-related objects are " +"copied, **no document-level items** like e.g. embedded files." +msgstr "" + +#: ../../module.rst:98 958ae9bd4e2244ae9cbb5d24a62a8c94 +msgid "Please consult :meth:`Document.save` for the parameter meanings." +msgstr "" + +#: ../../module.rst:102 5b59f04532e94259bf5b3ecd530ca408 +msgid "Extracting Fonts and Images" +msgstr "" + +#: ../../module.rst:103 170896a4fb624362bfbd8172cf909da4 +msgid "Extract fonts or images from selected PDF pages to a desired directory::" +msgstr "" + +#: ../../module.rst:123 220fe33385e844f3928ec0625f051414 +msgid "" +"**Image filenames** are built according to the naming scheme: **\"img-" +"xref.ext\"**, where \"ext\" is the extension associated with the image " +"and \"xref\" the :data:`xref` of the image PDF object." +msgstr "" + +#: ../../module.rst:125 d56994d8f2a8433280e4ef35819f2e7a +msgid "" +"**Font filenames** consist of the fontname and the associated extension. " +"Any spaces in the fontname are replaced with hyphens \"-\"." +msgstr "" + +#: ../../module.rst:127 a8e1a30f5fde401d810825a6e3b01a09 +msgid "The output directory must already exist." +msgstr "" + +#: ../../module.rst:129 f2bc1eaf74014a2c9c0473449a9e7b11 +msgid "" +"Except for output directory creation, this feature is **functionally " +"equivalent** to and obsoletes `this script `_." +msgstr "" + +#: ../../module.rst:133 b52a0c02382d4e9abbd491e7b26f50d8 +msgid "Joining PDF Documents" +msgstr "" + +#: ../../module.rst:134 b52dba2292bb478f86d8bd2a68e72d49 +msgid "To join several PDF files specify::" +msgstr "" + +#: ../../module.rst:153 e75a700cceee42eda662850bcb411254 +msgid "" +"Each input must be entered as **\"filename,password,pages\"**. Password " +"and pages are optional." +msgstr "" + +#: ../../module.rst:154 5bbc4bbfbbe44ea29ce63dc28468ecde +msgid "" +"The password entry **is required** if the \"pages\" entry is used. If the" +" PDF needs no password, specify two commas." +msgstr "" + +#: ../../module.rst:155 24124b66f3f9496c9cba03a6c3987619 +msgid "" +"The **\"pages\"** format is the same as explained at the top of this " +"section." +msgstr "" + +#: ../../module.rst:156 6c8cd3be3fd844a18d6859e34270344c +msgid "" +"Each input file is immediately closed after use. Therefore you can use " +"one of them as output filename, and thus overwrite it." +msgstr "" + +#: ../../module.rst:159 62faf24e6a7143aca5c2f6d4d0a3bd13 +msgid "Example: To join the following files" +msgstr "" + +#: ../../module.rst:161 088838df3b2545f8801c172c3bc996f0 +msgid "**file1.pdf:** all pages, back to front, no password" +msgstr "" + +#: ../../module.rst:162 72f4cc0b55a64f16a43ce016fb9d46a0 +msgid "**file2.pdf:** last page, first page, password: \"secret\"" +msgstr "" + +#: ../../module.rst:163 518dcf41451c4ab098ae80c98c705da7 +msgid "**file3.pdf:** pages 5 to last, no password" +msgstr "" + +#: ../../module.rst:165 579e18430ffe47deaf32eb9b5bb856c7 +msgid "and store the result as **output.pdf** enter this command:" +msgstr "" + +#: ../../module.rst:167 945d0c96b4b34fc782a86ae2fcf40aa5 +msgid "" +"``pymupdf join -o output.pdf file1.pdf,,N-1 file2.pdf,secret,N,1 " +"file3.pdf,,5-N``" +msgstr "" + +#: ../../module.rst:171 45664921245f42c09b294edb251048f5 +msgid "Low Level Information" +msgstr "" + +#: ../../module.rst:173 fdf3d7f12d914afe950de66d094693fa +msgid "" +"Display PDF internal information. Again, there are similarities to " +"*\"mutool show\"*::" +msgstr "" + +#: ../../module.rst:194 ad5c07b578e24a87b4bdfa72f035288d +msgid "Examples::" +msgstr "" + +#: ../../module.rst:243 a932285ed88f489cb35fb9fd00084410 +msgid "Embedded Files Commands" +msgstr "" + +#: ../../module.rst:245 22fe7451356d4b07a68f7b814a48f7db +msgid "" +"The following commands deal with embedded files -- which is a feature " +"completely removed from MuPDF after v1.14, and hence from all its command" +" line tools." +msgstr "" + +#: ../../module.rst:248 031889fce5ba40c8aa00dca7f543935f +msgid "Information" +msgstr "" + +#: ../../module.rst:250 923441e6e99c4679913ea9650bd321f3 +msgid "Show the embedded file names (long or short format)::" +msgstr "" + +#: ../../module.rst:266 2938ace8fd974862bd2b852f6d01c1b5 +msgid "Example::" +msgstr "" + +#: ../../module.rst:287 4b906057dfa84c65ba2f7b3875e76f45 +msgid "Detailed output would look like this per entry::" +msgstr "" + +#: ../../module.rst:297 fa6b969dc09f4e7aa8ddad1a74b85f27 +msgid "Extraction" +msgstr "" + +#: ../../module.rst:299 b95b620ad9f548139f65380c81a609eb +msgid "Extract an embedded file like this::" +msgstr "" + +#: ../../module.rst:317 b425246653d244139ee6064fef0cce03 +msgid "" +"For details consult :meth:`Document.embfile_get`. Example (refer to " +"previous section)::" +msgstr "" + +#: ../../module.rst:323 beb7e7b57a2d40d7b80215a90a015016 +msgid "Deletion" +msgstr "" + +#: ../../module.rst:324 a66d4e86731745edabc9c4f4e5e0bb9f +msgid "Delete an embedded file like this::" +msgstr "" + +#: ../../module.rst:340 c7c9134eddaa4ad2b9672122f1aa8fe9 +msgid "For details consult :meth:`Document.embfile_del`." +msgstr "" + +#: ../../module.rst:343 8027d6ea455e4050ace1ead2c3a951fb +msgid "Insertion" +msgstr "" + +#: ../../module.rst:344 05c0ffa1d1fd4495a04887a13fa6a0ff +msgid "Add a new embedded file using this command::" +msgstr "" + +#: ../../module.rst:364 a3ce7e14c5a6493190e34f36253a7b11 +msgid "" +"*\"NAME\"* **must not** already exist in the PDF. For details consult " +":meth:`Document.embfile_add`." +msgstr "" + +#: ../../module.rst:367 8b7188f7140248f2ace12ff2559a5810 +msgid "Updates" +msgstr "" + +#: ../../module.rst:368 bf7de82ffcc6488492d7f1ed813a78d7 +msgid "Update an existing embedded file using this command::" +msgstr "" + +#: ../../module.rst:393 dfb87b27e010457ea91a44ac1607508d +msgid "" +"Use this method to change meta-information of the file -- just omit the " +"*\"PATH\"*. For details consult :meth:`Document.embfile_upd`." +msgstr "" + +#: ../../module.rst:397 9724107b71a3473586bf932f86556d37 +msgid "Copying" +msgstr "" + +#: ../../module.rst:398 320c9dfca9614ce1aad38deec15e2f14 +msgid "Copy embedded files between PDFs::" +msgstr "" + +#: ../../module.rst:422 4f474c3c92134dbf92a95d04287f6b7c +msgid "Text Extraction" +msgstr "" + +#: ../../module.rst:423 10013955206643cdabf54b9427cf9162 +msgid "New in v1.18.16" +msgstr "" + +#: ../../module.rst:425 6175e1799fe14be7857049aacbf4f76e +msgid "" +"Extract text from arbitrary :ref:`supported " +"documents` to a textfile. Currently, there are " +"three output formatting modes available: simple, block sorting and " +"reproduction of physical layout." +msgstr "" + +#: ../../module.rst:427 104746a6d24348c085e4d1f05530f3c4 +msgid "" +"**Simple** text extraction reproduces all text as it appears in the " +"document pages -- no effort is made to rearrange in any particular " +"reading order." +msgstr "" + +#: ../../module.rst:428 46976f7ba91e4ed195d1d2970b450ce8 +msgid "" +"**Block sorting** sorts text blocks (as identified by MuPDF) by ascending" +" vertical, then horizontal coordinates. This should be sufficient to " +"establish a \"natural\" reading order for basic pages of text." +msgstr "" + +#: ../../module.rst:429 736d584551084ce0ae8db3ab132de413 +msgid "" +"**Layout** strives to reproduce the original appearance of the input " +"pages. You can expect results like this (produced by the command `pymupdf" +" gettext -pages 1 demo1.pdf`):" +msgstr "" + +#: ../../module.rst:434 50eb59c01b5243e4a1beb240596e9fcf +msgid "" +"The \"gettext\" command offers a functionality similar to the CLI tool " +"`pdftotext` by XPDF software, http://www.foolabs.com/xpdf/ -- this is " +"especially true for \"layout\" mode, which combines that tool's `-layout`" +" and `-table` options." +msgstr "" + +#: ../../module.rst:438 49563f540be445d984dba68ffffbfe02 +msgid "" +"After each page of the output file, a formfeed character, `hex(12)` is " +"written -- even if the input page has no text at all. This behavior can " +"be controlled via options." +msgstr "" + +#: ../../module.rst:440 647dbf1080904cb5b86c438feafcb584 +msgid "" +"For \"layout\" mode, **only horizontal, left-to-right, top-to bottom** " +"text is supported, other text is ignored. In this mode, text is also " +"ignored, if its :data:`fontsize` is too small." +msgstr "" + +#: ../../module.rst:442 baeab1e7bac9497995324b659ebebf03 +msgid "" +"\"Simple\" and \"blocks\" mode in contrast output **all text** for any " +"text size or orientation." +msgstr "" + +#: ../../module.rst:444 8617ac5a55024a57b4b1d70bdb264ced +msgid "Command::" +msgstr "" + +#: ../../module.rst:472 f1019c52949f4174acd4b9381a394601 +msgid "" +"Command options may be abbreviated as long as no ambiguities are " +"introduced. So the following do the same:" +msgstr "" + +#: ../../module.rst:474 d70e9f44b99141809981474f2ff8b052 +msgid "" +"`... -output text.txt -noligatures -noformfeed -convert-white -grid 3 " +"-extra-spaces ...`" +msgstr "" + +#: ../../module.rst:475 07cb51f3b38747abbb4010f810490249 +msgid "`... -o text.txt -nol -nof -c -g 3 -e ...`" +msgstr "" + +#: ../../module.rst:477 f16b9ac2c6c14bd5bb7fcea64f1fcd80 +msgid "" +"The output filename defaults to the input with its extension replaced by " +"`.txt`. As with other commands, you can select page ranges **(caution: " +"1-based!)** in `mutool` format, as indicated above." +msgstr "" + +#: ../../module.rst:479 f23822348e0f44868acd1a434c638317 +msgid "**mode:** (str) select a formatting mode -- default is \"layout\"." +msgstr "" + +#: ../../module.rst:480 34f6f03b6b7c4d14b5b53d480ad19652 +msgid "" +"**noligatures:** (bool) corresponds to **not** " +":data:`TEXT_PRESERVE_LIGATURES`. If specified, ligatures (present in " +"advanced fonts: glyphs combining multiple characters like \"fi\") are " +"split up into their components (i.e. \"f\", \"i\"). Default is passing " +"them through." +msgstr "" + +#: ../../module.rst:481 7ad52df691114a03bf07a72f2434d4a9 +msgid "" +"**convert-white:** corresponds to **not** " +":data:`TEXT_PRESERVE_WHITESPACE`. If specified, all white space " +"characters (like tabs) are replaced with one or more spaces. Default is " +"passing them through." +msgstr "" + +#: ../../module.rst:482 b925a23489d24b3396cf53888050c32d +msgid "" +"**extra-spaces:** (bool) corresponds to **not** " +":data:`TEXT_INHIBIT_SPACES`. If specified, large gaps between adjacent " +"characters will be filled with one or more spaces. Default is off." +msgstr "" + +#: ../../module.rst:483 9d95e72389b3445ba510fb682107c642 +msgid "" +"**noformfeed:** (bool) instead of `hex(12)` (formfeed), write linebreaks" +" ``\\n`` at end of output pages." +msgstr "" + +#: ../../module.rst:484 703f5774d5234679a03f67da753bc40a +msgid "**skip-empty:** (bool) skip pages with no text." +msgstr "" + +#: ../../module.rst:485 8f19a7610cc64fc88819c1b7fc295330 +msgid "" +"**grid:** lines with a vertical coordinate difference of no more than " +"this value (in points) will be merged into the same output line. Only " +"relevant for \"layout\" mode. **Use with care:** 3 or the default 2 " +"should be adequate in most cases. If **too large**, lines that are " +"*intended* to be different in the original may be merged and will result " +"in garbled and / or incomplete output. If **too low**, artifact separate " +"output lines may be generated for some spans in the input line, just " +"because they are coded in a different font with slightly deviating " +"properties." +msgstr "" + +#: ../../module.rst:486 eac14db14ad14562a3b3b10a76827016 +msgid "" +"**fontsize:** include text with :data:`fontsize` larger than this value " +"only (default 3). Only relevant for \"layout\" option." +msgstr "" + +#: ../../footer.rst:46 bf24bcacdf454aba8a6c79d83a00209b +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/outline.mo b/docs/locales/ko/LC_MESSAGES/outline.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/outline.po b/docs/locales/ko/LC_MESSAGES/outline.po new file mode 100644 index 000000000..6c99fd20b --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/outline.po @@ -0,0 +1,228 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 bbc8f87339104f1898b46c688e53d1bf +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 c349cfed692041d1831e68981b1432f3 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 ccc1347133a5468990182905e2e49042 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../outline.rst:7 ac9aff233a8946e286c95d2a2f9a8e13 +msgid "Outline" +msgstr "" + +#: ../../outline.rst:9 7a3be59ed3114a5c8bffd3f17bbb2211 +msgid "" +"The document outline (otherwise known as \"bookmarks\") is a property of " +":ref:`Document` (see :attr:`Document.outline`). If not ``None``, it " +"stands for the first outline item of the document. Its properties in turn" +" define the characteristics of this item and also point to other outline " +"items in \"horizontal\" or downward direction. The full tree of all " +"outline items for e.g. a conventional table of contents (TOC) can be " +"recovered by following these \"pointers\"." +msgstr "" + +#: ../../outline.rst:12 b45a2c09637c4f3e9d2b01f1ba92a39f +msgid "**Method / Attribute**" +msgstr "" + +#: ../../outline.rst:12 47ad240edf4f474fa4acbc5fda0372cb +msgid "**Short Description**" +msgstr "" + +#: ../../outline.rst:14 be403d58c4de4b12a011b9ed0d0e543f +msgid ":attr:`Outline.down`" +msgstr "" + +#: ../../outline.rst:14 247939926687419fbfef8ca1aca02f0d +msgid "next item downwards" +msgstr "" + +#: ../../outline.rst:15 96c69672ce3043259545e0e655eb91db +msgid ":attr:`Outline.next`" +msgstr "" + +#: ../../outline.rst:15 4a5f23f96cf749c7872473b681590785 +msgid "next item same level" +msgstr "" + +#: ../../outline.rst:16 c573402a06284cd492bec3c1d27d1e3d +msgid ":attr:`Outline.page`" +msgstr "" + +#: ../../outline.rst:16 506be6a2e42d4302bdbc7b4e28e2394d +msgid "page number (0-based)" +msgstr "" + +#: ../../outline.rst:17 f119da14666b4fd3b371cf4ffc3e472a +msgid ":attr:`Outline.title`" +msgstr "" + +#: ../../outline.rst:17 76ae4b21a6a6447da64b2d5e96423ea6 +msgid "title" +msgstr "" + +#: ../../outline.rst:18 a5fad59c22974e90b9ea8aad24218452 +msgid ":attr:`Outline.uri`" +msgstr "" + +#: ../../outline.rst:18 841c94119419481b8d836018ece01af9 +msgid "string further specifying outline target" +msgstr "" + +#: ../../outline.rst:19 8cfeb148873e49c09a78d54e1a2f77c6 +msgid ":attr:`Outline.is_external`" +msgstr "" + +#: ../../outline.rst:19 8a8f02b1287645c8905eec8793a1b5b6 +msgid "target outside document" +msgstr "" + +#: ../../outline.rst:20 5de9d126a21d480a9e1ca3476bebb4d3 +msgid ":attr:`Outline.is_open`" +msgstr "" + +#: ../../outline.rst:20 7fc18da2ba4d4cbe9f3b2a82d39f02da +msgid "whether sub-outlines are open or collapsed" +msgstr "" + +#: ../../outline.rst:21 6aa64d2eff674fa2890310aecbb14167 +msgid ":attr:`Outline.dest`" +msgstr "" + +#: ../../outline.rst:21 0a87f99431e642139f4b43d536359abe +msgid "points to destination details object" +msgstr "" + +#: ../../outline.rst:24 5ed102082bf84d049ca1f0ce22437f31 +msgid "**Class API**" +msgstr "" + +#: ../../outline.rst:30 7b0ddca9a47d4e648ebdab93710cb150 +msgid "" +"The next outline item on the next level down. Is ``None`` if the item has" +" no children." +msgstr "" + +#: ../../outline.rst 057e37ce84814a1c8c344aab938047f2 +#: 1e93414e062d488e892d2f22750666de 76ab3bd1d70641f185a95f718ad0bb69 +#: 7bd6079115d0441a82b8de2daaa1f4f9 9ecaaca5f8fd42c5b695d3f7ac9a5477 +#: bc6ef4078c8a4c91a859ae4437517df7 e5dc2bd2705743d59033178491288a7a +#: ea89654da5734c92aa2797336d8dfbc6 +msgid "type" +msgstr "" + +#: ../../outline.rst:32 8b64d66496a54db0908a0f6af0d7969e +msgid ":ref:`Outline`" +msgstr "" + +#: ../../outline.rst:36 b8f40bec44ec498a866b8b610465788d +msgid "" +"The next outline item at the same level as this item. Is ``None`` if this" +" is the last one in its level." +msgstr "" + +#: ../../outline.rst:38 78788e777e334a73bb007bf2b10702b8 +msgid "`Outline`" +msgstr "" + +#: ../../outline.rst:42 e0f2f185ffc545688e36397b2ab22051 +msgid "The page number (0-based) this bookmark points to." +msgstr "" + +#: ../../outline.rst:44 f47207285d9f4747a109ad0f93928b78 +msgid "int" +msgstr "" + +#: ../../outline.rst:48 53ed66d010ce46c8a8afa6580844ac5d +msgid "The item's title as a string or ``None``." +msgstr "" + +#: ../../outline.rst:50 ../../outline.rst:83 f43c0734193d4aedae69249948755e99 +#: fc9bbc88a2e842c090ac4d2ea7adf221 +msgid "str" +msgstr "" + +#: ../../outline.rst:54 d0a15fed61c5446e815f91424b141eab +msgid "" +"Indicator showing whether any sub-outlines should be expanded (``True``) " +"or be collapsed (``False``). This information is interpreted by PDF " +"reader software." +msgstr "" + +#: ../../outline.rst:56 ../../outline.rst:62 1e2367a870064e0ab9fefe235f8f9199 +#: 309c517aaa49400181d997b03fb6d487 +msgid "bool" +msgstr "" + +#: ../../outline.rst:60 eabf7026067444bd881e44370ac424e5 +msgid "" +"A bool specifying whether the target is outside (``True``) of the current" +" document." +msgstr "" + +#: ../../outline.rst:66 6e1ed475f293437aa748d4d40f55bbc0 +msgid "" +"A string specifying the link target. The meaning of this property should " +"be evaluated in conjunction with property `is_external`:" +msgstr "" + +#: ../../outline.rst:70 048200e34ebe4f88b8f6ecdfad9e9724 +msgid "" +"`is_external` is true: ``uri`` points to some target outside the current " +"PDF, which may be an internet resource (``uri`` starts with ``http://`` " +"or similar), another file (``uri`` starts with ``file:`` or ``file://``) " +"or some other service like an e-mail address (``uri`` starts with " +"``mailto:``)." +msgstr "" + +#: ../../outline.rst:76 e2b37e452977480aadfbf5e2b8eb7ced +msgid "" +"`is_external` is false: ``uri`` will be `None` or point to an internal " +"location. In case of PDF documents, this should either be *#nnnn* to " +"indicate a 1-based (!) page number *nnnn*, or a named location. The " +"format varies for other document types, for example " +"\"../FixedDoc.fdoc#PG_2_LNK_1\" for page number 2 (1-based) in an XPS " +"document." +msgstr "" + +#: ../../outline.rst:87 0774302e2b4a4cc5be36f90e97235665 +msgid "The link destination details object." +msgstr "" + +#: ../../outline.rst:89 2c95888d87c844888823cf7c4bfbdd8d +msgid ":ref:`linkDest`" +msgstr "" + +#: ../../footer.rst:46 3da3281d20a349b2afbe0ca6afa704a3 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/packaging.mo b/docs/locales/ko/LC_MESSAGES/packaging.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/packaging.po b/docs/locales/ko/LC_MESSAGES/packaging.po new file mode 100644 index 000000000..43052af23 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/packaging.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 3c04d07515a94932a13a95ebeb03dd64 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 bfe728bc4ddc474bb035cd55e714eabf +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 cdf2aaae85c74803bd7026f6e124be96 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../packaging.rst:5 348e8764195645e2bf7ae0ae58e6672e +msgid "Packaging for Linux distributions" +msgstr "" + +#: ../../packaging.rst:9 cb613445a87e445abba22e57ddb58ec7 +msgid "Requirements" +msgstr "" + +#: ../../packaging.rst:11 b36b1e7d3fc94b0d9d5c31f4cae79c63 +msgid "Python" +msgstr "" + +#: ../../packaging.rst:12 4edcec2efc2d4308ad735f013faa422e +msgid "MuPDF checkout (including submodules)." +msgstr "" + +#: ../../packaging.rst:13 c463c998f736479f892c6b4c57f77d89 +msgid "PyMuPDF checkout." +msgstr "" + +#: ../../packaging.rst:14 dbadca79b99f4a80ace5240c78bde785 +msgid "System packages listed in `scripts/sysinstall.py:g_sys_packages`." +msgstr "" + +#: ../../packaging.rst:15 760e1814501643e8ba68b67bc653f179 +msgid "Python packages listed in `pyproject.toml`." +msgstr "" + +#: ../../packaging.rst:17 7b5ae3db64eb472daed8e6bad3fbf7ac +msgid "Extra requirements for running tests:" +msgstr "" + +#: ../../packaging.rst:19 c7033e7fd7804ba48daa32be3ccdaa7b +msgid "Python packages listed in `scripts/gh_release.py:test_packages`." +msgstr "" + +#: ../../packaging.rst:23 d087313018614125b4e745ef56fc63d1 +msgid "General steps" +msgstr "" + +#: ../../packaging.rst:25 ff845be31dc6431c907ec57f88327d5f +msgid "Build and install MuPDF:" +msgstr "" + +#: ../../packaging.rst:27 22584c396cc342bfba772fe8c81ac949 +msgid "Install required system packages." +msgstr "" + +#: ../../packaging.rst:28 f7c3f08a80c141d49a7a07a13474c1bb +msgid "" +"Run `make install-shared-python` on MuPDF's `Makefile` with at least " +"these make variables:" +msgstr "" + +#: ../../packaging.rst:31 9d49af42c3a74272b78d5e68b8a53863 +msgid "`DESTDIR` set to the install directory, e.g. `/`." +msgstr "" + +#: ../../packaging.rst:33 c80bf2b5d6aa48a3ab8da81dcde780cb +msgid "" +"`prefix` set to location relative to DESTDIR, such as `/usr/local` or " +"`/usr`. Must start with `/`." +msgstr "" + +#: ../../packaging.rst:35 11c2299023db4fb19e56a64ef4be5424 +msgid "`USE_SYSTEM_LIBS=yes`." +msgstr "" + +#: ../../packaging.rst:36 1384b7538ae5481a97b504d24690c056 +msgid "`HAVE_LEPTONICA=yes`." +msgstr "" + +#: ../../packaging.rst:37 06ed0058c43d461db82d505a23ca7094 +msgid "`HAVE_TESSERACT=yes`." +msgstr "" + +#: ../../packaging.rst:39 b3644dcc2c5943bf888d7f8e9dc9edcc +msgid "Build and install PyMuPDF:" +msgstr "" + +#: ../../packaging.rst:42 dcf39ffe359c4c03b4de4f59838ee0f0 +msgid "" +"Run `pip install ./PyMuPDF` or `pip wheel ./PyMuPDF` with at least these " +"environment variables:" +msgstr "" + +#: ../../packaging.rst:46 93b07ed437f44924bb31820bb149fa1f +msgid "" +"`PYMUPDF_SETUP_MUPDF_BUILD=` (empty string) to prevent download and build" +" of hard-coded MuPDF release." +msgstr "" + +#: ../../packaging.rst:49 9ca48e9bfca64481b10e5c28ce400a6a +msgid "" +"`CFLAGS`, `CXXFLAGS` and `LDFLAGS` set to allow visibility of the " +"installed MuPDF headers and shared libraries." +msgstr "" + +#: ../../packaging.rst:52 4361b9dfe3094baeaee44b1e98a85735 +msgid "Run PyMuPDF tests:" +msgstr "" + +#: ../../packaging.rst:54 31da2ee092e74396895c9811cd72275d +msgid "Ensure required Python packages are available." +msgstr "" + +#: ../../packaging.rst:56 027bc04d851d4711a60c825c34fd582c +msgid "Run `pytest -k \"not test_color_count and not test_3050\" PyMuPDF`" +msgstr "" + +#: ../../packaging.rst:58 c29cbb8f2791439fb47faf2ea2080ca8 +msgid "" +"Test `test_color_count` is known fail if MuPDF is not built with " +"PyMuPDF's custom config.h." +msgstr "" + +#: ../../packaging.rst:59 366f92e009ee412b9ee326e53365c80b +msgid "" +"Test `test_3050` is known to fail if MuPDF is built without its own " +"third-party libraries." +msgstr "" + +#: ../../packaging.rst:63 dc265d226e3549d395d1ee9b84d7e9b7 +msgid "Use of scripts/sysinstall.py" +msgstr "" + +#: ../../packaging.rst:65 c5ccd53c72ae43e2a8514ab3361d7530 +msgid "" +"`scripts/sysinstall.py` provides a useful example of build, install and " +"test commands that are known to to work, because it is run regularly by " +"Github action `.github/workflows/test_sysinstall.yml`." +msgstr "" + +#: ../../packaging.rst:69 82d7e8c0cbc44e7ba2c922716b3572df +msgid "Run with `-h` or look at the doc-string to see detailed usage information." +msgstr "" + +#: ../../packaging.rst:70 3e72131ea5f546a3b3328a8e07d2f12c +msgid "It uses Debian-style `apt` commands to install system packages." +msgstr "" + +#: ../../packaging.rst:71 d7d9461807534464806ed713797d4c4a +msgid "By default it assumes local git checkouts `mupdf/` and `PyMuPDF/`." +msgstr "" + +#: ../../packaging.rst:73 ef0294479d1943c0b9a9320a2d3a26d5 +msgid "" +"To run a full build, install and test for both a local fake root and the " +"system root:" +msgstr "" + +#: ../../packaging.rst:81 541b01cd5c274ffdb287b2e4615b1dcc +msgid "To see what commands would be run without actually running them:" +msgstr "" + +#: ../../packaging.rst:89 a1980a6d8b4e4ff483c5461aa5c7c9a2 +msgid "See also" +msgstr "" + +#: ../../packaging.rst:92 8dfdf3477c0c47799dc0f20fc9645ebe +msgid "" +"`setup.py`'s initial doc-comment has detailed information about the " +"environment variables used when building PyMuPDF." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/page.mo b/docs/locales/ko/LC_MESSAGES/page.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/page.po b/docs/locales/ko/LC_MESSAGES/page.po new file mode 100644 index 000000000..7ebb254f7 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/page.po @@ -0,0 +1,5910 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 8170fcd05dee4c51bf9505113ceeca73 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 6af23f31d1794ebe8d4cd00cdb2c6335 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 2370c44a09c14c6ea409cf2644e17d14 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../page.rst:7 8937c9a408d44d8e9a9409e7bff61e0e +msgid "Page" +msgstr "" + +#: ../../page.rst:9 9245c311a52d403f9622088450ec1ed8 +msgid "" +"Class representing a document page. A page object is created by " +":meth:`Document.load_page` or, equivalently, via indexing the document " +"like `doc[n]` - it has no independent constructor." +msgstr "" + +#: ../../page.rst:11 5b3a16daffa34c41881df3783e022020 +msgid "" +"There is a parent-child relationship between a document and its pages. If" +" the document is closed or deleted, all page objects (and their " +"respective children, too) in existence will become unusable " +"(\"orphaned\"): If a page property or method is being used, an exception " +"is raised." +msgstr "" + +#: ../../page.rst:13 c43aa4901b134ef0af55b777bc691555 +msgid "" +"Several page methods have a :ref:`Document` counterpart for convenience. " +"At the end of this chapter you will find a synopsis." +msgstr "" + +#: ../../page.rst:15 b2fc39847f5843cf894fb6ef28439127 +msgid "" +"Many times in this chapter we are using the term **coordinate**. It is of" +" high importance to have at least a basic understanding of what that is " +"and that you feel comfortable with the section :ref:`Coordinates`." +msgstr "" + +#: ../../page.rst:18 0638e07e50a943388068f4aee50716dd +msgid "Modifying Pages" +msgstr "" + +#: ../../page.rst:19 4a50620eb10f44d0877cd46debc5c2a0 +msgid "" +"Changing page properties and adding or changing page content is available" +" for PDF documents only." +msgstr "" + +#: ../../page.rst:21 86a3398051794f1585b0f0f44c54cd6d +msgid "In a nutshell, this is what you can do with PyMuPDF:" +msgstr "" + +#: ../../page.rst:23 16d07d121728484981e076fe815bd0f7 +msgid "Modify page rotation and the visible part (\"cropbox\") of the page." +msgstr "" + +#: ../../page.rst:24 a55eb2352dec4ac4808c3f070a2c45bc +msgid "Insert images, other PDF pages, text and simple geometrical objects." +msgstr "" + +#: ../../page.rst:25 ccfedac9094242d9a2236213fede33ac +msgid "Add annotations and form fields." +msgstr "" + +#: ../../page.rst:29 648ad24ff28a4782b799c7cc2209686d +msgid "" +"Methods require coordinates (points, rectangles) to put content in " +"desired places. Please be aware that these coordinates **must always** be" +" provided relative to the **unrotated** page (since v1.17.0). The reverse" +" is also true: except :attr:`Page.rect`, resp. :meth:`Page.bound` (both " +"*reflect* when the page is rotated), all coordinates returned by methods " +"and attributes pertain to the unrotated page." +msgstr "" + +#: ../../page.rst:31 43cad26b1c8b405cbde663afa1390699 +msgid "" +"So the returned value of e.g. :meth:`Page.get_image_bbox` will not change" +" if you do a :meth:`Page.set_rotation`. The same is true for coordinates " +"returned by :meth:`Page.get_text`, annotation rectangles, and so on. If " +"you want to find out, where an object is located in **rotated " +"coordinates**, multiply the coordinates with " +":attr:`Page.rotation_matrix`. There also is its inverse, " +":attr:`Page.derotation_matrix`, which you can use when interfacing with " +"other readers, which may behave differently in this respect." +msgstr "" + +#: ../../page.rst:35 4602f0a46b4b45d692b0e8b0e0a8b4cd +msgid "" +"If you add or update annotations, links or form fields on the page and " +"immediately afterwards need to work with them (i.e. **without leaving the" +" page**), you should reload the page using :meth:`Document.reload_page` " +"before referring to these new or updated items." +msgstr "" + +#: ../../page.rst:37 d30757a5570341c492c9b6b2dd27e8da +msgid "" +"Reloading the page is generally recommended -- although not strictly " +"required in all cases. However, some annotation and widget types have " +"extended features in PyMuPDF compared to MuPDF. More of these extensions " +"may also be added in the future." +msgstr "" + +#: ../../page.rst:39 b54db556e2734b51bbd36600ec731807 +msgid "" +"Releoading the page ensures all your changes have been fully applied to " +"PDF structures, so you can safely create Pixmaps or successfully iterate " +"over annotations, links and form fields." +msgstr "" + +#: ../../page.rst:42 86f8776f6e6a46c2bd6677f03df546f8 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../page.rst:42 41c16cff24c249a6b99784f27f4c62a9 +msgid "**Short Description**" +msgstr "" + +#: ../../page.rst:44 e73e4ad3cfa341f28634b14957a79fc4 +msgid ":meth:`Page.add_caret_annot`" +msgstr "" + +#: ../../page.rst:44 0a9cf0b37f5d495db9ccba909ec825b7 +msgid "PDF only: add a caret annotation" +msgstr "" + +#: ../../page.rst:45 41b70f4be08542938df342847627409d +msgid ":meth:`Page.add_circle_annot`" +msgstr "" + +#: ../../page.rst:45 218dcdd140e442ef906cbc5f8489d215 +msgid "PDF only: add a circle annotation" +msgstr "" + +#: ../../page.rst:46 0d9b6d05bb1b40759acc10ba769f6906 +msgid ":meth:`Page.add_file_annot`" +msgstr "" + +#: ../../page.rst:46 876465f48d654d82a63dea158fa06436 +msgid "PDF only: add a file attachment annotation" +msgstr "" + +#: ../../page.rst:47 b2e7234dd6e14d6ead8dc67c38dcd6ef +msgid ":meth:`Page.add_freetext_annot`" +msgstr "" + +#: ../../page.rst:47 1e63f79e07b646fc9c5b6ca226e005fb +msgid "PDF only: add a text annotation" +msgstr "" + +#: ../../page.rst:48 0f9e70d7023442f3be97c1dae2ec1c4e +msgid ":meth:`Page.add_highlight_annot`" +msgstr "" + +#: ../../page.rst:48 36abc8a5ff054548915094f9d993af36 +msgid "PDF only: add a \"highlight\" annotation" +msgstr "" + +#: ../../page.rst:49 91e515dbd7054bf8b273bc1712b7ede5 +msgid ":meth:`Page.add_ink_annot`" +msgstr "" + +#: ../../page.rst:49 db733d1bfea845e690867fc0e23fbfea +msgid "PDF only: add an ink annotation" +msgstr "" + +#: ../../page.rst:50 87836b81e070400981d42f52007af7c7 +msgid ":meth:`Page.add_line_annot`" +msgstr "" + +#: ../../page.rst:50 2adc6fe8aa5c4316a257de5e2135f8e8 +msgid "PDF only: add a line annotation" +msgstr "" + +#: ../../page.rst:51 b2d616fda77c4a52bd1e433ed3b52703 +msgid ":meth:`Page.add_polygon_annot`" +msgstr "" + +#: ../../page.rst:51 85362227a8ad4cbfaf3fb0f24f477a3a +msgid "PDF only: add a polygon annotation" +msgstr "" + +#: ../../page.rst:52 328e52dc8744435a9fb26981dfdc829f +msgid ":meth:`Page.add_polyline_annot`" +msgstr "" + +#: ../../page.rst:52 11200ba7725f40f79ca3dce0a53e0658 +msgid "PDF only: add a multi-line annotation" +msgstr "" + +#: ../../page.rst:53 51ed3acb625345fb8b7a53c31a1b6b19 +msgid ":meth:`Page.add_rect_annot`" +msgstr "" + +#: ../../page.rst:53 22ac83d8d3484f13a9a14fddae22e821 +msgid "PDF only: add a rectangle annotation" +msgstr "" + +#: ../../page.rst:54 db442110b3b54ccbb5eb1ae5a44bb3d9 +msgid ":meth:`Page.add_redact_annot`" +msgstr "" + +#: ../../page.rst:54 e18de06d48a64f5b87eb5d921b043efc +msgid "PDF only: add a redaction annotation" +msgstr "" + +#: ../../page.rst:55 806f505045ad4d659c8ff7424ccdb0b0 +msgid ":meth:`Page.add_squiggly_annot`" +msgstr "" + +#: ../../page.rst:55 374a25c00ffc44fb802bc987d05fd85b +msgid "PDF only: add a \"squiggly\" annotation" +msgstr "" + +#: ../../page.rst:56 b22a9d9ab80a4d18b3882b1b2797bc3e +msgid ":meth:`Page.add_stamp_annot`" +msgstr "" + +#: ../../page.rst:56 9f8e591880af48f9bde9a32d695627ed +msgid "PDF only: add a \"rubber stamp\" annotation" +msgstr "" + +#: ../../page.rst:57 1c4fffe9b32a4becb309c4360641ab34 +msgid ":meth:`Page.add_strikeout_annot`" +msgstr "" + +#: ../../page.rst:57 d6643236b85b4b26a0f3fda17a9c9ecc +msgid "PDF only: add a \"strike-out\" annotation" +msgstr "" + +#: ../../page.rst:58 fd38c00281a845e1a4b042ac4bf44a96 +msgid ":meth:`Page.add_text_annot`" +msgstr "" + +#: ../../page.rst:58 b4a33cb834274558bd500a00ec92e154 +msgid "PDF only: add a comment" +msgstr "" + +#: ../../page.rst:59 0e221e35eb7f44379a4f2046ddc3b906 +msgid ":meth:`Page.add_underline_annot`" +msgstr "" + +#: ../../page.rst:59 e068f52a14424ecaa984ab47792d7886 +msgid "PDF only: add an \"underline\" annotation" +msgstr "" + +#: ../../page.rst:60 973d14e3ad8d4ca98132079d720bce1c +msgid ":meth:`Page.add_widget`" +msgstr "" + +#: ../../page.rst:60 0548a6ef761045238cc51f6f030dfd77 +msgid "PDF only: add a PDF Form field" +msgstr "" + +#: ../../page.rst:61 e83f5334f31f49c59809b11ec3eab44c +msgid ":meth:`Page.annot_names`" +msgstr "" + +#: ../../page.rst:61 cf863f93e5054e6c8c65e9c13f29db6b +msgid "PDF only: a list of annotation (and widget) names" +msgstr "" + +#: ../../page.rst:62 7d51dd8ff9a64250aff67b396cb27d97 +msgid ":meth:`Page.annot_xrefs`" +msgstr "" + +#: ../../page.rst:62 3028d6c3a5a1465295200f57fe4b9b39 +msgid "PDF only: a list of annotation (and widget) xrefs" +msgstr "" + +#: ../../page.rst:63 f9476aa9073b4c29b002ff703fed1459 +msgid ":meth:`Page.annots`" +msgstr "" + +#: ../../page.rst:63 62c9c440545d4ac7bbdb80a4850e7a15 +msgid "return a generator over the annots on the page" +msgstr "" + +#: ../../page.rst:64 5ba75b9f8d854aa5ae6d8f8d0abf748e +msgid ":meth:`Page.apply_redactions`" +msgstr "" + +#: ../../page.rst:64 54e665bc95f24b30b241db10ed18fe35 +msgid "PDF only: process the redactions of the page" +msgstr "" + +#: ../../page.rst:65 48940a168fa5416c9de089ffdbfd71cf +msgid ":meth:`Page.clip_to_rect`" +msgstr "" + +#: ../../page.rst:65 75f03d5629d84a5cbe0e590d162fb8c9 +msgid "PDF only: remove page content outside a rectangle" +msgstr "" + +#: ../../page.rst:66 88bea8ccf72f49399f12f7f909be3ca0 +msgid ":meth:`Page.bound`" +msgstr "" + +#: ../../page.rst:66 ../../page.rst:137 b7afacb8a954462e86e9d8f8b3052327 +#: f2d199f18ba54dc682035890309cc3d4 +msgid "rectangle of the page" +msgstr "" + +#: ../../page.rst:67 04c89237383a468a84c1c7a4fbd7ca94 +msgid ":meth:`Page.cluster_drawings`" +msgstr "" + +#: ../../page.rst:67 cd9d4243e92c4687bd69ec2908325cfe +msgid "PDF only: bounding boxes of vector graphics" +msgstr "" + +#: ../../page.rst:68 708439d9c4c8432db9603b531bb52dc1 +msgid ":meth:`Page.delete_annot`" +msgstr "" + +#: ../../page.rst:68 2fd52bbdf7674f0eaa4067190fc99fbc +msgid "PDF only: delete an annotation" +msgstr "" + +#: ../../page.rst:69 07e58c4b429f4cd495cdc2461631dfd2 +msgid ":meth:`Page.delete_image`" +msgstr "" + +#: ../../page.rst:69 ea1f41e1c935433d82d9c049d5bf7c51 +msgid "PDF only: delete an image" +msgstr "" + +#: ../../page.rst:70 7fc216eeee264ecab7dd0ca35aa1ec17 +msgid ":meth:`Page.delete_link`" +msgstr "" + +#: ../../page.rst:70 4a1fcd926d6d4a2395f61dc2dcf8d355 +msgid "PDF only: delete a link" +msgstr "" + +#: ../../page.rst:71 a8258588f3ca43abb6c2210464293269 +msgid ":meth:`Page.delete_widget`" +msgstr "" + +#: ../../page.rst:71 fdbb77379c8b4f1198a09d22c552b1e7 +msgid "PDF only: delete a widget / field" +msgstr "" + +#: ../../page.rst:72 d7147a663aef49b1b3198691be1cdc51 +msgid ":meth:`Page.draw_bezier`" +msgstr "" + +#: ../../page.rst:72 8b72e59ea4044e6ab49f4d05472ceba9 +msgid "PDF only: draw a cubic Bezier curve" +msgstr "" + +#: ../../page.rst:73 e974652a1a6f45aa8229cf5deffa331f +msgid ":meth:`Page.draw_circle`" +msgstr "" + +#: ../../page.rst:73 ab1d3da2c8ff42fc8fe017430b57d854 +msgid "PDF only: draw a circle" +msgstr "" + +#: ../../page.rst:74 cb75b4cc4fb54f92958534162d5b23bd +msgid ":meth:`Page.draw_curve`" +msgstr "" + +#: ../../page.rst:74 f7ad1d0eb1434261a85c72f19d1a430a +msgid "PDF only: draw a special Bezier curve" +msgstr "" + +#: ../../page.rst:75 821014e377aa404d84cbf5f34c523dbc +msgid ":meth:`Page.draw_line`" +msgstr "" + +#: ../../page.rst:75 00ec24619ceb48a992088804eff5de28 +msgid "PDF only: draw a line" +msgstr "" + +#: ../../page.rst:76 bc002085ee9a4d66ba298b35bafb4599 +msgid ":meth:`Page.draw_oval`" +msgstr "" + +#: ../../page.rst:76 fef8e3d9c6e04e21b8189b2860b82f3b +msgid "PDF only: draw an oval / ellipse" +msgstr "" + +#: ../../page.rst:77 9e89eb69dd59435fb35fe33566cf57b0 +msgid ":meth:`Page.draw_polyline`" +msgstr "" + +#: ../../page.rst:77 06eaf6fd8ad042cd838a42ac93221e56 +msgid "PDF only: connect a point sequence" +msgstr "" + +#: ../../page.rst:78 cf7b9e235bba401cacc271deafd6f401 +msgid ":meth:`Page.draw_quad`" +msgstr "" + +#: ../../page.rst:78 2ef56dd6206b4945bcc0e17b13b1f49b +msgid "PDF only: draw a quad" +msgstr "" + +#: ../../page.rst:79 ad64094c84b54c70a8d3f1b0356f955e +msgid ":meth:`Page.draw_rect`" +msgstr "" + +#: ../../page.rst:79 99ffa6aaa0364c4c88ca8ac5c47de0bf +msgid "PDF only: draw a rectangle" +msgstr "" + +#: ../../page.rst:80 2c663eab158c4b11be91591a29f93faa +msgid ":meth:`Page.draw_sector`" +msgstr "" + +#: ../../page.rst:80 02df21db9f47463ea8a7b21c97becaa0 +msgid "PDF only: draw a circular sector" +msgstr "" + +#: ../../page.rst:81 2dfce9feeb7a4c1bbad1797a7b4d6707 +msgid ":meth:`Page.draw_squiggle`" +msgstr "" + +#: ../../page.rst:81 fda33db89e424deeb78ea729069a761e +msgid "PDF only: draw a squiggly line" +msgstr "" + +#: ../../page.rst:82 f18233d62ec842ce8d0ec507f6ca4432 +msgid ":meth:`Page.draw_zigzag`" +msgstr "" + +#: ../../page.rst:82 2c0fde654875416f905af2f467b3cf1c +msgid "PDF only: draw a zig-zagged line" +msgstr "" + +#: ../../page.rst:83 0ad5611bf2ea4d9797c43b07aaf17f67 +msgid ":meth:`Page.find_tables`" +msgstr "" + +#: ../../page.rst:83 3c716fff66534b89be3e42bff1821cae +msgid "locate tables on the page" +msgstr "" + +#: ../../page.rst:84 9760c26080364bb38b892d7079635820 +msgid ":meth:`Page.get_drawings`" +msgstr "" + +#: ../../page.rst:84 1a642c31f38440c99d4eed26eca1cf1e +msgid "get vector graphics on page" +msgstr "" + +#: ../../page.rst:85 ../../page.rst:2355 0212137293b847f19ef60d639f77da9f +#: bd4a028783c641958b19f4cf86d7d235 +msgid ":meth:`Page.get_fonts`" +msgstr "" + +#: ../../page.rst:85 8ffe9443af43443788c6103faf1fe29f +msgid "PDF only: get list of referenced fonts" +msgstr "" + +#: ../../page.rst:86 d299b9cb1da54036adf1f73e8fe204f5 +msgid ":meth:`Page.get_image_bbox`" +msgstr "" + +#: ../../page.rst:86 258e644759a344a1a93e5fe92f4d572d +msgid "PDF only: get bbox and matrix of embedded image" +msgstr "" + +#: ../../page.rst:87 28b400999b9b44a897e4ff4130298469 +msgid ":meth:`Page.get_image_info`" +msgstr "" + +#: ../../page.rst:87 1fc9f5618837431d95f9edc92be81f1f +msgid "get list of meta information for all used images" +msgstr "" + +#: ../../page.rst:88 356cdd777ea54c359213f21664133141 +msgid ":meth:`Page.get_image_rects`" +msgstr "" + +#: ../../page.rst:88 85adc8a6b1f7459186e411e073476e72 +msgid "PDF only: improved version of :meth:`Page.get_image_bbox`" +msgstr "" + +#: ../../page.rst:89 ../../page.rst:2356 9c773ca1a4c04ae39dd31e751a19d4a8 +#: f6df8c02ac2a4f6083b0ad1a477980f3 +msgid ":meth:`Page.get_images`" +msgstr "" + +#: ../../page.rst:89 463a60e6db60402bbfd7e0365544fcc5 +msgid "PDF only: get list of referenced images" +msgstr "" + +#: ../../page.rst:90 72a5fbb7f5ae4b5aba9cd75c236dfd17 +msgid ":meth:`Page.get_label`" +msgstr "" + +#: ../../page.rst:90 8a64a3606f554ddca8135f8fcf01bdcb +msgid "PDF only: return the label of the page" +msgstr "" + +#: ../../page.rst:91 3d9b2f63e38640eba28039648bcdd37c +msgid ":meth:`Page.get_links`" +msgstr "" + +#: ../../page.rst:91 baebde09d09f4430a9a16ab90e53e61c +msgid "get all links" +msgstr "" + +#: ../../page.rst:92 ../../page.rst:2357 4a56014985a94a87ac357a4612aaf5fa +#: ed985753e8674d2c99c1b565cc9ccbf7 +msgid ":meth:`Page.get_pixmap`" +msgstr "" + +#: ../../page.rst:92 dfbe408764ca4ea7a194aeda516c3b3b +msgid "create a page image in raster format" +msgstr "" + +#: ../../page.rst:93 84ff5221a3f34016b7d222d2a504b8d8 +msgid ":meth:`Page.get_svg_image`" +msgstr "" + +#: ../../page.rst:93 d47abd082cf34e8ba1416053d7f9f36c +msgid "create a page image in SVG format" +msgstr "" + +#: ../../page.rst:94 ../../page.rst:2358 236e4ae277e5430092c860d3b877309e +#: 534bf943e881493a9c1890cf7869b882 +msgid ":meth:`Page.get_text`" +msgstr "" + +#: ../../page.rst:94 8fcda9fdb4054ee4925dd13a83d5c7f9 +msgid "extract the page's text" +msgstr "" + +#: ../../page.rst:95 8e3abc00882d408bad7eb252ba91611b +msgid ":meth:`Page.get_textbox`" +msgstr "" + +#: ../../page.rst:95 05aaa24df0f34405b93ba13e56afaffd +msgid "extract text contained in a rectangle" +msgstr "" + +#: ../../page.rst:96 25d5c92ec4e64cb6b99f8822be72860a +msgid ":meth:`Page.get_textpage_ocr`" +msgstr "" + +#: ../../page.rst:96 1b455eb2a8fe4616a02979e821ec50ce +msgid "create a TextPage with OCR for the page" +msgstr "" + +#: ../../page.rst:97 b452235a93834d8b98588dc1103fdda3 +msgid ":meth:`Page.get_textpage`" +msgstr "" + +#: ../../page.rst:97 86c970be01be4a46b056f68be2cc43b9 +msgid "create a TextPage for the page" +msgstr "" + +#: ../../page.rst:98 f5ea422d48294efdb6c416ce7dc132c5 +msgid ":meth:`Page.get_xobjects`" +msgstr "" + +#: ../../page.rst:98 074c5bea324d4dd7b71a76685d7bf5ac +msgid "PDF only: get list of referenced xobjects" +msgstr "" + +#: ../../page.rst:99 fad014b3566248f2b8fef12ad6d63683 +msgid ":meth:`Page.insert_font`" +msgstr "" + +#: ../../page.rst:99 a13f7d11090b45e7b1e1fdcd51b6771b +msgid "PDF only: insert a font for use by the page" +msgstr "" + +#: ../../page.rst:100 eb9fab9be3844f698f3f7981238fd0cc +msgid ":meth:`Page.insert_image`" +msgstr "" + +#: ../../page.rst:100 5ecd33232193401eba7aad556bde3428 +msgid "PDF only: insert an image" +msgstr "" + +#: ../../page.rst:101 bf9559cfcb304283b984cd3b63082707 +msgid ":meth:`Page.insert_link`" +msgstr "" + +#: ../../page.rst:101 065c8f93c7394778aa3bece800130689 +msgid "PDF only: insert a link" +msgstr "" + +#: ../../page.rst:102 77c641ea6e564e8eb59cd4339292bdcd +msgid ":meth:`Page.insert_text`" +msgstr "" + +#: ../../page.rst:102 93437db590444321bf292dcc19733056 +msgid "PDF only: insert text" +msgstr "" + +#: ../../page.rst:103 c552d045e73f45f9b03240ef2fab0611 +msgid ":meth:`Page.insert_htmlbox`" +msgstr "" + +#: ../../page.rst:103 bdbe18d30a0c4be9875135057d42044e +msgid "PDF only: insert html text in a rectangle" +msgstr "" + +#: ../../page.rst:104 119b6fdbf8b44f5f84c8616c320b6d0a +msgid ":meth:`Page.insert_textbox`" +msgstr "" + +#: ../../page.rst:104 33a379824b3d46c7b6df06f0d0e25eb1 +msgid "PDF only: insert a text box" +msgstr "" + +#: ../../page.rst:105 e4a2a7be4af54df396d64469f81c0902 +msgid ":meth:`Page.links`" +msgstr "" + +#: ../../page.rst:105 6752a070405544cba6cff49390f95edd +msgid "return a generator of the links on the page" +msgstr "" + +#: ../../page.rst:106 10bf8179f1ce486fabaa949403bacd70 +msgid ":meth:`Page.load_annot`" +msgstr "" + +#: ../../page.rst:106 014af39f35314a68afbe150161286b66 +msgid "PDF only: load a specific annotation" +msgstr "" + +#: ../../page.rst:107 e1685690b2d44e14a8978d8b1339627e +msgid ":meth:`Page.load_widget`" +msgstr "" + +#: ../../page.rst:107 5f2f4a616a774f9d92c511a1bc7eec7d +msgid "PDF only: load a specific field" +msgstr "" + +#: ../../page.rst:108 a8dd3d29d1384269b38a150ffdca450c +msgid ":meth:`Page.load_links`" +msgstr "" + +#: ../../page.rst:108 c159d07089f2405190c47cf67e28fb74 +msgid "return the first link on a page" +msgstr "" + +#: ../../page.rst:109 94bb3a983df740fbbbc60a44a7e75a25 +msgid ":meth:`Page.new_shape`" +msgstr "" + +#: ../../page.rst:109 f7e23a9cbe464b7fbd4ceafb2bd2f884 +msgid "PDF only: create a new :ref:`Shape`" +msgstr "" + +#: ../../page.rst:110 e7cbb0a3cc32479290ed8187d341a4cc +msgid ":meth:`Page.recolor`" +msgstr "" + +#: ../../page.rst:110 e17cc9c9d35a4b528ecc51356afc4294 +msgid "PDF only: change the colorspace of objects" +msgstr "" + +#: ../../page.rst:111 2b963b54441840a5a4ff1089e26ecb2f +msgid ":meth:`Page.remove_rotation`" +msgstr "" + +#: ../../page.rst:111 2a452763180a40b8b9d7840ae8da0992 +msgid "PDF only: set page rotation to 0" +msgstr "" + +#: ../../page.rst:112 8f321974b8444af0b093d1295c75cf05 +msgid ":meth:`Page.replace_image`" +msgstr "" + +#: ../../page.rst:112 a847c5c8166640328cfb165bbaa6a992 +msgid "PDF only: replace an image" +msgstr "" + +#: ../../page.rst:113 ../../page.rst:2359 0f7e94bdfa2048379aadc4ec274917ac +#: 474092e2fbb04bd8b3fb386d1de12af5 +msgid ":meth:`Page.search_for`" +msgstr "" + +#: ../../page.rst:113 6556b8acd7d240d7b97207cf0df3d619 +msgid "search for a string" +msgstr "" + +#: ../../page.rst:114 dac3b78a1a3c43848aa71d71a9ac932f +msgid ":meth:`Page.set_artbox`" +msgstr "" + +#: ../../page.rst:114 c5cb8b37faa84d478e691b9d7aeeb072 +msgid "PDF only: modify `/ArtBox`" +msgstr "" + +#: ../../page.rst:115 f33dd235a0224b98a72d79e99d400754 +msgid ":meth:`Page.set_bleedbox`" +msgstr "" + +#: ../../page.rst:115 03a5e490c9f342c1b33650557bb311cf +msgid "PDF only: modify `/BleedBox`" +msgstr "" + +#: ../../page.rst:116 1954aab05621455aafbf63b3dc604da9 +msgid ":meth:`Page.set_cropbox`" +msgstr "" + +#: ../../page.rst:116 662dd3600dac46358c61710f34c8ec91 +msgid "PDF only: modify the :data:`cropbox` (visible page)" +msgstr "" + +#: ../../page.rst:117 6a2fd94e05d047a1a8f604c96105f9d2 +msgid ":meth:`Page.set_mediabox`" +msgstr "" + +#: ../../page.rst:117 2b67269297d34d6c9ac1dee4f63a8961 +msgid "PDF only: modify `/MediaBox`" +msgstr "" + +#: ../../page.rst:118 3c19f680917744e48b7ffa6e60497c91 +msgid ":meth:`Page.set_rotation`" +msgstr "" + +#: ../../page.rst:118 44b06f5ab1f4409db21e8180c6840f21 +msgid "PDF only: set page rotation" +msgstr "" + +#: ../../page.rst:119 8f9ca0aa08a7434faaa9e139cc23c4cc +msgid ":meth:`Page.set_trimbox`" +msgstr "" + +#: ../../page.rst:119 e1be1521eed84ba3ac0ec715ca539607 +msgid "PDF only: modify `/TrimBox`" +msgstr "" + +#: ../../page.rst:120 e490c2e919d348a8bd996d89b6379831 +msgid ":meth:`Page.show_pdf_page`" +msgstr "" + +#: ../../page.rst:120 0ca4ee87ad0d45d999070687313ee6c2 +msgid "PDF only: display PDF page image" +msgstr "" + +#: ../../page.rst:121 373f0f9543e5488e8bd497bb817ff8c0 +msgid ":meth:`Page.update_link`" +msgstr "" + +#: ../../page.rst:121 3916b852a5ab4aef891aee7bd6819784 +msgid "PDF only: modify a link" +msgstr "" + +#: ../../page.rst:122 833c40f55d4c480bae57ee0a61660f55 +msgid ":meth:`Page.widgets`" +msgstr "" + +#: ../../page.rst:122 54727116195946e3a45618e914ff037f +msgid "return a generator over the fields on the page" +msgstr "" + +#: ../../page.rst:123 dd2c38c530664eda8d7154c879458e0d +msgid ":meth:`Page.write_text`" +msgstr "" + +#: ../../page.rst:123 a543915750f14b829b0c094cb7bfe01d +msgid "write one or more :ref:`Textwriter` objects" +msgstr "" + +#: ../../page.rst:124 9adae32b783846ffb5e94e4430cac493 +msgid ":attr:`Page.cropbox_position`" +msgstr "" + +#: ../../page.rst:124 31b13eebd9f441bcab940d3c944776b8 +msgid "displacement of the :data:`cropbox`" +msgstr "" + +#: ../../page.rst:125 1e42f4312b634f3f9c8e85739c813eb8 +msgid ":attr:`Page.cropbox`" +msgstr "" + +#: ../../page.rst:125 cf64d8442e414dc0879c602b3b0b489e +msgid "the page's :data:`cropbox`" +msgstr "" + +#: ../../page.rst:126 fc92d1a42e694fa6ac0161ed12cb39c0 +msgid ":attr:`Page.artbox`" +msgstr "" + +#: ../../page.rst:126 ff906dbe697d49c0989435a6d87f1a1d +msgid "the page's `/ArtBox`" +msgstr "" + +#: ../../page.rst:127 a73f503950b14012a9d0b865c3a9b45b +msgid ":attr:`Page.bleedbox`" +msgstr "" + +#: ../../page.rst:127 a368349472a349a381872c4867d6b3a6 +msgid "the page's `/BleedBox`" +msgstr "" + +#: ../../page.rst:128 1215951372f347e498df9704fb8e3912 +msgid ":attr:`Page.trimbox`" +msgstr "" + +#: ../../page.rst:128 e299310368b645b396a106343b8f3f97 +msgid "the page's `/TrimBox`" +msgstr "" + +#: ../../page.rst:129 07634bad562d4f4da72af4503f45af6c +msgid ":attr:`Page.derotation_matrix`" +msgstr "" + +#: ../../page.rst:129 62bff9b163644f9a8a4d57b8c38631b5 +msgid "PDF only: get coordinates in unrotated page space" +msgstr "" + +#: ../../page.rst:130 9d8f0942aabf4466872c935bff52be92 +msgid ":attr:`Page.first_annot`" +msgstr "" + +#: ../../page.rst:130 9b10c13e23d649018aaaa01888b0752c +msgid "first :ref:`Annot` on the page" +msgstr "" + +#: ../../page.rst:131 007425f57c1c45cab27b9fd5356dc25c +msgid ":attr:`Page.first_link`" +msgstr "" + +#: ../../page.rst:131 599bf77705da424f9842f1fc4593e422 +msgid "first :ref:`Link` on the page" +msgstr "" + +#: ../../page.rst:132 d306281af9fe472ebd48cb5da990d400 +msgid ":attr:`Page.first_widget`" +msgstr "" + +#: ../../page.rst:132 c045b6255e904caeb1248136a17fdcb4 +msgid "first widget (form field) on the page" +msgstr "" + +#: ../../page.rst:133 61a7569544b04f579eeeccb6dbebf33e +msgid ":attr:`Page.mediabox_size`" +msgstr "" + +#: ../../page.rst:133 5740d94335274d2cb2f1a0aaed9e73d2 +msgid "bottom-right point of :data:`mediabox`" +msgstr "" + +#: ../../page.rst:134 93c29178cc5749b6829fd8dfed0b62f9 +msgid ":attr:`Page.mediabox`" +msgstr "" + +#: ../../page.rst:134 8800f1ba240a448a94f2b724b21b6f97 +msgid "the page's :data:`mediabox`" +msgstr "" + +#: ../../page.rst:135 c50c79da136d456fa1b50250eea7203e +msgid ":attr:`Page.number`" +msgstr "" + +#: ../../page.rst:135 0fc96eb9fc344189ad927dad1dbfc341 +msgid "page number" +msgstr "" + +#: ../../page.rst:136 695f5ae69bcd4635b33ebd6ed673c706 +msgid ":attr:`Page.parent`" +msgstr "" + +#: ../../page.rst:136 4061cff6ba714b82bd4a109854384956 +msgid "owning document object" +msgstr "" + +#: ../../page.rst:137 ddc6ff6c91ee414dbdf6805bbe28c767 +msgid ":attr:`Page.rect`" +msgstr "" + +#: ../../page.rst:138 1ea7f17570a540a989a56c5b01d20bff +msgid ":attr:`Page.rotation_matrix`" +msgstr "" + +#: ../../page.rst:138 f3a09c1c09e046388be436720f61b660 +msgid "PDF only: get coordinates in rotated page space" +msgstr "" + +#: ../../page.rst:139 ddf87c132d5e429eb3e16dd0d9a7533a +msgid ":attr:`Page.rotation`" +msgstr "" + +#: ../../page.rst:139 b85fb7d6d7ad4c7ab2a14c0d2093c398 +msgid "PDF only: page rotation" +msgstr "" + +#: ../../page.rst:140 8af77a0f8bb64059bbb281a4e56ca015 +msgid ":attr:`Page.transformation_matrix`" +msgstr "" + +#: ../../page.rst:140 092b7fc6ca7a4d0f86bfb8f90459e30f +msgid "PDF only: translate between PDF and MuPDF space" +msgstr "" + +#: ../../page.rst:141 bb906c9e47254441950fe2061cb7283f +msgid ":attr:`Page.xref`" +msgstr "" + +#: ../../page.rst:141 4e19cd5ead774a58b9478f33dfc08d66 +msgid "PDF only: page :data:`xref`" +msgstr "" + +#: ../../page.rst:144 7dd691ddf1214165b60d22ae28b1c9f0 +msgid "**Class API**" +msgstr "" + +#: ../../page.rst:150 c7b40172c5bc47398e0abf78d418e310 +msgid "" +"Determine the rectangle of the page. Same as property :attr:`Page.rect`. " +"For PDF documents this **usually** also coincides with :data:`mediabox` " +"and :data:`cropbox`, but not always. For example, if the page is rotated," +" then this is reflected by this method -- the :attr:`Page.cropbox` " +"however will not change." +msgstr "" + +#: ../../page.rst 07da7245f1d64a65b2b4254797f65491 +#: 16467ad0e8d64d7d85006bda933b3200 274157befb1b469fa2f28b340c60adc9 +#: 33737a34b2944633a24492dbe9c2d147 3f24c0b2d0254e06b54bf5e2b6f88555 +#: 43215cbc86534ac285647938e0b2a2a2 6ad65941237c4751902d551fa14d5e71 +#: 780c66ef56ae428dba33fe118ceaeb0e 7f54a5a3c98d4cebb61a506237a4643e +#: 86172078b6f44f549b02563feed36a81 963bc09177024b08b6c785605249a826 +#: 986fd139ad45437e87c7593c11d6a47b 9a2fe8da29584084a592464409782175 +#: 9fb73c5f593f462a967426864943a5aa a42bc637a18a46dfb72820a97f51ba1a +#: ab3dd8b5e88049939c12db64481baefa b05be138bafb4bb2ae77367972743409 +#: b14e9f1be1b74a14844053e00ed4bf02 c2858bea2fa445b695054db4f9bb3e3d +#: c2a8aab54fbb4862893ab1555e5fad49 c8bc2f1e08e5407ab1670a313332ad5e +#: ceae107b8e8a40d7a69d740fb4d3a283 d3bf58c1898f437c81297b2d9ddd04b0 +#: de7a1f0132d34b6d8cf9fd97e950cf77 dfa066004b01431aaca46c33f8710478 +#: e079c387d0ec447cb4127c54e273c96e e16013432c3c473797fe1429e17df94b +#: ee88a3da14804c22825ad9be9d13dc1c f19ee08a02c543e4b42dff9b4d74f1d3 +#: fb45ddf994894d8e82465a6136c23734 +msgid "Return type" +msgstr "" + +#: ../../page.rst:152 ../../page.rst:2200 ../../page.rst:2210 +#: ../../page.rst:2222 ../../page.rst:2283 ../../page.rst:2289 +#: ../../page.rst:2432 ../../page.rst:2492 17dce4a3dac0430f981fd5f333253854 +#: 1fcc8c10d3314f7ba2155b0f3e8a20fb 70bf6ccb650d40ec885b1b2a34b36172 +#: 72236d1673274a9781172bacbbac9335 7cc89df9fff64c9aac0c90c75083a7e6 +#: 87c39a1029e54b5990a21c179e2f359d a7543904f25e400681f49fb50b50c9de +#: be7afb8df5954242b2dca9c5af5a1e97 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../page.rst:156 0ec0c7438154470994b23ca319d41d4d +msgid "" +"PDF only: Add a caret icon. A caret annotation is a visual symbol " +"normally used to indicate the presence of text edits on the page." +msgstr "" + +#: ../../page.rst 00b3632567644912bffe0c7c68195548 +#: 054320e3c706475d93bbf517174a2cd9 0878b21ab311460bb8d044b195f065c9 +#: 09105ffebd5b4af99479ab1908edbf71 09d72a257dd8425ab36e4cf43950a91d +#: 0da394c31bee4739a806cd889c071c24 1367cad38f644d23983d0e9832ffec1d +#: 16b87a761f6947ecae635b1721df752a 2028dc07db06471db752d79ad2b97ad4 +#: 20957df1cc49455882744213ebf99d1f 291031d6bab54401ba4808b736782a57 +#: 2fb9573932ef4990aa17dad40ec62903 31c0111741a24d9984a4f7e8f6d384d6 +#: 38bbd18c135b4b35b2e8265a0abd6588 3d67d0eb2fe04c27aacb768de4673ca0 +#: 40031e90ddd54975b1bda8bf0a808d63 46529b455a46414f8fc3569e8cd74ee0 +#: 498ee9c49c214e368374cf7456d63aef 4d3cee8bc2d1469d9a7dd085fddcd328 +#: 503687535947403eb1e47df55fe26cc2 535cf8e9a9484fefaf11b8666a8a6642 +#: 54f7a37e80354629988dce94a656e940 5bf5fff4bcbb4463ad26a8a5f6b5eb1e +#: 6d08910d5dc84544b81029616ce95d40 71f8f7f7626947a39f84c7bcad375207 +#: 7e7bec8634ba460780bca9ae053753bc 8302f70a54514fbc89e0b1dde1048026 +#: 84033749e37e4b759f3ebe8c94d59fd3 8e4bcb6977f14382bbbbd46621f00dc1 +#: 941fa38cd676457fbe97b6490b7ae8cf 9a6bc2252f91444aa5ec776c39df263e +#: 9d5a62b410b947b8865a28874d59ea97 a33d3566faac442ab7b530abc59aa4e5 +#: ae64f9becd5347639cb3883b239e0f88 b25079f1b5b942f88cd338be4b0166e4 +#: b87de502ffdf4ccb85876fbefa001a43 b8c63bbc665f43f1ae6aee0196ff6cae +#: bb5b5a5eb33b48d19ffa688a1384052a c3ff7da5a1f844cfb8ec962ae1c60da4 +#: ca7e4f1b3e0f4da39ef4397d425ffad9 d000ac18dfbe40e28fd0bdc71f3a858b +#: d74c4ba05c7449d3a2b8faa4188e1fe1 f1f1aceff0ce40aeac912afeece61dac +#: f280525254e24464af14333042b57307 f40fc35b625c4b8ab27414a1e0a2c197 +#: f8023b505b6749289bf7f1735ff8dc84 f8cb1838b1c74387ae60068ec2949d7d +#: fdaf5844924a4192b07017546577808b +msgid "Parameters" +msgstr "" + +#: ../../page.rst:158 f1fd38d47b7b448b98e7fc18cdf0610d +msgid "" +"the top left point of a 20 x 20 rectangle containing the MuPDF-provided " +"icon." +msgstr "" + +#: ../../page.rst:160 ../../page.rst:181 ../../page.rst:240 ../../page.rst:264 +#: ../../page.rst:273 ../../page.rst:284 ../../page.rst:295 ../../page.rst:323 +#: ../../page.rst:388 ../../page.rst:600 ../../page.rst:1923 +#: ../../page.rst:2258 0a58216226494e178dde4651b0611959 +#: 1fe577105c91488e9f0560a7b8796e99 2877c7fb524b42e0b6e9275ef04a546e +#: 5605b94a8f004396a557de9db39517c5 58d03141cddf4ab89128aacdfc62091e +#: 6b8b6d0719d745b699b11d162b55b2b3 9068eacd05c74b9aa20035a54a6bfd25 +#: 90aa1e78784a47c383c80669c4fb882c 9fa31f84235845bca516caf1ba22f068 +#: a59e0172e0fd4306839da9756ad512a0 b7f3ee5707fe4eadb31fad70473e9aeb +#: b9c8a147995d4e00940e43b61dca788f +msgid ":ref:`Annot`" +msgstr "" + +#: ../../page.rst 0dffbb758e964d6d8e27b7cc916fcece +#: 19fbc273b908406d9bebee248b9f341e 1ab9f9b6b79c430ebfac79d31add954f +#: 1dd29dece91e45be836be0ec87b241f5 2bec5ff55c37456483e4dafce21fed0a +#: 40db1e056e2e4015a335ef534d7d7d09 42075d2ac0074ccfad9579bf6a79fa97 +#: 4355228500d64c04877e4ef51bf816a2 46ab70cb395f45efa6127ced35e93b87 +#: 49e64f07d58e457a9516b85180e23e8f 4b7549ca59cf4895854db1abc8ac1c6d +#: 4e7c576b76ad419db6610f3bbc600de3 517df8f478b340bbb8fb49f29e7075f9 +#: 5ff6d3905f974c44ab6b29bd90db2428 6197d8c4c73844138b4c591ce0ba628e +#: 61cef6bf48df4cec82d6645cfd249e28 63a63e53773f4fa6a34666d256a266c5 +#: 6d4f832405714fcb9c1d1a4e6bcd3f97 74b115386a78411cb1e82b6401e27f88 +#: 7c0515b75c9146acb8105883bc9ff293 804e462e6dc8457fa3baee083aa7c0af +#: 81628f78bf8f4fc0a7752cceb4e6b7a8 8180d1bab4e44971968d755badc44129 +#: 81d0d0a948bf405eadb682854c67e850 870d5db2cc324545a4c6657a37454ca5 +#: 90896fe1186947b891c9e82e55d7eb0a 916f9182ca0b44f0be8298f1610ee103 +#: 99a9710b564e4de1bbb28e4e6e4816ae 9c8d55eba9d7433f9e9fee31b10de98e +#: a5242692396a4b0f88b0461287fd9538 a79f1c2cced84134bae0b2cbdb521451 +#: c536198c110441ec8f582db7296da842 c81c6629c1d743ada613c4cd50b30e27 +#: de8e6016be4241f28bcb504a7760cbe6 dfff7bd57dab4210bfeee1741e0dba54 +#: e253b98abd6b43f1821d613362b34a45 eaaa3a14ee1e4d228a712a52abd75d6c +#: ef0de4bbb46d4b7ebf89f100548e5a7e ef162dbd023c4bcfbffbc4bd1bb5e973 +#: f5694bc35f254fc3ad0381ec573bad5b +msgid "Returns" +msgstr "" + +#: ../../page.rst:161 725d7121e14f4a59ac0c7b1fdce04357 +msgid "" +"the created annotation. Stroke color blue = (0, 0, 1), no fill color " +"support." +msgstr "" + +#: ../../page.rst:166 ../../page.rst:243 ../../page.rst:328 ../../page.rst:368 +#: ../../page.rst:540 ../../page.rst:613 ../../page.rst:649 ../../page.rst:671 +#: ../../page.rst:696 ../../page.rst:711 ../../page.rst:733 ../../page.rst:761 +#: ../../page.rst:790 ../../page.rst:857 ../../page.rst:894 ../../page.rst:919 +#: ../../page.rst:944 ../../page.rst:968 ../../page.rst:992 ../../page.rst:1017 +#: ../../page.rst:1041 ../../page.rst:1066 ../../page.rst:1090 +#: ../../page.rst:1115 ../../page.rst:1140 ../../page.rst:1321 +#: ../../page.rst:1369 ../../page.rst:1393 ../../page.rst:1451 +#: ../../page.rst:1479 ../../page.rst:1501 ../../page.rst:1542 +#: ../../page.rst:1653 ../../page.rst:1676 ../../page.rst:1735 +#: ../../page.rst:1765 ../../page.rst:1785 ../../page.rst:1800 +#: ../../page.rst:1841 ../../page.rst:1882 ../../page.rst:1896 +#: ../../page.rst:1910 ../../page.rst:1928 ../../page.rst:1945 +#: ../../page.rst:2046 ../../page.rst:2083 ../../page.rst:2107 +#: ../../page.rst:2125 ../../page.rst:2172 06e0aca46a0b497995a0933772704269 +#: 141cb4fdb9f645d4aeaea7b7024a5052 1a66f50d90b04e749b4732040a0034bf +#: 2003c624641d4d84acb78c5bc64570f3 2c4d8bd8d31e4b3d9e373b8eb7af09c2 +#: 30c98e90c3b44ec789d6ba46abf05fa1 3224c46abf7343f4afe5cf8537bf7fa1 +#: 34d52f2c3e7648e6897fd5ff07398ab3 3b45669122f9411fa021821d3d9661d7 +#: 3c4ea15bd48a46b791a050505f8caaee 3d5e060b49d34386b501bf1b8b7c8d1c +#: 4988794a42404e5bba37c3323e105fd1 512b3c36f1914ccb91651173577f889e +#: 52f0d7450dfe49a78ddf7879e240686a 5a3e49f66f844cf7a226447ba515514c +#: 5ce877309d474b3895438c07db4cc025 5d8bc521f1ab40bea08f06305a0133dc +#: 62fa68c4de434ad89adf8fd663faa9b0 6aafe1bc29f6405c8373a8f764191655 +#: 747b6c2893d54c3f97ed3377cb0e1ce5 766bfd0bdee34cb9a30b2444fa9640e3 +#: 76a3a3500f1341a8a5423df815a5d80e 77777ddfc172483ba1f24281cef1af24 +#: 8306e28fb421477ca15958f8993a706a 83b6f324e7d44593a436db0e839ee638 +#: 84a409e92469401cb2471c796119ffda 8bdd9f15f33f4127a32d7bcfc7ec4422 +#: 913f042d35ea407b8ae71b5c88d7ebb0 92eca8a07ce840e58717a6f674b107f8 +#: 9d3f92cd8fb1461e99f67ee8f00ffce3 9f34f467e9c2454ea41e4bd724b6f44b +#: aa47e7de7bbf4ab9b38289d426fc55b1 aba5c0dd558b410ea11ca40a3e8a9fe6 +#: aecae63f68e646e8aad20d73eda5ee5e af34016c28c84aa7aab373f75a440f93 +#: b3689628e86b4de7a18aebf3de050de5 b46fa7c15f2343d184eec41fd9db3529 +#: ce4a7227d53b4c0bb56195ad279b5e34 d13c0eba77cb4d9ab1f7288b8ce2f473 +#: d2499636a4484e5eb81c6ad965045c9e d2c46e917760489bbc62741618ea979a +#: d496035da211495894f02763aab46d52 d4b1c15d3db94414aa4c77f192dc5e62 +#: d539de04647e4ddeaf022884e895ff0e dafe015561de445e8048fba403c2f26c +#: df8f779752144b98944a98a1f1fe0b99 e2839fd8badb49bfaa229c37513be843 +#: e76ecfba7ee24286bcb6ee2406fd255a e827f59db4b44f1f9f7b0e526f8bef78 +msgid "|history_begin|" +msgstr "" + +#: ../../page.rst:168 a432ca9a84a64f4f93ffef1d2d8b1818 +msgid "New in v1.16.0" +msgstr "" + +#: ../../page.rst:170 ../../page.rst:247 ../../page.rst:332 ../../page.rst:376 +#: ../../page.rst:545 ../../page.rst:617 ../../page.rst:653 ../../page.rst:675 +#: ../../page.rst:700 ../../page.rst:715 ../../page.rst:737 ../../page.rst:765 +#: ../../page.rst:794 ../../page.rst:870 ../../page.rst:898 ../../page.rst:923 +#: ../../page.rst:948 ../../page.rst:972 ../../page.rst:996 ../../page.rst:1021 +#: ../../page.rst:1045 ../../page.rst:1070 ../../page.rst:1094 +#: ../../page.rst:1120 ../../page.rst:1144 ../../page.rst:1345 +#: ../../page.rst:1373 ../../page.rst:1397 ../../page.rst:1459 +#: ../../page.rst:1484 ../../page.rst:1506 ../../page.rst:1547 +#: ../../page.rst:1663 ../../page.rst:1684 ../../page.rst:1740 +#: ../../page.rst:1769 ../../page.rst:1793 ../../page.rst:1804 +#: ../../page.rst:1855 ../../page.rst:1886 ../../page.rst:1900 +#: ../../page.rst:1914 ../../page.rst:1932 ../../page.rst:1949 +#: ../../page.rst:2051 ../../page.rst:2090 ../../page.rst:2112 +#: ../../page.rst:2130 ../../page.rst:2176 02badfee54914c3f83727889b1b4ff33 +#: 0595e10a378642e0bbe023669874e726 08449e46bba64aacade9e311407ea072 +#: 0a2994c82ef1450ebb9756b4fb0dfc1f 0c5821d235c84248b3e340f1c793cebf +#: 0f22055db7d14cac92d34c39f82872fa 1a567f1151e843229f0254cede4cf4b4 +#: 1e1e5b59c2ab4dcab2182160cd9d7fc4 201fa97422c246fdb4cc8f5a01af81a2 +#: 2418a5d90afb42e797c383c4b35b82e3 26d6d9eaf82c4a87a18593f4c71dd611 +#: 2986afb3a4524ab282fd814b66b7b124 29de7beadc114997b1d486f2e93e4701 +#: 2c5f31d1f39c428abbe3963bfe89a076 31a9087f87a342cdbff2a000e761fafe +#: 33f63e74eb534732beae8ecb511e8510 3d260b67c14c4b21a1e767eb18a7ca54 +#: 46a9d7d5f0b94aa9b18bd4189ed9c34a 47a28c0e7222419b89633a5ae0e77749 +#: 5e5876e07cbb430e874d23691122fae2 622972c036ee44af83db95693614231f +#: 672303667e104177b5204910e3fdf14f 81d282163d3a4a82bb5cbdcfd15d0dce +#: 84f3a15e69814963aa1b9db2971e9707 87f85a7f6fd74f43a16acbad543db66e +#: 93e3dda4c5a243db90b873c791394d69 9e980b217a884705aafd2f0704ca0dd6 +#: a106f2b5aa45444483dc8651848f0889 a2b7f0a98f5149148ad7f0b0ab94d391 +#: af17b808a1324b0bbea2ead2da174b99 b1eedf6b66fe4cad8728aed5fc96761b +#: baa2a3be67d7485ea3f4fe4fbd5e6d71 bfaa4ce78d0e46309534834d76880310 +#: c096c887b83b4268997e9a453d25b842 c73fd911a20749508df1d8b19b8c57a3 +#: c801277ce33e42a6ba3362f269f6c5ef cba5fb8b9aa44348bf2b7d5390911709 +#: cc1324586d194932a0ca2cf16122eef1 d3b56b46642d4641908a8dceea5e5077 +#: d6737cec766d4e95b377fd109f9d1285 de95b2f374174e2e8d6060866e4a0f78 +#: e124096bc19d4cdcb7b3f234de20c1e1 e2e5c451a119407483e7607b1c5ed9ae +#: eaffd1e6736a4720841de28506c4dab6 f0c52cf5e35a4bd8a41f7f68312cd088 +#: f2da4f7eb3ee47a9b5c788654cbb1c98 f6fb260e08d34ba8901d564ca14d8199 +#: f95dac36543742408e550976f9dad77a ffd730a0dc0a496e88a4ac68c698cc8e +msgid "|history_end|" +msgstr "" + +#: ../../page.rst:174 d8ec3873695a46faa388afe6e3743ca3 +msgid "" +"PDF only: Add a comment icon (\"sticky note\") with accompanying text. " +"Only the icon is visible, the accompanying text is hidden and can be " +"visualized by many PDF viewers by hovering the mouse over the symbol." +msgstr "" + +#: ../../page.rst:176 444f1e5c16ea4352a788a5efd10e1569 +msgid "" +"the top left point of a 20 x 20 rectangle containing the MuPDF-provided " +"\"note\" icon." +msgstr "" + +#: ../../page.rst:178 ba51896b030f4534ac7582b69b2e717d +msgid "" +"the commentary text. This will be shown on double clicking or hovering " +"over the icon. May contain any Latin characters." +msgstr "" + +#: ../../page.rst:179 fcd4a7236e1246889d7569f393c0061e +msgid "" +"choose one of \"Note\" (default), \"Comment\", \"Help\", \"Insert\", " +"\"Key\", \"NewParagraph\", \"Paragraph\" as the visual symbol for the " +"embodied text [#f4]_. (New in v1.16.0)" +msgstr "" + +#: ../../page.rst:182 00b05d93137644ecae6d4d1ab0d1942c +msgid "" +"the created annotation. Stroke color yellow = (1, 1, 0), no fill color " +"support." +msgstr "" + +#: ../../page.rst:202 da81bd77253c4a21b14cc4130621cc52 +msgid "" +"PDF only: Add text in a given rectangle. Optionally, the appearance of a " +"\"callout\" shape can be requested by specifying two or three point-like " +"objects -- see below." +msgstr "" + +#: ../../page.rst:204 5f99d477c3e745cf8ec1e4a0ff35d8c5 +msgid "" +"the rectangle into which the text should be inserted. Text is " +"automatically wrapped to a new line at box width. Text portions not " +"fitting into the rectangle will be invisible without warning." +msgstr "" + +#: ../../page.rst:206 e5b43ec9291c4d949b0f2cd507783ddd +msgid "" +"the text. May contain any mixture of Latin, Greek, Cyrillic, Chinese, " +"Japanese and Korean characters. If `richtext=True` (see below), the " +"string is interpreted as HTML syntax. This adds a plethora of ways for " +"attractive effects." +msgstr "" + +#: ../../page.rst:208 1b209d97cea54825a17f2e38b4c1f41f +msgid "the :data:`fontsize`. Default is 11. Ignored if `richtext=True`." +msgstr "" + +#: ../../page.rst:210 c6363a1c3e3844dda24dce395cde51d4 +msgid "" +"The font name. Default is \"Helv\". Ignored if `richtext=True`, otherwise" +" the following **restritions apply:** * Accepted alternatives are " +"\"Helv\" (Helvetica), \"Cour\" (Courier), \"TiRo\" (Timnes-Roman), " +"\"ZaDb\" (ZapfDingBats) and \"Symb\" (Symbol). The name may be " +"abbreviated to the first two characters, like \"Co\" for \"Cour\", lower " +"case accepted. * Bold or italic variants of the fonts are **not " +"supported.**" +msgstr "" + +#: ../../page.rst:210 8bccdef5bfa349ac8cc4a0b0df77d779 +msgid "" +"The font name. Default is \"Helv\". Ignored if `richtext=True`, otherwise" +" the following **restritions apply:**" +msgstr "" + +#: ../../page.rst:212 36e99423c0944ce5b4cb2ed37304d148 +msgid "" +"Accepted alternatives are \"Helv\" (Helvetica), \"Cour\" (Courier), " +"\"TiRo\" (Timnes-Roman), \"ZaDb\" (ZapfDingBats) and \"Symb\" (Symbol). " +"The name may be abbreviated to the first two characters, like \"Co\" for " +"\"Cour\", lower case accepted." +msgstr "" + +#: ../../page.rst:214 ef7c988255f8408693dcd893daee5569 +msgid "Bold or italic variants of the fonts are **not supported.**" +msgstr "" + +#: ../../page.rst:216 272d5192e6a54a489f66fa6362549341 +msgid "the text color. Default is black. Ignored if `richtext=True`." +msgstr "" + +#: ../../page.rst:218 af477130273e4b5fa28d9e37245755e8 +msgid "" +"the fill color. This is used for ``rect`` and the end point of the " +"callout lines when applicable. Default is ``None``." +msgstr "" + +#: ../../page.rst:220 4d76d5a8790d4b839bd983dd6ec9d77c +msgid "" +"This parameter **only has an effect** if `richtext=True`. Otherwise, " +"``text_color`` is used." +msgstr "" + +#: ../../page.rst:222 e0f1c549358349d0a0f8708295f71f6f +msgid "" +"the width of border and ``callout`` lines. Default is 0 (no border), in " +"which case callout lines may still appear with some hairline width, " +"depending on the PDF viewer used. In any case, this value must be " +"positive to see a border line." +msgstr "" + +#: ../../page.rst:224 b03d77e2b6b64e91aa9ddd2c3b69b614 +msgid "" +"a list of floats specifying how border and callout lines should be " +"dashed. Default is ``None``." +msgstr "" + +#: ../../page.rst:226 9289999654b34275b118b35ca71befbd +msgid "" +"a list / tuple of two or three :data:`point_like` objects, which will be " +"interpreted as end point [, knee point] and start point (in this " +"sequence) of up to two line segments, converting this annotation into a " +"call-out shape." +msgstr "" + +#: ../../page.rst:228 22ed97f9b1574b94babadcefb21d3b01 +msgid "" +"the line end symbol of the call-out line. It is drawn at the first point " +"specified in the `callout` list. Default is an open arrow. For possible " +"values see :ref:`AnnotationLineEnds`." +msgstr "" + +#: ../../page.rst:230 c35ad9a2509141878cedbb95c593fe7b +msgid "" +"a float `0 <= opacity < 1` turning the annotation transparent. Default is" +" no transparency." +msgstr "" + +#: ../../page.rst:232 37a763be7bad491cb45931b9429c4c68 +msgid "" +"text alignment, one of TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, " +"TEXT_ALIGN_RIGHT - justify is **not supported**. Ignored if " +"`richtext=True`." +msgstr "" + +#: ../../page.rst:234 a37c990e9bf349eaba83f81515bc08c1 +msgid "" +"the text orientation. Accepted values are integer multiples of 90°. " +"Invalid entries receive a rotation of 0." +msgstr "" + +#: ../../page.rst:236 6d3d35985f8548eab9441accfbadfd21 +msgid "" +"treat ``text`` as HTML syntax. This allows to achieve **bold**, *italic*," +" arbitrary text colors, font sizes, text alignment including justify and " +"more - as far as the PDF subset of HTML and styling instructions supports" +" this. This is similar to what happens in :meth:`Page.insert_htmlbox`. " +"The base library will for example pull in required fonts if it encounters" +" characters not contained in the standard ones. Some parameters are " +"ignored if this option is set, as mentioned above. Default is ``False``." +msgstr "" + +#: ../../page.rst:238 24105781e9b74f28961a17ef0741d795 +msgid "" +"supply optional HTML styling information in CSS syntax. Ignored if " +"`richtext=False`." +msgstr "" + +#: ../../page.rst:241 e19d564ac39043ba9412a1833b016354 +msgid "the created annotation." +msgstr "" + +#: ../../page.rst:245 cb932ff975034cf5a46ebce5a3d5fef3 +msgid "Changed in v1.19.6: add border color parameter" +msgstr "" + +#: ../../page.rst:251 d9ffc94d2383440f958329808b2ed6c3 +msgid "" +"PDF only: Add a file attachment annotation with a \"PushPin\" icon at the" +" specified location." +msgstr "" + +#: ../../page.rst:253 7850850451ec4c9097b96541fdc27394 +msgid "" +"the top-left point of a 18x18 rectangle containing the MuPDF-provided " +"\"PushPin\" icon." +msgstr "" + +#: ../../page.rst:255 acfe93b4198344eda02d7a03b353ca77 +msgid "" +"the data to be stored (actual file content, any data, etc.). Changed in " +"v1.14.13: *io.BytesIO* is now also supported." +msgstr "" + +#: ../../page.rst:255 2057d907ffcd43ec996b431d8e1bdd4f +msgid "the data to be stored (actual file content, any data, etc.)." +msgstr "" + +#: ../../page.rst:257 77c6e5d0221f4f609584f3422eb787ea +msgid "Changed in v1.14.13: *io.BytesIO* is now also supported." +msgstr "" + +#: ../../page.rst:259 39073228b9ad4c41a7d61973ff451f7f +msgid "the filename to associate with the data." +msgstr "" + +#: ../../page.rst:260 41da9cdaf23648b68c9a78554a1290b4 +msgid "the optional PDF unicode version of filename. Defaults to filename." +msgstr "" + +#: ../../page.rst:261 12cc7d8353a347bbb77ac0a487196e29 +msgid "an optional description of the file. Defaults to filename." +msgstr "" + +#: ../../page.rst:262 8c253c5f387245ef8decce89d2c40230 +msgid "" +"choose one of \"PushPin\" (default), \"Graph\", \"Paperclip\", \"Tag\" as" +" the visual symbol for the attached data [#f4]_. (New in v1.16.0)" +msgstr "" + +#: ../../page.rst:265 5d93a52505284c3eab585fcea69a39c4 +msgid "" +"the created annotation. Stroke color yellow = (1, 1, 0), no fill color " +"support." +msgstr "" + +#: ../../page.rst:269 b5bdde79e584483899f7f79e214ff8bd +msgid "PDF only: Add a \"freehand\" scribble annotation." +msgstr "" + +#: ../../page.rst:271 0e40df92c5674ec487c4a9919ab386b7 +msgid "" +"a list of one or more lists, each containing :data:`point_like` items. " +"Each item in these sublists is interpreted as a :ref:`Point` through " +"which a connecting line is drawn. Separate sublists thus represent " +"separate drawing lines." +msgstr "" + +#: ../../page.rst:274 8e3f7652ecd14f8c8c052fed6fcf46f3 +msgid "" +"the created annotation in default appearance black =(0, 0, 0),line width " +"1. No fill color support." +msgstr "" + +#: ../../page.rst:278 b86f901fd3ad4d71a03591ec9cd6df54 +msgid "PDF only: Add a line annotation." +msgstr "" + +#: ../../page.rst:280 68b283c40be64dab874b8a80425794b5 +msgid "the starting point of the line." +msgstr "" + +#: ../../page.rst:282 0d2d2c2792b045a0815b8c65212644da +msgid "the end point of the line." +msgstr "" + +#: ../../page.rst:285 ba6653fa181c4c5c908a5f2ceac4386d +msgid "" +"the created annotation. It is drawn with line (stroke) color red = (1, 0," +" 0) and line width 1. No fill color support. The **annot rectangle** is " +"automatically created to contain both points, each one surrounded by a " +"circle of radius 3 * line width to make room for any line end symbols." +msgstr "" + +#: ../../page.rst:291 9dbfa38e942545b2a0abc3c2d0b1945a +msgid "PDF only: Add a rectangle, resp. circle annotation." +msgstr "" + +#: ../../page.rst:293 c0d788aeb5e84abea2f2313cc9512956 +msgid "" +"the rectangle in which the circle or rectangle is drawn, must be finite " +"and not empty. If the rectangle is not equal-sided, an ellipse is drawn." +msgstr "" + +#: ../../page.rst:296 dee1374ec0114b3cab8a319b08afaa42 +msgid "" +"the created annotation. It is drawn with line (stroke) color red = (1, 0," +" 0), line width 1, fill color is supported." +msgstr "" + +#: ../../page.rst:301 64d43e8d6be3414694bba69efaee620a +msgid "Redactions" +msgstr "" + +#: ../../page.rst:305 a84361a8bc454638a5382f3b141486ef +msgid "" +"**PDF only**: Add a redaction annotation. A redaction annotation " +"identifies an area whose content should be removed from the document. " +"Adding such an annotation is the first of two steps. It makes visible " +"what will be removed in the subsequent step, " +":meth:`Page.apply_redactions`." +msgstr "" + +#: ../../page.rst:307 5dac4a2ac6394fc99f25e30413c301da +msgid "" +"specifies the (rectangular) area to be removed which is always equal to " +"the annotation rectangle. This may be a :data:`rect_like` or " +":data:`quad_like` object. If a quad is specified, then the enveloping " +"rectangle is taken." +msgstr "" + +#: ../../page.rst:309 4d76e403896a4b05b4f4abebe01e0204 +msgid "" +"text to be placed in the rectangle after applying the redaction (and thus" +" removing old content). (New in v1.16.12)" +msgstr "" + +#: ../../page.rst:311 1f18c3b53454466c85cd51ab44ed410d +msgid "" +"the font to use when ``text`` is given, otherwise ignored. Only CJK and " +"the :ref:`Base-14-Fonts` are supported. Apart from this, the same rules " +"apply as for :meth:`Page.insert_textbox` -- which is what the method " +":meth:`Page.apply_redactions` internally invokes." +msgstr "" + +#: ../../page.rst:313 15e6fd75902e4d668d2c53ce39c6612b +msgid "" +"the :data:`fontsize` to use for the replacing text. If the text is too " +"large to fit, several insertion attempts will be made, gradually reducing" +" the :data:`fontsize` to no less than 4. If then the text will still not " +"fit, no text insertion will take place at all. (New in v1.16.12)" +msgstr "" + +#: ../../page.rst:315 c037bef2ae914aac887186cb50012cc1 +msgid "" +"the horizontal alignment for the replacing text. See " +":meth:`insert_textbox` for available values. The vertical alignment is " +"(approximately) centered." +msgstr "" + +#: ../../page.rst:317 8f310d455d444b068857a16bcdfc4f51 +msgid "" +"the fill color of the rectangle **after applying** the redaction. The " +"default is *white = (1, 1, 1)*, which is also taken if ``None`` is " +"specified. To suppress a fill color altogether, specify ``False``. In " +"this cases the rectangle remains transparent. (New in v1.16.12)" +msgstr "" + +#: ../../page.rst:319 f812c2b775b04ee1b3c04c57cbebaed0 +msgid "" +"the color of the replacing text. Default is *black = (0, 0, 0)*. (New in " +"v1.16.12)" +msgstr "" + +#: ../../page.rst:321 a2ae0126926c491abf40d2a1c2b0a3f8 +msgid "add two diagonal lines to the annotation rectangle. (New in v1.17.2)" +msgstr "" + +#: ../../page.rst:324 6d7e478605e94dbc8eb4b0b84e535142 +msgid "" +"the created annotation. Its standard appearance looks like a red " +"rectangle (no fill color), optionally showing two diagonal lines. Colors," +" line width, dashing, opacity and blend mode can now be set and applied " +"via :meth:`Annot.update` like with other annotations. (Changed in " +"v1.17.2)" +msgstr "" + +#: ../../page.rst:330 ../../page.rst:370 185241df5ccf4107bb94ed75536d2869 +#: 3f492500f5c74544b8191d63b72a7f35 +msgid "New in v1.16.11" +msgstr "" + +#: ../../page.rst:337 865d86b155654e3d97b02053e505d379 +msgid "" +"**PDF only**: Remove all **content** contained in any redaction rectangle" +" on the page." +msgstr "" + +#: ../../page.rst:339 e78a9bf11c1c4ad2bbb5c21f5af5e49a +msgid "**This method applies and then deletes all redactions from the page.**" +msgstr "" + +#: ../../page.rst:341 09073582e1e649d382d2a335dd82d782 +msgid "" +"How to redact overlapping images. The default (2) blanks out overlapping " +"pixels. `PDF_REDACT_IMAGE_NONE | 0` ignores, and `PDF_REDACT_IMAGE_REMOVE" +" | 1` completely removes images overlapping any redaction annotation. " +"Option `PDF_REDACT_IMAGE_REMOVE_UNLESS_INVISIBLE | 3` only removes images" +" that are actually visible." +msgstr "" + +#: ../../page.rst:343 f11b640439064a57804428691b95557c +#, python-format +msgid "" +"How to redact overlapping vector graphics (also called \"line-art\" or " +"\"drawings\"). The default (2) removes any overlapping vector graphics. " +"`PDF_REDACT_LINE_ART_NONE | 0` ignores, and " +"`PDF_REDACT_LINE_ART_REMOVE_IF_COVERED | 1` removes graphics fully " +"contained in a redaction annotation. When removing line-art, please be " +"aware that **stroked** vector graphics (i.e. type \"s\" or \"sf\") have a" +" **larger wrapping rectangle** than one might expect: first of all, at " +"least 50% of the path's line width have to be added in each direction to " +"truly include all of the drawing. If a so-called \"miter limit\" is " +"provided (see page 121 of the PDF specification), the enlarging value is " +"`miter * width / 2`. So, when letting everything default (width = 1, " +"miter = 10), the redaction rectangle should be at least 5 points larger " +"in every direction." +msgstr "" + +#: ../../page.rst:345 b62537b48f434247b1f5f7043574b596 +msgid "" +"Whether to redact overlapping text. The default `PDF_REDACT_TEXT_REMOVE |" +" 0` removes all characters whose boundary box overlaps any redaction " +"rectangle. This complies with the original legal / data protection " +"intentions of redaction annotations. Other use cases however may require " +"to **keep text** while redacting vector graphics or images. This can be " +"achieved by setting `text=True|PDF_REDACT_TEXT_NONE | 1`. This does **not" +" comply** with the data protection intentions of redaction annotations. " +"**Do so at your own risk.**" +msgstr "" + +#: ../../page.rst:347 1aba7daeb2cd4a4ca3d5d9e6f3c074fa +msgid "" +"`True` if at least one redaction annotation has been processed, `False` " +"otherwise." +msgstr "" + +#: ../../page.rst:350 1b977b6ed04246c3ae5faf3f785569f1 +msgid "" +"Text contained in a redaction rectangle will be **physically** removed " +"from the page (assuming :meth:`Document.save` with a suitable garbage " +"option) and will no longer appear in e.g. text extractions or anywhere " +"else. All redaction annotations will also be removed. Other annotations " +"are unaffected." +msgstr "" + +#: ../../page.rst:352 487f11ac3e46441faf9dd99f32447379 +msgid "" +"All overlapping links will be removed. If the rectangle of the link was " +"covering text, then only the overlapping part of the text is being " +"removed. Similar applies to images covered by link rectangles." +msgstr "" + +#: ../../page.rst:354 8e50b4b5fe0b444aa2b5fda22df95a93 +msgid "" +"The overlapping parts of **images** will be blanked-out for default " +"option `PDF_REDACT_IMAGE_PIXELS` (changed in v1.18.0). Option 0 does not " +"touch any images and 1 will remove any image with an overlap." +msgstr "" + +#: ../../page.rst:356 6a9f7ffec9fa4701a8c230e0944d5de8 +msgid "" +"For option `images=PDF_REDACT_IMAGE_REMOVE` only this page's **references" +" to the images** are removed - not necessarily the images themselves. " +"Images are completely removed from the file only, if no longer referenced" +" at all (assuming suitable garbage collection options)." +msgstr "" + +#: ../../page.rst:358 e4034acfd25f4158a32e53879651c689 +msgid "" +"For option `images=PDF_REDACT_IMAGE_PIXELS` a new image of format PNG is " +"created, which the page will use in place of the original one. The " +"original image is not deleted or replaced as part of this process, so " +"other pages may still show the original. In addition, the new, modified " +"PNG image currently is **stored uncompressed**. Do keep these aspects in " +"mind when choosing the right garbage collection method and compression " +"options during save." +msgstr "" + +#: ../../page.rst:360 dc47a452593a4cb3a3e131031f5730d7 +msgid "" +"**Text removal** is done by character: A character is removed if its bbox" +" has a **non-empty overlap** with a redaction rectangle (changed in MuPDF" +" v1.17). Depending on the font properties and / or the chosen line " +"height, deletion may occur for undesired text parts. Using " +":meth:`Tools.set_small_glyph_heights` with a ``True`` argument before " +"text search may help to prevent this." +msgstr "" + +#: ../../page.rst:362 ee9e385dfb9447b8a537d61b2365d03f +msgid "" +"Redactions are a simple way to replace single words in a PDF, or to just " +"physically remove them. Locate the word \"secret\" using some text " +"extraction or search method and insert a redaction using \"xxxxxx\" as " +"replacement text for each occurrence." +msgstr "" + +#: ../../page.rst:364 aeeaa43dc6f547be81c82b217ea0b35f +msgid "" +"Be wary if the replacement is longer than the original -- this may lead " +"to an awkward appearance, line breaks or no new text at all." +msgstr "" + +#: ../../page.rst:366 ea636c09a9924bb8b5646e6dfac446f9 +msgid "" +"For a number of reasons, the new text may not exactly be positioned on " +"the same line like the old one -- especially true if the replacement font" +" was not one of CJK or :ref:`Base-14-Fonts`." +msgstr "" + +#: ../../page.rst:371 3a1768a048d347a4807733013681a35b +msgid "" +"Changed in v1.16.12: The previous *mark* parameter is gone. Instead, the " +"respective rectangles are filled with the individual *fill* color of each" +" redaction annotation. If a *text* was given in the annotation, then " +":meth:`insert_textbox` is invoked to insert it, using parameters provided" +" with the redaction." +msgstr "" + +#: ../../page.rst:372 bb9c6db9f287498290c02c005b04b563 +msgid "" +"Changed in v1.18.0: added option for handling images that overlap " +"redaction areas." +msgstr "" + +#: ../../page.rst:373 3106c488a58e4ee7aebb2137a0641e62 +msgid "Changed in v1.23.27: added option for removing graphics as well." +msgstr "" + +#: ../../page.rst:374 14c5c16ae5274f2c93cae93f149bbaac +msgid "Changed in v1.24.2: added option `keep_text` to leave text untouched." +msgstr "" + +#: ../../page.rst:384 16a23881460e4301bee92bf2d492116a +msgid "" +"PDF only: Add an annotation consisting of lines which connect the given " +"points. A **Polygon's** first and last points are automatically " +"connected, which does not happen for a **PolyLine**. The **rectangle** is" +" automatically created as the smallest rectangle containing the points, " +"each one surrounded by a circle of radius 3 (= 3 * line width). The " +"following shows a 'PolyLine' that has been modified with colors and line " +"ends." +msgstr "" + +#: ../../page.rst:386 48e0dcb2eacd42a58db10f609be72065 +msgid "a list of :data:`point_like` objects." +msgstr "" + +#: ../../page.rst:389 ffc26708d41548e79d6d16bef4dec96c +msgid "" +"the created annotation. It is drawn with line color black, line width 1 " +"no fill color but fill color support. Use methods of :ref:`Annot` to make" +" any changes to achieve something like this:" +msgstr "" + +#: ../../page.rst:402 77481744eb7b4202a73407869d31200a +msgid "" +"PDF only: These annotations are normally used for **marking text** which " +"has previously been somehow located (for example via " +":meth:`Page.search_for`). But this is not required: you are free to " +"\"mark\" just anything." +msgstr "" + +#: ../../page.rst:404 8b9c2a1ec12243d584aa92eb85b61fe6 +msgid "" +"Standard (stroke only -- no fill color support) colors are chosen per " +"annotation type: **yellow** for highlighting, **red** for striking out, " +"**green** for underlining, and **magenta** for wavy underlining." +msgstr "" + +#: ../../page.rst:406 ddb3fc3897074943b2d1b989ef777ed7 +msgid "" +"All these four methods convert the arguments into a list of :ref:`Quad` " +"objects. The **annotation** rectangle is then calculated to envelop all " +"these quadrilaterals." +msgstr "" + +#: ../../page.rst:410 e5e7ecd7dac94d878780bcbf4ccf47ee +msgid "" +":meth:`search_for` delivers a list of either :ref:`Rect` or :ref:`Quad` " +"objects. Such a list can be directly used as an argument for these " +"annotation types and will deliver **one common annotation** for all " +"occurrences of the search string::" +msgstr "" + +#: ../../page.rst:417 be498e99e49f4a21b7e2148a246e5d3a +msgid "" +"Obviously, text marker annotations need to know what is the top, the " +"bottom, the left, and the right side of the area(s) to be marked. If the " +"arguments are quads, this information is given by the sequence of the " +"quad points. In contrast, a rectangle delivers much less information -- " +"this is illustrated by the fact, that 4! = 24 different quads can be " +"constructed with the four corners of a rectangle." +msgstr "" + +#: ../../page.rst:419 7c806b98a76e4db298927d6b2db7f217 +msgid "" +"Therefore, we **strongly recommend** to use the `quads` option for text " +"searches, to ensure correct annotations. A similar consideration applies " +"to marking **text spans** extracted with the \"dict\" / \"rawdict\" " +"options of :meth:`Page.get_text`. For more details on how to compute " +"quadrilaterals in this case, see section \"How to Mark Non-horizontal " +"Text\" of :ref:`FAQ`." +msgstr "" + +#: ../../page.rst:421 b12e854cdc77477bb69cfa7be1147221 +msgid "" +"the location(s) -- rectangle(s) or quad(s) -- to be marked. (Changed in " +"v1.14.20) A list or tuple must consist of :data:`rect_like` or " +":data:`quad_like` items (or even a mixture of either). Every item must be" +" finite, convex and not empty (as applicable). **Set this parameter to** " +"``None`` if you want to use the following arguments (Changed in " +"v1.16.14). And vice versa: if not ``None``, the remaining parameters must" +" be ``None``." +msgstr "" + +#: ../../page.rst:428 089f510a4e0741409b2021b3736270b5 +msgid "" +"start text marking at this point. Defaults to the top-left point of " +"*clip*. Must be provided if `quads` is ``None``. (New in v1.16.14)" +msgstr "" + +#: ../../page.rst:429 d2de277e9e6a43a484c54b51d6ea8199 +msgid "" +"stop text marking at this point. Defaults to the bottom-right point of " +"*clip*. Must be used if `quads` is ``None``. (New in v1.16.14)" +msgstr "" + +#: ../../page.rst:430 ffbdd0cf15b94a05abb2545b0b56572d +msgid "" +"only consider text lines intersecting this area. Defaults to the page " +"rectangle. Only use if `start` and `stop` are provided. (New in v1.16.14)" +msgstr "" + +#: ../../page.rst:432 95d9be073ec0435b8a050f40e80e333d +msgid ":ref:`Annot` or ``None`` (changed in v1.16.14)." +msgstr "" + +#: ../../page.rst:433 7d7542fa5b7c41b6aa27c333c40f1708 +msgid "" +"the created annotation. If *quads* is an empty list, **no annotation** is" +" created (changed in v1.16.14)." +msgstr "" + +#: ../../page.rst:436 98644a2344314f44ba04ba5bb452616e +msgid "" +"You can use parameters *start*, *stop* and *clip* to highlight " +"consecutive lines between the points *start* and *stop* (starting with " +"v1.16.14). Make use of *clip* to further reduce the selected line bboxes " +"and thus deal with e.g. multi-column pages. The following multi-line " +"highlight on a page with three text columns was created by specifying the" +" two red points and setting clip accordingly." +msgstr "" + +#: ../../page.rst:445 75642278b2224e88a9772fd96d3a3059 +msgid "" +"Cluster vector graphics (synonyms are line-art or drawings) based on " +"their geometrical vicinity. The method walks through the output of " +":meth:`Page.get_drawings` and joins paths whose `path[\"rect\"]` are " +"closer to each other than some tolerance values (given in the arguments)." +" The result is a list of rectangles that each wrap things like tables " +"(with gridlines), pie charts, bar charts, etc." +msgstr "" + +#: ../../page.rst:447 8af220b5d116468da1c3a74e2d346cd4 +msgid "only consider paths inside this area. The default is the full page." +msgstr "" + +#: ../../page.rst:449 0f2851c495ca480fb94cd3aec130a7b3 +msgid "" +"(optional) provide a previously generated output of " +":meth:`Page.get_drawings`. If `None` the method will execute the method." +msgstr "" + +#: ../../page.rst:451 49e0542c28684b6b903d2d86c7b062a6 +msgid "" +"Assume vector graphics to be close enough neighbors for belonging to the " +"same rectangle. Default is 3 points." +msgstr "" + +#: ../../page.rst:453 ce87a4c4de064cb49cd1d3430b4676d3 +msgid "" +"If `True` (default), the method will to remove rectangles having width or" +" height smaller than the respective tolerance value. If `False` no such " +"filtering is done." +msgstr "" + +#: ../../page.rst:457 a09f9aad182c477caf151dc66eb6f2cd +msgid "" +"Find tables on the page and return an object with related information. " +"Typically, the default values of the many parameters will be sufficient. " +"Adjustments should ever only be needed in corner case situations." +msgstr "" + +#: ../../page.rst:459 74a611af01fb41deac6b00bf3e092130 +msgid "" +"specify a region to consider within the page rectangle and ignore the " +"rest. Default is the full page." +msgstr "" + +#: ../../page.rst:461 c6cda0b38ecc4c4ab6b9e66681366f13 +msgid "" +"Request a **table detection** strategy. Valid values are \"lines\", " +"\"lines_strict\" and \"text\". Default is **\"lines\"** which uses all " +"vector graphics on the page to detect grid lines. Strategy " +"**\"lines_strict\"** ignores borderless rectangle vector graphics. " +"Sometimes single text pieces have background colors which may lead to " +"false columns or lines. This strategy ignores them and can thus increase " +"detection precision. If **\"text\"** is specified, text positions are " +"used to generate \"virtual\" column and / or row boundaries. Use " +"`min_words_*` to request the number of words for considering their " +"coordinates. Use parameters `vertical_strategy` and " +"`horizontal_strategy` **instead** for a more fine-grained treatment of " +"the dimensions." +msgstr "" + +#: ../../page.rst:461 49dcc16d7dc54781abdfa232abec999e +msgid "" +"Request a **table detection** strategy. Valid values are \"lines\", " +"\"lines_strict\" and \"text\"." +msgstr "" + +#: ../../page.rst:463 487f50ea618a41b69d1d35e5becc936e +msgid "" +"Default is **\"lines\"** which uses all vector graphics on the page to " +"detect grid lines." +msgstr "" + +#: ../../page.rst:465 475d14ec21db4fa5b86f652beb2fa96e +msgid "" +"Strategy **\"lines_strict\"** ignores borderless rectangle vector " +"graphics. Sometimes single text pieces have background colors which may " +"lead to false columns or lines. This strategy ignores them and can thus " +"increase detection precision." +msgstr "" + +#: ../../page.rst:467 620ca770d5a84f1f8274b964de8e0a8d +msgid "" +"If **\"text\"** is specified, text positions are used to generate " +"\"virtual\" column and / or row boundaries. Use `min_words_*` to request " +"the number of words for considering their coordinates." +msgstr "" + +#: ../../page.rst:469 55aec1b404204b0e83768215c8eae28d +msgid "" +"Use parameters `vertical_strategy` and `horizontal_strategy` **instead** " +"for a more fine-grained treatment of the dimensions." +msgstr "" + +#: ../../page.rst:471 b57bc9f7abbd4ef9babbe5d0dff06e4d +msgid "" +"y-coordinates of rows. If provided, there will be no attempt to identify " +"additional table rows. This influences table detection." +msgstr "" + +#: ../../page.rst:473 d7014235e8a2469d8a599a403b70c460 +msgid "" +"x-coordinates of columns. If provided, there will be no attempt to " +"identify additional table columns. This influences table detection." +msgstr "" + +#: ../../page.rst:475 8597b2d142824c29a8116c7c89749dfa +msgid "" +"relevant for vertical strategy option \"text\": at least this many words " +"must coincide to establish a **virtual column** boundary." +msgstr "" + +#: ../../page.rst:477 1fff3607f10f4335ae8da286bcf1b265 +msgid "" +"relevant for horizontal strategy option \"text\": at least this many " +"words must coincide to establish a **virtual row** boundary." +msgstr "" + +#: ../../page.rst:479 fe507763ad9248bbbe7ed10253cf19a6 +msgid "" +"Any two horizontal lines whose y-values differ by no more than this value" +" will be **snapped** into one. Accordingly for vertical lines. Default is" +" 3. Separate values can be specified instead for the dimensions, using " +"`snap_x_tolerance` and `snap_y_tolerance`." +msgstr "" + +#: ../../page.rst:481 019d0273cf7b4e5d82a05b28826235ea +msgid "" +"Any two lines will be **joined** to one if the end and the start points " +"differ by no more than this value (in points). Default is 3. Instead of " +"this value, separate values can be specified for the dimensions using " +"`join_x_tolerance` and `join_y_tolerance`." +msgstr "" + +#: ../../page.rst:483 ca0d9fea67634596941e6d13c7395948 +msgid "" +"Ignore a line if its length does not exceed this value (points). Default " +"is 3." +msgstr "" + +#: ../../page.rst:485 a638d4f3b5d944a19aa7ef553c1b08f2 +msgid "" +"When combining lines into cell borders, orthogonal lines must be within " +"this value (points) to be considered intersecting. Default is 3. Instead " +"of this value, separate values can be specified for the dimensions using " +"`intersection_x_tolerance` and `intersection_y_tolerance`." +msgstr "" + +#: ../../page.rst:487 9b17ecb26f16435eab08ade1ce87a836 +msgid "" +"Characters will be combined into words only if their distance is no " +"larger than this value (points). Default is 3. Instead of this value, " +"separate values can be specified for the dimensions using " +"`text_x_tolerance` and `text_y_tolerance`." +msgstr "" + +#: ../../page.rst:489 a6a350a7a75140a7be8ccce2ee4fb8c4 +msgid "" +"Specify a list of \"lines\" (i.e. pairs of :data:`point_like` objects) as" +" **additional**, \"virtual\" vector graphics. These lines may help with " +"table and / or cell detection and will not otherwise influence the " +"detection strategy. Especially, in contrast to parameters " +"`horizontal_lines` and `vertical_lines`, they will not prevent detecting " +"rows or columns in other ways. These lines will be treated exactly like " +"\"real\" vector graphics in terms of joining, snapping, intersecting, " +"minimum length and containment in the `clip` rectangle. Similarly, lines " +"not parallel to any of the coordinate axes will be ignored." +msgstr "" + +#: ../../page.rst:491 2de25b9194a945d9b22879d826f9d4fd +msgid "" +"Specify a list of rectangles (:data:`rect_like` objects) as " +"**additional**, \"virtual\" vector graphics. These rectangles may help " +"with table and / or cell detection and will not otherwise influence the " +"detection strategy. Especially, in contrast to parameters " +"`horizontal_lines` and `vertical_lines`, they will not prevent detecting " +"rows or columns in other ways. These rectangles will be treated exactly " +"like \"real\" vector graphics in terms of joining, snapping, " +"intersecting, minimum length and containment in the `clip` rectangle." +msgstr "" + +#: ../../page.rst:493 c824c246b4444d25905dca68201a67e6 +msgid "" +"list of vector graphics in the format as returned be " +":meth:`Page.get_drawings`. Using this parameter will prevent the method " +"to extract vector graphics itself. This is useful if the vector graphics " +"are already available. This can save execution time significantly." +msgstr "" + +#: ../../page.rst:497 f04ba862cde54466baab8d1b6048b4a5 +msgid "" +"a `TableFinder` object that has the following significant attributes: * " +"`cells`: a list of **all bboxes** on the page, that have been identified " +"as table cells (across all tables). Each cell is a :data:`rect_like` " +"tuple `(x0, y0, x1, y1)` of coordinates or `None`. * `tables`: a list of " +"`Table` objects. This is `[]` if the page has no tables. Single tables " +"can be found as items of this list. But the `TableFinder` object itself " +"is also a sequence of its tables. This means that if `tabs` is a " +"`TableFinder` object, then table \"n\" is delivered by `tabs.tables[n]` " +"as well as by the shorter `tabs[n]`. * The `Table` object has the " +"following attributes: * ``bbox``: the bounding box of the table as a " +"tuple `(x0, y0, x1, y1)`. * ``cells``: bounding boxes of the table's " +"cells (list of tuples). A cell may also be `None`. * ``extract()``: " +"this method returns the text content of each table cell as a list of list" +" of strings. * ``to_markdown()``: this method returns the table as a " +"**string in markdown format** (compatible to Github). Markdown viewers " +"can render the string as a table. This output is optimized for **small " +"token** sizes, which is especially beneficial for LLM/RAG feeds. Pandas " +"DataFrames (see method `to_pandas()` below) offer an equivalent markdown " +"table output which however is better readable for the human eye. Any line" +" breaks (``\\n``) in cells are replaced by HTML line breaks tags `
`." +" * `to_pandas()`: this method returns the table as a `pandas " +"`_ `DataFrame " +"`_. DataFrames are " +"very versatile objects allowing a plethora of table manipulation methods " +"and outputs to almost 20 well-known formats, among them Excel files, CSV," +" JSON, markdown-formatted tables and more. `DataFrame.to_markdown()` " +"generates a Github-compatible markdown format optimized for human " +"readability. This method however requires the package `tabulate " +"`_ to be installed in addition to " +"pandas itself. * ``header``: a `TableHeader` object containing header " +"information of the table. * ``col_count``: an integer containing the " +"number of table columns. * ``row_count``: an integer containing the " +"number of table rows. * ``rows``: a list of `TableRow` objects " +"containing two attributes, ``bbox`` is the boundary box of the row, and " +"`cells` is a list of table cells contained in this row. * The " +"`TableHeader` object has the following attributes: * ``bbox``: the " +"bounding box of the header. * `cells`: a list of bounding boxes " +"containing the name of the respective column. * `names`: a list of " +"strings containing the text of each of the cell bboxes. They represent " +"the column names -- which are used when exporting the table to pandas " +"DataFrames, markdown, etc. * `external`: a bool indicating whether the " +"header bbox is outside the table body (`True`) or not. Table headers are " +"never identified by the `TableFinder` logic. Therefore, if `external` is " +"true, then the header cells are not part of any cell identified by " +"`TableFinder`. If `external == False`, then the first table row is the " +"header. Please have a look at these `Jupyter notebooks " +"`_, which cover standard situations like multiple tables on one " +"page or joining table fragments across multiple pages. .. caution:: The " +"lifetime of the `TableFinder` object, as well as that of all its tables " +"**equals the lifetime of the page**. If the page object is deleted or " +"reassigned, all tables are no longer valid. The only way to keep " +"table content beyond the page's availability is to **extract it** via " +"methods `Table.to_markdown()`, `Table.to_pandas()` or a copy of " +"`Table.extract()` (e.g. `Table.extract()[:]`). .. note:: Once a " +"table has been extracted to a **Pandas DataFrame** with `to_pandas()` it " +"is easy to convert to other file types with the **Pandas API**: - " +"table to Markdown, use `to_markdown " +"`_" +" - table to JSON, use: `to_json " +"`_" +" - table to Excel, use: `to_excel " +"`_" +" - table to CSV, use: `to_csv " +"`_" +" - table to HTML, use: `to_html " +"`_" +" - table to SQL, use: `to_sql " +"`_" +msgstr "" + +#: ../../page.rst:497 84419d75309847998f10e74484826aa4 +msgid "a `TableFinder` object that has the following significant attributes:" +msgstr "" + +#: ../../page.rst:499 914dadb7b99c41e397f201925e416bf3 +msgid "" +"`cells`: a list of **all bboxes** on the page, that have been identified " +"as table cells (across all tables). Each cell is a :data:`rect_like` " +"tuple `(x0, y0, x1, y1)` of coordinates or `None`." +msgstr "" + +#: ../../page.rst:500 9583a87c04ff4e42be01211503a625ff +msgid "" +"`tables`: a list of `Table` objects. This is `[]` if the page has no " +"tables. Single tables can be found as items of this list. But the " +"`TableFinder` object itself is also a sequence of its tables. This means " +"that if `tabs` is a `TableFinder` object, then table \"n\" is delivered " +"by `tabs.tables[n]` as well as by the shorter `tabs[n]`." +msgstr "" + +#: ../../page.rst:503 2b85b5bbae0b4d1d9f39db8007aca40e +msgid "The `Table` object has the following attributes:" +msgstr "" + +#: ../../page.rst:505 c012c8a43f22438dabb93e5220436935 +msgid "``bbox``: the bounding box of the table as a tuple `(x0, y0, x1, y1)`." +msgstr "" + +#: ../../page.rst:506 698bd70ef8b34723b3be7258f9e41a9b +msgid "" +"``cells``: bounding boxes of the table's cells (list of tuples). A cell " +"may also be `None`." +msgstr "" + +#: ../../page.rst:507 5df00852328d4938af7a291d32ff1081 +msgid "" +"``extract()``: this method returns the text content of each table cell as" +" a list of list of strings." +msgstr "" + +#: ../../page.rst:508 4a75e91b2fa2471d8011d96b0fe413ef +msgid "" +"``to_markdown()``: this method returns the table as a **string in " +"markdown format** (compatible to Github). Markdown viewers can render the" +" string as a table. This output is optimized for **small token** sizes, " +"which is especially beneficial for LLM/RAG feeds. Pandas DataFrames (see " +"method `to_pandas()` below) offer an equivalent markdown table output " +"which however is better readable for the human eye. Any line breaks " +"(``\\n``) in cells are replaced by HTML line breaks tags `
`." +msgstr "" + +#: ../../page.rst:509 e617dce6f36248939178f71102d4b3ad +msgid "" +"`to_pandas()`: this method returns the table as a `pandas " +"`_ `DataFrame " +"`_. DataFrames are " +"very versatile objects allowing a plethora of table manipulation methods " +"and outputs to almost 20 well-known formats, among them Excel files, CSV," +" JSON, markdown-formatted tables and more. `DataFrame.to_markdown()` " +"generates a Github-compatible markdown format optimized for human " +"readability. This method however requires the package `tabulate " +"`_ to be installed in addition to " +"pandas itself." +msgstr "" + +#: ../../page.rst:510 5f646932780e47628df37150eba6cb11 +msgid "" +"``header``: a `TableHeader` object containing header information of the " +"table." +msgstr "" + +#: ../../page.rst:511 2d6afff58bdd4b22982426aeaf93f0eb +msgid "``col_count``: an integer containing the number of table columns." +msgstr "" + +#: ../../page.rst:512 a011c98d056a4ab99078f551a9c555a7 +msgid "``row_count``: an integer containing the number of table rows." +msgstr "" + +#: ../../page.rst:513 ea78abc0fa2b48fc82e3b1818b26a2b9 +msgid "" +"``rows``: a list of `TableRow` objects containing two attributes, " +"``bbox`` is the boundary box of the row, and `cells` is a list of table " +"cells contained in this row." +msgstr "" + +#: ../../page.rst:515 9195a39415c24bd5b313c7328c2cb59f +msgid "The `TableHeader` object has the following attributes:" +msgstr "" + +#: ../../page.rst:517 4f75c5d8372b41b596f2132f8f9cb869 +msgid "``bbox``: the bounding box of the header." +msgstr "" + +#: ../../page.rst:518 573cb43edf9046a5b0564d46d89d463c +msgid "" +"`cells`: a list of bounding boxes containing the name of the respective " +"column." +msgstr "" + +#: ../../page.rst:519 9a2e52a4c74c49148081c9d490cbb1b1 +msgid "" +"`names`: a list of strings containing the text of each of the cell " +"bboxes. They represent the column names -- which are used when exporting " +"the table to pandas DataFrames, markdown, etc." +msgstr "" + +#: ../../page.rst:520 f6724988042c4b698633b4cf7e752649 +msgid "" +"`external`: a bool indicating whether the header bbox is outside the " +"table body (`True`) or not. Table headers are never identified by the " +"`TableFinder` logic. Therefore, if `external` is true, then the header " +"cells are not part of any cell identified by `TableFinder`. If `external " +"== False`, then the first table row is the header." +msgstr "" + +#: ../../page.rst:522 75e1dfe474ed4ac0a22da38addfd7eb7 +msgid "" +"Please have a look at these `Jupyter notebooks " +"`_, which cover standard situations like multiple tables on one " +"page or joining table fragments across multiple pages." +msgstr "" + +#: ../../page.rst:524 5542b53a24dd430ab806eafb4021ebb6 +msgid "" +"The lifetime of the `TableFinder` object, as well as that of all its " +"tables **equals the lifetime of the page**. If the page object is deleted" +" or reassigned, all tables are no longer valid." +msgstr "" + +#: ../../page.rst:526 75ed5e4bc66d4338bc281838569cf1ed +msgid "" +"The only way to keep table content beyond the page's availability is to " +"**extract it** via methods `Table.to_markdown()`, `Table.to_pandas()` or " +"a copy of `Table.extract()` (e.g. `Table.extract()[:]`)." +msgstr "" + +#: ../../page.rst:530 020511fcaf024437a95dea516e1c4075 +msgid "" +"Once a table has been extracted to a **Pandas DataFrame** with " +"`to_pandas()` it is easy to convert to other file types with the **Pandas" +" API**:" +msgstr "" + +#: ../../page.rst:532 1802aeb23deb4170b11761cf16a41608 +msgid "" +"table to Markdown, use `to_markdown " +"`_" +msgstr "" + +#: ../../page.rst:533 05c0dff89ae44350a0f8cb185d9ca6c6 +msgid "" +"table to JSON, use: `to_json " +"`_" +msgstr "" + +#: ../../page.rst:534 b9be51cdd74544d7a7b240e4943d42e4 +msgid "" +"table to Excel, use: `to_excel " +"`_" +msgstr "" + +#: ../../page.rst:535 0b4b368f030c4f65bae428c76e61dd78 +msgid "" +"table to CSV, use: `to_csv " +"`_" +msgstr "" + +#: ../../page.rst:536 c952cf87a79642ff9849bb5c2e32e39b +msgid "" +"table to HTML, use: `to_html " +"`_" +msgstr "" + +#: ../../page.rst:537 307428a286cf4f15a96b17d0e3720f43 +msgid "" +"table to SQL, use: `to_sql " +"`_" +msgstr "" + +#: ../../page.rst:542 b045da5db3aa4ea2af45fd37b2e43ad8 +msgid "New in version 1.23.0" +msgstr "" + +#: ../../page.rst:543 e2de54e7d89b48cf868f7e7b254d8f11 +msgid "Changed in version 1.23.19: new argument `add_lines`." +msgstr "" + +#: ../../page.rst:549 e7ba1b19c5964a6b875bacb0405e7b4a +msgid "" +"There is also the `pdf2docx extract tables method`_ which is capable of " +"table extraction if you prefer." +msgstr "" + +#: ../../page.rst:554 07554ca053404982b9be25b02745810b +msgid "" +"PDF only: Add a \"rubber stamp\" annotation to e.g. indicate the " +"document's intended use (\"DRAFT\", \"CONFIDENTIAL\", etc.). The " +"parameter may be either an integer to select text from a predefined array" +" of standard texts or an image." +msgstr "" + +#: ../../page.rst:556 0e380a591d864ca49e58155f8217e31a +msgid "rectangle where to place the annotation." +msgstr "" + +#: ../../page.rst:557 c7d3ea80fdb64fc9b0957574df07aadd +msgid "" +"The following options are available: * The id number (int) of the stamp " +"text. For available stamps see :ref:`StampIcons`. * A string specifying " +"an image file path. * A ``bytes``, ``bytearray`` or ``io.BytesIO`` " +"object for an image in memory. * A :ref:`Pixmap`." +msgstr "" + +#: ../../page.rst:557 74442f94aab649a8ba4710d8284a0e27 +msgid "The following options are available:" +msgstr "" + +#: ../../page.rst:559 140cb281aae84a22b89e70c6729c9ae6 +msgid "" +"The id number (int) of the stamp text. For available stamps see " +":ref:`StampIcons`." +msgstr "" + +#: ../../page.rst:561 a86218a2b5ca41798ea2e87e076fede6 +msgid "A string specifying an image file path." +msgstr "" + +#: ../../page.rst:563 2ab257ca8fa64d76a9a88d8c0cb8fdbf +msgid "" +"A ``bytes``, ``bytearray`` or ``io.BytesIO`` object for an image in " +"memory." +msgstr "" + +#: ../../page.rst:565 6470d3eee4704e8aa7445e56cc77a9aa +msgid "A :ref:`Pixmap`." +msgstr "" + +#: ../../page.rst:567 122c6baf020a4bac971ac2367b0cf3df +msgid "**Text-based stamps**" +msgstr "" + +#: ../../page.rst:569 ee84cbb991794dbc8418e486393dc58b +msgid "" +":attr:`Annot.rect` is automatically calculated as the largest rectangle " +"with an aspect ratio of ``width:height = 3.8`` that fits in the provided " +"``rect``. Its position is vertically and horizontally centered." +msgstr "" + +#: ../../page.rst:570 c58ca83a6d0d476c87477063c93639f0 +msgid "The font chosen is \"Times Bold\" and the text will be upper case." +msgstr "" + +#: ../../page.rst:571 4bb912d4e39343ceb25f2cc8f03fde19 +msgid "" +"The appearance can be modified using :meth:`Annot.set_opacity` and by " +"setting the \"stroke\" color. By PDF specification, stamp annotations " +"have no \"fill\" color." +msgstr "" + +#: ../../page.rst:575 064624bb57674dd49f4b0f0ab02bce4d +msgid "**Image-based stamps**" +msgstr "" + +#: ../../page.rst:577 e17409d3940644e6b56475fa8581c0a2 +msgid "" +"The image is scaled to fit into the rectangle `rect` such that the " +"image's center and the center of `rect` coincide. The aspect ratio of the" +" image is preserved, so the image may not fill the entire rectangle. " +"However, at least one of the given rectangle's width or height are fully " +"covered." +msgstr "" + +#: ../../page.rst:578 ec8dc9929ec44befb62f520a5bdce9b6 +msgid "" +"The annotation can be modified via :meth:`Annot.set_opacity`. This method" +" therefore is a way to display images transparently even if no alpha " +"channel is present." +msgstr "" + +#: ../../page.rst:579 5ad9fae89ca94e40910abdcf5da94353 +msgid "Setting colors has no effect on image stamps." +msgstr "" + +#: ../../page.rst:580 6e2bc4decc3d49899690b03ac8cc7481 +msgid "" +"Rotating image-based stamps **is not supported**. Setting the rotation " +"may lead to unexpected results." +msgstr "" + +#: ../../page.rst:584 a28852a4a1d94c6f9180b933ec9dcd50 +msgid "" +"PDF only: Add a PDF Form field (\"widget\") to a page. This also **turns " +"the PDF into a Form PDF**. Because of the large amount of different " +"options available for widgets, we have developed a new class " +":ref:`Widget`, which contains the possible PDF field attributes. It must " +"be used for both, form field creation and updates." +msgstr "" + +#: ../../page.rst:586 5b4e58c5d61a4b0a86c9ac4f611770a7 +msgid "a :ref:`Widget` object which must have been created upfront." +msgstr "" + +#: ../../page.rst:589 bcc225bd9cfb49cea096e52ab83f35d7 +msgid "a widget annotation." +msgstr "" + +#: ../../page.rst:593 d639ef397d36485e8aa8bb26d31c0378 +msgid "" +"The removal will now include any bound 'Popup' or response annotations " +"and related objects (changed in v1.16.6)." +msgstr "" + +#: ../../page.rst:595 8a00f469b1414059b4c586637e921948 +msgid "PDF only: Delete annotation from the page and return the next one." +msgstr "" + +#: ../../page.rst:597 0482b1a51d404765adec9f2a73d29869 +msgid "the annotation to be deleted." +msgstr "" + +#: ../../page.rst:601 8d0565728a8f4e40bbedbf26823b785b +msgid "" +"the annotation following the deleted one. Please remember that physical " +"removal requires saving to a new file with garbage > 0." +msgstr "" + +#: ../../page.rst:605 701b3fe6c5c04d919d89284c697a8e04 +msgid "PDF only: Delete field from the page and return the next one." +msgstr "" + +#: ../../page.rst:607 1f8e2118ea0f45548c869b582e9da683 +msgid "the widget to be deleted." +msgstr "" + +#: ../../page.rst:610 ../../page.rst:1940 ../../page.rst:2264 +#: 79632ab9e049470dbe64dda2553e676e 81cdfe378ae74469b530973f279448bc +#: 860a45b3a45b411da64f22bbf25a1576 +msgid ":ref:`Widget`" +msgstr "" + +#: ../../page.rst:611 0b787a1fc4ec42bda0b70222cd36d91c +msgid "" +"the widget following the deleted one. Please remember that physical " +"removal requires saving to a new file with garbage > 0." +msgstr "" + +#: ../../page.rst:615 1b3c837eecb949b0bc0edd8df4124f3c +msgid "(New in v1.18.4)" +msgstr "" + +#: ../../page.rst:622 c49122e36228451b838d9f1aa5efebc9 +msgid "" +"PDF only: Delete the specified link from the page. The parameter must be " +"an **original item** of :meth:`get_links()`, see " +":ref:`link_dict_description`. The reason for this is the dictionary's " +"*\"xref\"* key, which identifies the PDF object to be deleted." +msgstr "" + +#: ../../page.rst:624 922f58de7690440b8f4d3afd8f153fd3 +msgid "the link to be deleted." +msgstr "" + +#: ../../page.rst:628 50ac389b0cfe45568e5b6a1734037114 +msgid "" +"PDF only: Insert a new link on this page. The parameter must be a " +"dictionary of format as provided by :meth:`get_links()`, see " +":ref:`link_dict_description`." +msgstr "" + +#: ../../page.rst:630 e2e38196067748a485135b6e842933e0 +msgid "the link to be inserted." +msgstr "" + +#: ../../page.rst:634 d59a62d84a804721930f49e18365d762 +msgid "" +"PDF only: Modify the specified link. The parameter must be a (modified) " +"**original item** of :meth:`get_links()`, see " +":ref:`link_dict_description`. The reason for this is the dictionary's " +"*\"xref\"* key, which identifies the PDF object to be changed." +msgstr "" + +#: ../../page.rst:636 07822e8f830441a381c271aa8a1209a1 +msgid "the link to be modified." +msgstr "" + +#: ../../page.rst:638 0de77211c8ab4e39bc3a706653fbbe95 +msgid "" +"If updating / inserting a URI link (`\"kind\": LINK_URI`), please make " +"sure to start the value for the `\"uri\"` key with a disambiguating " +"string like `\"http://\"`, `\"https://\"`, `\"file://\"`, `\"ftp://\"`, " +"`\"mailto:\"`, etc. Otherwise -- depending on your browser or other " +"\"consumer\" software -- unexpected default assumptions may lead to " +"unwanted behaviours." +msgstr "" + +#: ../../page.rst:643 69289bebf6b44c29b0292e6d9c0985ed +msgid "PDF only: Return the label for the page." +msgstr "" + +#: ../../page.rst:647 3eb1a4da448a4ad1aef74e4f8337c3d5 +msgid "the label string like \"vii\" for Roman numbering or \"\" if not defined." +msgstr "" + +#: ../../page.rst:651 ad9f6c2321eb41708816ca80d962a3da +msgid "New in v1.18.6" +msgstr "" + +#: ../../page.rst:657 e2f26ba92210426f9f0957a589aa226e +msgid "Retrieves **all** links of a page." +msgstr "" + +#: ../../page.rst:660 dbe8d31972064e49852b68e14f0e731d +msgid "" +"A list of dictionaries. For a description of the dictionary entries, see " +":ref:`link_dict_description`. Always use this or the :meth:`Page.links` " +"method if you intend to make changes to the links of a page." +msgstr "" + +#: ../../page.rst:664 982dbd008c68482ab6a205bec8a0536d +msgid "" +"Return a generator over the page's links. The results equal the entries " +"of :meth:`Page.get_links`." +msgstr "" + +#: ../../page.rst:666 c23f5985f84f45ce96f719ffbfc1180b +msgid "" +"a sequence of integers to down-select to one or more link kinds. Default " +"is all links. Example: *kinds=(pymupdf.LINK_GOTO,)* will only return " +"internal links." +msgstr "" + +#: ../../page.rst:669 933e377cd2a647b394396f8c8c657dc3 +msgid "an entry of :meth:`Page.get_links()` for each iteration." +msgstr "" + +#: ../../page.rst:673 ../../page.rst:698 ../../page.rst:713 +#: 2bcfe2f227934e13883dccdfd49bf552 522c66b3f0834a05b0d694a35a3d60c7 +#: 58c5a6638d064f8f9c81265ab468b76e +msgid "New in v1.16.4" +msgstr "" + +#: ../../page.rst:679 9895c4a674ad4ee9bd390eb10d90b9f3 +msgid "Return a generator over the page's annotations." +msgstr "" + +#: ../../page.rst:681 b187bf843be8421f8dddb40d6f9e9bc1 +msgid "" +"a sequence of integers to down-select to one or more annotation types. " +"Default is all annotations. Example: `types=(pymupdf.PDF_ANNOT_FREETEXT, " +"pymupdf.PDF_ANNOT_TEXT)` will only return 'FreeText' and 'Text' " +"annotations." +msgstr "" + +#: ../../page.rst:684 af312b81213748debdaed085f717b02e +msgid "" +"an :ref:`Annot` for each iteration. .. caution:: You **cannot " +"safely update annotations** from within this generator. This is because " +"most annotation updates require reloading the page via `page = " +"doc.reload_page(page)`. To circumvent this restriction, make a list of " +"annotations xref numbers first and then iterate over these numbers::" +" In [4]: xrefs = [annot.xref for annot in " +"page.annots(types=[...])] In [5]: for xref in xrefs: ...:" +" annot = page.load_annot(xref) ...: annot.update()" +" ...: page = doc.reload_page(page) In [6]:" +msgstr "" + +#: ../../page.rst:684 cbc5b2fa7395471cbd33de5cfadaf49a +msgid "an :ref:`Annot` for each iteration." +msgstr "" + +#: ../../page.rst:687 c2f668696d264c1b82fa9512ec3d67fe +msgid "" +"You **cannot safely update annotations** from within this generator. This" +" is because most annotation updates require reloading the page via `page " +"= doc.reload_page(page)`. To circumvent this restriction, make a list of " +"annotations xref numbers first and then iterate over these numbers::" +msgstr "" + +#: ../../page.rst:704 cf4dc50262134d9b8991d68d2387fda1 +msgid "Return a generator over the page's form fields." +msgstr "" + +#: ../../page.rst:706 09b37fc07a8b4617ba3ab3e1ed7e81ee +msgid "" +"a sequence of integers to down-select to one or more widget types. " +"Default is all form fields. Example: " +"`types=(pymupdf.PDF_WIDGET_TYPE_TEXT,)` will only return 'Text' fields." +msgstr "" + +#: ../../page.rst:709 b4a6fd5ab9f74f1aa81ff011fd4473d4 +msgid "a :ref:`Widget` for each iteration." +msgstr "" + +#: ../../page.rst:720 91c0b9169e9b478ab89cee70033f2b07 +msgid "" +"PDF only: Write the text of one or more :ref:`Textwriter` objects to the " +"page." +msgstr "" + +#: ../../page.rst:722 a55443e916e2419994c89d95d80a0911 +msgid "" +"where to place the text. If omitted, the rectangle union of the text " +"writers is used." +msgstr "" + +#: ../../page.rst:723 cce444b656e64b60a81ce94494e38f3d +msgid "" +"a non-empty tuple / list of :ref:`TextWriter` objects or a single " +":ref:`TextWriter`." +msgstr "" + +#: ../../page.rst:724 d271cb55070d4f5487e21e1eacd3c751 +msgid "set transparency, overwrites resp. value in the text writers." +msgstr "" + +#: ../../page.rst:725 3c29e8bef62342fea254c2dc367dd6c5 +msgid "set the text color, overwrites resp. value in the text writers." +msgstr "" + +#: ../../page.rst:726 c86c42e9bcd24d43869350b460d4d700 +msgid "put the text in foreground or background." +msgstr "" + +#: ../../page.rst:727 63b9bb95ed42482580a37bf19dbe45a5 +msgid "maintain the aspect ratio." +msgstr "" + +#: ../../page.rst:728 9e0772c8aa0c408d881ef210c734cb28 +msgid "rotate the text by an arbitrary angle." +msgstr "" + +#: ../../page.rst:729 16cea029005545c49f87400b6e929e58 +msgid "the :data:`xref` of an :data:`OCG` or :data:`OCMD`. (New in v1.18.4)" +msgstr "" + +#: ../../page.rst:731 674aebc5fc8e4803bf557ef50bf29172 +msgid "" +"Parameters *overlay, keep_proportion, rotate* and *oc* have the same " +"meaning as in :meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../page.rst:735 efb00b02fde547eeb0b25bf6f23dcc15 +msgid "New in v1.16.18" +msgstr "" + +#: ../../page.rst:759 ac14c88754ee44f99b0bec586cb0acda +msgid "" +"PDF only: Insert text lines starting at :data:`point_like` ``point``. See" +" :meth:`Shape.insert_text`." +msgstr "" + +#: ../../page.rst:763 ../../page.rst:792 ../../page.rst:896 ../../page.rst:921 +#: ../../page.rst:946 ../../page.rst:970 ../../page.rst:994 ../../page.rst:1019 +#: ../../page.rst:1043 ../../page.rst:1068 ../../page.rst:1092 +#: ../../page.rst:1117 ../../page.rst:1142 16f565fc3199438e95a9f991424f44b4 +#: 3eec8de7562c4ff5807b32eaada58d2d 3fc49e0d00de4149a91ed98db7b39d82 +#: 6885c68bc46a4bf5803fc9bb9d518db9 6edade0a885e4aa990ece4507b2ad4c0 +#: 919db5753717454db1b1e8ba55000ca4 935d13e1eb4f47bdbbf0d3b48d3afe77 +#: 981866858e6e4f62a147faf42cd4c8c5 a36b2ebbf9244ee0ac2a4140992d02c7 +#: e01505a51cf44ee98a13168527fcf25f f124938d669846f7b838a60573194e18 +#: f2425ff3386d4be590ef1711bc0182f5 f64299f68d4c4b01b12b2e5bccb7fb45 +msgid "Changed in v1.18.4" +msgstr "" + +#: ../../page.rst:788 847e042eb216477ca6976051a061f859 +msgid "" +"PDF only: Insert text into the specified :data:`rect_like` *rect*. See " +":meth:`Shape.insert_textbox`." +msgstr "" + +#: ../../page.rst:810 6aba6ac9699e4252b53eb6f4ae4a7dcd +msgid "" +"**PDF only:** Insert text into the specified rectangle. The method has " +"similarities with methods :meth:`Page.insert_textbox` and " +":meth:`TextWriter.fill_textbox`, but is **much more powerful**. This is " +"achieved by letting a :ref:`Story` object do all the required processing." +msgstr "" + +#: ../../page.rst:812 ee10551fb26a4ec0b9db75ebbb21cf0b +msgid "" +"Parameter ``text`` may be a string as in the other methods. But it will " +"be **interpreted as HTML source** and may therefore also contain HTML " +"language elements -- including styling. The `css` parameter may be used " +"to pass in additional styling instructions." +msgstr "" + +#: ../../page.rst:814 e3b6f6aa9ef74189af88441862202e6b +msgid "" +"Automatic line breaks are generated at word boundaries. The \"soft " +"hyphen\" character `\"­\"` (or `­`) can be used to cause " +"hyphenation and thus may also cause line breaks. **Forced** line breaks " +"however are only achievable via the HTML tag ``
`` - ``\\n`` is " +"ignored and will be treated like a space." +msgstr "" + +#: ../../page.rst:816 7db693f5847b4c808cdcf8245af57aac +msgid "With this method the following can be achieved:" +msgstr "" + +#: ../../page.rst:818 f3aed1a429bc4b0a87d9d8be413d7ec4 +msgid "" +"Styling effects like bold, italic, text color, text alignment, font size " +"or font switching." +msgstr "" + +#: ../../page.rst:819 e0b541df39074db0a80a56cd57984e79 +msgid "" +"The text may include arbitrary languages -- **including right-to-left** " +"languages." +msgstr "" + +#: ../../page.rst:820 d9d140639c804339ba9b3ea6f5fbc848 +msgid "" +"Scripts like `Devanagari `_ and" +" several others in Asia have a highly complex system of ligatures, where " +"two or more unicodes together yield one glyph. The Story uses the " +"software package `HarfBuzz `_ , to deal with" +" these things and produce correct output." +msgstr "" + +#: ../../page.rst:821 09c3f85d8cfa4925a966b311e81d4be2 +msgid "" +"One can also **include images** via HTML tag `` -- the Story will " +"take care of the appropriate layout. This is an alternative option to " +"insert images, compared to :meth:`Page.insert_image`." +msgstr "" + +#: ../../page.rst:822 15709477c471444fb826b7246bc9303b +msgid "" +"HTML tables (tag ``) may be included in the text and will be " +"handled appropriately." +msgstr "" + +#: ../../page.rst:823 498e6ef15995416fb84b1883d5d92638 +msgid "Links are automatically generated when present." +msgstr "" + +#: ../../page.rst:825 897b9824e00144589853950e0fc085d7 +msgid "If content does not fit in the rectangle, the developer has two choices:" +msgstr "" + +#: ../../page.rst:827 a9594e868a9140d48ee407ab97e2458e +msgid "" +"**either** only be informed about this (and accept a no-op, just like " +"with the other textbox insertion methods)," +msgstr "" + +#: ../../page.rst:828 c80278844b0f4a10aa7d6f6c3f44d861 +msgid "**or** (`scale_low=0` - the default) scale down the content until it fits." +msgstr "" + +#: ../../page.rst:830 9ae3b284474e4a8fa2f79faa63d3257f +msgid "rectangle on page to receive the text." +msgstr "" + +#: ../../page.rst:831 2a0f0754bb6546f6a30c1c29ce8432c5 +msgid "" +"the text to be written. Can contain a mixture of plain text and HTML tags" +" with styling instructions. Alternatively, a :ref:`Story` object may be " +"specified (in which case the internal Story generation step will be " +"omitted). A Story must have been generated with all required styling and " +"Archive information." +msgstr "" + +#: ../../page.rst:832 14181b61a0884be297ef3685294cdda4 +msgid "" +"optional string containing additional CSS instructions. This parameter is" +" ignored if ``text`` is a Story." +msgstr "" + +#: ../../page.rst:833 324740ae7018450e95548a711684a3c1 +msgid "" +"if necessary, scale down the content until it fits in the target " +"rectangle. This sets the down scaling limit. Default is 0, no limit. A " +"value of 1 means no down-scaling permitted. A value of e.g. 0.2 means " +"maximum down-scaling by 80%." +msgstr "" + +#: ../../page.rst:834 c292373f60e74b0a9e7acb742bfd00f9 +msgid "" +"an Archive object that points to locations where to find images or non-" +"standard fonts. If ``text`` refers to images or non-standard fonts, this " +"parameter is required. This parameter is ignored if ``text`` is a Story." +msgstr "" + +#: ../../page.rst:835 e06bdf8120344edea5c871c8b734bed9 +msgid "" +"one of the values 0, 90, 180, 270. Depending on this, text will be " +"filled: - 0: top-left to bottom-right. - 90: bottom-left to top-right. -" +" 180: bottom-right to top-left. - 270: top-right to bottom-left. .. " +"image:: images/img-rotate.*" +msgstr "" + +#: ../../page.rst:835 5d44f86e3d34408fae9c505f2eb51a22 +msgid "one of the values 0, 90, 180, 270. Depending on this, text will be filled:" +msgstr "" + +#: ../../page.rst:837 9fd548225f8245c1bdd20ddef928329d +msgid "0: top-left to bottom-right." +msgstr "" + +#: ../../page.rst:838 793a65bf3a3545e49a9ab0e68d7e1080 +msgid "90: bottom-left to top-right." +msgstr "" + +#: ../../page.rst:839 c66768a9d53b4dd28889d3dc2e47fb81 +msgid "180: bottom-right to top-left." +msgstr "" + +#: ../../page.rst:840 0e3ecfcbddc244d3a80913c9e9cf9524 +msgid "270: top-right to bottom-left." +msgstr "" + +#: ../../page.rst:844 2aaaebae93dd4932a8c2460350eb2887 +msgid "" +"the xref of an :data:`OCG` / :data:`OCMD` or 0. Please refer to " +":meth:`Page.show_pdf_page` for details." +msgstr "" + +#: ../../page.rst:845 b604f2246e724e6b881b6c6f67f39527 +msgid "" +"set the fill and stroke opacity of the content. Only values `0 <= opacity" +" < 1` are considered." +msgstr "" + +#: ../../page.rst:846 219fcacb5f0346e0a24bdff2f9da09df +msgid "" +"put the text in front of other content. Please refer to " +":meth:`Page.show_pdf_page` for details." +msgstr "" + +#: ../../page.rst:848 2d7a34e664184e029228581824d74532 +msgid "" +"A tuple of floats `(spare_height, scale)`. - spare_height: The " +"(positive) height of the remaining space in `rect` below the text, or " +"-1 if we failed to fit. - scale: The scaling required; `0 < scale <= 1`. " +"Will be `scale_low` if we failed to fit." +msgstr "" + +#: ../../page.rst:848 59f16a716d924e38b4bce004bff088e0 +msgid "A tuple of floats `(spare_height, scale)`." +msgstr "" + +#: ../../page.rst:850 9a5db1bacf1b48f4b4b2f4d206231059 +msgid "" +"spare_height: The (positive) height of the remaining space in `rect` " +"below the text, or -1 if we failed to fit." +msgstr "" + +#: ../../page.rst:852 a9b179217d2846d9a9518f6eac262918 +msgid "" +"scale: The scaling required; `0 < scale <= 1`. Will be `scale_low` if we " +"failed to fit." +msgstr "" + +#: ../../page.rst:855 65774661f353460199b1f64e1215ae23 +msgid "" +"Please refer to examples in this section of the recipes: " +":ref:`RecipesText_I_c`." +msgstr "" + +#: ../../page.rst:859 a5843434b81d490487977efeb5d8cb77 +msgid "New in v1.26.5:" +msgstr "" + +#: ../../page.rst:861 9207751e2f024fa8a44590fb3b9ebe6d +msgid "do additional scaling to fit long words." +msgstr "" + +#: ../../page.rst:863 c4c760f58b134e3fbdab0bbb8f2a7379 +msgid "" +"If we succeeded and scaled down, the returned `spare_height` is now " +"generally positive instead of being fixed to zero, because the final " +"rect's height is usually not an exact multiple of the font line height." +msgstr "" + +#: ../../page.rst:867 ad918ee3f341411ba0aa7c506a1f02ea +msgid "New in v1.23.8: rebased-only." +msgstr "" + +#: ../../page.rst:868 8a3a7377bf1a457fbf81074b185a2c90 +msgid "New in v1.23.9: `opacity` parameter." +msgstr "" + +#: ../../page.rst:873 af588c948d8f4d3f83c4677718197726 +msgid "**Drawing Methods**" +msgstr "" + +#: ../../page.rst:892 49a6624229f44fe6ba71c7e9ca8d75ef +msgid "" +"PDF only: Draw a line from *p1* to *p2* (:data:`point_like` \\s). See " +":meth:`Shape.draw_line`." +msgstr "" + +#: ../../page.rst:917 9b38905ad1dd4d0ead359e61852a1b54 +msgid "" +"PDF only: Draw a zigzag line from *p1* to *p2* (:data:`point_like` \\s). " +"See :meth:`Shape.draw_zigzag`." +msgstr "" + +#: ../../page.rst:942 9c336220359d487c96ab2495463d04bf +msgid "" +"PDF only: Draw a squiggly (wavy, undulated) line from *p1* to *p2* " +"(:data:`point_like` \\s). See :meth:`Shape.draw_squiggle`." +msgstr "" + +#: ../../page.rst:966 dda4c1acb3be44ea84511701f5e0e066 +msgid "" +"PDF only: Draw a circle around *center* (:data:`point_like`) with a " +"radius of *radius*. See :meth:`Shape.draw_circle`." +msgstr "" + +#: ../../page.rst:990 2e0189701fa74750b9dacd5303fc0bd4 +msgid "" +"PDF only: Draw an oval (ellipse) within the given :data:`rect_like` or " +":data:`quad_like`. See :meth:`Shape.draw_oval`." +msgstr "" + +#: ../../page.rst:1015 5099c99eeaa644dbb974a50f3152aa30 +msgid "" +"PDF only: Draw a circular sector, optionally connecting the arc to the " +"circle's center (like a piece of pie). See :meth:`Shape.draw_sector`." +msgstr "" + +#: ../../page.rst:1039 f3dd8d945074407c8054e936336973f1 +msgid "" +"PDF only: Draw several connected lines defined by a sequence of " +":data:`point_like` \\s. See :meth:`Shape.draw_polyline`." +msgstr "" + +#: ../../page.rst:1064 28ea8c05024f440bb036391514064d3d +msgid "" +"PDF only: Draw a cubic Bézier curve from *p1* to *p4* with the control " +"points *p2* and *p3* (all are :data:`point_like` \\s). See " +":meth:`Shape.draw_bezier`." +msgstr "" + +#: ../../page.rst:1088 157ccab0cc4d491a8bb08c506c20ee93 +msgid "" +"PDF only: This is a special case of *draw_bezier()*. See " +":meth:`Shape.draw_curve`." +msgstr "" + +#: ../../page.rst:1113 b8490d3dba144147892f25e4d622068e +msgid "PDF only: Draw a rectangle. See :meth:`Shape.draw_rect`." +msgstr "" + +#: ../../page.rst:1118 a272604a8c1f470c9a130f447d1fdb3f +msgid "Changed in v1.22.0: Added parameter *radius*." +msgstr "" + +#: ../../page.rst:1138 73015a6ba1b54fef8169908a7281e136 +msgid "PDF only: Draw a quadrilateral. See :meth:`Shape.draw_quad`." +msgstr "" + +#: ../../page.rst:1156 09dfe16658184db3a8101d292d524018 +msgid "" +"PDF only: Add a new font to be used by text output methods and return its" +" :data:`xref`. If not already present in the file, the font definition " +"will be added. Supported are the built-in :data:`Base14_Fonts` and the " +"CJK fonts via **\"reserved\"** fontnames. Fonts can also be provided as a" +" file path or a memory area containing the image of a font file." +msgstr "" + +#: ../../page.rst:1158 2a54c648d14d47758ff2034915e314ce +msgid "" +"The name by which this font shall be referenced when outputting text on " +"this page. In general, you have a \"free\" choice here (but consult the " +":ref:`AdobeManual`, page 16, section 7.3.5 for a formal description of " +"building legal PDF names). However, if it matches one of the " +":data:`Base14_Fonts` or one of the CJK fonts, *fontfile* and *fontbuffer*" +" **are ignored**. In other words, you cannot insert a font via " +"*fontfile* / *fontbuffer* and also give it a reserved *fontname*. .. " +"note:: A reserved fontname can be specified in any mixture of upper or " +"lower case and still match the right built-in font definition: fontnames " +"\"helv\", \"Helv\", \"HELV\", \"Helvetica\", etc. all lead to the same " +"font definition \"Helvetica\". But from a :ref:`Page` perspective, these " +"are **different references**. You can exploit this fact when using " +"different *encoding* variants (Latin, Greek, Cyrillic) of the same font " +"on a page." +msgstr "" + +#: ../../page.rst:1158 f1417bd8c11d42f18da9e7cc192a9b54 +msgid "" +"The name by which this font shall be referenced when outputting text on " +"this page. In general, you have a \"free\" choice here (but consult the " +":ref:`AdobeManual`, page 16, section 7.3.5 for a formal description of " +"building legal PDF names). However, if it matches one of the " +":data:`Base14_Fonts` or one of the CJK fonts, *fontfile* and *fontbuffer*" +" **are ignored**." +msgstr "" + +#: ../../page.rst:1160 b07885c01b7c4d2f98af200a61b2239f +msgid "" +"In other words, you cannot insert a font via *fontfile* / *fontbuffer* " +"and also give it a reserved *fontname*." +msgstr "" + +#: ../../page.rst:1162 6e3e5a1b1302490bbebb40eb041aa480 +msgid "" +"A reserved fontname can be specified in any mixture of upper or lower " +"case and still match the right built-in font definition: fontnames " +"\"helv\", \"Helv\", \"HELV\", \"Helvetica\", etc. all lead to the same " +"font definition \"Helvetica\". But from a :ref:`Page` perspective, these " +"are **different references**. You can exploit this fact when using " +"different *encoding* variants (Latin, Greek, Cyrillic) of the same font " +"on a page." +msgstr "" + +#: ../../page.rst:1164 b329abbc6b5940dba48a2d1be997d3bd +msgid "" +"a path to a font file. If used, *fontname* must be **different from all " +"reserved names**." +msgstr "" + +#: ../../page.rst:1166 298c716b43174038aeedbf20294a8600 +msgid "" +"the memory image of a font file. If used, *fontname* must be **different " +"from all reserved names**. This parameter would typically be used with " +":attr:`Font.buffer` for fonts supported / available via :ref:`Font`." +msgstr "" + +#: ../../page.rst:1168 39ebae8797b04f77959ffa0509ce652e +msgid "" +"applicable for *fontfile* / *fontbuffer* cases only: enforce treatment as" +" a \"simple\" font, i.e. one that only uses character codes up to 255." +msgstr "" + +#: ../../page.rst:1170 447d0c124033428aa957f8b973050309 +msgid "" +"applicable for the \"Helvetica\", \"Courier\" and \"Times\" sets of " +":data:`Base14_Fonts` only. Select one of the available encodings Latin " +"(0), Cyrillic (2) or Greek (1). Only use the default (0 = Latin) for " +"\"Symbol\" and \"ZapfDingBats\"." +msgstr "" + +#: ../../page.rst 55c9386c63724c5392c7040df4f8c387 +msgid "rytpe" +msgstr "" + +#: ../../page.rst:1172 ../../page.rst:2186 ../../page.rst:2270 +#: ../../page.rst:2440 ../../page.rst:2447 2c6cefa6a7064fe39392c90935ff2122 +#: 676e80ae36ef403cb3222e23c7e6840b 7a9f38940fcc4070a1e1cc06aa5851eb +#: 8c51842a55794d7cbd92e8622328da3d fe56946be4db4f028208db1bac0c8edd +msgid "int" +msgstr "" + +#: ../../page.rst:1173 1779ac4a712d4617bd783fabd20b84ee +msgid "the :data:`xref` of the installed font." +msgstr "" + +#: ../../page.rst:1175 f3eee244ef7e4992a7a6ffe42d5109ab +msgid "" +"Built-in fonts will not lead to the inclusion of a font file. So the " +"resulting PDF file will remain small. However, your PDF viewer software " +"is responsible for generating an appropriate appearance -- and there " +"**exist** differences on whether or how each one of them does this. This " +"is especially true for the CJK fonts. But also Symbol and ZapfDingbats " +"are incorrectly handled in some cases. Following are the **Font Names** " +"and their correspondingly installed **Base Font** names:" +msgstr "" + +#: ../../page.rst:1177 0cc0406f7e4a492daeb1c4db6e780bb9 +msgid "**Base-14 Fonts** [#f1]_" +msgstr "" + +#: ../../page.rst:1180 ../../page.rst:1201 4be11b26fad54b2bb9545b4f821120d8 +#: 5ba9280b3946433d8d5e7f1249a1c17a +msgid "**Font Name**" +msgstr "" + +#: ../../page.rst:1180 ../../page.rst:1201 eccfb3aa2983434c99d693447ff65632 +#: f469987f95914ac38d3567e772be2909 +msgid "**Installed Base Font**" +msgstr "" + +#: ../../page.rst:1180 ../../page.rst:1201 0637ce2b61f94d70bfa5fd14cc3eba4e +#: 779ba5a624ae4a31b519f88f420474a2 +msgid "**Comments**" +msgstr "" + +#: ../../page.rst:1182 1346d71024ce401593ebe1b1ef929f0b +msgid "helv" +msgstr "" + +#: ../../page.rst:1182 8472540636cb4b3e80d4a141f2dc9490 +msgid "Helvetica" +msgstr "" + +#: ../../page.rst:1182 ../../page.rst:1186 ../../page.rst:1190 +#: 15bcf8de9a4c4b42bd4547caeca437a2 26e37e84ddb44e20b9537973739375c3 +#: 5c44fa7e15ec4ab29fb285d84ed09b05 +msgid "normal" +msgstr "" + +#: ../../page.rst:1183 3fee6d1ad3694348bf8fcac4335b1b17 +msgid "heit" +msgstr "" + +#: ../../page.rst:1183 87fa2f15152d45758b2638a2c65b0b80 +msgid "Helvetica-Oblique" +msgstr "" + +#: ../../page.rst:1183 ../../page.rst:1187 ../../page.rst:1191 +#: 465a0dc7d5d8412d84bb0971fdc0b959 ab575e9dd96549db97f540585a2a1401 +#: d09fc6af893444f8ab7b7f844d73072b +msgid "italic" +msgstr "" + +#: ../../page.rst:1184 a90419279ba544bf97d046d85a18d8a6 +msgid "hebo" +msgstr "" + +#: ../../page.rst:1184 940f9d62685d47d79d73ba75f785b854 +msgid "Helvetica-Bold" +msgstr "" + +#: ../../page.rst:1184 ../../page.rst:1188 ../../page.rst:1192 +#: 04cf9160aab94c5ea9fe0faf40ad7adf 97e04d362f7242fd8c53039399b33811 +#: af07c4f6d96048b5a3bcb67c7533fee7 +msgid "bold" +msgstr "" + +#: ../../page.rst:1185 fde6ad4e4bcf48a7bd1e80b3871d9b92 +msgid "hebi" +msgstr "" + +#: ../../page.rst:1185 d81ace351e8e4bffab2c4c31676b09c7 +msgid "Helvetica-BoldOblique" +msgstr "" + +#: ../../page.rst:1185 ../../page.rst:1189 ../../page.rst:1193 +#: 5e8fbcd6618b45a0b30369755eb54917 85cf3978bda64f41904f681d9066700d +#: a49dcd7211ec4174a9e39f18f4f20287 +msgid "bold-italic" +msgstr "" + +#: ../../page.rst:1186 eecbf522339f408682429018eb42d819 +msgid "cour" +msgstr "" + +#: ../../page.rst:1186 1aabbf1917b940a884122759b6201772 +msgid "Courier" +msgstr "" + +#: ../../page.rst:1187 2914ccf1d5474fb4a4171cd1fb40d000 +msgid "coit" +msgstr "" + +#: ../../page.rst:1187 356dc6005a6f4ccb8872f1d0dc02b045 +msgid "Courier-Oblique" +msgstr "" + +#: ../../page.rst:1188 3146fa4f560442ab8fd3866e31f9f31d +msgid "cobo" +msgstr "" + +#: ../../page.rst:1188 b7317958a6a64ff7b299cfa08352c7e3 +msgid "Courier-Bold" +msgstr "" + +#: ../../page.rst:1189 6314e10383d44543a4e6f83d8dfd36f5 +msgid "cobi" +msgstr "" + +#: ../../page.rst:1189 edae3864abe74d9e9967f2f6616f58ac +msgid "Courier-BoldOblique" +msgstr "" + +#: ../../page.rst:1190 8e463570936f44cea10cef6f53bfd751 +msgid "tiro" +msgstr "" + +#: ../../page.rst:1190 174a7e61ef724680ae4975dda6e210db +msgid "Times-Roman" +msgstr "" + +#: ../../page.rst:1191 e10c734e894746798210ea22c0453c7f +msgid "tiit" +msgstr "" + +#: ../../page.rst:1191 181f9f5afcfe408e803a31614283f687 +msgid "Times-Italic" +msgstr "" + +#: ../../page.rst:1192 e7fd292fdf5f46839550048a54d145c0 +msgid "tibo" +msgstr "" + +#: ../../page.rst:1192 cff467ef11664e0786a2da8638aaf7e8 +msgid "Times-Bold" +msgstr "" + +#: ../../page.rst:1193 feb7d3b171814377804d10433dd16286 +msgid "tibi" +msgstr "" + +#: ../../page.rst:1193 88f60b707d244358b731b9cf46cdb6aa +msgid "Times-BoldItalic" +msgstr "" + +#: ../../page.rst:1194 c57996e01b024a07b7dcdd172113e66d +msgid "symb" +msgstr "" + +#: ../../page.rst:1194 4ae4d7c1cb9a4dd5943b5159d29bd4fa +msgid "Symbol" +msgstr "" + +#: ../../page.rst:1194 ../../page.rst:1195 82ed675d31704bb7915d0d6fa3d61608 +#: a2563ed5af004de389fd34f47716f55a +msgid "[#f3]_" +msgstr "" + +#: ../../page.rst:1195 699cea507d7a4aafaae0b57d2da6ff00 +msgid "zadb" +msgstr "" + +#: ../../page.rst:1195 c9971b33bd8f4ad1934c43cdca551699 +msgid "ZapfDingbats" +msgstr "" + +#: ../../page.rst:1198 ba64298625da4c61bff99a98efb06dda +msgid "**CJK Fonts** [#f2]_ (China, Japan, Korea)" +msgstr "" + +#: ../../page.rst:1203 f7a0ceef14004e83ae9d95c602fbdd52 +msgid "china-s" +msgstr "" + +#: ../../page.rst:1203 fcfbc81bc11d4acc8149da6092052844 +msgid "Heiti" +msgstr "" + +#: ../../page.rst:1203 1dd341e3f7214b41ab71ab4321f9eb68 +msgid "simplified Chinese" +msgstr "" + +#: ../../page.rst:1204 5dd5140d1ee74ac7b20d9f83860874d5 +msgid "china-ss" +msgstr "" + +#: ../../page.rst:1204 93712db63e114dd28efb908d8da11df5 +msgid "Song" +msgstr "" + +#: ../../page.rst:1204 bce8b6de318645aaa2cfe29f0acb8e8e +msgid "simplified Chinese (serif)" +msgstr "" + +#: ../../page.rst:1205 f0cbfe83750e4adbb3aa02a97efe7e9b +msgid "china-t" +msgstr "" + +#: ../../page.rst:1205 69f469612d1b4fbc9c41f2757d500ffd +msgid "Fangti" +msgstr "" + +#: ../../page.rst:1205 c14b5f7d14aa44cba182604bf144df6f +msgid "traditional Chinese" +msgstr "" + +#: ../../page.rst:1206 a11679c0768a4e98874b92f12f1d87eb +msgid "china-ts" +msgstr "" + +#: ../../page.rst:1206 5370162be60f43e98245542771de88a0 +msgid "Ming" +msgstr "" + +#: ../../page.rst:1206 2a928b4cc6df4bfb80208379140e769c +msgid "traditional Chinese (serif)" +msgstr "" + +#: ../../page.rst:1207 1b7f2377dd8f4f52b5ef57afe4eecde0 +msgid "japan" +msgstr "" + +#: ../../page.rst:1207 e34fddfb59a04f2a9b71c94d81918412 +msgid "Gothic" +msgstr "" + +#: ../../page.rst:1207 d5c5342d26fc4d6f96eb3997548c5851 +msgid "Japanese" +msgstr "" + +#: ../../page.rst:1208 12165a7df13e4b5ab6e43c7e32125931 +msgid "japan-s" +msgstr "" + +#: ../../page.rst:1208 0953d1d866774f409553c943377f12a3 +msgid "Mincho" +msgstr "" + +#: ../../page.rst:1208 9572a32bd5394a0fb22a993d3da56f12 +msgid "Japanese (serif)" +msgstr "" + +#: ../../page.rst:1209 b034ac397af24d97b54198b0dc1a0106 +msgid "korea" +msgstr "" + +#: ../../page.rst:1209 77d9bd94bd424297ae8d55caede11d7d +msgid "Dotum" +msgstr "" + +#: ../../page.rst:1209 137787a942204c3d92736320affcc205 +msgid "Korean" +msgstr "" + +#: ../../page.rst:1210 9a9d738dfda44b9aa58fb64b3124d6bc +msgid "korea-s" +msgstr "" + +#: ../../page.rst:1210 f4422a172efb456298f1cfe8feadd41f +msgid "Batang" +msgstr "" + +#: ../../page.rst:1210 44e44d3711ab4bc4b187b6a643352c2d +msgid "Korean (serif)" +msgstr "" + +#: ../../page.rst:1226 ebfe84984dbf44bba9f5d4cfd48dd7c5 +msgid "" +"PDF only: Put an image inside the given rectangle. The image may already " +"exist in the PDF or be taken from a pixmap, a file, or a memory area." +msgstr "" + +#: ../../page.rst:1229 3aeff7f3684742f6808a7cb9c5d040e4 +msgid "where to put the image. Must be finite and not empty." +msgstr "" + +#: ../../page.rst:1230 d45e6802a1074852961e19a40ec99241 +msgid "deprecated and ignored." +msgstr "" + +#: ../../page.rst:1231 2fd482a63d504aba8d5a06556defeaca +msgid "" +"name of an image file (all formats supported by MuPDF -- see " +":ref:`ImageFiles`)." +msgstr "" + +#: ../../page.rst:1235 c2cd820ab2964b5da51744d5043c6110 +msgid "maintain the aspect ratio of the image." +msgstr "" + +#: ../../page.rst:1237 8a4ab9cc08dc417c839101fc59d154c2 +msgid "" +"image in memory -- to be used as image mask (alpha values) for the base " +"image. When specified, the base image must be provided as a filename or a" +" stream -- and must not be an image that already has a mask." +msgstr "" + +#: ../../page.rst:1241 5950e8c3d6b049b49b8b33f3b7d7e984 +msgid "" +"(:data:`xref`) make image visibility dependent on this :data:`OCG` or " +":data:`OCMD`. Ignored after the first of multiple insertions. The " +"property is stored with the generated PDF image object and therefore " +"controls the image's visibility throughout the PDF." +msgstr "" + +#: ../../page.rst:1246 ca9ec75c86ff49f1996ec1f71bd991f1 +msgid "see :ref:`CommonParms`." +msgstr "" + +#: ../../page.rst:1247 2101e44007764ff4b9fc70034e923f14 +msgid "a pixmap containing the image." +msgstr "" + +#: ../../page.rst:1248 1c37153fd1a84795bd7d52d410652dd2 +msgid "" +"rotate the image. Must be an integer multiple of 90 degrees. Positive " +"values rotate anti-clockwise. If you need a rotation by an arbitrary " +"angle, consider converting the image to a PDF " +"(:meth:`Document.convert_to_pdf`) first and then use " +":meth:`Page.show_pdf_page` instead." +msgstr "" + +#: ../../page.rst:1255 d82f79d78a2149dea58350e93243aee9 +msgid "image in memory (all formats supported by MuPDF -- see :ref:`ImageFiles`)." +msgstr "" + +#: ../../page.rst:1258 624aeee769f14067b962ec6c6772884c +msgid "" +"the :data:`xref` of an image already present in the PDF. If given, " +"parameters `filename`, `pixmap`, `stream`, `alpha` and `mask` are " +"ignored. The page will simply receive a reference to the existing image." +msgstr "" + +#: ../../page.rst:1266 256e69a0b35540ffa17700d11892d52a +msgid "" +"The `xref` of the embedded image. This can be used as the `xref` argument" +" for very significant performance boosts, if the image is inserted again." +msgstr "" + +#: ../../page.rst:1271 1710b1878d634eec899b7e937995dd29 +msgid "This example puts the same image on every page of a document::" +msgstr "" + +#: ../../page.rst:1286 d2f2977024734be187ee6c67296ceddc +msgid "" +"The method detects multiple insertions of the same image (like in the " +"above example) and will store its data only on the first execution. This" +" is even true (although less performant), if using the default `xref=0`." +msgstr "" + +#: ../../page.rst:1291 e09a9f96a77a45a3911b7156af831514 +msgid "" +"The method cannot detect if the same image had already been part of the " +"file before opening it." +msgstr "" + +#: ../../page.rst:1295 0b1f424f05a748ab81ff1bafa6c48e60 +msgid "" +"You can use this method to provide a background or foreground image for " +"the page, like a copyright or a watermark. Please remember, that " +"watermarks require a transparent image if put in foreground ..." +msgstr "" + +#: ../../page.rst:1300 ec6d73c55b6f48e58dce7dddb6b9b885 +msgid "" +"The image may be inserted uncompressed, e.g. if a `Pixmap` is used or if " +"the image has an alpha channel. Therefore, consider using `deflate=True` " +"when saving the file. In addition, there are ways to control the image " +"size -- even if transparency comes into play. Have a look at " +":ref:`RecipesImages_O`." +msgstr "" + +#: ../../page.rst:1307 26f522e4130a45c996856013f4248085 +msgid "" +"The image is stored in the PDF at its original quality level. This may be" +" much better than what you need for your display. Consider **decreasing " +"the image size** before insertion -- e.g. by using the pixmap option and " +"then shrinking it or scaling it down (see :ref:`Pixmap` chapter). The PIL" +" method `Image.thumbnail()` can also be used for that purpose. The file " +"size savings can be very significant." +msgstr "" + +#: ../../page.rst:1316 7dd604efc17a470f8e83896eb438e817 +msgid "" +"Another efficient way to display the same image on multiple pages is " +"another method: :meth:`show_pdf_page`. Consult " +":meth:`Document.convert_to_pdf` for how to obtain intermediary PDFs " +"usable for that method." +msgstr "" + +#: ../../page.rst:1323 007b8ec985c743b98a2526414fd73df2 +msgid "Changed in v1.14.1: By default, the image keeps its aspect ratio." +msgstr "" + +#: ../../page.rst:1324 4452eaabf85e49498dd430de980d27e9 +msgid "Changed in v1.14.11: Added args `keep_proportion`, `rotate`." +msgstr "" + +#: ../../page.rst:1325 2ba03f5cc3b24b45b04e05c824efe689 +msgid "Changed in v1.14.13:" +msgstr "" + +#: ../../page.rst:1328 7b5b3391686e4574b4aac42a4d8ace9a +msgid "" +"The image is now always placed **centered** in the rectangle, i.e. the " +"centers of image and rectangle are equal." +msgstr "" + +#: ../../page.rst:1330 ff7cb4876385436180fb0bf0bbb48d24 +msgid "Added support for `stream` as `io.BytesIO`." +msgstr "" + +#: ../../page.rst:1332 9cf81fa0283d4b9cb71320c19ac808f6 +msgid "" +"Changed in v1.17.6: Insertion rectangle no longer needs to have a non-" +"empty intersection with the page's :attr:`Page.cropbox` [#f5]_." +msgstr "" + +#: ../../page.rst:1335 bd6b8a78d7bc45058b5b8a9b6ec02558 +msgid "Changed in v1.18.1: Added `mask` arg." +msgstr "" + +#: ../../page.rst:1336 2c51ffb03126487db1b393ca77b62af8 +msgid "Changed in v1.18.3: Added `oc` arg." +msgstr "" + +#: ../../page.rst:1337 71b397af9ab44427bb4ab1ce54bdb69e +msgid "Changed in v1.18.13:" +msgstr "" + +#: ../../page.rst:1339 42bef278e6f241daa5aa1e58f8b0bd66 +msgid "Allow providing the image as the xref of an existing one." +msgstr "" + +#: ../../page.rst:1340 9ab36815831741359f4fd92d83098864 +msgid "Added `xref` arg." +msgstr "" + +#: ../../page.rst:1341 8cf02d8c00e0422f86c35c8edecd0bb3 +msgid "Return `xref` of stored image." +msgstr "" + +#: ../../page.rst:1343 0d480b48652b455db23c555469c7e152 +msgid "Changed in v1.19.3: deprecate and ignore `alpha` arg." +msgstr "" + +#: ../../page.rst:1356 28427482b562417ea265e0fab0c58c39 +msgid "Replace the image at xref with another one." +msgstr "" + +#: ../../page.rst:1358 ../../page.rst:1383 03972eac51224992b99445962cd73e00 +#: fb26544be9924f54b1ea2b7cf64b51e5 +msgid "the :data:`xref` of the image." +msgstr "" + +#: ../../page.rst:1359 4bb1648156be4a2e8852a24a6299b9e6 +msgid "the filename of the new image." +msgstr "" + +#: ../../page.rst:1360 419422370be4417db9baaab1ddfbbdb9 +msgid "the :ref:`Pixmap` of the new image." +msgstr "" + +#: ../../page.rst:1361 ebfa76c83d5f40aaa2fd584dad3aca99 +msgid "the memory area containing the new image." +msgstr "" + +#: ../../page.rst:1363 b020ddbad3f24249901bb68283bb3d41 +msgid "" +"Arguments `filename`, `pixmap`, `stream` have the same meaning as in " +":meth:`Page.insert_image`, especially exactly one of these must be " +"provided." +msgstr "" + +#: ../../page.rst:1365 7dcc679acb8646a2a981d441c0831067 +msgid "" +"This is a **global replacement:** the new image will also be shown " +"wherever the old one has been displayed throughout the file." +msgstr "" + +#: ../../page.rst:1367 0d8c4f895bef4b01b332a9495dbed6f8 +msgid "" +"This method mainly exists for technical purposes. Typical uses include " +"replacing large images by smaller versions, like a lower resolution, " +"graylevel instead of colored, etc., or changing transparency." +msgstr "" + +#: ../../page.rst:1371 ../../page.rst:1395 5e9c066911d24f75ae4f2ee7a54f420b +#: 97f009de6f15443b920db61aeaad86da +msgid "New in v1.21.0" +msgstr "" + +#: ../../page.rst:1381 5368e85893144ec286056edbb95d01ce +msgid "" +"Delete the image at xref. This is slightly misleading: actually the image" +" is being replaced with a small transparent :ref:`Pixmap` using above " +":meth:`Page.replace_image`. The visible effect however is equivalent." +msgstr "" + +#: ../../page.rst:1385 0831eb1b8bca4c61b2d3ebed9d550e5c +msgid "" +"This is a **global replacement:** the image will disappear wherever the " +"old one has been displayed throughout the file." +msgstr "" + +#: ../../page.rst:1387 c9ddf64d62404209971e52006fcb17e7 +msgid "" +"If you inspect / extract a page's images by methods like " +":meth:`Page.get_images`, :meth:`Page.get_image_info` or " +":meth:`Page.get_text`, the replacing \"dummy\" image will be detected " +"like so `(45, 47, 1, 1, 8, 'DeviceGray', '', 'Im1', 'FlateDecode')` and " +"also seem to \"cover\" the same boundary box on the page." +msgstr "" + +#: ../../page.rst:1418 bb880c0f368a4fbbbae89df8e178f2da +msgid "" +"Retrieves the content of a page in a variety of formats. Depending on the" +" ``flags`` value, this may include text, images and several other object " +"types. The method is a wrapper for multiple :ref:`TextPage` methods by " +"choosing the output option `opt` as follows:" +msgstr "" + +#: ../../page.rst:1420 b344fdd22cdc43d98962ff99de701878 +msgid "" +"\"text\" -- :meth:`TextPage.extractTEXT`, default. Always includes **text" +" only.**" +msgstr "" + +#: ../../page.rst:1421 fbf6d08c721944dfac447c3a384d7bf5 +msgid "" +"\"blocks\" -- :meth:`TextPage.extractBLOCKS`. Includes text and **may** " +"include image meta information." +msgstr "" + +#: ../../page.rst:1422 722959ebcd9149aea46db80c88a28f83 +msgid "\"words\" -- :meth:`TextPage.extractWORDS`. Always includes **text only.**" +msgstr "" + +#: ../../page.rst:1423 bb571f32650b4f859aaed06999e59518 +msgid "\"html\" -- :meth:`TextPage.extractHTML`. May include text and images." +msgstr "" + +#: ../../page.rst:1424 30f45825dda040dcaadc3f958006270c +msgid "\"xhtml\" -- :meth:`TextPage.extractXHTML`. May include text and images." +msgstr "" + +#: ../../page.rst:1425 e24d7f1a9bb84b0ba6e43afd1213577c +msgid "\"xml\" -- :meth:`TextPage.extractXML`. Always includes **text only.**" +msgstr "" + +#: ../../page.rst:1426 1cc75fbc16704d78b2f7f039de703b41 +msgid "\"dict\" -- :meth:`TextPage.extractDICT`. May include text and images." +msgstr "" + +#: ../../page.rst:1427 9f8b972db8ef4ed4af0377bd3d686f04 +msgid "\"json\" -- :meth:`TextPage.extractJSON`. May include text and images." +msgstr "" + +#: ../../page.rst:1428 939274b46b2742a0b2f06125cc6a7de8 +msgid "" +"\"rawdict\" -- :meth:`TextPage.extractRAWDICT`. May include text and " +"images." +msgstr "" + +#: ../../page.rst:1429 5cea2dd8403c40dba76071690ece94e8 +msgid "" +"\"rawjson\" -- :meth:`TextPage.extractRAWJSON`. May include text and " +"images." +msgstr "" + +#: ../../page.rst:1431 abfc7bb6441b49359a8be48ffb7d3299 +msgid "" +"A string indicating the requested format, one of the above. A mixture of " +"upper and lower case is supported. If misspelled, option \"text\" is " +"silently assumed." +msgstr "" + +#: ../../page.rst:1433 00954f527a9d4159be3ea3fd320a5264 +msgid "" +"restrict the extraction to this rectangle. If ``None`` (default), the " +"visible part of the page is taken. Any content (text, images) that is " +"**not fully contained** in ``clip`` will be completely omitted. To avoid " +"clipping altogether use ``clip=pymupdf.INFINITE_RECT()``. Only then the " +"extraction will contain all items. This parameter has **no effect** on " +"options \"html\", \"xhtml\" and \"xml\"." +msgstr "" + +#: ../../page.rst:1435 d00942229f724825a1985c7a3b498e48 +msgid "" +"indicator bits to control whether to include images or how text should be" +" handled with respect to white spaces and :data:`ligatures`. See " +":ref:`TextPreserve` for available indicators and " +":ref:`text_extraction_flags` for default settings. (New in v1.16.2)" +msgstr "" + +#: ../../page.rst:1437 ff767e74ef754fd0b761adce1c0755af +msgid "" +"use a previously created :ref:`TextPage`. This reduces execution time " +"**very significantly:** by more than 50% and up to 95%, depending on the " +"extraction option. If specified, the 'flags' and 'clip' arguments are " +"ignored, because they are textpage-only properties. If omitted, a new, " +"temporary textpage will be created." +msgstr "" + +#: ../../page.rst:1439 0d379c1332d54af0b7fe997a2a196607 +msgid "" +"sort the output by vertical, then horizontal coordinates. In many cases, " +"this should suffice to generate a \"natural\" reading order. Has no " +"effect on (X)HTML and XML. For options \"blocks\", \"dict\", \"json\", " +"\"rawdict\", \"rawjson\", sorting happens by coordinates `(y1, x0)` of " +"the respective block bbox. For options \"words\" and \"text\", the text " +"lines are completely re-synthesized to follow the reading sequence and " +"appearance in the document -- which even establishes the original layout " +"to some extent." +msgstr "" + +#: ../../page.rst:1441 454f4d1a695349a5af19fe16e8ac850b +msgid "" +"use these characters as *additional* word separators with the \"words\" " +"output option (ignored otherwise). By default, all white spaces " +"(including non-breaking space `0xA0`) indicate start and end of a word. " +"Now you can specify more characters causing this. For instance, the " +"default will return `\"john.doe@outlook.com\"` as **one** word. If you " +"specify `delimiters=\"@.\"` then the **four** words `\"john\"`, " +"`\"doe\"`, `\"outlook\"`, `\"com\"` will be returned. Other possible uses" +" include ignoring punctuation characters `delimiters=string.punctuation`." +" The \"word\" strings will not contain any delimiting character. (New in " +"v1.23.5)" +msgstr "" + +#: ../../page.rst:1443 1a1a305c24f342e6bf95c3f7d5abff5b +msgid "*str, list, dict*" +msgstr "" + +#: ../../page.rst:1444 b8027602fe4641e6baffd0342399c796 +msgid "" +"The page's content as a string, a list or a dictionary. Refer to the " +"corresponding :ref:`TextPage` method for details." +msgstr "" + +#: ../../page.rst:1448 f6258a84615d4051a4bdeefcbb6ae5c8 +msgid "" +"You can use this method as a **document conversion tool** from :ref:`any " +"supported document type` to one of TEXT, HTML, " +"XHTML or XML documents." +msgstr "" + +#: ../../page.rst:1449 d67d562f042b43baaec86719b9be1cc3 +msgid "" +"The inclusion of text via the *clip* parameter is decided on a by-" +"character level: a character becomes part of the output, if its bbox is " +"contained in `clip`. This **deviates** from the algorithm used in " +"redaction annotations: a character will be **removed if its bbox " +"intersects** any redaction annotation." +msgstr "" + +#: ../../page.rst:1453 02b0706b377a4a2c8542b9912375c6fb +msgid "Changed in v1.19.0: added `textpage` parameter" +msgstr "" + +#: ../../page.rst:1454 6262160ff433484da974bfec2f1d6455 +msgid "Changed in v1.19.1: added `sort` parameter" +msgstr "" + +#: ../../page.rst:1455 7d8a0f75db5141718c58f57c8ea61339 +msgid "" +"Changed in v1.19.6: added new constants for defining default flags per " +"method." +msgstr "" + +#: ../../page.rst:1456 b540829e88b44088ab6080ee39781162 +msgid "Changed in v1.23.5: added `delimiters` parameter" +msgstr "" + +#: ../../page.rst:1457 f21302e5b5fc433d9eafad550a0c3bf3 +msgid "" +"Changed in v1.24.11: changed the effect of `sort_True` for \"text\" and " +"\"words\" to closely follow natural reading sequence." +msgstr "" + +#: ../../page.rst:1467 f72917c9df2643619cd122f9937e01b7 +msgid "Retrieve the text contained in a rectangle." +msgstr "" + +#: ../../page.rst:1469 d29b943fb6264892af9f65f8294d080f +msgid "rect-like." +msgstr "" + +#: ../../page.rst:1470 edd1211e0b82476bb7b10d17c964ea49 +msgid "" +"a :ref:`TextPage` to use. If omitted, a new, temporary textpage will be " +"created." +msgstr "" + +#: ../../page.rst:1472 f969b8fc7f7c48728eeddb42868ce8ea +msgid "" +"a string with interspersed linebreaks where necessary. It is based on " +"dedicated code (changed in v1.19.0). A typical use is checking the result" +" of :meth:`Page.search_for`: >>> rl = page.search_for(\"currency:\") >>>" +" page.get_textbox(rl[0]) 'Currency:' >>>" +msgstr "" + +#: ../../page.rst:1472 912cee7436a643138c8c1b4f9b301dae +msgid "" +"a string with interspersed linebreaks where necessary. It is based on " +"dedicated code (changed in v1.19.0). A typical use is checking the result" +" of :meth:`Page.search_for`:" +msgstr "" + +#: ../../page.rst:1481 6de0c6ee1c03469881ba013d692e5e35 +msgid "New in v1.17.7" +msgstr "" + +#: ../../page.rst:1482 e4935dced8b94aca9efb4afba263a7fb +msgid "Changed in v1.19.0: add `textpage` parameter" +msgstr "" + +#: ../../page.rst:1493 7a18efd3d4754d2684bd23bccf41f0ff +msgid "Create a :ref:`TextPage` for the page." +msgstr "" + +#: ../../page.rst:1495 51e00198f9d646eab27c192b9aea744f +msgid "" +"indicator bits controlling the content available for subsequent text " +"extractions and searches -- see the parameter of :meth:`Page.get_text`." +msgstr "" + +#: ../../page.rst:1497 5572906e140e44ecb06655f487590e67 +msgid "restrict extracted text to this area. (New in v1.17.7)" +msgstr "" + +#: ../../page.rst:1499 ed4c7fe483e04e7fa6ef285ed0aabfaa +msgid ":ref:`TextPage`" +msgstr "" + +#: ../../page.rst:1503 53211b14972c45ce95fed701a955ce76 +msgid "New in v1.16.5" +msgstr "" + +#: ../../page.rst:1504 776bf515596945789a57848499b6c4f3 +msgid "Changed in v1.17.7: introduced `clip` parameter." +msgstr "" + +#: ../../page.rst:1518 c4dd0ac2f6c749dc86e9c9f46bc04ab4 +msgid "" +"**Optical Character Recognition** (**OCR**) technology can be used to " +"extract text data for documents where text is in a raster image format " +"throughout the page. Use this method to **OCR** a page for text " +"extraction." +msgstr "" + +#: ../../page.rst:1520 b9a82917607b4e6cb945f63162446435 +msgid "" +"This method returns a :ref:`TextPage` for the page that includes OCRed " +"text. MuPDF will invoke Tesseract-OCR if this method is used. Otherwise " +"this is a normal :ref:`TextPage` object." +msgstr "" + +#: ../../page.rst:1522 0f72332f2d0b4578b4f0dee4584618de +msgid "" +"indicator bits controlling the content available for subsequent test " +"extractions and searches -- see the parameter of :meth:`Page.get_text`." +msgstr "" + +#: ../../page.rst:1523 660122e729864444930eca6c6058d543 +msgid "" +"the expected language(s). Use \"+\"-separated values if multiple " +"languages are expected, \"eng+spa\" for English and Spanish." +msgstr "" + +#: ../../page.rst:1524 8e2055a7b98241ab8f2b99472fcd2b36 +msgid "" +"the desired resolution in dots per inch. Influences recognition quality " +"(and execution time)." +msgstr "" + +#: ../../page.rst:1525 1bbb094f99c7482692d9722355ab839f +msgid "whether to OCR the full page, or just the displayed images." +msgstr "" + +#: ../../page.rst:1526 a86b4db13a9647eabfbe9a9ea7764250 +msgid "" +"The name of Tesseract's language support folder `tessdata`. If omitted, " +"this information must be present as environment variable " +"`TESSDATA_PREFIX`. Can be determined by function :meth:`get_tessdata`." +msgstr "" + +#: ../../page.rst:1528 e2b38a41773d450b9d7fcba677c1cec3 +msgid "" +"This method does **not** support a clip parameter -- OCR will always " +"happen for the complete page rectangle." +msgstr "" + +#: ../../page.rst:1530 67507d94eba94ed08e5eb43692679739 +msgid "" +"a :ref:`TextPage`. Execution may be significantly longer than " +":meth:`Page.get_textpage`. For a full page OCR, **all text** will have " +"the font \"GlyphlessFont\" from Tesseract. In case of partial OCR, normal" +" text will keep its properties, and only text coming from images will " +"have the GlyphlessFont. .. note:: **OCRed text is only available** " +"to PyMuPDF's text extractions and searches if their `textpage` parameter " +"specifies the output of this method. `This Jupyter notebook " +"`_ walks through an example for using OCR " +"textpages." +msgstr "" + +#: ../../page.rst:1532 cf2a7760cfb443baa47a4bc69a183a10 +msgid "" +"a :ref:`TextPage`. Execution may be significantly longer than " +":meth:`Page.get_textpage`." +msgstr "" + +#: ../../page.rst:1534 59281044c1694fa8bc05052dde8a8b61 +msgid "" +"For a full page OCR, **all text** will have the font \"GlyphlessFont\" " +"from Tesseract. In case of partial OCR, normal text will keep its " +"properties, and only text coming from images will have the GlyphlessFont." +msgstr "" + +#: ../../page.rst:1538 25c757f4eee247258f1ede687682f046 +msgid "" +"**OCRed text is only available** to PyMuPDF's text extractions and " +"searches if their `textpage` parameter specifies the output of this " +"method." +msgstr "" + +#: ../../page.rst:1540 c435c939d0844f6a8b12eeb8cb97a60b +msgid "" +"`This Jupyter notebook `_ walks " +"through an example for using OCR textpages." +msgstr "" + +#: ../../page.rst:1544 82a1337f759a45e69b8059ba07c5f9ec +msgid "New in v.1.19.0" +msgstr "" + +#: ../../page.rst:1545 ef149d6f0f034e2cabfcfa52f76ef29b +msgid "Changed in v1.19.1: support full and partial OCRing a page." +msgstr "" + +#: ../../page.rst:1552 f8e43b5512004252930e9ec3cb8121e3 +msgid "" +"Return the vector graphics of the page. These are instructions which draw" +" lines, rectangles, quadruples or curves, including properties like " +"colors, transparency, line width and dashing, etc. Alternative terms are " +"\"line art\" and \"drawings\"." +msgstr "" + +#: ../../page.rst:1554 869b1f3970494e6d891c51443fe53cb5 +msgid "" +"a list of dictionaries. Each dictionary item contains one or more single " +"draw commands belonging together: they have the same properties (colors, " +"dashing, etc.). This is called a **\"path\"** in PDF, so we adopted that " +"name here, but the method **works for all document types**." +msgstr "" + +#: ../../page.rst:1556 f3e8e14810b346db9e0d9daf21785bd0 +msgid "" +"The path dictionary for fill, stroke and fill-stroke paths has been " +"designed to be compatible with class :ref:`Shape`. There are the " +"following keys:" +msgstr "" + +#: ../../page.rst:1559 ../../page.rst:1624 ../../page.rst:1639 +#: 67ad4d2045064408a1ba01ed1133b577 684b63cfdbba471590c8920f29d9f8f7 +#: 841c49d1b9c3471fbd4b6331bd834c2d +msgid "Key" +msgstr "" + +#: ../../page.rst:1559 ../../page.rst:1624 ../../page.rst:1639 +#: 53eafcdffbbb462692a32a21d65807cb b73ebbf5174947a7b65775975c268fef +#: e6a75d84f7894a54b059143c3eb6d496 +msgid "Value" +msgstr "" + +#: ../../page.rst:1561 ../../page.rst:1626 1cd5ef8dbb2a41cab7389e8a152a5f80 +#: dba13b652f364711bedc84bf0829f6b0 +msgid "closePath" +msgstr "" + +#: ../../page.rst:1561 ../../page.rst:1568 17de4ae5744f46daa1814aa43c42758f +#: 8a0b75118dfd46d1a51e9b65a3de4a58 +msgid "Same as the parameter in :ref:`Shape`." +msgstr "" + +#: ../../page.rst:1562 e7b3e55be02b4642bd39a31728cf6bfc +msgid "color" +msgstr "" + +#: ../../page.rst:1562 1f9691afbd1947d59d6a9c1931f7114a +msgid "Stroke color (see :ref:`Shape`)." +msgstr "" + +#: ../../page.rst:1563 a41f8ac8ad3c456c94b7b376478779c4 +msgid "dashes" +msgstr "" + +#: ../../page.rst:1563 75fe6e50f5354e64a476154321cf2884 +msgid "Dashed line specification (see :ref:`Shape`)." +msgstr "" + +#: ../../page.rst:1564 ../../page.rst:1627 6893e5608b214e1f8f7e27b226873876 +#: b0d4725240454e9fadaba4f5c5c850ed +msgid "even_odd" +msgstr "" + +#: ../../page.rst:1564 dc9d1115e0404dcbb68abe6eb77a8b35 +msgid "Fill colors of area overlaps -- same as the parameter in :ref:`Shape`." +msgstr "" + +#: ../../page.rst:1565 26b27fdfbe5a46b8b0b8281a09a482b2 +msgid "fill" +msgstr "" + +#: ../../page.rst:1565 fd5b317c225545fbb8250da001708803 +msgid "Fill color (see :ref:`Shape`)." +msgstr "" + +#: ../../page.rst:1566 ../../page.rst:1628 35545459a9b744d0a23e37a9aef542d4 +#: cb4b82247f4d424fa9f883be7d91afd4 +msgid "items" +msgstr "" + +#: ../../page.rst:1566 493c8c2dec8f4027bdb28b760e666c1b +msgid "List of draw commands: lines, rectangles, quads or curves." +msgstr "" + +#: ../../page.rst:1567 37210e119ca1451290adf2a89f269cb2 +msgid "lineCap" +msgstr "" + +#: ../../page.rst:1567 a2626ee2b3a74e1fb776f90793e227c5 +msgid "Number 3-tuple, use its max value on output with :ref:`Shape`." +msgstr "" + +#: ../../page.rst:1568 f4d8e219e2f64f1680a7c881a83b260c +msgid "lineJoin" +msgstr "" + +#: ../../page.rst:1569 950e8cc3745342f7826691d71f31f7e5 +msgid "fill_opacity" +msgstr "" + +#: ../../page.rst:1569 4d4650f75a8e4396adfded67df0767c3 +msgid "fill color transparency (see :ref:`Shape`). (New in v1.18.17)" +msgstr "" + +#: ../../page.rst:1570 e9b05909669b4677b8e3a68eb18f0588 +msgid "stroke_opacity" +msgstr "" + +#: ../../page.rst:1570 b9a5e59fcfd14e9b9aae6f4ff5098865 +msgid "stroke color transparency (see :ref:`Shape`). (New in v1.18.17)" +msgstr "" + +#: ../../page.rst:1571 ../../page.rst:1629 ../../page.rst:1641 +#: 396b005a11e4432ab5482ffe50b3d61d 80c6973f07714e1c9453b787c54bf5b7 +#: ea83089bd43b454894be96e4850f824b +msgid "rect" +msgstr "" + +#: ../../page.rst:1571 9d7bacf5e4354e0c86c3c9bd4401f6dc +msgid "Page area covered by this path. Information only." +msgstr "" + +#: ../../page.rst:1572 ../../page.rst:1630 ../../page.rst:1642 +#: 24fac03d9b2b451384416fe5f78db143 a67392e66f764fd4b96c6c091fcfe069 +#: ba34e287651645a8a7de9f9ce9ef0d5c +msgid "layer" +msgstr "" + +#: ../../page.rst:1572 285aa0882ae1442d94405a6a35a4492d +msgid "name of applicable Optional Content Group. (New in v1.22.0)" +msgstr "" + +#: ../../page.rst:1573 ../../page.rst:1631 ../../page.rst:1643 +#: 273156c615254021b3cf1e377897bbc5 3b054f8bb5b9486d99b99e62d3bf5685 +#: a84a2657ecc24963828aa7e4dadfeab4 +msgid "level" +msgstr "" + +#: ../../page.rst:1573 110acb6bf408488e9e421af328fa9d51 +msgid "the hierarchy level if `extended=True`. (New in v1.22.0)" +msgstr "" + +#: ../../page.rst:1574 755b90abd14946a39aeeb0c3a6d64858 +msgid "seqno" +msgstr "" + +#: ../../page.rst:1574 ab333668880148c5bcbb944ff2e72050 +msgid "command number when building page appearance. (New in v1.19.0)" +msgstr "" + +#: ../../page.rst ../../page.rst:1575 ../../page.rst:1633 ../../page.rst:1648 +#: 09c8e555385e47fc97e73ebfd3dd04bf 0d0baa2c58864bf0aaf04e11bbc433d9 +#: 16fd53bebab845e7b14791cb33f919fe 31ce9aa1df7e40a68f2c5f62e6ba484b +#: 3410a53940f0434ca67cfb41198bb2f0 35e83c59c3514d7fb3b3153505e76068 +#: 506e3da6e2804fb5a0ba281b65419ac2 52415d0516fe43aa963858ff74eb86c3 +#: 5e9311c5c55c47c1b2b2cadc4a66db12 62864ef6f3db473292d55c992c0de8c7 +#: 695c03fb5cb74905af8b144210886b6c 6d88f9f8146647408ca720eb2639440d +#: 70c939a93c2e4d07b551c6a3357d38bb 71b611108f864cb2a6bfea2fd779ca40 +#: 80808763cc4e4f07b8b9799442a48d04 83e3d24314624f098b245e49198c48d1 +#: 87a6add728944a7c978acf71d98c584e 8aea933f1c4c46608271d33b001e3347 +#: 8b6a6acc29f24bfdb57d92ac9e4a045a 92ff84c878f34a4594725fae0575009b +#: 9438f342c06943fface3e341a34df2b8 974268f30c784035a84eaebfe210cd18 +#: 9bb07cd381434d8b82e253ba5094c088 a96abc6aa8864f4d92f1c9428ccf8b75 +#: ae50cdfdfd9b4989a954861e1a55164a b63e1567826045b5a119a457977b02a7 +#: b650a636652a4bed990a6e58a75790ed bbb50ffa42684b95a959efa8633eb29c +#: c9b439ade3814c0d8ded9fc9af2b9bc8 caf0437e4fff4cd49a3205aaccb6cc79 +#: cb13688627aa446181023ea67d345fe1 e22bdcabea7145ad86fae5a319b7a90a +#: fc4dc4c3601b4fc0ba378cbd5a35dda6 +msgid "type" +msgstr "" + +#: ../../page.rst:1575 da590961ef344547956aadf05b289b30 +msgid "type of this path. (New in v1.18.17)" +msgstr "" + +#: ../../page.rst:1576 ../../page.rst:1719 4aa3677ead1f4c61bb6574218d24bab9 +#: 6118b6070da0480c9a1c25e056ec8abb +msgid "width" +msgstr "" + +#: ../../page.rst:1576 a6722de8bea742f18c275db16917fc03 +msgid "Stroke line width. (see :ref:`Shape`)." +msgstr "" + +#: ../../page.rst:1579 ed5265d8748c41bc89dcea0e43820815 +msgid "" +"Key `\"opacity\"` has been replaced by the new keys `\"fill_opacity\"` " +"and `\"stroke_opacity\"`. This is now compatible with the corresponding " +"parameters of :meth:`Shape.finish`. (Changed in v1.18.17)" +msgstr "" + +#: ../../page.rst:1582 32f9db8262474d6cb9e66a650d39602d +msgid "" +"For paths other than groups or clips, key `\"type\"` takes one of the " +"following values:" +msgstr "" + +#: ../../page.rst:1584 c0b05d924d2a4c7693eed244061cb086 +msgid "" +"**\"f\"** -- this is a *fill-only* path. Only key-values relevant for " +"this operation have a meaning, not applicable ones are present with a " +"value of ``None``: `\"color\"`, `\"lineCap\"`, `\"lineJoin\"`, " +"`\"width\"`, `\"closePath\"`, `\"dashes\"` and should be ignored." +msgstr "" + +#: ../../page.rst:1585 8c8a235505ce4644a896122fad7d5260 +msgid "" +"**\"s\"** -- this is a *stroke-only* path. Similar to previous, key " +"`\"fill\"` is present with value ``None``." +msgstr "" + +#: ../../page.rst:1586 af52343e1c124d299e93555b1fd95094 +msgid "" +"**\"fs\"** -- this is a path performing combined *fill* and *stroke* " +"operations." +msgstr "" + +#: ../../page.rst:1588 43313ea722f34fc8a309b70525a81840 +msgid "Each item in `path[\"items\"]` is one of the following:" +msgstr "" + +#: ../../page.rst:1590 c739530352f348fab20572b09779faa4 +msgid "`(\"l\", p1, p2)` - a line from p1 to p2 (:ref:`Point` objects)." +msgstr "" + +#: ../../page.rst:1591 23c7b2f0773c4217b131c3ed4e91144d +msgid "" +"`(\"c\", p1, p2, p3, p4)` - cubic Bézier curve **from p1 to p4** (p2 and " +"p3 are the control points). All objects are of type :ref:`Point`." +msgstr "" + +#: ../../page.rst:1592 182b64307110415e801d9fd57ce0dd93 +msgid "" +"`(\"re\", rect, orientation)` - a :ref:`Rect`. Multiple rectangles within" +" the same path are now detected (changed in v1.18.17). Integer " +"`orientation` is 1 resp. -1 indicating whether the enclosed area is " +"rotated left (1 = anti-clockwise), or resp. right [#f7]_ (changed in " +"v1.19.2)." +msgstr "" + +#: ../../page.rst:1593 a1e0959514f34373885cee413d61fe44 +msgid "" +"`(\"qu\", quad)` - a :ref:`Quad`. 3 or 4 consecutive lines are detected " +"to actually represent a :ref:`Quad` (changed in v1.19.2:). (New in " +"v1.18.17)" +msgstr "" + +#: ../../page.rst:1597 8737dee28b734402854dc865731fa242 +msgid "" +"Using class :ref:`Shape`, you should be able to recreate the original " +"drawings on a separate (PDF) page with high fidelity under normal, not " +"too sophisticated circumstances. Please see the following comments on " +"restrictions. A coding draft can be found in :ref:`How to Extract " +"Drawings `." +msgstr "" + +#: ../../page.rst:1599 3aab8e3a27f344888a1f81b6a87ca092 +msgid "" +"Specifying `extended=True` significantly alters the output. Most " +"importantly, new dictionary types are present: \"clip\" and \"group\". " +"All paths will now be organized in a hierarchic structure which is " +"encoded by the new integer key \"level\", the hierarchy level. Each group" +" or clip establishes a new hierarchy, which applies to all subsequent " +"paths having a *larger* level value. (New in v1.22.0)" +msgstr "" + +#: ../../page.rst:1601 1748684dc4e14785be96e811eeb77ccd +msgid "" +"Any path with a smaller level value than its predecessor will end the " +"scope of (at least) the preceding hierarchy level. A \"clip\" path with " +"the same level as the preceding clip will end the scope of that clip. " +"Same is true for groups. This is best explained by an example::" +msgstr "" + +#: ../../page.rst:1617 6f3f822ea769448791e724a14fb47c4e +msgid "" +"The clip in line 0 applies to line including line 7. Group in line 2 " +"applies to lines 3 to 5, clip in line 3 only applies to line 4." +msgstr "" + +#: ../../page.rst:1619 e9f022fb71814f56ad2df5f517acbd13 +msgid "" +"\"stroke\" in line 4 is under control of \"group\" in line 2 and \"clip\"" +" in line 3 (which in turn is a subset of line 0 clip)." +msgstr "" + +#: ../../page.rst:1621 6625c75c092d46e3a7e09245afa0c057 +msgid "" +"**\"clip\"** dictionary. Its values (most importantly \"scissor\") remain" +" valid / apply as long as following dictionaries have a **larger " +"\"level\"** value." +msgstr "" + +#: ../../page.rst:1626 ../../page.rst:1627 ../../page.rst:1628 +#: ../../page.rst:1629 ../../page.rst:1630 ../../page.rst:1631 +#: ../../page.rst:1641 ../../page.rst:1642 ../../page.rst:1643 +#: 0b1b63f41c404901b1643b11b45a5867 62247667752f4b578ccac9e0ecbf590f +#: 7c9a0aa3e8c649d7bee3ac7454b43e93 8366a70901664384adfb01a3b67ee7a8 +#: 953f66d4fd474cbab098faaf2de24bd4 9aa1a22c1adb4eb9a1439d3e2ff1dc95 +#: a1f6eff494b646fbb07a9a6339af5a87 bc4222fbdf6542cdbb7491fb0063b6a2 +#: c1372886b46f46a5afba4a892a59ac6b +msgid "Same as in \"stroke\" or \"fill\" dictionaries" +msgstr "" + +#: ../../page.rst:1632 ab690b8cb544494f80184b0c2875a553 +msgid "scissor" +msgstr "" + +#: ../../page.rst:1632 236ed2afc6734846a1cae6d95ea45663 +msgid "the clip rectangle" +msgstr "" + +#: ../../page.rst:1633 d15367360f8c488fb8e82f9a295c789d +msgid "\"clip\"" +msgstr "" + +#: ../../page.rst:1636 d738d1231fd84ceb820cca1d992713db +msgid "" +"\"group\" dictionary. Its values remain valid (apply) as long as " +"following dictionaries have a **larger \"level\"** value. Any dictionary " +"with an equal or lower level end this group." +msgstr "" + +#: ../../page.rst:1644 cd11376cc4d0426fa447eb7c0f0baff9 +msgid "isolated" +msgstr "" + +#: ../../page.rst:1644 e0738e311c024fb998234f0f1fe4f9ed +msgid "(bool) Whether this group is isolated" +msgstr "" + +#: ../../page.rst:1645 b2ae44ac73bb4cae949ced93c0d41e4d +msgid "knockout" +msgstr "" + +#: ../../page.rst:1645 156f97e7dd9a462388446f5d35f3992c +msgid "(bool) Whether this is a \"Knockout Group\"" +msgstr "" + +#: ../../page.rst:1646 ded1960d4efa41c88ecdaba0d99c93a7 +msgid "blendmode" +msgstr "" + +#: ../../page.rst:1646 5a270db7a07242328025288ce3607085 +msgid "Name of the BlendMode, default is \"Normal\"" +msgstr "" + +#: ../../page.rst:1647 404d1a92eafc46789f2290501a8b3971 +msgid "opacity" +msgstr "" + +#: ../../page.rst:1647 c6cec53ea64546d5ada9351c5f7021dc +msgid "Float value in range [0, 1]." +msgstr "" + +#: ../../page.rst:1648 a32b4e5b645e47a38fae496213fe05c8 +msgid "\"group\"" +msgstr "" + +#: ../../page.rst:1651 2df5c71b6d04456cb8e757571346136a +msgid "" +"The method is based on the output of :meth:`Page.get_cdrawings` -- which " +"is much faster, but requires somewhat more attention processing its " +"output." +msgstr "" + +#: ../../page.rst:1655 71f7d609802a4816840f59ed160efa23 +msgid "New in v1.18.0" +msgstr "" + +#: ../../page.rst:1656 fb8f5286189c4662a4cceffc1eba220f +msgid "Changed in v1.18.17" +msgstr "" + +#: ../../page.rst:1657 e68c9de4f0a34718a2f1dfa501188aa8 +msgid "Changed in v1.19.0: add \"seqno\" key, remove \"clippings\" key" +msgstr "" + +#: ../../page.rst:1658 2ce82133d3a848308013a2da324444a8 +msgid "" +"Changed in v1.19.1: \"color\" / \"fill\" keys now always are either are " +"RGB tuples or `None`. This resolves issues caused by exotic colorspaces." +msgstr "" + +#: ../../page.rst:1659 9b91a351faa841d684907b0234c55356 +msgid "" +"Changed in v1.19.2: add an indicator for the *\"orientation\"* of the " +"area covered by an \"re\" item." +msgstr "" + +#: ../../page.rst:1660 75ed0d5f99574606ba73b9dd0420738f +msgid "" +"Changed in v1.22.0: add new key `\"layer\"` which contains the name of " +"the Optional Content Group of the path (or `None`)." +msgstr "" + +#: ../../page.rst:1661 7008b61db0b949ac97b7f1bfa2e2e90c +msgid "" +"Changed in v1.22.0: add parameter `extended` to also return clipping and " +"group paths." +msgstr "" + +#: ../../page.rst:1669 a96f2efad24c40d9969480c93d059df4 +msgid "" +"Extract the vector graphics on the page. Apart from following technical " +"differences, functionally equivalent to :meth:`Page.get_drawings`, but " +"much faster:" +msgstr "" + +#: ../../page.rst:1671 3cf72c72b8b14a14956e2d8174d231e4 +msgid "" +"Every path type only contains the relevant keys, e.g. a stroke path has " +"no `\"fill\"` color key. See comment in method :meth:`Page.get_drawings`." +msgstr "" + +#: ../../page.rst:1672 80f8f4ff491c4bff8b8aa785b886d608 +msgid "" +"Coordinates are given as :data:`point_like`, :data:`rect_like` and " +":data:`quad_like` **tuples** -- not as :ref:`Point`, :ref:`Rect`, " +":ref:`Quad` objects." +msgstr "" + +#: ../../page.rst:1674 4b700daa5e5f40fa9606f84421e48b44 +msgid "" +"If performance is a concern, consider using this method: Compared to " +"versions earlier than 1.18.17, you should see much shorter response " +"times. We have seen pages that required 2 seconds then, now only need 200" +" ms with this method." +msgstr "" + +#: ../../page.rst:1678 82ced38ad2c542e2af33c904c6804a7d +msgid "New in v1.18.17" +msgstr "" + +#: ../../page.rst:1679 0320aecb048143c88baa0ae5cd45aa17 +msgid "Changed in v1.19.0: removed \"clippings\" key, added \"seqno\" key." +msgstr "" + +#: ../../page.rst:1680 13fe0b91e6a441d8a64550e72fe9e288 +msgid "Changed in v1.19.1: always generate RGB color tuples." +msgstr "" + +#: ../../page.rst:1681 939fc3ee15724d3e9eca02626e4dd209 +msgid "" +"Changed in v1.22.0: added new key `\"layer\"` which contains the name of " +"the Optional Content Group of the path (or `None`)." +msgstr "" + +#: ../../page.rst:1682 7d630d9224974c81a4aaefd5f9181654 +msgid "" +"Changed in v1.22.0: added parameter `extended` to also return clipping " +"paths." +msgstr "" + +#: ../../page.rst:1689 ea979f6ebe4e41efa9388507c821a9c8 +msgid "" +"PDF only: Return a list of fonts referenced by the page. Wrapper for " +":meth:`Document.get_page_fonts`." +msgstr "" + +#: ../../page.rst:1694 35702954b233483e986ca6767f8e2c41 +msgid "" +"PDF only: Return a list of images referenced by the page. Wrapper for " +":meth:`Document.get_page_images`." +msgstr "" + +#: ../../page.rst:1703 e27bbe5080354b09be116ea34e97539c +msgid "" +"Return a list of meta information dictionaries for all images displayed " +"by the page. This works for all document types." +msgstr "" + +#: ../../page.rst:1705 58b8fd3467b6413d95b81f9cd5c61415 +msgid "" +"Compute the MD5 hashcode for each encountered image, which allows " +"identifying image duplicates. This adds the key `\"digest\"` to the " +"output, whose value is a 16 byte `bytes` object. (New in v1.18.13)" +msgstr "" + +#: ../../page.rst:1707 e89fb63bb59d4806b77c4b8d8330597e +msgid "" +"**PDF only.** Try to find the :data:`xref` for each image. Implies " +"`hashes=True`. Adds the `\"xref\"` key to the dictionary. If not found, " +"the value is 0, which means, the image is either \"inline\" or its xref " +"is undetectable for some reason. Please note that this option has an " +"extended response time, because the MD5 hashcode will be computed at " +"least two times for each image with an xref. (New in v1.18.13)" +msgstr "" + +#: ../../page.rst:1710 5c7d342802164ffc821b3c5a9df090ee +msgid "" +"A list of dictionaries. This includes information for **exactly those** " +"images, that are shown on the page -- including *\"inline images\"*. The " +"dictionary layout is similar to that of image blocks in " +"`page.get_text(\"dict\")`. In contrast to images included in " +":meth:`Page.get_text`, image **binary content** is not loaded by this " +"method, which drastically reduces memory usage. Another difference is " +"that image detection is not restricted to the visible part of the page or" +" any ``clip`` parameter: method :meth:`Page.get_text` will only extract " +"images **fully contained** in the provided ``clip``. =============== " +"=============================================================== **Key**" +" **Value** =============== " +"=============================================================== number" +" block number (``int``) bbox image bbox on page, " +":data:`rect_like` width original image width (``int``) height" +" original image height (``int``) cs-name colorspace name" +" (``str``) colorspace colorspace.n (``int``) xres " +"resolution in x-direction (``int``) [#f10]_ yres resolution in" +" y-direction (``int``) [#f10]_ bpc bits per component " +"(``int``) size storage occupied by image (``int``) digest" +" MD5 hashcode (``bytes``), if ``hashes`` is true xref" +" image :data:`xref` or 0, if *xrefs* is true transform " +"matrix transforming image rect to bbox, :data:`matrix_like` has-mask" +" whether the image is transparent and has a mask (``bool``) " +"=============== " +"=============================================================== Multiple" +" occurrences of the same image are always reported. You can detect " +"duplicates by comparing their `digest` values." +msgstr "" + +#: ../../page.rst:1710 b56c6cfb35a14ff8aab2e98fbea4236b +msgid "" +"A list of dictionaries. This includes information for **exactly those** " +"images, that are shown on the page -- including *\"inline images\"*. The " +"dictionary layout is similar to that of image blocks in " +"`page.get_text(\"dict\")`." +msgstr "" + +#: ../../page.rst:1712 93ecc3c5bbae4c92ae4cecf391770755 +msgid "" +"In contrast to images included in :meth:`Page.get_text`, image **binary " +"content** is not loaded by this method, which drastically reduces memory " +"usage. Another difference is that image detection is not restricted to " +"the visible part of the page or any ``clip`` parameter: method " +":meth:`Page.get_text` will only extract images **fully contained** in the" +" provided ``clip``." +msgstr "" + +#: ../../page.rst:1715 a7a064c18ac546ac8c5f5be2910e0bf3 +msgid "**Key**" +msgstr "" + +#: ../../page.rst:1715 d16e6fb7b03143b5ba0140010250fd69 +msgid "**Value**" +msgstr "" + +#: ../../page.rst:1717 1907cae26e1b493e957c192126f8bd58 +msgid "number" +msgstr "" + +#: ../../page.rst:1717 d27911324a5a4a0fafd9d6e2550ef566 +msgid "block number (``int``)" +msgstr "" + +#: ../../page.rst:1718 f6a7c2aaf9e1462bbeeb72cb31bf79d9 +msgid "bbox" +msgstr "" + +#: ../../page.rst:1718 86eb7e0ea23f4bdcac8257dc8460c60c +msgid "image bbox on page, :data:`rect_like`" +msgstr "" + +#: ../../page.rst:1719 f952cb79a0dd4bcf9e6f76a0c369e396 +msgid "original image width (``int``)" +msgstr "" + +#: ../../page.rst:1720 43cc7cf52ac3463abb66db570a2f515a +msgid "height" +msgstr "" + +#: ../../page.rst:1720 8ff4acda1c0b47359b27bb83e55ed142 +msgid "original image height (``int``)" +msgstr "" + +#: ../../page.rst:1721 7b5e02a5db25462a9201cb3ca634db93 +msgid "cs-name" +msgstr "" + +#: ../../page.rst:1721 e8aed799c5204ef995ee98b0e15b1752 +msgid "colorspace name (``str``)" +msgstr "" + +#: ../../page.rst:1722 470b51b79e894363aa2f3e7b4395e012 +msgid "colorspace" +msgstr "" + +#: ../../page.rst:1722 66bd8b12699c4b87beaa2678b6847f61 +msgid "colorspace.n (``int``)" +msgstr "" + +#: ../../page.rst:1723 010a2b1b2cc040d18328b23373335b39 +msgid "xres" +msgstr "" + +#: ../../page.rst:1723 8e9ab06b3360480a969c713111c0e1b7 +msgid "resolution in x-direction (``int``) [#f10]_" +msgstr "" + +#: ../../page.rst:1724 2a2d1ea79f0e4c1d952227ba35b19bcc +msgid "yres" +msgstr "" + +#: ../../page.rst:1724 1f63c35a38104eaf9ac1f4c0a446c2d3 +msgid "resolution in y-direction (``int``) [#f10]_" +msgstr "" + +#: ../../page.rst:1725 6afb17cd205b4d36b405379292e5cc7e +msgid "bpc" +msgstr "" + +#: ../../page.rst:1725 2b3f9b22e8954cc68e29c89a9755baab +msgid "bits per component (``int``)" +msgstr "" + +#: ../../page.rst:1726 87dc60b6e9dd4ff8b3e8dc2dac2d46f8 +msgid "size" +msgstr "" + +#: ../../page.rst:1726 a5aa0c1d578b42cf9833f66aca7fec20 +msgid "storage occupied by image (``int``)" +msgstr "" + +#: ../../page.rst:1727 5b99ae76cf7a47c58d86b4331f33c9a4 +msgid "digest" +msgstr "" + +#: ../../page.rst:1727 e999edeff85549c6a9c7ae83208b170d +msgid "MD5 hashcode (``bytes``), if ``hashes`` is true" +msgstr "" + +#: ../../page.rst:1728 522f8069369a4655b9e90e66fce84ec6 +msgid "xref" +msgstr "" + +#: ../../page.rst:1728 0d5fc56e9adb4cc0add3fa114a0d0b1a +msgid "image :data:`xref` or 0, if *xrefs* is true" +msgstr "" + +#: ../../page.rst:1729 d500ae56d3ae4425a687416bc7d26d3e +msgid "transform" +msgstr "" + +#: ../../page.rst:1729 bbf4e06903aa4ffab22418f35b7f0346 +msgid "matrix transforming image rect to bbox, :data:`matrix_like`" +msgstr "" + +#: ../../page.rst:1730 f0f0216b6f1541eaa6cc1001d10aea53 +msgid "has-mask" +msgstr "" + +#: ../../page.rst:1730 49f00035ed2d4832890306c637415dbb +msgid "whether the image is transparent and has a mask (``bool``)" +msgstr "" + +#: ../../page.rst:1733 3b610224f44344e5b62359a6e14b4856 +msgid "" +"Multiple occurrences of the same image are always reported. You can " +"detect duplicates by comparing their `digest` values." +msgstr "" + +#: ../../page.rst:1737 946d5705f3bb433ba251ee6b7b08f6c3 +msgid "New in v1.18.11" +msgstr "" + +#: ../../page.rst:1738 29620790dffa4bf8951b84a7d7d93aeb +msgid "" +"Changed in v1.18.13: added image MD5 hashcode computation and " +":data:`xref` search." +msgstr "" + +#: ../../page.rst:1745 38f20a8134cf4edb84b0b83559c20eb7 +msgid "" +"PDF only: Return a list of Form XObjects referenced by the page. Wrapper " +"for :meth:`Document.get_page_xobjects`." +msgstr "" + +#: ../../page.rst:1753 f08fc49d243849d6907078ee53743eb5 +msgid "" +"PDF only: Return boundary boxes and transformation matrices of an " +"embedded image. This is an improved version of " +":meth:`Page.get_image_bbox` with the following differences:" +msgstr "" + +#: ../../page.rst:1755 22156183966643a5abe5b2dcacf61595 +msgid "" +"There is no restriction on **how** the image is invoked (by the page or " +"one of its Form XObjects). The result is always complete and correct." +msgstr "" + +#: ../../page.rst:1756 121ff8e320a1435bb587e969f50728e6 +msgid "" +"The result is a list of :ref:`Rect` or (:ref:`Rect`, :ref:`Matrix`) " +"objects -- depending on *transform*. Each list item represents one " +"location of the image on the page. Multiple occurrences might not be " +"detectable by :meth:`Page.get_image_bbox`." +msgstr "" + +#: ../../page.rst:1757 db0c1992b2224619af8e0a8bb266e3b1 +msgid "" +"The method invokes :meth:`Page.get_image_info` with `xrefs=True` and " +"therefore has a noticeably longer response time than " +":meth:`Page.get_image_bbox`." +msgstr "" + +#: ../../page.rst:1759 78a2677113da42d5bd78cf20c9620dbd +msgid "" +"an item of the list :meth:`Page.get_images`, or the reference **name** " +"entry of such an item (item[7]), or the image :data:`xref`." +msgstr "" + +#: ../../page.rst:1760 31656212bb61408a979a149a7a68a16a +msgid "" +"also return the matrix used to transform the image rectangle to the bbox " +"on the page. If true, then tuples `(bbox, matrix)` are returned." +msgstr "" + +#: ../../page.rst:1763 60ceecb376bd4029a4ab81a98b09e532 +msgid "" +"Boundary boxes and respective transformation matrices for each image " +"occurrence on the page. If the item is not on the page, an empty list " +"`[]` is returned." +msgstr "" + +#: ../../page.rst:1767 15d195e0ae454a65b7d0197c769e3ce8 +msgid "New in v1.18.13" +msgstr "" + +#: ../../page.rst:1777 94b1ab0ccf4f48ec8d1cb13b3f36d800 +msgid "" +"PDF only: Return boundary box and transformation matrix of an embedded " +"image." +msgstr "" + +#: ../../page.rst:1779 8e645372dbf647aeb56ff450edaebd00 +msgid "" +"an item of the list :meth:`Page.get_images` with *full=True* specified, " +"or the reference **name** entry of such an item, which is item[-3] (or " +"item[7] respectively)." +msgstr "" + +#: ../../page.rst:1780 428845107f2c47e2abc7f576c506ed08 +msgid "" +"return the matrix used to transform the image rectangle to the bbox on " +"the page (new in v1.18.11). Default is just the bbox. If true, then a " +"tuple `(bbox, matrix)` is returned." +msgstr "" + +#: ../../page.rst:1782 819ebb0f28364cdcba4fbe7ca98bd2d4 +msgid ":ref:`Rect` or (:ref:`Rect`, :ref:`Matrix`)" +msgstr "" + +#: ../../page.rst:1783 ee52dd3a62a6439abd4fda83efaf8d5f +msgid "" +"the boundary box of the image -- optionally also its transformation " +"matrix. |history_begin| * (Changed in v1.16.7): If the page in fact " +"does not display this image, an infinite rectangle is returned now. In " +"previous versions, an exception was raised. Formally invalid parameters " +"still raise exceptions. * (Changed in v1.17.0): Only images referenced " +"directly by the page are considered. This means that images occurring in " +"embedded PDF pages are ignored and an exception is raised. * (Changed in " +"v1.18.5): Removed the restriction introduced in v1.17.0: any item of the " +"page's image list may be specified. * (Changed in v1.18.11): Partially " +"re-instated a restriction: only those images are considered, that are " +"either directly referenced by the page or by a Form XObject directly " +"referenced by the page. * (Changed in v1.18.11): Optionally also return " +"the transformation matrix together with the bbox as the tuple `(bbox, " +"transform)`. |history_end|" +msgstr "" + +#: ../../page.rst:1783 a7f8641e4ad14324ac60e051d749d295 +msgid "" +"the boundary box of the image -- optionally also its transformation " +"matrix." +msgstr "" + +#: ../../page.rst:1787 9e1a1ef665584353a75fb92c8bafa923 +msgid "" +"(Changed in v1.16.7): If the page in fact does not display this image, an" +" infinite rectangle is returned now. In previous versions, an exception " +"was raised. Formally invalid parameters still raise exceptions." +msgstr "" + +#: ../../page.rst:1788 ad45cfaae88845f6b9ecf0120285e6e9 +msgid "" +"(Changed in v1.17.0): Only images referenced directly by the page are " +"considered. This means that images occurring in embedded PDF pages are " +"ignored and an exception is raised." +msgstr "" + +#: ../../page.rst:1789 de570fe3dafb4fd99deff2899b6c1fc0 +msgid "" +"(Changed in v1.18.5): Removed the restriction introduced in v1.17.0: any " +"item of the page's image list may be specified." +msgstr "" + +#: ../../page.rst:1790 e303c4b6b12a4d76a7a5f2c788dcb37e +msgid "" +"(Changed in v1.18.11): Partially re-instated a restriction: only those " +"images are considered, that are either directly referenced by the page or" +" by a Form XObject directly referenced by the page." +msgstr "" + +#: ../../page.rst:1791 bc011ef28d61422a955614e4c2d8dc86 +msgid "" +"(Changed in v1.18.11): Optionally also return the transformation matrix " +"together with the bbox as the tuple `(bbox, transform)`." +msgstr "" + +#: ../../page.rst:1797 bcfcaef3b1814721b638515684f8d52c +msgid "" +"Be aware that :meth:`Page.get_images` may contain \"dead\" entries i.e. " +"images, which the page **does not display**. This is no error, but " +"intended by the PDF creator. No exception will be raised in this case, " +"but an infinite rectangle is returned. You can avoid this from happening " +"by executing :meth:`Page.clean_contents` before this method." +msgstr "" + +#: ../../page.rst:1798 49d027f793a94bafb910acbfe3e05a8b +msgid "" +"The image's \"transformation matrix\" is defined as the matrix, for which" +" the expression `bbox / transform == pymupdf.Rect(0, 0, 1, 1)` is true, " +"lookup details here: :ref:`ImageTransformation`." +msgstr "" + +#: ../../page.rst:1802 70224468b38f44aebf1c2a1d3af4a178 +msgid "Changed in v1.18.11: return image transformation matrix" +msgstr "" + +#: ../../page.rst:1811 d3e86ad4c19a4d3292c0d4ddac497b97 +msgid "" +"Create an SVG image from the page. Only full page images are currently " +"supported." +msgstr "" + +#: ../../page.rst:1813 1eff949fcbd24567ac700df17d5c59c4 +msgid "a matrix, default is :ref:`Identity`." +msgstr "" + +#: ../../page.rst:1814 df2f3c9f709a489c9ca5f91abbc6b312 +msgid "" +"-- controls how text is represented. ``True`` outputs each character as a" +" series of elementary draw commands, which leads to a more precise text " +"display in browsers, but a **very much larger** output for text-oriented " +"pages. Display quality for ``False`` relies on the presence of the " +"referenced fonts on the current system. For missing fonts, the internet " +"browser will fall back to some default -- leading to unpleasant " +"appearances. Choose ``False`` if you want to parse the text of the SVG. " +"(New in v1.17.5)" +msgstr "" + +#: ../../page.rst:1816 255d76aeb25540379f4e2750fc40476e +msgid "" +"a UTF-8 encoded string that contains the image. Because SVG has XML " +"syntax it can be saved in a text file, the standard extension is `.svg`." +" .. note:: In case of a PDF, you can circumvent the \"full page image " +"only\" restriction by modifying the page's CropBox before using the " +"method." +msgstr "" + +#: ../../page.rst:1816 d70d0e09fa10457c899a88af18ac233f +msgid "" +"a UTF-8 encoded string that contains the image. Because SVG has XML " +"syntax it can be saved in a text file, the standard extension is `.svg`." +msgstr "" + +#: ../../page.rst:1818 2038b89974854ccb915bf35207525477 +msgid "" +"In case of a PDF, you can circumvent the \"full page image only\" " +"restriction by modifying the page's CropBox before using the method." +msgstr "" + +#: ../../page.rst:1830 49256f649c7340c2b5790800b7a54e49 +msgid "" +"Create a pixmap from the page. This is probably the most often used " +"method to create a :ref:`Pixmap`." +msgstr "" + +#: ../../page.rst:1832 05f2f80f7ace4f0f8eb70cf8231a45fb +msgid "All parameters are *keyword-only.*" +msgstr "" + +#: ../../page.rst:1834 3aff081d3a1d4330a5efbb941d465d5d +msgid "default is :ref:`Identity`." +msgstr "" + +#: ../../page.rst:1835 13d257c5df27414c9c926dad92e8d2b4 +msgid "" +"desired resolution in x and y direction. If not `None`, the `\"matrix\"` " +"parameter is ignored. (New in v1.19.2)" +msgstr "" + +#: ../../page.rst:1836 eff39884626a45f0af6b14007330fc96 +msgid "" +"The desired colorspace, one of \"GRAY\", \"RGB\" or \"CMYK\" (case " +"insensitive). Or specify a :ref:`Colorspace`, ie. one of the predefined " +"ones: :data:`csGRAY`, :data:`csRGB` or :data:`csCMYK`." +msgstr "" + +#: ../../page.rst:1838 8dda6eb66c8a4a9dbb71d8d35094999d +msgid "" +"restrict rendering to the intersection of this area with the page's " +"rectangle." +msgstr "" + +#: ../../page.rst:1839 0f258e14c9804c39ad177677aeda8455 +#, python-format +msgid "" +"whether to add an alpha channel. Always accept the default ``False`` if " +"you do not really need transparency. This will save a lot of memory (25% " +"in case of RGB ... and pixmaps are typically **large**!), and also " +"processing time. Also note an **important difference** in how the image " +"will be rendered: with ``True`` the pixmap's samples area will be pre-" +"cleared with *0x00*. This results in **transparent** areas where the page" +" is empty. With ``False`` the pixmap's samples will be pre-cleared with " +"*0xff*. This results in **white** where the page has nothing to show. " +"|history_begin| Changed in v1.14.17 The default alpha value is now " +"``False``. * Generated with *alpha=True* .. image:: images/img-" +"alpha-1.* * Generated with *alpha=False* .. image:: images/img-" +"alpha-0.* |history_end|" +msgstr "" + +#: ../../page.rst:1839 9ed06c39712e4b0c9b1ef2b9190ad178 +#, python-format +msgid "" +"whether to add an alpha channel. Always accept the default ``False`` if " +"you do not really need transparency. This will save a lot of memory (25% " +"in case of RGB ... and pixmaps are typically **large**!), and also " +"processing time. Also note an **important difference** in how the image " +"will be rendered: with ``True`` the pixmap's samples area will be pre-" +"cleared with *0x00*. This results in **transparent** areas where the page" +" is empty. With ``False`` the pixmap's samples will be pre-cleared with " +"*0xff*. This results in **white** where the page has nothing to show." +msgstr "" + +#: ../../page.rst:1853 99981aa2da1b40108adc66b7b571c447 +msgid "Changed in v1.14.17" +msgstr "" + +#: ../../page.rst:1844 62f1b49c3dd141c7a8ef0c9daff44467 +msgid "The default alpha value is now ``False``." +msgstr "" + +#: ../../page.rst:1846 5166a6cd936e46849e89ded514dbdb2e +msgid "Generated with *alpha=True*" +msgstr "" + +#: ../../page.rst:1851 6528d1cab5cc405bb3b064f7c9215219 +msgid "Generated with *alpha=False*" +msgstr "" + +#: ../../page.rst:1857 d7ad01e00ec4466ca4c6561aac481fdc +msgid "" +"*(new in version 1.16.0)* whether to also render annotations or to " +"suppress them. You can create pixmaps for annotations separately." +msgstr "" + +#: ../../page.rst:1859 7bfc8bde1fbc42ba9c5adf955fb5f6fe +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../page.rst:1860 1036350ef4604f60bc3bfb184510331d +msgid "" +"Pixmap of the page. For fine-controlling the generated image, the by far " +"most important parameter is **matrix**. E.g. you can increase or decrease" +" the image resolution by using **Matrix(xzoom, yzoom)**. If zoom > 1, you" +" will get a higher resolution: zoom=2 will double the number of pixels in" +" that direction and thus generate a 2 times larger image. Non-positive " +"values will flip horizontally, resp. vertically. Similarly, matrices also" +" let you rotate or shear, and you can combine effects via e.g. matrix " +"multiplication. See the :ref:`Matrix` section to learn more." +msgstr "" + +#: ../../page.rst:1864 e709657156c54e5da49e39a889d755f4 +msgid "" +"The pixmap will have *\"premultiplied\"* pixels if `alpha=True`. To learn" +" about some background, e.g. look for \"Premultiplied alpha\" `here " +"`_." +msgstr "" + +#: ../../page.rst:1866 dc63977f417c4d669f251e232b7449ef +msgid "" +"The method will respect any page rotation and will not exceed the " +"intersection of `clip` and :attr:`Page.cropbox`. If you need the page's " +"mediabox (and if this is a different rectangle), you can use a snippet " +"like the following to achieve this::" +msgstr "" + +#: ../../page.rst:1884 fe786b6a9efe4d3c8dae1c2c34a4d27b +msgid "Changed in v1.19.2: added support of parameter dpi." +msgstr "" + +#: ../../page.rst:1892 caeb4aa2a305433fa72d601d086e5dcc +msgid "" +"PDF only: return a list of the names of annotations, widgets and links. " +"Technically, these are the */NM* values of every PDF object found in the " +"page's */Annots* array." +msgstr "" + +#: ../../page.rst:1898 0699ea9e43f8424985dc482f87ffd38f +msgid "New in v1.16.10" +msgstr "" + +#: ../../page.rst:1905 d7384e93d12547c486263203beb5df89 +msgid "" +"PDF only: return a list of the :data:`xref` numbers of annotations, " +"widgets and links -- technically of all entries found in the page's " +"*/Annots* array." +msgstr "" + +#: ../../page.rst:1908 5b6f31dd87454760829a55acc10e55e4 +msgid "" +"a list of items *(xref, type)* where type is the annotation type. Use the" +" type to tell apart links, fields and annotations, see " +":ref:`AnnotationTypes`." +msgstr "" + +#: ../../page.rst:1912 ../../page.rst:1930 4b1840a2328c4c0491ae53e88e80dc76 +#: b332754a68c4477fab234d683f4ccc96 +msgid "New in v1.17.1" +msgstr "" + +#: ../../page.rst:1919 53ebddaf93d34d5f9f69386f293f9c73 +msgid "" +"PDF only: return the annotation identified by *ident*. This may be its " +"unique name (PDF `/NM` key), or its :data:`xref`." +msgstr "" + +#: ../../page.rst:1921 afb025534f664db7ad9db85c38f9072f +msgid "the annotation name or xref." +msgstr "" + +#: ../../page.rst:1924 91e98027fa814f2480abca950000bf48 +msgid "the annotation or ``None``." +msgstr "" + +#: ../../page.rst:1926 32f21d6698f1497e83db2ebea1787d39 +msgid "" +"Methods :meth:`Page.annot_names`, :meth:`Page.annot_xrefs` provide lists " +"of names or xrefs, respectively, from where an item may be picked and " +"loaded via this method." +msgstr "" + +#: ../../page.rst:1936 cca236bad55648c5a810e50ea814bd7f +msgid "PDF only: return the field identified by :data:`xref`." +msgstr "" + +#: ../../page.rst:1938 d134928d1cc946309ab62309be76ed11 +msgid "the field's xref." +msgstr "" + +#: ../../page.rst:1941 41e62df3bd46456bab6e1244b57e31a7 +msgid "the field or ``None``." +msgstr "" + +#: ../../page.rst:1943 9c8f4697de594066ae8f9cee0e8400f5 +msgid "" +"This is similar to the analogous method :meth:`Page.load_annot` -- except" +" that here only the xref is supported as identifier." +msgstr "" + +#: ../../page.rst:1947 9edc19c825ad440887b7caf99bc36ec3 +msgid "New in v1.19.6" +msgstr "" + +#: ../../page.rst:1953 ad01580beaea437fbd1d6157e0f3a623 +msgid "Return the first link on a page. Synonym of property :attr:`first_link`." +msgstr "" + +#: ../../page.rst:1955 ../../page.rst:2252 a74924baab27499ea18455c3c6910571 +#: dc342a221f14447d8a7417d1c20a4cc1 +msgid ":ref:`Link`" +msgstr "" + +#: ../../page.rst:1956 dee7a33cc0c84aa0b6adfd89805d64e8 +msgid "first link on the page (or ``None``)." +msgstr "" + +#: ../../page.rst:1963 eb961b30b31c4afa82d2e0317201406b +msgid "PDF only: Set the rotation of the page." +msgstr "" + +#: ../../page.rst:1965 469042c9d56641299b3be924dd53d60b +msgid "" +"An integer specifying the required rotation in degrees. Must be an " +"integer multiple of 90. Values will be converted to one of 0, 90, 180, " +"270." +msgstr "" + +#: ../../page.rst:1969 227ee516ba554a0cb14b99795c5e0a9f +msgid "PDF only: Change the colorspace components of all objects on page." +msgstr "" + +#: ../../page.rst:1971 d2515f60d6af4e17a82832e769938548 +msgid "" +"The desired count of color components. Must be one of 1, 3 or 4, which " +"results in color spaces DeviceGray, DeviceRGB or DeviceCMYK respectively." +" The method affects text, images and vector graphics. For instance, with " +"the default value 1, a page will be converted to grayscale. If a page is " +"already grayscale, the method will not cause visible changes -- " +"independent of the value of ``components``." +msgstr "" + +#: ../../page.rst:1973 dd674046551f4c3cb79fef4fa79b7b15 +msgid "These changes are **permanent** and cannot be reverted." +msgstr "" + +#: ../../page.rst:1977 9095c069ad1649f98d53bd1aaff0c92c +msgid "" +"PDF only: Permanently remove page content outside the given rectangle. " +"This is similar to :meth:`Page.set_cropbox`, but the page's rectangle " +"will not be changed, only the content outside the rectangle will be " +"removed." +msgstr "" + +#: ../../page.rst:1979 37a6c35649b145f08a5decf125e56bf2 +msgid "" +"The rectangle to clip to. Must be finite and its intersection with the " +"page must not be empty." +msgstr "" + +#: ../../page.rst:1981 9347d32590004624ad7e93346a5d559f +msgid "" +"The method works best for text: All text on the page will be removed " +"(decided by single character) that has no intersection with the " +"rectangle. For vector graphics, the method will remove all paths that " +"have no intersection with the rectangle. For images, the method will " +"remove all images that have no intersection with the rectangle. Vectors " +"and images **having** an intersection with the rectangle, will be kept in" +" their entirety." +msgstr "" + +#: ../../page.rst:1983 f6a3ae3f011144d49017e42c7f6d1b6b +msgid "" +"The method roughly has the same effect as if four redactions had been " +"applied that cover the rectangle's outside." +msgstr "" + +#: ../../page.rst:1985 ae033183ff37421bbbd56e4a52f60bd2 +msgid "New in v1.26.4." +msgstr "" + +#: ../../page.rst:1989 1f930abbc15c4ff89b61da8eff5ec500 +msgid "" +"PDF only: Set page rotation to 0 while maintaining appearance and page " +"content." +msgstr "" + +#: ../../page.rst:1991 30ffde127f4745dab1c91c8d166bf86b +msgid "" +"The inverted matrix used to achieve this change. If the page was not " +"rotated (rotation 0), :ref:`Identity` is returned. The method " +"automatically recomputes the rectangles of any annotations, links and " +"widgets present on the page. This method may come in handy when e.g. " +"used with :meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../page.rst:1991 33e0bd938fe84b5c8783dcfdf5544ae7 +msgid "" +"The inverted matrix used to achieve this change. If the page was not " +"rotated (rotation 0), :ref:`Identity` is returned. The method " +"automatically recomputes the rectangles of any annotations, links and " +"widgets present on the page." +msgstr "" + +#: ../../page.rst:1993 2da47a2010e34b029e3f0edff15b2ea6 +msgid "" +"This method may come in handy when e.g. used with " +":meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../page.rst:2003 8097fb4ce62d438a9173044458d89700 +msgid "" +"PDF only: Display a page of another PDF. This is similar to " +":meth:`Page.insert_image` but the source page will appear like a copy of " +"itself and will not be rasterized. This is a multi-purpose method. For " +"example, you can use it to:" +msgstr "" + +#: ../../page.rst:2005 a3de5ee714974a4bbc3c15d6db7c596e +msgid "" +"create \"n-up\" versions of existing PDF files, combining several input " +"pages into **one output page** (see example `combine.py " +"`_)," +msgstr "" + +#: ../../page.rst:2006 56a92497a6424d06ac1dc154b2b7c2e3 +msgid "" +"create \"posterized\" PDF files, i.e. every input page is split up in " +"parts which each create a separate output page (see `posterize.py " +"`_)," +msgstr "" + +#: ../../page.rst:2007 809839e89a244a85af528e2781c72346 +msgid "" +"include PDF-based vector images like company logos, watermarks, etc., see" +" `svg-logo.py `_, which puts an SVG-based " +"logo on each page." +msgstr "" + +#: ../../page.rst:2009 94e420eeb95544848178411930596331 +msgid "" +"where to place the image on current page. Must be finite and its " +"intersection with the page must not be empty." +msgstr "" + +#: ../../page.rst:2010 4a518b41f0fa4d20a7ddfdacc3b5387e +msgid "" +"source PDF document containing the page. Must be a different document " +"object, but may be the same file." +msgstr "" + +#: ../../page.rst:2013 2258364ee77342648f9f9d13598d61a0 +msgid "page number (0-based, in `-∞ < pno < docsrc.page_count`) to be shown." +msgstr "" + +#: ../../page.rst:2015 9eb0129dc8f54fb9976933c50276a085 +msgid "" +"whether to maintain the width-height-ratio (default). If false, all 4 " +"corners are always positioned on the border of the target rectangle -- " +"whatever the rotation value. In general, this will deliver distorted and " +"/or non-rectangular images." +msgstr "" + +#: ../../page.rst:2017 85f7fd026bd24e8da3654da5636d9989 +msgid "put image in foreground (default) or background." +msgstr "" + +#: ../../page.rst:2019 42fcaea11ef446568915be1f505467ee +msgid "" +"(:data:`xref`) make visibility dependent on this :data:`OCG` / " +":data:`OCMD` (which must be defined in the target PDF) [#f9]_. (New in " +"v1.18.3)" +msgstr "" + +#: ../../page.rst:2020 13030fbfedf34278a676f08d0826d36e +msgid "" +"show the source rectangle rotated by some angle. Any angle is supported " +"(changed in v1.14.11). (New in v1.14.10)" +msgstr "" + +#: ../../page.rst:2022 149ad5f2cd814d68a80da796e0a382a0 +msgid "" +"choose which part of the source page to show. Default is the full page, " +"else must be finite and its intersection with the source page must not be" +" empty." +msgstr "" + +#: ../../page.rst:2024 b8efe161593647e58619c74b77cac9a2 +msgid "" +"In contrast to method :meth:`Document.insert_pdf`, this method does not " +"copy annotations, widgets or links, so these objects are not included in " +"the target [#f6]_. But all its **other resources (text, images, fonts, " +"etc.)** will be imported into the current PDF. They will therefore appear" +" in text extractions and in :meth:`get_fonts` and :meth:`get_images` " +"lists -- even if they are not contained in the visible area given by " +"*clip*." +msgstr "" + +#: ../../page.rst:2026 a57abb1f967d4c35b6e7d4beed87ad89 +msgid "Example: Show the same source page, rotated by 90 and by -90 degrees:" +msgstr "" + +#: ../../page.rst:2048 c1b751195e4c4efca470bedbe8800d2c +msgid "" +"Changed in v1.14.11: Parameter *reuse_xref* has been deprecated. Position" +" the source rectangle centered in target rectangle. Any rotation angle is" +" now supported." +msgstr "" + +#: ../../page.rst:2049 81f070423325403d8564dc51aabef7ff +msgid "Changed in v1.18.3: New parameter `oc`." +msgstr "" + +#: ../../page.rst:2055 39c3b9e093904d029cf16873b12f7494 +msgid "PDF only: Create a new :ref:`Shape` object for the page." +msgstr "" + +#: ../../page.rst:2057 fa925ab7db3840c19b1f80067f7da55d +msgid ":ref:`Shape`" +msgstr "" + +#: ../../page.rst:2058 6be44310501147678b1f55bb5578c9e3 +msgid "a new :ref:`Shape` to use for compound drawings. See description there." +msgstr "" + +#: ../../page.rst:2069 a4ff3e983b264801b477b8f199b8e57b +msgid "Search for *needle* on a page. Wrapper for :meth:`TextPage.search`." +msgstr "" + +#: ../../page.rst:2071 73895714ee9e477299763e3cb38e6b55 +msgid "" +"Text to search for. May contain spaces. Upper / lower case is ignored, " +"but only works for ASCII characters: For example, \"COMPÉTENCES\" will " +"not be found if needle is \"compétences\" -- \"compÉtences\" however " +"will. Similar is true for German umlauts and the like." +msgstr "" + +#: ../../page.rst:2072 002d648a94cf4efd970e8372efdfacc3 +msgid "only search within this area. (New in v1.18.2)" +msgstr "" + +#: ../../page.rst:2073 76ceadd2652e4b9c8e90959e238bfc73 +msgid "Return object type :ref:`Quad` instead of :ref:`Rect`." +msgstr "" + +#: ../../page.rst:2074 e6e8cb9ec29b4a5b839fca538d50fa20 +msgid "" +"Control the data extracted by the underlying :ref:`TextPage`. By default," +" ligatures and white spaces are kept, and hyphenation [#f8]_ is detected." +msgstr "" + +#: ../../page.rst:2075 06406f39a7c54d7fa2b7e1270314e74c +msgid "" +"use a previously created :ref:`TextPage`. This reduces execution time " +"**significantly.** If specified, the 'flags' and 'clip' arguments are " +"ignored. If omitted, a temporary textpage will be created. (New in " +"v1.19.0)" +msgstr "" + +#: ../../page.rst:2079 939066ea93704b6e8c1b0f3cf6d6c2aa +msgid "" +"A list of :ref:`Rect` or :ref:`Quad` objects, each of which -- " +"**normally!** -- surrounds one occurrence of *needle*. **However:** if " +"parts of *needle* occur on more than one line, then a separate item is " +"generated for each these parts. So, if `needle = \"search string\"`, two " +"rectangles may be generated. |history_begin| Changes in v1.18.2: * " +"There no longer is a limit on the list length (removal of the `hit_max` " +"parameter). * If a word is **hyphenated** at a line break, it will still " +"be found. E.g. the needle \"method\" will be found even if hyphenated as " +"\"meth-od\" at a line break, and two rectangles will be returned: one " +"surrounding \"meth\" (without the hyphen) and another one surrounding " +"\"od\". |history_end|" +msgstr "" + +#: ../../page.rst:2081 c05f559f100049cea4ceda637e6a62d8 +msgid "" +"A list of :ref:`Rect` or :ref:`Quad` objects, each of which -- " +"**normally!** -- surrounds one occurrence of *needle*. **However:** if " +"parts of *needle* occur on more than one line, then a separate item is " +"generated for each these parts. So, if `needle = \"search string\"`, two " +"rectangles may be generated." +msgstr "" + +#: ../../page.rst:2085 a4fa930c59aa42a0aca0d7f145f57c91 +msgid "Changes in v1.18.2:" +msgstr "" + +#: ../../page.rst:2087 34a34ce97b8c4692a917624a7ecdb810 +msgid "" +"There no longer is a limit on the list length (removal of the `hit_max` " +"parameter)." +msgstr "" + +#: ../../page.rst:2088 9a6ca09716d44c778fbec65e72e939e1 +msgid "" +"If a word is **hyphenated** at a line break, it will still be found. E.g." +" the needle \"method\" will be found even if hyphenated as \"meth-od\" at" +" a line break, and two rectangles will be returned: one surrounding " +"\"meth\" (without the hyphen) and another one surrounding \"od\"." +msgstr "" + +#: ../../page.rst:2092 662052c0c33a4e73acb81cb5192fe61d +msgid "" +"The method supports multi-line text marker annotations: you can use the " +"full returned list as **one single** parameter for creating the " +"annotation." +msgstr "" + +#: ../../page.rst:2096 d72d3688d1fe45db834e99d826ea81cb +msgid "" +"There is a tricky aspect: the search logic regards **contiguous multiple " +"occurrences** of *needle* as one: assuming *needle* is \"abc\", and the " +"page contains \"abc\" and \"abcabc\", then only **two** rectangles will " +"be returned, one for \"abc\", and a second one for \"abcabc\"." +msgstr "" + +#: ../../page.rst:2097 f5397b6783a14dba9b1af693cf68e148 +msgid "" +"You can always use :meth:`Page.get_textbox` to check what text actually " +"is being surrounded by each rectangle." +msgstr "" + +#: ../../page.rst:2099 ebe71ed021b74b83bd40b6780f483fa1 +msgid "" +"A feature repeatedly asked for is supporting **regular expressions** when" +" specifying the `\"needle\"` string: **There is no way to do this.** If " +"you need something in that direction, first extract text in the desired " +"format and then subselect the result by matching with some regex pattern." +" Here is an example for matching words::" +msgstr "" + +#: ../../page.rst:2105 6bfe1b333a774f6484753f3cc3b8da11 +msgid "" +"The `matches` list will contain the words matching the given pattern. In " +"the same way you can select `span[\"text\"]` from the output of " +"`page.get_text(\"dict\")`." +msgstr "" + +#: ../../page.rst:2109 8c1e32a30f8c426abf7dd87f6070bb8d +msgid "" +"Changed in v1.18.2: added `clip` parameter. Remove `hit_max` parameter. " +"Add default \"dehyphenate\"." +msgstr "" + +#: ../../page.rst:2110 110f4cf460aa4ed6bec6ae04a6620637 +msgid "Changed in v1.19.0: added `textpage` parameter." +msgstr "" + +#: ../../page.rst:2117 313a785cdc6f421b99568769e2acd45e +msgid "" +"PDF only: Change the physical page dimension by setting :data:`mediabox` " +"in the page's object definition." +msgstr "" + +#: ../../page.rst:2119 8d1e74b016eb4617852f1fe9b546a5f9 +msgid "the new :data:`mediabox` value." +msgstr "" + +#: ../../page.rst:2121 fc8bf8612c1b4ec497ac37834d417213 +msgid "" +"This method also removes the page's other (optional) rectangles " +"(:data:`cropbox`, ArtBox, TrimBox and Bleedbox) to prevent inconsistent " +"situations. This will cause those to assume their default values." +msgstr "" + +#: ../../page.rst:2123 97c1c0ea8a6b47b2a9ddbc93131b0204 +msgid "" +"For non-empty pages this may have undesired effects, because the location" +" of all content depends on this value and will therefore change position " +"or even disappear." +msgstr "" + +#: ../../page.rst:2127 91c689a47be5437e8dac4417d5dd0848 +msgid "New in v1.16.13" +msgstr "" + +#: ../../page.rst:2128 877c5c9a76684e38a46ebe2fbcc5ca68 +msgid "Changed in v1.19.4: remove all other rectangle definitions." +msgstr "" + +#: ../../page.rst:2135 14fdd70511ec4ff2913a0491f7678978 +msgid "PDF only: change the visible part of the page." +msgstr "" + +#: ../../page.rst:2137 7fa9c11b08f441dc87a46fc4dbf98182 +msgid "" +"the new visible area of the page. Note that this **must** be specified in" +" **unrotated coordinates**, not empty, nor infinite and be completely " +"contained in the :attr:`Page.mediabox`." +msgstr "" + +#: ../../page.rst:2139 25df1b49bf0a4d80891be253a545cf76 +msgid "" +"After execution **(if the page is not rotated)**, :attr:`Page.rect` will " +"equal this rectangle, but be shifted to the top-left position (0, 0) if " +"necessary. Example session:" +msgstr "" + +#: ../../page.rst:2170 2c53f6bfb41d4389ac83aca28049d92c +msgid "" +"PDF only: Set the resp. rectangle in the page object. For the meaning of " +"these objects see :ref:`AdobeManual`, page 77. Parameter and restrictions" +" are the same as for :meth:`Page.set_cropbox`." +msgstr "" + +#: ../../page.rst:2174 51f449db2a3c44e189cf5fca9f485392 +msgid "New in v1.19.4" +msgstr "" + +#: ../../page.rst:2180 d0971433c9404486893ed8f9b8260a5e +msgid "" +"Contains the rotation of the page in degrees (always 0 for non-PDF " +"types). This is a copy of the value in the PDF file. The PDF " +"documentation says:" +msgstr "" + +#: ../../page.rst:2182 e4d847e602314207b08e68c851df6531 +msgid "" +"*\"The number of degrees by which the page should be rotated clockwise " +"when displayed or printed. The value must be a multiple of 90. Default " +"value: 0.\"*" +msgstr "" + +#: ../../page.rst:2184 f95f2857345c4ab1b2ddf5e5bc9a02d7 +msgid "" +"In PyMuPDF, we make sure that this attribute is always one of 0, 90, 180 " +"or 270." +msgstr "" + +#: ../../page.rst:2190 61f3d0cf602c4013b227d09247d5dea4 +msgid "" +"Contains the top-left point of the page's `/CropBox` for a PDF, otherwise" +" *Point(0, 0)*." +msgstr "" + +#: ../../page.rst:2192 ../../page.rst:2216 7816845ecf174917a69749a210307f96 +#: a70e370c3c004de999a9efabfc433212 +msgid ":ref:`Point`" +msgstr "" + +#: ../../page.rst:2196 6c185f908ac141b989b3b83d6d62f20c +msgid "" +"The page's `/CropBox` for a PDF. Always the **unrotated** page rectangle " +"is returned. For a non-PDF this will always equal the page rectangle." +msgstr "" + +#: ../../page.rst:2198 d7f9ff9e1ee9469888ae5361c32a62ff +msgid "" +"In PDF, the relationship between `/MediaBox`, `/CropBox` and page " +"rectangle may sometimes be confusing, please do lookup the glossary for " +":data:`MediaBox`." +msgstr "" + +#: ../../page.rst:2208 d9a54722197a46059242db3e1d3a7319 +msgid "" +"The page's `/ArtBox`, `/BleedBox`, `/TrimBox`, respectively. If not " +"provided, defaulting to :attr:`Page.cropbox`." +msgstr "" + +#: ../../page.rst:2214 23b408953e2a4e86961ce70710f0fac0 +msgid "" +"Contains the width and height of the page's :attr:`Page.mediabox` for a " +"PDF, otherwise the bottom-right coordinates of :attr:`Page.rect`." +msgstr "" + +#: ../../page.rst:2220 3435a4b6c7174525b0cb781fce4321ef +msgid "The page's :data:`mediabox` for a PDF, otherwise :attr:`Page.rect`." +msgstr "" + +#: ../../page.rst:2224 4df8f5c334964811a7137810e8a527a8 +msgid "" +"For most PDF documents and for **all other document types**, `page.rect " +"== page.cropbox == page.mediabox` is true. However, for some PDFs the " +"visible page is a true subset of :data:`mediabox`. Also, if the page is " +"rotated, its `Page.rect` may not equal `Page.cropbox`. In these cases the" +" above attributes help to correctly locate page elements." +msgstr "" + +#: ../../page.rst:2228 d7f34f4307fe42d2b00939a7c2d9b9d6 +msgid "" +"This matrix translates coordinates from the PDF space to the MuPDF space." +" For example, in PDF `/Rect [x0 y0 x1 y1]` the pair (x0, y0) specifies " +"the **bottom-left** point of the rectangle -- in contrast to MuPDF's " +"system, where (x0, y0) specify top-left. Multiplying the PDF coordinates " +"with this matrix will deliver the (Py-) MuPDF rectangle version. " +"Obviously, the inverse matrix will again yield the PDF rectangle." +msgstr "" + +#: ../../page.rst:2230 ../../page.rst:2246 699d02c9b35a4d618e67346779cd3952 +#: 6d0fd753260b4a269b9592b9ebba1e22 +msgid ":ref:`Matrix`" +msgstr "" + +#: ../../page.rst:2236 a5de7aa7bb6c40b4af9ab822d2fe0c61 +msgid "" +"These matrices may be used for dealing with rotated PDF pages. When " +"adding / inserting anything to a PDF page, the coordinates of the " +"**unrotated** page are always used. These matrices help translating " +"between the two states. Example: if a page is rotated by 90 degrees -- " +"what would then be the coordinates of the top-left Point(0, 0) of an A4 " +"page?" +msgstr "" + +#: ../../page.rst:2250 46775a2e1ffd4cc3a43e6c5596c0ead9 +msgid "Contains the first :ref:`Link` of a page (or ``None``)." +msgstr "" + +#: ../../page.rst:2256 0768580c4efd4f2d93de5acfbd002a40 +msgid "Contains the first :ref:`Annot` of a page (or ``None``)." +msgstr "" + +#: ../../page.rst:2262 4a694bc3ae1c4722b7ff991244d6257b +msgid "Contains the first :ref:`Widget` of a page (or ``None``)." +msgstr "" + +#: ../../page.rst:2268 7d1c6125f8284e8c9f39a10aa30103aa +msgid "The page number." +msgstr "" + +#: ../../page.rst:2274 b2669057819b4d6e916eceb404f4d4a6 +msgid "The owning document object." +msgstr "" + +#: ../../page.rst:2276 3c750c7bd6f64a0f942eb49c6ba43e3e +msgid ":ref:`Document`" +msgstr "" + +#: ../../page.rst:2281 80a0d7ab5d684176876073a103e2c4dd +msgid "" +"Contains the rectangle of the page. Same as result of " +":meth:`Page.bound()`." +msgstr "" + +#: ../../page.rst:2287 b211572eb97c4f9288b72564a3087914 +msgid "The page's PDF :data:`xref`. Zero if not a PDF." +msgstr "" + +#: ../../page.rst:2296 330f7b7647944c63ac3bc3ca6bf3f7ac +msgid "Description of *get_links()* Entries" +msgstr "" + +#: ../../page.rst:2297 2648f2152b014814987e0dc0b7cfaa91 +msgid "" +"Each entry of the :meth:`Page.get_links` list is a dictionary with the " +"following keys:" +msgstr "" + +#: ../../page.rst:2299 e5c4e6907f6748d9b291f48ef9be9969 +msgid "" +"*kind*: (required) an integer indicating the kind of link. This is one " +"of *LINK_NONE*, *LINK_GOTO*, *LINK_GOTOR*, *LINK_LAUNCH*, or *LINK_URI*. " +"For values and meaning of these names refer to :ref:`linkDest Kinds`." +msgstr "" + +#: ../../page.rst:2301 b82063bc31e64ff5910c18796372ade3 +msgid "" +"*from*: (required) a :ref:`Rect` describing the \"hot spot\" location on" +" the page's visible representation (where the cursor changes to a hand " +"image, usually)." +msgstr "" + +#: ../../page.rst:2303 5bf55439f5024bf3b33ca376989d47ae +msgid "" +"*page*: a 0-based integer indicating the destination page. Required for " +"*LINK_GOTO* and *LINK_GOTOR*, else ignored." +msgstr "" + +#: ../../page.rst:2305 65bd0136b92944d9a0a10ef2ee48ace2 +msgid "" +"*to*: either a *pymupdf.Point*, specifying the destination location on " +"the provided page, default is *pymupdf.Point(0, 0)*, or a symbolic " +"(indirect) name. If an indirect name is specified, *page = -1* is " +"required and the name must be defined in the PDF in order for this to " +"work. Required for *LINK_GOTO* and *LINK_GOTOR*, else ignored." +msgstr "" + +#: ../../page.rst:2307 6868a28eed0f4944b3281fe9952cc61d +msgid "" +"*file*: a string specifying the destination file. Required for " +"*LINK_GOTOR* and *LINK_LAUNCH*, else ignored." +msgstr "" + +#: ../../page.rst:2309 06a46ce37a71407f9de78e7a1c830883 +msgid "" +"*uri*: a string specifying the destination internet resource. Required " +"for *LINK_URI*, else ignored. You should make sure to start this string " +"with an unambiguous substring, that classifies the subtype of the URL, " +"like `\"http://\"`, `\"https://\"`, `\"file://\"`, `\"ftp://\"`, " +"`\"mailto:\"`, etc. Otherwise your browser will try to interpret the text" +" and come to unwanted / unexpected conclusions about the intended URL " +"type." +msgstr "" + +#: ../../page.rst:2311 d09b61a1ccd94c4782bb9e12c1371ed4 +msgid "" +":data:`xref`: an integer specifying the PDF :data:`xref` of the link " +"object. Do not change this entry in any way. Required for link deletion " +"and update, otherwise ignored. For non-PDF documents, this entry contains" +" *-1*. It is also *-1* for **all** entries in the *get_links()* list, if " +"**any** of the links is not supported by MuPDF - see " +":ref:`notes_on_supporting_links`." +msgstr "" + +#: ../../page.rst:2316 ca9d2e5b20dc4945ab5c36ba5fe32ee0 +msgid "Notes on Supporting Links" +msgstr "" + +#: ../../page.rst:2317 153628a3a4a646ffa511f00e6bf330e6 +msgid "" +"MuPDF's support for links has changed in **v1.10a**. These changes affect" +" link types :data:`LINK_GOTO` and :data:`LINK_GOTOR`." +msgstr "" + +#: ../../page.rst:2320 ac15e6ee350d44a8a44de4197833bb6f +msgid "" +"Reading (pertains to method *get_links()* and the *first_link* property " +"chain)" +msgstr "" + +#: ../../page.rst:2322 0d5ea7869b084e17a975066e947fd27c +msgid "" +"If MuPDF detects a link to another file, it will supply either a " +"*LINK_GOTOR* or a *LINK_LAUNCH* link kind. In case of *LINK_GOTOR* " +"destination details may either be given as page number (eventually " +"including position information), or as an indirect destination." +msgstr "" + +#: ../../page.rst:2324 8460c5420845442387f0514e8c1cbf00 +msgid "" +"If an indirect destination is given, then this is indicated by *page = " +"-1*, and *link.dest.dest* will contain this name. The dictionaries in the" +" *get_links()* list will contain this information as the *to* value." +msgstr "" + +#: ../../page.rst:2326 8abfed4c51c3411799b1a19205d7ce7e +msgid "" +"**Internal links are always** of kind *LINK_GOTO*. If an internal link " +"specifies an indirect destination, it **will always be resolved** and the" +" resulting direct destination will be returned. Names are **never " +"returned for internal links**, and undefined destinations will cause the " +"link to be ignored." +msgstr "" + +#: ../../page.rst:2329 5b18953ee4ad4219b62275b81fbc5ddf +msgid "Writing" +msgstr "" + +#: ../../page.rst:2331 0de4046ec1434f2caf33d1d0f937dc46 +msgid "" +"PyMuPDF writes (updates, inserts) links by constructing and writing the " +"appropriate PDF object **source**. This makes it possible to specify " +"indirect destinations for *LINK_GOTOR* **and** *LINK_GOTO* link kinds " +"(pre *PDF 1.2* file formats are **not supported**)." +msgstr "" + +#: ../../page.rst:2333 44475c60d0bb4e1896c7d6d9f54c1bc4 +msgid "" +"If a *LINK_GOTO* indirect destination specifies an undefined name, this " +"link can later on not be found / read again with MuPDF / PyMuPDF. Other " +"readers however **will** detect it, but flag it as erroneous." +msgstr "" + +#: ../../page.rst:2335 e97441d500fd4cbca093072001464735 +msgid "" +"Indirect *LINK_GOTOR* destinations can in general of course not be " +"checked for validity and are therefore **always accepted**." +msgstr "" + +#: ../../page.rst:2337 f91d81599f744ef191138bdba01275a1 +msgid "" +"**Example: How to insert a link pointing to another page in the same " +"document**" +msgstr "" + +#: ../../page.rst:2339 253b3fcbe5b34a058e8cce4baddbe409 +msgid "" +"Determine the rectangle on the current page, where the link should be " +"placed. This may be the bbox of an image or some text." +msgstr "" + +#: ../../page.rst:2341 75763ee86eb04ffbbe5b886eebd09616 +msgid "" +"Determine the target page number (\"pno\", 0-based) and a :ref:`Point` on" +" it, where the link should be directed to." +msgstr "" + +#: ../../page.rst:2343 da45c4d7d2cf48049d7c7f88370a9dba +msgid "" +"Create a dictionary `d = {\"kind\": pymupdf.LINK_GOTO, \"page\": pno, " +"\"from\": bbox, \"to\": point}`." +msgstr "" + +#: ../../page.rst:2345 60e5b2f417a74a0c97ba824efdaefd93 +msgid "Execute `page.insert_link(d)`." +msgstr "" + +#: ../../page.rst:2349 0b3e910653ec4d80abba445bbb13921a +msgid "Homologous Methods of :ref:`Document` and :ref:`Page`" +msgstr "" + +#: ../../page.rst:2350 26d9e6f47ecb405283f2b5a81a7906f3 +msgid "" +"This is an overview of homologous methods on the :ref:`Document` and on " +"the :ref:`Page` level." +msgstr "" + +#: ../../page.rst:2353 30f1c80e96954d7a8d908b00de01d053 +msgid "**Document Level**" +msgstr "" + +#: ../../page.rst:2353 d3484b7b4dab482587ce24b47380e9f6 +msgid "**Page Level**" +msgstr "" + +#: ../../page.rst:2355 749f5d81a505410c95dfc298f9321878 +msgid ":meth:`Document.get_page_fonts`" +msgstr "" + +#: ../../page.rst:2356 41cb520def50422cada301e1c49c5f3d +msgid ":meth:`Document.get_page_images`" +msgstr "" + +#: ../../page.rst:2357 8a690ea87be148078b0576d999f057fb +msgid ":meth:`Document.get_page_pixmap`" +msgstr "" + +#: ../../page.rst:2358 984984f6cc6d4a9498c4a27025b79202 +msgid ":meth:`Document.get_page_text`" +msgstr "" + +#: ../../page.rst:2359 49d5563cc8e34fc490cedcd93dcf899f +msgid ":meth:`Document.search_page_for`" +msgstr "" + +#: ../../page.rst:2364 77c9d1d7bbef4177962336adc5064826 +msgid "" +"Most document methods (left column) exist for convenience reasons, and " +"are just wrappers for: *Document[pno].*. So they **load and " +"discard the page** on each execution." +msgstr "" + +#: ../../page.rst:2366 e0140280aedb4565a755312c2fe002cc +msgid "" +"However, the first two methods work differently. They only need a page's " +"object definition statement - the page itself will **not** be loaded. So " +"e.g. :meth:`Page.get_fonts` is a wrapper the other way round and defined " +"as follows: `page.get_fonts` == " +"`page.parent.get_page_fonts(page.number)`." +msgstr "" + +#: ../../page.rst:2369 3b3743f5a8784405b026dc4dccf459b4 +msgid "" +"When calling the :ref:`Document` equivalent methods then the page number " +"is sent through as a parameter, e.g.:" +msgstr "" + +#: ../../page.rst:2371 23d4fa19cff54bf3a4082b4375479d9c +msgid "`Document.get_page_images(pno)` or `Document.get_page_text(pno)`" +msgstr "" + +#: ../../page.rst:2375 7a08e4eae20c4587b61464662be5018f +msgid "" +"The page number parameter, ``pno``, is a 0-based integer `-∞ < pno < " +"page_count`." +msgstr "" + +#: ../../page.rst:2382 0e56aad36ef2434eaaa062ac4d6b1078 +msgid "Tables and Related Classes" +msgstr "" + +#: ../../page.rst:2384 630834d3fb7f49fabf1df19c954b5e8e +msgid "" +"The `TableFinder` class is returned by :meth:`Page.find_tables` and has " +"related classes as follows:" +msgstr "" + +#: ../../page.rst:2389 fefc2003da7640af95d0c8fe2fa4ae0b +msgid "" +"An object always returned by :meth:`Page.find_tables`. Attributes of " +"interest:" +msgstr "" + +#: ../../page.rst:2393 b1facb7319d64fe1814982a94e08e694 +msgid "" +"A list of :class:`Table` objects, each of which represents a table found " +"on the page. An empty list if no tables are found." +msgstr "" + +#: ../../page.rst:2397 d9c68273a7ed4f9389de63201f1329e4 +msgid "A reference to the :ref:`Page` object." +msgstr "" + +#: ../../page.rst:2399 ../../page.rst:2411 672ced5c87644dc2ab8425cfb3735842 +#: a46083173b284a9a95fec38e2ff752ba +msgid ":ref:`Page`" +msgstr "" + +#: ../../page.rst:2404 09993a5d0359435c82005cbe7053461a +msgid "An object representing a table found on the page." +msgstr "" + +#: ../../page.rst:2409 334f29b68048440bb2c92ed1d075c7e4 +msgid "A back-reference to the owning page." +msgstr "" + +#: ../../page.rst:2415 fa2948c2cbd84d36bc110ba375ce9dcf +msgid "An array of `Rect` objects for each cell in the table." +msgstr "" + +#: ../../page.rst:2417 ../../page.rst:2454 ../../page.rst:2461 +#: ../../page.rst:2498 ../../page.rst:2504 0b50c46907a6406dbbfcc4a9d7d842c0 +#: 1f804a3ec218447b9ebe0a4eb0662c6c 6ab7e6b040ab43b3a52010e0236f593d +#: 89f000de4e84477dac230df671fd8a17 ff379839dfcf4dc09a1fc2dd862b6e83 +msgid "list" +msgstr "" + +#: ../../page.rst:2422 fff4c850223145f2b09c22904bdecb3d +msgid "A `TableHeader` object." +msgstr "" + +#: ../../page.rst:2424 16480aa7bae54a44b65eb4a3ad51ca39 +msgid "`TableHeader`" +msgstr "" + +#: ../../page.rst:2429 cb817f7210a04ab19d07808de14accbe +msgid "The bounding box of all cells of the table header." +msgstr "" + +#: ../../page.rst:2438 e42d4b4d7ae94e84bbba1635affb7264 +msgid "Number of rows in the table." +msgstr "" + +#: ../../page.rst:2445 dab42295898940e289ac06b2d6448eb3 +msgid "Number of columns in the table." +msgstr "" + +#: ../../page.rst:2452 c32a46770fa84ab8a8442c7324cca9b8 +msgid "An array of `TableRow` objects for each row in the table." +msgstr "" + +#: ../../page.rst:2459 5e94d9003fcf4a0c9bc37419ed453180 +msgid "Extracts table cell text data into a list." +msgstr "" + +#: ../../page.rst:2465 4f9105edf01140a8bcac5f19a880eabb +msgid "Extracts table data into Markdown text format." +msgstr "" + +#: ../../page.rst:2468 3fa618e2424d4b4fb55e83275cc442b9 +msgid "If ``True`` then markdown syntax is removed from cell content." +msgstr "" + +#: ../../page.rst:2469 888238e384834e50bf7109918e9694c5 +msgid "" +"If ``True`` then cell content `None` is replaced by the values above " +"(columns) or left (rows) in an effort to approximate row and columns " +"spans." +msgstr "" + +#: ../../page.rst:2472 a454ab9fb7dc493797f334048225e316 +msgid "string" +msgstr "" + +#: ../../page.rst:2477 0c321bd8063c4c9f83179c7cc7985e85 +msgid "" +"Return a `pandas DataFrame `_ " +"`DataFrame `_ " +"version of the table." +msgstr "" + +#: ../../page.rst:2479 596d18b7bb884f478f918f7acedadd09 +msgid "pandas DataFrame" +msgstr "" + +#: ../../page.rst:2486 127cceead5c244e8a61282d74b663861 +msgid "Dedicated class for table headers." +msgstr "" + +#: ../../page.rst:2490 a954a6b14acd4faf9c8748ad7f616d9c +msgid "" +"The bounding box of the union of cells belonging to the table header, " +"given as a tuple (x0, y0, x1, y1). This rectangle contains all table " +"header cells." +msgstr "" + +#: ../../page.rst:2496 18255190a91e49549ec8607494bcfad6 +msgid "A list of tuples for each bbox of a column header." +msgstr "" + +#: ../../page.rst:2502 bbadce9734a54ebf8f060fda7b75f154 +msgid "A list of strings with column header text." +msgstr "" + +#: ../../page.rst:2508 d0766391701c4fbcbfc1afe7ab941644 +msgid "A boolean indicating whether the header is outside the table cells." +msgstr "" + +#: ../../page.rst:2510 bf9a41b295214c1d8a33fbf5ff2d0674 +msgid "`bool`" +msgstr "" + +#: ../../page.rst:2515 7e240363ad36487abb9c0b9048455344 +msgid "Dedicated class for table rows." +msgstr "" + +#: ../../page.rst:2522 f121b788e07f4404822f89f64a76f622 +msgid "Footnotes" +msgstr "" + +#: ../../page.rst:2523 a6e7a54deb36449583b6c8f5faa956b1 +msgid "" +"If your existing code already uses the installed base name as a font " +"reference (as it was supported by PyMuPDF versions earlier than 1.14), " +"this will continue to work." +msgstr "" + +#: ../../page.rst:2525 041b50e8dc5a4737947d980e5bcdfadc +msgid "" +"Not all PDF reader software (including internet browsers and office " +"software) display all of these fonts. And if they do, the difference " +"between the **serifed** and the **non-serifed** version may hardly be " +"noticeable. But serifed and non-serifed versions lead to different " +"installed base fonts, thus providing an option to be displayable with " +"your specific PDF viewer." +msgstr "" + +#: ../../page.rst:2527 d0a153a29bcf4cc7bbc8a126f31438ec +msgid "" +"Not all PDF readers display these fonts at all. Some others do, but use a" +" wrong character spacing, etc." +msgstr "" + +#: ../../page.rst:2529 4c36bdbe56f14fbd93778c7b846894f0 +msgid "" +"You are generally free to choose any of the :ref:`mupdficons` you " +"consider adequate." +msgstr "" + +#: ../../page.rst:2531 f0955458c88b48f0bc91091ffac7934c +msgid "" +"The previous algorithm caused images to be **shrunk** to this " +"intersection. Now the image can be anywhere on :attr:`Page.mediabox`, " +"potentially being invisible or only partially visible if the cropbox " +"(representing the visible page part) is smaller." +msgstr "" + +#: ../../page.rst:2533 ee4935ee06214192915f0a7d40c3c57d +msgid "" +"If you need to also see annotations or fields in the target page, you can" +" convert the source PDF using :meth:`Document.bake`. The underlying MuPDF" +" function of that method will convert these objects to normal page " +"content. Then use :meth:`Page.show_pdf_page` with the converted PDF page." +msgstr "" + +#: ../../page.rst:2535 e97c4c82263941379759ee87f2b26a7d +msgid "" +"In PDF, an area enclosed by some lines or curves can have a property " +"called \"orientation\". This is significant for switching on or off the " +"fill color of that area when there exist multiple area overlaps - see " +"discussion in method :meth:`Shape.finish` using the \"non-zero winding " +"number\" rule. While orientation of curves, quads, triangles and other " +"shapes enclosed by lines always was detectable, this has been impossible " +"for \"re\" (rectangle) items in the past. Adding the orientation " +"parameter now delivers the missing information." +msgstr "" + +#: ../../page.rst:2537 8612026f5b474906aa96aa5c9f0fe43a +msgid "" +"Hyphenation detection simply means that if the last character of a line " +"is \"-\", it will be assumed to be a continuation character. That " +"character will not be found by text searching with its default flag " +"setting. Please take note, that a MuPDF *line* may not always be what you" +" expect: words separated by overly large gaps (e.g. caused by text " +"justification) may constitute separate MuPDF lines. If then any of these " +"words ends with a hyphen, it will only be found by text searching if " +"hyphenation is switched off." +msgstr "" + +#: ../../page.rst:2539 f928aef1dad441f1a458d6f312a66855 +msgid "" +"Objects inside the source page, like images, text or drawings, are never " +"aware of whether their owning page now is under OC control inside the " +"target PDF. If source page objects are OC-controlled in the source PDF, " +"then this will not be retained on the target: they will become " +"unconditionally visible." +msgstr "" + +#: ../../page.rst:2541 fe1cfbaa56a3485cb70119f33c3e64d5 +msgid "" +"This value is always 96, the default of the PDF interpreter. It **does " +"not reflect** the resolution of the image itself. If you need the image's" +" resolution, use the :meth:`Pixmap.xres` and :meth:`Pixmap.yres` " +"attributes of the :ref:`Pixmap` created from the image binary." +msgstr "" + +#: ../../footer.rst:46 ada5e78849734f1196f922af9c2cb075 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pixmap.mo b/docs/locales/ko/LC_MESSAGES/pixmap.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pixmap.po b/docs/locales/ko/LC_MESSAGES/pixmap.po new file mode 100644 index 000000000..7f9a2f492 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pixmap.po @@ -0,0 +1,1826 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 77cdad9d379a4a459fb8f61a5126752b +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 32cc68ce63c240bdb7a2fdfe4d927af7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 db64d0baaca745e7910c08e63ef36441 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pixmap.rst:7 e0494509a30b4c1991cc5e57de63e15b +msgid "Pixmap" +msgstr "" + +#: ../../pixmap.rst:9 32dd6915408a408ea1d9db1812927e46 +msgid "" +"Pixmaps (\"pixel maps\") are objects at the heart of MuPDF's rendering " +"capabilities. They represent plane rectangular sets of pixels. Each pixel" +" is described by a number of bytes (\"components\") defining its color, " +"plus an optional alpha byte defining its transparency." +msgstr "" + +#: ../../pixmap.rst:11 0ae7623584d34b0793a6b1689e2e9ff9 +msgid "" +"In PyMuPDF, there exist several ways to create a pixmap. Except the first" +" one, all of them are available as overloaded constructors. A pixmap can " +"be created ..." +msgstr "" + +#: ../../pixmap.rst:13 73ba045692a74b84a13ce27f369588ef +msgid "from a document page (method :meth:`Page.get_pixmap`)" +msgstr "" + +#: ../../pixmap.rst:14 d9db8727d6f34c5ea67a95212b48a901 +msgid "empty, based on :ref:`Colorspace` and :ref:`IRect` information" +msgstr "" + +#: ../../pixmap.rst:15 3bd37a5d119449b79b2df8e6183899b2 +msgid "from a file" +msgstr "" + +#: ../../pixmap.rst:16 6c2ae5d2cf9e4e9c8a85876940ac2c65 +msgid "from an in-memory image" +msgstr "" + +#: ../../pixmap.rst:17 985854117e77421ab5c08305ad9a7ebc +msgid "from a memory area of plain pixels" +msgstr "" + +#: ../../pixmap.rst:18 51817c0b224a4d79becc251812e52d59 +msgid "from an image inside a PDF document" +msgstr "" + +#: ../../pixmap.rst:19 c50a8dabd5de4315af9f49bd6f4e3300 +msgid "as a copy of another pixmap" +msgstr "" + +#: ../../pixmap.rst:21 a40603d11eae465f98c51d914e3f60f0 +msgid "" +"A number of image formats is supported as input for points 3. and 4. " +"above. See section :ref:`ImageFiles`." +msgstr "" + +#: ../../pixmap.rst:23 3bdce298316f4c59aea2dcf926ba360d +msgid "" +"Have a look at the :ref:`FAQ` section to see some pixmap usage \"at " +"work\"." +msgstr "" + +#: ../../pixmap.rst:26 c77d9f0a0ac441569275429f77da5352 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../pixmap.rst:26 0c5aa62f906e4af38c4f3f15dbd58acb +msgid "**Short Description**" +msgstr "" + +#: ../../pixmap.rst:28 2202b52b548143ffb14aef4ce3088e4e +msgid ":meth:`Pixmap.clear_with`" +msgstr "" + +#: ../../pixmap.rst:28 f8c6fd586d294e3194f9966984db1cd7 +msgid "clear parts of the pixmap" +msgstr "" + +#: ../../pixmap.rst:29 74887257fa9a4ce4bccdc2c054561ab8 +msgid ":meth:`Pixmap.color_count`" +msgstr "" + +#: ../../pixmap.rst:29 266d94deb7124050adc51b2d0925c285 +msgid "determine used colors" +msgstr "" + +#: ../../pixmap.rst:30 6fa71e0e57754c778d2a793a2d4b5e0c +msgid ":meth:`Pixmap.color_topusage`" +msgstr "" + +#: ../../pixmap.rst:30 40a15ae449a04a5fa2c777c1ac0a6175 +msgid "determine share of most used color" +msgstr "" + +#: ../../pixmap.rst:31 b915ce033980496eb00292ada4fbcca5 +msgid ":meth:`Pixmap.copy`" +msgstr "" + +#: ../../pixmap.rst:31 8e57cd2829fa414abc482e80c6d4c4d9 +msgid "copy parts of another pixmap" +msgstr "" + +#: ../../pixmap.rst:32 112981a34c4348f8ad862d81cdc02514 +msgid ":meth:`Pixmap.gamma_with`" +msgstr "" + +#: ../../pixmap.rst:32 f42a9b37c4ac4000a006188d993c87e5 +msgid "apply a gamma factor to the pixmap" +msgstr "" + +#: ../../pixmap.rst:33 01c950df9e2145aa8d39d7760c67ad87 +msgid ":meth:`Pixmap.invert_irect`" +msgstr "" + +#: ../../pixmap.rst:33 8fd44b50652147ff824e5fc414ff6a30 +msgid "invert the pixels of a given area" +msgstr "" + +#: ../../pixmap.rst:34 516fe80e3c4a459a81a150dc6a462f8e +msgid ":meth:`Pixmap.pdfocr_save`" +msgstr "" + +#: ../../pixmap.rst:34 ../../pixmap.rst:35 67e410a8f8c842c1944b038c5708de2d +#: f38b40a1d99c4c509644c872d19b87e2 +msgid "save the pixmap as an OCRed 1-page PDF" +msgstr "" + +#: ../../pixmap.rst:35 be86eecb9ae84058896ab1db4a2fcab1 +msgid ":meth:`Pixmap.pdfocr_tobytes`" +msgstr "" + +#: ../../pixmap.rst:36 b0881e3fa8064b569e1476c50325b3d7 +msgid ":meth:`Pixmap.pil_image`" +msgstr "" + +#: ../../pixmap.rst:36 6075a73ecdcb46979d4b836f39403d5f +msgid "create a Pillow Image" +msgstr "" + +#: ../../pixmap.rst:37 c71cca896c4e47509c4fa0e362fa044c +msgid ":meth:`Pixmap.pil_save`" +msgstr "" + +#: ../../pixmap.rst:37 4be536342cb047aeb0a6b64adbba1e9a +msgid "save as a Pillow Image" +msgstr "" + +#: ../../pixmap.rst:38 52b8400d5cce434b87e23399f61d2117 +msgid ":meth:`Pixmap.pil_tobytes`" +msgstr "" + +#: ../../pixmap.rst:38 bafc4631127f4561936ab5d1e6403a2d +msgid "write to `bytes` as a Pillow Image" +msgstr "" + +#: ../../pixmap.rst:39 4002db687ffc4feabe3a41f2274b7804 +msgid ":meth:`Pixmap.pixel`" +msgstr "" + +#: ../../pixmap.rst:39 efb78dfb56524049a7580e3a15723114 +msgid "return the value of a pixel" +msgstr "" + +#: ../../pixmap.rst:40 e0ffa2a456944476bb6984b064566f95 +msgid ":meth:`Pixmap.save`" +msgstr "" + +#: ../../pixmap.rst:40 7f4131a6b70d41cd802f09e3f4f6f11f +msgid "save the pixmap in a variety of formats" +msgstr "" + +#: ../../pixmap.rst:41 23956dccd6e94052aef51929b1c393dc +msgid ":meth:`Pixmap.set_alpha`" +msgstr "" + +#: ../../pixmap.rst:41 3979119c35f341c694e03dd5db7a0115 +msgid "set alpha values" +msgstr "" + +#: ../../pixmap.rst:42 80aa084bf73c4f61abbf2f808d42bdcd +msgid ":meth:`Pixmap.set_dpi`" +msgstr "" + +#: ../../pixmap.rst:42 881510d8c71545b59d91fb5dac173605 +msgid "set the image resolution" +msgstr "" + +#: ../../pixmap.rst:43 af00886d005e4a1890d7b7789b93e7e7 +msgid ":meth:`Pixmap.set_origin`" +msgstr "" + +#: ../../pixmap.rst:43 7e6045d9838046cea1cd1fcb38a15dab +msgid "set pixmap x,y values" +msgstr "" + +#: ../../pixmap.rst:44 cb25eecee8af4917ab427d3cf303152f +msgid ":meth:`Pixmap.set_pixel`" +msgstr "" + +#: ../../pixmap.rst:44 23d1909be60a4b269aaec2547ae2aa05 +msgid "set color and alpha of a pixel" +msgstr "" + +#: ../../pixmap.rst:45 72b4d710dc894939936c377380bbc22e +msgid ":meth:`Pixmap.set_rect`" +msgstr "" + +#: ../../pixmap.rst:45 0f7af78460a4450da9d9108517b4d4c4 +msgid "set color and alpha of all pixels in a rectangle" +msgstr "" + +#: ../../pixmap.rst:46 b791b993ad61409eaef1d0b360847ffc +msgid ":meth:`Pixmap.shrink`" +msgstr "" + +#: ../../pixmap.rst:46 38e21b2c7aa8493e8bb7266e1e835f69 +msgid "reduce size keeping proportions" +msgstr "" + +#: ../../pixmap.rst:47 be56d7fc15e24cf2826c82badd69df56 +msgid ":meth:`Pixmap.tint_with`" +msgstr "" + +#: ../../pixmap.rst:47 d5a1e740218c41ceb31d912cae43599f +msgid "tint the pixmap" +msgstr "" + +#: ../../pixmap.rst:48 408bd07e5e004c53845a34ccb73684f6 +msgid ":meth:`Pixmap.tobytes`" +msgstr "" + +#: ../../pixmap.rst:48 dbfd2cd88a2e40689877d688108593b5 +msgid "return a memory area in a variety of formats" +msgstr "" + +#: ../../pixmap.rst:49 73ad7e8e412146939a933bc554653bd9 +msgid ":meth:`Pixmap.warp`" +msgstr "" + +#: ../../pixmap.rst:49 27dcdd34ccd6434c8be2f3d0cab9f361 +msgid "return a pixmap made from a quad inside" +msgstr "" + +#: ../../pixmap.rst:50 85defbb4523445e9bfc92785c42fcb0b +msgid ":attr:`Pixmap.alpha`" +msgstr "" + +#: ../../pixmap.rst:50 f9f7e74d1a854ce584726e3236d915a4 +msgid "transparency indicator" +msgstr "" + +#: ../../pixmap.rst:51 fbf1760092864dcf8f5566ac85074c05 +msgid ":attr:`Pixmap.colorspace`" +msgstr "" + +#: ../../pixmap.rst:51 48b501a974724e6cadfe58ebbfebeb9a +msgid "pixmap's :ref:`Colorspace`" +msgstr "" + +#: ../../pixmap.rst:52 b766c11c9d60491bb1cd9e4c8cfd9751 +msgid ":attr:`Pixmap.digest`" +msgstr "" + +#: ../../pixmap.rst:52 3d7b532618f3451896efe2d64d4ffdfe +msgid "MD5 hashcode of the pixmap" +msgstr "" + +#: ../../pixmap.rst:53 76675540ad27482bada64b6a598d25f9 +msgid ":attr:`Pixmap.height`" +msgstr "" + +#: ../../pixmap.rst:53 3c22531079e34fa79dddc4e586d958e6 +msgid "pixmap height" +msgstr "" + +#: ../../pixmap.rst:54 9182d024c67b490b9fe7855b4f5715d0 +msgid ":attr:`Pixmap.interpolate`" +msgstr "" + +#: ../../pixmap.rst:54 3688b5e0286840669d320a95bc5a17fb +msgid "interpolation method indicator" +msgstr "" + +#: ../../pixmap.rst:55 b7b0a90b1ba846e89b22db0ed4553281 +msgid ":attr:`Pixmap.is_monochrome`" +msgstr "" + +#: ../../pixmap.rst:55 df352c76b67546089f124cbd0e5babb1 +msgid "check if only black and white occur" +msgstr "" + +#: ../../pixmap.rst:56 a17ad0a90a7d413c9fb8b1aa83257598 +msgid ":attr:`Pixmap.is_unicolor`" +msgstr "" + +#: ../../pixmap.rst:56 81dfed8a598641f6ae936549b0e7f7ba +msgid "check if only one color occurs" +msgstr "" + +#: ../../pixmap.rst:57 abd7ff4e70754c9daef32d9525250608 +msgid ":attr:`Pixmap.irect`" +msgstr "" + +#: ../../pixmap.rst:57 2791b580e848470a814a376d6e220255 +msgid ":ref:`IRect` of the pixmap" +msgstr "" + +#: ../../pixmap.rst:58 2fec6f3a895d4409b0e482a40f200f22 +msgid ":attr:`Pixmap.n`" +msgstr "" + +#: ../../pixmap.rst:58 c7b79f65d4494cdb897cc22abe8eff21 +msgid "bytes per pixel" +msgstr "" + +#: ../../pixmap.rst:59 743bc8e881d44773b5fcf7beffc6a3fa +msgid ":attr:`Pixmap.samples_mv`" +msgstr "" + +#: ../../pixmap.rst:59 4179ce00d1e746b295e577083af074b0 +msgid "`memoryview` of pixel area" +msgstr "" + +#: ../../pixmap.rst:60 c5ff63d0faaa4137832a944521ce8069 +msgid ":attr:`Pixmap.samples_ptr`" +msgstr "" + +#: ../../pixmap.rst:60 8116e2e6a5fe470082d7fbdca4673935 +msgid "Python pointer to pixel area" +msgstr "" + +#: ../../pixmap.rst:61 2abc33dc84a348c6ad9b8da90c57e531 +msgid ":attr:`Pixmap.samples`" +msgstr "" + +#: ../../pixmap.rst:61 060cb94948d84088a5cf7c6d4319fea3 +msgid "`bytes` copy of pixel area" +msgstr "" + +#: ../../pixmap.rst:62 d41ed2ab508249d0ae96e3145e92258b +msgid ":attr:`Pixmap.size`" +msgstr "" + +#: ../../pixmap.rst:62 cfe014376f9745ea9c2ce0e7a11bb369 +msgid "pixmap's total length" +msgstr "" + +#: ../../pixmap.rst:63 34fea4631d014515b7406f2f5bb813bc +msgid ":attr:`Pixmap.stride`" +msgstr "" + +#: ../../pixmap.rst:63 5a29f36af34340aea9cba617eed85cc6 +msgid "size of one image row" +msgstr "" + +#: ../../pixmap.rst:64 62ed9c389676438299a427713f0f7b08 +msgid ":attr:`Pixmap.width`" +msgstr "" + +#: ../../pixmap.rst:64 70e7618e0783483ea97302b042784152 +msgid "pixmap width" +msgstr "" + +#: ../../pixmap.rst:65 e62961e6786e48c796a2e5a23a76654f +msgid ":attr:`Pixmap.x`" +msgstr "" + +#: ../../pixmap.rst:65 4e8faa2fe6154453bf50951bfbcbfa0e +msgid "X-coordinate of top-left corner" +msgstr "" + +#: ../../pixmap.rst:66 d69ccf0ae1844b88aaff3eb7fbfa1973 +msgid ":attr:`Pixmap.xres`" +msgstr "" + +#: ../../pixmap.rst:66 a1ecbc77214845fea2e4c6cee89a8ce8 +msgid "resolution in X-direction" +msgstr "" + +#: ../../pixmap.rst:67 83ca1188acde43af9c9f6c742f8c9fcb +msgid ":attr:`Pixmap.y`" +msgstr "" + +#: ../../pixmap.rst:67 b0432d623ef4473aa3515de8b215d9f5 +msgid "Y-coordinate of top-left corner" +msgstr "" + +#: ../../pixmap.rst:68 b704d755356e4e53903e4306cb1850d6 +msgid ":attr:`Pixmap.yres`" +msgstr "" + +#: ../../pixmap.rst:68 857aeb5083a44b1795d1ede13f95021f +msgid "resolution in Y-direction" +msgstr "" + +#: ../../pixmap.rst:71 a006e37a45ad4ed88da3603714dc9820 +msgid "**Class API**" +msgstr "" + +#: ../../pixmap.rst:77 046bff7f68fe47dc89b42ec79b63be49 +msgid "" +"**New empty pixmap:** Create an empty pixmap of size and origin given by " +"the rectangle. So, *irect.top_left* designates the top left corner of the" +" pixmap, and its width and height are *irect.width* resp. *irect.height*." +" Note that the image area is **not initialized** and will contain crap " +"data -- use eg. :meth:`clear_with` or :meth:`set_rect` to be sure." +msgstr "" + +#: ../../pixmap.rst 02b0fea3d9c34817aad000ad9f071590 +#: 054aba92b788492e988045fb104e4481 0eb0df83e45a406cb560af5072cdff86 +#: 2d9ab2f5c1024f7085600fc7ec9dc603 42fca49eb0844237a0b14c72c95e7dbc +#: 4c84fc0dcb054b659ed6e2dae1b27605 57542313cdbd47cc89f43d9329495cb5 +#: 610dfac6df044219bea31b4eb7ef6b47 63f20c0df7eb4be8be807f287c781d58 +#: 67a50e42c1294501bb59b8b035850481 687444f1e3dc45509b4ec2a7192c0a48 +#: 73fe0913c7364c31916311fc0cffc16e 7e25b63146fa45858f1ff6b966a16913 +#: 8b3e2416c26c445bb9979be602f6adf5 95824bfb86ff41de835e47b77393048f +#: a5c5caaf10934649be3b74635eb16787 af618a04af8e40efa6512d296a27fb9b +#: bdfbcea144bd4cfb93f787f52dfadf48 c7f77794bd054561aa08e0b18497e5bd +#: d044792ccaea48328805a0a6efd678c9 d625b8ee73b34a459873edc513b40002 +#: d81abb686bb542518846ad32bd035b5e dd1276958278455fb3ad0d1ad3b08045 +#: dd4e9e5837dc4c1eb17ec63c8681b4d4 e60d8f4e03c24b918ad9bdf22e21adb0 +#: f1bff3e4b66c4afca6ae66a014ac0fc1 f2e0f5d755134588846f75c89c28b5af +#: f8a2e37bd2ef4ca79bf827a1a3fe8e70 +msgid "Parameters" +msgstr "" + +#: ../../pixmap.rst:79 56321802a9014c348fa2d20d4294c9f2 +msgid "colorspace." +msgstr "" + +#: ../../pixmap.rst:82 3753a76b227f496eb369ca2d40057f0c +msgid "The pixmap's position and dimension." +msgstr "" + +#: ../../pixmap.rst:84 0f1256f4866c4a888d73cefe035cfb17 +msgid "" +"Specifies whether transparency bytes should be included. Default is " +"``False``." +msgstr "" + +#: ../../pixmap.rst:88 b9326c334f6345fdaf185501bfa27892 +msgid "" +"**Copy and set colorspace:** Copy *source* pixmap converting colorspace. " +"Any colorspace combination is possible, but source colorspace must not be" +" ``None``." +msgstr "" + +#: ../../pixmap.rst:90 97014f607fba4a5cb553297120c90034 +msgid "" +"desired **target** colorspace. This **may also be** ``None``. In this " +"case, a \"masking\" pixmap is created: its :attr:`Pixmap.samples` will " +"consist of the source's alpha bytes only." +msgstr "" + +#: ../../pixmap.rst:93 ../../pixmap.rst:112 36ef86e1d48d4c5a9dd2bf95b2fd7b14 +#: 52423174b9b746d2840bdc738fa82069 +msgid "the source pixmap." +msgstr "" + +#: ../../pixmap.rst:98 1df405a79ae244d1a01b677a84951540 +msgid "New in v1.18.18" +msgstr "" + +#: ../../pixmap.rst:100 dac52c1c940a488587523e971b8678bb +msgid "" +"**Copy and add image mask:** Copy *source* pixmap, add an alpha channel " +"with transparency data from a mask pixmap." +msgstr "" + +#: ../../pixmap.rst:102 760c74ba53044cbcbdf31aee15f90bca +msgid "pixmap without alpha channel." +msgstr "" + +#: ../../pixmap.rst:105 46e5c3640fcf48d382edee1c823984e6 +msgid "a mask pixmap. Must be a graysale pixmap." +msgstr "" + +#: ../../pixmap.rst:110 d9ec3e84c0ea4239b426990e4164290e +msgid "" +"**Copy and scale:** Copy *source* pixmap, scaling new width and height " +"values -- the image will appear stretched or shrunk accordingly. Supports" +" partial copying. The source colorspace may be ``None``." +msgstr "" + +#: ../../pixmap.rst:115 682ea20bf52b4efe901eaeac97e98829 +msgid "desired target width." +msgstr "" + +#: ../../pixmap.rst:117 3bf8da6692aa4465bad88ed923353c01 +msgid "desired target height." +msgstr "" + +#: ../../pixmap.rst:119 7aa6286551464fc79c589f402e5f4064 +msgid "restrict the resulting pixmap to this region of the **scaled** pixmap." +msgstr "" + +#: ../../pixmap.rst:121 3be7525712a64bad8e5cc168ff57efeb +msgid "" +"If width or height do not *represent* integers (i.e. `value.is_integer() " +"!= True`), then the resulting pixmap **will have an alpha channel**." +msgstr "" + +#: ../../pixmap.rst:125 fcd3877dc9924a5098cb10a1fec25153 +msgid "" +"**Copy and add or drop alpha:** Copy *source* and add or drop its alpha " +"channel. Identical copy if *alpha* equals *source.alpha*. If an alpha " +"channel is added, its values will be set to 255." +msgstr "" + +#: ../../pixmap.rst:127 ../../pixmap.rst:305 29341e581eda460c9963b056957f0057 +#: 6755e67f1ebd4c6397a96a8387727fc0 +msgid "source pixmap." +msgstr "" + +#: ../../pixmap.rst:130 c616e3541c6f481680da4d95d038b5f5 +msgid "" +"whether the target will have an alpha channel, default and mandatory if " +"source colorspace is ``None``." +msgstr "" + +#: ../../pixmap.rst:132 df4cef61a1c149a39965a6f332bf9f2c +msgid "" +"A typical use includes separation of color and transparency bytes in " +"separate pixmaps. Some applications require this like e.g. " +"*wx.Bitmap.FromBufferAndAlpha()* of *wxPython*:" +msgstr "" + +#: ../../pixmap.rst:142 154d69621fb94872a7ad34eae19ef7aa +msgid "" +"**From a file:** Create a pixmap from *filename*. All properties are " +"inferred from the input. The origin of the resulting pixmap is *(0, 0)*." +msgstr "" + +#: ../../pixmap.rst:144 aedb335cf31242c6807afec841343b05 +msgid "Path of the image file." +msgstr "" + +#: ../../pixmap.rst:148 e21d860e62cb466b8dcd5c58ecd8816a +msgid "" +"**From memory:** Create a pixmap from a memory area. All properties are " +"inferred from the input. The origin of the resulting pixmap is *(0, 0)*." +msgstr "" + +#: ../../pixmap.rst:150 74221d3aec5f41afae36e2b37ac8dfc7 +msgid "" +"Data containing a complete, valid image. Could have been created by e.g. " +"*stream = bytearray(open('image.file', 'rb').read())*. Type *bytes* is " +"supported in **Python 3 only**, because *bytes == str* in Python 2 and " +"the method will interpret the stream as a filename. *Changed in version " +"1.14.13:* *io.BytesIO* is now also supported." +msgstr "" + +#: ../../pixmap.rst:150 e9ed395c0d8c4b56a458e072bbd347e0 +msgid "" +"Data containing a complete, valid image. Could have been created by e.g. " +"*stream = bytearray(open('image.file', 'rb').read())*. Type *bytes* is " +"supported in **Python 3 only**, because *bytes == str* in Python 2 and " +"the method will interpret the stream as a filename." +msgstr "" + +#: ../../pixmap.rst:152 a162db2d5e5f46a092952a708f6e5469 +msgid "*Changed in version 1.14.13:* *io.BytesIO* is now also supported." +msgstr "" + +#: ../../pixmap.rst:157 016950d3c686415a993d228b20deed87 +msgid "" +"**From plain pixels:** Create a pixmap from *samples*. Each pixel must be" +" represented by a number of bytes as controlled by the *colorspace* and " +"*alpha* parameters. The origin of the resulting pixmap is *(0, 0)*. This " +"method is useful when raw image data are provided by some other program " +"-- see :ref:`FAQ`." +msgstr "" + +#: ../../pixmap.rst:159 cda1965dbe524b2f958354d3bf86203d +msgid "Colorspace of image." +msgstr "" + +#: ../../pixmap.rst:162 e4ca43e6639b433195a95bc4b9cff17c +msgid "image width" +msgstr "" + +#: ../../pixmap.rst:164 e6bd73524bf443928467e7d153097052 +msgid "image height" +msgstr "" + +#: ../../pixmap.rst:166 bc04c5ee0a2f4c219321973a46ca1fec +msgid "" +"an area containing all pixels of the image. Must include alpha values if " +"specified. *Changed in version 1.14.13:* (1) *io.BytesIO* can now also " +"be used. (2) Data are now **copied** to the pixmap, so may safely be " +"deleted or become unavailable." +msgstr "" + +#: ../../pixmap.rst:166 882216b59426469ebf0fc58e1a590a22 +msgid "" +"an area containing all pixels of the image. Must include alpha values if " +"specified." +msgstr "" + +#: ../../pixmap.rst:168 94da32783c284a7c9e5cd26b1aa7aead +msgid "" +"*Changed in version 1.14.13:* (1) *io.BytesIO* can now also be used. (2) " +"Data are now **copied** to the pixmap, so may safely be deleted or become" +" unavailable." +msgstr "" + +#: ../../pixmap.rst:170 92e53d092aa1464db50b36eb7899219d +msgid "whether a transparency channel is included." +msgstr "" + +#: ../../pixmap.rst:174 d35de668e91d424ebf94418d892dcbd6 +msgid "" +"The following equation **must be true**: *(colorspace.n + alpha) * width " +"* height == len(samples)*." +msgstr "" + +#: ../../pixmap.rst:175 1c597631a5304c869da76bb9d81e6ed9 +msgid "" +"Starting with version 1.14.13, the samples data are **copied** to the " +"pixmap." +msgstr "" + +#: ../../pixmap.rst:180 5c8af01ebb9141c4b8de801dd3f3356e +msgid "" +"**From a PDF image:** Create a pixmap from an image **contained in PDF** " +"*doc* identified by its :data:`xref`. All pimap properties are set by the" +" image. Have a look at `extract-img1.py " +"`_ " +"and `extract-img2.py `_ to see how this can be used to recover all of a PDF's" +" images." +msgstr "" + +#: ../../pixmap.rst:182 83027e8baba3428f9138b9272d50b7c5 +msgid "an opened |PDF| document." +msgstr "" + +#: ../../pixmap.rst:185 1d115e0cbe8d45c1a12b21ba961b218c +msgid "" +"the :data:`xref` of an image object. For example, you can make a list of " +"images used on a particular page with :meth:`Document.get_page_images`, " +"which also shows the :data:`xref` numbers of each image." +msgstr "" + +#: ../../pixmap.rst:189 af2a4e8f44da46f9b6b2a58073bb2cfc +msgid "Initialize the samples area." +msgstr "" + +#: ../../pixmap.rst:191 e9fa66fe4f434c59baeea5e2c721a40d +msgid "" +"if specified, values from 0 to 255 are valid. Each color byte of each " +"pixel will be set to this value, while alpha will be set to 255 (non-" +"transparent) if present. If omitted, then all bytes (including any alpha)" +" are cleared to *0x00*." +msgstr "" + +#: ../../pixmap.rst:193 bb47605a216946dba119a8bf60a6dcdd +msgid "" +"the area to be cleared. Omit to clear the whole pixmap. Can only be " +"specified, if *value* is also specified." +msgstr "" + +#: ../../pixmap.rst:197 78bf5b67f38f46178532a1e37e7ddd72 +msgid "" +"Colorize a pixmap by replacing black and / or white with colors given as " +"**sRGB integer** values. Only colorspaces :data:`CS_GRAY` and " +":data:`CS_RGB` are supported, others are ignored with a warning." +msgstr "" + +#: ../../pixmap.rst:199 abae57d0723b4345a89b12f880d933fa +msgid "" +"If the colorspace is :data:`CS_GRAY`, the average *(red + green + " +"blue)/3* will be taken. The pixmap will be changed in place." +msgstr "" + +#: ../../pixmap.rst:201 04577dadbfbc43a3abbe3d997f6561ab +msgid "replace black with this value. Specifying 0x000000 makes no changes." +msgstr "" + +#: ../../pixmap.rst:202 43f498ae78e443a28b06bdcc72789414 +msgid "replace white with this value. Specifying 0xFFFFFF makes no changes." +msgstr "" + +#: ../../pixmap.rst:204 391411e29bc24c0183271fc962fc85ae +msgid "Examples:" +msgstr "" + +#: ../../pixmap.rst:206 6e89c521384c4c5bbc9619d3efe8b909 +msgid "`tint_with(0x000000, 0xFFFFFF)` is a no-op." +msgstr "" + +#: ../../pixmap.rst:207 64e6d46367ef4feca63cb7fb163d6b63 +msgid "" +"`tint_with(0x00FF00, 0xFFFFFF)` changes black to green, leaves white " +"intact." +msgstr "" + +#: ../../pixmap.rst:208 8ea3f30122264c92b50ec935ec42fc3c +msgid "`tint_with(0xFF0000, 0x0000FF)` changes black to red and white to blue." +msgstr "" + +#: ../../pixmap.rst:213 ca2f9c12e08649b5870ae3ad64eacd72 +msgid "" +"Apply a gamma factor to a pixmap, i.e. lighten or darken it. Pixmaps with" +" colorspace ``None`` are ignored with a warning." +msgstr "" + +#: ../../pixmap.rst:215 f4c36ad3313f4088882a49b8ff1847ec +msgid "" +"*gamma = 1.0* does nothing, *gamma < 1.0* lightens, *gamma > 1.0* darkens" +" the image." +msgstr "" + +#: ../../pixmap.rst:219 8543630bd8134fbfbad3e241950d6cea +msgid "" +"Shrink the pixmap by dividing both, its width and height by 2\\ " +":sup:``n``." +msgstr "" + +#: ../../pixmap.rst:221 30c7f5ad783249949e9748a49eb7d9f9 +msgid "" +"determines the new pixmap (samples) size. For example, a value of 2 " +"divides width and height by 4 and thus results in a size of one 16\\ " +":sup:`th` of the original. Values less than 1 are ignored with a warning." +msgstr "" + +#: ../../pixmap.rst:223 f45f17093df4420cb6fbc619648afd22 +msgid "" +"Use this methods to reduce a pixmap's size retaining its proportion. The " +"pixmap is changed \"in place\". If you want to keep original and also " +"have more granular choices, use the resp. copy constructor above." +msgstr "" + +#: ../../pixmap.rst:227 1455e6653c744eeba403a49f543d6fab +msgid "" +"*New in version:: 1.14.5:* Return the value of the pixel at location (x, " +"y) (column, line)." +msgstr "" + +#: ../../pixmap.rst:229 ../../pixmap.rst:239 4665e9dd65654240abe6ee77bae37183 +#: ffb7d135ed9a41f1b4f0bfa146d6de82 +msgid "the column number of the pixel. Must be in `range(pix.width)`." +msgstr "" + +#: ../../pixmap.rst:230 f1efa4c149644cc680d5348ad2c2e068 +msgid "the line number of the pixel, Must be in `range(pix.height)`." +msgstr "" + +#: ../../pixmap.rst 369baee8d7234ef2ab7f82e75e9111ad +#: a81a4cbd70ad4e0b8fb189a247cfcaaf b3a66cf736f24daea703147e167c320f +#: cc865d958a3d4c81b2cbd3d3f814714b d2546977b027475993b2df887c1cb6e8 +#: e81aa1c04aa6419da09b400752672904 eb0378b2f08a49a0af740a769d1a6087 +msgid "Return type" +msgstr "" + +#: ../../pixmap.rst 186871c10cae496984d33e4181c189b0 +#: 24ba23b408644b24bd9aa5c5c7695c13 375a4a43a898465fa252490979e2f154 +#: 44939b8c082c4f128aecb10f802bce36 8183d07de46a4c909fc8ff25a1c13b5e +#: 82dd9565faa544cf8799ce6981d78e02 a7c02e0b9035405a9f75f61d1ef8a011 +msgid "Returns" +msgstr "" + +#: ../../pixmap.rst:233 1c117c2f7320435ab28104a0c9e6b3f0 +msgid "" +"a list of color values and, potentially the alpha value. Its length and " +"content depend on the pixmap's colorspace and the presence of an alpha. " +"For RGBA pixmaps the result would e.g. be *[r, g, b, a]*. All items are " +"integers in `range(256)`." +msgstr "" + +#: ../../pixmap.rst:237 4e3d50e363f54e7da5ab00f4aa58fec5 +msgid "" +"*New in version 1.14.7:* Manipulate the pixel at location (x, y) (column," +" line)." +msgstr "" + +#: ../../pixmap.rst:240 0dcca10c1c4c4b58b61746cd5da73f43 +msgid "the line number of the pixel. Must be in `range(pix.height)`." +msgstr "" + +#: ../../pixmap.rst:241 eee0a54112754d7db4a0e21facaf19c8 +msgid "" +"the desired pixel value given as a sequence of integers in `range(256)`. " +"The length of the sequence must equal :attr:`Pixmap.n`, which includes " +"any alpha byte." +msgstr "" + +#: ../../pixmap.rst:245 223fcf7f54984d26a1a64657ed00a81d +msgid "*New in version 1.14.8:* Set the pixels of a rectangle to a value." +msgstr "" + +#: ../../pixmap.rst:247 95d0f97710ba444391fd993ca732bc02 +msgid "" +"the rectangle to be filled with the value. The actual area is the " +"intersection of this parameter and :attr:`Pixmap.irect`. For an empty " +"intersection (or an invalid parameter), no change will happen." +msgstr "" + +#: ../../pixmap.rst:248 a8fe7a3cf13a40e6a5abc4a65a481906 +msgid "" +"the desired value, given as a sequence of integers in `range(256)`. The " +"length of the sequence must equal :attr:`Pixmap.n`, which includes any " +"alpha byte." +msgstr "" + +#: ../../pixmap.rst:251 ef594268cf964435b0f7fae7229908c8 +msgid "" +"``False`` if the rectangle was invalid or had an empty intersection with " +":attr:`Pixmap.irect`, else ``True``." +msgstr "" + +#: ../../pixmap.rst:255 bcf6532518a34f9c87fe6473f29b283c +msgid "" +"This method is equivalent to :meth:`Pixmap.set_pixel` executed for each " +"pixel in the rectangle, but is obviously **very much faster** if many " +"pixels are involved." +msgstr "" + +#: ../../pixmap.rst:256 bc5f1b513a0f4c4fa649296505adae7c +msgid "" +"This method can be used similar to :meth:`Pixmap.clear_with` to " +"initialize a pixmap with a certain color like this: " +"*pix.set_rect(pix.irect, (255, 255, 0))* (RGB example, colors the " +"complete pixmap with yellow)." +msgstr "" + +#: ../../pixmap.rst:260 a513c003abe849829c11fe1447ebad4c +msgid "New in v1.17.7" +msgstr "" + +#: ../../pixmap.rst:262 0b7cc0a788dd40cb8acfbdb60fc95d01 +msgid "Set the x and y values of the pixmap's top-left point." +msgstr "" + +#: ../../pixmap.rst:264 235e6e23b0b24739bc80e81e21526714 +msgid "x coordinate" +msgstr "" + +#: ../../pixmap.rst:265 6abac422a54b4e5bb66a4859637f5a69 +msgid "y coordinate" +msgstr "" + +#: ../../pixmap.rst:270 c5527c1032f044a2a640143d01653c61 +msgid "New in v1.16.17" +msgstr "" + +#: ../../pixmap.rst:272 f49f9e8464474d7cbf7a85f1ba506a82 +msgid "" +"Changed in v1.18.0: When saving as a PNG image, these values will be " +"stored now." +msgstr "" + +#: ../../pixmap.rst:274 a468673bcf8b49a68b788fd8ae23b5d5 +msgid "Set the resolution (dpi) in x and y direction." +msgstr "" + +#: ../../pixmap.rst:276 0ac91572ffc64e2bba64b0279d3fc7a3 +msgid "resolution in x direction." +msgstr "" + +#: ../../pixmap.rst:277 1eb356ec57454ca9815ab72ead63956f +msgid "resolution in y direction." +msgstr "" + +#: ../../pixmap.rst:282 8623995d2c004b0ba2caf470042846f1 +msgid "Changed in v 1.18.13" +msgstr "" + +#: ../../pixmap.rst:284 82d487067f8d4ced9ef11d081f5e4ce8 +msgid "Change the alpha values. The pixmap must have an alpha channel." +msgstr "" + +#: ../../pixmap.rst:286 c98fe169c19c487481ca55cd0633f3f8 +msgid "" +"the new alpha values. If provided, its length must be at least *width * " +"height*. If omitted (`None`), all alpha values are set to 255 (no " +"transparency). *Changed in version 1.14.13:* *io.BytesIO* is now also " +"accepted." +msgstr "" + +#: ../../pixmap.rst:287 e94c3d6b68c141e2b61b6f54ab717d33 +msgid "" +"*New in v1.18.13:* whether to premultiply color components with the alpha" +" value." +msgstr "" + +#: ../../pixmap.rst:288 fbe9e806927d460389c858b14d4f3644 +msgid "" +"ignore the alpha value and set this color to fully transparent. A " +"sequence of integers in `range(256)` with a length of :attr:`Pixmap.n`. " +"Default is ``None``. For example, a typical choice for RGB would be " +"`opaque=(255, 255, 255)` (white)." +msgstr "" + +#: ../../pixmap.rst:293 e617ef83731c4689a35511a90c29ceeb +msgid "" +"Invert the color of all pixels in :ref:`IRect` *irect*. Will have no " +"effect if colorspace is ``None``." +msgstr "" + +#: ../../pixmap.rst:295 b9d38a022bef44f89d241d1964237fbb +msgid "The area to be inverted. Omit to invert everything." +msgstr "" + +#: ../../pixmap.rst:299 e764fb3df0324f5187dbb68ba9a917ba +msgid "" +"Copy the *irect* part of the *source* pixmap into the corresponding area " +"of this one. The two pixmaps may have different dimensions and can each " +"have :data:`CS_GRAY` or :data:`CS_RGB` colorspaces, but they currently " +"**must** have the same alpha property [#f2]_. The copy mechanism " +"automatically adjusts discrepancies between source and target like so:" +msgstr "" + +#: ../../pixmap.rst:301 e270f22850b84663930783d1f33ca33c +msgid "" +"If copying from :data:`CS_GRAY` to :data:`CS_RGB`, the source gray-shade " +"value will be put into each of the three rgb component bytes. If the " +"other way round, *(r + g + b) / 3* will be taken as the gray-shade value " +"of the target." +msgstr "" + +#: ../../pixmap.rst:303 e29fc4caf130461db1843ba16fe4fc72 +msgid "" +"Between *irect* and the target pixmap's rectangle, an \"intersection\" is" +" calculated at first. This takes into account the rectangle coordinates " +"and the current attribute values :attr:`Pixmap.x` and :attr:`Pixmap.y` " +"(which you are free to modify for this purpose via " +":meth:`Pixmap.set_origin`). Then the corresponding data of this " +"intersection are copied. If the intersection is empty, nothing will " +"happen." +msgstr "" + +#: ../../pixmap.rst:308 fb1b535c8adc44baa4c729c25fec3e14 +msgid "The area to be copied." +msgstr "" + +#: ../../pixmap.rst:310 82448c014aa543b68e66cec1b07f3d96 +msgid "" +"Example: Suppose you have two pixmaps, `pix1` and `pix2` and you want to " +"copy the lower right quarter of `pix2` to `pix1` such that it starts at " +"the top-left point of `pix1`. Use the following snippet::" +msgstr "" + +#: ../../pixmap.rst:329 7fbfff308f9d4627a4a6f2fc60e1651e +msgid "" +"Changed in v1.22.0: Added **direct support of JPEG** images. Image " +"quality can be controlled via parameter \"jpg_quality\"." +msgstr "" + +#: ../../pixmap.rst:331 97bd54f9e597471292898030e2002c7a +msgid "" +"Save pixmap as an image file. Depending on the output chosen, only some " +"or all colorspaces are supported and different file extensions can be " +"chosen. Please see the table below." +msgstr "" + +#: ../../pixmap.rst:333 9cbb39acd6fd43c7b4231f63399b34d8 +msgid "" +"The file to save to. May be provided as a string, as a ``pathlib.Path`` " +"or as a Python file object. In the latter two cases, the filename is " +"taken from the resp. object. The filename's extension determines the " +"image format, which can be overruled by the output parameter." +msgstr "" + +#: ../../pixmap.rst:335 a8f9fb30eb6f4e129ccdb1eb4dfb2d50 +msgid "" +"The desired image format. The default is the filename's extension. If " +"both, this value and the file extension are unsupported, an exception is " +"raised. For possible values see :ref:`PixmapOutput`." +msgstr "" + +#: ../../pixmap.rst:336 ../../pixmap.rst:346 57c5e89d61b643828893b09c1506e81c +#: a4031bcffabf4809bb9b3450054f39ec +msgid "" +"The desired image quality, default 95. Only applies to JPEG images, else " +"ignored. This parameter trades quality against file size. A value of 98 " +"is close to lossless. Higher values should not lead to better quality." +msgstr "" + +#: ../../pixmap.rst 31830ae4676c49a29f6eda0ec74b2cc7 +#: 35f861d76f76416f84ca4a6cfbb9ba36 9e7d20d2ebff48a5a2f12a7bb9cb207f +#: 9e8d92287683474c8894ca359bc0df3c eaa3f51d3c63445d921c804b8d264fba +msgid "Raises" +msgstr "" + +#: ../../pixmap.rst:338 ../../pixmap.rst:348 74c8c07d5a4d429180ebc61a6dc88b40 +#: 888fc652cefb483cbc631acba45b2a8c +msgid "For unsupported image formats." +msgstr "" + +#: ../../pixmap.rst:342 3e89ee831b4744b2a7778a6f2ab7d705 +msgid "" +"New in version 1.14.5: Return the pixmap as a *bytes* memory object of " +"the specified format -- similar to :meth:`save`." +msgstr "" + +#: ../../pixmap.rst:343 4dff4d1183ff44f2a456ec123ddad67f +msgid "" +"Changed in v1.22.0: Added **direct JPEG support**. Image quality can be " +"influenced via new parameter \"jpg_quality\"." +msgstr "" + +#: ../../pixmap.rst:345 17d9ad6bf1cd4d0caaf174d46a29b286 +msgid "" +"The desired image format. The default is \"png\". For possible values see" +" :ref:`PixmapOutput`." +msgstr "" + +#: ../../pixmap.rst:351 7a4a3392440c413b9549ddfd80aa09e8 +msgid "" +"The requested image format. The default is \"png\". For other possible " +"values see :ref:`PixmapOutput`." +msgstr "" + +#: ../../pixmap.rst:355 ../../pixmap.rst:370 024249ef113f468bba659314559663a8 +#: 3ebc661e655c4894a0780bd40d34f1b9 +msgid "New in v1.19.0" +msgstr "" + +#: ../../pixmap.rst:357 ../../pixmap.rst:372 98399e67142a4ab4bfa0146bb6a938e0 +#: fde150994fb44c0dac805e2d7807ae53 +msgid "Changed in v1.22.5: Support of new parameter for Tesseract's tessdata." +msgstr "" + +#: ../../pixmap.rst:359 7e216757569f4c4ebb1b9d88f2858c00 +msgid "" +"Perform text recognition using Tesseract and save the image as a 1-page " +"PDF with an OCR text layer." +msgstr "" + +#: ../../pixmap.rst:361 9e480852cca4498d8cb34f674e078760 +msgid "" +"identifies the file to save to. May be either a string or a pointer to a " +"file opened with \"wb\" (includes `io.BytesIO()` objects)." +msgstr "" + +#: ../../pixmap.rst:362 739251505f694c69af4730ee2d8f7848 +msgid "whether to compress the resulting PDF, default is `True`." +msgstr "" + +#: ../../pixmap.rst:363 8c1c54fe56a34bf19f07465936ed9f10 +msgid "" +"the languages occurring in the image. This must be specified in Tesseract" +" format. Default is \"eng\" for English. Use \"+\"-separated Tesseract " +"language codes for multiple languages, like \"eng+spa\" for English and " +"Spanish." +msgstr "" + +#: ../../pixmap.rst:364 fcca47fa76a9459cbec299e7f148dec6 +msgid "" +"folder name of Tesseract's language support. If omitted, this information" +" must be present as environment variable `TESSDATA_PREFIX`." +msgstr "" + +#: ../../pixmap.rst:366 21a4cf67602b4076b49b985e8aa0c66b +msgid "" +"**Will fail** if Tesseract is not installed or if the environment " +"variable \"TESSDATA_PREFIX\" is not set to the `tessdata` folder name and" +" not provided as parameter." +msgstr "" + +#: ../../pixmap.rst:374 32b8acd13d9f48e1bfd79ab1023be929 +msgid "" +"Perform text recognition using Tesseract and convert the image to a " +"1-page PDF with an OCR text layer. Internally invokes " +":meth:`Pixmap.pdfocr_save`." +msgstr "" + +#: ../../pixmap.rst:376 9e005bf6ab3440c085ee1193ba601f87 +msgid "" +"A 1-page PDF file in memory. Could be opened like " +"`doc=pymupdf.open(\"pdf\", pix.pdfocr_tobytes())`, and text extractions " +"could be performed on its `page=doc[0]`. .. note:: Another possible " +"use is insertion into some pdf. The following snippet reads the images of" +" a folder and stores them as pages in a new PDF that contain an OCR text " +"layer:: doc = pymupdf.open() for imgfile in " +"os.listdir(folder): pix = pymupdf.Pixmap(imgfile) " +"imgpdf = pymupdf.open(\"pdf\", pix.pdfocr_tobytes()) " +"doc.insert_pdf(imgpdf) pix = None imgpdf.close() " +"doc.save(\"ocr-images.pdf\")" +msgstr "" + +#: ../../pixmap.rst:376 b412ebf7d201478890ec75b641a17871 +msgid "" +"A 1-page PDF file in memory. Could be opened like " +"`doc=pymupdf.open(\"pdf\", pix.pdfocr_tobytes())`, and text extractions " +"could be performed on its `page=doc[0]`." +msgstr "" + +#: ../../pixmap.rst:380 2cd418d767ef4149b35f4d0415d14af1 +msgid "" +"Another possible use is insertion into some pdf. The following snippet " +"reads the images of a folder and stores them as pages in a new PDF that " +"contain an OCR text layer::" +msgstr "" + +#: ../../pixmap.rst:394 efc06e14189c4871827c5261c0623dfa +msgid "Create a Pillow Image from the pixmap. PIL / Pillow must be installed." +msgstr "" + +#: ../../pixmap.rst:396 ../../pixmap.rst:416 ../../pixmap.rst:424 +#: 3df2560f6e804a789cc70c26deec880b 8087c1edcca942f186efe9ad6be77c16 +#: 85c874d70f274112a51bc6ce56e6e197 +msgid "if Pillow is not installed." +msgstr "" + +#: ../../pixmap.rst:397 69708896f8e44f9eb5a130326ae36b80 +msgid "a ``PIL.Image`` object" +msgstr "" + +#: ../../pixmap.rst:401 3f77a2ee05134b31a570bc40ff704b87 +msgid "" +"Write the pixmap as an image file using Pillow. Use this method for " +"output unsupported by MuPDF. Examples are" +msgstr "" + +#: ../../pixmap.rst:403 8f8925fd0a1e4868840945ccf3b35017 +msgid "Formats JPX, J2K, WebP, etc." +msgstr "" + +#: ../../pixmap.rst:404 bd17d3e24fb740469efea4743e5ffb78 +msgid "Storing EXIF information." +msgstr "" + +#: ../../pixmap.rst:405 d7d0bc56bfcb4f179b7f00d2ad59c255 +msgid "" +"If you do not provide dpi information, the values *xres*, *yres* stored " +"with the pixmap are automatically used." +msgstr "" + +#: ../../pixmap.rst:407 20bf1e69dd5147b9a108ab328fe2657e +msgid "" +"A simple example: `pix.pil_save(\"some.webp\", optimize=True, dpi=(150, " +"150))`." +msgstr "" + +#: ../../pixmap.rst:409 71799e7c62324bbea016ae30eafbc021 +msgid "" +"If the pixmap's colorspace is RGB with transparency, the alpha values may" +" or may not already be multiplied into the color components " +"ref/green/blue (called \"premultiplied\"). To enforce undoing " +"premultiplication, set this parameter to `True`. To learn about some " +"background, e.g. look for `\"Premultiplied alpha\" on this page " +"`_." +msgstr "" + +#: ../../pixmap.rst:412 c5f67c82cc1b4a078d120281dc779a59 +msgid "For details on other parameters see the Pillow documentation." +msgstr "" + +#: ../../pixmap.rst:414 d3f2fde19b034f09971604debcf8e6dc +msgid "" +"Since v1.22.0, PyMuPDF supports JPEG output directly. We recommended to " +"no longer use this method for JPEG output -- for performance reasons and " +"for avoiding unnecessary external dependencies." +msgstr "" + +#: ../../pixmap.rst:420 835e9bbf2bc047f2b9657ca7741ec37e +msgid "New in v1.17.3" +msgstr "" + +#: ../../pixmap.rst:422 d0177a551753414586749bf415cf6080 +msgid "" +"Return an image as a bytes object in the specified format using Pillow. " +"For example `stream = pix.pil_tobytes(format=\"WEBP\", optimize=True, " +"dpi=(150, 150))`. Also see above. For details on other parameters see the" +" Pillow documentation." +msgstr "" + +#: ../../pixmap.rst:431 ../../pixmap.rst:466 68173364cda84dab84fa461435fdec56 +#: b156a10f58714dae92ca5c3163c24112 +msgid "New in v1.19.3" +msgstr "" + +#: ../../pixmap.rst:433 129930765e83498b8cb4362c41d7fb9a +msgid "" +"Return a new pixmap by \"warping\" the quad such that the quad corners " +"become the new pixmap's corners. The target pixmap's `irect` will be `(0," +" 0, width, height)`." +msgstr "" + +#: ../../pixmap.rst:435 6c6e2bf54f6c4c1cbd3c172dbbfb7712 +msgid "" +"a convex quad with coordinates inside :attr:`Pixmap.irect` (including the" +" border points)." +msgstr "" + +#: ../../pixmap.rst:436 e9644c03761249019390c475ce09eeb9 +msgid "desired resulting width." +msgstr "" + +#: ../../pixmap.rst:437 5af3c5ce964244d9ac8c1210ae145777 +msgid "desired resulting height." +msgstr "" + +#: ../../pixmap.rst:438 23af53d676c943ab8270f1f4eb3e15f8 +msgid "" +"A new pixmap where the quad corners are mapped to the pixmap corners in a" +" clockwise fashion: `quad.ul -> irect.tl`, `quad.ur -> irect.tr`, etc." +msgstr "" + +#: ../../pixmap.rst:439 c3fb88fba3f7447889bc2174e90ed4ed +msgid "" +":ref:`Pixmap` .. image:: images/img-warp.* :scale: 40 :align: " +"center" +msgstr "" + +#: ../../pixmap.rst:439 8eb4c765b10a4af0b07fe6d1cd7386d2 +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../pixmap.rst:448 ../../pixmap.rst:505 ../../pixmap.rst:514 +#: 00c62e32e38c4d82895121b426757269 0149558efd01426095beb5bf88035b73 +#: 5c3eedb1091c4eb1af8d1010e7f2b3f0 +msgid "New in v1.19.2" +msgstr "" + +#: ../../pixmap.rst:449 b8fe5dd5d0294610a99db8d7ebd6deec +msgid "Changed in v1.19.3" +msgstr "" + +#: ../../pixmap.rst:451 c2da2a6121594d6c8b3f4e6e7d643cee +msgid "Determine the pixmap's unique colors and their count." +msgstr "" + +#: ../../pixmap.rst:453 992445f66d104d8c89ac2f8297c8e9c4 +msgid "" +"*(changed in v1.19.3)* If `True` return a dictionary of color pixels and " +"their usage count, else just the number of unique colors." +msgstr "" + +#: ../../pixmap.rst:454 db2ea4eae7a1492dad41fae7951b0160 +msgid "" +"a rectangle inside :attr:`Pixmap.irect`. If provided, only those pixels " +"are considered. This allows inspecting sub-rectangles of a given pixmap " +"directly -- instead of building sub-pixmaps." +msgstr "" + +#: ../../pixmap.rst:456 61a615b057024b7a9b6ac7fe5ff849ab +msgid "" +"either the number of colors, or a dictionary with the items `pixel: " +"count`. The pixel key is a `bytes` object of length :attr:`Pixmap.n`. .." +" note:: To recover the **tuple** of a pixel, use " +"`tuple(colors.keys()[i])` for the i-th item. * The response time " +"depends on the pixmap's samples size and may be more than a second for " +"very large pixmaps. * Where applicable, pixels with different alpha " +"values will be treated as different colors." +msgstr "" + +#: ../../pixmap.rst:456 9ad0b09ff1334369af15be4f052a2f6f +msgid "" +"either the number of colors, or a dictionary with the items `pixel: " +"count`. The pixel key is a `bytes` object of length :attr:`Pixmap.n`." +msgstr "" + +#: ../../pixmap.rst:458 d7bdc5a53abc43d6a1041953b5c0c526 +msgid "" +"To recover the **tuple** of a pixel, use `tuple(colors.keys()[i])` for " +"the i-th item." +msgstr "" + +#: ../../pixmap.rst:460 260f96dbe8c04ab1a25159255b8b79a7 +msgid "" +"The response time depends on the pixmap's samples size and may be more " +"than a second for very large pixmaps." +msgstr "" + +#: ../../pixmap.rst:461 1b987ef794b6454eb0d9366a05344070 +msgid "" +"Where applicable, pixels with different alpha values will be treated as " +"different colors." +msgstr "" + +#: ../../pixmap.rst:468 2b6490adea534fa6a8de4eaf1edb354a +msgid "Return the most frequently used color and its relative frequency." +msgstr "" + +#: ../../pixmap.rst:470 485c7c5b4da94258b242db7b59b19b53 +msgid "" +"A rectangle inside :attr:`Pixmap.irect`. If provided, only those pixels " +"are considered. This allows inspecting sub-rectangles of a given pixmap " +"directly -- instead of building sub-pixmaps." +msgstr "" + +#: ../../pixmap.rst:472 9110208e27134f02a9b9bcdc7700add8 +#, python-format +msgid "" +"A tuple `(ratio, pixel)` where `0 < ratio <= 1` and *pixel* is the pixel " +"value of the color. Use this to decide if the image is \"almost\" " +"unicolor: a response `(0.95, b\"\\x00\\x00\\x00\")` means that 95% of all" +" pixels are black. See an example here :ref:`RecipesImages_P`." +msgstr "" + +#: ../../pixmap.rst:477 5e93c19118c44e4598fc55ffb9cd04f6 +msgid "Indicates whether the pixmap contains transparency information." +msgstr "" + +#: ../../pixmap.rst 09340208613f48af95d9e1d2a3ef91fa +#: 0cc2b878ea234bfe8d91795141e3924d 0ff51066858f4faaad58612b0fbd5896 +#: 163c7d4bd8d3405ca26c2650fa5d8a10 3eb04a688a904a5eaadf5d79aed68b1a +#: 4869cfa0cd314211b192a2294838c7dc 5124ac9063654c24a37926de5ab662b6 +#: 557f147c6be94fe083e8082986fa08b6 5ee3e6766dd44d2582e805125e914472 +#: 5f52d2e5c48c47d7aec0c2b7a743fd46 6124bd56d7524796b1aa3c3e18458232 +#: 7c890834a7cf4a088780dfb0e21745a8 84cbd010ada9441a9182c12bbe62059b +#: 89488e9f1e4c4e3d8c6ca9ce290016a4 8be2b06b344443289085426c1e14fa50 +#: 922e0d0d08124b5081bcbb57569a2aa8 a1b9de76b34b47f9b95c7bb1563b9e5a +#: d0c0191f32ed43c6a6857c305705698b ead0a6e9dc94433ba020dae746028076 +msgid "type" +msgstr "" + +#: ../../pixmap.rst:479 ../../pixmap.rst:509 ../../pixmap.rst:518 +#: ../../pixmap.rst:633 3d5651d764be40cca15a078b7f2531b8 +#: 694a5ede4c4c43319c089b1737fd0b9c a65782123b144e4186d43ddd5c138a97 +#: cd79fe63f067476c8342570d590c3121 +msgid "bool" +msgstr "" + +#: ../../pixmap.rst:483 98d329d87318478090434465b043c79d +msgid "" +"The MD5 hashcode (16 bytes) of the pixmap. This is a technical value used" +" for unique identifications." +msgstr "" + +#: ../../pixmap.rst:485 ../../pixmap.rst:537 d353d95ffd0249c9985587a89eec06f3 +#: fe9d2fb1853646c9bb567d4a448e58de +msgid "bytes" +msgstr "" + +#: ../../pixmap.rst:489 94c016ffd0e94ef8a92a913eac909cf0 +msgid "" +"The colorspace of the pixmap. This value may be ``None`` if the image is " +"to be treated as a so-called *image mask* or *stencil mask* (currently " +"happens for extracted PDF document images only)." +msgstr "" + +#: ../../pixmap.rst:491 b6cfc944281042b38f313e221d8208ee +msgid ":ref:`Colorspace`" +msgstr "" + +#: ../../pixmap.rst:495 6a4abc1ca4ea41e5b98e5867969d0aea +msgid "" +"Contains the length of one row of image data in :attr:`Pixmap.samples`. " +"This is primarily used for calculation purposes. The following " +"expressions are true:" +msgstr "" + +#: ../../pixmap.rst:497 9ef5987d2b004c03a37ac85ebe94eb90 +msgid "`len(samples) == height * stride`" +msgstr "" + +#: ../../pixmap.rst:498 ad30730142bb41048a7ad4d99adb37ff +msgid "`width * n == stride`" +msgstr "" + +#: ../../pixmap.rst:500 ../../pixmap.rst:575 ../../pixmap.rst:581 +#: ../../pixmap.rst:589 ../../pixmap.rst:597 ../../pixmap.rst:603 +#: ../../pixmap.rst:609 ../../pixmap.rst:615 ../../pixmap.rst:621 +#: ../../pixmap.rst:627 565eef89a4f1443196235c362117a790 +#: 5790752de4bc4483b7998ab835faa57f 6b853b1effba4f9fa88e23a4ae3e5bf7 +#: a40cc5c113bb4004862e82488bb6ad45 accc4d8148f54c7db1495d30f6c968f0 +#: bca3975d0f204589a21f970e856552f3 d03716e1479c4f6b823e4712bf40c8e9 +#: d2bde8f030b0409d8de6030b27ad0c95 d833bb6cf43f4a109aa43ffba391db0f +#: d8b756b8057c42329c2c1040697bad3a +msgid "int" +msgstr "" + +#: ../../pixmap.rst:507 8695567f63d74993b36963cb05639cf6 +msgid "Is `True` for a gray pixmap which only has the colors black and white." +msgstr "" + +#: ../../pixmap.rst:516 b44722fd47e341cb9f851ef65e077148 +msgid "" +"Is `True` if all pixels are identical (any colorspace). Where applicable," +" pixels with different alpha values will be treated as different colors." +msgstr "" + +#: ../../pixmap.rst:523 6f074461eb274b3388c6956012c6f942 +msgid "Contains the :ref:`IRect` of the pixmap." +msgstr "" + +#: ../../pixmap.rst:525 8f50d53afc654b528e20564902041ddb +msgid ":ref:`IRect`" +msgstr "" + +#: ../../pixmap.rst:529 3abafa8c77804d0482f902d9e46ffb92 +msgid "" +"The color and (if :attr:`Pixmap.alpha` is true) transparency values for " +"all pixels. It is an area of `width * height * n` bytes. Each n bytes " +"define one pixel. Each successive n bytes yield another pixel in scanline" +" order. Subsequent scanlines follow each other with no padding. E.g. for " +"an RGBA colorspace this means, *samples* is a sequence of bytes like " +"*..., R, G, B, A, ...*, and the four byte values R, G, B, A define one " +"pixel." +msgstr "" + +#: ../../pixmap.rst:531 4d2c9332a9384bb2ac55549aea165f04 +msgid "" +"This area can be passed to other graphics libraries like PIL (Python " +"Imaging Library) to do additional processing like saving the pixmap in " +"other image formats." +msgstr "" + +#: ../../pixmap.rst:534 44ba67d25a5246c9b5c0fd86fc515d65 +msgid "" +"The underlying data is typically a **large** memory area, from which a " +"`bytes` copy is made for this attribute ... each time you access it: for " +"example an RGB-rendered letter page has a samples size of almost 1.4 MB. " +"So consider assigning a new variable to it or use the `memoryview` " +"version :attr:`Pixmap.samples_mv` (new in v1.18.17)." +msgstr "" + +#: ../../pixmap.rst:535 028c2991fa3746d8ba4fcb1363e0ac36 +msgid "" +"Any changes to the underlying data are available only after accessing " +"this attribute again. This is different from using the memoryview " +"version." +msgstr "" + +#: ../../pixmap.rst:541 ../../pixmap.rst:563 6231b732cd664d9ea3f80fe04f0151c9 +#: a54baa772ece47f4b743977662b324a4 +msgid "New in v1.18.17" +msgstr "" + +#: ../../pixmap.rst:543 090480ef9ce349efab292a2a0fe883b7 +msgid "" +"Like :attr:`Pixmap.samples`, but in Python `memoryview` format. It is " +"built pointing to the memory in the pixmap -- not from a copy of it. So " +"its creation speed is independent from the pixmap size, and any changes " +"to pixels will be available immediately." +msgstr "" + +#: ../../pixmap.rst:545 93fdd4817c6d451593bce44eed03a5c1 +msgid "" +"Copies like `bytearray(pix.samples_mv)`, or `bytes(pixmap.samples_mv)` " +"are equivalent to and can be used in place of `pix.samples`." +msgstr "" + +#: ../../pixmap.rst:547 a15d8e7edd204441a7b9a76052a64fac +msgid "We also have `len(pix.samples) == len(pix.samples_mv)`." +msgstr "" + +#: ../../pixmap.rst:549 f7663a0870b54e46b8a6d53a9a5d3958 +msgid "" +"Look at this example from a 2 MB JPEG: the memoryview is **ten thousand " +"times faster**::" +msgstr "" + +#: ../../pixmap.rst:556 4d36f9e0a4af4491be38efa57f54faf8 +msgid "" +"After the Pixmap has been destroyed, any attempt to use the memoryview " +"will fail with ValueError." +msgstr "" + +#: ../../pixmap.rst:559 91107ae487b14fe0b83a14f571082c55 +msgid "memoryview" +msgstr "" + +#: ../../pixmap.rst:565 d3bfaae3761a4c0eb851933ffe8701a3 +msgid "" +"Python pointer to the pixel area. This is a special integer format, which" +" can be used by supporting applications (such as PyQt) to directly " +"address the samples area and thus build their images extremely fast. For " +"example::" +msgstr "" + +#: ../../pixmap.rst:570 92d9db2f39614549b2c8a9605c681e0b +msgid "" +"Both of the above lead to the same Qt image, but (2) can be **many " +"hundred times faster**, because it avoids an additional copy of the pixel" +" area." +msgstr "" + +#: ../../pixmap.rst:572 37f284851e024d87b4ae3d3f4b495885 +msgid "" +"Warning: after the Pixmap has been destroyed, the Python pointer will be " +"invalid and attempting to use it may crash the Python interpreter." +msgstr "" + +#: ../../pixmap.rst:579 ad8485f478d04d1791c23f7e6c8cf984 +msgid "" +"Contains *len(pixmap)*. This will generally equal *len(pix.samples)* plus" +" some platform-specific value for defining other attributes of the " +"object." +msgstr "" + +#: ../../pixmap.rst:587 c1796fc010774081b59146b900edf924 +msgid "Width of the region in pixels." +msgstr "" + +#: ../../pixmap.rst:595 d21ef5432611489797b4691400ea9d15 +msgid "Height of the region in pixels." +msgstr "" + +#: ../../pixmap.rst:601 5f88d51c88864babb326d12c5da3c8b4 +msgid "" +"X-coordinate of top-left corner in pixels. Cannot directly be changed -- " +"use :meth:`Pixmap.set_origin`." +msgstr "" + +#: ../../pixmap.rst:607 d82f9559530f4ed3a33c06c66cd24f3c +msgid "" +"Y-coordinate of top-left corner in pixels. Cannot directly be changed -- " +"use :meth:`Pixmap.set_origin`." +msgstr "" + +#: ../../pixmap.rst:613 26e889e8aa564bbea3553b3d55151e83 +msgid "" +"Number of components per pixel. This number depends on colorspace and " +"alpha. If colorspace is not ``None`` (stencil masks), then *Pixmap.n - " +"Pixmap.alpha == pixmap.colorspace.n* is true. If colorspace is ``None``, " +"then *n == alpha == 1*." +msgstr "" + +#: ../../pixmap.rst:619 ddc7c2c6d915466a8673711ed573419a +msgid "" +"Horizontal resolution in dpi (dots per inch). Please also see " +":data:`resolution`. Cannot directly be changed -- use " +":meth:`Pixmap.set_dpi`." +msgstr "" + +#: ../../pixmap.rst:625 5952023fee854e3f82d65f1dbcc33361 +msgid "" +"Vertical resolution in dpi (dots per inch). Please also see " +":data:`resolution`. Cannot directly be changed -- use " +":meth:`Pixmap.set_dpi`." +msgstr "" + +#: ../../pixmap.rst:631 966a193e7ae14efe944c435e65718b73 +msgid "" +"An information-only boolean flag set to ``True`` if the image will be " +"drawn using \"linear interpolation\". If ``False`` \"nearest neighbour " +"sampling\" will be used." +msgstr "" + +#: ../../pixmap.rst:638 32f8505442184689838784d6630b61ca +msgid "Supported Input Image Formats" +msgstr "" + +#: ../../pixmap.rst:639 708fca4db2a64b96a2de83796cd396e7 +msgid "" +"The following file types are supported as **input** to construct pixmaps:" +" **BMP, JPEG, GIF, TIFF, JXR, JPX**, **PNG**, **PAM** and all of the " +"**Portable Anymap** family (**PBM, PGM, PNM, PPM**). This support is two-" +"fold:" +msgstr "" + +#: ../../pixmap.rst:641 4f4eb0bb22404ab184bf7ed8014abcc3 +msgid "" +"Directly create a pixmap with *Pixmap(filename)* or *Pixmap(byterray)*. " +"The pixmap will then have properties as determined by the image." +msgstr "" + +#: ../../pixmap.rst:643 1f9a875b37444d988033c769493f20e4 +msgid "" +"Open such files with *pymupdf.open(...)*. The result will then appear as " +"a document containing one single page. Creating a pixmap of this page " +"offers all the options available in this context: apply a matrix, choose " +"colorspace and alpha, confine the pixmap to a clip area, etc." +msgstr "" + +#: ../../pixmap.rst:645 b8da58f972e349c099d429016189277f +msgid "" +"**SVG images** are only supported via method 2 above, not directly as " +"pixmaps. But remember: the result of this is a **raster image** as is " +"always the case with pixmaps [#f1]_." +msgstr "" + +#: ../../pixmap.rst:650 5eb573904fb7401cb281c16fb4549f3a +msgid "Supported Output Image Formats" +msgstr "" + +#: ../../pixmap.rst:651 e4357173b7ec40d892ee19fcd4f3b83d +msgid "" +"A number of image **output** formats are supported. You have the option " +"to either write an image directly to a file (:meth:`Pixmap.save`), or to " +"generate a bytes object (:meth:`Pixmap.tobytes`). Both methods accept a " +"string identifying the desired format (**Format** column below). Please " +"note that not all combinations of pixmap colorspace, transparency support" +" (alpha) and image format are possible." +msgstr "" + +#: ../../pixmap.rst:654 4dbea7a06e2b4187a123a1c604d44efe +msgid "**Format**" +msgstr "" + +#: ../../pixmap.rst:654 80b26e8d30f3423393a42e35c1a19bb0 +msgid "**Colorspaces**" +msgstr "" + +#: ../../pixmap.rst:654 227b7bee485d4b79a2402f03891614ea +msgid "**alpha**" +msgstr "" + +#: ../../pixmap.rst:654 9797dfa1d6b74610af214069c4ee23d6 +msgid "**Extensions**" +msgstr "" + +#: ../../pixmap.rst:654 a635c115d504411785c1bf1a3984582a +msgid "**Description**" +msgstr "" + +#: ../../pixmap.rst:656 3f28e0c2c0e44d239075c2258795286a +msgid "jpg, jpeg" +msgstr "" + +#: ../../pixmap.rst:656 ../../pixmap.rst:657 ../../pixmap.rst:663 +#: ../../pixmap.rst:664 18832c370236476095068f372050837f +#: 3eb2a94753b44fdd9c7731ef24aef48b 4a67821c83134b4db3e4be1914c17d60 +#: c83309e3c1934fc7ae1a973ebe7d1300 +msgid "gray, rgb, cmyk" +msgstr "" + +#: ../../pixmap.rst:656 ../../pixmap.rst:658 ../../pixmap.rst:659 +#: ../../pixmap.rst:661 ../../pixmap.rst:662 ../../pixmap.rst:663 +#: 02f9cb78532645d38d5abf940e1679f8 0cdb296b3e59480f8ec76bf53ac1c17b +#: 2e0bd0a838434201878c609cff82145c 73c34c7c328f4d31af9f2258cc254f0d +#: 947c1b80c66441799e2aba09091f8adb dd93afdec02947318d933a37f2c15024 +msgid "no" +msgstr "" + +#: ../../pixmap.rst:656 600504f9efd041ffb5b69ec388b137e9 +msgid ".jpg, .jpeg" +msgstr "" + +#: ../../pixmap.rst:656 26fa6ed5043a4a66a2c7adf39eb4e0cf +msgid "Joint Photographic Experts Group" +msgstr "" + +#: ../../pixmap.rst:657 6f1f99578dd84b0b96b1fb4707aac08b +msgid "pam" +msgstr "" + +#: ../../pixmap.rst:657 ../../pixmap.rst:660 ../../pixmap.rst:664 +#: 1389030dbadc408693776ddaa02d250f db4043e33252451d9cfa830afcf4325c +#: eb6f616d9083427b85a8e817b7b3c601 +msgid "yes" +msgstr "" + +#: ../../pixmap.rst:657 2f529016f72342f3ad621590a17c2720 +msgid ".pam" +msgstr "" + +#: ../../pixmap.rst:657 e2baced162604080b59bf27d358fda6c +msgid "Portable Arbitrary Map" +msgstr "" + +#: ../../pixmap.rst:658 95a9f8727e6846bdad7d42b2756dcf5e +msgid "pbm" +msgstr "" + +#: ../../pixmap.rst:658 ../../pixmap.rst:659 ../../pixmap.rst:660 +#: ../../pixmap.rst:661 ../../pixmap.rst:662 220d5771addc47059dfafb3b7fd7a809 +#: 68fd8f934dac404f86a38dcab3bb7bc2 91f4a25b5a5148af9a8c601bdc987ee9 +#: 9d56458bd5944b7eab22abdec12c33c6 da23d0d1e79b4239bc3b878fd251ed6f +msgid "gray, rgb" +msgstr "" + +#: ../../pixmap.rst:658 10546c5955514cb99a4533ae396c259f +msgid ".pbm" +msgstr "" + +#: ../../pixmap.rst:658 3a22578bed7f479ba9f8bd94ddba617b +msgid "Portable Bitmap" +msgstr "" + +#: ../../pixmap.rst:659 12f4977253d34e7fb05ef71f9b6bb875 +msgid "pgm" +msgstr "" + +#: ../../pixmap.rst:659 34b5715a5a94481fa5410ee5467f5ae1 +msgid ".pgm" +msgstr "" + +#: ../../pixmap.rst:659 06d8a88352b54e25b36fc1dbd2289ecc +msgid "Portable Graymap" +msgstr "" + +#: ../../pixmap.rst:660 31684d0764064d42a3a8d884741e85be +msgid "png" +msgstr "" + +#: ../../pixmap.rst:660 34455c189f334f3ab56545b979560b1b +msgid ".png" +msgstr "" + +#: ../../pixmap.rst:660 682ed1780ad3421e9223fdefb0b8184c +msgid "Portable Network Graphics" +msgstr "" + +#: ../../pixmap.rst:661 f94a2f8f962f47fc9c9b1a7e2a906e11 +msgid "pnm" +msgstr "" + +#: ../../pixmap.rst:661 964f7dfd9ae844129b05d2e56342317d +msgid ".pnm" +msgstr "" + +#: ../../pixmap.rst:661 d627891286e44ad3987520c5e705f3a1 +msgid "Portable Anymap" +msgstr "" + +#: ../../pixmap.rst:662 3ada12b4d8b84c17aac44fec31492b76 +msgid "ppm" +msgstr "" + +#: ../../pixmap.rst:662 29fa1a416b3345479d3cb7258b83155e +msgid ".ppm" +msgstr "" + +#: ../../pixmap.rst:662 9045e7c717ae4d61ae56392d64c8f030 +msgid "Portable Pixmap" +msgstr "" + +#: ../../pixmap.rst:663 b528c16c8d064788976a0d977cf72a73 +msgid "ps" +msgstr "" + +#: ../../pixmap.rst:663 3d3a984cad1f4a1ba8eca7cfbc0af43f +msgid ".ps" +msgstr "" + +#: ../../pixmap.rst:663 f472a32950f140dcbd4258d41e955e95 +msgid "Adobe PostScript Image" +msgstr "" + +#: ../../pixmap.rst:664 d30993e0b1534a1da119de1e713e1fe7 +msgid "psd" +msgstr "" + +#: ../../pixmap.rst:664 c340e5edd2234429989f7c57fcbe6d4f +msgid ".psd" +msgstr "" + +#: ../../pixmap.rst:664 5ad137cb3c0c44fb8491eab0123adabe +msgid "Adobe Photoshop Document" +msgstr "" + +#: ../../pixmap.rst:668 5b70a01cdd2d49678a5104943c6ceb05 +msgid "" +"Not all image file types are supported (or at least common) on all OS " +"platforms. E.g. PAM and the Portable Anymap formats are rare or even " +"unknown on Windows." +msgstr "" + +#: ../../pixmap.rst:669 ac24d0029a85434e89d87aea3c768299 +msgid "" +"Especially pertaining to CMYK colorspaces, you can always convert a CMYK " +"pixmap to an RGB pixmap with *rgb_pix = pymupdf.Pixmap(pymupdf.csRGB, " +"cmyk_pix)* and then save that in the desired format." +msgstr "" + +#: ../../pixmap.rst:670 0d389b2c11cb4b7dbad0be0409dbf4dc +msgid "" +"As can be seen, MuPDF's image support range is different for input and " +"output. Among those supported both ways, PNG and JPEG are probably the " +"most popular." +msgstr "" + +#: ../../pixmap.rst:671 78fe092f468843e984dee90661b2dbac +msgid "" +"We also recommend using \"ppm\" formats as input to tkinter's " +"*PhotoImage* method like this: *tkimg = " +"tkinter.PhotoImage(data=pix.tobytes(\"ppm\"))* (also see the tutorial). " +"This is **very** fast (**60 times** faster than PNG)." +msgstr "" + +#: ../../pixmap.rst:676 ae8dd148bf7a4c1ea2de109295f929f5 +msgid "Footnotes" +msgstr "" + +#: ../../pixmap.rst:677 b53f5a80a69a41dea8df4b23d4e4be3d +msgid "" +"If you need a **vector image** from the SVG, you must first convert it to" +" a PDF. Try :meth:`Document.convert_to_pdf`. If this is not good enough, " +"look for other SVG-to-PDF conversion tools like the Python packages " +"`svglib `_, `CairoSVG " +"`_, `Uniconvertor " +"`_" +" or the Java solution `Apache Batik `_. " +"Have a look at our Wiki for more examples." +msgstr "" + +#: ../../pixmap.rst:679 7efc30a117974783984b2f586a774632 +msgid "" +"To also set the alpha property, add an additional step to this method by " +"dropping or adding an alpha channel to the result." +msgstr "" + +#: ../../footer.rst:46 e3d72edf62c54080b2839fccccec965e +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/point.mo b/docs/locales/ko/LC_MESSAGES/point.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/point.po b/docs/locales/ko/LC_MESSAGES/point.po new file mode 100644 index 000000000..bb7edf9f7 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/point.po @@ -0,0 +1,267 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 ff7f2bbd27574c06a12cfe0f8feaa292 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 a938f9fbdec343399166b697412bd381 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 9b1b01d63ee048cba25d12397c4cbc9c +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../point.rst:7 14b832da77494838a52695d7ed883865 +msgid "Point" +msgstr "" + +#: ../../point.rst:9 ee92bfad50f840c592179ff205c48652 +msgid "" +"*Point* represents a point in the plane, defined by its x and y " +"coordinates." +msgstr "" + +#: ../../point.rst:12 d95d005e957741acbcc453b2978ab474 +msgid "**Attribute / Method**" +msgstr "" + +#: ../../point.rst:12 6cc17250feda46f3895c61daf01ae9ef +msgid "**Description**" +msgstr "" + +#: ../../point.rst:14 41c8142652234b88ac19813753d3307e +msgid ":meth:`Point.distance_to`" +msgstr "" + +#: ../../point.rst:14 261845b5a5b24bf0b064101ff507b23b +msgid "calculate distance to point or rect" +msgstr "" + +#: ../../point.rst:15 4aa6b4f0719c46e498b43fe18d24f3eb +msgid ":meth:`Point.norm`" +msgstr "" + +#: ../../point.rst:15 bb965571d49042f990f2ce83a5b1d501 +msgid "the Euclidean norm" +msgstr "" + +#: ../../point.rst:16 8fa73d7331154012aedebe7f5f583ef0 +msgid ":meth:`Point.transform`" +msgstr "" + +#: ../../point.rst:16 513606c9c9c24e929a77cffeb961406c +msgid "transform point with a matrix" +msgstr "" + +#: ../../point.rst:17 2cb5652a207046aabd4833605b0db9a7 +msgid ":attr:`Point.abs_unit`" +msgstr "" + +#: ../../point.rst:17 a5938582888c4a3bb9c18a1c3f20c2e8 +msgid "same as unit, but positive coordinates" +msgstr "" + +#: ../../point.rst:18 3e5b94700abd4e9f9ee59f420160e03b +msgid ":attr:`Point.unit`" +msgstr "" + +#: ../../point.rst:18 2b7bbc4e8d9b49fd90eba605096d6695 +msgid "point coordinates divided by *abs(point)*" +msgstr "" + +#: ../../point.rst:19 31b75b9a5271468b91957b2b1e4f4cdc +msgid ":attr:`Point.x`" +msgstr "" + +#: ../../point.rst:19 62613a63800c42a9b2e4b7e25ce06a1b +msgid "the X-coordinate" +msgstr "" + +#: ../../point.rst:20 03bda37b4f4e43d5b2c87664d47e7c88 +msgid ":attr:`Point.y`" +msgstr "" + +#: ../../point.rst:20 1f7a039317c9403b9eef49abcffc3c17 +msgid "the Y-coordinate" +msgstr "" + +#: ../../point.rst:23 226585c9d32d4bdda8ea50151987bb6f +msgid "**Class API**" +msgstr "" + +#: ../../point.rst:35 52e6fd50060a435cbcd1ea5ea07199d9 +msgid "Overloaded constructors." +msgstr "" + +#: ../../point.rst:37 858213bf59564a6493343f329aa59c60 +msgid "Without parameters, *Point(0, 0)* will be created." +msgstr "" + +#: ../../point.rst:39 fe4c165d5aa24d3a979783344bfd9ac0 +msgid "" +"With another point specified, a **new copy** will be created, " +"\"sequence\" is a Python sequence of 2 numbers (see " +":ref:`SequenceTypes`)." +msgstr "" + +#: ../../point.rst 0eddda1bb6c54ccaa7d284736b29da50 +#: 3b9ed60226ef48f0a657c5ba46c27350 c7f85b4fbec2467896a422f72188865d +msgid "Parameters" +msgstr "" + +#: ../../point.rst:41 97152760b7ba410cb622804600ef1a35 +msgid "x coordinate of the point" +msgstr "" + +#: ../../point.rst:43 7926764c81784f70845fd05cb89d5865 +msgid "y coordinate of the point" +msgstr "" + +#: ../../point.rst:47 5c3faa24b7e144068803db83b33fe793 +msgid "" +"Calculate the distance to *x*, which may be :data:`point_like` or " +":data:`rect_like`. The distance is given in units of either pixels " +"(default), inches, centimeters or millimeters." +msgstr "" + +#: ../../point.rst:49 44d8777c04344d47bc4a9242808880d1 +msgid "to which to compute the distance." +msgstr "" + +#: ../../point.rst:51 91e44f65560e4211accb6c725eebfdd6 +msgid "the unit to be measured in. One of \"px\", \"in\", \"cm\", \"mm\"." +msgstr "" + +#: ../../point.rst 64687f2c94ef4b5ba2750e3eb184ad05 +#: cd80063c5dc9498cbbdd25b759d31cdb +msgid "Return type" +msgstr "" + +#: ../../point.rst a750839310d34c5d887db8268777489a +msgid "Returns" +msgstr "" + +#: ../../point.rst:54 bc0f187b31f44a7181e31d08f7c53a82 +msgid "" +"the distance to *x*. If this is :data:`rect_like`, then the distance * " +"is the length of the shortest line connecting to one of the rectangle " +"sides * is calculated to the **finite version** of it * is zero if it " +"**contains** the point" +msgstr "" + +#: ../../point.rst:54 ae37d128ae1440f3bbd8ed1ea99f2152 +msgid "the distance to *x*. If this is :data:`rect_like`, then the distance" +msgstr "" + +#: ../../point.rst:56 9ee6925c977945fe973ed9ab955366b2 +msgid "" +"is the length of the shortest line connecting to one of the rectangle " +"sides" +msgstr "" + +#: ../../point.rst:57 3081d399626b49c987de03dbfa3d0ff5 +msgid "is calculated to the **finite version** of it" +msgstr "" + +#: ../../point.rst:58 c71eaa596c2c423b862c9e70cb89f044 +msgid "is zero if it **contains** the point" +msgstr "" + +#: ../../point.rst:62 a6403033f7bf44a591174a022d0fdf1c +msgid "New in version 1.16.0" +msgstr "" + +#: ../../point.rst:64 7ece798ec8144d4692eb9a2959a40823 +msgid "" +"Return the Euclidean norm (the length) of the point as a vector. Equals " +"result of function *abs()*." +msgstr "" + +#: ../../point.rst:68 f946cd0be509442bb0d77202325e2f96 +msgid "Apply a matrix to the point and replace it with the result." +msgstr "" + +#: ../../point.rst:70 97f1624c012a40e1b233376529f768b0 +msgid "The matrix to be applied." +msgstr "" + +#: ../../point.rst:72 ../../point.rst:80 ../../point.rst:86 +#: 18880915c78345d4a3e9807be13f50b7 52b88570e26b4eb5b5d6335523021f5f +#: aab72bb00a464b30aa87b8638935ebd6 +msgid ":ref:`Point`" +msgstr "" + +#: ../../point.rst:76 348afd234c5c4c98ba5a47b9d5463fbb +msgid "" +"Result of dividing each coordinate by *norm(point)*, the distance of the " +"point to (0,0). This is a vector of length 1 pointing in the same " +"direction as the point does. Its x, resp. y values are equal to the " +"cosine, resp. sine of the angle this vector (and the point itself) has " +"with the x axis." +msgstr "" + +#: ../../point.rst 68c8e993f1924162940b72535b1ce094 +#: 74cca4c04a7c48d1a05b1cef455309b7 8ab750f04c354beda9b8193eb29e148a +#: c3fab6e7e5714f6cb98f51b356a62c80 +msgid "type" +msgstr "" + +#: ../../point.rst:84 1c2c3c05d9164c73a34b01b96b77e536 +msgid "" +"Same as :attr:`unit` above, replacing the coordinates with their absolute" +" values." +msgstr "" + +#: ../../point.rst:90 fd219a7540914e5ea48f7ac85865752a +msgid "The x coordinate" +msgstr "" + +#: ../../point.rst:92 ../../point.rst:98 2782c521357b46fcb493227c412705b4 +#: 7c544b58e0744796b55d935cf4074748 +msgid "float" +msgstr "" + +#: ../../point.rst:96 49f24b3a0ef74f0c936055a979a0c047 +msgid "The y coordinate" +msgstr "" + +#: ../../point.rst:102 89afd299e213428fb3ff2efbf34ee8cf +msgid "" +"This class adheres to the Python sequence protocol, so components can be " +"accessed via their index, too. Also refer to :ref:`SequenceTypes`." +msgstr "" + +#: ../../point.rst:103 211bda314be541968172253f25a72895 +msgid "" +"Rectangles can be used with arithmetic operators -- see chapter " +":ref:`Algebra`." +msgstr "" + +#: ../../footer.rst:46 065c44f95f8c488584785e74c127cd30 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.mo b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po new file mode 100644 index 000000000..d7f656bf2 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po @@ -0,0 +1,461 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 69bdc5540cdf44a780d55453fad1a7fa +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 75b189cbfec540cfa54ca608b1023c06 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c2034d5aea3c471fa5ec4cb90d2c2101 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pymupdf-layout/index.rst:8 65880921881d4c9a95f25a114c1617cc +msgid "PyMuPDF Layout" +msgstr "" + +#: ../../pymupdf-layout/index.rst:11 26826b75387e4aadb2a29e8f577d4b8a +msgid "" +"|PyMuPDF Layout| is a lightweight layout analysis extension for |PyMuPDF|" +" that turns PDFs into clean, structured data with minimal setup. It’s " +"fast, accurate, and efficient without any GPU requirement." +msgstr "" + +#: ../../pymupdf-layout/index.rst:13 20fc4e9d5eae44d58cced93202624c15 +msgid "" +"It is an optional, but recommended, addition to the |PyMuPDF| library " +"especially if you are required to more accurately extract structured data" +" with better semantic information." +msgstr "" + +#: ../../pymupdf-layout/index.rst:17 6cb4d2e97d464990a633d2defd97698e +msgid "Installing" +msgstr "" + +#: ../../pymupdf-layout/index.rst:19 85aefd1baecd485b800f2238aba711c7 +msgid "Install from |PyPI| with::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:26 5e49fc1022b0491e968e6dac9a6ebd28 +msgid "Using" +msgstr "" + +#: ../../pymupdf-layout/index.rst:29 c4caa7b3525f461385db5339599b8e02 +msgid "" +"In nutshell, |PyMuPDF Layout| detects the layout to extract, but we need " +"|PyMuPDF4LLM| for the API interface. This provides us with options to " +"extract document content as |Markdown|, |JSON| or |TXT|." +msgstr "" + +#: ../../pymupdf-layout/index.rst:31 2851cd8bd3374a3c8fc60a4a0fe524e8 +msgid "" +"Let's set up the Python coding environment to get started and open a PDF " +"then we'll move on to the semantic data extraction." +msgstr "" + +#: ../../pymupdf-layout/index.rst:34 6a1648fb91cc454788a795ffc391432a +msgid "Register packages and open a PDF" +msgstr "" + +#: ../../pymupdf-layout/index.rst:36 1ba188d096bc425abbfee2ba07430823 +msgid "First up let's import the libraries and open a sample document::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:42 d7900ddabe0644c09c53ba9fb57126b0 +msgid "" +"Note, in the above code, that |PyMuPDF Layout| must be imported as shown " +"and before importing |PyMuPDF4LLM| to activate |PyMuPDF|'s layout feature" +" and make it available to |PyMuPDF4LLM|." +msgstr "" + +#: ../../pymupdf-layout/index.rst:44 7b66dd7c7a164f99b1fd0113f2ccf699 +msgid "" +"Omitting the first line would cause execution of standard |PyMuPDF4LLM| -" +" without the layout feature!" +msgstr "" + +#: ../../pymupdf-layout/index.rst:47 a21b9bc7b3844b0ab455c3f364a2057f +msgid "Extract the structured data" +msgstr "" + +#: ../../pymupdf-layout/index.rst:49 35bc60862bb24334a75b7dc95b60156f +msgid "" +"We've activated the |PyMuPDF Layout| library and we've loaded a document," +" next let's extract the structured data. This is now like a super-charged" +" version of standard |PyMuPDF4LLM| with ``Layout`` working behind the " +"scenes combining heuristics with machine learning - for better extraction" +" results." +msgstr "" + +#: ../../pymupdf-layout/index.rst:52 8fabaa7045ea40bca50d9b6cf1904b2b +msgid "Extract as Markdown" +msgstr "" + +#: ../../pymupdf-layout/index.rst:60 253f86c879cd4cfda51045e1311a3cba +msgid "Extract as JSON" +msgstr "" + +#: ../../pymupdf-layout/index.rst:68 8da4947d5b974f24803ba5ed16e8cd77 +msgid "Extract as TXT" +msgstr "" + +#: ../../pymupdf-layout/index.rst:76 5bbe37c28031413fa4f86978d66b0161 +msgid "" +"Please refer top the full :ref:`PyMuPDF4LLM API ` for " +"more." +msgstr "" + +#: ../../pymupdf-layout/index.rst:78 6eedc55b27574fb583b04a9b9f3e3f55 +msgid "Finally we can save the output to an external file as follows::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:86 9bdb3f269e1c497e91d97cdc3a687bff +msgid "Headers & Footers" +msgstr "" + +#: ../../pymupdf-layout/index.rst:89 c239bc0bbbd64d318e6e8fdc55d1efbe +msgid "" +"Many documents will have header and footer information on each page of a " +"PDF which you may or may not want to include. This information can be " +"repetitive and simply not needed ( e.g. the same logo and document title " +"or page number information is not always really important when it comes " +"to extracting the document content )." +msgstr "" + +#: ../../pymupdf-layout/index.rst:91 ee2ea44ed53e4d95860be54bee8ead00 +msgid "" +"|PyMuPDF Layout| is trained in detecting these typical document elements " +"and able to omit them." +msgstr "" + +#: ../../pymupdf-layout/index.rst:93 2e53e75f3b83455ab9f885efaae230c7 +msgid "" +"So in this case we can adjust our API calls to ignore these elements as " +"follows::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:101 fc82782444984a34ab18e40f5123faeb +msgid "" +"Please note that page ``header`` / ``footer`` exclusion is not applicable" +" to JSON output as it aims to always represent all data for the included " +"pages. Please refer top the full :ref:`PyMuPDF4LLM API `" +" for more." +msgstr "" + +#: ../../pymupdf-layout/index.rst:104 a00239ede95b43319833ba01713ce8d7 +msgid "Extending Capability" +msgstr "" + +#: ../../pymupdf-layout/index.rst:108 f3bec49e1ee042caad2ba1f1f8d07230 +msgid "Using with Pro" +msgstr "" + +#: ../../pymupdf-layout/index.rst:110 1a6a4c0ada2842d588768a849fe3c7f3 +msgid "" +"We are able to extend |PyMuPDF Layout| to work with |PyMuPDF Pro| and " +"thus increase our capability by allowing Office documents to be provided " +"as input files. In this case all we have to do is to include the import " +"for |PyMuPDF Pro| and unlock it before we import & activate |PyMuPDF " +"Layout|::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:117 695ebd9778304b3da362108ea2e9695e +msgid "Now we can happily load Office files and convert them as follows::" +msgstr "" + +#: ../../pymupdf-layout/index.rst:124 14fdcdcd4aab4335919c50efc4749185 +msgid "OCR support" +msgstr "" + +#: ../../pymupdf-layout/index.rst:126 99eb4f65329d45c7bb6eaf035c255259 +msgid "" +"The new layout-sensitive PyMuPDF4LLM version also evaluates whether a " +"page would benefit from applying OCR to it. If its heuristics come to " +"this conclusion, the built-in Tesseract-OCR module is automatically " +"invoked. Its results are then handled like normal page content." +msgstr "" + +#: ../../pymupdf-layout/index.rst:128 92a0df16770d46a1be17c84a05ee6af8 +msgid "If Tesseract is not installed on your platform, no OCR is attempted." +msgstr "" + +#: ../../pymupdf-layout/index.rst:137 fddcc1ea96e64c658554704bb141490b +msgid "PyMuPDF Layout and parameter caveats" +msgstr "" + +#: ../../pymupdf-layout/index.rst:140 7900f027d5e94aefb22c02f4ba83a6b2 +msgid "" +"|PyMuPDF Layout| uses |PyMuPDF4LLM| for its interface. However, if you " +"have imported ``Layout`` then the following caveats apply to the method " +"parameters:" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 0642cf3b9b4842168a9b83a1d06e4eac +msgid "Parameter" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 3eb44a2de17a445fb8b8ed8245e03cc5 +msgid "to_markdown" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 a11e031283df470a903feff06d45481b +msgid "to_text" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 0cbc4803367040939fc85ff509844af3 +msgid "to_json" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 20e2c633fff34b4ba62ca527052c8079 +msgid "Comments" +msgstr "" + +#: ../../pymupdf-layout/index.rst:146 a034d76a566b404d95e9aac2fc39a171 +msgid "doc" +msgstr "" + +#: ../../pymupdf-layout/index.rst:146 ../../pymupdf-layout/index.rst:148 +#: ../../pymupdf-layout/index.rst:150 ../../pymupdf-layout/index.rst:154 +#: ../../pymupdf-layout/index.rst:156 ../../pymupdf-layout/index.rst:160 +#: ../../pymupdf-layout/index.rst:173 ../../pymupdf-layout/index.rst:179 +#: ../../pymupdf-layout/index.rst:181 ../../pymupdf-layout/index.rst:195 +#: ../../pymupdf-layout/index.rst:203 068818a44d2f468db01eb1e3340b2ddf +#: 0690c3cfbb2a443cb7421db631e24e13 08eef9a5c6914160a3445d125b84c640 +#: 13e87a62cf3d4fb59de03d87cae59ea1 1fa52c19198247198101c560907493e5 +#: 2996ea664103455f8649896a925bff10 323af2167afa47579fb625940d5a4524 +#: 340f851a7c23432b8a36e4a6540166fe 3c6cdb8a60d742f7b935bccb0c7def6e +#: 4a30dc9de6d7441cb0ddb27bd890ae37 4ebd87d9dd5e4abbbfbd54dadb71c611 +#: 4fcc8cb87e474b05819c6a4b6bb25178 50303c1ffa214918b48f10a8933d50e1 +#: 521023f41c934cadb610eebfa8a7f081 615d79ebbb344a7a9e9c7d0dfd223fc0 +#: 773ef62fb56a453b962abd09a084a2dd 77d6080909844423a0f470a49866d84a +#: 8d5b8d3f28bf4bff9396fc3bcedb4dd2 8df37e5f9251457fab0aff8602c4b9fd +#: 986d476859504964a9a5ebef71fd0075 99e5b687820f4455960421ab4944cc00 +#: 99f5ec6922d148898c805085e81bb83f b2819d7080834bd3ba45a2854683fb39 +#: b3d9d1c0aab34f1c827e97178a3592b0 c0a638c053e74162815b811edbc008e4 +#: c9455f9401ef41fb857cbab2ba3a6bc9 ce153f4e6d844cf2923ecd2c9f263012 +#: d99fa30a6c204ad2b6c9be48f4f0ef40 ddb3f88f90a343c2937c199c0437e4f5 +#: e3b2457835f84671b58ecc288178d5b1 ec2d2d58e4f3425b874a4ca45c5d2d36 +msgid "✔️" +msgstr "" + +#: ../../pymupdf-layout/index.rst:148 af76689881b9484896f1889b34284589 +msgid "header" +msgstr "" + +#: ../../pymupdf-layout/index.rst:148 ../../pymupdf-layout/index.rst:150 +#: 54047d35dd0d4340ad828abcc3d4ae73 6957d49d6a86449c9eac38b2a54e6cc3 +msgid "ignored" +msgstr "" + +#: ../../pymupdf-layout/index.rst:148 ../../pymupdf-layout/index.rst:150 +#: 4ab4d0c7a8a24f25986f9f0da74a34bf 57878a2faa184f9c83e5541e0e238e5b +msgid "**new:** replaces ``margins``" +msgstr "" + +#: ../../pymupdf-layout/index.rst:150 a9f77be1d664483ba6b37c632650f97b +msgid "footer" +msgstr "" + +#: ../../pymupdf-layout/index.rst:152 d0aa12aa4f00428986bd9f1bfafb57ef +msgid "detect_bg_color" +msgstr "" + +#: ../../pymupdf-layout/index.rst:152 ../../pymupdf-layout/index.rst:162 +#: ../../pymupdf-layout/index.rst:164 ../../pymupdf-layout/index.rst:167 +#: ../../pymupdf-layout/index.rst:169 ../../pymupdf-layout/index.rst:171 +#: ../../pymupdf-layout/index.rst:175 ../../pymupdf-layout/index.rst:177 +#: ../../pymupdf-layout/index.rst:183 ../../pymupdf-layout/index.rst:185 +#: ../../pymupdf-layout/index.rst:199 ../../pymupdf-layout/index.rst:201 +#: 037cf03b45de4c73a42ca68f8b58e8d8 0c4f9b0a754a4130875fadd22859ceee +#: 177bda5be8d74b74a02a312beb496344 269fee74fba044ca8acb5475966e1115 +#: 2c220593bf574b1d85c715883132d849 329fa547d17240a68f456272d25e433f +#: 3d36e353b9c4414088ed45fd637f555f 443ac9cbd7884660acbc1f4768f37cc6 +#: 4629f1f4dc7947779adb8d1b3018fae0 5453a421010344e4baffffc324a79e89 +#: 54f2ca47f5a247c5a8fa9a22636175dd 5688e49e2a0942cb87ee1a84c12e5b9f +#: 575f36da9b824300b73aee4031c0cd50 577a53d6cb094743b8251dfec25e426b +#: 5ed39c1ecda44e6db9e9a5483c1cf8cc 617e58b82cb94261bfd565e709aa011f +#: 90c9c546859c43919105a8a6c6486072 a67a9ecd7cf3486cb7893dedc9896ae9 +#: a6c5fdafe0cc4d7dab5b70a076cb2bfc a6c888b311da43159bb397ef13d60f49 +#: a88f92dc304b45c39840633b1d3bfd88 b475e4ab0ea241bda89d6d58b97f25d1 +#: bf9f6bea83754ed692f50be05e399043 c1334286266a4c8a9af242a549f21c8e +#: c692ae8281e04d2cb72f39cb96fcfb76 cc97ee937e26408ebd168280efee9ee3 +#: d4909e6b4ec248b7bd8d88a9e5297910 e4ee587fe79a4818b20273582191d961 +#: e768cb4c266a4fc8a76023f1ae232acb eceffb2e674145e29657be7bbf85f53d +#: ed537ecf65b445e686f3b11090ea6a54 f3a11a7308ce4d3ebd50335ad46594f7 +#: f47af19af03a45979d0d8062269cdce8 f58e9d907c3c4b0385c02fec7667056a +#: f770075c35b242128e597c9a21787dd6 fcb03e7a0a704153bc6499a549a66899 +msgid "❌" +msgstr "" + +#: ../../pymupdf-layout/index.rst:154 0f49a5f2a10b4d3483fe454f5d4127ff +msgid "dpi" +msgstr "" + +#: ../../pymupdf-layout/index.rst:156 2ce7c0840b074f9f89c879b7c516f916 +msgid "embed_images" +msgstr "" + +#: ../../pymupdf-layout/index.rst:158 9fae796ddf3d4f94817ad1ec8104217d +msgid "extract_words" +msgstr "" + +#: ../../pymupdf-layout/index.rst:158 ../../pymupdf-layout/index.rst:187 +#: ../../pymupdf-layout/index.rst:189 ../../pymupdf-layout/index.rst:191 +#: ../../pymupdf-layout/index.rst:193 ../../pymupdf-layout/index.rst:197 +#: 02cf7166619e45268ae2f38531587a19 030575d0b43f4fdcb1ac1f5e90e7f37a +#: 04fcdcb70c51491a95b69936bef8b580 07b9b24696f24478abc7cf1859b9232b +#: 3d410b7559fe4ad0a91f3f28649af4f6 439b7fb5351e457fb90b5d2737f7f6f5 +#: 452365aff045448496f6b44cbf4df358 58b4f806d86442099784e34b30f9049e +#: 691d26f0c3864ceabd96fb1937e3bbd7 85f711e000cc440d94922f7cf086d5a7 +#: 88d45b4aa2ac43a0916160fedeb12e98 a3859bcf09ed4d268230d76c7fe04fed +#: a824e96fb98e4fc3ba6bd28549fbf4fa b68c441f0baf44d3903525dedcf01258 +#: cc677c9bea974de48d747482441b9be6 eb7579f48b2244b3a7fb30fe80410fed +#: eefc53bf898643739dbb14279ab26b39 ffd983ad5e524696ba650d59baaf5048 +msgid "later" +msgstr "" + +#: ../../pymupdf-layout/index.rst:158 ../../pymupdf-layout/index.rst:187 +#: ../../pymupdf-layout/index.rst:189 ../../pymupdf-layout/index.rst:191 +#: ../../pymupdf-layout/index.rst:193 ../../pymupdf-layout/index.rst:197 +#: 6a12374d878342418d29f3fc630535f1 729a892af35947fb91c98511c6be0b08 +#: b69eb7177bce4a7eb31590c9bc32d45c e73ee03b9f244390b91624ded6aac3a7 +#: f1d10bcdcaac4a0f86fbe3dcab155ff9 fab9fa35a7d14d1aa32cbf65818a2c16 +msgid "postponed" +msgstr "" + +#: ../../pymupdf-layout/index.rst:160 0a49f78e5c62484094cc1c85d6741a7b +msgid "filename" +msgstr "" + +#: ../../pymupdf-layout/index.rst:162 d04a4d1509e14038860443d41643af9f +msgid "fontsize_limit" +msgstr "" + +#: ../../pymupdf-layout/index.rst:162 ../../pymupdf-layout/index.rst:167 +#: ../../pymupdf-layout/index.rst:169 ../../pymupdf-layout/index.rst:175 +#: ../../pymupdf-layout/index.rst:177 ../../pymupdf-layout/index.rst:183 +#: ../../pymupdf-layout/index.rst:185 ../../pymupdf-layout/index.rst:199 +#: 07ed59e3b5b24c07ba338008f9e881d9 1836526077e24ef1ac357b066984045d +#: 3d7c7766402740949e270a384e37f5a7 6060f327ed4b4672a2dc22f1268c1809 +#: ae9bf45f059b4b3cae574253cc9fbea4 b7a641f0c7f24a4e9d4f3a528be21093 +#: d5218d9c1d624865be5039e9dede61c5 fe36fba64a64462a917a32f226bcc3eb +msgid "obsolete" +msgstr "" + +#: ../../pymupdf-layout/index.rst:164 b6282276cfba4dc1b37b41d5e2913e29 +msgid "force_text" +msgstr "" + +#: ../../pymupdf-layout/index.rst:164 f0b935a546764c8a96239ef8111a1f79 +msgid "text in pictures is always ignored" +msgstr "" + +#: ../../pymupdf-layout/index.rst:167 9fe7a34b4a014bc2afb30f28487f9b52 +msgid "graphics_limit" +msgstr "" + +#: ../../pymupdf-layout/index.rst:169 1ac6874d5d4a48a18ce2c93197fde65d +msgid "hdr_info" +msgstr "" + +#: ../../pymupdf-layout/index.rst:171 72682ae27da04948b9f988b564308e9d +msgid "ignore_alpha" +msgstr "" + +#: ../../pymupdf-layout/index.rst:173 f2d8cde52f9948dda58ace10f5e865d1 +msgid "ignore_code" +msgstr "" + +#: ../../pymupdf-layout/index.rst:175 60c85621f6ff4506a460423aaab9a67f +msgid "ignore_graphics" +msgstr "" + +#: ../../pymupdf-layout/index.rst:177 9513eed707794239ad97baa9cfd136e7 +msgid "ignore_images" +msgstr "" + +#: ../../pymupdf-layout/index.rst:179 e6e3ea6a21814d51a7ade7192e23cf98 +msgid "image_format" +msgstr "" + +#: ../../pymupdf-layout/index.rst:181 910d2628948d47fab9e9baade593f743 +msgid "image_path" +msgstr "" + +#: ../../pymupdf-layout/index.rst:183 ba6e60df5c414e6fa3f372adedaf0f7d +msgid "image_size_limit" +msgstr "" + +#: ../../pymupdf-layout/index.rst:185 3b92ae8dbd114e9db295e803e0f65aaf +msgid "margins" +msgstr "" + +#: ../../pymupdf-layout/index.rst:187 31b9f54461174d0db4d217067064a9c0 +msgid "page_chunks" +msgstr "" + +#: ../../pymupdf-layout/index.rst:189 d75cd782ef7c48ab910d8db93fa073c9 +msgid "page_height" +msgstr "" + +#: ../../pymupdf-layout/index.rst:191 63083e192eea418f9db2d138ec32e2bb +msgid "page_separators" +msgstr "" + +#: ../../pymupdf-layout/index.rst:193 bab876688b124ad886c4e738e7ab5eeb +msgid "page_width" +msgstr "" + +#: ../../pymupdf-layout/index.rst:195 bb085d405a43484486042257ff985bbf +msgid "pages" +msgstr "" + +#: ../../pymupdf-layout/index.rst:197 c13f0a229d2e44babf233bb21b554a56 +msgid "show_progress" +msgstr "" + +#: ../../pymupdf-layout/index.rst:199 9fdc17aff7f9403b8f46890e9f09cd56 +msgid "table_strategy" +msgstr "" + +#: ../../pymupdf-layout/index.rst:201 111d276552b24d8aa9f46214e58ca21a +msgid "use_glyphs" +msgstr "" + +#: ../../pymupdf-layout/index.rst:201 95ec15fc72054b6699de7228b0ce9bc9 +msgid "always show �" +msgstr "" + +#: ../../pymupdf-layout/index.rst:203 5b9fb335e14843328c32dac736894c1e +msgid "write_images" +msgstr "" + +#: ../../footer.rst:46 fcc43bbf382644f6928a40bc9aea37c1 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.mo b/docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.po new file mode 100644 index 000000000..c256722a0 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pymupdf-pro/index.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 ff337a9fa03e4fd6a3d7aaec4930912f +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 b9e1a76b005b46c7a35e27ac36b668dd +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 5b66ad60d8974f3fb8061286f4b23214 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pymupdf-pro/index.rst:8 07624f1e03dd463c99bf82f95b91a35e +msgid "PyMuPDF Pro" +msgstr "" + +#: ../../pymupdf-pro/index.rst:11 879666c817c94726a9df9e5880d5425a +msgid "|PyMuPDF Pro| is a set of *commercial extensions* for |PyMuPDF|." +msgstr "" + +#: ../../pymupdf-pro/index.rst:13 ae90e3fd121f4e04a0a9ecd747514717 +msgid "" +"Enhance |PyMuPDF| capability with **Office** document support & " +"**RAG/LLM** integrations." +msgstr "" + +#: ../../pymupdf-pro/index.rst:15 aed2c2f793d348d8bf6eb0811eecb47a +msgid "" +"Enables Office document handling, including ``doc``, ``docx``, ``hwp``, " +"``hwpx``, ``ppt``, ``pptx``, ``xls``, ``xlsx``, and others." +msgstr "" + +#: ../../pymupdf-pro/index.rst:16 997a064abea1408d914a30cae0872289 +msgid "Supports text and table extraction, document conversion and more." +msgstr "" + +#: ../../pymupdf-pro/index.rst:17 7ee872ab1d5c4992b77ebbf8c3cf149c +msgid "Includes the commercial version of |PyMuPDF4LLM|." +msgstr "" + +#: ../../pymupdf-pro/index.rst:19 83cc2a9a8a854516b90d26d2841aad02 +msgid "" +"To enquire about obtaining a commercial license, then `use this contact " +"page `_." +msgstr "" + +#: ../../pymupdf-pro/index.rst:24 f0a9c51213864c898871ca01453557e1 +msgid "" +"A licensed version of |PyMuPDF Pro| also gives you a licensed version of " +"|PyMuPDF4LLM|. If you are interested in using the |PyMuPDF4LLM| package " +"you should install it separately." +msgstr "" + +#: ../../pymupdf-pro/index.rst:28 4a1d503fea744f4ba62d54e186f02d87 +msgid "Platform support" +msgstr "" + +#: ../../pymupdf-pro/index.rst:30 78076f4c0458474f913d726a0fb0e0bc +msgid "Available for these platforms only:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:32 ed38f46c156840689524033bf7da829d +msgid "Windows x86_64." +msgstr "" + +#: ../../pymupdf-pro/index.rst:33 259897daea654cb8a90bc8e65c6e4f76 +msgid "Linux x86_64 (glibc)." +msgstr "" + +#: ../../pymupdf-pro/index.rst:34 1923df7caa0b4f04a3b259b4c866ba6e +msgid "MacOS x86_64." +msgstr "" + +#: ../../pymupdf-pro/index.rst:35 fd5d8bf6fc12467a826ce8202a1d2ec3 +msgid "MacOS arm64." +msgstr "" + +#: ../../pymupdf-pro/index.rst:39 f2952d3e2f47435bb640b83bd15721c4 +msgid "Office file support" +msgstr "" + +#: ../../pymupdf-pro/index.rst:41 7c38d85a3c164f3a90d869b52ef96eb1 +msgid "" +"In addition to the `standard file types supported by PyMuPDF " +"`, |PyMuPDF Pro| supports:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:46 67438064f36f474186aeb4fbfb093d31 +msgid "**DOC/DOCX**" +msgstr "" + +#: ../../pymupdf-pro/index.rst:47 9ab995c3f8214b9ab04698d96a84b4e2 +msgid "**XLS/XLSX**" +msgstr "" + +#: ../../pymupdf-pro/index.rst:48 9e2c997d6ac44df79efb09f56a593cbb +msgid "**PPT/PPTX**" +msgstr "" + +#: ../../pymupdf-pro/index.rst:49 28e3c375094f40258eea347ffcaf5a8f +msgid "**HWP/HWPX**" +msgstr "" + +#: ../../pymupdf-pro/index.rst:66 9ccca49db9fb4df98d9464183c30d68c +msgid "Usage" +msgstr "" + +#: ../../pymupdf-pro/index.rst:69 edd61111e81a46198c9ef49a53e782b0 +msgid "Installation" +msgstr "" + +#: ../../pymupdf-pro/index.rst:71 f961577e8ffd49469227db2bbdcd9bb2 +msgid "Install via pip with:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:79 699e6bf8334b4cf8b23793ff0e45ccbf +msgid "Loading an **Office** document" +msgstr "" + +#: ../../pymupdf-pro/index.rst:81 08e39b8bfc514665aafb5c1aa211bcfc +msgid "" +"Import |PyMuPDF Pro| and you can then reference **Office** documents " +"directly, e.g.:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:92 e21e201731344245a88c7e6bdd9c2dc2 +msgid "" +"All standard |PyMuPDF| functionality is exposed as expected - |PyMuPDF " +"Pro| handles the extended **Office** file types" +msgstr "" + +#: ../../pymupdf-pro/index.rst:95 32d84f02e19a40b5bb42c1d26a81afe5 +msgid "" +"From then on you can work with document pages just as you would do " +"normally, but with respect to the `restrictions " +"`." +msgstr "" + +#: ../../pymupdf-pro/index.rst:99 36c298b59008468ab926c22842511b25 +msgid "Converting an **Office** document to |PDF|" +msgstr "" + +#: ../../pymupdf-pro/index.rst:101 c01333a0e65f42d29d469ace26b3fd91 +msgid "" +"The following code snippet can convert your **Office** document to |PDF| " +"format:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:119 cd5eb6eaf8094ced89572a48282454ca +msgid "Restrictions" +msgstr "" + +#: ../../pymupdf-pro/index.rst:122 badbfba0a2a0495290e9594585aaefc9 +msgid "" +"|PyMuPDF Pro| functionality is restricted without a license key as " +"follows:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:124 0edbc072da504add956116e21d3eebde +msgid "**Only the first 3 pages of any document will be available.**" +msgstr "" + +#: ../../pymupdf-pro/index.rst:126 6fa9f0d4dec94b3db782dacdc632f5a0 +msgid "" +"To unlock full functionality you should `obtain a trial key " +"`_." +msgstr "" + +#: ../../pymupdf-pro/index.rst:132 ff0d00debbdb4746809d8750352f10bc +msgid "Trial keys" +msgstr "" + +#: ../../pymupdf-pro/index.rst:134 e689628360fa4b4497ccbb720dd0faca +msgid "" +"To obtain a license key `please fill out the form on this page " +"`_. You will then have the trial key " +"emailled to the address you submitted." +msgstr "" + +#: ../../pymupdf-pro/index.rst:138 b4af428798424c3baae4771829727b28 +msgid "Using a key" +msgstr "" + +#: ../../pymupdf-pro/index.rst:141 6766aa2a1d144b81a15c3ad28ce403da +msgid "Initialize |PyMuPDF Pro| with a key as follows:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:149 92e495f1e7934e1e83d346f56ab9833d +msgid "" +"This will allow you to evaluate the product for a limited time. If you " +"want to use |PyMuPDF Pro| after this time you should then `enquire about " +"obtaining a commercial license `_." +msgstr "" + +#: ../../pymupdf-pro/index.rst:153 a394162132a04de092aabb5d2fcbc814 +msgid "Fonts" +msgstr "" + +#: ../../pymupdf-pro/index.rst:155 8e2db8a260ac4b8597a804b55d7ab547 +msgid "" +"By default `pymupdf.pro.unlock()` searches for all installed font " +"directories." +msgstr "" + +#: ../../pymupdf-pro/index.rst:157 e0cd7217fd79445ea7e79586abad31d1 +msgid "This can be controlled with keyword-only args:" +msgstr "" + +#: ../../pymupdf-pro/index.rst:159 879866813ec14fd08f5b249e833e7ee7 +msgid "" +"`fontpath`: specific font directories, either as a list/tuple or " +"`os.sep`-separated string. If None (the default), we use " +"`os.environ['PYMUPDFPRO_FONT_PATH']` if set." +msgstr "" + +#: ../../pymupdf-pro/index.rst:161 5ca9e3934e6c4c91b603c12662c79cf6 +msgid "" +"`fontpath_auto`: Whether to append system font directories. If None (the " +"default) we use true if `os.environ['PYMUPDFPRO_FONT_PATH_AUTO']` is '1'." +" If true we append all system font directories." +msgstr "" + +#: ../../pymupdf-pro/index.rst:165 5ecf267b5f8f4e68be5f69f1cbee4782 +msgid "" +"Function `pymupdf.pro.get_fontpath()` returns a tuple of all font " +"directories used by `unlock()`." +msgstr "" + +#: ../../footer.rst:46 b26519c017c744e3b52c222b2633f6ed +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po new file mode 100644 index 000000000..c170182bb --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po @@ -0,0 +1,732 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 33b51be1a3fd400bb40cf8f712ffa8bc +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 39bd7529ca584c02af4af5ea09626b14 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 ce702b4c4ac14bb3b521ee52767b9645 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pymupdf4llm/api.rst:9 4e5664b1124d48d18fd12e59b727a0bd +msgid "API" +msgstr "" + +#: ../../pymupdf4llm/api.rst:12 e4fe663d1ee04cf7bbc808eeb9ce308b +msgid "The |PyMuPDF4LLM| API" +msgstr "" + +#: ../../pymupdf4llm/api.rst:17 6e87f5a4e1a44605b75b0eed1670adc7 +msgid "Prints the version of the library." +msgstr "" + +#: ../../pymupdf4llm/api.rst:27 6713d68d075249318098787f8ebab5ab +msgid "" +"Reads the pages of the file and outputs the text of its pages in |JSON| " +"format." +msgstr "" + +#: ../../pymupdf4llm/api.rst 1491979de5344cbe840b1920c11c75f7 +#: 23081d42741344f3ba3d30b671c6b8aa 5386b729aba74f68a0da40e4c33d2fa5 +#: 5ca0d15e7bc84bec9185a71d076a5fc5 b34786abdfc2468bb4587550ce7f1a91 +#: faf9b5ec738347e2abdd6dce0938b6c2 +msgid "Parameters" +msgstr "" + +#: ../../pymupdf4llm/api.rst:29 ../../pymupdf4llm/api.rst:77 +#: ../../pymupdf4llm/api.rst:172 1914db31df714f3b853ff56e0ac631e2 +#: 3f30ef9516814e46b7e716ec8e7605b4 dd4aa884dc9e4ee7b8f93b34c10e2879 +msgid "" +"the file, to be specified either as a file path string, or as a |PyMuPDF|" +" :class:`Document` (created via `pymupdf.open`). In order to use " +"`pathlib.Path` specifications, Python file-like objects, documents in " +"memory etc. you **must** use a |PyMuPDF| :class:`Document`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:31 fd97596633aa43669efcc45eed086a93 +msgid "" +"specify the desired image resolution in dots per inch. Default value is " +"150." +msgstr "" + +#: ../../pymupdf4llm/api.rst:33 ../../pymupdf4llm/api.rst:109 +#: 50c895251d984ff79f0115d1217dd73c eb60e14666724534a2ba0d929a87d223 +msgid "" +"specify the desired image format via its extension. Default is \"png\" " +"(portable network graphics). Another popular format may be \"jpg\". " +"Possible values are all :ref:`supported output formats " +"`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:35 ../../pymupdf4llm/api.rst:111 +#: 112525a23b4d407687769eebc8c36c1b 47a71d8bfa964db4a3e4bf5eccc1a08d +msgid "" +"store images in this folder. Relevant if `write_images=True`. Default is " +"the path of the script directory." +msgstr "" + +#: ../../pymupdf4llm/api.rst:37 ../../pymupdf4llm/api.rst:143 +#: ../../pymupdf4llm/api.rst:180 0c8d508927e345c294c0e52dea7d8742 +#: 5c6234b4359548cf9047308e5aa5e85d ffc2792c5a9943b2a205d39f82eb0a26 +msgid "" +"optional, the pages to consider for output (caution: specify 0-based page" +" numbers). If omitted (`None`) all pages are processed." +msgstr "" + +#: ../../pymupdf4llm/api.rst:42 d607751b6e6b4bf4a197ed90eb3382d4 +msgid "" +"Please note that page ``header`` / ``footer`` exclusion is not applicable" +" to |JSON| output as it aims to always represent all data for the " +"included pages." +msgstr "" + +#: ../../pymupdf4llm/api.rst:75 9812053178d349d9a0bf26f0631c7d9a +msgid "" +"Reads the pages of the file and outputs the text of its pages in " +"|Markdown| format. How this should happen in detail can be influenced by " +"a number of parameters. Please note that **support for building page " +"chunks** from the |Markdown| text is supported." +msgstr "" + +#: ../../pymupdf4llm/api.rst:79 e0e7abe0ad424df7a5e1e515cd5df497 +msgid "" +"does a simple check for the general background color of the pages " +"(default is ``True``). If any text or vector has this color it will be " +"ignored. May increase detection accuracy." +msgstr "" + +#: ../../pymupdf4llm/api.rst:81 7d8c08728c8e46f8b4f495fba9f4c988 +msgid "" +"specify the desired image resolution in dots per inch. Relevant only if " +"`write_images=True`. Default value is 150." +msgstr "" + +#: ../../pymupdf4llm/api.rst:83 68997715f4354ca281cec1bd4066f3ec +msgid "" +"like `write_images`, but images will be included in the markdown text as " +"base64-encoded strings. Ignores `write_images` and `image_path` if used. " +"This may drastically increase the size of your markdown text." +msgstr "" + +#: ../../pymupdf4llm/api.rst:85 de13a21d25604cc58644b596d890eb11 +msgid "" +"a value of `True` enforces `page_chunks=True` and adds key \"words\" to " +"each page dictionary. Its value is a list of words as delivered by " +"PyMuPDF's `Page` method `get_text(\"words\")`. The sequence of the words " +"in this list is the same as the extracted text." +msgstr "" + +#: ../../pymupdf4llm/api.rst:87 4e0ba5ecb8f841b688c2c627aa667476 +msgid "" +"(New in v.0.0.19) Overwrites or sets the desired image file name of " +"written images. Useful when the document is provided as a memory object " +"(which has no inherent file name)." +msgstr "" + +#: ../../pymupdf4llm/api.rst:89 a298db4930294be3a4f98f81b7d0ad8d +msgid "" +"limit the font size to consider for text extraction. If the font size is " +"lower than what is set then the text won't be considered for extraction. " +"Default is `3`, meaning only text with a font size `>= 3` will be " +"considered for extraction." +msgstr "" + +#: ../../pymupdf4llm/api.rst:91 ../../pymupdf4llm/api.rst:176 +#: 2f62d707418b4b1ebb8386e2a8e12951 8e51763542334db8870295069b42df9b +msgid "" +"boolean to switch on/off footer content. This parameter controls whether " +"we want to include or omit the footer content from all the document " +"pages. Useful if the document has repetitive footer content which doesn't" +" add any value to the overall extraction data. Default is `True` meaning " +"that footer content will be considered." +msgstr "" + +#: ../../pymupdf4llm/api.rst:93 81d99b1cb5f941aa8f76f0555160e0ca +msgid "" +"generate text output even when overlapping images / graphics. This text " +"then appears after the respective image. If `write_images=True` this " +"parameter may be `False` to suppress repetition of text on images." +msgstr "" + +#: ../../pymupdf4llm/api.rst:95 2c94b2c08ace456ea56ccb130a17bd9e +msgid "" +"use this to limit dealing with excess amounts of vector graphics " +"elements. Scientific documents, or pages simulating text via graphics " +"commands may contain tens of thousands of these objects. As vector " +"graphics are analyzed for multiple purposes, runtime may quickly become " +"intolerable. With this parameter, all vector graphics will be ignored if " +"their count exceeds the threshold. **Changed in v0.0.19:** The page will " +"still be processed, and text, tables and images should be extracted." +msgstr "" + +#: ../../pymupdf4llm/api.rst:97 8f60985232c04a4082e8e747d218034b +msgid "" +"use this if you want to provide your own header detection logic. This may" +" be a callable or an object having a method named `get_header_id`. It " +"must accept a text span (a span dictionary as contained in " +":meth:`~.extractDICT`) and a keyword parameter \"page\" (which is the " +"owning :ref:`Page ` object). It must return a string \"\" or up to " +"6 \"#\" characters followed by 1 space. If omitted (`None`), a full " +"document scan will be performed to find the most popular font sizes and " +"derive header levels based on them. To completely avoid this behavior " +"specify `hdr_info=lambda s, page=None: \"\"` or `hdr_info=False`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:99 ../../pymupdf4llm/api.rst:174 +#: 0d2f15552e204d3f858326a925f5bd31 5f3982c7223341e7830bb1356b1ac08e +msgid "" +"boolean to switch on/off header content. This parameter controls whether " +"we want to include or omit the header content from all the document " +"pages. Useful if the document has repetitive header content which doesn't" +" add any value to the overall extraction data. Default is `True` meaning " +"that header content will be considered." +msgstr "" + +#: ../../pymupdf4llm/api.rst:101 e6c79d9046e24211b0f94cc290ec651a +msgid "" +"if ``True`` includes text even when completely transparent. Default is " +"``False``: transparent text will be ignored which usually increases " +"detection accuracy." +msgstr "" + +#: ../../pymupdf4llm/api.rst:103 3a244cdcfd854196a6e4a514fe8865ff +msgid "" +"if `True` then mono-spaced text does not receive special formatting. Code" +" blocks will no longer be generated. This value is set to `True` if " +"`extract_words=True` is used." +msgstr "" + +#: ../../pymupdf4llm/api.rst:105 165887daf2e34b78802fe050432e6056 +msgid "" +"(New in v.0.0.20) Disregard vector graphics on the page. This may help " +"detecting text correctly when pages are very crowded (often the case for " +"documents representing presentation slides). Also speeds up processing " +"time. This automatically prevents table detection." +msgstr "" + +#: ../../pymupdf4llm/api.rst:107 67d38ed2b2404f9a94b649a2b2dd3209 +msgid "" +"(New in v.0.0.20) Disregard images on the page. This may help detecting " +"text correctly when pages are very crowded (often the case for documents " +"representing presentation slides). Also speeds up processing time." +msgstr "" + +#: ../../pymupdf4llm/api.rst:113 4120a21ad74e43e08e88fab80f146e56 +#, python-format +msgid "" +"this must be a ``0 <= value < 1``. Images are ignored if `width / " +"page.rect.width <= image_size_limit` or `height / page.rect.height <= " +"image_size_limit`. For instance, the default value 0.05 means that to be " +"considered for inclusion, an image's width and height must be larger than" +" 5% of the page's width and height, respectively." +msgstr "" + +#: ../../pymupdf4llm/api.rst:115 418ca5e67f724ac087249542892fb0c5 +msgid "" +"a float or a sequence of 2 or 4 floats specifying page borders. Only " +"objects inside the margins will be considered for output. * `margin=f` " +"yields `(f, f, f, f)` for `(left, top, right, bottom)`. * `(top, bottom)`" +" yields `(0, top, 0, bottom)`. * To always read full pages " +"**(default)**, use `margins=0`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:115 127d16102cc34c94ab263c72e4f7ed03 +msgid "" +"a float or a sequence of 2 or 4 floats specifying page borders. Only " +"objects inside the margins will be considered for output." +msgstr "" + +#: ../../pymupdf4llm/api.rst:117 e1c2526cef8b4033806a039337db0dcd +msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:118 76957bc56f274019ab143dd0a40475f1 +msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:119 2ec1ba697670474f873741c1f7d47eef +msgid "To always read full pages **(default)**, use `margins=0`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:121 589f29af1fb44927974671d52a49fce7 +msgid "" +"if `True` the output will be a list of `Document.page_count` dictionaries" +" (one per page). Each dictionary has the following structure: - " +"**\"metadata\"** - a dictionary consisting of the document's metadata " +":attr:`Document.metadata`, enriched with additional keys " +"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" +" document), and **\"page_number\"** (1-based page number). - " +"**\"toc_items\"** - a list of Table of Contents items pointing to this " +"page. Each item of this list has the format `[lvl, title, pagenumber]`, " +"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " +"a 1-based page number. - **\"tables\"** - a list of tables on this page." +" Each item is a dictionary with keys \"bbox\", \"row_count\" and " +"\"col_count\". Key \"bbox\" is a `pymupdf.Rect` in tuple format of the " +"table's position on the page. - **\"images\"** - a list of images on the" +" page. This a copy of page method :meth:`Page.get_image_info`. - " +"**\"graphics\"** - a list of vector graphics rectangles on the page. This" +" is a list of boundary boxes of clustered vector graphics as delivered by" +" method :meth:`Page.cluster_drawings`. - **\"text\"** - page content as " +"|Markdown| text. - **\"words\"** - if `extract_words=True` was used. " +"This is a list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, " +"wno)` as delivered by `page.get_text(\"words\")`. The **sequence** of " +"these tuples however is the same as produced in the markdown text string " +"and thus honors multi-column text. This is also true for text in tables: " +"words are extracted in the sequence of table row cells." +msgstr "" + +#: ../../pymupdf4llm/api.rst:121 9562a8bc13e64d76a0a1ec065eab4cc8 +msgid "" +"if `True` the output will be a list of `Document.page_count` dictionaries" +" (one per page). Each dictionary has the following structure:" +msgstr "" + +#: ../../pymupdf4llm/api.rst:123 144282e9fb174b5a973a0a216b3f52c7 +msgid "" +"**\"metadata\"** - a dictionary consisting of the document's metadata " +":attr:`Document.metadata`, enriched with additional keys " +"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" +" document), and **\"page_number\"** (1-based page number)." +msgstr "" + +#: ../../pymupdf4llm/api.rst:125 b7aa7094d76642e68f696db57c2792cc +msgid "" +"**\"toc_items\"** - a list of Table of Contents items pointing to this " +"page. Each item of this list has the format `[lvl, title, pagenumber]`, " +"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " +"a 1-based page number." +msgstr "" + +#: ../../pymupdf4llm/api.rst:127 6e6b8762bad942a987b50cd6dbedef31 +msgid "" +"**\"tables\"** - a list of tables on this page. Each item is a dictionary" +" with keys \"bbox\", \"row_count\" and \"col_count\". Key \"bbox\" is a " +"`pymupdf.Rect` in tuple format of the table's position on the page." +msgstr "" + +#: ../../pymupdf4llm/api.rst:129 316c92fc56df47798b42ce47811dafcb +msgid "" +"**\"images\"** - a list of images on the page. This a copy of page method" +" :meth:`Page.get_image_info`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:131 51b2e05b16fc4212a6ff96d5103144e2 +msgid "" +"**\"graphics\"** - a list of vector graphics rectangles on the page. This" +" is a list of boundary boxes of clustered vector graphics as delivered by" +" method :meth:`Page.cluster_drawings`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:133 ac83b7888c79463d8f82fc3e3fc3cb93 +msgid "**\"text\"** - page content as |Markdown| text." +msgstr "" + +#: ../../pymupdf4llm/api.rst:135 ab618137dc79474e907611a6d2b60df8 +msgid "" +"**\"words\"** - if `extract_words=True` was used. This is a list of " +"tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, wno)` as delivered by " +"`page.get_text(\"words\")`. The **sequence** of these tuples however is " +"the same as produced in the markdown text string and thus honors multi-" +"column text. This is also true for text in tables: words are extracted in" +" the sequence of table row cells." +msgstr "" + +#: ../../pymupdf4llm/api.rst:137 a1a06afb69c24d59a1386aad1b25cd49 +msgid "" +"specify a desired page height. For relevance see the `page_width` " +"parameter. If using the default `None`, the document will appear as one " +"large page with a width of `page_width`. Consequently in this case, no " +"markdown page separators will occur (except the final one), respectively " +"only one page chunk will be returned." +msgstr "" + +#: ../../pymupdf4llm/api.rst:139 3e230ea52f6b466ca3ec776ecc335b25 +msgid "" +"if ``True`` inserts a string ``--- end of page=n ---`` at the end of each" +" page output. Intended for debugging purposes. The page number if " +"0-based. The separator string is wrapped with line breaks. Default is " +"``False``." +msgstr "" + +#: ../../pymupdf4llm/api.rst:141 10d4295fd0f44d04b6d852ab5a6acdac +msgid "" +"specify a desired page width. This is ignored for documents with a fixed " +"page width like PDF, XPS etc. **Reflowable** documents however, like " +"e-books, office [#f2]_ or text files have no fixed page dimensions and by" +" default are assumed to have Letter format width (612) and an " +"**\"infinite\"** page height. This means that the **full document is " +"treated as one large page.**" +msgstr "" + +#: ../../pymupdf4llm/api.rst:145 dc236e54ade449268e191f491a5b6ea1 +msgid "" +"Default is `False`. A value of `True` displays a text-based progress bar " +"as pages are being converted to Markdown. It will look similar to the " +"following:: Processing input.pdf... [====================" +" ] (148/291)" +msgstr "" + +#: ../../pymupdf4llm/api.rst:145 e4c522b34caa44a18c93cc8eb900b9e3 +msgid "" +"Default is `False`. A value of `True` displays a text-based progress bar " +"as pages are being converted to Markdown. It will look similar to the " +"following::" +msgstr "" + +#: ../../pymupdf4llm/api.rst:147 f3fb620547a545348303520f89258470 +msgid "" +"Processing input.pdf... [==================== ] " +"(148/291)" +msgstr "" + +#: ../../pymupdf4llm/api.rst:150 41914ace8aa744f5a267a6a0a97ee95e +msgid "" +"see: :meth:`table detection strategy `. Default is " +"`\"lines_strict\"` which ignores background colors. In some occasions, " +"other strategies may be more successful, for example `\"lines\"` which " +"uses all vector graphics objects for detection. **Changed in v0.0.19:** " +"A value of `None` will not perform any table detection at all. This may " +"be useful when you know that your document contains no tables. Execution " +"time savings can be significant." +msgstr "" + +#: ../../pymupdf4llm/api.rst:152 c63d164ea5544a498b35fe38801ae9d3 +msgid "" +"(New in v.0.0.19) Default is `False`. A value of `True` will use the " +"glyph number of the characters instead of the character itself if the " +"font does not store the Unicode value." +msgstr "" + +#: ../../pymupdf4llm/api.rst:154 631acd268b024502a0907860df6d323e +msgid "" +"when encountering images or vector graphics, images will be created from " +"the respective page area and stored in the specified folder. |Markdown| " +"references will be generated pointing to these images. Any text contained" +" in these areas will not be included in the text output (but appear as " +"part of the images). Therefore, if for instance your document has text " +"written on full page images, make sure to set this parameter to `False`." +msgstr "" + +#: ../../pymupdf4llm/api.rst 10386a25a6684b9782d497e1b2ab9e7f +#: 434dc1344eee439e8802a936eabddc16 5ba94a7e357e45b6a6db51457f8e2248 +#: ce8c80fd2ba44f4ca70bd8cfa927667d d09eb990da164cc496213db2472627c3 +msgid "Returns" +msgstr "" + +#: ../../pymupdf4llm/api.rst:156 5104a12ff2bc40329d605a673453b83f +msgid "" +"Either a string of the combined text of all selected document pages, or a" +" list of dictionaries." +msgstr "" + +#: ../../pymupdf4llm/api.rst:161 40085551cb854077b0e69651c8dede8d +msgid "" +"Please see :ref:`PyMuPDF Layout and parameter caveats " +"`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:170 4a891777dd194ce5afc0dbaa1888c05e +msgid "" +"Reads the pages of the file and outputs the text of its pages in |TXT| " +"format." +msgstr "" + +#: ../../pymupdf4llm/api.rst:178 64b4a6218fb6453eaee092371ccf56fc +msgid "" +"if `True` then mono-spaced text does not receive special formatting. Code" +" blocks will no longer be generated." +msgstr "" + +#: ../../pymupdf4llm/api.rst:187 730da9832ee34199b883b18fc855ad5d +msgid "" +"Create a `pdf_markdown_reader.PDFMarkdownReader` using the `LlamaIndex`_ " +"package. Please note that this package will **not automatically be " +"installed** when installing **pymupdf4llm**." +msgstr "" + +#: ../../pymupdf4llm/api.rst:189 f4ebb53b213d4cc7acf63d4d794fa84e +msgid "" +"For details on the possible arguments, please consult the LlamaIndex " +"documentation [#f1]_." +msgstr "" + +#: ../../pymupdf4llm/api.rst 1cc27cb1af624e44aa82eb89545d50bd +msgid "raises" +msgstr "" + +#: ../../pymupdf4llm/api.rst:191 c747e6f8d358429dab545fa80fbae5b5 +msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." +msgstr "" + +#: ../../pymupdf4llm/api.rst:192 1b1f6a827fe94471845df9f864387c21 +msgid "" +"a `pdf_markdown_reader.PDFMarkdownReader` and issues message " +"\"Successfully imported LlamaIndex\". Please note that this method needs " +"several seconds to execute. For details on using the markdown reader " +"please see below." +msgstr "" + +#: ../../pymupdf4llm/api.rst:201 0fa3da6e44164c04911b61eb1400320b +msgid "" +"Create an object which maps text font sizes to the respective number of " +"'#' characters which are used by Markdown syntax to indicate header " +"levels. The object is created by scanning the document for font size " +"\"popularity\". The most popular font size and all smaller sizes are used" +" for body text. Larger font sizes are mapped to the respective header " +"levels - which correspond to the HTML tags `

` to `

`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:203 ddd88f5814e44f1a92be17074c92bb0d +msgid "All font sizes are rounded to integer values." +msgstr "" + +#: ../../pymupdf4llm/api.rst:205 cb4d0ddc5eb042a2af411bde013b6d40 +msgid "" +"If more than 6 header levels would be required, then the largest number " +"smaller than the `
` font size is used for body text." +msgstr "" + +#: ../../pymupdf4llm/api.rst:207 54ad0ee02efd40a39495107efa84da39 +msgid "" +"Please note that creating the object will read and inspect the text of " +"the entire document - independently of reading the document again in the " +"`to_markdown()` method subsequently. Method `to_markdown()` by default " +"**will create this object** if you do not override its `hdr_info=None` " +"parameter." +msgstr "" + +#: ../../pymupdf4llm/api.rst:210 f7d107ba6131433aab04cf9a922b9665 +msgid "" +"the file, to be specified either as a file path string, or as a |PyMuPDF|" +" Document (created via `pymupdf.open`). In order to use `pathlib.Path` " +"specifications, Python file-like objects, documents in memory etc. you " +"**must** use a |PyMuPDF| Document." +msgstr "" + +#: ../../pymupdf4llm/api.rst:212 710883f192154f769f653cc9bb9b21bd +msgid "optional, the pages to consider. If omitted all pages are processed." +msgstr "" + +#: ../../pymupdf4llm/api.rst:214 26d4fb4142aa4c798761d905a8e927b1 +msgid "" +"the default font size limit for body text. Only used when the document " +"scan does not deliver valid information." +msgstr "" + +#: ../../pymupdf4llm/api.rst:216 f8d32b79562342739ca5edda00c6a964 +msgid "" +"the maximum number of header levels to be used. Valid values are in " +"`range(1, 7)`. The default is 6, which corresponds to the HTML tags " +"`

` to `

`. A smaller value will limit the number of generated " +"header levels. For instance, a value of 3 will only generate header tags " +"\"#\", \"##\" and \"###\". Body text will be assumed for all font sizes " +"smaller than the one corresponding to \"###\"." +msgstr "" + +#: ../../pymupdf4llm/api.rst:221 7a18426418c045d89b6a6915ef43c2f3 +msgid "" +"Return appropriate markdown header prefix. This is either \"\" or a " +"string of \"#\" characters followed by a space." +msgstr "" + +#: ../../pymupdf4llm/api.rst:223 04294f93901a4d46a3e0aa688dfb83f5 +msgid "" +"Given a text span from a \"dict\"\" extraction, determine the markdown " +"header prefix string of 0 to n concatenated '#' characters." +msgstr "" + +#: ../../pymupdf4llm/api.rst:226 ../../pymupdf4llm/api.rst:344 +#: 550655d8107e43ffb7203846680f7e24 e828990897a1448badcc3b731c9c6517 +msgid "" +"a dictionary containing the text span information. This is the same " +"dictionary as returned by `page.get_text(\"dict\")`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:228 ../../pymupdf4llm/api.rst:346 +#: 54cc09285e7747a6923cf3526f9f38b0 5cfcdf8fe7f247bf953d2b65807bc202 +msgid "" +"the owning page object. This can be used when additional information " +"needs to be extracted." +msgstr "" + +#: ../../pymupdf4llm/api.rst:230 ../../pymupdf4llm/api.rst:348 +#: 73c5aaf02c6d4677952eeb97ab552011 9e78b659560c4472ac40f0c8fb3698b6 +msgid "a string of \"#\" characters followed by a space." +msgstr "" + +#: ../../pymupdf4llm/api.rst:234 a4033b3dac4443679a2b4a28458411fe +msgid "" +"A dictionary mapping (integer) font sizes to Markdown header strings like" +" ``{14: '# ', 12: '## '}``. The dictionary is created by the " +":class:`IdentifyHeaders` constructor. The keys are the font sizes of the " +"text spans in the document. The values are the respective header strings." +msgstr "" + +#: ../../pymupdf4llm/api.rst:238 56e441aea6a147fcbefc72fa4305d33a +msgid "" +"An integer value indicating the font size limit for body text. This is " +"computed as ``min(header_id.keys()) - 1``. In the above example, " +"body_limit would be 11." +msgstr "" + +#: ../../pymupdf4llm/api.rst:244 33febc39239d46f9b55e35cb74ef4147 +msgid "**How to limit header levels (example)**" +msgstr "" + +#: ../../pymupdf4llm/api.rst:246 d9878de9640443dcbf1a24c44a78770f +msgid "Limit the generated header levels to 3::" +msgstr "" + +#: ../../pymupdf4llm/api.rst:256 26889d430ea442a89dbe07ec23b0e7f3 +msgid "**How to provide your own header logic (example 1)**" +msgstr "" + +#: ../../pymupdf4llm/api.rst:258 15ff981c833143a59eaded941db96669 +msgid "Provide your own function which uses pre-determined, fixed font sizes::" +msgstr "" + +#: ../../pymupdf4llm/api.rst:285 ab24ee46d29546d3ab1443a5e76a33fa +msgid "**How to provide your own header logic (example 2)**" +msgstr "" + +#: ../../pymupdf4llm/api.rst:287 fcb3f54f74cd485786ee6cbe166e8f73 +msgid "" +"This user function uses the document's Table of Contents -- under the " +"assumption that the bookmark text is also present as a header line on the" +" page (which certainly need not be the case!)::" +msgstr "" + +#: ../../pymupdf4llm/api.rst:327 14480bac3ba944fd96170a5756041644 +msgid "" +"Create an object which uses the document's Table of Contents (TOC) to " +"determine header levels. Upon object creation, the table of contents is " +"read via the `Document.get_toc()` method. The TOC data is then used to " +"determine header levels in the `to_markdown()` method." +msgstr "" + +#: ../../pymupdf4llm/api.rst:329 5be4e1eff9704c8382cbb8c4c31f13c6 +msgid "" +"This is an alternative to :class:`IdentifyHeaders`. Instead of running " +"through the full document to identify font sizes, it uses the document's " +"Table Of Contents (TOC) to identify headers on pages. Like " +":class:`IdentifyHeaders`, this also is no guarantee to find headers, but " +"for well-built Table of Contents, there is a good chance for more " +"correctly identifying header lines on document pages than the font-size-" +"based approach." +msgstr "" + +#: ../../pymupdf4llm/api.rst:332 d914b48ba702438e9f46dc3401768b47 +msgid "" +"It also has the advantage of being much faster than the font-size-based " +"approach, as it does not execute a full document scan or even access any " +"of the document pages." +msgstr "" + +#: ../../pymupdf4llm/api.rst:334 f40165ffd9124da1924d012adeb43873 +msgid "" +"Examples where this approach works very well are the Adobe's files on PDF" +" documentation." +msgstr "" + +#: ../../pymupdf4llm/api.rst:336 fd4050856d3d4290929a03317169bd66 +msgid "" +"Please note that this feature **does not read document pages** where the " +"table of contents may exist as normal standard text. It only accesses " +"data as provided by the `Document.get_toc()` method. It will not identify" +" any headers for documents where the table of contents is not available " +"as a collection of bookmarks." +msgstr "" + +#: ../../pymupdf4llm/api.rst:340 b0bb3bce89a646eeba118d8363ee87f7 +msgid "" +"Return appropriate markdown header prefix. This is either an empty string" +" or a string of \"#\" characters followed by a space." +msgstr "" + +#: ../../pymupdf4llm/api.rst:342 b77b616760354716a6d28cfa0e57b151 +msgid "" +"Given a text span from a \"dict\" extraction variant, determine the " +"markdown header prefix string of 0 to n concatenated \"#\" characters." +msgstr "" + +#: ../../pymupdf4llm/api.rst:352 c26d5479bdc643ebbe830ea70cc92c6f +msgid "**How to use class TocHeaders**" +msgstr "" + +#: ../../pymupdf4llm/api.rst:354 c68809493db84470bb3fa5d1d864b1c0 +msgid "" +"This is a version of previous **example 2** that uses :class:`TocHeaders`" +" for header identification::" +msgstr "" + +#: ../../pymupdf4llm/api.rst:372 eaafa54a042149aa81d8d9da29930a37 +msgid "" +"This is the only method of the markdown reader you should currently use " +"to extract markdown data. Please in any case ignore methods " +"`aload_data()` and `lazy_load_data()`. Other methods like " +"`use_doc_meta()` may or may not make sense. For more information, please " +"consult the LlamaIndex documentation [#f1]_." +msgstr "" + +#: ../../pymupdf4llm/api.rst:374 7a42c78f0d604568b37387b7870eec16 +msgid "Under the hood the method will execute `to_markdown()`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:376 8119933a56b04dd4b5a34e56303068bd +msgid "a list of `LlamaIndexDocument` documents - one for each page." +msgstr "" + +#: ../../pymupdf4llm/api.rst:380 1cb18a1dc7ef4e7085bdd5823bd0511d +msgid "" +"For a list of changes, please see file `CHANGES.md " +"`_." +msgstr "" + +#: ../../pymupdf4llm/api.rst:383 60b5690329a344a6b271a528644b1d60 +msgid "Footnotes" +msgstr "" + +#: ../../pymupdf4llm/api.rst:384 e7d44d9605ab4a30a5c5bd1883e5a7a5 +msgid "`LlamaIndex documentation `_" +msgstr "" + +#: ../../pymupdf4llm/api.rst:386 a6f79e15bc8b42b99ce558e692e5a425 +msgid "" +"When using PyMuPDF-Pro, supported office documents are converted " +"internally into a PDF-like format. Therefore, they **will have fixed page" +" dimensions** and be no longer \"reflowable\". Consequently, the page " +"width and page height specifications will be ignored as well in these " +"cases." +msgstr "" + +#: ../../footer.rst:46 1ed68f4bf8fd45fab04f7a49fba09f0a +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.mo b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po new file mode 100644 index 000000000..9bbbd15db --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po @@ -0,0 +1,242 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 53c72493367d4eb1be603397129b39fe +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 1b5624909c1b466fb93485742b40bbd2 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 113a15e76cb34538aebd04c22e64f82d +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pymupdf4llm/index.rst:8 96b9f29894ff49beba7a07931c5c900d +msgid "PyMuPDF4LLM" +msgstr "" + +#: ../../pymupdf4llm/index.rst:10 59d6714b7f6549e0a52c173974da2135 +msgid "" +"|PyMuPDF4LLM| is aimed to make it easier to extract |PDF| content in the " +"format you need for **LLM** & **RAG** environments. It supports " +":ref:`Markdown extraction ` as well as :ref:`LlamaIndex" +" document output `." +msgstr "" + +#: ../../pymupdf4llm/index.rst:14 50bf080e50e64ba58e973f0addf24d73 +msgid "" +"You can extend the supported file types to also include **Office** " +"document formats (DOC/DOCX, XLS/XLSX, PPT/PPTX, HWP/HWPX) by :ref:`using " +"PyMuPDF Pro with PyMuPDF4LLM `." +msgstr "" + +#: ../../pymupdf4llm/index.rst:17 38428359cdaf4039b439454f5c712ec7 +msgid "Features" +msgstr "" + +#: ../../pymupdf4llm/index.rst:19 5f4fb197fcdd4a0ab3ac79607a78a25e +msgid "Support for multi-column pages" +msgstr "" + +#: ../../pymupdf4llm/index.rst:20 7e249663241a4aacb2f9b1fcb4450393 +msgid "" +"Support for image and vector graphics extraction (and inclusion of " +"references in the MD text)" +msgstr "" + +#: ../../pymupdf4llm/index.rst:21 cf659dc9b2da48d69e7ab3d1cda7f132 +msgid "Support for page chunking output." +msgstr "" + +#: ../../pymupdf4llm/index.rst:22 20715d6347fb42b7b485fba224287741 +msgid "" +"Direct support for output as :ref:`LlamaIndex Documents " +"`." +msgstr "" + +#: ../../pymupdf4llm/index.rst:26 90f6c12aacd14b7eba944b6c1e013ed5 +msgid "Functionality" +msgstr "" + +#: ../../pymupdf4llm/index.rst:28 e63a722974dc41f3928dc372e66da5c0 +msgid "" +"This package converts the pages of a file to text in **Markdown** format " +"using |PyMuPDF|." +msgstr "" + +#: ../../pymupdf4llm/index.rst:30 1504c800279e44568bfbbeef3eb2ba6d +msgid "" +"Standard text and tables are detected, brought in the right reading " +"sequence and then together converted to **GitHub**-compatible " +"**Markdown** text." +msgstr "" + +#: ../../pymupdf4llm/index.rst:32 4d3e28d4b9654f6889e99f25edeafb6f +msgid "" +"Header lines are identified via the font size and appropriately prefixed " +"with one or more `#` tags." +msgstr "" + +#: ../../pymupdf4llm/index.rst:34 d3dc9c01915e4fd5a47c1784eae70c00 +msgid "" +"Bold, italic, mono-spaced text and code blocks are detected and formatted" +" accordingly. Similar applies to ordered and unordered lists." +msgstr "" + +#: ../../pymupdf4llm/index.rst:36 bc9f92950b5b4c038ed82153c462a0c6 +msgid "" +"By default, all document pages are processed. If desired, a subset of " +"pages can be specified by providing a list of `0`-based page numbers." +msgstr "" + +#: ../../pymupdf4llm/index.rst:40 24714fd3cb744a908099e19f1af6ce7e +msgid "Installation" +msgstr "" + +#: ../../pymupdf4llm/index.rst:43 dd73904df42146e18551936620e44355 +msgid "Install the package via **pip** with:" +msgstr "" + +#: ../../pymupdf4llm/index.rst:54 a08840e778fe46379ec9110ad3c3608a +msgid "Extracting a file as **Markdown**" +msgstr "" + +#: ../../pymupdf4llm/index.rst:56 98c0760b58c04cbeb1299faf5b79ab3f +msgid "" +"To retrieve your document content in **Markdown** simply install the " +"package and then use a couple of lines of **Python** code to get results." +msgstr "" + +#: ../../pymupdf4llm/index.rst:60 6a398956ca7f4c9c9057734393a79743 +msgid "Then in your **Python** script do:" +msgstr "" + +#: ../../pymupdf4llm/index.rst:71 b227684a017d42e8b88f83ad2a3c673e +msgid "" +"Instead of the filename string as above, one can also provide a " +":ref:`PyMuPDF Document `. A second parameter may be a list of " +"`0`-based page numbers, e.g. `[0,1]` would just select the first and " +"second pages of the document." +msgstr "" + +#: ../../pymupdf4llm/index.rst:74 a0929decafbc41cb86a00b46905219e0 +msgid "" +"If you want to store your **Markdown** file, e.g. store as a UTF8-encoded" +" file, then do:" +msgstr "" + +#: ../../pymupdf4llm/index.rst:87 fe47c11343ec4d278c9f9cc524bccb86 +msgid "Extracting a file as a **LlamaIndex** document" +msgstr "" + +#: ../../pymupdf4llm/index.rst:89 6834228bb5524c319b8c3d5dbe8138d6 +msgid "" +"|PyMuPDF4LLM| supports direct conversion to a **LLamaIndex** document. A " +"document is first converted into **Markdown** format and then a " +"**LlamaIndex** document is returned as follows:" +msgstr "" + +#: ../../pymupdf4llm/index.rst:103 e653025ecf1948759d96b33b7902c524 +msgid "Using with |PyMuPDF Pro|" +msgstr "" + +#: ../../pymupdf4llm/index.rst:106 9e877b4bd26d43cbaf81821091d51a1b +msgid "" +"For **Office** document support, |PyMuPDF4LLM| works seamlessly with " +"|PyMuPDF Pro|. Assuming you have :doc:`../pymupdf-pro` installed you will" +" be able to work with **Office** documents as expected:" +msgstr "" + +#: ../../pymupdf4llm/index.rst:117 ff1a10504dbe4b5381a2f6232a21b346 +msgid "" +"As you can see |PyMuPDF Pro| functionality will be available within the " +"|PyMuPDF4LLM| context!" +msgstr "" + +#: ../../pymupdf4llm/index.rst:122 32a7f061e08e4a6ca0f4f3fddb070669 +msgid "API" +msgstr "" + +#: ../../pymupdf4llm/index.rst:124 b4ebede9414d489da467192cd788038a +msgid "See :ref:`the PyMuPDF4LLM API `." +msgstr "" + +#: ../../pymupdf4llm/index.rst:127 bb3e7108ffa0474c9130db24bde17039 +msgid "Further Resources" +msgstr "" + +#: ../../pymupdf4llm/index.rst:131 ec0ceb929e634253940d9d8b12c34e12 +msgid "Sample code" +msgstr "" + +#: ../../pymupdf4llm/index.rst:133 f2d41ac1c1d24d9289e6ce68bc9370de +msgid "" +"`Command line RAG Chatbot with PyMuPDF " +"`_" +msgstr "" + +#: ../../pymupdf4llm/index.rst:134 bf6ddba28b86427ab7c934e3fe869608 +msgid "" +"`Example of a Browser Application using Langchain and PyMuPDF " +"`_" +msgstr "" + +#: ../../pymupdf4llm/index.rst:138 05f33a793ba04dbea19e7a464b4c8cd5 +msgid "Blogs" +msgstr "" + +#: ../../pymupdf4llm/index.rst:140 d6c3173afe6a4dbd880c662d9a8b9e66 +msgid "" +"`RAG/LLM and PDF: Enhanced Text Extraction `_" +msgstr "" + +#: ../../pymupdf4llm/index.rst:141 2469a1a8ebb649b083d10e876d5b3022 +msgid "" +"`Creating a RAG Chatbot with ChatGPT and PyMuPDF " +"`_" +msgstr "" + +#: ../../pymupdf4llm/index.rst:142 750da7ec1111406c9f24fe09151140ae +msgid "" +"`Building a RAG Chatbot GUI with the ChatGPT API and PyMuPDF " +"`_" +msgstr "" + +#: ../../pymupdf4llm/index.rst:143 d820865d4e2b470b975fd95e67ec0436 +msgid "" +"`RAG/LLM and PDF: Conversion to Markdown Text with PyMuPDF " +"`_" +msgstr "" + +#: ../../footer.rst:46 30b12247e1244acba7a2885245d87849 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pyodide.mo b/docs/locales/ko/LC_MESSAGES/pyodide.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/pyodide.po b/docs/locales/ko/LC_MESSAGES/pyodide.po new file mode 100644 index 000000000..f0d408569 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/pyodide.po @@ -0,0 +1,168 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 9e4f1d023e4c4a2f9b1789603aba1601 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 02180e9a6b5e48f88c53ee91a688adb1 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c68f782efd8344ff9fbda1a7566d3151 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../pyodide.rst:4 b63880b098224734b9b2dc4c700c8ef3 +msgid "Pyodide" +msgstr "" + +#: ../../pyodide.rst:8 ef1d306e03734c209cc1de803b563abf +msgid "Overview" +msgstr "" + +#: ../../pyodide.rst:11 a4f52f95cfaf4399817388f7e5cdb9c0 +msgid "" +"`Pyodide `_ is a client-side Python implementation " +"that runs in a web browser." +msgstr "" + +#: ../../pyodide.rst:14 414c957de5624f6ba708ad075d3d7a63 +msgid "The Pyodide build of PyMuPDF is currently experimental." +msgstr "" + +#: ../../pyodide.rst:18 1199cc39832d45bdaa78306e41d821e5 +msgid "Building a PyMuPDF wheel for Pyodide" +msgstr "" + +#: ../../pyodide.rst:20 75ac11d9769c49a1afefaeaf2e66c13e +msgid "" +"A PyMuPDF wheel for Pyodide can be built by running " +"`scripts/gh_release.py` with some environmental variable settings. This " +"is regularly tested on Github by `.github/workflows/test_pyodide.yml`." +msgstr "" + +#: ../../pyodide.rst:24 cf08249abe844603bd188263b0fabb48 +msgid "" +"Here is an example of this, a single Linux command (to be run with the " +"current directory set to a PyMuPDF checkout), that builds a Pyodide " +"wheel::" +msgstr "" + +#: ../../pyodide.rst:33 9801c86b124048eaa3483bd780ea6964 +msgid "This does the following (all inside Python venv's):" +msgstr "" + +#: ../../pyodide.rst:35 de17df8ffe044736b9751eb4efeb9640 +msgid "" +"Download (git clone and pip install) and customise a Pyodide build " +"environment." +msgstr "" + +#: ../../pyodide.rst:36 00d95a72eea642cf9a06eea851573b78 +msgid "Download (git clone) the latest MuPDF." +msgstr "" + +#: ../../pyodide.rst:37 25c3416cee3a43639827a6237c3a3012 +msgid "Build MuPDF and PyMuPDF in the Pyodide build environment." +msgstr "" + +#: ../../pyodide.rst:38 096c442727774ebd99b66b131e42786f +msgid "Create a wheel in `dist/`." +msgstr "" + +#: ../../pyodide.rst:40 47aca590fd0649b99cc760c1fbb7029d +msgid "" +"For more information, see the comments for functions " +"`build_pyodide_wheel()` and `pyodide_setup()` in `scripts/gh_release.py`." +msgstr "" + +#: ../../pyodide.rst:45 c4fc80be31774fb2b23cda8d96a10202 +msgid "Using a Pyodide wheel" +msgstr "" + +#: ../../pyodide.rst:48 108ac7eb8b964c2cbc563d9761406088 +msgid "" +"Upload the wheel (for example " +"`PyMuPDF/dist/PyMuPDF-1.24.2-cp311-cp311-emscripten_3_1_32_wasm32.whl`) " +"to a webserver which has been configured to allow Cross-origin resource " +"sharing (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)." +msgstr "" + +#: ../../pyodide.rst:54 14b102796b7a4d779c994b61aa456eb6 +msgid "" +"The wheel can be used in a Pyodide console running in a web browser, or a" +" JupyterLite notebook running in a web browser." +msgstr "" + +#: ../../pyodide.rst:57 298d17eab9bf4ac091904aa16a7b051b +msgid "To create a Pyodide console, go to:" +msgstr "" + +#: ../../pyodide.rst:59 f04d4a5529e5478090c9afdca37eab57 +msgid "https://pyodide.org/en/stable/console.html" +msgstr "" + +#: ../../pyodide.rst:61 2ed99e58360846728a2003c28a75ccce +msgid "To create a JupyterLite notebook, go to:" +msgstr "" + +#: ../../pyodide.rst:63 87c3dae4109c4bf4ab0ea41e5f5decfd +msgid "https://jupyterlite.readthedocs.io/en/latest/_static/lab/index.html" +msgstr "" + +#: ../../pyodide.rst:66 ae8220ec6a5d45e78e3c2f569bab9574 +msgid "" +"In both these cases, one can use the following code to download the wheel" +" (replace `url` with the URL of the uploaded wheel) and import it::" +msgstr "" + +#: ../../pyodide.rst:74 89859ac6e1a347a7b279e57b128fb282 +msgid "" +"Note that `micropip.install()` does not work, because of PyMuPDF's use of" +" shared libraries." +msgstr "" + +#: ../../pyodide.rst:79 4fc797af4a414bd8b824e6adf8ea5e56 +msgid "Loading a PDF document from a URL into PyMuPDF" +msgstr "" + +#: ../../pyodide.rst:82 df1f0a64f0ec4ac29b93e91709cbb966 +msgid "" +"Pyodide browser console does not have generic network access, so for " +"example `urllib.request.urlopen(url)` fails. But Pyodide has a built-in " +"`pyodide.http` module that uses javascript internally, which one can use " +"to download into a `bytes` instance, which can be used to create a " +"PyMuPDF `Document` instance::" +msgstr "" + +#: ../../pyodide.rst:93 d9380bc488b14d1b863f1225ee39edfe +msgid "It looks like this only works with `https://`, not `http://`." +msgstr "" + +#: ../../footer.rst:46 4640d757601c44b9a9490b7d6bff2214 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/quad.mo b/docs/locales/ko/LC_MESSAGES/quad.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/quad.po b/docs/locales/ko/LC_MESSAGES/quad.po new file mode 100644 index 000000000..e1c907198 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/quad.po @@ -0,0 +1,369 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 7ec5d7130739408fa2694ff0c2ad75d3 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 5fae259f7fcf42cbb62f1d73baa02e63 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 0cf03cc6db804a65815e8d1e0054e12a +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../quad.rst:7 aa798d4be0214b06853be544b0785b84 +msgid "Quad" +msgstr "" + +#: ../../quad.rst:9 664d52df82ff48e2a329b6746b58b2b1 +msgid "" +"Represents a four-sided mathematical shape (also called \"quadrilateral\"" +" or \"tetragon\") in the plane, defined as a sequence of four " +":ref:`Point` objects ul, ur, ll, lr (conveniently called upper left, " +"upper right, lower left, lower right)." +msgstr "" + +#: ../../quad.rst:11 08d263b5866442108b7f33e20416a234 +msgid "" +"Quads can **be obtained** as results of text search methods " +"(:meth:`Page.search_for`), and they **are used** to define text marker " +"annotations (see e.g. :meth:`Page.add_squiggly_annot` and friends), and " +"in several draw methods (like :meth:`Page.draw_quad` / " +":meth:`Shape.draw_quad`, :meth:`Page.draw_oval`/ " +":meth:`Shape.draw_quad`)." +msgstr "" + +#: ../../quad.rst:15 30cb7b59b1ae4a5ea08731a41542f6bb +msgid "" +"If the corners of a rectangle are transformed with a **rotation**, " +"**scale** or **translation** :ref:`Matrix`, then the resulting quad is " +"**rectangular** (= congruent to a rectangle), i.e. all of its corners " +"again enclose angles of 90 degrees. Property :attr:`Quad.is_rectangular` " +"checks whether a quad can be thought of being the result of such an " +"operation." +msgstr "" + +#: ../../quad.rst:17 3be08077e5cf46e193ba24399731c728 +msgid "" +"This is not true for all matrices: e.g. shear matrices produce " +"parallelograms, and non-invertible matrices deliver \"degenerate\" " +"tetragons like triangles or lines." +msgstr "" + +#: ../../quad.rst:19 223f177e5a564f43be092c227d86b112 +msgid "" +"Attribute :attr:`Quad.rect` obtains the enveloping rectangle. Vice versa," +" rectangles now have attributes :attr:`Rect.quad`, resp. " +":attr:`IRect.quad` to obtain their respective tetragon versions." +msgstr "" + +#: ../../quad.rst:23 3934fff4cce44ebfac69ca1f1e02500e +msgid "**Methods / Attributes**" +msgstr "" + +#: ../../quad.rst:23 cdb016a40be44d93a40ab88520ffa8b3 +msgid "**Short Description**" +msgstr "" + +#: ../../quad.rst:25 791c2e6dfad84f60a324d45c361eb49f +msgid ":meth:`Quad.transform`" +msgstr "" + +#: ../../quad.rst:25 b4219d71eccb4873b81cc4d2cbcb6cbb +msgid "transform with a matrix" +msgstr "" + +#: ../../quad.rst:26 adeda9365d014af99747c1b84d16d245 +msgid ":meth:`Quad.morph`" +msgstr "" + +#: ../../quad.rst:26 fcecfd74d9564866958a61afa427072d +msgid "transform with a point and matrix" +msgstr "" + +#: ../../quad.rst:27 939ee16703a748c1b7562657da6cc054 +msgid ":attr:`Quad.ul`" +msgstr "" + +#: ../../quad.rst:27 e89af93b74ba463e80523ab573be725d +msgid "upper left point" +msgstr "" + +#: ../../quad.rst:28 cab5b3be90554379aae89e7da8ea19e5 +msgid ":attr:`Quad.ur`" +msgstr "" + +#: ../../quad.rst:28 5f2493216d724836b99e69bb3f2c6ffd +msgid "upper right point" +msgstr "" + +#: ../../quad.rst:29 d6e7980c18a64485b0f538f30d29d060 +msgid ":attr:`Quad.ll`" +msgstr "" + +#: ../../quad.rst:29 00ae622c1ee44e99a8dd8ddb76e02b2a +msgid "lower left point" +msgstr "" + +#: ../../quad.rst:30 39a814307b8d4e799ac5cab34bed4f55 +msgid ":attr:`Quad.lr`" +msgstr "" + +#: ../../quad.rst:30 880af62ca8a04aae96037daa38ab12b2 +msgid "lower right point" +msgstr "" + +#: ../../quad.rst:31 31a8eb5ee9dd4eaf98509da0c412ccfa +msgid ":attr:`Quad.is_convex`" +msgstr "" + +#: ../../quad.rst:31 c28042739b2a4b60ac6c42f30bd29401 +msgid "true if quad is a convex set" +msgstr "" + +#: ../../quad.rst:32 37497d0521974f6b87502804c9456f9d +msgid ":attr:`Quad.is_empty`" +msgstr "" + +#: ../../quad.rst:32 b051739d6773420e9d1042cf4501fe9e +msgid "true if quad is an empty set" +msgstr "" + +#: ../../quad.rst:33 c7afddefaf7f4476977d2523faf20cbc +msgid ":attr:`Quad.is_rectangular`" +msgstr "" + +#: ../../quad.rst:33 df9d56bff733427dbe82f9bab5bba633 +msgid "true if quad is congruent to a rectangle" +msgstr "" + +#: ../../quad.rst:34 bfba7ccca7e84436b2db6a654b9e7208 +msgid ":attr:`Quad.rect`" +msgstr "" + +#: ../../quad.rst:34 bcc943456152458291d460cd5fc66400 +msgid "smallest containing :ref:`Rect`" +msgstr "" + +#: ../../quad.rst:35 9d18f5ed25604421a134ad9c5338e2a8 +msgid ":attr:`Quad.width`" +msgstr "" + +#: ../../quad.rst:35 3d617c28106542cf93d65cd246bb2ee6 +msgid "the longest width value" +msgstr "" + +#: ../../quad.rst:36 86896dcc8bb845459987fab77ae2fc7e +msgid ":attr:`Quad.height`" +msgstr "" + +#: ../../quad.rst:36 b00633cc845d40ea8282c89246c89ab9 +msgid "the longest height value" +msgstr "" + +#: ../../quad.rst:39 963eed1326d34022aab68a6721f147e1 +msgid "**Class API**" +msgstr "" + +#: ../../quad.rst:51 045248fd98ef41c9a3e88a5e995d0c01 +msgid "" +"Overloaded constructors: \"ul\", \"ur\", \"ll\", \"lr\" stand for " +":data:`point_like` objects (the four corners), \"sequence\" is a Python " +"sequence with four :data:`point_like` objects." +msgstr "" + +#: ../../quad.rst:53 5af6b11b5ecb4ff19bf862fa90a4a4f2 +msgid "If \"quad\" is specified, the constructor creates a **new copy** of it." +msgstr "" + +#: ../../quad.rst:55 cea0afbfe7e446829d6109aee4dc330a +msgid "" +"Without parameters, a quad consisting of 4 copies of *Point(0, 0)* is " +"created." +msgstr "" + +#: ../../quad.rst:60 4b16d0be6f9a461f93515a13f6ac07ef +msgid "" +"Modify the quadrilateral by transforming each of its corners with a " +"matrix." +msgstr "" + +#: ../../quad.rst 6ad7d5776f2748a380465099b165536d +#: fcc95d04edce488f83cc252a7323652c +msgid "Parameters" +msgstr "" + +#: ../../quad.rst:62 ../../quad.rst:69 bed48ffd731349bcb867f40fcbaf8a68 +#: fa657693f6094b69ba8adf946f1d9d4d +msgid "the matrix." +msgstr "" + +#: ../../quad.rst:66 d449536aa4364cfa8d454ab5552538de +msgid "" +"*(New in version 1.17.0)* \"Morph\" the quad with a matrix-like using a " +"point-like as fixed point." +msgstr "" + +#: ../../quad.rst:68 1bc5f7ab62ff46dca6c4085984b1973e +msgid "the point." +msgstr "" + +#: ../../quad.rst f004f07cfc6543989140c9a712f8318b +msgid "Returns" +msgstr "" + +#: ../../quad.rst:70 2314249ac3bf4d48af9f5d0c9918f092 +msgid "a new quad (no operation if this is the infinite quad)." +msgstr "" + +#: ../../quad.rst:75 790caa78886e4aa0a8e169a3884a528c +msgid "" +"The smallest rectangle containing the quad, represented by the blue area " +"in the following picture." +msgstr "" + +#: ../../quad.rst 23306adcb7c441c6b4a06d25179f70ff +#: 29fcd747f839470f9cd452054f5ad2c6 2f60233b58254ddc83846169e9b77814 +#: 5cb78f927dc040ebb6b41e9dbff03a48 78a7d163966f44928813bdcff435e9bd +#: 9e112f66c76f47ed990ca685b6ccb967 d08887513bee4c03877dc766e67a812e +#: da27d9920c9247c7b07901d41c25a765 e54af6598b2446f9a18abddbfb930bf4 +#: f5aba2a5d1a04f22b723d0c816c0e825 +msgid "type" +msgstr "" + +#: ../../quad.rst:79 7cca1627db0a4c789cb2bfbe34594522 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../quad.rst:83 db740f8e958d416fac479f484e53e7f5 +msgid "Upper left point." +msgstr "" + +#: ../../quad.rst:85 ../../quad.rst:91 ../../quad.rst:97 ../../quad.rst:103 +#: 1c8574d31d0343ca90a64a220a722491 325b06978c6644afb11af209b53aef75 +#: 5c193b8c51574a7388be59a99ec9f306 70ea90d3bd5645b8bca7b2e0a066b329 +msgid ":ref:`Point`" +msgstr "" + +#: ../../quad.rst:89 21467c9a895c4e438d7cb0faf4be00ce +msgid "Upper right point." +msgstr "" + +#: ../../quad.rst:95 b82ee98f3f134593b40af259336342d3 +msgid "Lower left point." +msgstr "" + +#: ../../quad.rst:101 da89c966391948d895f518fc03b9f064 +msgid "Lower right point." +msgstr "" + +#: ../../quad.rst:107 bb5e071792a14d5c9526c8dc57993167 +msgid "New in version 1.16.1" +msgstr "" + +#: ../../quad.rst:109 91bd8cd76c9c4afcbb037ddb9059df47 +msgid "" +"Checks if for any two points of the quad, all points on their connecting " +"line also belong to the quad." +msgstr "" + +#: ../../quad.rst:114 ../../quad.rst:120 ../../quad.rst:126 +#: 5ae88b9907fb467f84267387a790a3c5 920999ae2e69406995af71a6dae1e8a6 +#: a538f6fd994649c1a7d2009e3e9276f3 +msgid "bool" +msgstr "" + +#: ../../quad.rst:118 c068cc4b85364edea719e7d034e85295 +msgid "" +"True if enclosed area is zero, which means that at least three of the " +"four corners are on the same line. If this is false, the quad may still " +"be degenerate or not look like a tetragon at all (triangles, " +"parallelograms, trapezoids, ...)." +msgstr "" + +#: ../../quad.rst:124 9f5e063e47c247c890c6956b98921d91 +msgid "" +"True if all corner angles are 90 degrees. This implies that the quad is " +"**convex and not empty**." +msgstr "" + +#: ../../quad.rst:130 71ec407d1b0f4aa4a81edef402aa24df +msgid "The maximum length of the top and the bottom side." +msgstr "" + +#: ../../quad.rst:132 ../../quad.rst:138 2ffdd79a0a92446bbaf89d3ea83f1e43 +#: e2e1c5c2ebd0423190583a8ee05f1a84 +msgid "float" +msgstr "" + +#: ../../quad.rst:136 4c1f38db1cd34add898f6bdf1977db1a +msgid "The maximum length of the left and the right side." +msgstr "" + +#: ../../quad.rst:141 9db22e1b205244fea68bc9fa262c3a44 +msgid "Remark" +msgstr "" + +#: ../../quad.rst:142 b1fa23555ac34b80a5bf47ad6ba54cb7 +msgid "" +"This class adheres to the sequence protocol, so components can be dealt " +"with via their indices, too. Also refer to :ref:`SequenceTypes`." +msgstr "" + +#: ../../quad.rst:145 cf59f6059ec346a4adf6477b2af26440 +msgid "Algebra and Containment Checks" +msgstr "" + +#: ../../quad.rst:146 d1da8ae52c66485c81bd76a086dda1ed +msgid "" +"Starting with v1.19.6, quads can be used in algebraic expressions like " +"the other geometry object -- the respective restrictions have been " +"lifted. In particular, all the following combinations of containment " +"checking are now possible:" +msgstr "" + +#: ../../quad.rst:148 de141e1e28bb41bab1a153f2f74dec9c +msgid "`{Point | IRect | Rect | Quad} in {IRect | Rect | Quad}`" +msgstr "" + +#: ../../quad.rst:150 7822fe7129d44ee09c76eff91fe1b539 +msgid "Please note the following interesting detail:" +msgstr "" + +#: ../../quad.rst:152 323318c4e76344b0a9f47f1f586de2c4 +msgid "" +"For a rectangle, only its top-left point belongs to it. Since v1.19.0, " +"rectangles are defined to be \"open\", such that its bottom and its right" +" edge do not belong to it -- including the respective corners. But for " +"quads there exists no such notion like \"openness\", so we have the " +"following somewhat surprising implication:" +msgstr "" + +#: ../../footer.rst:46 e7b27ac0bf7e4265b14be6be7b5ca967 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/rag.mo b/docs/locales/ko/LC_MESSAGES/rag.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/rag.po b/docs/locales/ko/LC_MESSAGES/rag.po new file mode 100644 index 000000000..e8811c434 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/rag.po @@ -0,0 +1,191 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 9ae2958084504b3cbf245bd73a2ab2b9 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 f48bded6e5a0490fbc182596e6c86f50 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c3968fe2fa604ee2a68fdd576c733553 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../rag.rst:6 d9c164003dda4429a6f39b4abd473e49 +msgid "PyMuPDF, LLM & RAG" +msgstr "" + +#: ../../rag.rst:9 f18a0f62e26e4863b32ba327cc3828fe +msgid "" +"Integrating |PyMuPDF| into your :title:`Large Language Model (LLM)` " +"framework and overall :title:`RAG (Retrieval-Augmented Generation`) " +"solution provides the fastest and most reliable way to deliver document " +"data." +msgstr "" + +#: ../../rag.rst:11 6e23dfb312db4517ab86e93891470aed +msgid "" +"There are a few well known :title:`LLM` solutions which have their own " +"interfaces with |PyMuPDF| - it is a fast growing area, so please let us " +"know if you discover any more!" +msgstr "" + +#: ../../rag.rst:13 8de65ced808e469d9fac7bd41abaf9cf +msgid "" +"If you need to export to :title:`Markdown` or obtain a " +":title:`LlamaIndex` Document from a file:" +msgstr "" + +#: ../../rag.rst:31 0e6f773ad0c846eb81ad529f37c724ce +msgid "Integration with :title:`LangChain`" +msgstr "" + +#: ../../rag.rst:33 617c7d9b690c427cb4d5f385dbaea902 +msgid "" +"It is simple to integrate directly with :title:`LangChain` by using their" +" dedicated loader as follows:" +msgstr "" + +#: ../../rag.rst:43 2b8a08a537ff4f0c9d20ccd117cca1c7 +msgid "" +"See `LangChain Using PyMuPDF " +"`_ for full details." +msgstr "" + +#: ../../rag.rst:47 882dd97452644713ade70ec5d297ac45 +msgid "Integration with :title:`LlamaIndex`" +msgstr "" + +#: ../../rag.rst:50 0a3eaf04eb9c4726a40af71757d7454d +msgid "" +"Use the dedicated `PyMuPDFReader` from :title:`LlamaIndex` 🦙 to manage " +"your document loading." +msgstr "" + +#: ../../rag.rst:58 49e6d30976b047949da389fa02a61f6d +msgid "" +"See `Building RAG from Scratch " +"`_" +" for more." +msgstr "" + +#: ../../rag.rst:62 a966faf5a5914f53816c15fa2dc9cf18 +msgid "Preparing Data for Chunking" +msgstr "" + +#: ../../rag.rst:64 c943a32cc39448f396304fd518f9a003 +msgid "" +"Chunking (or splitting) data is essential to give context to your " +":title:`LLM` data and with :title:`Markdown` output now supported by " +"|PyMuPDF| this means that `Level 3 chunking " +"`_ is " +"supported." +msgstr "" + +#: ../../rag.rst:71 c1d64297cf6740508697a6569cd86382 +msgid "Outputting as :title:`Markdown`" +msgstr "" + +#: ../../rag.rst:73 39636d4fa0cf42edb1f1e408555643f2 +msgid "" +"In order to export your document in :title:`Markdown` format you will " +"need a separate helper. Package :doc:`pymupdf4llm/index` is a high-level " +"wrapper of |PyMuPDF| functions which for each page outputs standard and " +"table text in an integrated Markdown-formatted string across all document" +" pages:" +msgstr "" + +#: ../../rag.rst:87 ab3bd85d9da04f3288b59385ab304c9a +msgid "For further information please refer to: :doc:`pymupdf4llm/index`." +msgstr "" + +#: ../../rag.rst:91 0e0368f9987d4fd6989fb56fb6001afd +msgid "How to use :title:`Markdown` output" +msgstr "" + +#: ../../rag.rst:93 7bbbb34419cf4138a90d6f32225fd2c0 +msgid "" +"Once you have your data in :title:`Markdown` format you are ready to " +"chunk/split it and supply it to your :title:`LLM`, for example, if this " +"is :title:`LangChain` then do the following:" +msgstr "" + +#: ../../rag.rst:109 e0cd08f28f6b4684b8212adaecee1134 +msgid "" +"For more see `5 Levels of Text Splitting `_" +msgstr "" + +#: ../../rag.rst:113 59da1458c9df47cf875bc76ea4b09c0f +msgid "Related Blogs" +msgstr "" + +#: ../../rag.rst:115 fc915048dbc24e0fbbb2afab1ec5ea4c +msgid "" +"To find out more about |PyMuPDF|, :title:`LLM` & :title:`RAG` check out " +"our blogs for implementations & tutorials." +msgstr "" + +#: ../../rag.rst:119 0122bc55056941f1ab375130d1567c25 +msgid "Methodologies to Extract Text" +msgstr "" + +#: ../../rag.rst:121 e7a6690e847f451e86a01250978a6578 +msgid "" +"`Enhanced Text Extraction `_" +msgstr "" + +#: ../../rag.rst:122 04321925122b427b86774ef96ad18527 +msgid "" +"`Conversion to Markdown Text with PyMuPDF `_" +msgstr "" + +#: ../../rag.rst:127 60562c518d964c8090b1290cd59e6a19 +msgid "Create a Chatbot to discuss your documents" +msgstr "" + +#: ../../rag.rst:129 20a7402279fa4414b283adebd82344bd +msgid "" +"`Make a simple command line Chatbot `_" +msgstr "" + +#: ../../rag.rst:130 68ea640af63a45c382ba8d71fc1796ca +msgid "" +"`Make a Chatbot GUI `_" +msgstr "" + +#: ../../footer.rst:46 e79c14c4775649ff81f129c4ebc2dcb1 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-annotations.mo b/docs/locales/ko/LC_MESSAGES/recipes-annotations.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-annotations.po b/docs/locales/ko/LC_MESSAGES/recipes-annotations.po new file mode 100644 index 000000000..b2d72d491 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-annotations.po @@ -0,0 +1,123 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 e39981b2c0484073b422a752a1279263 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 a25bcd51270e4dff8f4dd98b5a7d2ea7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 ffd0e115b0694217a5c11e90d1c837a8 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-annotations.rst:7 12ff591c90a64c459b910af4df023591 +msgid "Annotations" +msgstr "" + +#: ../../recipes-annotations.rst:12 bc44c8128be246918c791ea26fd73fee +msgid "How to Add and Modify Annotations" +msgstr "" + +#: ../../recipes-annotations.rst:14 a59a46aeff5e4ef494d91210cfb5db2a +msgid "" +"In |PyMuPDF|, new annotations can be added via :ref:`Page` methods. Once " +"an annotation exists, it can be modified to a large extent using methods " +"of the :ref:`Annot` class." +msgstr "" + +#: ../../recipes-annotations.rst:16 a3c0373aeefa401f92881e510ad0071c +msgid "" +"Annotations can **only** be inserted in |PDF| pages - other document " +"types do not support annotation insertion." +msgstr "" + +#: ../../recipes-annotations.rst:18 46c6f65e527d46acadde2b136d169470 +msgid "" +"In contrast to many other tools, initial insert of annotations happens " +"with a minimum number of properties. We leave it to the programmer to " +"e.g. set attributes like author, creation date or subject." +msgstr "" + +#: ../../recipes-annotations.rst:20 d729f5e88c444e6c9303c4deddaa0a97 +msgid "" +"As an overview for these capabilities, look at the following script that " +"fills a PDF page with most of the available annotations. Look in the next" +" sections for more special situations:" +msgstr "" + +#: ../../recipes-annotations.rst:26 b668508bf5a2442aaea6ff355de90c9a +msgid "This script should lead to the following output:" +msgstr "" + +#: ../../recipes-annotations.rst:36 8a364e58ae174ad9b402e789c6a65d86 +msgid "How to Use FreeText" +msgstr "" + +#: ../../recipes-annotations.rst:37 0369d14436b04373b454e0cbe29a65b3 +msgid "" +"This script shows a couple of basic ways to deal with 'FreeText' " +"annotations:" +msgstr "" + +#: ../../recipes-annotations.rst:41 ../../recipes-annotations.rst:50 +#: 1a21cf6f40874661841ad5000a08a6fb 3ca839e69a444b2db34029d783dc79c4 +msgid "The result looks like this:" +msgstr "" + +#: ../../recipes-annotations.rst:46 f9f8bbc9486f42ef87d4c3f349be31d1 +msgid "Here is an example for using rich text and call-out lines:" +msgstr "" + +#: ../../recipes-annotations.rst:63 cf8c08007d894233a60344bfbafb0253 +msgid "How to Use Ink Annotations" +msgstr "" + +#: ../../recipes-annotations.rst:64 c0d699327401467ca37c7e4396f3235b +msgid "" +"Ink annotations are used to contain freehand scribbling. A typical " +"example may be an image of your signature consisting of first name and " +"last name. Technically an ink annotation is implemented as a **list of " +"lists of points**. Each point list is regarded as a continuous line " +"connecting the points. Different point lists represent independent line " +"segments of the annotation." +msgstr "" + +#: ../../recipes-annotations.rst:66 9f3baa89959f4c559f8a04c132d4ef39 +msgid "" +"The following script creates an ink annotation with two mathematical " +"curves (sine and cosine function graphs) as line segments:" +msgstr "" + +#: ../../recipes-annotations.rst:70 3f0535a897bd412ab755434fe5c5677e +msgid "This is the result:" +msgstr "" + +#: ../../footer.rst:46 921b64bf6be94ffdbd4576b585c70ed6 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.mo b/docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.po b/docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.po new file mode 100644 index 000000000..ff01b30b4 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-common-issues-and-their-solutions.po @@ -0,0 +1,350 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 b2d82d593c664654bc418e7afdf9e7b4 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 b78b5807c07e4a528626a4138223e8de +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 5b3592575d784e428d8d959c1aa99173 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:7 +#: cee0b81d77af4629884ac5a2a380da5c +msgid "Common Issues and their Solutions" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:10 +#: 947c39129d6446e094c38d03760b989a +msgid "How To Dynamically Clean Up Corrupt :title:`PDFs`" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:12 +#: 984b7de620ae4755bdc3dd0117a5c862 +msgid "" +"This shows a potential use of |PyMuPDF| with another Python PDF library " +"(the excellent pure Python package `pdfrw " +"`_ is used here as an example)." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:14 +#: efd17fd3443d4f67899e6f4e8c9bf24e +msgid "" +"If a clean, non-corrupt / decompressed PDF is needed, one could " +"dynamically invoke PyMuPDF to recover from many problems like so::" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:50 +#: 3936184480104b60b59e5f2d35b8ae89 +msgid "" +"With the command line utility *pdftk* (`available " +"`_ for Windows " +"only, but reported to also run under `Wine `_) a" +" similar result can be achieved, see `here " +"`_. " +"However, you must invoke it as a separate process via *subprocess.Popen*," +" using stdin and stdout as communication vehicles." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:55 +#: fe7e596e66ca4a86a1fe34324a9a62b4 +msgid "How to Convert Any Document to |PDF|" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:57 +#: ac5c06eafcda49af9010b5dfe0e339ba +msgid "" +"Here is a script that converts any |PyMuPDF| :ref:`supported " +"document` to a |PDF|. These include XPS, EPUB, FB2," +" CBZ and image formats, including multi-page TIFF images." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:59 +#: 256a7ef1c5ab469695bfaa2724670908 +msgid "" +"It features maintaining any metadata, table of contents and links " +"contained in the source document::" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:131 +#: 5aee482ebb684ec799994f2a82dbfc75 +msgid "Changing Annotations: Unexpected Behaviour" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:134 +#: cc0c26247fea4639ae1751eb8901a600 +msgid "Problem" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:135 +#: 70437532335143b8b58a1d4c9a8568cb +msgid "There are two scenarios:" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:137 +#: 081715c0d34b4ed6b9e63c8a63a7ac2d +msgid "" +"**Updating** an annotation with PyMuPDF which was created by some other " +"software." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:138 +#: c4827e1b0a8f4af4ad46ecbb0abffa2b +msgid "" +"**Creating** an annotation with PyMuPDF and later changing it with some " +"other software." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:140 +#: 4237e934234748d3abf9e524336a4243 +msgid "" +"In both cases you may experience unintended changes, like a different " +"annotation icon or text font, the fill color or line dashing have " +"disappeared, line end symbols have changed their size or even have " +"disappeared too, etc." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:143 +#: ../../recipes-common-issues-and-their-solutions.rst:182 +#: ../../recipes-common-issues-and-their-solutions.rst:195 +#: 0110a2da1aa6417a956feea6fd30428c 32fb7855910549f2ad7c953701ac3c0e +#: c6624f27d1fa44b2a2f88b1c10495ca9 +msgid "Cause" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:144 +#: 0c44e7ae5501406d90e73396b2cfde02 +msgid "" +"Annotation maintenance is handled differently by each PDF maintenance " +"application. Some annotation types may not be supported, or not be " +"supported fully or some details may be handled in a different way than in" +" another application. **There is no standard.**" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:146 +#: 11bea0e065f94a779ec3d22653833179 +msgid "" +"Almost always a PDF application also comes with its own icons (file " +"attachments, sticky notes and stamps) and its own set of supported text " +"fonts. For example:" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:148 +#: 54046db1813c480aa6d0dfaafd081e7f +msgid "" +"(Py-) MuPDF only supports these 5 basic fonts for 'FreeText' annotations:" +" Helvetica, Times-Roman, Courier, ZapfDingbats and Symbol -- no italics /" +" no bold variations. When changing a 'FreeText' annotation created by " +"some other app, its font will probably not be recognized nor accepted and" +" be replaced by Helvetica." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:150 +#: 0616819cfbea4e98806d1310924671ec +msgid "" +"PyMuPDF supports all PDF text markers (highlight, underline, strikeout, " +"squiggly), but these types cannot be updated with Adobe Acrobat Reader." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:152 +#: 7109456d991a465085055b08e8e3e36f +msgid "" +"In most cases there also exists limited support for line dashing which " +"causes existing dashes to be replaced by straight lines. For example:" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:154 +#: 832b05a803034cb2b31a6a163b766c80 +msgid "" +"PyMuPDF fully supports all line dashing forms, while other viewers only " +"accept a limited subset." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:158 +#: 608cca13d68e48038902234a11344e7d +msgid "Solutions" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:159 +#: f22d020f442e4ee9a04d2d148fb2e24a +msgid "Unfortunately there is not much you can do in most of these cases." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:161 +#: 31e1179fb95e4328b53c8cdba8f45e53 +msgid "Stay with the same software for **creating and changing** an annotation." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:162 +#: 2c32e4727b8b4bd8ab345f1bb2dab832 +msgid "" +"When using PyMuPDF to change an \"alien\" annotation, try to **avoid** " +":meth:`Annot.update`. The following methods **can be used without it,** " +"so that the original appearance should be maintained:" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:164 +#: 5f2c568a7ab34cd6908429c03002c3b8 +msgid ":meth:`Annot.set_rect` (location changes)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:165 +#: f970043a80bc4905bfbc38378bef6cf7 +msgid ":meth:`Annot.set_flags` (annotation behaviour)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:166 +#: 89d8eeabb0864857bebb1dbd0b5837ac +msgid ":meth:`Annot.set_info` (meta information, except changes to *content*)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:167 +#: 8d145d703a694245bf8816344d618fca +msgid ":meth:`Annot.set_popup` (create popup or change its rect)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:168 +#: ec8d39e7fcf1408083026bfb2854b761 +msgid "" +":meth:`Annot.set_oc` (add / remove reference to optional content " +"information)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:169 +#: 6b85081690ed4886ba03d08a836e7b4e +msgid ":meth:`Annot.set_open`" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:170 +#: 90e51807c8d44cc1861553f1df436100 +msgid ":meth:`Annot.update_file` (file attachment changes)" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:174 +#: dee4c83bcb6a49afb8cd17e74037844d +msgid "Missing or Unreadable Extracted Text" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:175 +#: c1c8dec56daa4bac965e78b95eb48c58 +msgid "" +"Fairly often, text extraction does not work text as you would expect: " +"text may be missing, or may not appear in the reading sequence visible on" +" your screen, or contain garbled characters (like a ? or a \"TOFU\" " +"symbol), etc. This can be caused by a number of different problems." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:178 +#: 1339e236dda1461f94aa74a5c03ef680 +msgid "Problem: no text is extracted" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:179 +#: 10f358276c8043138089b5f17c8602a0 +msgid "" +"Your PDF viewer does display text, but you cannot select it with your " +"cursor, and text extraction delivers nothing." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:183 +#: f6463d656f7d4526b79aa27ea3adcfd6 +msgid "" +"You may be looking at an image embedded in the PDF page (e.g. a scanned " +"PDF)." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:184 +#: 4bda75cc75a84b058bdf9ae2b455a597 +msgid "" +"The PDF creator used no font, but **simulated** text by painting it, " +"using little lines and curves. E.g. a capital \"D\" could be painted by a" +" line \"|\" and a left-open semi-circle, an \"o\" by an ellipse, and so " +"on." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:187 +#: ../../recipes-common-issues-and-their-solutions.rst:200 +#: 4c8ffe1feebe4a46ba615d636a0cf8c7 5ba7c372d3a145a2983fe0d7161d79c0 +msgid "Solution" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:188 +#: b4995dfcae78413486e26863052e0649 +msgid "" +"Use an OCR software like `OCRmyPDF `_" +" to insert a hidden text layer underneath the visible page. The resulting" +" PDF should behave as expected." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:191 +#: 1288979557ce452bb405ebe625a9fe85 +msgid "Problem: unreadable text" +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:192 +#: b9738107688a468fb12503d2923c9223 +msgid "" +"Text extraction does not deliver the text in readable order, duplicates " +"some text, or is otherwise garbled." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:196 +#: 1287dd9e37d94aae87d08382d28337b0 +msgid "" +"The single characters are readable as such (no \"\" symbols), but the " +"sequence in which the text is **coded in the file** deviates from the " +"reading order. The motivation behind may be technical or protection of " +"data against unwanted copies." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:197 +#: f63ebf6449ee40bdaa62ce0cbe979f7b +msgid "" +"Many \"\" symbols occur, indicating MuPDF could not interpret these " +"characters. The font may indeed be unsupported by MuPDF, or the PDF " +"creator may haved used a font that displays readable text, but on purpose" +" obfuscates the originating corresponding unicode character." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:201 +#: 70176f300c204737999ad6e71bb79baa +msgid "Use layout preserving text extraction: `python -m fitz gettext file.pdf`." +msgstr "" + +#: ../../recipes-common-issues-and-their-solutions.rst:202 +#: 4b4ceb3c473b47a9b06e9bb658885b14 +msgid "" +"If other text extraction tools also don't work, then the only solution " +"again is OCRing the page." +msgstr "" + +#: ../../footer.rst:46 07c9714719d541aeb1f5ae9b443f8e23 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.mo b/docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.po b/docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.po new file mode 100644 index 000000000..b2dd9a1d2 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-drawing-and-graphics.po @@ -0,0 +1,238 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 a59582325d1e4587841306a803482970 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 90e5418f2a4041ddb379751a155076c1 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 cbdc25861a8d484890d2227e3494b661 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:7 dab2a6c85f334d099e76c1c25fc379f3 +msgid "Drawing and Graphics" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:11 a70f821282c64602b5f57347f8a0bae4 +msgid "" +"When the terms \"Drawings\" or \"Graphics\" are mentioned here we are " +"referring to \"Vector Graphics\" or \"Line Art\"." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:13 93510784237c4c4b885dc832f8aaeb1f +msgid "Therefore please consider these terms as being synonymous!" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:16 df755690b5be464ab98f1f6014fc5132 +msgid "" +"PDF files support elementary drawing operations as part of their syntax. " +"These are **vector graphics** and include basic geometrical objects like " +"lines, curves, circles, rectangles including specifying colors." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:18 a7dfbdbdeeb54c68afa0bbf219b2f3ba +msgid "" +"The syntax for such operations is defined in \"A Operator Summary\" on " +"page 643 of the :ref:`AdobeManual`. Specifying these operators for a PDF " +"page happens in its :data:`contents` objects." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:20 463f264141f64e68b6fbe2cd2f02fbbb +msgid "" +"|PyMuPDF| implements a large part of the available features via its " +":ref:`Shape` class, which is comparable to notions like \"canvas\" in " +"other packages (e.g. `reportlab `_)." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:22 d166a046958a49a8a28311049458c79a +msgid "" +"A shape is always created as a **child of a page**, usually with an " +"instruction like `shape = page.new_shape()`. The class defines numerous " +"methods that perform drawing operations on the page's area. For example, " +"`last_point = shape.draw_rect(rect)` draws a rectangle along the borders " +"of a suitably defined `rect = pymupdf.Rect(...)`." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:24 4b3375c816d64b008ab7d1854be54f7a +msgid "" +"The returned *last_point* **always** is the :ref:`Point` where drawing " +"operation ended (\"last point\"). Every such elementary drawing requires " +"a subsequent :meth:`Shape.finish` to \"close\" it, but there may be " +"multiple drawings which have one common ``finish()`` method." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:26 f14edc2fb2be4ab8ba19ffdb3740738d +msgid "" +"In fact, :meth:`Shape.finish` *defines* a group of preceding draw " +"operations to form one -- potentially rather complex -- graphics object. " +"|PyMuPDF| provides several predefined graphics in `shapes_and_symbols.py " +"`_ which demonstrate " +"how this works." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:28 c9bdfffa82e64c1d8431f654e9925619 +msgid "" +"If you import this script, you can also directly use its graphics as in " +"the following example::" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:86 e4c7e6930be54525bd756ddc32d931d2 +msgid "This is the script's outcome:" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:97 63f4873345ad4432a9dcf2f213c921ca +msgid "How to Extract Drawings" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:99 c269bccda59e4ce1be7bfbb7665979a2 +msgid "New in v1.18.0" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:101 99437db9d3344f56937dc3ef539d724e +msgid "" +"Drawing commands (**vector graphics**) issued by a page can be extracted " +"as a list of dictionaries. Interestingly, this is possible for :ref:`all " +"supported document types` -- not just PDF: so you " +"can use it for XPS, EPUB and others as well." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:103 9746769ddda943309de190bcae0ff9fe +msgid "" +"Page method, :meth:`Page.get_drawings()` accesses draw commands and " +"converts them into a list of Python dictionaries. Each dictionary -- " +"called a \"path\" -- represents a separate drawing -- it may be simple " +"like a single line, or a complex combination of lines and curves " +"representing one of the shapes of the previous section." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:105 3a7f618513034c8e9ef3833145ea41c1 +msgid "" +"The *path* dictionary has been designed such that it can easily be used " +"by the :ref:`Shape` class and its methods. Here is an example for a page " +"with one path, that draws a red-bordered yellow circle inside rectangle " +"`Rect(100, 100, 200, 200)`::" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:140 0de0ff2bcd1b4aa4bc87691ca4f375c5 +msgid "" +"You need (at least) 4 Bézier curves (of 3rd order) to draw a circle with " +"acceptable precision. See this `Wikipedia article " +"`_ for some background." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:143 b621ef3cc79448109301a7679857a685 +msgid "" +"The following is a code snippet which extracts the drawings of a page and" +" re-draws them on a new page::" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:194 f4c89adbb0a8490d8e03b50a712dcc58 +msgid "" +"As can be seen, there is a high congruence level with the :ref:`Shape` " +"class. With one exception: For technical reasons `lineCap` is a tuple of " +"3 numbers here, whereas it is an integer in :ref:`Shape` (and in PDF). So" +" we simply take the maximum value of that tuple." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:196 782e233251fb459883d5a1434c5a2365 +msgid "" +"Here is a comparison between input and output of an example page, created" +" by the previous script:" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:201 ceca22c756464670adafb8f59a266f9f +msgid "" +"The reconstruction of graphics, like shown here, is not perfect. The " +"following aspects will not be reproduced as of this version:" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:203 4859b04375644a9da37b4c2c286032e9 +msgid "" +"Page definitions can be complex and include instructions for not showing " +"/ hiding certain areas to keep them invisible. Things like this are " +"ignored by :meth:`Page.get_drawings` - it will always return all paths." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:205 0823be3f9f0b4512b042dd4c974406ca +msgid "" +"You can use the path list to make your own lists of e.g. all lines or all" +" rectangles on the page and subselect them by criteria, like color or " +"position on the page etc." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:210 882f949ade2d4b528fbe0a18f15aa51e +msgid "How to Delete Drawings" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:212 d9a69d70bb29499381afbb9347fa3ec5 +msgid "" +"To delete drawings/vector graphics we must use a :ref:`Redaction " +"Annotation ` with the bounding box of the drawing " +"and then **add and apply** a redaction to it to delete it." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:215 486d33c08c624da1ba4d3f8b61cf54e2 +msgid "" +"The following code shows an example of deleting the first drawing found " +"on the page::" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:225 74954d428a74469bae0a628b09803ec9 +msgid "" +"See :meth:`Page.apply_redactions` for the parameter options which can be " +"sent - you are able to apply deletion options to image, drawing and text " +"objects which are bound by the annotation area." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:229 0e3b851a469b4f34b686a303776ff667 +msgid "How to Draw Graphics" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:231 903bdff31610401eba4df3faa0747295 +msgid "" +"Drawing graphics is as simple as calling the type of :meth:`Drawing " +"Method ` you may want. You can draw graphics directly on " +"pages or within shape objects." +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:234 c8c7da7541804af39da538bd86a48706 +msgid "For example, to draw a circle::" +msgstr "" + +#: ../../recipes-drawing-and-graphics.rst:245 a58742fee8a64d88a569cc24aa989eac +msgid "" +"The :ref:`Shape` object can be used to combine multiple drawings that " +"should receive common properties as specified by :meth:`Shape.finish`." +msgstr "" + +#: ../../footer.rst:46 b08a651f11954075811284b1a70b5a8c +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-images.mo b/docs/locales/ko/LC_MESSAGES/recipes-images.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-images.po b/docs/locales/ko/LC_MESSAGES/recipes-images.po new file mode 100644 index 000000000..e274b3fbf --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-images.po @@ -0,0 +1,966 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 a5170acfd12b43adbefd8dfbe853d226 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 cb2bde859c1349828bd247664168fdad +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 becd9c25862646c28f77d71822cc2c8b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-images.rst:7 4710064fae7342178423b005970103b5 +msgid "Images" +msgstr "" + +#: ../../recipes-images.rst:14 4e4cf4f2971d49878a83873ab5b972f7 +msgid "How to Make Images from Document Pages" +msgstr "" + +#: ../../recipes-images.rst:16 e9a6e38305b94ba1b80f9f8c8e22ffd0 +msgid "" +"This little script will take a document filename and generate a PNG file " +"from each of its pages." +msgstr "" + +#: ../../recipes-images.rst:18 308acb4260244cb889d8b5e5e696bc88 +msgid "The document can be any :ref:`supported type`." +msgstr "" + +#: ../../recipes-images.rst:20 a3082189c02c48da807760245885aa8a +msgid "" +"The script works as a command line tool which expects the filename being " +"supplied as a parameter. The generated image files (1 per page) are " +"stored in the directory of the script::" +msgstr "" + +#: ../../recipes-images.rst:29 b7e5e6dd24f045f4a09c4f91b7d4fea8 +msgid "" +"The script directory will now contain PNG image files named *page-0.png*," +" *page-1.png*, etc. Pictures have the dimension of their pages with width" +" and height rounded to integers, e.g. 595 x 842 pixels for an A4 portrait" +" sized page. They will have a resolution of 96 dpi in x and y dimension " +"and have no transparency. You can change all that -- for how to do this, " +"read the next sections." +msgstr "" + +#: ../../recipes-images.rst:37 a572d7ea36d948ea96eded0ff8001773 +msgid "How to Increase :index:`Image Resolution `" +msgstr "" + +#: ../../recipes-images.rst:39 11a284ffaf7742f6a03127e4d1240761 +msgid "" +"The image of a document page is represented by a :ref:`Pixmap`, and the " +"simplest way to create a pixmap is via method :meth:`Page.get_pixmap`." +msgstr "" + +#: ../../recipes-images.rst:41 feae2612c8c0499e90d765be25a00eac +msgid "" +"This method has many options to influence the result. The most important " +"among them is the :ref:`Matrix`, which lets you :index:`zoom`, rotate, " +"distort or mirror the outcome." +msgstr "" + +#: ../../recipes-images.rst:43 b12ee8c226f44cbaaa494b318449f822 +msgid "" +":meth:`Page.get_pixmap` by default will use the :ref:`Identity` matrix, " +"which does nothing." +msgstr "" + +#: ../../recipes-images.rst:45 1b9e0cde360b4b86b79e4a5560753ac9 +msgid "" +"In the following, we apply a :index:`zoom factor `" +" of 2 to each dimension, which will generate an image with a four times " +"better resolution for us (and also about 4 times the size)::" +msgstr "" + +#: ../../recipes-images.rst:53 4b841620223b468290813f2c76bf2f57 +msgid "" +"Since version 1.19.2 there is a more direct way to set the resolution: " +"Parameter `\"dpi\"` (dots per inch) can be used in place of `\"matrix\"`." +" To create a 300 dpi image of a page specify `pix = " +"page.get_pixmap(dpi=300)`. Apart from notation brevity, this approach has" +" the additional advantage that the **dpi value is saved with the image** " +"file -- which does not happen automatically when using the Matrix " +"notation." +msgstr "" + +#: ../../recipes-images.rst:61 31bbb7951f74400fb93921872432755d +msgid "How to Create :index:`Partial Pixmaps` (Clips)" +msgstr "" + +#: ../../recipes-images.rst:62 fbadb2ef5dbd470f8a7e831854d224d8 +msgid "" +"You do not always need or want the full image of a page. This is the case" +" e.g. when you display the image in a GUI and would like to fill the " +"respective window with a zoomed part of the page." +msgstr "" + +#: ../../recipes-images.rst:64 85f7bd7eb0b042c0813c26e94f741bf2 +msgid "" +"Let's assume your GUI window has room to display a full document page, " +"but you now want to fill this room with the bottom right quarter of your " +"page, thus using a four times better resolution." +msgstr "" + +#: ../../recipes-images.rst:66 29dbb31ae3f94b88b955a6b089ae6df5 +msgid "" +"To achieve this, define a rectangle equal to the area you want to appear " +"in the GUI and call it \"clip\". One way of constructing rectangles in " +"PyMuPDF is by providing two diagonally opposite corners, which is what we" +" are doing here." +msgstr "" + +#: ../../recipes-images.rst:79 27b90a5d3a3c45eca6798eb33e10e442 +msgid "" +"In the above we construct *clip* by specifying two diagonally opposite " +"points: the middle point *mp* of the page rectangle, and its bottom " +"right, *rect.br*." +msgstr "" + +#: ../../recipes-images.rst:87 bb7f676a34c54b28a8067fefa1aacd1b +msgid "How to Zoom a Clip to a GUI Window" +msgstr "" + +#: ../../recipes-images.rst:88 3c061aaed37648d081263d96cee3321a +msgid "" +"Please also read the previous section. This time we want to **compute the" +" zoom factor** for a clip, such that its image best fits a given GUI " +"window. This means, that the image's width or height (or both) will equal" +" the window dimension. For the following code snippet you need to provide" +" the WIDTH and HEIGHT of your GUI's window that should receive the page's" +" clip rectangle." +msgstr "" + +#: ../../recipes-images.rst:105 b3a9b91ee3804e7b8c64ed8a2205e309 +msgid "" +"For the other way round, now assume you **have** the zoom factor and need" +" to **compute the fitting clip**." +msgstr "" + +#: ../../recipes-images.rst:107 8ecba4f1cc2d4ce6b5472a6b7d1f6778 +msgid "" +"In this case we have `zoom = HEIGHT/clip.height = WIDTH/clip.width`, so " +"we must set `clip.height = HEIGHT/zoom` and, `clip.width = WIDTH/zoom`. " +"Choose the top-left point `tl` of the clip on the page to compute the " +"right pixmap::" +msgstr "" + +#: ../../recipes-images.rst:124 a9179194547c43379baf5fb667307041 +msgid "How to Create or Suppress Annotation Images" +msgstr "" + +#: ../../recipes-images.rst:125 9cc92f685bcf4d2bafef5da546fbac00 +msgid "" +"Normally, the pixmap of a page also shows the page's annotations. " +"Occasionally, this may not be desirable." +msgstr "" + +#: ../../recipes-images.rst:127 1079c45bc5474873945edff781094f65 +msgid "" +"To suppress the annotation images on a rendered page, just specify " +"`annots=False` in :meth:`Page.get_pixmap`." +msgstr "" + +#: ../../recipes-images.rst:129 b141c29860864fde93d41fedac0919b0 +msgid "" +"You can also render annotations separately: they have their own " +":meth:`Annot.get_pixmap` method. The resulting pixmap has the same " +"dimensions as the annotation rectangle." +msgstr "" + +#: ../../recipes-images.rst:141 5f7013ae1124470a83fa5df727f719d1 +msgid "How to Extract Images: Non-PDF Documents" +msgstr "" + +#: ../../recipes-images.rst:143 3b4b1649fadc41cea019b924cd517adc +msgid "" +"In contrast to the previous sections, this section deals with " +"**extracting** images **contained** in documents, so they can be " +"displayed as part of one or more pages." +msgstr "" + +#: ../../recipes-images.rst:145 cd906454fde6400783d50eb0297c5b39 +msgid "" +"If you want to recreate the original image in file form or as a memory " +"area, you have basically two options:" +msgstr "" + +#: ../../recipes-images.rst:147 dda6ef39b73f40f8b4b566ccb3d6011e +msgid "" +"Convert your document to a PDF, and then use one of the PDF-only " +"extraction methods. This snippet will convert a document to PDF::" +msgstr "" + +#: ../../recipes-images.rst:153 d9d2f8dd08d6424f8418f2300c013bcd +msgid "" +"Use :meth:`Page.get_text` with the \"dict\" parameter. This works for all" +" document types. It will extract all text and images shown on the page, " +"formatted as a Python dictionary. Every image will occur in an image " +"block, containing meta information and **the binary image data**. For " +"details of the dictionary's structure, see :ref:`TextPage`. The method " +"works equally well for PDF files. This creates a list of all images shown" +" on a page::" +msgstr "" + +#: ../../recipes-images.rst:182 44ce44e54f6a4d52b8fa3e4377314037 +msgid "How to Extract Images: PDF Documents" +msgstr "" + +#: ../../recipes-images.rst:184 121c432a4e1b4f0da9d62f1686089fe3 +msgid "" +"Like any other \"object\" in a PDF, images are identified by a cross " +"reference number (:data:`xref`, an integer). If you know this number, you" +" have two ways to access the image's data:" +msgstr "" + +#: ../../recipes-images.rst:186 65a8bdab9a754e05bb94c1a31c2dc6c3 +msgid "" +"**Create** a :ref:`Pixmap` of the image with instruction *pix = " +"pymupdf.Pixmap(doc, xref)*. This method is **very** fast (single digit " +"micro-seconds). The pixmap's properties (width, height, ...) will reflect" +" the ones of the image. In this case there is no way to tell which image " +"format the embedded original has." +msgstr "" + +#: ../../recipes-images.rst:188 1270aa02e2f747a8a27ef8e3820b2c51 +msgid "" +"**Extract** the image with *img = doc.extract_image(xref)*. This is a " +"dictionary containing the binary image data as *img[\"image\"]*. A number" +" of meta data are also provided -- mostly the same as you would find in " +"the pixmap of the image. The major difference is string *img[\"ext\"]*, " +"which specifies the image format: apart from \"png\", strings like " +"\"jpeg\", \"bmp\", \"tiff\", etc. can also occur. Use this string as the " +"file extension if you want to store to disk. The execution speed of this " +"method should be compared to the combined speed of the statements *pix = " +"pymupdf.Pixmap(doc, xref);pix.tobytes()*. If the embedded image is in PNG" +" format, the speed of :meth:`Document.extract_image` is about the same " +"(and the binary image data are identical). Otherwise, this method is " +"**thousands of times faster**, and the **image data is much smaller**." +msgstr "" + +#: ../../recipes-images.rst:190 c7235a839397415b88cc200813afa335 +msgid "" +"The question remains: **\"How do I know those 'xref' numbers of " +"images?\"**. There are two answers to this:" +msgstr "" + +#: ../../recipes-images.rst:192 24b9f0cac5e8493794473b40e99d6fff +msgid "" +"**\"Inspect the page objects:\"** Loop through the items of " +":meth:`Page.get_images`. It is a list of list, and its items look like " +"*[xref, smask, ...]*, containing the :data:`xref` of an image. This " +":data:`xref` can then be used with one of the above methods. Use this " +"method for **valid (undamaged)** documents. Be wary however, that the " +"same image may be referenced multiple times (by different pages), so you " +"might want to provide a mechanism avoiding multiple extracts." +msgstr "" + +#: ../../recipes-images.rst:193 90acb0b07ce44df5809cc83032fab4d6 +msgid "" +"**\"No need to know:\"** Loop through the list of **all xrefs** of the " +"document and perform a :meth:`Document.extract_image` for each one. If " +"the returned dictionary is empty, then continue -- this :data:`xref` is " +"no image. Use this method if the PDF is **damaged (unusable pages)**. " +"Note that a PDF often contains \"pseudo-images\" (\"stencil masks\") with" +" the special purpose of defining the transparency of some other image. " +"You may want to provide logic to exclude those from extraction. Also have" +" a look at the next section." +msgstr "" + +#: ../../recipes-images.rst:195 12c15b841d0c40e5bf38fd3252a5c82f +msgid "" +"For both extraction approaches, there exist ready-to-use general purpose " +"scripts:" +msgstr "" + +#: ../../recipes-images.rst:197 ae5e3ffd1ec342fdbedcedbd9585539f +msgid "" +"`extract-from-pages.py `_ " +"extracts images page by page:" +msgstr "" + +#: ../../recipes-images.rst:202 116fc9d92a524d5fbef97898d73400ef +msgid "" +"and `extract-from-xref.py `_ " +"extracts images by xref table:" +msgstr "" + +#: ../../recipes-images.rst:213 27941620eff34254b2f1df365e86c504 +msgid "How to Handle Image Masks" +msgstr "" + +#: ../../recipes-images.rst:214 06e8942247e04ca18cbb0a2e166e63e0 +msgid "" +"Some images in PDFs are accompanied by **image masks**. In their simplest" +" form, masks represent alpha (transparency) bytes stored as separate " +"images. In order to reconstruct the original of an image, which has a " +"mask, it must be \"enriched\" with transparency bytes taken from its " +"mask." +msgstr "" + +#: ../../recipes-images.rst:216 6956e284f58a455894dad036a8d732f4 +msgid "" +"Whether an image does have such a mask can be recognized in one of two " +"ways in PyMuPDF:" +msgstr "" + +#: ../../recipes-images.rst:218 8f7b0eb999094613b1ec4e9642a0c45a +msgid "" +"An item of :meth:`Document.get_page_images` has the general format " +"`(xref, smask, ...)`, where :data:`xref` is the image's :data:`xref` and " +"*smask*, if positive, then it is the :data:`xref` of a mask." +msgstr "" + +#: ../../recipes-images.rst:219 76639fa3068e459eb26f660440a3b239 +msgid "" +"The (dictionary) results of :meth:`Document.extract_image` have a key " +"*\"smask\"*, which also contains any mask's :data:`xref` if positive." +msgstr "" + +#: ../../recipes-images.rst:221 46e1113696e24d6ba6ff91a314912958 +msgid "" +"If *smask == 0* then the image encountered via :data:`xref` can be " +"processed as it is." +msgstr "" + +#: ../../recipes-images.rst:223 65ebef4703d447a9b3116690abc567cd +msgid "" +"To recover the original image using PyMuPDF, the procedure depicted as " +"follows must be executed:" +msgstr "" + +#: ../../recipes-images.rst:232 6a6811e1d3974ca493ec08e4a67eca0f +msgid "" +"Step (1) creates a pixmap of the basic image. Step (2) does the same with" +" the image mask. Step (3) adds an alpha channel and fills it with " +"transparency information." +msgstr "" + +#: ../../recipes-images.rst:234 0f019370007b48829a5c384c1d511b38 +msgid "" +"The scripts `extract-from-pages.py `_, " +"and `extract-from-xref.py `_ " +"above also contain this logic." +msgstr "" + +#: ../../recipes-images.rst:250 e6cc7c95f595417399c8af124895022f +msgid "How to Make one PDF of all your Pictures (or Files)" +msgstr "" + +#: ../../recipes-images.rst:251 0e5cc72aa12e4c159cee3caf5b124a72 +msgid "" +"We show here **three scripts** that take a list of (image and other) " +"files and put them all in one PDF." +msgstr "" + +#: ../../recipes-images.rst:253 23141b711e854c0fb09b4da836e870c4 +msgid "**Method 1: Inserting Images as Pages**" +msgstr "" + +#: ../../recipes-images.rst:255 6b5ea11f2ac6474da5bc139a540e80fc +msgid "" +"The first one converts each image to a PDF page with the same dimensions." +" The result will be a PDF with one page per image. It will only work for " +":ref:`supported image` file formats::" +msgstr "" + +#: ../../recipes-images.rst:278 5d5f4b70e6ad473b98f0b67b8dd864ee +msgid "" +"This will generate a PDF only marginally larger than the combined " +"pictures' size. Some numbers on performance:" +msgstr "" + +#: ../../recipes-images.rst:280 c29ed63a41334d08bd31d57a51745ab1 +msgid "" +"The above script needed about 1 minute on my machine for 149 pictures " +"with a total size of 514 MB (and about the same resulting PDF size)." +msgstr "" + +#: ../../recipes-images.rst:285 90edd65fe7324ee6a8c2c256f5dad5b3 +msgid "" +"Look `here `_ for a more " +"complete source code: it offers a directory selection dialog and skips " +"unsupported files and non-file entries." +msgstr "" + +#: ../../recipes-images.rst:287 66dd4d051e7b4d12816c624eee514c5e +msgid "" +"We might have used :meth:`Page.insert_image` instead of " +":meth:`Page.show_pdf_page`, and the result would have been a similar " +"looking file. However, depending on the image type, it may store **images" +" uncompressed**. Therefore, the save option *deflate = True* must be used" +" to achieve a reasonable file size, which hugely increases the runtime " +"for large numbers of images. So this alternative **cannot be " +"recommended** here." +msgstr "" + +#: ../../recipes-images.rst:289 31ee78dae4e846c59e2bd4c8213760da +msgid "**Method 2: Embedding Files**" +msgstr "" + +#: ../../recipes-images.rst:291 d485e0eb28084b90a6b28a8ee7cef448 +msgid "" +"The second script **embeds** arbitrary files -- not only images. The " +"resulting PDF will have just one (empty) page, required for technical " +"reasons. To later access the embedded files again, you would need a " +"suitable PDF viewer that can display and / or extract embedded files::" +msgstr "" + +#: ../../recipes-images.rst:316 c94ada8bd9e04598aaf5ab16502b491d +msgid "" +"This is by far the fastest method, and it also produces the smallest " +"possible output file size. The above pictures needed 20 seconds on my " +"machine and yielded a PDF size of 510 MB. Look `here " +"`_ for a more complete source code: it offers a directory" +" selection dialog and skips non-file entries." +msgstr "" + +#: ../../recipes-images.rst:318 9d6d6606772743a0b3d7948c5256f795 +msgid "**Method 3: Attaching Files**" +msgstr "" + +#: ../../recipes-images.rst:320 bcaa4036cb074aa2975925493b912887 +msgid "" +"A third way to achieve this task is **attaching files** via page " +"annotations see `here `_ for the " +"complete source code." +msgstr "" + +#: ../../recipes-images.rst:322 436939e68a27496f95bf3ba627243f13 +msgid "" +"This has a similar performance as the previous script and it also " +"produces a similar file size. It will produce PDF pages which show a " +"'FileAttachment' icon for each attached file." +msgstr "" + +#: ../../recipes-images.rst:326 9ea52a5b17d243b5867452d1793d07b7 +msgid "" +"Both, the **embed** and the **attach** methods can be used for " +"**arbitrary files** -- not just images." +msgstr "" + +#: ../../recipes-images.rst:328 034f2966cc014086a05a35dc70520940 +msgid "" +"We strongly recommend using the awesome package `PySimpleGUI " +"`_ to display a progress meter for" +" tasks that may run for an extended time span. It's pure Python, uses " +"Tkinter (no additional GUI package) and requires just one more line of " +"code!" +msgstr "" + +#: ../../recipes-images.rst:342 f8cabd46ec6d45f09659866a69d91b45 +msgid "How to Create Vector Images" +msgstr "" + +#: ../../recipes-images.rst:343 f469c239c3464680bb9794d9b17a101b +msgid "" +"The usual way to create an image from a document page is " +":meth:`Page.get_pixmap`. A pixmap represents a raster image, so you must " +"decide on its quality (i.e. resolution) at creation time. It cannot be " +"changed later." +msgstr "" + +#: ../../recipes-images.rst:345 39ff1890e34045f0bdaebaf77376c7a6 +msgid "" +"PyMuPDF also offers a way to create a **vector image** of a page in SVG " +"format (scalable vector graphics, defined in XML syntax). SVG images " +"remain precise across zooming levels (of course with the exception of any" +" raster graphic elements embedded therein)." +msgstr "" + +#: ../../recipes-images.rst:347 9f178ef03b574e8297104f71a80c68ea +msgid "" +"Instruction *svg = page.get_svg_image(matrix=pymupdf.Identity)* delivers " +"a UTF-8 string *svg* which can be stored with extension \".svg\"." +msgstr "" + +#: ../../recipes-images.rst:363 b15d36501a88442697fbeeba5b5bb55f +msgid "How to Convert Images" +msgstr "" + +#: ../../recipes-images.rst:364 9c9044f3d0894de0812ab73694a00aca +msgid "" +"Just as a feature among others, PyMuPDF's image conversion is easy. It " +"may avoid using other graphics packages like PIL/Pillow in many cases." +msgstr "" + +#: ../../recipes-images.rst:366 f0648a404f50475e9fbc97705bcf53d2 +msgid "Notwithstanding that interfacing with Pillow is almost trivial." +msgstr "" + +#: ../../recipes-images.rst:369 51147cdb2eb848a59946a784bc3f94a1 +msgid "**Input Formats**" +msgstr "" + +#: ../../recipes-images.rst:369 6e77d3be370148e2a5bce129911da566 +msgid "**Output Formats**" +msgstr "" + +#: ../../recipes-images.rst:369 cf281244182e4d06a258fbbb823081c2 +msgid "**Description**" +msgstr "" + +#: ../../recipes-images.rst:371 530dd206bde5448eb1361b263e3af56b +msgid "BMP" +msgstr "" + +#: ../../recipes-images.rst:371 ../../recipes-images.rst:373 +#: ../../recipes-images.rst:374 ../../recipes-images.rst:375 +#: ../../recipes-images.rst:376 ../../recipes-images.rst:383 +#: ../../recipes-images.rst:384 0a22e6da6c0e4628bcba466b598c7755 +#: 132ea5283e9446b6bef2088214506462 309ee5eed19245778c6c15a0523ba0ec +#: 5ee5770cfadd46c0bc090de19200296e 7002bf7646f84d808f1d5f5e672b0559 +#: a37b99d8b7f547ee9f63392896f7e2d7 c69685da95a6452a83e40f26243b207b +msgid "." +msgstr "" + +#: ../../recipes-images.rst:371 e8fc53116fb14428812ab304c72fcdaf +msgid "Windows Bitmap" +msgstr "" + +#: ../../recipes-images.rst:372 03735a46d7ff47c291751487299a3f1e +#: 17c492d6f34d4470b1aa86f58b11ca2e +msgid "JPEG" +msgstr "" + +#: ../../recipes-images.rst:372 7d1770830b8a487f8c91ea91bd6474eb +msgid "Joint Photographic Experts Group" +msgstr "" + +#: ../../recipes-images.rst:373 23fe9f08f0c74644b077b0cf444d3358 +msgid "JXR" +msgstr "" + +#: ../../recipes-images.rst:373 f548e4952b8b416689c5ce6bc9f95f33 +msgid "JPEG Extended Range" +msgstr "" + +#: ../../recipes-images.rst:374 684a27b7d2874c2b87911e269b40f2d0 +msgid "JPX/JP2" +msgstr "" + +#: ../../recipes-images.rst:374 14493ac2be944a018bff6dbd8ae2bac5 +msgid "JPEG 2000" +msgstr "" + +#: ../../recipes-images.rst:375 7e15ddbcb0ae4375b206202c12d586c7 +msgid "GIF" +msgstr "" + +#: ../../recipes-images.rst:375 9978971d8ce4454d86b805ab8d47cfa9 +msgid "Graphics Interchange Format" +msgstr "" + +#: ../../recipes-images.rst:376 13363ae60931495a837cbc8baf5970fc +msgid "TIFF" +msgstr "" + +#: ../../recipes-images.rst:376 10d71cf9bb9e453cb0dcdea2659abd95 +msgid "Tagged Image File Format" +msgstr "" + +#: ../../recipes-images.rst:377 05f4cb19c0a34596814f731af32ea876 +#: 7931ab4e2d304558895b4c7ce5c29979 +msgid "PNG" +msgstr "" + +#: ../../recipes-images.rst:377 62b451811d4e476c8ae5dd6d849a54a4 +msgid "Portable Network Graphics" +msgstr "" + +#: ../../recipes-images.rst:378 c1d7da490b554e84a7204e6c99fe37ef +#: f730284031c54916ac361e6304056bcb +msgid "PNM" +msgstr "" + +#: ../../recipes-images.rst:378 561bb44f8a6f4ec6a424777a37eef460 +msgid "Portable Anymap" +msgstr "" + +#: ../../recipes-images.rst:379 3eb2b8341ba14a0ca14b367fb547e28d +#: 57b7760ff7804df8b3a3d1bad69d6b15 +msgid "PGM" +msgstr "" + +#: ../../recipes-images.rst:379 21eeb4db595f461792110aec2d8ecea9 +msgid "Portable Graymap" +msgstr "" + +#: ../../recipes-images.rst:380 13aa92582d5d4474abf412bdfe3d0c28 +#: 4c893f1c9fcb4388a360d103c115f4ee +msgid "PBM" +msgstr "" + +#: ../../recipes-images.rst:380 30f2520397de4b9eb325877a3a507bbf +msgid "Portable Bitmap" +msgstr "" + +#: ../../recipes-images.rst:381 14f81272a872402b9c2a813dcdf1adbd +#: 958c5a3c6c9f445f8782e01f89dc6eb2 +msgid "PPM" +msgstr "" + +#: ../../recipes-images.rst:381 b047b29cb5924074b6edcc64ac2f21d4 +msgid "Portable Pixmap" +msgstr "" + +#: ../../recipes-images.rst:382 8b7545df28fe4e84a4f6e5b4eaa96994 +#: b4a70161776d47b9ae8a64cdf4733492 +msgid "PAM" +msgstr "" + +#: ../../recipes-images.rst:382 99b6482f875c4216be23cd14e3b55579 +msgid "Portable Arbitrary Map" +msgstr "" + +#: ../../recipes-images.rst:383 a5f2249d2d1d484f87fad69069bc2941 +msgid "PSD" +msgstr "" + +#: ../../recipes-images.rst:383 5aa71e0042e440b8a2ae7d1232ae1da7 +msgid "Adobe Photoshop Document" +msgstr "" + +#: ../../recipes-images.rst:384 9f13c58a08324e2a9a956e0c7481fdb6 +msgid "PS" +msgstr "" + +#: ../../recipes-images.rst:384 f7d3f16fd29d4f2e873705fa491cdaab +msgid "Adobe Postscript" +msgstr "" + +#: ../../recipes-images.rst:387 47aac2499f2743ea83430c735ea35f6d +msgid "The general scheme is just the following two lines::" +msgstr "" + +#: ../../recipes-images.rst:392 b7f3421a215d4d909a51a70302130d37 +msgid "**Remarks**" +msgstr "" + +#: ../../recipes-images.rst:394 7a47fbda67ec43d7914f6405319663fa +msgid "" +"The **input** argument of *pymupdf.Pixmap(arg)* can be a file or a bytes " +"/ io.BytesIO object containing an image." +msgstr "" + +#: ../../recipes-images.rst:395 58b740eb05e34db9a556c68fe43e7b90 +msgid "" +"Instead of an output **file**, you can also create a bytes object via " +"*pix.tobytes(\"yyy\")* and pass this around." +msgstr "" + +#: ../../recipes-images.rst:396 c3b285b2e78146219bd78577d12d121a +msgid "" +"As a matter of course, input and output formats must be compatible in " +"terms of colorspace and transparency. The ``Pixmap`` class has batteries " +"included if adjustments are needed." +msgstr "" + +#: ../../recipes-images.rst:399 e67f10d9438447479868be73be60c969 +msgid "**Convert JPEG to Photoshop**::" +msgstr "" + +#: ../../recipes-images.rst:405 69af5be5c5e042739b6b881440591067 +msgid "" +"Convert **JPEG to Tkinter PhotoImage**. Any **RGB / no-alpha** image " +"works exactly the same. Conversion to one of the **Portable Anymap** " +"formats (PPM, PGM, etc.) does the trick, because they are supported by " +"all Tkinter versions::" +msgstr "" + +#: ../../recipes-images.rst:412 95cfd29f810e445da70d90c145d8615a +msgid "" +"Convert **PNG with alpha** to Tkinter PhotoImage. This requires " +"**removing the alpha bytes**, before we can do the PPM conversion::" +msgstr "" + +#: ../../recipes-images.rst:429 1911e5e8b8924c1a8b4f22e5163ab54f +msgid "How to Use Pixmaps: Gluing Images" +msgstr "" + +#: ../../recipes-images.rst:431 7bec2fa27c4e409498516974d3af1a08 +msgid "" +"This shows how pixmaps can be used for purely graphical, non-document " +"purposes. The script reads an image file and creates a new image which " +"consist of 3 * 4 tiles of the original::" +msgstr "" + +#: ../../recipes-images.rst:451 5e629a692db5492494234aeaa2c9e000 +msgid "This is the input picture:" +msgstr "" + +#: ../../recipes-images.rst:456 0eb66869c4e049f18880e64efa606cb7 +msgid "Here is the output:" +msgstr "" + +#: ../../recipes-images.rst:473 193131d4ef064104aca816c9fb1b8eda +msgid "How to Use Pixmaps: Making a Fractal" +msgstr "" + +#: ../../recipes-images.rst:475 94c73f5e5e844ef29a6937bacf69e134 +msgid "" +"Here is another Pixmap example that creates **Sierpinski's Carpet** -- a " +"fractal generalizing the **Cantor Set** to two dimensions. Given a square" +" carpet, mark its 9 sub-suqares (3 times 3) and cut out the one in the " +"center. Treat each of the remaining eight sub-squares in the same way, " +"and continue *ad infinitum*. The end result is a set with area zero and " +"fractal dimension 1.8928..." +msgstr "" + +#: ../../recipes-images.rst:477 56abcac9cb974ce6ae22fd649ca0859f +msgid "" +"This script creates an approximate image of it as a PNG, by going down to" +" one-pixel granularity. To increase the image precision, change the value" +" of n (precision)::" +msgstr "" + +#: ../../recipes-images.rst:531 c2a2453f8f7b4dbdb1a88b9ab6e6be44 +msgid "The result should look something like this:" +msgstr "" + +#: ../../recipes-images.rst:541 7b65b42e069e44c4acda5058a222b54c +msgid "How to Interface with NumPy" +msgstr "" + +#: ../../recipes-images.rst:543 4737dca0e38f4d0391a1712b9196eeb8 +msgid "" +"This shows how to create a PNG file from a numpy array (several times " +"faster than most other methods)::" +msgstr "" + +#: ../../recipes-images.rst:570 86677e790d2c4f67807e8699c758c3b8 +msgid "How to Add Images to a PDF Page" +msgstr "" + +#: ../../recipes-images.rst:572 8b806d59869144378fcd5066d1490f5c +msgid "" +"There are two methods to add images to a PDF page: " +":meth:`Page.insert_image` and :meth:`Page.show_pdf_page`. Both methods " +"have things in common, but there are also differences." +msgstr "" + +#: ../../recipes-images.rst:575 2c8c48d1aa0b4d95ba46f51b58d654d6 +msgid "**Criterion**" +msgstr "" + +#: ../../recipes-images.rst:575 7d8993132b2b4a42a0cf8d794f2992d0 +msgid ":meth:`Page.insert_image`" +msgstr "" + +#: ../../recipes-images.rst:575 8a3e9ca045d64f2e8d891f008fec70a3 +msgid ":meth:`Page.show_pdf_page`" +msgstr "" + +#: ../../recipes-images.rst:577 5bd36cce5edc4839bb92e31c9c76b006 +msgid "displayable content" +msgstr "" + +#: ../../recipes-images.rst:577 6abadbc464324e72b3412212af08ddd5 +msgid "image file, image in memory, pixmap" +msgstr "" + +#: ../../recipes-images.rst:577 fe5a852c20eb446f96ab83f04f7f4a93 +msgid "PDF page" +msgstr "" + +#: ../../recipes-images.rst:578 204fbfd1f4dd47b9b874c7093d251715 +msgid "display resolution" +msgstr "" + +#: ../../recipes-images.rst:578 6877443fc21f4ae29b20fa83d0845e7f +msgid "image resolution" +msgstr "" + +#: ../../recipes-images.rst:578 3259783ac12241b39f8d13f3ae0773d6 +msgid "vectorized (except raster page content)" +msgstr "" + +#: ../../recipes-images.rst:579 0a170d4e27b74f7ba12e8e015f247437 +msgid "rotation" +msgstr "" + +#: ../../recipes-images.rst:579 809287424df744108ab05380b655171e +msgid "0, 90, 180 or 270 degrees" +msgstr "" + +#: ../../recipes-images.rst:579 da8c599cd42840bbac1e77a82693730a +msgid "any angle" +msgstr "" + +#: ../../recipes-images.rst:580 f40e820c9fb14438ae80fc9bde7f8a98 +msgid "clipping" +msgstr "" + +#: ../../recipes-images.rst:580 4573b228aad144ed96c21fc96b46d235 +msgid "no (full image only)" +msgstr "" + +#: ../../recipes-images.rst:580 ../../recipes-images.rst:585 +#: 451bef807fb34d769267984ed465f6dc cca26d0a49b6435a81557dc0961b5744 +msgid "yes" +msgstr "" + +#: ../../recipes-images.rst:581 cfbb20540a0b4c778339a005d689e7b8 +msgid "keep aspect ratio" +msgstr "" + +#: ../../recipes-images.rst:581 9088023618154cb2b1a12c0ddf19f1a2 +#: f0b3417bf2a7468f8f23939745c86e02 +msgid "yes (default option)" +msgstr "" + +#: ../../recipes-images.rst:582 5f19b1705d7c458d9132e003453cbec7 +msgid "transparency (water marking)" +msgstr "" + +#: ../../recipes-images.rst:582 99fc40d08cd448d4a3d5157524c2fed1 +msgid "depends on the image" +msgstr "" + +#: ../../recipes-images.rst:582 4953bd2dbe474a6a95444caaec0f8e00 +msgid "depends on the page" +msgstr "" + +#: ../../recipes-images.rst:583 800220a1afe84937ab054dd04a19a8c8 +msgid "location / placement" +msgstr "" + +#: ../../recipes-images.rst:583 3d7142d3e8b844178ad964a906047c57 +#: 6f79b41a8b7f44d0b808c73f0bca9bbf +msgid "scaled to fit target rectangle" +msgstr "" + +#: ../../recipes-images.rst:584 bcd9bfd74c0e4791b173eea29559bf7c +msgid "performance" +msgstr "" + +#: ../../recipes-images.rst:584 709fb304b9de44d69140fb3994966d0b +#: aa53a4c8c09a4cfba0e8f1a66a28bb65 +msgid "automatic prevention of duplicates;" +msgstr "" + +#: ../../recipes-images.rst:585 0937b39761af40238a7534454037df7f +msgid "multi-page image support" +msgstr "" + +#: ../../recipes-images.rst:585 14f432eb978947a8aeab98f966d2d10f +msgid "no" +msgstr "" + +#: ../../recipes-images.rst:586 925c5122b94f48c5b30dceafcb918523 +msgid "ease of use" +msgstr "" + +#: ../../recipes-images.rst:586 570bc160fd964dfd90f9efc5d183be86 +msgid "simple, intuitive;" +msgstr "" + +#: ../../recipes-images.rst:586 7cf88dffae244d2ab3bda778f8a61657 +msgid "" +"simple, intuitive; **usable for all document types** (including images!) " +"after conversion to PDF via :meth:`Document.convert_to_pdf`" +msgstr "" + +#: ../../recipes-images.rst:592 6ad1ea7eaa8f47249a3a73f2bd375d6e +msgid "" +"Basic code pattern for :meth:`Page.insert_image`. **Exactly one** of the " +"parameters **filename / stream / pixmap** must be given, if not re-" +"inserting an existing image::" +msgstr "" + +#: ../../recipes-images.rst:607 324876f64fbe4c44ab53d2a63fa13939 +msgid "" +"Basic code pattern for :meth:`Page.show_pdf_page`. Source and target PDF " +"must be different :ref:`Document` objects (but may be opened from the " +"same file)::" +msgstr "" + +#: ../../recipes-images.rst:623 3fb681b8dd954d6191b33bb9379c5769 +msgid "How to Use Pixmaps: Checking Text Visibility" +msgstr "" + +#: ../../recipes-images.rst:625 f6738eb5b3944be59ab375f9b7eb965f +msgid "" +"Whether or not a given piece of text is actually visible on a page " +"depends on a number of factors:" +msgstr "" + +#: ../../recipes-images.rst:627 1e747fae38a041ceab9962bed078d738 +msgid "" +"Text is not covered by another object but may have the same color as the " +"background i.e., white-on-white etc." +msgstr "" + +#: ../../recipes-images.rst:628 f335376e08db4247a18b81df59e129c8 +msgid "" +"Text may be covered by an image or vector graphics. Detecting this is an " +"important capability, for example to uncover badly anonymized legal " +"documents." +msgstr "" + +#: ../../recipes-images.rst:629 c13633a208484210b9ae568ec9ba0f68 +msgid "" +"Text is created hidden. This technique is usually used by OCR tools to " +"store the recognized text in an invisible layer on the page." +msgstr "" + +#: ../../recipes-images.rst:631 15e4b37ca4e743d9ace6bbddf7721b12 +msgid "" +"The following shows how to detect situation 1. above, or situation 2. if " +"the covering object is unicolor::" +msgstr "" + +#: ../../recipes-images.rst:645 83c1b504293642219a2e1c7034fa13ef +msgid "" +"Method :meth:`Pixmap.color_topusage` returns a tuple `(ratio, pixel)` " +"where 0 < ratio <= 1 and *pixel* is the pixel value of the color. Please " +"note that we create a **pixmap only once**. This can save a lot of " +"processing time if there are multiple hit rectangles." +msgstr "" + +#: ../../recipes-images.rst:647 a5240ef02f1b474ca0cc0911c89fca25 +msgid "" +"The logic of the above code is: If the needle's rectangle is (\"almost\":" +" > 95%) unicolor, then the text cannot be visible. A typical result for " +"visible text returns the color of the background (mostly white) and a " +"ratio around 0.7 to 0.8, for example `(0.685, b'\\xff\\xff\\xff')`." +msgstr "" + +#: ../../footer.rst:46 069c8258eace4a40a1b85ff062eeb067 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-journalling.mo b/docs/locales/ko/LC_MESSAGES/recipes-journalling.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-journalling.po b/docs/locales/ko/LC_MESSAGES/recipes-journalling.po new file mode 100644 index 000000000..0b021e071 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-journalling.po @@ -0,0 +1,171 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 25048fda51ce418c9d015f1246e746af +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 797ac5efa9e24c438fafe7f71ce832da +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 753e44f114514b2e927f9c1cf789d18c +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-journalling.rst:7 b01dda5af224433398494559bf0ada58 +msgid "Journalling" +msgstr "" + +#: ../../recipes-journalling.rst:10 f1543a90864a42ea86fe641d52d33bea +msgid "" +"Starting with version 1.19.0, journalling is possible when updating PDF " +"documents." +msgstr "" + +#: ../../recipes-journalling.rst:12 1456c9ef805443c79a0bd76d2471b773 +msgid "" +"Journalling is a logging mechanism which permits either **reverting** or " +"**re-applying** changes to a PDF. Similar to LUWs \"Logical Units of " +"Work\" in modern database systems, one can group a set of updates into an" +" \"operation\". In MuPDF journalling, an operation plays the role of a " +"LUW." +msgstr "" + +#: ../../recipes-journalling.rst:14 aa605819004a494da8700c4dbb499ca3 +msgid "" +"In contrast to LUW implementations found in database systems, MuPDF " +"journalling happens on a **per document level**. There is no support for " +"simultaneous updates across multiple PDFs: one would have to establish " +"one's own logic here." +msgstr "" + +#: ../../recipes-journalling.rst:16 cabd8aa10cf746e6b10fc9fd0a9d7182 +msgid "" +"Journalling must be *enabled* via a document method. Journalling is " +"possible for existing or new documents. Journalling **can be disabled " +"only** by closing the file." +msgstr "" + +#: ../../recipes-journalling.rst:17 1090ca7dc7904871b61188430e85d1a1 +msgid "" +"Once enabled, every change must happen inside an *operation* -- otherwise" +" an exception is raised. An operation is started and stopped via document" +" methods. Updates happening between these two calls form an LUW and can " +"thus collectively be rolled back or re-applied, or, in MuPDF terminology " +"\"undone\" resp. \"redone\"." +msgstr "" + +#: ../../recipes-journalling.rst:18 c31321fa1fc14929871630087cdd8b8b +msgid "" +"At any point, the journalling status can be queried: whether journalling " +"is active, how many operations have been recorded, whether \"undo\" or " +"\"redo\" is possible, the current position inside the journal, etc." +msgstr "" + +#: ../../recipes-journalling.rst:19 5748ec5bd69741daaecd28651e5b67b8 +msgid "" +"The journal can be **saved to** or **loaded from** a file. These are " +"document methods." +msgstr "" + +#: ../../recipes-journalling.rst:20 2a1ee018fa1144fba3f9e32e294bcd4e +msgid "" +"When loading a journal file, compatibility with the document is checked " +"and journalling is automatically enabled upon success." +msgstr "" + +#: ../../recipes-journalling.rst:21 359a67deba6d45c7b2870adfc40b92b5 +msgid "" +"For an **existing** PDF being journalled, a special new save method is " +"available: :meth:`Document.save_snapshot`. This performs a special " +"incremental save that includes all journalled updates so far. If its " +"journal is saved at the same time (immediately after the document " +"snapshot), then document and journal are in sync and can later on be used" +" together to undo or redo operations or to continue journalled updates --" +" just as if there had been no interruption." +msgstr "" + +#: ../../recipes-journalling.rst:22 2371ef9364394ab18af8172ee2fbd84c +msgid "" +"The snapshot PDF is a valid PDF in every aspect and fully usable. If the " +"document is however changed in any way without using its journal file, " +"then a desynchronization will take place and the journal is rendered " +"unusable." +msgstr "" + +#: ../../recipes-journalling.rst:23 88b4f9365d4e41919901f2e3341b68b3 +msgid "" +"Snapshot files are structured like incremental updates. Nevertheless, the" +" internal journalling logic requires, that saving **must happen to a new " +"file**. So the user should develop a file naming convention to support " +"recognizable relationships between an original PDF, like `original.pdf` " +"and its snapshot sets, like `original-snap1.pdf` / `original-snap1.log`, " +"`original-snap2.pdf` / `original-snap2.log`, etc." +msgstr "" + +#: ../../recipes-journalling.rst:26 86cb216c0b2c49ad82e67e5dcd1dad33 +msgid "Example Session 1" +msgstr "" + +#: ../../recipes-journalling.rst:27 ../../recipes-journalling.rst:98 +#: 623199d65f524b49925fac870071c962 e45525e109c54fde88b07c36ca5ae547 +msgid "Description:" +msgstr "" + +#: ../../recipes-journalling.rst:29 64be3df2712342b6b3a07eb934808271 +msgid "" +"Make a new PDF and enable journalling. Then add a page and some text " +"lines -- each as a separate operation." +msgstr "" + +#: ../../recipes-journalling.rst:30 f87700abdc524bcf98d294a44fcb2e9d +msgid "" +"Navigate within the journal, undoing and redoing these updates and " +"displaying status and file results::" +msgstr "" + +#: ../../recipes-journalling.rst:97 f540b437628341a68f1d143da3561958 +msgid "Example Session 2" +msgstr "" + +#: ../../recipes-journalling.rst:100 e49f0638f47e40cfa88e8a2e5c342dc4 +msgid "" +"Similar to previous, but after undoing some operations, we now add a " +"different update. This will cause:" +msgstr "" + +#: ../../recipes-journalling.rst:102 aeb2a12789f44076a21e14f5e8edbdf0 +msgid "permanent removal of the undone journal entries" +msgstr "" + +#: ../../recipes-journalling.rst:103 039d45dbbda9472596a7e3eab31cb2f1 +msgid "the new update operation will become the new last entry." +msgstr "" + +#: ../../footer.rst:46 5ed33c2c15454dd7b2014d897f80427a +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.mo b/docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.po b/docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.po new file mode 100644 index 000000000..1c5d1e938 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-low-level-interfaces.po @@ -0,0 +1,505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 75434c61000b4a94a1404a3d68f178d3 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 ddfdaa7abef4454c84dd019f11c20c87 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 903f0a7765df4517bf839cf576bb4cd7 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:7 876f381a92644748ae6580657c5d6371 +msgid "Low-Level Interfaces" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:10 56a6762686bb479a903f22b76be1b5e4 +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:12 509bc82d522c4d62bd7cf935e205a083 +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:14 20061f0fd15a4e39ad5408b30f02ea0d +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:19 3d2eebf5f47c48afb777b5e1cbe85fa9 +msgid "How to Iterate through the :data:`xref` Table" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:20 c9233e278f7a44a5b599e88a0848f67a +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:32 b93c9745639841dabd4c68c0cc52e782 +msgid "This produces the following output::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:72 d3c70e3964ee4a28b58534c83ad26bbc +msgid "A PDF object definition is an ordinary ASCII string." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:77 493207cb244546a59a72c418fd16281c +msgid "How to Handle Object Streams" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:78 e736d6692a344e6280ec68ba8aa262da +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:80 cabdb524e1d849448046bf6e2d206342 +msgid "" +"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`." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:82 ba7bea2d5ccf47818f2fbbdf71fff7fd +msgid "" +"Assume that the following snippet wants to read all streams of a PDF for " +"whatever reason::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:91 9047c6fd5efa437b8bc7bc5353205ab2 +msgid "" +":meth:`Document.xref_stream` automatically returns a stream decompressed " +"as a bytes object -- and :meth:`Document.update_stream` automatically " +"compresses it if beneficial." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:96 5546055dde52483fab745bbc48f96b0f +msgid "How to Handle Page Contents" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:97 9e0c2c1ba3df4e1d8317099f96c3c0a6 +msgid "" +"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`." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:99 386e5519cf9249b2ba829b533c775316 +msgid "" +"Every PDF reader application must be able to interpret the contents " +"syntax to reproduce the intended appearance of the page." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:101 28d8cbd998214286ac22c11bab9374a1 +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:103 d47ff2ffa881474caad92f60fd6bdb53 +msgid "" +"There are good technical arguments for having multiple :data:`contents` " +"objects:" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:105 0a53f856d8904323aef9b42981091b99 +msgid "" +"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)." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:106 fcbe0dac945345dd948d48f71cb2211d +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:108 0d451f51c5ee4fd7a0f796fedca1aaef +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:110 89445c95103d4a92beb375bccb7fa5ab +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:112 2a0b4642b4364684a16adb1d39489ec3 +msgid "Here are two ways of combining multiple contents of a page::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:124 6057b6061a91411ea964bce99b20537e +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:129 844f10a12b4048188390d4080ce7c9c3 +msgid "How to Access the PDF Catalog" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:130 fb4cc97df02e4b7dabd01a2eb37ac0ce +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:146 1a3be34ec5154f478840f9583752a6dd +msgid "" +"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`." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:151 f6cb282ffd654805b67324bd72b4ae19 +msgid "How to Access the PDF File Trailer" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:152 2f99555ea9464790998c72d9bb928af6 +msgid "" +"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:" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:155 04bff59ce53f4b8fa7cc2d5c1e5eea13 +msgid "**Key**" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:155 8e89e5f4179345d481243a717e85c672 +msgid "**Type**" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:155 903806d55c7b4a6ba366a2fb6723087b +msgid "**Value**" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:157 3f86ae718b944400beb0abe4e3c0ffc6 +msgid "Size" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:157 +#: ../../recipes-low-level-interfaces.rst:158 +#: ../../recipes-low-level-interfaces.rst:163 0151f1cab4e14722a6078e4d9d1ef692 +#: 65f366157b6d48fd9a44282c78eeb3fb f3e5b4c1111842a3bdd6a8d28b0ace69 +msgid "int" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:157 b687a9563e5445e1a4a96170f23fd4ed +msgid "Number of entries in the cross-reference table + 1." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:158 c04f76c59d18423996a207301fe05b6c +msgid "Prev" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:158 f3def7a36286442a9177758486e19b60 +msgid "Offset to previous :data:`xref` section (indicates incremental updates)." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:159 c31d927f0f504e1eab1cc5069c67fb84 +msgid "Root" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:159 +#: ../../recipes-low-level-interfaces.rst:160 +#: ../../recipes-low-level-interfaces.rst:161 46c865d65cb54d6a9bd3680eadccc9e2 +#: 4cac1014b9f949de8a9fea7b1ec825d4 71dd8129bfe3455c9ba485dee7df486a +msgid "dictionary" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:159 7ce50eec5fcd45bf8ec4c639257e81f2 +msgid "(indirect) Pointer to the catalog. See previous section." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:160 076ac475747440afa77a21c7e831af71 +msgid "Encrypt" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:160 dbd95d95d21d4d63b464a548435e60f7 +msgid "Pointer to encryption object (encrypted files only)." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:161 d3a696bffe5c47e68d3282ffcd42bdbd +msgid "Info" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:161 4005b1fad3e54caf9398edeb6a5903d2 +msgid "(indirect) Pointer to information (metadata)." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:162 5fab0c7955d749a48d2a3b763b7c9670 +msgid "ID" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:162 6898db1a22a3477fa753166d2cbe3164 +msgid "array" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:162 6b2347ffb47c4b0081aa8acde158dcc0 +msgid "File identifier consisting of two byte strings." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:163 8139050a469b4720a0c241492831b167 +msgid "XRefStm" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:163 05d57dc7bf91480f8003a6fc80f999f0 +msgid "Offset of a cross-reference stream. See :ref:`AdobeManual` p. 49." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:166 6202cb8493b044fab435b3e03390cc72 +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:187 9471214cc8bf436a85a288b50896bcec +msgid "How to Access XML Metadata" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:188 11166fcb45b742b390422fc68e337f42 +msgid "" +"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.)." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:190 66fa949fa3734abc94308b18f181168d +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:202 d89d8b8d321c4343b58807d0a6abb8f3 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:213 1c05939e6ce141669a782bf9f395e2e3 +msgid "How to Extend PDF Metadata" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:214 3c73d296caa64f959f4462e689310160 +msgid "" +"Attribute :attr:`Document.metadata` is designed so it works for all " +":ref:`supported document 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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:216 2d338508ee9d4183a1e01a0ddc4913fb +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:218 4b3358b8f8ae445d967cb16ecb41155b +msgid "As an example, look at this standard metadata output of some PDF::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:237 3e9c31875d914679be24d654087376b7 +msgid "" +"Use the following code to see **all items** stored in the metadata " +"object::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:265 9044da7dae9243488a9b55198969056f +msgid "" +"*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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:287 02817b654e9b436b88b8c0bb4315843c +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:292 1b30dcfaa7584ec7ad6ea741fcef3f3d +msgid "How to Read and Update PDF Objects" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:297 3d42ddab6e0142cebbd430aa2e5703b5 +msgid "" +"There also exist granular, elegant ways to access and manipulate selected" +" PDF :data:`dictionary` keys." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:299 0ae387a252ac402cbd803641d93dffb8 +msgid "" +":meth:`Document.xref_get_keys` returns the PDF keys of the object at " +":data:`xref`::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:308 3e72f7b183cd4b33906cc3039c3d5231 +msgid "Compare with the full object definition::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:319 3e65febdd754494e963713aa6ab4e707 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:324 05f684fed3f04de4bb45d40de217b49d +msgid "Here is a full listing of the above page keys::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:335 9a78976524a4487aa10951cc475ba498 +msgid "" +"An undefined key inquiry returns `('null', 'null')` -- PDF object type " +"`null` corresponds to `None` in Python. Similar for the booleans `true` " +"and `false`." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:336 a799622cee4441148aa30dadcc2c66b8 +msgid "" +"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?)::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:351 8bf57e3c458a40379cf2dacf4867c307 +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:353 eb61cb57cb054fbcba0a0e87011b9704 +msgid "" +"PDF dictionaries can be hierarchically nested. In the following page " +"object definition both, `Font` and `XObject` are subdictionaries of " +"`Resources`::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:373 53a1a5f64c1b46b6a11637fe7a037f27 +msgid "" +"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\"`::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:378 29393cc04fc94daf8a80dff959cc95d5 +msgid "" +"The path notation can also be used to **directly set a value**: use the " +"following to let `Im1` point to a different object::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:399 e8cf3e8fbf4a429d8ad7ad100f97899d +msgid "" +"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." +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:401 d43960f2d29045d6995ad727a6a18ef6 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:421 bba82e04d29a431c8cfaa0c81a8422c0 +msgid "" +"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`::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:429 b3e5658efb1847799ff226694699b334 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-low-level-interfaces.rst:442 7cb0c4e7fe9e4eb580372473612bca3c +msgid "" +"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." +msgstr "" + +#: ../../footer.rst:46 cdf69554bc5f45a1bcc753bd3326f80b +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.mo b/docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.po b/docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.po new file mode 100644 index 000000000..be37dcff8 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-multiprocessing.po @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 7e6f40d7964249e79b04c3d1e97663f7 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 0b0e7728efd643f2af88f9a10132b4db +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 fcd448c0f08b44ca81698f910e7f182b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-multiprocessing.rst:17 c6783e6e6a79406dbcc4279e7db0acff +msgid "Multiprocessing" +msgstr "" + +#: ../../recipes-multiprocessing.rst:19 3440ee5e309146219a07e286636ee246 +msgid "" +"|PyMuPDF| does not support running on multiple threads - doing so may " +"cause incorrect behaviour or even crash Python itself." +msgstr "" + +#: ../../recipes-multiprocessing.rst:21 c2e5df4ee4234d12ae3febd77e85fbe3 +msgid "" +"However, there is the option to use :title:`Python's` *multiprocessing* " +"module in a variety of ways." +msgstr "" + +#: ../../recipes-multiprocessing.rst:23 bf58d753cc3b40d7a405acc1f719c73c +msgid "" +"If you are looking to speed up page-oriented processing for a large " +"document, use this script as a starting point. It should be at least " +"twice as fast as the corresponding sequential processing." +msgstr "" + +#: ../../recipes-multiprocessing.rst:26 ../../recipes-multiprocessing.rst:37 +#: c80ee239863c4c828445463631c1e884 f7c061f68ffd4ceeb32612aadf8d455e +msgid "|toggleStart|" +msgstr "" + +#: ../../recipes-multiprocessing.rst:31 ../../recipes-multiprocessing.rst:42 +#: 591531fd1bc740dcb7a6d96399fe0ae1 71adac329d5748839c5c665b80e4d71d +msgid "|toggleEnd|" +msgstr "" + +#: ../../recipes-multiprocessing.rst:34 29a0399816a94d87be2670a44b7590db +msgid "" +"Here is a more complex example involving inter-process communication " +"between a main process (showing a GUI) and a child process doing " +"|PyMuPDF| access to a document." +msgstr "" + +#: ../../footer.rst:46 bd8b258b125f42cda799e69f58599037 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-ocr.mo b/docs/locales/ko/LC_MESSAGES/recipes-ocr.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-ocr.po b/docs/locales/ko/LC_MESSAGES/recipes-ocr.po new file mode 100644 index 000000000..734a35ca5 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-ocr.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 5b2b2477e1b643fe878fe480ca8a5a5c +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 9af1355de6074c539e4b51e5dd6b1657 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 8dcf3faef7104a2cafff9541cb4c8daf +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-ocr.rst:17 d523ae4d9ab8407a9cf5b861f5297e31 +msgid "OCR - Optical Character Recognition" +msgstr "" + +#: ../../recipes-ocr.rst:19 ad0635e0379e4e30a03ba26654ccd626 +msgid "" +"|PyMuPDF| has integrated support for OCR (Optical Character Recognition)." +" It is possible to use OCR for both, images (via the :ref:`Pixmap` class)" +" and for document pages." +msgstr "" + +#: ../../recipes-ocr.rst:21 0e099596d02b489e9ad0b0acde488005 +msgid "" +"The feature is currently based on Tesseract-OCR which must be installed " +"as a separate application -- see the :ref:`installation_ocr`." +msgstr "" + +#: ../../recipes-ocr.rst:24 ea8b233238a54196add63aa017b42543 +msgid "How to OCR an Image" +msgstr "" + +#: ../../recipes-ocr.rst:25 a44323f4b0df47da98d91ac1a37d6b21 +msgid "" +"A supported image must first be converted to a :ref:`Pixmap`. The Pixmap " +"can then be saved to a 1-page PDF. This page will look like the original " +"image with the same width and height. It will contain a layer of text as " +"recognized by Tesseract." +msgstr "" + +#: ../../recipes-ocr.rst:27 fb8760d9d7144f5786b17ead972a9a1f +msgid "" +"The PDF can be generated via one of the methods " +":meth:`Pixmap.pdfocr_save` or :meth:`Pixmap.pdfocr_tobytes`, as a file on" +" disk or as a PDF in memory." +msgstr "" + +#: ../../recipes-ocr.rst:29 1f42a8e44a1d4d17b7f75da5f822e8aa +msgid "" +"The text can be extracted and searched with the usual text extraction and" +" search methods (:meth:`Page.get_text`, :meth:`Page.search_for`, etc.). " +"Please also note the following important facts and prerequisites:" +msgstr "" + +#: ../../recipes-ocr.rst:31 44371b59458b49ce97c3a0a6cc2e6b26 +msgid "" +"When converting the image to a Pixmap, please confirm that the color " +"space is RGB and alpha is `False` (no transparency). Convert the original" +" Pixmap if necessary." +msgstr "" + +#: ../../recipes-ocr.rst:32 30e5cba3998c418688b3fea3b830296b +msgid "" +"All text is written as \"hidden\" with Tesseract's own `GlyphLessFont`, a" +" mono-spaced font with metrics comparable to Courier." +msgstr "" + +#: ../../recipes-ocr.rst:33 6ac9d9f5b2824a4890be1cf73715c091 +msgid "" +"All text has the properties regular and black (i.e. no bold, no italic, " +"no information about the original fonts)." +msgstr "" + +#: ../../recipes-ocr.rst:34 a08272a3cc18432f9cc35cdd8591c309 +msgid "" +"Tesseract does not recognize vector graphics (i.e. no drawings / line-" +"art)." +msgstr "" + +#: ../../recipes-ocr.rst:36 35e883700cc148b98f8d79dcf362ad4e +msgid "This approach is also recommended to OCR a complete scanned PDF:" +msgstr "" + +#: ../../recipes-ocr.rst:38 d47d8fca90fb4141932d00dd7353c53a +msgid "Render each page to a :ref:`Pixmap` with desired resolution" +msgstr "" + +#: ../../recipes-ocr.rst:39 666549a157cb4d1eae9cfaa445aa6b78 +msgid "Append the resulting 1-page PDF to the output PDF" +msgstr "" + +#: ../../recipes-ocr.rst:42 df250dae4cd34a3e9b289c490a3cde65 +msgid "How to OCR a Document Page" +msgstr "" + +#: ../../recipes-ocr.rst:43 9a152c4ead1343cf86489d1427003811 +msgid "" +"Any supported document page can be OCR-ed -- either the complete page or " +"only the image areas on it." +msgstr "" + +#: ../../recipes-ocr.rst:45 75c8b08c675a49f2bf0d5425b06d171a +msgid "" +"Because optical character recognition is about one thousand times slower " +"than standard text extraction, we make sure to do OCR only once per page " +"and store the result in a :ref:`TextPage`. Using this TextPage for all " +"subsequent extractions and text searches will then happen with " +"|PyMuPDF|'s usual top speed." +msgstr "" + +#: ../../recipes-ocr.rst:47 96c380b987f94acbbfb8ac4450e43dce +msgid "To OCR a document page, follow this approach:" +msgstr "" + +#: ../../recipes-ocr.rst:49 39681da9450c49058ca2763173465812 +msgid "" +"Determine whether OCR is needed / beneficial at all. A number of criteria" +" can be used for this decision, like:" +msgstr "" + +#: ../../recipes-ocr.rst:51 671903164c6c495da5a353e4d7e1a112 +msgid "page is completely covered by an image" +msgstr "" + +#: ../../recipes-ocr.rst:52 67a0e6d81030439db6adb2f9c61737d4 +msgid "no text exists on the page" +msgstr "" + +#: ../../recipes-ocr.rst:53 95a2141830a64bd6b31d96005eb2207b +msgid "thousands of small vector graphics (indicating *simulated* text)" +msgstr "" + +#: ../../recipes-ocr.rst:55 a56ae19e7c8a4d0bb37016395d9ab63c +msgid "" +"OCR the page and store result in a :ref:`TextPage` object using an " +"instruction like `tp = page.get_textpage_ocr(...)`." +msgstr "" + +#: ../../recipes-ocr.rst:57 4e0d85d010b04df58a9c1169c5d8b553 +msgid "" +"Refer to the produced :ref:`TextPage` in all subsequent text extractions " +"and searches via the `textpage=tp` parameter." +msgstr "" + +#: ../../footer.rst:46 1536d96897a04a48b4b90ead47380207 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-optional-content.mo b/docs/locales/ko/LC_MESSAGES/recipes-optional-content.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-optional-content.po b/docs/locales/ko/LC_MESSAGES/recipes-optional-content.po new file mode 100644 index 000000000..d69815752 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-optional-content.po @@ -0,0 +1,192 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f427b4b5c89c434aa431d0105a3b4ced +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 25ffbcd722b944a087a274a8e9d2f119 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 29a19d98cec64f3488930f81e11e93e7 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-optional-content.rst:7 700c319fd483491eb9c651ce164689cf +msgid "Optional Content Support" +msgstr "" + +#: ../../recipes-optional-content.rst:9 5ecf5ebcfe42415bb96d754f39769237 +msgid "" +"This document explains PyMuPDF's support of the PDF concept **\"Optional " +"Content\"**." +msgstr "" + +#: ../../recipes-optional-content.rst:12 2d6ce70234fa4a51b645e6eb697c23c1 +msgid "Introduction: The Optional Content Concept" +msgstr "" + +#: ../../recipes-optional-content.rst:13 a1bba7af8cee41cabc8aa14f83c25097 +msgid "" +"*Optional Content* in PDF is a way to show or hide parts of a document " +"based on certain conditions: Parameters that can be set to ON or to OFF " +"when using a supporting PDF consumer (viewer), or programmatically." +msgstr "" + +#: ../../recipes-optional-content.rst:15 cab765ef09a444c5baccc6ecba041e6e +msgid "" +"This capability is useful in items such as CAD drawings, layered artwork," +" maps, and multi-language documents. Typical uses include showing or " +"hiding details of complex vector graphics like geographical maps, " +"technical devices, architectural designs and similar, including " +"automatically switching between different zooming levels. Other use cases" +" may be to automatically show different detail levels when displaying a " +"document on screen as opposed to printing it." +msgstr "" + +#: ../../recipes-optional-content.rst:17 a3cf8bb5edc04658bcc5b018e1302847 +msgid "" +"Special PDF objects, so-called **Optional Content Groups** (OCGs) are " +"used to define these different *layers* of content." +msgstr "" + +#: ../../recipes-optional-content.rst:19 11067de9260f444189d97ae6ae624654 +msgid "" +"Assigning an OCG to a \"normal\" PDF object (like a text or an image) " +"causes that object to be visible or hidden, depending on the current " +"state of the assigned OCG." +msgstr "" + +#: ../../recipes-optional-content.rst:21 95e830e21e764c0a949cb7ed0a33fc95 +msgid "" +"To ease definition of the overall configuration of a PDF's Optional " +"Content, OCGs can be organized in higher level groupings, called **OC " +"Configurations**. Each configuration being a collection of OCGs, together" +" with each OCG's desired initial visibility state. Selecting one of these" +" configurations (via the PDF viewer or programmatically) causes a " +"corresponding visibility change of all affected PDF objects throughout " +"the document." +msgstr "" + +#: ../../recipes-optional-content.rst:23 b707fd22852842e89a0e8e78a296ef39 +msgid "Except for the default one, OC Configurations are optional." +msgstr "" + +#: ../../recipes-optional-content.rst:25 0844d7f44e964e409fefe8c054f52b6d +msgid "" +"For more explanations and additional background please refer to PDF " +"specification manuals." +msgstr "" + +#: ../../recipes-optional-content.rst:28 6133510bc73140a4b17bbf8cda929189 +msgid "PyMuPDF Support for PDF Optional Content" +msgstr "" + +#: ../../recipes-optional-content.rst:29 ee3f36d2819e41d2aeabc811bdfcddb2 +msgid "" +"PyMuPDF offers full support for viewing, defining, changing and deleting " +"Option Content Groups, Configurations, maintaining the assignment of OCGs" +" to PDF objects and programmatically switching between OC Configurations " +"and the visibility states of each single OCG." +msgstr "" + +#: ../../recipes-optional-content.rst:32 6c810e8459dd45b499132c9ef8a2ec30 +msgid "How to Add Optional Content" +msgstr "" + +#: ../../recipes-optional-content.rst:33 ddc6af20e120444c8d6bcbef96f4ab41 +msgid "" +"This is as simple as adding an Optional Content Group, OCG, to a PDF: " +":meth:`Document.add_ocg`." +msgstr "" + +#: ../../recipes-optional-content.rst:35 247da2498372479cbcf5c1e211c93b70 +msgid "" +"If previously the PDF had no OC support at all, the required setup (like " +"defining the default OC Configuration) will be done at this point " +"automatically." +msgstr "" + +#: ../../recipes-optional-content.rst:37 f3673e60584d40d08730a4d5183a4393 +msgid "" +"The method returns an :data:`xref` of the created OCG. Use this xref to " +"associate (mark) any PDF object with it, that you want to make dependent " +"on this OCG's state. For example, you can insert an image on a page and " +"refer to the xref like this::" +msgstr "" + +#: ../../recipes-optional-content.rst:41 f4a0a4f56cf343ce93de964daa847414 +msgid "" +"If you want to put an **existing** image under the control of an OCG, you" +" must first find out the image's xref number (called `img_xref` here) and" +" then do `doc.set_oc(img_xref, xref)`. After this, the image will be " +"(in-) visible everywhere throughout the document if the OCG's state is " +"\"ON\", respectively \"OFF\". You can also assign a different OCG with " +"this method." +msgstr "" + +#: ../../recipes-optional-content.rst:43 876cc7ea11954c498741a87e7e7f2e81 +msgid "To **remove** an OCG from an image, do `doc.set_oc(img_xref, 0)`." +msgstr "" + +#: ../../recipes-optional-content.rst:45 148754aebd804196a3832628dcd22df6 +msgid "" +"One single OCG can be assigned to multiple PDF objects to control their " +"visibility." +msgstr "" + +#: ../../recipes-optional-content.rst:48 654180253edf46a797c215677cb22eba +msgid "How to Define Complex Optional Content Conditions" +msgstr "" + +#: ../../recipes-optional-content.rst:50 be5af920b1f64a559cac7f324ea6f913 +msgid "" +"Sophisticated logical conditions can be established to address complex " +"visibility needs." +msgstr "" + +#: ../../recipes-optional-content.rst:52 78345b4a7695447a871af9b3d7dc1352 +msgid "" +"For example, you might want to create a multi-language document, so the " +"user may switch between languages as required." +msgstr "" + +#: ../../recipes-optional-content.rst:54 2975f48b256e4d7f954291ed0f71b2e4 +msgid "Please have a look at `this Jupyter Notebook`_ and execute it as desired." +msgstr "" + +#: ../../recipes-optional-content.rst:56 5a66d6db462b491488acb6e94488a590 +msgid "" +"Certainly, your requirements may even be more complex and involve " +"multiple OCGs with ON/OFF states that are connected by some kind of " +"logical relationship -- but it should give you an impression of what is " +"possible and how to plan your next steps." +msgstr "" + +#: ../../footer.rst:46 348e850342ec47b1a57c9045cb6713c3 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-stories.mo b/docs/locales/ko/LC_MESSAGES/recipes-stories.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-stories.po b/docs/locales/ko/LC_MESSAGES/recipes-stories.po new file mode 100644 index 000000000..74234a7ca --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-stories.po @@ -0,0 +1,665 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 b5d193bc1b274d55b812ca653ec68fad +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 2bc267634e2a46b2a13b54c6aadda8c0 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 1629ae10629c4c9fbbd1776a5b603010 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-stories.rst:18 8314345d0647437d82e4ab3dfd98d5d1 +msgid "Stories" +msgstr "" + +#: ../../recipes-stories.rst:20 595796cef87c4b7ab7031798c86047a5 +msgid "" +"This document showcases some typical use cases for " +":ref:`Stories`." +msgstr "" + +#: ../../recipes-stories.rst:22 995d0e959c2c43259e09def294ea1759 +msgid "" +"As mentioned in the :ref:`tutorial`, stories may be " +"created using up to three input sources: HTML, CSS and Archives -- all of" +" which are optional and which, respectively, can be provided " +"programmatically." +msgstr "" + +#: ../../recipes-stories.rst:24 f48c55a3c4bd4c2f81e39c6ed5117f22 +msgid "The following examples will showcase combinations for using these inputs." +msgstr "" + +#: ../../recipes-stories.rst:28 f931abd31c8f473b8a30402b72d2037a +msgid "" +"Many of these recipe's source code are included as examples in the `docs`" +" folder." +msgstr "" + +#: ../../recipes-stories.rst:34 052173f8f2be4dc9938bc267e8d774b8 +msgid "How to Add a Line of Text with Some Formatting" +msgstr "" + +#: ../../recipes-stories.rst:36 eeb1b6e720474b3ba8158d228da8e939 +msgid "Here is the inevitable \"Hello World\" example. We will show two variants:" +msgstr "" + +#: ../../recipes-stories.rst:38 c71486f3b5194a389a39bbe61b8a3dd8 +msgid "Create using existing HTML source [#f1]_, that may come from anywhere." +msgstr "" + +#: ../../recipes-stories.rst:39 3477752d744d4d17972620ffab3621ae +msgid "Create using the Python API." +msgstr "" + +#: ../../recipes-stories.rst:43 a4855e116ed84da28c0c7f0adb1ba452 +msgid "" +"Variant using an existing HTML source [#f1]_ -- which in this case is " +"defined as a constant in the script::" +msgstr "" + +#: ../../recipes-stories.rst:69 54989c4eb624422c9343633c849a172d +msgid "" +"The above effect (sans-serif and blue text) could have been achieved by " +"using a separate CSS source like so::" +msgstr "" + +#: ../../recipes-stories.rst:90 d640d05290e44092bef652b25473bfae +msgid "The Python API variant -- everything is created programmatically::" +msgstr "" + +#: ../../recipes-stories.rst:114 8e4d50be827247b7974656d7de688f75 +msgid "Both variants will produce the same output PDF." +msgstr "" + +#: ../../recipes-stories.rst:122 069e5a16feed4b3ba04b7f545ff25868 +msgid "How to use Images" +msgstr "" + +#: ../../recipes-stories.rst:124 d14be063cc6f47e89f14211f41113abb +msgid "" +"Images can be referenced in the provided HTML source, or the reference to" +" a desired image can also be stored via the Python API. In any case, this" +" requires using an :ref:`Archive`, which refers to the place where the " +"image can be found." +msgstr "" + +#: ../../recipes-stories.rst:126 097753bc282141dc9c12d4462a635a6a +msgid "" +"Images with the binary content embedded in the HTML source are **not " +"supported** by stories." +msgstr "" + +#: ../../recipes-stories.rst:128 5325dfa364c947ee83aa589fc95cff1e +msgid "" +"We extend our \"Hello World\" example from above and display an image of " +"our planet right after the text. Assuming the image has the name " +"\"world.jpg\" and is present in the script's folder, then this is the " +"modified version of the above Python API variant::" +msgstr "" + +#: ../../recipes-stories.rst:168 615eea37135744afb2f7306c69fcfa53 +msgid "How to Read External HTML and CSS for a Story" +msgstr "" + +#: ../../recipes-stories.rst:170 3e62969f6ef34607a59289d3c5a2b616 +msgid "These cases are fairly straightforward." +msgstr "" + +#: ../../recipes-stories.rst:172 9e79a62cf0f8448594719c149f421fe4 +msgid "" +"As a general recommendation, HTML and CSS sources should be **read as " +"binary files** and decoded before using them in a story. The Python " +"`pathlib.Path` provides convenient ways to do this::" +msgstr "" + +#: ../../recipes-stories.rst:193 424a5680167f4243bfdae2bc11a6a865 +msgid "How to Output Database Content with Story Templates" +msgstr "" + +#: ../../recipes-stories.rst:195 75230534b810462489a2c0543f108196 +msgid "" +"This script demonstrates how to report SQL database content using an " +"**HTML template**." +msgstr "" + +#: ../../recipes-stories.rst:199 573a4db0337c431ba12822e512233a72 +msgid "The example SQL database contains two tables:" +msgstr "" + +#: ../../recipes-stories.rst:201 d12453e5387d4c86aef125b1c917cdc5 +msgid "" +"Table \"films\" contains one row per film with the fields **\"title\"**, " +"**\"director\"** and (release) **\"year\"**." +msgstr "" + +#: ../../recipes-stories.rst:202 48c7c2781fa04d22ad47bdd68f0e7430 +msgid "" +"Table \"actors\" contains one row per actor and film title (fields " +"(actor) **\"name\"** and (film) **\"title\"**)." +msgstr "" + +#: ../../recipes-stories.rst:204 29aa52738ef94cbfb71a5e58eb4207f9 +msgid "" +"The story DOM consists of a template for one film, which reports film " +"data together with a list of casted actors." +msgstr "" + +#: ../../recipes-stories.rst:206 ../../recipes-stories.rst:231 +#: ../../recipes-stories.rst:257 ../../recipes-stories.rst:309 +#: ../../recipes-stories.rst:343 ../../recipes-stories.rst:377 +#: ../../recipes-stories.rst:398 ../../recipes-stories.rst:433 +#: ../../recipes-stories.rst:467 ../../recipes-stories.rst:497 +#: ../../recipes-stories.rst:531 08c1a4e126cb48978f4f6d8d01328a9d +#: 1f86ef58d3744dc6b95fcda088603493 252df0b354254037b866b630e74e2da8 +#: 4e6c2eefb4e04eb1af7f436651caf09b 703c6ee5dcb04da88e0551d3b09617ad +#: 7ab440172c9b492d83a77e8c6b3a5ce3 7e9d0135ecac455194beff5db8e97383 +#: c3d8138b12a64495b66fc448295bdf87 d783b1de9b01428d87a0f12d8bc86213 +#: e6786c9897324e95a0694f81946c35c6 f4a5a290b11645758f555fb83ad91ec4 +msgid "**Files:**" +msgstr "" + +#: ../../recipes-stories.rst:208 76f13a564fe44af38d30607e6903e0e8 +msgid "`docs/samples/filmfestival-sql.py`" +msgstr "" + +#: ../../recipes-stories.rst:209 0011f520db504866869f4fc79f37465a +msgid "`docs/samples/filmfestival-sql.db`" +msgstr "" + +#: ../../recipes-stories.rst:212 ../../recipes-stories.rst:235 +#: ../../recipes-stories.rst:263 ../../recipes-stories.rst:316 +#: ../../recipes-stories.rst:347 ../../recipes-stories.rst:360 +#: ../../recipes-stories.rst:381 ../../recipes-stories.rst:402 +#: ../../recipes-stories.rst:437 ../../recipes-stories.rst:471 +#: ../../recipes-stories.rst:501 ../../recipes-stories.rst:535 +#: 1d8920d6cfac4577be9b37a82329452a 278a24defbbf496193211fdfb1c2a54a +#: 40ab396528814a3fac246a5a00c34f65 5723b2a904ba47b9860b557379721ae1 +#: 9707ab332af04a1a9cb72a3ab89fffd3 9ea47fe98a8844ffaf1223a3e33e1bb8 +#: ae83566d84a2413980f2a252c0940048 be88afb45b4948b18b486920f53daf2e +#: c004e3f49ac3466c8c9ef9888157f02d c942e3a7452248f58a5bddc23570027c +#: f3dbc504b00e4947ac703f22b8109786 f8ece455a9d6481eae9b3f6faac7ac53 +msgid "|toggleStart|" +msgstr "" + +#: ../../recipes-stories.rst:216 ../../recipes-stories.rst:239 +#: ../../recipes-stories.rst:267 ../../recipes-stories.rst:320 +#: ../../recipes-stories.rst:351 ../../recipes-stories.rst:364 +#: ../../recipes-stories.rst:385 ../../recipes-stories.rst:406 +#: ../../recipes-stories.rst:441 ../../recipes-stories.rst:475 +#: ../../recipes-stories.rst:505 ../../recipes-stories.rst:539 +#: 092f94a8817948c8abafc3734fcf198b 4a98f729722249cd982f858648efc237 +#: 62d1782a6ea04c2db57ab1ee0ca4fe5f 8ba4cffc6b654792918dc7b1dd969a30 +#: 8c53e41912464fc1be6bbe4c83f4028f 9ddbc2dae3a649e1ba30b92fc174fbe4 +#: caf97ca2ef514514bc825397ac3bf0d9 e3ff13ae3b40495fabcf13c543af9d12 +#: eaf1260e02b949b79eed85f34153be91 ec1850ab1501425c8a0bd816f0817878 +#: ef3d65dc1872490f8de2efc2cc2a90b2 fef63adfa7c341ffbbf5c7407c27a06f +msgid "|toggleEnd|" +msgstr "" + +#: ../../recipes-stories.rst:225 18a13135616545bfad20fd11639e4c84 +msgid "How to Integrate with Existing PDFs" +msgstr "" + +#: ../../recipes-stories.rst:227 f03491738dc64176a90468adac627ab0 +msgid "" +"Because a :ref:`DocumentWriter` can only write to a new file, stories " +"cannot be placed on existing pages. This script demonstrates a " +"circumvention of this restriction." +msgstr "" + +#: ../../recipes-stories.rst:229 96c37297327d48c0bd3a2b2e00278cee +msgid "" +"The basic idea is letting :ref:`DocumentWriter` output to a PDF in " +"memory. Once the story has finished, we re-open this memory PDF and put " +"its pages to desired locations on **existing** pages via method " +":meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../recipes-stories.rst:233 4f5ee88727ea49c296c840ca51c75e45 +msgid "`docs/samples/showpdf-page.py`" +msgstr "" + +#: ../../recipes-stories.rst:248 563332f15b53462da0c68cde0c1beb09 +msgid "" +"How to Make Multi-Columned Layouts and Access Fonts from Package " +"`pymupdf-fonts`_" +msgstr "" + +#: ../../recipes-stories.rst:250 c67e2e9e13c4449cb12ec6a84c9d23ea +msgid "" +"This script outputs an article (taken from Wikipedia) that contains text " +"and multiple images and uses a 2-column page layout." +msgstr "" + +#: ../../recipes-stories.rst:252 e5c809facc4047608e51c439efe8f7a6 +msgid "" +"In addition, two \"Ubuntu\" font families from package `pymupdf-fonts`_ " +"are used instead of defaulting to Base-14 fonts." +msgstr "" + +#: ../../recipes-stories.rst:254 710ea657eaed417790c2b2e1408ff46a +msgid "" +"Yet another feature used here is that all data -- the images and the " +"article HTML -- are jointly stored in a ZIP file." +msgstr "" + +#: ../../recipes-stories.rst:259 baca45cc5cea40718096fd055c4c6f29 +msgid "`docs/samples/quickfox.py`" +msgstr "" + +#: ../../recipes-stories.rst:260 ../../recipes-stories.rst:313 +#: 279ba9d3da96462d9521b6401f261ffc 79489cda481541c5af08712bcd696dcf +msgid "`docs/samples/quickfox.zip`" +msgstr "" + +#: ../../recipes-stories.rst:276 0f2bd834af8f474bb16581d5edd338b8 +msgid "How to Make a Layout which Wraps Around a Predefined \"no go area\" Layout" +msgstr "" + +#: ../../recipes-stories.rst:279 dbd26e7d6a2f4abaa6462e796a1208bb +msgid "" +"This is a demo script using PyMuPDF's Story class to output text as a PDF" +" with a two-column page layout." +msgstr "" + +#: ../../recipes-stories.rst:282 2eb13f3738a8491b97fe654a99f8ce3a +msgid "The script demonstrates the following features:" +msgstr "" + +#: ../../recipes-stories.rst:284 25765b0dd11a43508066ab08e902d66f +msgid "Layout text around images of an existing (\"target\") PDF." +msgstr "" + +#: ../../recipes-stories.rst:285 e472244ac7ad455690ffc3c6049d7bc3 +msgid "" +"Based on a few global parameters, areas on each page are identified, that" +" can be used to receive text layouted by a Story." +msgstr "" + +#: ../../recipes-stories.rst:287 51459bb508b34fa1adb8a3b05cb25082 +msgid "" +"These global parameters are not stored anywhere in the target PDF and " +"must therefore be provided in some way:" +msgstr "" + +#: ../../recipes-stories.rst:290 9c4f7ed7210f4d129f08fc68b1449c1b +msgid "The width of the border(s) on each page." +msgstr "" + +#: ../../recipes-stories.rst:291 2adfda4cd7994235b17faaaa456c4645 +msgid "" +"The fontsize to use for text. This value determines whether the provided " +"text will fit in the empty spaces of the (fixed) pages of target PDF. It " +"cannot be predicted in any way. The script ends with an exception if " +"target PDF has not enough pages, and prints a warning message if not all " +"pages receive at least some text. In both cases, the FONTSIZE value can " +"be changed (a float value)." +msgstr "" + +#: ../../recipes-stories.rst:297 ef8d9dc888f04ea18e29d8deec8eebc7 +msgid "Use of a 2-column page layout for the text." +msgstr "" + +#: ../../recipes-stories.rst:298 0dc84c7986d740dea5c0d99ee3cd5965 +msgid "" +"The layout creates a temporary (memory) PDF. Its produced page content " +"(the text) is used to overlay the corresponding target page. If text " +"requires more pages than are available in target PDF, an exception is " +"raised. If not all target pages receive at least some text, a warning is " +"printed." +msgstr "" + +#: ../../recipes-stories.rst:302 76e3c6f16fca4501a3d6b09051f5c6fc +msgid "" +"The script reads \"image-no-go.pdf\" in its own folder. This is the " +"\"target\" PDF. It contains 2 pages with each 2 images (from the original" +" article), which are positioned at places that create a broad overall " +"test coverage. Otherwise the pages are empty." +msgstr "" + +#: ../../recipes-stories.rst:306 5feb7616d6454982b6c9c0803bed70ec +msgid "" +"The script produces \"quickfox-image-no-go.pdf\" which contains the " +"original pages and image positions, but with the original article text " +"laid out around them." +msgstr "" + +#: ../../recipes-stories.rst:311 2d87632d8f7d4b999f854a81b2e80541 +msgid "`docs/samples/quickfox-image-no-go.py`" +msgstr "" + +#: ../../recipes-stories.rst:312 cab8c8e6552e4a2f88203240822139a2 +msgid "`docs/samples/quickfox-image-no-go.pdf`" +msgstr "" + +#: ../../recipes-stories.rst:329 07ad707123e64f328f43969ff77a58f7 +msgid "How to Output an HTML Table" +msgstr "" + +#: ../../recipes-stories.rst:331 6cd7587dab1f4b6aa7013a9ab05d5131 +msgid "Outputting HTML tables is supported as follows:" +msgstr "" + +#: ../../recipes-stories.rst:333 a094cc112239433e8f1c4e235bd1c1d7 +msgid "" +"Flat table layouts are supported (\"rows x columns\"), no support of the " +"\"colspan\" / \"rowspan\" attributes." +msgstr "" + +#: ../../recipes-stories.rst:334 3e3366cef2bc44d29a1f557f36e98bd3 +msgid "" +"Table header tag :htmlTag:`th` supports attribute \"scope\" with values " +"\"row\" or \"col\". Applicable text will be bold by default." +msgstr "" + +#: ../../recipes-stories.rst:335 533fc1b4bbf248e2b203786ae6c443b7 +msgid "" +"Column widths are computed automatically based on column content. They " +"cannot be directly set." +msgstr "" + +#: ../../recipes-stories.rst:336 76c98b7342de4fd38e793274a40bfee5 +msgid "" +"Table **cells may contain images** which will be considered in the column" +" width calculation magic." +msgstr "" + +#: ../../recipes-stories.rst:337 2444753418ed48efbdaf659f55ebd3d9 +msgid "" +"Row heights are computed automatically based on row content - leading to " +"multi-line rows where needed." +msgstr "" + +#: ../../recipes-stories.rst:338 c66ef7c08bce47369611cd47d34761ad +msgid "" +"The potentially multiple lines of a table row will always be kept " +"together on one page (respectively \"where\" rectangle) and not be split." +msgstr "" + +#: ../../recipes-stories.rst:339 88f98486ab714f12834b175e3270a938 +msgid "" +"Table header rows are only **shown on the first page / \"where\" " +"rectangle.**" +msgstr "" + +#: ../../recipes-stories.rst:340 10bdfdc885fb4f9297afc239193cbda7 +msgid "" +"The \"style\" attribute is ignored when given directly in HTML table " +"elements. Styling for a table and its elements must happen separately, in" +" CSS source or within the :htmlTag:`style` tag." +msgstr "" + +#: ../../recipes-stories.rst:341 482d5b34b15a4a9c9f4b7ece5d79a9ce +msgid "" +"Styling for :htmlTag:`tr` elements is not supported and ignored. " +"Therefore, a table-wide grid or alternating row background colors are not" +" supported. One of the following example scripts however shows an easy " +"way to deal with this limitation." +msgstr "" + +#: ../../recipes-stories.rst:345 8345e9575f6844029b2999b8b6fed76f +msgid "`docs/samples/table01.py` This script reflects basic features." +msgstr "" + +#: ../../recipes-stories.rst:353 e5188ccc429743cab9f17635eaab8002 +msgid "" +"`docs/samples/national-capitals.py` Advanced script extending table " +"output options using simple additional code:" +msgstr "" + +#: ../../recipes-stories.rst:355 d786bb83c47a488a86e7603d731dac6b +msgid "Multi-page output simulating **repeating header rows**" +msgstr "" + +#: ../../recipes-stories.rst:356 64263c3cea7742dcafd285f9c1d9a690 +msgid "Alternating table row background colors" +msgstr "" + +#: ../../recipes-stories.rst:357 291f158657964fed93655aa568365aca +msgid "Table rows and columns delimited by gridlines" +msgstr "" + +#: ../../recipes-stories.rst:358 5f5af232f8f34e9f9f06b6bc48f9b935 +msgid "Table rows dynamically generated / filled with data from an SQL database" +msgstr "" + +#: ../../recipes-stories.rst:373 8de5b747eeee4c49a2ff9b5f6659192a +msgid "How to Create a Simple Grid Layout" +msgstr "" + +#: ../../recipes-stories.rst:375 2f9c6ef2b7224c718c51897ec71e2722 +msgid "" +"By creating a sequence of :ref:`Story` objects within a grid created via " +"the :ref:`make_table` function a developer can " +"create grid layouts as required." +msgstr "" + +#: ../../recipes-stories.rst:379 ef7f8c1036ed43a287e48b4719422ffd +msgid "`docs/samples/simple-grid.py`" +msgstr "" + +#: ../../recipes-stories.rst:394 d33c94d00852413d800e1a8cc6dce372 +msgid "How to Generate a Table of Contents" +msgstr "" + +#: ../../recipes-stories.rst:396 30c4a1111f18493d8276608dbce4e4cb +msgid "" +"This script lists the source code of all Python scripts that live in the " +"script's directory." +msgstr "" + +#: ../../recipes-stories.rst:400 2b3106d169114915b35cfabdb62e4820 +msgid "`docs/samples/code-printer.py`" +msgstr "" + +#: ../../recipes-stories.rst:409 b512515de19446c1b6c1d11c09f1d286 +msgid "It features the following capabilities:" +msgstr "" + +#: ../../recipes-stories.rst:411 d8bc94329c9d42799b70240e483a9535 +msgid "" +"Automatic generation of a Table of Contents (TOC) on separately numbered " +"pages at the start of the document - using a specialized :ref:`Story`." +msgstr "" + +#: ../../recipes-stories.rst:413 1b625819dde2421ca9d1f8556c5b03cd +msgid "" +"Use of 3 separate :ref:`Story` objects per page: header story, footer " +"story and the story for printing the Python sources." +msgstr "" + +#: ../../recipes-stories.rst:415 ba47006f7ad743bab33a577e74e7dac7 +msgid "" +"The page **footer is automatically changed** to show the name of the " +"current Python file." +msgstr "" + +#: ../../recipes-stories.rst:417 3723e3ea0ce3414c99483f90f6315678 +msgid "" +"Use of :meth:`Story.element_positions` to collect the data for the TOC " +"and for the dynamic adjustment of page footers. This is an example of a " +"**bidirectional communication** between the story output process and the " +"script." +msgstr "" + +#: ../../recipes-stories.rst:419 5d56f451e2e44b589a69c8d6faa0dc16 +msgid "" +"The main PDF with the Python sources is being written to memory by its " +":ref:`DocumentWriter`. Another :ref:`Story` / :ref:`DocumentWriter` pair " +"is then used to create a (memory) PDF for the TOC pages. Finally, both " +"these PDFs are joined and the result stored to disk." +msgstr "" + +#: ../../recipes-stories.rst:428 3e0fa770cc3b415fa27affd8b6659042 +msgid "How to Display a List from JSON Data" +msgstr "" + +#: ../../recipes-stories.rst:430 fc54ff1f63294ae3880c28ae96b73d3d +msgid "" +"This example takes some JSON data input which it uses to populate a " +":ref:`Story`. It also contains some visual text formatting and shows how " +"to add links." +msgstr "" + +#: ../../recipes-stories.rst:435 96d6b1d5632348d8a2d1a067ea7b5e30 +msgid "`docs/samples/json-example.py`" +msgstr "" + +#: ../../recipes-stories.rst:451 d389b54283c647c2aa18c6cac96e2679 +msgid "Using the Alternative :meth:`Story.write*()` functions" +msgstr "" + +#: ../../recipes-stories.rst:453 97c0d297b7de4f52be883dd1fe9ec6da +msgid "" +"The :meth:`Story.write*()` functions provide a different way to use the " +":ref:`Story` functionality, removing the need for calling code to " +"implement a loop that calls :meth:`Story.place()` and " +":meth:`Story.draw()` etc, at the expense of having to provide at least a " +"`rectfn()` callback." +msgstr "" + +#: ../../recipes-stories.rst:462 c5a3507786364d729ce97e31af0be224 +msgid "How to do Basic Layout with :meth:`Story.write()`" +msgstr "" + +#: ../../recipes-stories.rst:464 d1aac41eb76d486c8b6ef2a9bf8c1862 +msgid "" +"This script lays out multiple copies of its own source code, into four " +"rectangles per page." +msgstr "" + +#: ../../recipes-stories.rst:469 0af6a8efdd4b4f829b827d3fdfe7b1a0 +msgid "`docs/samples/story-write.py`" +msgstr "" + +#: ../../recipes-stories.rst:484 022633dfece24abd830b877bb6eb3083 +msgid "" +"How to do Iterative Layout for a Table of Contents with " +":meth:`Story.write_stabilized()`" +msgstr "" + +#: ../../recipes-stories.rst:486 cc0bf853cf404c9bbebe6a560eb9c1d7 +msgid "" +"This script creates html content dynamically, adding a contents section " +"based on :ref:`ElementPosition` items that have non-zero `.heading` " +"values." +msgstr "" + +#: ../../recipes-stories.rst:489 99707707c94744dda5a7c265feb53666 +msgid "" +"The contents section is at the start of the document, so modifications to" +" the contents can change page numbers in the rest of the document, which " +"in turn can cause page numbers in the contents section to be incorrect." +msgstr "" + +#: ../../recipes-stories.rst:493 641abbf30eac459daee550983498c0d2 +msgid "" +"So the script uses :meth:`Story.write_stabilized()` to repeatedly lay " +"things out until things are stable." +msgstr "" + +#: ../../recipes-stories.rst:499 3be99332904c4113a7541cd214abf180 +msgid "`docs/samples/story-write-stabilized.py`" +msgstr "" + +#: ../../recipes-stories.rst:514 524e644a3c994d5aa854cd8bddbe82d5 +msgid "" +"How to do Iterative Layout and Create PDF Links with " +":meth:`Story.write_stabilized_links()`" +msgstr "" + +#: ../../recipes-stories.rst:516 ddff6a045e8d43fca2d9144a4d8433a4 +msgid "" +"This script is similar to the one described in \"How to use " +":meth:`Story.write_stabilized()`\" above, except that the generated PDF " +"also contains links that correspond to the internal links in the original" +" html." +msgstr "" + +#: ../../recipes-stories.rst:520 b9678b083c9c4ba788c436e3d5e8c3fb +msgid "" +"This is done by using :meth:`Story.write_stabilized_links()`; this is " +"slightly different from :meth:`Story.write_stabilized()`:" +msgstr "" + +#: ../../recipes-stories.rst:523 31f9c57387284c839d1085d91cb625b2 +msgid "It does not take a :ref:`DocumentWriter` `writer` arg." +msgstr "" + +#: ../../recipes-stories.rst:524 9c7bd5e90df443cdbe61b132c03467b2 +msgid "It returns a PDF :ref:`Document` instance." +msgstr "" + +#: ../../recipes-stories.rst:526 d8ba37b0defe4b7eb40aa17b6e2d8356 +msgid "" +"[The reasons for this are a little involved; for example a " +":ref:`DocumentWriter` is not necessarily a PDF writer, so doesn't really " +"work in a PDF-specific API.]" +msgstr "" + +#: ../../recipes-stories.rst:533 bdb356f1c6e6499c9a9ed3fa8c0d6721 +msgid "`docs/samples/story-write-stabilized-links.py`" +msgstr "" + +#: ../../recipes-stories.rst:547 9b7cb4775a4e44f2881def8ce1ca8369 +msgid "Footnotes" +msgstr "" + +#: ../../recipes-stories.rst:548 9c133ed7af7a4415b60b9ed96ac04830 +msgid "HTML & CSS support" +msgstr "" + +#: ../../recipes-stories.rst:552 b1da3ee4c5a3436a8a6b46802918e564 +msgid "" +"At the time of writing the HTML engine for Stories is fairly basic and " +"supports a subset of CSS2 attributes." +msgstr "" + +#: ../../recipes-stories.rst:554 01ac3d98abae4349b9b5c28d6a74755e +msgid "Some important CSS support to consider:" +msgstr "" + +#: ../../recipes-stories.rst:556 b91cde3adf67437fb80037c56700f274 +msgid "The only available layout is relative layout." +msgstr "" + +#: ../../recipes-stories.rst:557 e4be54e31399436792c52c7fda0353d1 +msgid "`background` is unavailable, use `background-color` instead." +msgstr "" + +#: ../../recipes-stories.rst:558 2e7a1ffef1e64856a8bac73062d1051f +msgid "`float` is unavailable." +msgstr "" + +#: ../../footer.rst:46 e3f4dcf0211e47ab91f9299fb7f43fd1 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes-text.mo b/docs/locales/ko/LC_MESSAGES/recipes-text.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes-text.po b/docs/locales/ko/LC_MESSAGES/recipes-text.po new file mode 100644 index 000000000..fa323fdc3 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes-text.po @@ -0,0 +1,727 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 aacd92b247384bf48857a075d285a561 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 dbeb3e790165465a99d5c54f8c3d8ead +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c0909ea966bf494c8da17ef86ca44a3b +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../recipes-text.rst:7 05ae1dd8d9f44a9481a79f9e3b1d86d7 +msgid "Text" +msgstr "" + +#: ../../recipes-text.rst:13 7caab8ee2fd2466083df37b5e33d293a +msgid "How to Extract all Document Text" +msgstr "" + +#: ../../recipes-text.rst:15 8c1e407daf5546229fd685147c64ce69 +msgid "" +"This script will take a document filename and generate a text file from " +"all of its text." +msgstr "" + +#: ../../recipes-text.rst:17 32ad66847ecb4784aabbcd72e5132bcc +msgid "The document can be any :ref:`supported type`." +msgstr "" + +#: ../../recipes-text.rst:19 81db58eeb7da49e8ac352d7290a9895b +msgid "" +"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::" +msgstr "" + +#: ../../recipes-text.rst:28 34acce45dea14d438a205400310b647d +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:30 d85615155c024325ba277a5ca1e1ccc0 +msgid "" +"You have many options to rectify this -- see chapter :ref:`Appendix2`. " +"Among them are:" +msgstr "" + +#: ../../recipes-text.rst:32 9f7a0c712a724bcb8f46594a0696a485 +msgid "" +"Extract text in HTML format and store it as a HTML document, so it can be" +" viewed in any browser." +msgstr "" + +#: ../../recipes-text.rst:33 14d8db3ab4354b208d1b10a44164247a +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:34 a737dbb5f0df4394b85c682d11c5fbc7 +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:36 1eecb5d77eb545a89b29bbbe32c68b52 +msgid "See the following two sections for examples and further explanations." +msgstr "" + +#: ../../recipes-text.rst:44 5d550fa30f214c0ab6daaa5da9d1d56b +msgid "How to Extract Text as Markdown" +msgstr "" + +#: ../../recipes-text.rst:46 3a0e63deebbf4416a1fea6b96c24774a +msgid "" +"This is especially useful for :title:`RAG/LLM` environments - please see " +":ref:`Outputting as Markdown `." +msgstr "" + +#: ../../recipes-text.rst:52 76343110228443c691bf59b95ab056c9 +msgid "How to Extract Key-Value Pairs from a Page" +msgstr "" + +#: ../../recipes-text.rst:53 34f319f64a034da383333b8c516bb6fc +msgid "" +"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 example " +"script `_." +msgstr "" + +#: ../../recipes-text.rst:55 0b02d215083344e3bafc3ec057536e9f +msgid "\"Predictable\" in this context means:" +msgstr "" + +#: ../../recipes-text.rst:57 312afbe84baa4bdf84138e6f35377145 +msgid "" +"Every keyword is followed by its value -- no other text is present in " +"between them." +msgstr "" + +#: ../../recipes-text.rst:58 fd6c255cc6164834b85534e21a47f8c3 +msgid "" +"The bottom of the value's boundary box is **not above** the one of the " +"keyword." +msgstr "" + +#: ../../recipes-text.rst:59 3a28328449d0465298d40e600034845d +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:61 d4fc0262f0d74fcd8ab3810ea67fcabd +msgid "" +"For example, the following five key-value pairs will be correctly " +"identified::" +msgstr "" + +#: ../../recipes-text.rst:77 193e5336ec2f43b2a832b43d6a58d308 +msgid "How to Extract Text from within a Rectangle" +msgstr "" + +#: ../../recipes-text.rst:78 4c4438f1bc044009b24645d65ce8ab60 +msgid "" +"There is now (v1.18.0) more than one way to achieve this. We therefore " +"have created a `folder `_ in the PyMuPDF-Utilities " +"repository specifically dealing with this topic." +msgstr "" + +#: ../../recipes-text.rst:88 742b2388b2764f87a7e62ef6bfa73dd6 +msgid "How to Extract Text in Natural Reading Order" +msgstr "" + +#: ../../recipes-text.rst:90 0e8c0fee0d084b9883b573ad87009d6e +msgid "" +"One of the common issues with PDF text extraction is, that text may not " +"appear in any particular reading order." +msgstr "" + +#: ../../recipes-text.rst:92 371d80a5d01448afa0dd235c5b575b74 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-text.rst:104 4e580c24666243d38d3b31b8c81cd144 +msgid "" +"The text sequence extracted from a page modified in this way will look " +"like this:" +msgstr "" + +#: ../../recipes-text.rst:106 0dc07ee4abb14a8591e99d17d219a66e +msgid "original text" +msgstr "" + +#: ../../recipes-text.rst:107 a16785675c2e42889b217e4366030fc0 +msgid "header line" +msgstr "" + +#: ../../recipes-text.rst:108 799554ad7a954b8f9f8b0a65b45eb2ef +msgid "footer line" +msgstr "" + +#: ../../recipes-text.rst:110 6dfbb78929994320a0792e1e879361b4 +msgid "" +"PyMuPDF has several means to re-establish some reading sequence or even " +"to re-generate a layout close to the original:" +msgstr "" + +#: ../../recipes-text.rst:112 3c8a07a9513e4d6faa6519684db819d5 +msgid "" +"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)." +msgstr "" + +#: ../../recipes-text.rst:113 ec3f668329044785b2d980019e4279e2 +msgid "" +"Use the `pymupdf` module in CLI: `python -m pymupdf gettext ...`, which " +"produces a text file where text has been re-arranged in layout-preserving" +" mode. Many options are available to control the output." +msgstr "" + +#: ../../recipes-text.rst:115 e9acdb536bca4568ad8b4d1ec10d61ea +msgid "" +"You can also use the above mentioned `script " +"`_ with your modifications." +msgstr "" + +#: ../../recipes-text.rst:122 e855c66968e14c8292b797d093cd0b65 +msgid "" +"How to :index:`Extract Table Content ` from " +"Documents" +msgstr "" + +#: ../../recipes-text.rst:123 44f6d95fd2764808af666701bb7f19a0 +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:125 d16f360542d940e5a852c0aa8564e344 +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:127 a113658ef8c641279d0583854610b700 +msgid "" +"This can be a very complex task, depending on details like the presence " +"or absence of lines, rectangles or other supporting vector graphics." +msgstr "" + +#: ../../recipes-text.rst:129 591bba39c0464acda49f9fc542563e38 +msgid "" +"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 " +"`_." +msgstr "" + +#: ../../recipes-text.rst:131 0ec9741148044d23b6fe82ee829207a2 +msgid "" +"Please have a look at example `Jupyter notebooks " +"`_, which cover standard situations like multiple tables on one " +"page or joining table fragments across multiple pages." +msgstr "" + +#: ../../recipes-text.rst:138 b1f926e82a76494a9f56c7876863ca93 +msgid "How to Mark Extracted Text" +msgstr "" + +#: ../../recipes-text.rst:139 1e973eca86874445943029692b1f158c +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:141 dc031cd749464364bf765bac0417b4b0 +msgid "This method has advantages and drawbacks. Pros are:" +msgstr "" + +#: ../../recipes-text.rst:143 86833cccc89c42c3895307b65c1b8961 +msgid "The search string can contain blanks and wrap across lines" +msgstr "" + +#: ../../recipes-text.rst:144 fbcd0df95b764ad0a6fc7a6e5cf28042 +msgid "Upper or lower case characters are treated equal" +msgstr "" + +#: ../../recipes-text.rst:145 5c86c01b36574cb1ac96a3d8134e20f7 +msgid "Word hyphenation at line ends is detected and resolved" +msgstr "" + +#: ../../recipes-text.rst:146 3c530d96cd524a0f93975a14b9e1802b +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:148 d23bafdfe40a49d6bf4bb9a1b76b0938 +msgid "But you also have other options::" +msgstr "" + +#: ../../recipes-text.rst:182 80855b0c68a2478481c53a15e79cac96 +msgid "" +"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 white spaces as delimiters. Further remarks:" +msgstr "" + +#: ../../recipes-text.rst:184 1de65ffefd864dd3aba7fd7e18895779 +msgid "" +"If found, the **complete word containing the string** is marked " +"(underlined) -- not only the search string." +msgstr "" + +#: ../../recipes-text.rst:185 2b3e71fdbd4147a499e2a703e50786fd +msgid "" +"The search string may **not contain word delimiters**. By default, word " +"delimiters are white spaces and the non-breaking space `chr(0xA0)`. If " +"you use extra delimiting characters like `page.get_text(\"words\", " +"delimiters=\"./,\")` then none of these characters should be included in " +"your search string either." +msgstr "" + +#: ../../recipes-text.rst:186 adbf6633cd5e4ad488040e4cc264ca3c +msgid "" +"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*." +msgstr "" + +#: ../../recipes-text.rst:187 96993cd9b8a9474da6785f2edc5b39a5 +msgid "There is **no upper limit**: all occurrences will be detected." +msgstr "" + +#: ../../recipes-text.rst:188 0e9d7915b8cc4de6861f917e3f3412e6 +msgid "" +"You can use **anything** to mark the word: 'Underline', 'Highlight', " +"'StrikeThrough' or 'Square' annotations, etc." +msgstr "" + +#: ../../recipes-text.rst:189 d0f23f19d8d74f58b65405672d5ef654 +msgid "" +"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)." +msgstr "" + +#: ../../recipes-text.rst:200 e7ff4483e8b34bd3b6aa194e55963507 +msgid "How to Mark Searched Text" +msgstr "" + +#: ../../recipes-text.rst:204 7c7b2708f7d045ebb7a03223d6f8ea9d +msgid "This script searches for text and marks it::" +msgstr "" + +#: ../../recipes-text.rst:230 e211931535cf4266a427d5b731c8a73e +msgid "The result looks like this:" +msgstr "" + +#: ../../recipes-text.rst:241 9c36d575753f422cbdc4614a787057ab +msgid "How to Mark Non-horizontal Text" +msgstr "" + +#: ../../recipes-text.rst:242 1e52760d0e514e19ba6ab20d5f1fb0d7 +msgid "" +"The previous section already shows an example for marking non-horizontal " +"text, that was detected by text **searching**." +msgstr "" + +#: ../../recipes-text.rst:244 ded1ab547046433489a3f24860ad56dc +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:246 806b832583d84ccc93707076ad170901 +msgid "" +"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)::" +msgstr "" + +#: ../../recipes-text.rst:251 374483caf365491888ccd4a28c1034f8 +msgid "" +"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)::" +msgstr "" + +#: ../../recipes-text.rst:258 1257febf78464c89b484b1cf6071bec4 +msgid "" +"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." +msgstr "" + +#: ../../recipes-text.rst:265 73fd41c1a1a94a5db20497ae5b6e3c38 +msgid "How to Analyze Font Characteristics" +msgstr "" + +#: ../../recipes-text.rst:266 7643d48b4b834ad5a18337b0d8dda127 +msgid "" +"To analyze the characteristics of text in a PDF use this elementary " +"script as a starting point:" +msgstr "" + +#: ../../recipes-text.rst:271 be40eabfee1c41e68990b36a6e79a16f +msgid "Here is the PDF page and the script output:" +msgstr "" + +#: ../../recipes-text.rst:282 f7cca7fc650940c6b739a5e09938bbdd +msgid "How to Insert Text" +msgstr "" + +#: ../../recipes-text.rst:283 dacb14e969f44d09b2a5487775dd63ea +msgid "" +"PyMuPDF provides ways to insert text on new or existing PDF pages with " +"the following features:" +msgstr "" + +#: ../../recipes-text.rst:285 f1dd495e1caa4902a8e5c782e9c679b5 +msgid "" +"choose the font, including built-in fonts and fonts that are available as" +" files" +msgstr "" + +#: ../../recipes-text.rst:286 4b098043ef3245699c145e6b99254bfb +msgid "choose text characteristics like bold, italic, font size, font color, etc." +msgstr "" + +#: ../../recipes-text.rst:287 a7d20d40102b4dd987941eec0fe2059b +msgid "position the text in multiple ways:" +msgstr "" + +#: ../../recipes-text.rst:289 ebb1742c954f43b6b40e7dd5c8eefbc2 +msgid "either as simple line-oriented output starting at a certain point," +msgstr "" + +#: ../../recipes-text.rst:290 caf3e77d02db4d88ba4b4ce0df67f82b +msgid "" +"or fitting text in a box provided as a rectangle, in which case text " +"alignment choices are also available," +msgstr "" + +#: ../../recipes-text.rst:291 08f04e2e5fff428aad600459aeae779f +msgid "" +"choose whether text should be put in foreground (overlay existing " +"content)," +msgstr "" + +#: ../../recipes-text.rst:292 1899456d8c24474f8bcd5e172b2cde12 +msgid "" +"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," +msgstr "" + +#: ../../recipes-text.rst:293 86bfde1660ba41f499e89840e1564a90 +msgid "" +"independently from morphing and in addition to that, text can be rotated " +"by integer multiples of 90 degrees." +msgstr "" + +#: ../../recipes-text.rst:295 be111c03edb84cf2a94e8762714cc0eb +msgid "" +"All of the above is provided by three basic :ref:`Page`, resp. " +":ref:`Shape` methods:" +msgstr "" + +#: ../../recipes-text.rst:297 72cb967325024d41a8ffa1c2ab753fd4 +msgid "" +":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:" +msgstr "" + +#: ../../recipes-text.rst:299 b76fff0661ed480cb05480c7a9a31ddd +msgid "provided as a file," +msgstr "" + +#: ../../recipes-text.rst:300 7c635389b9dd4de28b6bfd73e66eb774 +msgid "via :ref:`Font` (then use :attr:`Font.buffer`)" +msgstr "" + +#: ../../recipes-text.rst:301 58c5c49b72314f1fbef5a7fdb829811d +msgid "already present somewhere in **this or another** PDF, or" +msgstr "" + +#: ../../recipes-text.rst:302 f6a2b00d975e4ffbb57171c37d4127bb +msgid "be a **built-in** font." +msgstr "" + +#: ../../recipes-text.rst:304 a44d01d2b9bb4d3686811c70f9b9271a +msgid "" +":meth:`Page.insert_text` -- write some lines of text. Internally, this " +"uses :meth:`Shape.insert_text`." +msgstr "" + +#: ../../recipes-text.rst:306 bfd1f9b3c2b741b29c87208a1a66d28e +msgid "" +":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`." +msgstr "" + +#: ../../recipes-text.rst:308 be171eb050b94f58b9cd1b5e0262f4c9 +msgid "Both text insertion methods automatically install the font as necessary." +msgstr "" + +#: ../../recipes-text.rst:314 b5fff0f0c7634c4b944d6adf15b57a63 +msgid "How to Write Text Lines" +msgstr "" + +#: ../../recipes-text.rst:315 cb73fdfc91be42e784e9bdd13d791bc0 +msgid "Output some text lines on a page::" +msgstr "" + +#: ../../recipes-text.rst:336 93ea55096a814bf78d67323eff265e39 +msgid "" +"With this method, only the **number of lines** will be controlled to not " +"go beyond page height. Surplus lines will not be written and the number " +"of actual lines will be returned. The calculation uses a line height " +"calculated from the :data:`fontsize` and 36 points (0.5 inches) as bottom" +" margin." +msgstr "" + +#: ../../recipes-text.rst:338 d32561da58f04605a11ea899f3142f80 +msgid "" +"Line **width is ignored**. The surplus part of a line will simply be " +"invisible." +msgstr "" + +#: ../../recipes-text.rst:340 be87d53797fa4459b5ccf3c4131594e4 +msgid "" +"However, for built-in fonts there are ways to calculate the line width " +"beforehand - see :meth:`get_text_length`." +msgstr "" + +#: ../../recipes-text.rst:342 f9e73fbbab774c2caa85bbed776cc956 +msgid "" +"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::" +msgstr "" + +#: ../../recipes-text.rst:378 0213c8bab6154d30805d62976edc9a19 +msgid "This is the result:" +msgstr "" + +#: ../../recipes-text.rst:390 f3944598e7174b5c84183c27d9976e7d +msgid "How to Fill a Text Box" +msgstr "" + +#: ../../recipes-text.rst:391 432bedd774af4765abc17063d64bbff5 +msgid "" +"This script fills 4 different rectangles with text, each time choosing a " +"different rotation value::" +msgstr "" + +#: ../../recipes-text.rst:428 b57fefc0582d49269895485a9f9f2d81 +msgid "" +"Some default values were used above: font size 11 and text alignment " +"\"left\". The result will look like this:" +msgstr "" + +#: ../../recipes-text.rst:438 1b2793a104ab4b5688254d0c742bdce1 +msgid "How to Fill a Box with HTML Text" +msgstr "" + +#: ../../recipes-text.rst:439 19e59b0993924e4c95225686d9cc0d88 +msgid "" +"Method :meth:`Page.insert_htmlbox` offers a **much more powerful** way to" +" insert text in a rectangle." +msgstr "" + +#: ../../recipes-text.rst:441 35f57808a8794c8e9e19787c2c32e112 +msgid "" +"Instead of simple, plain text, this method accepts HTML source, which may" +" not only contain HTML tags but also styling instructions to influence " +"things like font, font weight (bold) and style (italic), color and much " +"more." +msgstr "" + +#: ../../recipes-text.rst:443 71ac810a548442d29907981f132dccbf +msgid "" +"It is also possible to mix multiple fonts and languages, to output HTML " +"tables and to insert images and URI links." +msgstr "" + +#: ../../recipes-text.rst:445 0b4174d507754388b32a80b165012df6 +msgid "" +"For even more styling flexibility, an additional CSS source may also be " +"given." +msgstr "" + +#: ../../recipes-text.rst:447 ef0b305a96e04f7b82deb24dacac92d1 +msgid "" +"The method is based on the :ref:`Story` class. Therefore, complex script " +"systems like Devanagari, Nepali, Tamil and many are supported and written" +" correctly thanks to using the HarfBuzz library - which provides this so-" +"called **\"text shaping\"** feature." +msgstr "" + +#: ../../recipes-text.rst:449 1260a458a7e544b1aa67b8755b17c8ec +msgid "" +"Any required fonts to output characters are automatically pulled in from " +"the Google NOTO font library - as a fallback (when the -- optionally " +"supplied -- user font(s) do not contain some glyphs)." +msgstr "" + +#: ../../recipes-text.rst:451 fcaf38aee6714a809439a7e41809456a +msgid "" +"As a small glimpse into the features offered here, we will output the " +"following HTML-enriched text::" +msgstr "" + +#: ../../recipes-text.rst:476 9c59a952ce374072a5f1980b9e94e9e5 +msgid "" +"Please note how the \"css\" parameter is used to globally select the " +"default \"sans-serif\" font and a font size of 14." +msgstr "" + +#: ../../recipes-text.rst:478 ../../recipes-text.rst:546 +#: 7e28c391edc0498e9f137492e4579c8b d1d571d5e2a543f1960a767a55013650 +msgid "The result will look like this:" +msgstr "" + +#: ../../recipes-text.rst:483 ed1313ec473f4a6abdbea7c7fdbc2bc3 +msgid "How to output HTML tables and images" +msgstr "" + +#: ../../recipes-text.rst:485 d915167d0a8a487ca0714949823727f9 +msgid "" +"Here is another example that outputs a table with this method. This time," +" we are including all the styling in the HTML source itself. Please also " +"note, how it works to include an image - even within a table cell::" +msgstr "" + +#: ../../recipes-text.rst:552 8a1001c5f5074d4ba6c32b464a047fe3 +msgid "How to Output Languages of the World" +msgstr "" + +#: ../../recipes-text.rst:554 694851da42974f849ae4f15fb8583d84 +msgid "" +"Our third example will demonstrate the automatic multi-language support. " +"It includes automatic **text shaping** for complex scripting systems like" +" Devanagari and right-to-left languages::" +msgstr "" + +#: ../../recipes-text.rst:584 11883d2c3225403c9efe9db6404e0614 +msgid "And this is the output:" +msgstr "" + +#: ../../recipes-text.rst:589 1694d9848471473387efc178c64d1ac3 +msgid "How to Specify your Own Fonts" +msgstr "" + +#: ../../recipes-text.rst:591 e24039a16e614bad9521e9f98300ca0a +msgid "" +"Define your font files in CSS syntax using the `@font-face` statement. " +"You need a separate `@font-face` for every combination of font weight and" +" font style (e.g. bold or italic) you want to be supported. The following" +" example uses the famous MS Comic Sans font in its four variants regular," +" bold, italic and bold-italic." +msgstr "" + +#: ../../recipes-text.rst:593 b2b6a21607d34d64a2c7e188ebc89771 +msgid "" +"As these four font files are located in the system's folder " +"`C:/Windows/Fonts` the method needs an :ref:`Archive` definition that " +"points to that folder::" +msgstr "" + +#: ../../recipes-text.rst:642 e0f58841406a42738934f9d5496b3b1a +msgid "How to Request Text Alignment" +msgstr "" + +#: ../../recipes-text.rst:644 fe05e68776a74af9bbef92af559109dd +msgid "This example combines multiple requirements:" +msgstr "" + +#: ../../recipes-text.rst:646 e70a8667e3944fd9b0816777acb87234 +msgid "Rotate the text by 90 degrees anti-clockwise." +msgstr "" + +#: ../../recipes-text.rst:647 d9cf7d46a2d346b2a4f74a171faa1447 +msgid "" +"Use a font from package `pymupdf-fonts `_. You will see that the respective CSS definitions are a lot " +"easier in this case." +msgstr "" + +#: ../../recipes-text.rst:648 bd33916fceb54e72962046e30a682445 +msgid "Align the text with the \"justify\" option." +msgstr "" + +#: ../../recipes-text.rst:698 77fa2772ac8f4569be51c8e5f85dfc85 +msgid "How to Extract Text with Color" +msgstr "" + +#: ../../recipes-text.rst:700 9b6a414568c14a82b047478e4a84f66a +msgid "" +"Iterate through your text blocks and find the spans of text you need for " +"this information." +msgstr "" + +#: ../../footer.rst:46 bdb1928a7ce24b5a9d8c30e00a139e48 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/recipes.mo b/docs/locales/ko/LC_MESSAGES/recipes.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/recipes.po b/docs/locales/ko/LC_MESSAGES/recipes.po new file mode 100644 index 000000000..e8ee94754 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/recipes.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 5df69fce57964130a8f7ba6f591f56a4 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 948de28e8d244748b064cfd92a1bbcfd +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 11790f3e587e4e6bb551d9ae399cc35e +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../footer.rst:46 3bdca21fa122440dad23d3c3a493ace9 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/rect.mo b/docs/locales/ko/LC_MESSAGES/rect.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/rect.po b/docs/locales/ko/LC_MESSAGES/rect.po new file mode 100644 index 000000000..66b469860 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/rect.po @@ -0,0 +1,786 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 3c227dada5ad4b709a49770ee170baa6 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 8f56716e037546c8b467b98c68c725a0 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 dfa0342751984e2f98c9f67f7362520d +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../rect.rst:7 ad45c59577c04e0d97cd0d7904581921 +msgid "Rect" +msgstr "" + +#: ../../rect.rst:9 7f5d586f3c114edaa7ba458bfd6acb19 +msgid "" +"*Rect* represents a rectangle defined by four floating point numbers x0, " +"y0, x1, y1. They are treated as being coordinates of two diagonally " +"opposite points. The first two numbers are regarded as the \"top left\" " +"corner P\\ :sub:`(x0,y0)` and P\\ :sub:`(x1,y1)` as the \"bottom right\" " +"one. However, these two properties need not coincide with their intuitive" +" meanings -- read on." +msgstr "" + +#: ../../rect.rst:11 dafcd3bc742b4bf98df8a2d355642314 +msgid "The following remarks are also valid for :ref:`IRect` objects:" +msgstr "" + +#: ../../rect.rst:13 be324158236b4de8923841e0b42e8290 +msgid "" +"A rectangle in the sense of (Py-) MuPDF **(and PDF)** always has " +"**borders parallel to the x- resp. y-axis**. A general orthogonal " +"tetragon **is not a rectangle** -- in contrast to the mathematical " +"definition." +msgstr "" + +#: ../../rect.rst:14 03d260254e054fa0874151431af0b147 +msgid "" +"The constructing points can be (almost! -- see below) anywhere in the " +"plane -- they need not even be different, and e.g. \"top left\" need not " +"be the geometrical \"north-western\" point." +msgstr "" + +#: ../../rect.rst:15 fe6fa15cf8b7439aa597e5fcf5b13134 +msgid "Units are in points, where 72 points is 1 inch." +msgstr "" + +#: ../../rect.rst:20 130a99f1057240a98f97beb4238fadbc +msgid "" +"For any given quadruple of numbers, the geometrically \"same\" rectangle " +"can be defined in four different ways:" +msgstr "" + +#: ../../rect.rst:17 03ee461b9fd7463e92b92b0999c2952b +msgid "Rect(P\\ :sub:`(x0,y0)`, P\\ :sub:`(x1,y1)`\\ )" +msgstr "" + +#: ../../rect.rst:18 4e4f6956c7774df98b15fe8f1f149cef +msgid "Rect(P\\ :sub:`(x1,y1)`, P\\ :sub:`(x0,y0)`\\ )" +msgstr "" + +#: ../../rect.rst:19 7b63166e1f914252a70101cc5e25c590 +msgid "Rect(P\\ :sub:`(x0,y1)`, P\\ :sub:`(x1,y0)`\\ )" +msgstr "" + +#: ../../rect.rst:20 baae5ac330ae44adb90f80708b977873 +msgid "Rect(P\\ :sub:`(x1,y0)`, P\\ :sub:`(x0,y1)`\\ )" +msgstr "" + +#: ../../rect.rst:22 3775def55ff3492ea62cba278b2ff00e +msgid "**(Changed in v1.19.0)** Hence some classification:" +msgstr "" + +#: ../../rect.rst:24 005b82343a4c4d4282a0fc3d8a056830 +msgid "" +"A rectangle is called **valid** if `x0 <= x1` and `y0 <= y1` (i.e. the " +"bottom right point is \"south-eastern\" to the top left one), otherwise " +"**invalid**. Of the four alternatives above, **only the first** is valid." +" Please take into account, that in MuPDF's coordinate system, the y-axis " +"is oriented from **top to bottom**. Invalid rectangles have been called " +"infinite in earlier versions." +msgstr "" + +#: ../../rect.rst:26 50cc1e1a23b7410e9b40d9e4a22e2552 +msgid "" +"A rectangle is called **empty** if `x0 >= x1` or `y0 >= y1`. This " +"implies, that **invalid rectangles are also always empty.** And `width` " +"(resp. `height`) is **set to zero** if `x0 > x1` (resp. `y0 > y1`). In " +"previous versions, a rectangle was empty only if one of width or height " +"was zero." +msgstr "" + +#: ../../rect.rst:28 6b8c92c5c94146e38742390553f50ad5 +msgid "" +"Rectangle coordinates **cannot be outside** the number range from " +"`FZ_MIN_INF_RECT = -2147483648` to `FZ_MAX_INF_RECT = 2147483520`. Both " +"values have been chosen, because they are the smallest / largest 32bit " +"integers that survive C float conversion roundtrips. In previous versions" +" there was no limit for coordinate values." +msgstr "" + +#: ../../rect.rst:30 f7c36d56736842c7b5057e7ce77215f1 +msgid "" +"There is **exactly one \"infinite\" rectangle**, defined by `x0 = y0 = " +"FZ_MIN_INF_RECT` and `x1 = y1 = FZ_MAX_INF_RECT`. It contains every other" +" rectangle. It is mainly used for technical purposes -- e.g. when a " +"function call should ignore a formally required rectangle argument. This " +"rectangle is not empty." +msgstr "" + +#: ../../rect.rst:32 3fd9c878f8a345649eececf661fa6d0d +msgid "" +"**Rectangles are (semi-) open:** The right and the bottom edges " +"(including the resp. corners) are not considered part of the rectangle. " +"This implies, that only the top-left corner `(x0, y0)` can ever belong to" +" the rectangle - the other three corners never do. An empty rectangle " +"contains no corners at all." +msgstr "" + +#: ../../rect.rst:38 e57daedf444e46e1b812656ca7832537 +msgid "Here is an overview of the changes." +msgstr "" + +#: ../../rect.rst:41 d393f3a6d9de4c8fa2e06182c5f78760 +msgid "Notion" +msgstr "" + +#: ../../rect.rst:41 d97438c124b14f35aa198e1ddfb8cfd0 +msgid "Versions < 1.19.0" +msgstr "" + +#: ../../rect.rst:41 7af7abdfb7bc4aa4b28ed21073d90bea +msgid "Versions 1.19.*" +msgstr "" + +#: ../../rect.rst:43 e4224c064e3f4f68bbb16f57e9a1c844 +msgid "empty" +msgstr "" + +#: ../../rect.rst:43 48dde36927434fceacc3a177956672c7 +msgid "x0 = x1 or y0 = y1" +msgstr "" + +#: ../../rect.rst:43 3835fcc0738d40929f1271a1c05290b9 +msgid "x0 >= x1 or y0 >= y1 -- includes invalid rects" +msgstr "" + +#: ../../rect.rst:44 f6c28fec698849cf9309e6c849791287 +msgid "valid" +msgstr "" + +#: ../../rect.rst:44 754108a5de3646168f6a70e07a111bd9 +msgid "n/a" +msgstr "" + +#: ../../rect.rst:44 e09f640fd0134a039d61766e33a9c329 +msgid "x0 <= x1 and y0 <= y1" +msgstr "" + +#: ../../rect.rst:45 17a59c383cd546c8adfe6a7d8ef48da9 +msgid "infinite" +msgstr "" + +#: ../../rect.rst:45 65113a7b423f4f98b9ce9fcada710d50 +msgid "all rects where x0 > x1 or y1 > y0" +msgstr "" + +#: ../../rect.rst:45 41c40bda2ada47e085b2f7f2004a8b76 +msgid "**exactly one infinite rect / irect!**" +msgstr "" + +#: ../../rect.rst:46 4f4ac3d83ad64ebba6176c33b68c4cb3 +msgid "coordinate values" +msgstr "" + +#: ../../rect.rst:46 453a3c51c1434dc5b1579f747187deb0 +msgid "all numbers" +msgstr "" + +#: ../../rect.rst:46 4ca5d71efdb04d8693a83e57697d9d37 +msgid "`FZ_MIN_INF_RECT <= number <= FZ_MAX_INF_RECT`" +msgstr "" + +#: ../../rect.rst:47 2209987532a249858e55c63d07e52b9c +msgid "borders, corners" +msgstr "" + +#: ../../rect.rst:47 b6ae01c480064de9b11987d6892db4ca +msgid "are parts of the rectangle" +msgstr "" + +#: ../../rect.rst:47 8ef673ab0bbc4257baaeffbe19220f28 +msgid "right and bottom corners and edges **are outside**" +msgstr "" + +#: ../../rect.rst:50 e3e932700fd949daa0353b543c8a1a4c +msgid "" +"There are new top level functions defining infinite and standard empty " +"rectangles and quads, see :meth:`INFINITE_RECT` and friends." +msgstr "" + +#: ../../rect.rst:54 81a610b0aa1f472b8ae9fea35a2a2c01 +msgid "**Methods / Attributes**" +msgstr "" + +#: ../../rect.rst:54 4ed08c7116224212b88dc25acd42d0b0 +msgid "**Short Description**" +msgstr "" + +#: ../../rect.rst:56 5981a119a05e4daa876289ac03fc5a13 +msgid ":meth:`Rect.contains`" +msgstr "" + +#: ../../rect.rst:56 3b511deb4033483dbea1c5c304c2ec6f +msgid "checks containment of point_likes and rect_likes" +msgstr "" + +#: ../../rect.rst:57 9f5f335e79444316a8a3c6dea665cf95 +msgid ":meth:`Rect.get_area`" +msgstr "" + +#: ../../rect.rst:57 1de8d41280804dcf9822b29195cfe5fe +msgid "calculate rectangle area" +msgstr "" + +#: ../../rect.rst:58 7a22090e4a0d467a8ad2400c55ed9f2f +msgid ":meth:`Rect.include_point`" +msgstr "" + +#: ../../rect.rst:58 0526b2070f7e45feab7a311c9ee31128 +msgid "enlarge rectangle to also contain a point" +msgstr "" + +#: ../../rect.rst:59 5d2792546865489e8ac28d97886676fb +msgid ":meth:`Rect.include_rect`" +msgstr "" + +#: ../../rect.rst:59 d9b74ad40df64c1da33f10578102b172 +msgid "enlarge rectangle to also contain another one" +msgstr "" + +#: ../../rect.rst:60 a084869227454408971a27d515578280 +msgid ":meth:`Rect.intersect`" +msgstr "" + +#: ../../rect.rst:60 fc0d24eaf262443a9767ab3a639a91cf +msgid "common part with another rectangle" +msgstr "" + +#: ../../rect.rst:61 783c6bb9f98a4c9a9173a33426e15261 +msgid ":meth:`Rect.intersects`" +msgstr "" + +#: ../../rect.rst:61 48c32f08f9bd4fcaba35388fa46ffb7d +msgid "checks for non-empty intersections" +msgstr "" + +#: ../../rect.rst:62 54b41e15307745659f567a94fe69654b +msgid ":meth:`Rect.morph`" +msgstr "" + +#: ../../rect.rst:62 2724138758314afea0cd2a6f82c22cdd +msgid "transform with a point and a matrix" +msgstr "" + +#: ../../rect.rst:63 fa29117650a04cf992bfbf167039b34d +msgid ":meth:`Rect.torect`" +msgstr "" + +#: ../../rect.rst:63 a1b856036d3a4a869c4bfef61e84bc7d +msgid "the matrix that transforms to another rectangle" +msgstr "" + +#: ../../rect.rst:64 eb541dbc3c38455b94ddf221f6366d80 +msgid ":meth:`Rect.norm`" +msgstr "" + +#: ../../rect.rst:64 61a0e738f2784973be15065b6e9b3bf2 +msgid "the Euclidean norm" +msgstr "" + +#: ../../rect.rst:65 e9cec2f1207b4e358bcb22df6331bb76 +msgid ":meth:`Rect.normalize`" +msgstr "" + +#: ../../rect.rst:65 8ba545c6dd824fd08fd072a2c568c6db +msgid "makes a rectangle valid" +msgstr "" + +#: ../../rect.rst:66 ebfc99cce7a74afabc7adf051e9804cc +msgid ":meth:`Rect.round`" +msgstr "" + +#: ../../rect.rst:66 a5ff1b1dfaf54324b20c6908d06f2c7e +msgid "create smallest :ref:`Irect` containing rectangle" +msgstr "" + +#: ../../rect.rst:67 9c630cfbce96430dbd549ce3edbf5de2 +msgid ":meth:`Rect.transform`" +msgstr "" + +#: ../../rect.rst:67 3294ada857004ea2801a93dcdcae9cbb +msgid "transform rectangle with a matrix" +msgstr "" + +#: ../../rect.rst:68 00f6aca11ba74d9290a39ae6e4d9abdb +msgid ":attr:`Rect.bottom_left`" +msgstr "" + +#: ../../rect.rst:68 d8d4c9d808554a389d40caa0c16d5a69 +msgid "bottom left point, synonym *bl*" +msgstr "" + +#: ../../rect.rst:69 82732f58f72f413b869e3dbe3fc017dd +msgid ":attr:`Rect.bottom_right`" +msgstr "" + +#: ../../rect.rst:69 25213177c72349529fffc2b8650278c6 +msgid "bottom right point, synonym *br*" +msgstr "" + +#: ../../rect.rst:70 dee76b0bf2084300ae141c9fc27008bb +msgid ":attr:`Rect.height`" +msgstr "" + +#: ../../rect.rst:70 7fec492b654e4a6c8f203435ebdcb0e3 +msgid "rectangle height" +msgstr "" + +#: ../../rect.rst:71 948cec288c54453aa28f00e584acce0b +msgid ":attr:`Rect.irect`" +msgstr "" + +#: ../../rect.rst:71 a1899a79673d49c5a4273f091b474322 +msgid "equals result of method *round()*" +msgstr "" + +#: ../../rect.rst:72 d60c028c8e234efe9a338e184bb6bc55 +msgid ":attr:`Rect.is_empty`" +msgstr "" + +#: ../../rect.rst:72 95f758bc9cc644d6a61e703bee39b954 +msgid "whether rectangle is empty" +msgstr "" + +#: ../../rect.rst:73 3d96f5aae5a54e4eac8a41dc8027ebe2 +msgid ":attr:`Rect.is_valid`" +msgstr "" + +#: ../../rect.rst:73 0d07626ab6d5457c93ed36d852fe9dc5 +msgid "whether rectangle is valid" +msgstr "" + +#: ../../rect.rst:74 ec6784767db149e1af2d3bed517a3154 +msgid ":attr:`Rect.is_infinite`" +msgstr "" + +#: ../../rect.rst:74 e2775e5155c94511a9a0b4351aa5aeed +msgid "whether rectangle is infinite" +msgstr "" + +#: ../../rect.rst:75 27198e6de32c47129ff1d90e9bcd052b +msgid ":attr:`Rect.top_left`" +msgstr "" + +#: ../../rect.rst:75 991fbeb519074c779da08190535db4a5 +msgid "top left point, synonym *tl*" +msgstr "" + +#: ../../rect.rst:76 ee1026c3112e4ce5ace785e6dbd51983 +msgid ":attr:`Rect.top_right`" +msgstr "" + +#: ../../rect.rst:76 a429e926fb354c3eacca067673ad17f3 +msgid "top_right point, synonym *tr*" +msgstr "" + +#: ../../rect.rst:77 5a5eef69cfdd4fc1b267e64d1899c83d +msgid ":attr:`Rect.quad`" +msgstr "" + +#: ../../rect.rst:77 39bf27b7ec18496996041d704db52fa2 +msgid ":ref:`Quad` made from rectangle corners" +msgstr "" + +#: ../../rect.rst:78 b77feb74e6d84afe86da1aa9ffd1d688 +msgid ":attr:`Rect.width`" +msgstr "" + +#: ../../rect.rst:78 ba35625a52bb44278539861d0133f079 +msgid "rectangle width" +msgstr "" + +#: ../../rect.rst:79 38859d042e6f49b88c35544ec6e4ed3c +msgid ":attr:`Rect.x0`" +msgstr "" + +#: ../../rect.rst:79 7e53ad8c6a824feca26905c64f3e0ea3 +msgid "left corners' x coordinate" +msgstr "" + +#: ../../rect.rst:80 f4f68e6053a840c2a566cf242d7f05b1 +msgid ":attr:`Rect.x1`" +msgstr "" + +#: ../../rect.rst:80 b53b5091498c454d88765a544d585de5 +msgid "right corners' x -coordinate" +msgstr "" + +#: ../../rect.rst:81 91c7514c010f464098de9b6e9007f4a8 +msgid ":attr:`Rect.y0`" +msgstr "" + +#: ../../rect.rst:81 119b6bb77d59497fa78ea76552d86acd +msgid "top corners' y coordinate" +msgstr "" + +#: ../../rect.rst:82 45436c8c00564776b422a0208c48ae3d +msgid ":attr:`Rect.y1`" +msgstr "" + +#: ../../rect.rst:82 251741ae294247ddadf61d053276d89f +msgid "bottom corners' y coordinate" +msgstr "" + +#: ../../rect.rst:85 d211a7b97cc54d93b48553a9425130b9 +msgid "**Class API**" +msgstr "" + +#: ../../rect.rst:103 01827e33142142419f360c9f35834288 +msgid "" +"Overloaded constructors: *top_left*, *bottom_right* stand for " +":data:`point_like` objects, \"sequence\" is a Python sequence type of 4 " +"numbers (see :ref:`SequenceTypes`), \"rect\" means another " +":data:`rect_like`, while the other parameters mean coordinates." +msgstr "" + +#: ../../rect.rst:105 e075a06a3e264a5fbf6aea37d81f20d9 +msgid "If \"rect\" is specified, the constructor creates a **new copy** of it." +msgstr "" + +#: ../../rect.rst:107 1f9d77ad703345a2a3964ae75caea048 +msgid "" +"Without parameters, the empty rectangle ``Rect(0.0, 0.0, 0.0, 0.0)`` is " +"created." +msgstr "" + +#: ../../rect.rst:111 f10e380576a7412d80886a3b8a51700e +msgid "" +"Creates the smallest containing :ref:`IRect`. This is **not the same** as" +" simply rounding the rectangle's edges: The top left corner is rounded " +"upwards and to the left while the bottom right corner is rounded " +"downwards and to the right." +msgstr "" + +#: ../../rect.rst:116 552d25bc341a48aba138b957a55b9e83 +msgid "If the rectangle is **empty**, the result is also empty." +msgstr "" + +#: ../../rect.rst:117 df26f93d58284c6a970ae3863ef681bb +msgid "" +"**Possible paradox:** The result may be empty, **even if** the rectangle " +"is **not** empty! In such cases, the result obviously does **not** " +"contain the rectangle. This is because MuPDF's algorithm allows for a " +"small tolerance (1e-3). Example:" +msgstr "" + +#: ../../rect.rst 223b51190466453684b2185f3dfc69c0 +#: 297e474bcf4f49858a23f80dd7128c65 388342f8d94e4d26b238b48872bd5511 +#: 4f188f0a74b347a8ba82283a386abbde 6c7f84d51c1c4b3b9dcf69c73a6d6715 +#: 6f729bc4a8b948998da46a928feb54e6 96b897da73d141458d7b0fa47bb6846a +#: f8ae67a6da5847d7838f6d57ffbba97e +msgid "Return type" +msgstr "" + +#: ../../rect.rst:127 31c287fef6e3445cafe94d866b5e73bf +msgid ":ref:`IRect`" +msgstr "" + +#: ../../rect.rst:131 c8c2cfc194a8468fa9550492f440f872 +msgid "" +"Transforms the rectangle with a matrix and **replaces the original**. If " +"the rectangle is empty or infinite, this is a no-operation." +msgstr "" + +#: ../../rect.rst 1769e651f3b64df78e388f49683edfc2 +#: 312414a60f5241d7abaee3b012e0c7f4 54d06860552f4fa4bf1e92782d2b517a +#: aecbea35a63240b7bb02c03f083daacf d9b739a44f4b427b9772f8da4198b7b3 +#: dca5e2461b874ed6ac599ed5bf67591e dd42b3800611490e9091e6942a813e85 +#: e64ab107750d4908974794940a14b516 f9eb8fc37f314b86bb12b6037ad64aca +msgid "Parameters" +msgstr "" + +#: ../../rect.rst:133 17bbbee58ca246578928bb7c3f404ef5 +msgid "The matrix for the transformation." +msgstr "" + +#: ../../rect.rst:136 5b54b6fd35e047b9b19b8e92d649c886 +msgid "``Rect``" +msgstr "" + +#: ../../rect.rst ad2d6666f58d4edab133c0b63812dad1 +#: ee287750d1ff4757a1f4aab28350cc3f f617b587a6e84a1d879ad6eb2a4b8163 +msgid "Returns" +msgstr "" + +#: ../../rect.rst:137 9310c42c457243d2adf6a8ef7e65abb4 +msgid "the smallest rectangle that contains the transformed original." +msgstr "" + +#: ../../rect.rst:141 515fef48ca8a47adbebb14b402eb85f4 +msgid "" +"The intersection (common rectangular area, largest rectangle contained in" +" both) of the current rectangle and *r* is calculated and **replaces the " +"current** rectangle. If either rectangle is empty, the result is also " +"empty. If *r* is infinite, this is a no-operation. If the rectangles are " +"(mathematically) disjoint sets, then the result is invalid. If the result" +" is valid but empty, then the rectangles touch each other in a corner or " +"(part of) a side." +msgstr "" + +#: ../../rect.rst:143 ../../rect.rst:150 5ae4d4eaacb44add974c0aa6cf33f6f8 +#: cb94768c038d40d6be30db81f8988f9e +msgid "Second rectangle" +msgstr "" + +#: ../../rect.rst:148 db7d498e829c4302919da10e026d8ac5 +msgid "" +"The smallest rectangle containing the current one and ``r`` is calculated" +" and **replaces the current** one. If either rectangle is infinite, the " +"result is also infinite. If ``r`` is empty, the current rectangle remains" +" unchanged. Else if the current rectangle is empty, it is replaced by " +"``r``." +msgstr "" + +#: ../../rect.rst:155 d539db24271d4c00bd98e51fb2c3f2ab +msgid "" +"The smallest rectangle containing the current one and :data:`point_like` " +"``p`` is calculated and **replaces the current** one. **The infinite " +"rectangle remains unchanged.** To create the rectangle that wraps a " +"sequence of points, start with :meth:`EMPTY_RECT` and successively " +"include the members of the sequence." +msgstr "" + +#: ../../rect.rst:157 6a72290dd49345a0a63b3757d59663ca +msgid "Point to include." +msgstr "" + +#: ../../rect.rst:163 ba33391fc40040a4a994136d913ee366 +msgid "" +"Calculate the area of the rectangle and, with no parameter, equals " +"*abs(rect)*. Like an empty rectangle, the area of an infinite rectangle " +"is also zero. So, at least one of *pymupdf.Rect(p1, p2)* and " +"*pymupdf.Rect(p2, p1)* has a zero area." +msgstr "" + +#: ../../rect.rst:165 6f367ec895b04a5282f232e658390010 +msgid "" +"Specify required unit: respective squares of *px* (pixels, default), *in*" +" (inches), *cm* (centimeters), or *mm* (millimeters)." +msgstr "" + +#: ../../rect.rst:170 f1fdbdae13644bca9624eea1bed293ba +msgid "" +"Checks whether *x* is contained in the rectangle. It may be an *IRect*, " +"*Rect*, *Point* or number. If *x* is an empty rectangle, this is always " +"true. If the rectangle is empty this is always ``False`` for all non-" +"empty rectangles and for all points. `x in rect` and `rect.contains(x)` " +"are equivalent." +msgstr "" + +#: ../../rect.rst:172 ca3270a90eac40a4bbb2ec88e8547446 +msgid "the object to check." +msgstr "" + +#: ../../rect.rst:179 a2c14b05b36d4decbe4367b3aa764e2f +msgid "" +"Checks whether the rectangle and a :data:`rect_like` \"r\" contain a " +"common non-empty :ref:`Rect`. This will always be ``False`` if either is " +"infinite or empty." +msgstr "" + +#: ../../rect.rst:181 fd7c3c60afa7402f98f4d782416f106d +msgid "the rectangle to check." +msgstr "" + +#: ../../rect.rst:187 a9fe2a547ab44768a39b47d8d9ef868e +msgid "New in version 1.19.3" +msgstr "" + +#: ../../rect.rst:189 d15a89c433be470288ee2017503a040f +msgid "Compute the matrix which transforms this rectangle to a given one." +msgstr "" + +#: ../../rect.rst:191 7492eabbe7d24bdba52f9f8ead663bcd +msgid "the target rectangle. Must not be empty or infinite." +msgstr "" + +#: ../../rect.rst:192 1d5dde507c8b434e94689248050663f0 +msgid ":ref:`Matrix`" +msgstr "" + +#: ../../rect.rst:193 fc8cb54b6f794b9ca05b2b2fb57c5290 +msgid "" +"a matrix `mat` such that `self * mat = rect`. Can for example be used to " +"transform between the page and the pixmap coordinates. See an example use" +" here :ref:`RecipesImages_P`." +msgstr "" + +#: ../../rect.rst:197 6bfb5ec48e4742898de3cb22ba429c99 +msgid "New in version 1.17.0" +msgstr "" + +#: ../../rect.rst:199 33c676862f1241db9159e7a0b76a9f67 +msgid "" +"Return a new quad after applying a matrix to the rectangle using the " +"fixed point `fixpoint`." +msgstr "" + +#: ../../rect.rst:201 c4251e2f175d41d48a4e66ee81b8a2a0 +msgid "the fixed point." +msgstr "" + +#: ../../rect.rst:202 3597e1c1f5d84296b016ca74793b5554 +msgid "the matrix." +msgstr "" + +#: ../../rect.rst:203 e7dca746738f46ff95c1c3f83513868b +msgid "" +"a new :ref:`Quad`. This a wrapper for the same-named quad method. If " +"infinite, the infinite quad is returned." +msgstr "" + +#: ../../rect.rst:207 f0e8c79473044506bfc164d658cd0559 +msgid "New in version 1.16.0" +msgstr "" + +#: ../../rect.rst:209 5675696559db481c8264784ff3dc7467 +msgid "" +"Return the Euclidean norm of the rectangle treated as a vector of four " +"numbers." +msgstr "" + +#: ../../rect.rst:213 d5b4c7b243b04370ad7717618f6af173 +msgid "" +"**Replace** the rectangle with its valid version. This is done by " +"shuffling the rectangle corners. After completion of this method, the " +"bottom right corner will indeed be south-eastern to the top left one (but" +" may still be empty)." +msgstr "" + +#: ../../rect.rst:217 55f5202f243c431cb4a6aae82d228176 +msgid "Equals result of method *round()*." +msgstr "" + +#: ../../rect.rst:223 8ce16ab6c7df44f5abb8f92883c8d5c5 +msgid "Equals *Point(x0, y0)*." +msgstr "" + +#: ../../rect.rst 140ba1c8d224453686c608739d150b66 +#: 17b10802a6f2405c86d6e263e499d22f 5444bac90c254f1c84d6fe7c0e28890d +#: 5bacf55f6fdc41e0a4eaecf91679d95d 5e0076fec68344b9b5094a29a7778e51 +#: 6362dacd20114c8e8d8beda49463e502 7bdb41b9074b4fe8b70f89b3feb982f8 +#: 8b32b0a8f85c488f8622250501ee942a 9ebaad019109481ebcf4ddd743d67f01 +#: d8d182de61d74096abf1ed76f13825b2 dd68eb47fe4f425fb08826a909877002 +#: f6c692b144934eb0ba0bbce5f99825bf +msgid "type" +msgstr "" + +#: ../../rect.rst:225 ../../rect.rst:233 ../../rect.rst:241 ../../rect.rst:249 +#: 3bb0a2aad0b34e11b52697850a333f20 403eb084f6f64eb590a9e0627f324bc1 +#: 8690457d8ba940b09ec2249670a3ef5b 93767b206e804fd582e4db28c1eb3219 +msgid ":ref:`Point`" +msgstr "" + +#: ../../rect.rst:231 62f995500f554a04a83c5d7392c75231 +msgid "Equals `Point(x1, y0)`." +msgstr "" + +#: ../../rect.rst:239 4b524e88114c4a3d9795ac77e101aac6 +msgid "Equals `Point(x0, y1)`." +msgstr "" + +#: ../../rect.rst:247 c781f4a98d33484a8fd5eeb72de6719e +msgid "Equals `Point(x1, y1)`." +msgstr "" + +#: ../../rect.rst:253 4fdbb1259b894b85abf811e41bf30f7f +msgid "The quadrilateral `Quad(rect.tl, rect.tr, rect.bl, rect.br)`." +msgstr "" + +#: ../../rect.rst:255 a29713ba4e8a43c290093038d033627b +msgid ":ref:`Quad`" +msgstr "" + +#: ../../rect.rst:259 a19815eed800437580d69960abffb442 +msgid "Width of the rectangle. Equals `max(x1 - x0, 0)`." +msgstr "" + +#: ../../rect.rst:265 19c9fc7532244739bb242fc281fe9ab4 +msgid "Height of the rectangle. Equals `max(y1 - y0, 0)`." +msgstr "" + +#: ../../rect.rst:271 e9d9d68a615844588179b0a9c4ddb63d +msgid "X-coordinate of the left corners." +msgstr "" + +#: ../../rect.rst:273 ../../rect.rst:279 ../../rect.rst:285 ../../rect.rst:291 +#: 3159fff4ace944f5b28b66c85c40a391 595d30cddc2441798812da3e6aa60405 +#: 7d4d519c37524ecd93c59a92f14a52ee c3f30ece20574d289dd0729b1555cb67 +msgid "float" +msgstr "" + +#: ../../rect.rst:277 ef85ef105e694e3faab5ca56c0e0eecb +msgid "Y-coordinate of the top corners." +msgstr "" + +#: ../../rect.rst:283 01de9b8a52134ea9893026eb6219e2ed +msgid "X-coordinate of the right corners." +msgstr "" + +#: ../../rect.rst:289 0324e83243014e8facb3691297c10edd +msgid "Y-coordinate of the bottom corners." +msgstr "" + +#: ../../rect.rst:295 63c3980c456449ab98ca919497d7ee18 +msgid "`True` if this is the infinite rectangle." +msgstr "" + +#: ../../rect.rst:297 ../../rect.rst:303 ../../rect.rst:309 +#: 84e580180c7c4388939f1b2876f6eb67 9aaf58f7198848dc9acfe4b42c84ad6f +#: b9b7f26129e94195801107367cb7fbcc +msgid "bool" +msgstr "" + +#: ../../rect.rst:301 18ecd70d16ed40779b23464233b589ed +msgid "`True` if rectangle is empty." +msgstr "" + +#: ../../rect.rst:307 472d89b6e5324c3487cd59bb9818711c +msgid "`True` if rectangle is valid." +msgstr "" + +#: ../../rect.rst:313 9531f9684b3d4fe5add3912c57ef0e6a +msgid "" +"This class adheres to the Python sequence protocol, so components can be " +"accessed via their index, too. Also refer to :ref:`SequenceTypes`." +msgstr "" + +#: ../../rect.rst:314 a8f439886c4540a88cfb3aa32cee5363 +msgid "" +"Rectangles can be used with arithmetic operators -- see chapter " +":ref:`Algebra`." +msgstr "" + +#: ../../footer.rst:46 7bc9c45a377e4124a0eb39872343423a +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/resources.mo b/docs/locales/ko/LC_MESSAGES/resources.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/resources.po b/docs/locales/ko/LC_MESSAGES/resources.po new file mode 100644 index 000000000..de9e1b649 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/resources.po @@ -0,0 +1,75 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 ed18d6f38b3341f2bde92874aa4bc5d5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 e9efbd58e1724907a6662c6a6d1443ed +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 f0d9191b949d4c7aaf99c05b1e804afe +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../resources.rst:6 29588c8ac283422b8882c226d20d5624 +msgid "Resources" +msgstr "" + +#: ../../resources.rst:9 226156d6aa574ae49ebbc29f7cc0ef0d +msgid "**PyMuPDF Pro**" +msgstr "" + +#: ../../resources.rst:12 67c0d5d5d80c4878907a81eb3091f9c3 +msgid "For **Office** file support `try PyMuPDF Pro `." +msgstr "" + +#: ../../resources.rst:20 28881f0ff7624205aac76bf0a54670e2 +msgid "Find out about **PyMuPDF Utilities**" +msgstr "" + +#: ../../resources.rst:22 a5cac2a3beb04e638f4ab889c042bce1 +msgid "" +"The :title:`GitHub` repository `PyMuPDF-Utilities " +"`_ contains a full range of" +" examples, demonstrations and use cases." +msgstr "" + +#: ../../resources.rst:31 ae915eee85a646ed938c77e4ca278e0f +msgid "Do you need |PDF| to **DOCX** conversion?" +msgstr "" + +#: ../../resources.rst:33 38b205c29ae545f79e6de0b8dda5b6a8 +msgid "" +"We recommend the pdf2docx_ library which uses |PyMuPDF| and the **python-" +"docx** library to provide simple document conversion from |PDF| to " +"**DOCX** format." +msgstr "" + +#: ../../footer.rst:46 26ed59be763d4fe5a9384c80731d8341 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/shape.mo b/docs/locales/ko/LC_MESSAGES/shape.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/shape.po b/docs/locales/ko/LC_MESSAGES/shape.po new file mode 100644 index 000000000..f94a160be --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/shape.po @@ -0,0 +1,1460 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 7909b1fec71a4bb1918715ca5918f604 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 87466d36d4244b14b06775988b5a86da +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 c4e019a1ef45475794222706f39fa6bd +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../shape.rst:6 a9435293f59542b2850588abf5b6a5c0 +msgid "Shape" +msgstr "" + +#: ../../shape.rst:8 c22618002fb44404a4ac660d7663c2a9 +msgid "|pdf_only_class|" +msgstr "" + +#: ../../shape.rst:10 83f7ae44343b4e29b36be26c67c582a7 +msgid "" +"This class allows creating interconnected graphical elements on a PDF " +"page. Its methods have the same meaning and name as the corresponding " +":ref:`Page` methods." +msgstr "" + +#: ../../shape.rst:12 1687c125d94c4a889d4123d18b33a654 +msgid "" +"In fact, each :ref:`Page` draw method is just a convenience wrapper for " +"(1) one shape draw method, (2) the :meth:`Shape.finish` method, and (3) " +"the :meth:`Shape.commit` method. For page text insertion, only the " +":meth:`Shape.commit` method is invoked. If many draw and text operations " +"are executed for a page, you should always consider using a Shape object." +msgstr "" + +#: ../../shape.rst:14 61eb314053054e4e9a36e36845c74ae6 +msgid "" +"Several draw methods can be executed in a row and each one of them will " +"contribute to one drawing. Once the drawing is complete, the " +":meth:`Shape.finish` method must be invoked to apply color, dashing, " +"width, morphing and other attributes." +msgstr "" + +#: ../../shape.rst:16 f3481ff5d87c41998cb0f7de7874cbee +msgid "" +"**Draw** methods of this class (and :meth:`Shape.insert_textbox`) are " +"logging the area they are covering in a rectangle (:attr:`Shape.rect`). " +"This property can for instance be used to set " +":attr:`Page.cropbox_position`." +msgstr "" + +#: ../../shape.rst:18 93fc8032a8144e439538867e5d7d9ff1 +msgid "" +"**Text insertions** :meth:`Shape.insert_text` and " +":meth:`Shape.insert_textbox` implicitly execute a \"finish\" and " +"therefore only require :meth:`Shape.commit` to become effective. As a " +"consequence, both include parameters for controlling properties like " +"colors, etc." +msgstr "" + +#: ../../shape.rst:21 7753ef6a86874229bc626bf090e7fd68 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../shape.rst:21 21306cc0a07a4be8b729f6d593a2a25e +msgid "**Description**" +msgstr "" + +#: ../../shape.rst:23 76875c2923b44844919d4f7dbc4ff2ae +msgid ":meth:`Shape.commit`" +msgstr "" + +#: ../../shape.rst:23 b6e101dde14a4c0399c2d1e32dfae0e3 +msgid "update the page's contents" +msgstr "" + +#: ../../shape.rst:24 68e32b027b2a42519c263a5d79f0aca5 +msgid ":meth:`Shape.draw_bezier`" +msgstr "" + +#: ../../shape.rst:24 cfd73fa2818546d897d3cc7dbf43cb7f +msgid "draw a cubic Bezier curve" +msgstr "" + +#: ../../shape.rst:25 4f7b9a227586442b8c80cfc50bb5d2f6 +msgid ":meth:`Shape.draw_circle`" +msgstr "" + +#: ../../shape.rst:25 9f885ddec57646dc9618b9b296ef806e +msgid "draw a circle around a point" +msgstr "" + +#: ../../shape.rst:26 aa0ac0a299bb4cacbdb189b821d1057f +msgid ":meth:`Shape.draw_curve`" +msgstr "" + +#: ../../shape.rst:26 444333668308404a995780c7c2ffd1e8 +msgid "draw a cubic Bezier using one helper point" +msgstr "" + +#: ../../shape.rst:27 1b7d6cc35258460398a82cc2ea5f5017 +msgid ":meth:`Shape.draw_line`" +msgstr "" + +#: ../../shape.rst:27 0a76a1b23d26472bb46eaef1b0b11d37 +msgid "draw a line" +msgstr "" + +#: ../../shape.rst:28 eea95a7b69df4cc6a775a0d4015d87f5 +msgid ":meth:`Shape.draw_oval`" +msgstr "" + +#: ../../shape.rst:28 34529e37e99440538218de68e175f373 +msgid "draw an ellipse" +msgstr "" + +#: ../../shape.rst:29 8817f8a373594a85a5b96f2658e31d98 +msgid ":meth:`Shape.draw_polyline`" +msgstr "" + +#: ../../shape.rst:29 3b98bc2fd12c456c8a2410d43daa8912 +msgid "connect a sequence of points" +msgstr "" + +#: ../../shape.rst:30 4022cf63cc3a496696d3f62c0a2805ab +msgid ":meth:`Shape.draw_quad`" +msgstr "" + +#: ../../shape.rst:30 bde0f7baa3e145cda4e9d029099dda80 +msgid "draw a quadrilateral" +msgstr "" + +#: ../../shape.rst:31 c4addcda29c140a6b1975890737ead18 +msgid ":meth:`Shape.draw_rect`" +msgstr "" + +#: ../../shape.rst:31 2b173978a5c64357ac1aabcc6e976c73 +msgid "draw a rectangle" +msgstr "" + +#: ../../shape.rst:32 7f7f34efc2e944109b6c07df81c75430 +msgid ":meth:`Shape.draw_sector`" +msgstr "" + +#: ../../shape.rst:32 d5d4937a74fb42b7b20852638b500044 +msgid "draw a circular sector or piece of pie" +msgstr "" + +#: ../../shape.rst:33 880b0c8a153e48fdaa1029e9be76e520 +msgid ":meth:`Shape.draw_squiggle`" +msgstr "" + +#: ../../shape.rst:33 da68180d030a4b1fb309de94d47743b1 +msgid "draw a squiggly line" +msgstr "" + +#: ../../shape.rst:34 9fe45650af3d4e0ca97f2b9d25d87789 +msgid ":meth:`Shape.draw_zigzag`" +msgstr "" + +#: ../../shape.rst:34 63c2fdb3045d4b81ae22677572e74fbe +msgid "draw a zigzag line" +msgstr "" + +#: ../../shape.rst:35 c22ba5f6783649118106601684861498 +msgid ":meth:`Shape.finish`" +msgstr "" + +#: ../../shape.rst:35 7c247cc071c04f4383953864f5d543ee +msgid "finish a set of draw commands" +msgstr "" + +#: ../../shape.rst:36 0ba068100e264e0b9e9ec1f368662d1d +msgid ":meth:`Shape.insert_text`" +msgstr "" + +#: ../../shape.rst:36 5dd5770c7a054a66ab3b70a9d530c6f3 +msgid "insert text lines" +msgstr "" + +#: ../../shape.rst:37 fa4216d497f9485cb9c79fc192a851bf +msgid ":meth:`Shape.insert_textbox`" +msgstr "" + +#: ../../shape.rst:37 47ec8b14ef6c4a6d97b355006a0b0b62 +msgid "fit text into a rectangle" +msgstr "" + +#: ../../shape.rst:38 f1252e5521e147f5bb1c776091ef3328 +msgid ":attr:`Shape.doc`" +msgstr "" + +#: ../../shape.rst:38 7f05739c6d0d459aa0631c532353654e +msgid "stores the page's document" +msgstr "" + +#: ../../shape.rst:39 61f46d3f420545e684f380815c9730f3 +msgid ":attr:`Shape.draw_cont`" +msgstr "" + +#: ../../shape.rst:39 8a19e4b60bd145ceaa799130f96ab50f +msgid "draw commands since last :meth:`Shape.finish`" +msgstr "" + +#: ../../shape.rst:40 dbc1fe5e22804f4291fdc27abafe492f +msgid ":attr:`Shape.height`" +msgstr "" + +#: ../../shape.rst:40 a1b344bfa62b474dbecc168b7566abfd +msgid "stores the page's height" +msgstr "" + +#: ../../shape.rst:41 98c50cf9d34b4f1fac07407191336a46 +msgid ":attr:`Shape.lastPoint`" +msgstr "" + +#: ../../shape.rst:41 d744e08ab64c4be89b54b91da06292ad +msgid "stores the current point" +msgstr "" + +#: ../../shape.rst:42 3c7b42195cfb495cba0b78bee8af7989 +msgid ":attr:`Shape.page`" +msgstr "" + +#: ../../shape.rst:42 94b8094277504a3e865c3fc7a2fbadcf +msgid "stores the owning page" +msgstr "" + +#: ../../shape.rst:43 74e41af07b7e49dfb9e8897106da6072 +msgid ":attr:`Shape.rect`" +msgstr "" + +#: ../../shape.rst:43 2fd72b972ba64904b71bf6a28bf4aa69 +msgid "rectangle surrounding drawings" +msgstr "" + +#: ../../shape.rst:44 d662c10c7b284e1a9e8fb0cfacc0af7e +msgid ":attr:`Shape.text_cont`" +msgstr "" + +#: ../../shape.rst:44 260872b329274794a91fbe27de9d0fd7 +msgid "accumulated text insertions" +msgstr "" + +#: ../../shape.rst:45 260f168374084a0389735532a415f968 +msgid ":attr:`Shape.totalcont`" +msgstr "" + +#: ../../shape.rst:45 cca60781247448a6bef1b019d5b03005 +msgid "accumulated string to be stored in :data:`contents`" +msgstr "" + +#: ../../shape.rst:46 bf5489e997644d1b86ef1a304a20a630 +msgid ":attr:`Shape.width`" +msgstr "" + +#: ../../shape.rst:46 320f315bc7e34fb9a224c8104c0490ba +msgid "stores the page's width" +msgstr "" + +#: ../../shape.rst:49 bb77ff1beb1643f1a32fbeb881764556 +msgid "**Class API**" +msgstr "" + +#: ../../shape.rst:55 f849eb8fe4ea4d84ae176a3bfaddbc5d +msgid "" +"Create a new drawing. During importing PyMuPDF, the *pymupdf.Page* object" +" is being given the convenience method *new_shape()* to construct a " +"*Shape* object. During instantiation, a check will be made whether we do " +"have a PDF page. An exception is otherwise raised." +msgstr "" + +#: ../../shape.rst 1c33018ebf664e5c82016942d1b106b9 +#: 1ffb902ffb054dea81b4421598d73d3b 2c7222c93878455593e199cee35f9bc0 +#: 526e0601602e4ad294c77828899ee151 652ecb786383456887f3e684eb50a16f +#: 8351d111f6ba44c5a48d07b45ecd69ec 8512993c092848e68b405672b0329a5f +#: 97750b106384485e9da4b3a178fc8b8a bdcf123cefb04a72ac000f1e6d213cab +#: d33f1cb5159441b288aacd2ccae007dd d522a8dc82fa46aaa1bf98571addfab6 +#: ec2e6f2b47e543f780ac5d88287a15e3 f4f238ef2bbb4c60a0db78dc6ba48ae3 +#: fc6fd8d86630442eac29f0ee69909dd3 +msgid "Parameters" +msgstr "" + +#: ../../shape.rst:57 7af1e6f9a6c54700a96a634680458cf7 +msgid "an existing page of a PDF document." +msgstr "" + +#: ../../shape.rst:62 76f377d8f0084511ba9e8ab03be15272 +msgid "Draw a line from :data:`point_like` objects *p1* to *p2*." +msgstr "" + +#: ../../shape.rst:64 ../../shape.rst:78 ../../shape.rst:114 +#: 0bd9ca4fa2034c02bba75a1ed84436e8 67a3775d53744800bce979bd9509dae4 +#: 6fdeeec1ae7344738df476d7c0995efd +msgid "starting point" +msgstr "" + +#: ../../shape.rst:66 ../../shape.rst:80 ../../shape.rst:116 +#: 233bc3b5db494f95bd617855177b0ba3 b9a33dfd5ad0434bb5d1681c4ef5477f +#: d7a11d5e2d0843bf98b67ccb4c5a1b5c +msgid "end point" +msgstr "" + +#: ../../shape.rst 00c99cce86684724a7484f034aead4b9 +#: 11b2ce9eb7ac446288dfe432b6af2d66 37b1db5fc557483698f96296fca977a1 +#: 398f16080c7c485daf19f594085b75e3 4fb89ac12ab341e98fd2fbfde502762f +#: 79c3be157132461c91fbd43f577c6960 7f449ff12a28486c9377d3eae5881abe +#: 86a6ff3345b34b99a0b2846ce9b63f97 87752e32bcb84c439a39262387ed43ad +#: 8ce97810f50346f1963cb9045d0e3bc9 9a9e08e465d642609b4034f0ac585738 +#: e06a173ede194c2499189e3f4ea96d22 f8c5c0c193bf4857a6d61a7fe76a58a0 +msgid "Return type" +msgstr "" + +#: ../../shape.rst:68 ../../shape.rst:84 ../../shape.rst:120 +#: ../../shape.rst:129 ../../shape.rst:138 ../../shape.rst:157 +#: ../../shape.rst:173 ../../shape.rst:185 ../../shape.rst:207 +#: ../../shape.rst:224 ../../shape.rst:233 ../../shape.rst:448 +#: 02178d1d64304122974cdd7d2eda4e9a 04e3fd71585f46408e34e1b5d2918e9d +#: 1b90b951d85a446a9b18d2751aa79908 258641b6956c4c2ebb65129fbc72ae92 +#: 2c6a3892b51541d9b2bc4f6aa0613353 318dc522d9764a2e9e4ad48a39be4ebb +#: 60c74e5979e14e0e8d70ebeb78df14b9 6b818606a66c4dc494a2fe410d34be22 +#: 6f503a8ab6474890be0934600cf2de3b 881f284fe0a54cc180a7ff765822eb7e +#: 8b84d3286ddb4519bb3afc99075e83fb f570f468b63940e4b0b9f5890f13db63 +msgid ":ref:`Point`" +msgstr "" + +#: ../../shape.rst 19bca25aa417451a9d8eb8425f4d7fe5 +#: 2d7984c3e8b24f9cacf4f90e2f10a7e0 42bcff3c5d7c4b3ea0f0cff8b94a1936 +#: 5725a8009d724bfda07948d7fdd6a975 5ab553dbd9a245ef85863361d3458c06 +#: 5baa94cd077f42439269059c4560779d a0d4f65446c742a5b9f88f747fecf574 +#: a8b9ec9227c447c7b5b7e475f0ad137b b93d921a09e2475eb2dfecc00159859c +#: c9221ebfa6724c35be3fe1b3043dcc84 edda77c9978d4bdc8e49a11220f628de +#: fda0a5dbf3e44f70993141cd223cda9f ffd43af87088494c8ab238422d4affeb +msgid "Returns" +msgstr "" + +#: ../../shape.rst:69 ../../shape.rst:85 ../../shape.rst:121 +#: 03c2703f4c2c4c488c6e1dd5a8bde13f 54fc79ebcc5547368af108398f088aa1 +#: d5a893ea1f9f4e6cb959502504cda257 +msgid "the end point, *p2*." +msgstr "" + +#: ../../shape.rst:76 eed928e2a53b4d0db6454fc9a3031e88 +msgid "" +"Draw a squiggly (wavy, undulated) line from :data:`point_like` objects " +"*p1* to *p2*. An integer number of full wave periods will always be " +"drawn, one period having a length of *4 * breadth*. The breadth parameter" +" will be adjusted as necessary to meet this condition. The drawn line " +"will always turn \"left\" when leaving *p1* and always join *p2* from the" +" \"right\"." +msgstr "" + +#: ../../shape.rst:82 cbee403daaee4a56b9b2f131ff95afb9 +msgid "" +"the amplitude of each wave. The condition *2 * breadth < abs(p2 - p1)* " +"must be true to fit in at least one wave. See the following picture, " +"which shows two points connected by one full period." +msgstr "" + +#: ../../shape.rst:89 c61f3a8ac2e84d7e88c065f6a80328ac +msgid "" +"Here is an example of three connected lines, forming a closed, filled " +"triangle. Little arrows indicate the stroking direction." +msgstr "" + +#: ../../shape.rst:105 3b09c6c0299043ad9e407b82096dc07f +msgid "" +"Waves drawn are **not** trigonometric (sine / cosine). If you need that, " +"have a look at `draw.py `_." +msgstr "" + +#: ../../shape.rst:112 e6d38796d27441ac9eb554ae3567f070 +msgid "" +"Draw a zigzag line from :data:`point_like` objects *p1* to *p2*. " +"Otherwise works exactly like :meth:`Shape.draw_squiggle`." +msgstr "" + +#: ../../shape.rst:118 2686f76e3e56495ca08bdd2711d1c28e +msgid "" +"the amplitude of the movement. The condition *2 * breadth < abs(p2 - p1)*" +" must be true to fit in at least one period." +msgstr "" + +#: ../../shape.rst:125 bfb5a00ac07547bf822e4b2d95c0f3d7 +msgid "" +"Draw several connected lines between points contained in the sequence " +"*points*. This can be used for creating arbitrary polygons by setting the" +" last item equal to the first one." +msgstr "" + +#: ../../shape.rst:127 9afa3278382745228b82849acc3d1db1 +msgid "" +"a sequence of :data:`point_like` objects. Its length must at least be 2 " +"(in which case it is equivalent to *draw_line()*)." +msgstr "" + +#: ../../shape.rst:130 b0f8276e3be04c6996c165c83ed3fdbd +msgid "*points[-1]* -- the last point in the argument sequence." +msgstr "" + +#: ../../shape.rst:134 bf9fc4f7ee704353953bbb497b85a344 +msgid "" +"Draw a standard cubic Bézier curve from *p1* to *p4*, using *p2* and *p3*" +" as control points." +msgstr "" + +#: ../../shape.rst:136 65ae6d8fa1ca4696b5ceec6e6a33a484 +msgid "All arguments are :data:`point_like` objects." +msgstr "" + +#: ../../shape.rst:139 c3bc7d17a1564a259bbccff931fbceb4 +msgid "the end point, *p4*." +msgstr "" + +#: ../../shape.rst:141 540f633870214c57b214a2d3dc6fad47 +msgid "" +"The points do not need to be different -- experiment a bit with some of " +"them being equal!" +msgstr "" + +#: ../../shape.rst:143 cc32f6b9b719471e990541995cb91d8a +msgid "Example:" +msgstr "" + +#: ../../shape.rst:149 3cd13feab216456fb40eabb0f87476f2 +msgid "" +"Draw an \"ellipse\" inside the given tetragon (quadrilateral). If it is a" +" square, a regular circle is drawn, a general rectangle will result in an" +" ellipse. If a quadrilateral is used instead, a plethora of shapes can be" +" the result." +msgstr "" + +#: ../../shape.rst:151 3beef81862054f6c9dcfb27abe73062b +msgid "" +"The drawing starts and ends at the middle point of the line `bottom-left " +"-> top-left` corners in an anti-clockwise movement." +msgstr "" + +#: ../../shape.rst:153 dbc5cddf46e74369a4ec90c4aba4a510 +msgid "" +":data:`rect_like` or :data:`quad_like`. *Changed in version 1.14.5:* " +"Quads are now also supported." +msgstr "" + +#: ../../shape.rst:153 0704abfebefe4fe78ed8116b1a8491c3 +msgid ":data:`rect_like` or :data:`quad_like`." +msgstr "" + +#: ../../shape.rst:155 b5056fbc16ad42e4b786c5a89beddb09 +msgid "*Changed in version 1.14.5:* Quads are now also supported." +msgstr "" + +#: ../../shape.rst:158 913c4e5f92e8407f8da84ba1fbe6cb29 +msgid "" +"the middle point of line `rect.bl -> rect.tl`, or resp. `quad.ll -> " +"quad.ul`. Look at just a few examples here, or at the *quad-show?.py* " +"scripts in the PyMuPDF-Utilities repository." +msgstr "" + +#: ../../shape.rst:165 e10d02b00d77481699e5ed1c3824246d +msgid "" +"Draw a circle given its center and radius. The drawing starts and ends at" +" point `center - (radius, 0)` in an **anti-clockwise** movement. This " +"point is the middle of the enclosing square's left side." +msgstr "" + +#: ../../shape.rst:167 ab7929d6c83247179ab99962d0e45182 +msgid "" +"This is a shortcut for `draw_sector(center, start, 360, " +"fullSector=False)`. To draw the same circle in a **clockwise** movement, " +"use `-360` as degrees." +msgstr "" + +#: ../../shape.rst:169 ../../shape.rst:199 6f2705ad71a74c2b917e39246bc2698d +#: bd872730dfb6401aa65d5bf0dcfa4a1d +msgid "the center of the circle." +msgstr "" + +#: ../../shape.rst:171 5b6ab9084a254ee998a1d680ac1e0240 +msgid "the radius of the circle. Must be positive." +msgstr "" + +#: ../../shape.rst:174 7c4ce467661b468b8439dadac7926f6a +msgid "" +"`Point(center.x - radius, center.y)`. .. image:: images/img-drawcircle.*" +" :scale: 60" +msgstr "" + +#: ../../shape.rst:174 2debffa3cd414df1912ce3b384b1301c +msgid "`Point(center.x - radius, center.y)`." +msgstr "" + +#: ../../shape.rst:181 ee66694536bb4ca4a6a74521eab10648 +msgid "" +"A special case of *draw_bezier()*: Draw a cubic Bezier curve from *p1* to" +" *p3*. On each of the two lines `p1 -> p2` and `p3 -> p2` one control " +"point is generated. Both control points will therefore be on the same " +"side of the line `p1 -> p3`. This guaranties that the curve's curvature " +"does not change its sign. If the lines to p2 intersect with an angle of " +"90 degrees, then the resulting curve is a quarter ellipse (resp. quarter " +"circle, if of same length)." +msgstr "" + +#: ../../shape.rst:183 b9aa05d9515a4765ba0ed43ffaf7fdc8 +msgid "All arguments are :data:`point_like`." +msgstr "" + +#: ../../shape.rst:186 17f64971541f45cd813e80d02b9a38f9 +msgid "" +"the end point, *p3*. The following is a filled quarter ellipse segment. " +"The yellow area is oriented **clockwise:** .. image:: images/img-" +"drawCurve.png :align: center" +msgstr "" + +#: ../../shape.rst:186 13f26770deb8487da263851084fcf4e9 +msgid "" +"the end point, *p3*. The following is a filled quarter ellipse segment. " +"The yellow area is oriented **clockwise:**" +msgstr "" + +#: ../../shape.rst:197 e52f58c73f024ab492a6b26bf05ef6d1 +msgid "" +"Draw a circular sector, optionally connecting the arc to the circle's " +"center (like a piece of pie)." +msgstr "" + +#: ../../shape.rst:201 4a4f8fd9d4ae4e9f9d879279d68a23eb +msgid "" +"one of the two end points of the pie's arc segment. The other one is " +"calculated from the *angle*." +msgstr "" + +#: ../../shape.rst:203 cde4d3b5b77e4714a1e8229d3a7d5901 +msgid "" +"the angle of the sector in degrees. Used to calculate the other end point" +" of the arc. Depending on its sign, the arc is drawn anti-clockwise " +"(positive) or clockwise." +msgstr "" + +#: ../../shape.rst:205 240361925857465eae04d2b1fb29fe7f +msgid "" +"whether to draw connecting lines from the ends of the arc to the circle " +"center. If a fill color is specified, the full \"pie\" is colored, " +"otherwise just the sector." +msgstr "" + +#: ../../shape.rst:208 be7cd89a7589439eb4d78244412304ad +msgid "" +"the other end point of the arc. Can be used as starting point for a " +"following invocation to create logically connected pies charts. Examples:" +" .. image:: images/img-drawSector1.* .. image:: images/img-" +"drawSector2.*" +msgstr "" + +#: ../../shape.rst:208 0043e2c7a86744b4a2bc4d7f0bce8a4b +msgid "" +"the other end point of the arc. Can be used as starting point for a " +"following invocation to create logically connected pies charts. Examples:" +msgstr "" + +#: ../../shape.rst:217 5fb3a670ab80402c9dcadb97fd8823f0 +msgid "Changed in v1.22.0: Added parameter *radius*." +msgstr "" + +#: ../../shape.rst:219 d0e527f29d634bf6a4487b2594b804af +msgid "" +"Draw a rectangle. The drawing starts and ends at the top-left corner in " +"an anti-clockwise movement." +msgstr "" + +#: ../../shape.rst:221 9f2b7555b1844871bbf67f60773f3566 +msgid "where to put the rectangle on the page." +msgstr "" + +#: ../../shape.rst:222 67f101fa3c674ce7b113450e58af1ac1 +#, python-format +msgid "" +"draw rounded rectangle corners. If not `None`, specifies the radius of " +"the curvature as a percentage of a rectangle side length. This must one " +"or (a tuple of) two floats `0 < radius <= 0.5`, where 0.5 corresponds to " +"50% of the respective side. If a float, the radius of the curvature is " +"computed as `radius * min(width, height)`, drawing the corner's perimeter" +" as a quarter circle. If a tuple `(rx, ry)` is given, then the curvature " +"is asymmetric with respect to the horizontal and vertical directions. A " +"value of `radius=(0.5, 0.5)` draws an ellipse." +msgstr "" + +#: ../../shape.rst:225 6c3047af9341428fb1852d642a8d8fb3 +msgid "top-left corner of the rectangle." +msgstr "" + +#: ../../shape.rst:229 654bd0a3b7ce4bf78f0d2d85b1d37414 +msgid "" +"Draw a quadrilateral. The drawing starts and ends at the top-left corner " +"(:attr:`Quad.ul`) in an anti-clockwise movement. It is a shortcut of " +":meth:`Shape.draw_polyline` with the argument `(ul, ll, lr, ur, ul)`." +msgstr "" + +#: ../../shape.rst:231 046262682daf47c8be64f00f93f9acba +msgid "where to put the tetragon on the page." +msgstr "" + +#: ../../shape.rst:234 3fe224acf6924b1085f1052564c9423f +msgid ":attr:`Quad.ul`." +msgstr "" + +#: ../../shape.rst:253 0de6d95816a442d3b9408559071e8954 +msgid "" +"Finish a set of *draw*()* methods by applying :ref:`CommonParms` to all " +"of them." +msgstr "" + +#: ../../shape.rst:255 56332b3691544dfbaf0fd9e731231bc5 +msgid "" +"It has **no effect on** :meth:`Shape.insert_text` and " +":meth:`Shape.insert_textbox`." +msgstr "" + +#: ../../shape.rst:257 549c8c7eeb8344aaa7576d3e8a534e9c +msgid "" +"The method also supports **morphing the compound drawing** using " +":ref:`Point` *fixpoint* and :ref:`matrix` *matrix*." +msgstr "" + +#: ../../shape.rst:259 dba0c80e395c4f9992d5e84ad7225ffd +msgid "" +"morph the text or the compound drawing around some arbitrary :ref:`Point`" +" *fixpoint* by applying :ref:`Matrix` *matrix* to it. This implies that " +"*fixpoint* is a **fixed point** of this operation: it will not change its" +" position. Default is no morphing (``None``). The matrix can contain any " +"values in its first 4 components, *matrix.e == matrix.f == 0* must be " +"true, however. This means that any combination of scaling, shearing, " +"rotating, flipping, etc. is possible, but translations are not." +msgstr "" + +#: ../../shape.rst:261 5dafa22688dd4869b353c3ba9d3b07f7 +msgid "" +"*(new in v1.18.1)* set transparency for stroke colors. Value < 0 or > 1 " +"will be ignored. Default is 1 (intransparent)." +msgstr "" + +#: ../../shape.rst:262 ccec6b24043c40a28e9532eddd90bdce +msgid "" +"*(new in v1.18.1)* set transparency for fill colors. Default is 1 " +"(intransparent)." +msgstr "" + +#: ../../shape.rst:264 df15c1363a6a46538ab6875019646cbd +msgid "" +"request the **\"even-odd rule\"** for filling operations. Default is " +"``False``, so that the **\"nonzero winding number rule\"** is used. These" +" rules are alternative methods to apply the fill color where areas " +"overlap. Only with fairly complex shapes a different behavior is to be " +"expected with these rules. For an in-depth explanation, see " +":ref:`AdobeManual`, pp. 137 ff. Here is an example to demonstrate the " +"difference." +msgstr "" + +#: ../../shape.rst:266 c674e567b1e5433eaf84acd80acc23dc +msgid "" +"*(new in v1.18.4)* the :data:`xref` number of an :data:`OCG` or " +":data:`OCMD` to make this drawing conditionally displayable." +msgstr "" + +#: ../../shape.rst:270 63c92f36394847c489986e7f2afbb97a +msgid "For each pixel in a shape, the following will happen:" +msgstr "" + +#: ../../shape.rst:272 36c14ed50f0445be999e611bc169aa24 +msgid "" +"Rule **\"even-odd\"** counts, how many areas contain the pixel. If this " +"count is **odd,** the pixel is regarded **inside** the shape, if it is " +"**even**, the pixel is **outside**." +msgstr "" + +#: ../../shape.rst:274 3effcfe2b7fe4980b3622d1cc2555db9 +msgid "" +"The default rule **\"nonzero winding\"** in addition looks at the " +"*\"orientation\"* of each area containing the pixel: it **adds 1** if an " +"area is drawn anti-clockwise and it **subtracts 1** for clockwise areas. " +"If the result is zero, the pixel is regarded **outside,** pixels with a " +"non-zero count are **inside** the shape." +msgstr "" + +#: ../../shape.rst:276 b72f9a0a9d6a42fba11e06941aaae289 +msgid "" +"Of the four shapes in above image, the top two each show three circles " +"drawn in standard manner (anti-clockwise, look at the arrows). The lower " +"two shapes contain one (the top-left) circle drawn clockwise. As can be " +"seen, area orientation is irrelevant for the right column (even-odd " +"rule)." +msgstr "" + +#: ../../shape.rst:297 a50a3db9c4f74b3aaed7c91f010f050f +msgid "Insert text lines starting at ``point``." +msgstr "" + +#: ../../shape.rst:299 d60ae29ad0ca4e709ff2c72d7bf5c264 +msgid "" +"the bottom-left position of the first character of *text* in pixels. It " +"is important to understand, how this works in conjunction with the " +"*rotate* parameter. Please have a look at the following picture. The " +"small red dots indicate the positions of *point* in each of the four " +"possible cases. .. image:: images/img-inserttext.* :scale: 33" +msgstr "" + +#: ../../shape.rst:299 1521f8f6fbea43a0be0deb7904e4623c +msgid "" +"the bottom-left position of the first character of *text* in pixels. It " +"is important to understand, how this works in conjunction with the " +"*rotate* parameter. Please have a look at the following picture. The " +"small red dots indicate the positions of *point* in each of the four " +"possible cases." +msgstr "" + +#: ../../shape.rst:304 c50197a3ee954fc4b17e16da50350320 +msgid "" +"the text to be inserted. May be specified as either a string type or as a" +" sequence type. For sequences, or strings containing line breaks ``\\n``," +" several lines will be inserted. No care will be taken if lines are too " +"wide, but the number of inserted lines will be limited by \"vertical\" " +"space on the page (in the sense of reading direction as established by " +"the *rotate* parameter). Any rest of *text* is discarded -- the return " +"code however contains the number of inserted lines." +msgstr "" + +#: ../../shape.rst:306 ../../shape.rst:346 a2bce94fcad44fc08799f6d16a27e19d +#: f75a16cbc40142c5a8ce2199eb87b25c +msgid "" +"a factor to override the line height calculated from font properties. If " +"not `None`, a line height of `fontsize * lineheight` will be used." +msgstr "" + +#: ../../shape.rst:307 1ecd328d935546d38c4621a762982871 +msgid "" +"*(new in v1.18.1)* set transparency for stroke colors (the **border " +"line** of a character). Only `0 <= value <= 1` will be considered. " +"Default is 1 (intransparent)." +msgstr "" + +#: ../../shape.rst:308 ../../shape.rst:351 168d47f1a50e45efbddb4be1a0a28d1c +#: 7029b8b04590494a850f9bf97c737317 +msgid "" +"*(new in v1.18.1)* set transparency for fill colors. Default is 1 " +"(intransparent). Use this value to control transparency of the text " +"color. Stroke opacity **only** affects the border line of characters." +msgstr "" + +#: ../../shape.rst:310 bc253669783d43fbbcea827f904f8df7 +msgid "" +"determines whether to rotate the text. Acceptable values are multiples of" +" 90 degrees. Default is 0 (no rotation), meaning horizontal text lines " +"oriented from left to right. 180 means text is shown upside down from " +"**right to left**. 90 means anti-clockwise rotation, text running " +"**upwards**. 270 (or -90) means clockwise rotation, text running " +"**downwards**. In any case, *point* specifies the bottom-left coordinates" +" of the first character's rectangle. Multiple lines, if present, always " +"follow the reading direction established by this parameter. So line 2 is " +"located **above** line 1 in case of `rotate = 180`, etc." +msgstr "" + +#: ../../shape.rst:312 ../../shape.rst:355 68906f83108042f0b104b462a3b39709 +#: 9759f8b8a55448eb88645d85395ee4e8 +msgid "" +"*(new in v1.18.4)* the :data:`xref` number of an :data:`OCG` or " +":data:`OCMD` to make this text conditionally displayable." +msgstr "" + +#: ../../shape.rst:315 ed86c6cd4572455ba92ae3ff42b41fdf +msgid "number of lines inserted." +msgstr "" + +#: ../../shape.rst:317 ../../shape.rst:367 4a40110f016f4c7bb3e919ac462d14e3 +#: 785b22c9fbc5484186666fbe76c0f207 +msgid "For a description of the other parameters see :ref:`CommonParms`." +msgstr "" + +#: ../../shape.rst:338 32569db0897946de8f8338dcc82e3dd3 +msgid "" +"PDF only: Insert text into the specified rectangle. The text will be " +"split into lines and words and then filled into the available space, " +"starting from one of the four rectangle corners, which depends on " +"`rotate`. Line feeds and multiple space will be respected." +msgstr "" + +#: ../../shape.rst:340 c50da8ee249d416084e826f0a8a2efd6 +msgid "the area to use. It must be finite and not empty." +msgstr "" + +#: ../../shape.rst:342 7990001f1d8a482696c3ea94ee3b11c5 +msgid "" +"the text to be inserted. Must be specified as a string or a sequence of " +"strings. Line breaks are respected also when occurring in a sequence " +"entry." +msgstr "" + +#: ../../shape.rst:344 8bfa2ed038884962a70ceb3e0459dc06 +msgid "" +"align each text line. Default is 0 (left). Centered, right and justified " +"are the other supported options, see :ref:`TextAlign`. Please note that " +"the effect of parameter value *TEXT_ALIGN_JUSTIFY* is only achievable " +"with \"simple\" (single-byte) fonts (including the :ref:`Base-14-Fonts`)." +msgstr "" + +#: ../../shape.rst:348 9adb4b3bbe094da8a624bd552fc13f21 +msgid "" +"controls handling of tab characters ``\\t`` using the " +"`string.expandtabs()` method **per each line**." +msgstr "" + +#: ../../shape.rst:350 67177b4ade6c4da5a4523395d6bd4bf4 +msgid "" +"*(new in v1.18.1)* set transparency for stroke colors. Negative values " +"and values > 1 will be ignored. Default is 1 (intransparent)." +msgstr "" + +#: ../../shape.rst:353 d5edb13ac13b4ab4ba9d26fa3d3a6d82 +msgid "" +"requests text to be rotated in the rectangle. This value must be a " +"multiple of 90 degrees. Default is 0 (no rotation). Effectively, the four" +" values `0`, `90`, `180` and `270` (= `-90`) are processed, each causing " +"the text to start in a different rectangle corner. Bottom-left is `90`, " +"bottom-right is `180`, and `-90 / 270` is top-right. See the example how " +"text is filled in a rectangle. This argument takes precedence over " +"morphing. See the second example, which shows text first rotated left by " +"`90` degrees and then the whole rectangle rotated clockwise around is " +"lower left corner." +msgstr "" + +#: ../../shape.rst:358 c9924f296b104dcb885e423a8329287a +msgid "" +"**If positive or zero**: successful execution. The value returned is the " +"unused rectangle line space in pixels. This may safely be ignored -- or " +"be used to optimize the rectangle, position subsequent items, etc. **If " +"negative**: no execution. The value returned is the space deficit to " +"store text lines. Enlarge rectangle, decrease *fontsize*, decrease text " +"amount, etc." +msgstr "" + +#: ../../shape.rst:359 ff434ea0b01748d3a22351b8914d1de9 +msgid "" +"**If positive or zero**: successful execution. The value returned is the " +"unused rectangle line space in pixels. This may safely be ignored -- or " +"be used to optimize the rectangle, position subsequent items, etc." +msgstr "" + +#: ../../shape.rst:361 2d7f62a0c5ec468eb58daea2b7b74842 +msgid "" +"**If negative**: no execution. The value returned is the space deficit to" +" store text lines. Enlarge rectangle, decrease *fontsize*, decrease text " +"amount, etc." +msgstr "" + +#: ../../shape.rst:375 f65e40d3ebec4535af01faa79e3c04db +msgid "" +"Update the page's :data:`contents` with the accumulated drawings, " +"followed by any text insertions. If text overlaps drawings, it will be " +"written on top of the drawings." +msgstr "" + +#: ../../shape.rst:377 3cc36436278147c4bf9af8031f1046a3 +msgid "**Do not forget to execute this method:**" +msgstr "" + +#: ../../shape.rst:379 44ccc171888e476f88b7c3ce68d54ad9 +msgid "" +"If a shape is **not committed, it will be ignored and the page will not " +"be changed!**" +msgstr "" + +#: ../../shape.rst:381 8911998982cf45e6b4d61df722ae0084 +msgid "" +"The method will reset attributes :attr:`Shape.rect`, :attr:`lastPoint`, " +":attr:`draw_cont`, :attr:`text_cont` and :attr:`totalcont`. Afterwards, " +"the shape object can be reused for the **same page**." +msgstr "" + +#: ../../shape.rst:383 90b57d6cc3344abaa5ae796d17518c78 +msgid "" +"determine whether to put content in foreground (default) or background. " +"Relevant only, if the page already has a non-empty :data:`contents` " +"object." +msgstr "" + +#: ../../shape.rst:385 555f29f07330465799e60c983380d945 +msgid "**---------- Attributes ----------**" +msgstr "" + +#: ../../shape.rst:389 bcd84d9d71fe4ab7a75882c2f6ea55ee +msgid "For reference only: the page's document." +msgstr "" + +#: ../../shape.rst 4bc5f78dcd47499499d993fc76937923 +#: 51e0e906798c404999816e887c14725e 583eb30bb6764d82886dcee5ecc5ef23 +#: 7da907572dab4cdd850b1f99866f1208 84fee03ff02a47de895a2e76a85339b0 +#: 8ad67482ac084e4e8acd77c771ac9813 bd1c39ed922a4dba9f34104a29bd9bd6 +#: dc8385568c9641d9bb717e0218bc356a f04ca533ba0f465e9baafc622227ff3a +msgid "type" +msgstr "" + +#: ../../shape.rst:391 d4a7179efc87417687ed54512b5fd372 +msgid ":ref:`Document`" +msgstr "" + +#: ../../shape.rst:395 e50d0793a5eb432bb3c2ca8ea196f4c2 +msgid "For reference only: the owning page." +msgstr "" + +#: ../../shape.rst:397 a88ee833273045f299c35dd3ead948a4 +msgid ":ref:`Page`" +msgstr "" + +#: ../../shape.rst:401 2bad01b347624c13a0c42fc3970fc1b5 +msgid "Copy of the page's height" +msgstr "" + +#: ../../shape.rst:403 ../../shape.rst:409 a1d7f49541cb48ab8a1087635dffe627 +#: ee0e76b01d494167bc804a4bcb20168e +msgid "float" +msgstr "" + +#: ../../shape.rst:407 ae4a0df9e57c45dd99dc05694d71194d +msgid "Copy of the page's width." +msgstr "" + +#: ../../shape.rst:413 36e04a92b85b455f986d86cf86a84b9d +msgid "" +"Accumulated command buffer for **draw methods** since last finish. Every " +"finish method will append its commands to :attr:`Shape.totalcont`." +msgstr "" + +#: ../../shape.rst:415 ../../shape.rst:421 ../../shape.rst:442 +#: 0e691c52a692459fb3651063bbd96fa1 3bd5e87273ea409ba3861ff7a5df3fba +#: 6131e3edacf44d948d0f06ae76196fb4 +msgid "str" +msgstr "" + +#: ../../shape.rst:419 1c7cc423d0b647cc8b976e70594d7e5a +msgid "" +"Accumulated text buffer. All **text insertions** go here. This buffer " +"will be appended to :attr:`totalcont` :meth:`Shape.commit`, so that text " +"will never be covered by drawings in the same Shape." +msgstr "" + +#: ../../shape.rst:425 31e0348adf3949dea03c7e108eec0e9a +msgid "" +"Rectangle surrounding drawings. This attribute is at your disposal and " +"may be changed at any time. Its value is set to ``None`` when a shape is " +"created or committed. Every *draw** method, and " +":meth:`Shape.insert_textbox` update this property (i.e. **enlarge** the " +"rectangle as needed). **Morphing** operations, however " +"(:meth:`Shape.finish`, :meth:`Shape.insert_textbox`) are ignored." +msgstr "" + +#: ../../shape.rst:427 58e3a175f61343beb779d52d6f9a968a +msgid "" +"A typical use of this attribute would be setting " +":attr:`Page.cropbox_position` to this value, when you are creating shapes" +" for later or external use. If you have not manipulated the attribute " +"yourself, it should reflect a rectangle that contains all drawings so " +"far." +msgstr "" + +#: ../../shape.rst:429 bde3111f6fcb4fde8ae6d94e2b784878 +msgid "" +"If you have used morphing and need a rectangle containing the morphed " +"objects, use the following code::" +msgstr "" + +#: ../../shape.rst:436 8b59162d4cdc4453a1a62c884c29d8c5 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../shape.rst:440 70f79c2bf0624368be25e43a4b7a3c3f +msgid "" +"Total accumulated command buffer for draws and text insertions. This will" +" be used by :meth:`Shape.commit`." +msgstr "" + +#: ../../shape.rst:446 2a512a35544e4ff4bc0908226c3f1474 +msgid "" +"For reference only: the current point of the drawing path. It is ``None``" +" at *Shape* creation and after each *finish()* and *commit()*." +msgstr "" + +#: ../../shape.rst:451 5f43e7fa99ee464a8f4e310b6073e35b +msgid "Usage" +msgstr "" + +#: ../../shape.rst:452 a35b85f2df424fe5a8123cbd236b49c9 +msgid "" +"A drawing object is constructed by *shape = page.new_shape()*. After " +"this, as many draw, finish and text insertions methods as required may " +"follow. Each sequence of draws must be finished before the drawing is " +"committed. The overall coding pattern looks like this::" +msgstr "" + +#: ../../shape.rst:471 7d0392c130464a54a962cc95cad3ce9d +msgid "" +"Each *finish()* combines the preceding draws into one logical shape, " +"giving it common colors, line width, morphing, etc. If *closePath* is " +"specified, it will also connect the end point of the last draw with the " +"starting point of the first one." +msgstr "" + +#: ../../shape.rst:473 d909c60fe1834c8eb1936c81f4fe8a7c +msgid "" +"To successfully create compound graphics, let each draw method use the " +"end point of the previous one as its starting point. In the above pseudo " +"code, *draw2* should hence use the returned :ref:`Point` of *draw1* as " +"its starting point. Failing to do so, would automatically start a new " +"path and *finish()* may not work as expected (but it won't complain " +"either)." +msgstr "" + +#: ../../shape.rst:475 fb42b4b00cfd4c8f9bc125398e78d941 +msgid "" +"Text insertions may occur anywhere before the commit (they neither touch " +":attr:`Shape.draw_cont` nor :attr:`Shape.lastPoint`). They are appended " +"to *Shape.totalcont* directly, whereas draws will be appended by " +"*Shape.finish*." +msgstr "" + +#: ../../shape.rst:477 f1ba4537b82747479d0306c9e87f4f4c +msgid "" +"Each *commit* takes all text insertions and shapes and places them in " +"foreground or background on the page -- thus providing a way to control " +"graphical layers." +msgstr "" + +#: ../../shape.rst:479 f54933082b2d4eff99e12a13fc1482a9 +msgid "" +"**Only** *commit* **will update** the page's contents, the other methods " +"are basically string manipulations." +msgstr "" + +#: ../../shape.rst:482 278641dcb46d4baf936c58e97dcd5458 +msgid "Examples" +msgstr "" + +#: ../../shape.rst:483 eb1041462daa4eaea29f2c68f9820833 +msgid "Create a full circle of pieces of pie in different colors::" +msgstr "" + +#: ../../shape.rst:498 eaebaebe3baa4f09947553ff9e26c2a1 +msgid "Here is an example for 5 colors:" +msgstr "" + +#: ../../shape.rst:502 3cf653254d684532a9c3aba1c78bfd12 +msgid "" +"Create a regular n-edged polygon (fill yellow, red border). We use " +"*draw_sector()* only to calculate the points on the circumference, and " +"empty the draw command buffer again before drawing the polygon::" +msgstr "" + +#: ../../shape.rst:517 e093071b33a14f6ca8a50b7e9ef6d3b1 +msgid "Here is the polygon for n = 7:" +msgstr "" + +#: ../../shape.rst:524 32cfdbeb116244d09f20318c9cbaa2ac +msgid "Common Parameters" +msgstr "" + +#: ../../shape.rst:526 e8e32aa90b154bf9b1f9186f60ab584a +msgid "**fontname** (*str*)" +msgstr "" + +#: ../../shape.rst:528 77ba86666bd24c11b1d1d22120f706a7 +msgid "In general, there are three options:" +msgstr "" + +#: ../../shape.rst:530 02905b80e6194c4eacf48669a2b4862d +msgid "" +"Use one of the standard :ref:`Base-14-Fonts`. In this case, *fontfile* " +"**must not** be specified and *\"Helvetica\"* is used if this parameter " +"is omitted, too." +msgstr "" + +#: ../../shape.rst:531 e643b83ac7934c6a8daf143d5e6ea969 +msgid "" +"Choose a font already in use by the page. Then specify its **reference** " +"name prefixed with a slash \"/\", see example below." +msgstr "" + +#: ../../shape.rst:532 1aa96eb291154994b5334cb249b357b8 +msgid "" +"Specify a font file present on your system. In this case choose an " +"arbitrary, but new name for this parameter (without \"/\" prefix)." +msgstr "" + +#: ../../shape.rst:534 42e52261eb524d2984f6a0c4332a2f24 +msgid "" +"If inserted text should re-use one of the page's fonts, use its reference" +" name appearing in :meth:`Page.get_fonts` like so:" +msgstr "" + +#: ../../shape.rst:536 17c14b3525c343518ae06671819af5b8 +msgid "" +"Suppose the font list has the item *[1024, 0, 'Type1', 'NimbusMonL-Bold'," +" 'R366']*, then specify *fontname = \"/R366\", fontfile = None* to use " +"font *NimbusMonL-Bold*." +msgstr "" + +#: ../../shape.rst:540 30272688bae040099e4f10745899bb73 +msgid "**fontfile** (*str*)" +msgstr "" + +#: ../../shape.rst:542 c86a2afe0b8040a3841ecc108e5f0c2a +msgid "" +"File path of a font existing on your computer. If you specify *fontfile*," +" make sure you use a *fontname* **not occurring** in the above list. This" +" new font will be embedded in the PDF upon *doc.save()*. Similar to new " +"images, a font file will be embedded only once. A table of MD5 codes for " +"the binary font contents is used to ensure this." +msgstr "" + +#: ../../shape.rst:546 de497e62ab204c48ae01fa7ac3ed1c32 +msgid "**set_simple** (*bool*)" +msgstr "" + +#: ../../shape.rst:548 8620026ea526446e8ef1ca19f9760737 +msgid "" +"Fonts installed from files are installed as **Type0** fonts by default. " +"If you want to use 1-byte characters only, set this to true. This setting" +" cannot be reverted. Subsequent changes are ignored." +msgstr "" + +#: ../../shape.rst:552 3981f48a75204dc09ff6f422f689ffa4 +msgid "**fontsize** (*float*)" +msgstr "" + +#: ../../shape.rst:554 30ac30c13b44417bbeb1b66ed6d98114 +msgid "Font size of text, see: :data:`fontsize`." +msgstr "" + +#: ../../shape.rst:558 4d0dc80686d94b4c88776c39286aa523 +msgid "**dashes** (*str*)" +msgstr "" + +#: ../../shape.rst:560 47655eea2c2e46188c15bd1c75c4117a +msgid "" +"Causes lines to be drawn dashed. The general format is `\"[n m] p\"` of " +"(up to) 3 floats denoting pixel lengths. ``n`` is the dash length, ``m`` " +"(optional) is the subsequent gap length, and ``p`` (the \"phase\" - " +"**required**, even if 0!) specifies how many pixels should be skipped " +"before the dashing starts. If ``m`` is omitted, it defaults to ``n``." +msgstr "" + +#: ../../shape.rst:562 c003ae76596a4f938a7fd5de9cb061a3 +msgid "" +"A continuous line (no dashes) is drawn with `\"[] 0\"` or ``None`` or " +"`\"\"`. Examples:" +msgstr "" + +#: ../../shape.rst:564 e6cbda6711694eb8b100b5a9792385ef +msgid "" +"Specifying `\"[3 4] 0\"` means dashes of 3 and gaps of 4 pixels following" +" each other." +msgstr "" + +#: ../../shape.rst:565 3391c97c4550433782ec215117a6557d +msgid "`\"[3 3] 0\"` and `\"[3] 0\"` do the same thing." +msgstr "" + +#: ../../shape.rst:567 f068a3fa466545ecaf2d248a20fc2739 +msgid "" +"For (the rather complex) details on how to achieve sophisticated dashing " +"effects, see :ref:`AdobeManual`, page 217." +msgstr "" + +#: ../../shape.rst:571 82aa9894181a4fe3b697261487bbfe7e +msgid "**color / fill** (*list, tuple*)" +msgstr "" + +#: ../../shape.rst:573 3ed2643ec6df4cc28a73683cb286285e +msgid "" +"Stroke and fill colors can be specified as tuples or list of of floats " +"from 0 to 1. These sequences must have a length of 1 (GRAY), 3 (RGB) or 4" +" (CMYK). For GRAY colorspace, a single float instead of the unwieldy " +"*(float,)* or *[float]* is also accepted. Accept (default) or use `None` " +"to not use the parameter." +msgstr "" + +#: ../../shape.rst:575 06bd406c862d430d8527a7a38b17df9b +msgid "" +"To simplify color specification, method *getColor()* in *pymupdf.utils* " +"may be used to get predefined RGB color triples by name. It accepts a " +"string as the name of the color and returns the corresponding triple. The" +" method knows over 540 color names -- see section :ref:`ColorDatabase`." +msgstr "" + +#: ../../shape.rst:577 3313c7d4006745a8b2fc466404404f63 +msgid "" +"Please note that the term *color* usually means \"stroke\" color when " +"used in conjunction with fill color." +msgstr "" + +#: ../../shape.rst:579 0a6d8ba9500941c4bc6aa00352d41451 +msgid "" +"If letting default a color parameter to `None`, then no resp. color " +"selection command will be generated. If *fill* and *color* are both " +"`None`, then the drawing will contain no color specification. But it will" +" still be \"stroked\", which causes PDF's default color \"black\" be used" +" by Adobe Acrobat and all other viewers." +msgstr "" + +#: ../../shape.rst:583 2e5246304d274dfaa37af742928af0ea +msgid "**width** (*float*)" +msgstr "" + +#: ../../shape.rst:585 77b8db9870114d7f91f971f5aaa99512 +msgid "" +"The stroke (\"border\") width of the elements in a shape (if applicable)." +" The default value is 1. The values width, color and fill have the " +"following relationship / dependency:" +msgstr "" + +#: ../../shape.rst:587 bd3f3d47979d4ba6967fc689176d7873 +msgid "" +"If `fill=None` shape elements will always be drawn with a border - even " +"if `color=None` (in which case black is taken) or `width=0` (in which " +"case 1 is taken)." +msgstr "" + +#: ../../shape.rst:588 50e316e85bee43f3ae23b6e8bf36459e +msgid "" +"Shapes without border can only be achieved if a fill color is specified " +"(which may be white of course). To achieve this, specify `width=0`. In " +"this case, the ``color`` parameter is ignored." +msgstr "" + +#: ../../shape.rst:592 dbf0b7aa242944fd9c3dba05b0a5476c +msgid "**stroke_opacity / fill_opacity** (*floats*)" +msgstr "" + +#: ../../shape.rst:594 f10fd732b18e4d06882b251b866820ed +msgid "" +"Both values are floats in range [0, 1]. Negative values or values > 1 " +"will ignored (in most cases). Both set the transparency such that a value" +" 0.5 corresponds to 50% transparency, 0 means invisible and 1 means " +"intransparent. For e.g. a rectangle the stroke opacity applies to its " +"border and fill opacity to its interior." +msgstr "" + +#: ../../shape.rst:596 908ef08674a94047bf811e5db7824042 +msgid "" +"For text insertions (:meth:`Shape.insert_text` and " +":meth:`Shape.insert_textbox`), use *fill_opacity* for the text. At first " +"sight this seems surprising, but it becomes obvious when you look further" +" down to `render_mode`: `fill_opacity` applies to the yellow and " +"`stroke_opacity` applies to the blue color." +msgstr "" + +#: ../../shape.rst:600 807dedb850524343a44713165dc92d74 +msgid "**border_width** (*float*)" +msgstr "" + +#: ../../shape.rst:602 7c05f5b49a074002a9a8e24fa16e09c0 +msgid "" +"Set the border width for text insertions. New in v1.14.9. Relevant only " +"if the render mode argument is used with a value greater zero." +msgstr "" + +#: ../../shape.rst:606 e8f74369b5414cf39c02c7bdc84d0278 +msgid "**render_mode** (*int*)" +msgstr "" + +#: ../../shape.rst:608 07e11204dc2b4479bd2e65c3e33aad8d +msgid "" +"*New in version 1.14.9:* Integer in `range(8)` which controls the text " +"appearance (:meth:`Shape.insert_text` and :meth:`Shape.insert_textbox`). " +"See page 246 in :ref:`AdobeManual`. New in v1.14.9. These methods now " +"also differentiate between fill and stroke colors." +msgstr "" + +#: ../../shape.rst:610 69a9ed429520483291966e04bc134827 +msgid "" +"For default 0, only the text fill color is used to paint the text. For " +"backward compatibility, using the *color* parameter instead also works." +msgstr "" + +#: ../../shape.rst:611 92f8238398a445de9ac634455065140b +msgid "" +"For render mode 1, only the border of each glyph (i.e. text character) is" +" drawn with a thickness as set in argument *border_width*. The color " +"chosen in the *color* argument is taken for this, the *fill* parameter is" +" ignored." +msgstr "" + +#: ../../shape.rst:612 6dd3e1055d934657ae6fbe17f98f1b7b +msgid "" +"For render mode 2, the glyphs are filled and stroked, using both color " +"parameters and the specified border width. You can use this value to " +"simulate **bold text** without using another font: choose the same value " +"for *fill* and *color* and an appropriate value for *border_width*." +msgstr "" + +#: ../../shape.rst:613 44ab50cc9488478cbafcd5e8d9859763 +msgid "" +"For render mode 3, the glyphs are neither stroked nor filled: the text " +"becomes invisible." +msgstr "" + +#: ../../shape.rst:615 e59e76826913438ea50a2cc075ab7cd2 +msgid "" +"The following examples use border_width=0.3, together with a fontsize of " +"15. Stroke color is blue and fill color is some yellow." +msgstr "" + +#: ../../shape.rst:621 082047ee68a54ee3ae920d7817052247 +msgid "**miter_limit** (*float*)" +msgstr "" + +#: ../../shape.rst:623 5df811fb349949d38e4160fbc8097077 +msgid "" +"A float specifying the maximum acceptable value of the quotient `miter-" +"length / line-width` (\"miter quotient\"). Used in text output methods. " +"This is only relevant for non-zero render mode values -- then, characters" +" are written with border lines (i.e. \"stroked\")." +msgstr "" + +#: ../../shape.rst:625 fcdf5a0b4b05400fabcc68e71bbfe4a3 +msgid "" +"If two lines stroking some character meet at a sharp (<= 90°) angle and " +"the line width is large enough, then \"spikes\" may become visible -- " +"causing an ugly appearance as shown below. For more background, see page " +"126 of the :ref:`AdobeManual`." +msgstr "" + +#: ../../shape.rst:627 61ef12d76d4c44a5971fbe5f377e42cd +msgid "" +"For instance, when joins meet at 90°, then the miter length is ``sqrt(2) " +"* line-width``, so the miter quotient is ``sqrt(2)``." +msgstr "" + +#: ../../shape.rst:629 6e57edd425af46cab1f0544ea9fb09d6 +msgid "" +"If ``miter_limit`` is exceeded, then all joins with a larger qotient will" +" appear as beveled (\"butt\" appearance)." +msgstr "" + +#: ../../shape.rst:631 1b9c88426fad4881993b42f8df4e29ba +msgid "" +"The default value 1 (and any smaller value) will ensure that all joins " +"are rendered as a butt. A value of ``None`` will use the PDF default " +"value." +msgstr "" + +#: ../../shape.rst:633 6c5240d22b91424eb8a99f3f6cdd9e61 +msgid "Example text showing spikes (``miter_limit=None``):" +msgstr "" + +#: ../../shape.rst:637 22b2f2ab87704749865bf8654f86f486 +msgid "Example text suppressing spikes (``miter_limit=1``):" +msgstr "" + +#: ../../shape.rst:643 ef72de748a3241f494828889b778a5c3 +msgid "**overlay** (*bool*)" +msgstr "" + +#: ../../shape.rst:645 1a50148614e94b0f9e09a72b981ba540 +msgid "Causes the item to appear in foreground (default) or background." +msgstr "" + +#: ../../shape.rst:649 f9c30f5c9a0245e5acbf5d0126b40609 +msgid "**morph** (*sequence*)" +msgstr "" + +#: ../../shape.rst:651 5029b952e1be402ea4aea727b6c5334a +msgid "" +"Causes \"morphing\" of either a shape, created by the *draw*()* methods, " +"or the text inserted by page methods *insert_textbox()* / " +"*insert_text()*. If not ``None``, it must be a pair *(fixpoint, matrix)*," +" where *fixpoint* is a :ref:`Point` and *matrix* is a :ref:`Matrix`. The " +"matrix can be anything except translations, i.e. *matrix.e == matrix.f ==" +" 0* must be true. The point is used as a fixed point for the matrix " +"operation. For example, if *matrix* is a rotation or scaling, then " +"*fixpoint* is its center. Similarly, if *matrix* is a left-right or up-" +"down flip, then the mirroring axis will be the vertical, respectively " +"horizontal line going through *fixpoint*, etc." +msgstr "" + +#: ../../shape.rst:653 b02e3c71c8f64fc68a15b90bf3c129ea +msgid "" +"Several methods contain checks whether the to be inserted items will " +"actually fit into the page (like :meth:`Shape.insert_text`, or " +":meth:`Shape.draw_rect`). For the result of a morphing operation there is" +" however no such guaranty: this is entirely the programmer's " +"responsibility." +msgstr "" + +#: ../../shape.rst:657 62281c77ca8f47188d63f20f3712a5b0 +msgid "**lineCap (deprecated: \"roundCap\")** (*int*)" +msgstr "" + +#: ../../shape.rst:659 cd5b630baa744b1189ae847e6e8286fd +msgid "" +"Controls the look of line ends. The default value 0 lets each line end at" +" exactly the given coordinate in a sharp edge. A value of 1 adds a semi-" +"circle to the ends, whose center is the end point and whose diameter is " +"the line width. Value 2 adds a semi-square with an edge length of line " +"width and a center of the line end." +msgstr "" + +#: ../../shape.rst:661 6026a44a326145afa3e7a6f376a1bbf6 +msgid "*Changed in version 1.14.15*" +msgstr "" + +#: ../../shape.rst:665 2e6dced4dc3b49d0bfc6d15aba362eba +msgid "**lineJoin** (*int*)" +msgstr "" + +#: ../../shape.rst:667 66fbb0a47a7648efa567adac178985a1 +msgid "" +"*New in version 1.14.15:* Controls the way how line connections look " +"like. This may be either as a sharp edge (0), a rounded join (1), or a " +"cut-off edge (2, \"butt\")." +msgstr "" + +#: ../../shape.rst:671 82bab1c6af0a4d169a36b68529a2ab41 +msgid "**closePath** (*bool*)" +msgstr "" + +#: ../../shape.rst:673 991347c321464275b6f78b81a2f89e09 +msgid "" +"Causes the end point of a drawing to be automatically connected with the " +"starting point (by a straight line)." +msgstr "" + +#: ../../footer.rst:46 703f5e6cdc364cd898823615d897ea50 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/story-class.mo b/docs/locales/ko/LC_MESSAGES/story-class.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/story-class.po b/docs/locales/ko/LC_MESSAGES/story-class.po new file mode 100644 index 000000000..bb4fb83b9 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/story-class.po @@ -0,0 +1,852 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 4450760445994835a9f3775bc9c6f0d5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 418de775a4634f88837f5ac77a451b10 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 497384ace3f84fa19412dac9da22148c +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../story-class.rst:7 8fafdeea9e5940c28193c7e4fca942c5 +msgid "Story" +msgstr "" + +#: ../../story-class.rst:11 ce4d16eaf6e64bc59264c0a812630ed7 +msgid "New in v1.21.0" +msgstr "" + +#: ../../story-class.rst:14 9b7cd17b7b8b43e89336e41091ffd8db +msgid "**Method / Attribute**" +msgstr "" + +#: ../../story-class.rst:14 306881cbd8ff40e98c769bdad361af16 +msgid "**Short Description**" +msgstr "" + +#: ../../story-class.rst:16 87f3b530a2174677808e6a73c8c7c3d4 +msgid ":meth:`Story.reset`" +msgstr "" + +#: ../../story-class.rst:16 986c1b4812b34f7b90447c9b85c00515 +msgid "\"rewind\" story output to its beginning" +msgstr "" + +#: ../../story-class.rst:17 acfb8788456043e98e066d8b7f232242 +msgid ":meth:`Story.place`" +msgstr "" + +#: ../../story-class.rst:17 71dd7b0f8852455eb72f274d589300e5 +msgid "compute story content to fit in provided rectangle" +msgstr "" + +#: ../../story-class.rst:18 f37a1cf6b3d447fcb752828907626437 +msgid ":meth:`Story.draw`" +msgstr "" + +#: ../../story-class.rst:18 44a1f29ca77c4ed281ff70a784a28d92 +msgid "write the computed content to current page" +msgstr "" + +#: ../../story-class.rst:19 fc8ae71a62484786b2548b2f0715d3e7 +msgid ":meth:`Story.element_positions`" +msgstr "" + +#: ../../story-class.rst:19 78ea4b34e9924ea0b59ec0f387db8d9f +msgid "callback function logging currently processed story content" +msgstr "" + +#: ../../story-class.rst:20 5703135b6e844a53859347624fb3ba8e +msgid ":attr:`Story.body`" +msgstr "" + +#: ../../story-class.rst:20 8074d90f9db0473c9f78fde5598d87a0 +msgid "the story's underlying :htmlTag:`body`" +msgstr "" + +#: ../../story-class.rst:21 b7007d57a5f0478da333d3b7defa34da +msgid ":meth:`Story.write`" +msgstr "" + +#: ../../story-class.rst:21 529c592a049543488f766ea64af4aef6 +msgid "places and draws Story to a DocumentWriter" +msgstr "" + +#: ../../story-class.rst:22 48189b1970a944249727deeaab30767a +msgid ":meth:`Story.write_stabilized`" +msgstr "" + +#: ../../story-class.rst:22 c71c16dc9e434b81ae25d7e81791842c +msgid "iterative layout of html content to a DocumentWriter" +msgstr "" + +#: ../../story-class.rst:23 926f2a550c3b4cb3856a305b4c499249 +msgid ":meth:`Story.write_with_links`" +msgstr "" + +#: ../../story-class.rst:23 ea4c862bdeb84b94a80868a8fa1d6d3c +msgid "like `write()` but also creates PDF links" +msgstr "" + +#: ../../story-class.rst:24 355d937b5c4a4d2ea430c50ed160c9a9 +msgid ":meth:`Story.write_stabilized_with_links`" +msgstr "" + +#: ../../story-class.rst:24 ff1a2e0bd3b942a9825101dc74641ab4 +msgid "like `write_stabilized()` but also creates PDF links" +msgstr "" + +#: ../../story-class.rst:25 98afa53a01d5479fb9a84e798fc75af0 +msgid ":meth:`Story.fit`" +msgstr "" + +#: ../../story-class.rst:25 ../../story-class.rst:252 +#: 08f697738e6841388fafdd24e5a00d7d f9fb3d7fc30744c5a4bcf19dc86ef076 +msgid "Finds optimal rect that contains the story `self`." +msgstr "" + +#: ../../story-class.rst:26 071db5186e824d7fad400d8f4d4621cc +msgid ":meth:`Story.fit_scale`" +msgstr "" + +#: ../../story-class.rst:27 29faf46f8f304213baacc284272e99ba +msgid ":meth:`Story.fit_height`" +msgstr "" + +#: ../../story-class.rst:28 2063bec0fd3d4a00af6338d93189ee72 +msgid ":meth:`Story.fit_width`" +msgstr "" + +#: ../../story-class.rst:31 35c3d645808f404fb3d0ac4e2995d443 +msgid "**Class API**" +msgstr "" + +#: ../../story-class.rst:37 49eb5559ce2b4b13a47f5ad496e9d111 +msgid "" +"Create a **story**, optionally providing HTML and CSS source. The HTML is" +" parsed, and held within the Story as a DOM (Document Object Model)." +msgstr "" + +#: ../../story-class.rst:40 bf2f904ab1c24ea9aa46205eca2718ea +msgid "" +"This structure may be modified: content (text, images) may be added, " +"copied, modified or removed by using methods of the :ref:`Xml` class." +msgstr "" + +#: ../../story-class.rst:43 1e855bc531eb4f55a7c51053f068d9ab +msgid "" +"When finished, the **story** can be written to any device; in typical " +"usage the device may be provided by a :ref:`DocumentWriter` to make new " +"pages." +msgstr "" + +#: ../../story-class.rst:46 c090bdee02db4f288f710c647c45c161 +msgid "Here are some general remarks:" +msgstr "" + +#: ../../story-class.rst:48 3110c6455944434ca9ae1a71696896a3 +msgid "" +"The :ref:`Story` constructor parses and validates the provided HTML to " +"create the DOM." +msgstr "" + +#: ../../story-class.rst:49 4d9f69c5792d489b85a3b9d41d525d79 +msgid "" +"PyMuPDF provides a number of ways to manipulate the HTML source by " +"providing access to the *nodes* of the underlying DOM. Documents can be " +"completely built from ground up programmatically, or the existing DOM can" +" be modified pretty arbitrarily. For details of this interface, please " +"see the :ref:`Xml` class." +msgstr "" + +#: ../../story-class.rst:54 ac1a27756a8945c8b1dbf9b6e9da921b +msgid "" +"If no (or no more) changes to the DOM are required, the story is ready to" +" be laid out and to be fed to a series of devices (typically devices " +"provided by a :ref:`DocumentWriter` to produce new pages)." +msgstr "" + +#: ../../story-class.rst:57 43fe3dfc3cf348098a32b05485bde654 +msgid "" +"The next step is to place the story and write it out. This can either be " +"done directly, by looping around calling `place()` and `draw()`, or " +"alternatively, the looping can handled for you using the `write()` or " +"`write_stabilised()` methods. Which method you choose is largely a matter" +" of taste." +msgstr "" + +#: ../../story-class.rst:63 f4b32731d97b4d2a84d306de1e33820a +msgid "To work in the first of these styles, the following loop should be used:" +msgstr "" + +#: ../../story-class.rst:65 1ae96b31b4494e6b907dcec02c2fdea5 +msgid "" +"Obtain a suitable device to write to; typically by requesting a new, " +"empty page from a :ref:`DocumentWriter`." +msgstr "" + +#: ../../story-class.rst:68 73b9d54af347493b94d1d93c72bb7e84 +msgid "" +"Determine one or more rectangles on the page, that should receive " +"**story** data. Note that not every page needs to have the same set of " +"rectangles." +msgstr "" + +#: ../../story-class.rst:71 f486ccb350994671b7e2380f3a839e86 +msgid "" +"Pass each rectangle to the **story** to place it, learning what part of " +"that rectangle has been filled, and whether there is more story data that" +" did not fit. This step can be repeated several times with adjusted " +"rectangles until the caller is happy with the results." +msgstr "" + +#: ../../story-class.rst:76 ff1738fc7d2d4f969c58dcf423696458 +msgid "" +"Optionally, at this point, we can request details of where interesting " +"items have been placed, by calling the `element_positions()` method. " +"Items are deemed to be interesting if their integer `heading` attribute " +"is a non-zero (corresponding to HTML tags :htmlTag:`h1` - :htmlTag:`h6`)," +" if their `id` attribute is not `None` (corresponding to HTML tag " +":htmlTag:`id`), or if their `href` attribute is not `None` (responding to" +" HTML tag :htmlTag:`href`). This can conveniently be used for automatic " +"generation of a Table of Contents, an index of images or the like." +msgstr "" + +#: ../../story-class.rst:85 b921780cdb2e45e389e9a40859c21b25 +msgid "Next, draw that rectangle out to the device with the `draw()` method." +msgstr "" + +#: ../../story-class.rst:86 7c8805ef770e4dde8806474fd720a74d +msgid "" +"If the most recent call to `place()` indicated that all the story data " +"had fitted, stop now." +msgstr "" + +#: ../../story-class.rst:88 c13e1999d6654790a96926efb47a4809 +msgid "" +"Otherwise, we can loop back. If there are more rectangles to be placed on" +" the current device (page), we jump back to step 3 - if not, we jump back" +" to step 1 to get a new device." +msgstr "" + +#: ../../story-class.rst:91 4038804e871b4c1bbe32c9a13c9ec423 +msgid "" +"Alternatively, in the case where you are using a :ref:`DocumentWriter`, " +"the `write()` or `write_stabilized()` methods can be used. These handle " +"all the looping for you, in exchange for being provided with callbacks " +"that control the behaviour (notably a callback that enumerates the " +"rectangles/pages to use)." +msgstr "" + +#: ../../story-class.rst:96 ee657bc17cb9479098b79a0775f10c3a +msgid "" +"Which part of the **story** will land on which rectangle / which page, is" +" fully under control of the :ref:`Story` object and cannot be predicted." +msgstr "" + +#: ../../story-class.rst:98 2373c29f02c449119f61da189826bc09 +msgid "" +"Images may be part of a **story**. They will be placed together with any " +"surrounding text." +msgstr "" + +#: ../../story-class.rst:99 30316b2b832342268461f6c7d74a9197 +msgid "" +"Multiple stories may - independently from each other - write to the same " +"page. For example, one may have separate stories for page header, page " +"footer, regular text, comment boxes, etc." +msgstr "" + +#: ../../story-class.rst 3bc54fe727d84b0fb5ec6f5a505593d7 +#: 632479f010e74a7fa705e9873fc201e2 6bae93af6e1f4bcd9f975e3dbf237a8f +#: 76b91680f9494dcda1b320b971f127f3 835ef3aac08946a7b21892dd5d446841 +#: 9faeb1de8c834831b2eefc6ba27d02c6 a7f1db20a98f4acd8ac3a50281de1d54 +#: b092aa952799492ab41859def37221e6 c431629c4269486e838a6416b26f8a06 +#: ecb562eb477f4178bbbac8624595e806 +msgid "Parameters" +msgstr "" + +#: ../../story-class.rst:103 7a7770ae27444f9cbae197749eec78ab +msgid "" +"HTML source code. If omitted, a basic minimum is generated (see below). " +"If provided, not a complete HTML document is needed. The in-built source " +"parser will forgive (many / most) HTML syntax errors and also accepts " +"HTML fragments like `\"Hello, World!\"`." +msgstr "" + +#: ../../story-class.rst:108 998745be0a874eeb8f4d73e3411eb0cc +msgid "CSS source code. If provided, must contain valid CSS specifications." +msgstr "" + +#: ../../story-class.rst:109 2bfac39f7a0745239025903a70202169 +msgid "the default text font size." +msgstr "" + +#: ../../story-class.rst:110 78219d1129fc40ab9949caef213ed7a5 +msgid "" +"an :ref:`Archive` from which to load resources for rendering. Currently " +"supported resource types are images and text fonts. If omitted, the story" +" will not try to look up any such data and may thus produce incomplete " +"output. .. note:: Instead of an actual archive, valid arguments for " +"**creating** an :ref:`Archive` can also be provided -- in which case an " +"archive will temporarily be constructed. So, instead of `story = " +"pymupdf.Story(archive=pymupdf.Archive(\"myfolder\"))`, one can also " +"shorter write `story = pymupdf.Story(archive=\"myfolder\")`." +msgstr "" + +#: ../../story-class.rst:110 4050936d618a42da8eecf6ab4e063d8b +msgid "" +"an :ref:`Archive` from which to load resources for rendering. Currently " +"supported resource types are images and text fonts. If omitted, the story" +" will not try to look up any such data and may thus produce incomplete " +"output." +msgstr "" + +#: ../../story-class.rst:112 dbafa089e71b405c8505fe068f111435 +msgid "" +"Instead of an actual archive, valid arguments for **creating** an " +":ref:`Archive` can also be provided -- in which case an archive will " +"temporarily be constructed. So, instead of `story = " +"pymupdf.Story(archive=pymupdf.Archive(\"myfolder\"))`, one can also " +"shorter write `story = pymupdf.Story(archive=\"myfolder\")`." +msgstr "" + +#: ../../story-class.rst:116 38e199a574974c68a5789c3487298702 +msgid "" +"Calculate that part of the story's content, that will fit in the provided" +" rectangle. The method maintains a pointer which part of the story's " +"content has already been written and upon the next invocation resumes " +"from that pointer's position." +msgstr "" + +#: ../../story-class.rst:118 9204c5de62594877a0b9554fe46dd00d +msgid "" +"layout the current part of the content to fit into this rectangle. This " +"must be a sub-rectangle of the page's :ref:`MediaBox`." +msgstr "" + +#: ../../story-class.rst f63a283a6c88499ead37123b58293124 +msgid "Return type" +msgstr "" + +#: ../../story-class.rst 94bc5676fca747a28908e39b08f758dd +msgid "Returns" +msgstr "" + +#: ../../story-class.rst:121 cfc9d87ae2c0427fb812923a5380f63e +msgid "" +"a bool (int) `more` and a rectangle `filled`. If `more == 0`, all content" +" of the story has been written, otherwise more is waiting to be written " +"to subsequent rectangles / pages. Rectangle `filled` is the part of " +"`where` that has actually been filled." +msgstr "" + +#: ../../story-class.rst:125 6813b9d6cf0a4992aac607d827be601c +msgid "Write the content part prepared by :meth:`Story.place` to the page." +msgstr "" + +#: ../../story-class.rst:127 883fc316b5194fbebc4f2e1002d07a4a +msgid "" +"the :ref:`Device` created by `dev = writer.begin_page(mediabox)`. The " +"device knows how to call all MuPDF functions needed to write the content." +msgstr "" + +#: ../../story-class.rst:128 15d1012c1f36445b97b2245366f1fe29 +msgid "" +"a matrix for transforming content when writing to the page. An example " +"may be writing rotated text. The default means no transformation (i.e. " +"the :ref:`Identity` matrix)." +msgstr "" + +#: ../../story-class.rst:132 a4b6e0a215c74c77bc15ee4a585a753c +msgid "" +"Let the Story provide positioning information about certain HTML elements" +" once their place on the current page has been computed - i.e. invoke " +"this method **directly after** :meth:`Story.place`." +msgstr "" + +#: ../../story-class.rst:134 132b23607fe24fd4b386d921fa955b1f +msgid "" +"*Story* will pass position information to *function*. This information " +"can for example be used to generate a Table of Contents." +msgstr "" + +#: ../../story-class.rst:136 9b62cdc7c4734ce9bd97fd06ae689ced +msgid "" +"a Python function accepting an :class:`ElementPosition` object. It will " +"be invoked by the Story object to process positioning information. The " +"function **must** be a callable accepting exactly one argument." +msgstr "" + +#: ../../story-class.rst:137 95c635a4d01544919b451835ba7cfb5e +msgid "" +"an optional dictionary with any **additional** information that should be" +" added to the :class:`ElementPosition` instance passed to `function`. " +"Like for example the current output page number. Every key in this " +"dictionary must be a string that conforms to the rules for a valid Python" +" identifier. The complete set of information is explained below." +msgstr "" + +#: ../../story-class.rst:146 d1a8ec5e26534fb08b5644c78bdd0f35 +msgid "Rewind the story's document to the beginning for starting over its output." +msgstr "" + +#: ../../story-class.rst:150 99e9fa88415b44008dfa1a9212359a94 +msgid "" +"The :htmlTag:`body` part of the story's DOM. This attribute contains the " +":ref:`Xml` node of :htmlTag:`body`. All relevant content for PDF " +"production is contained between \"\" and \"\"." +msgstr "" + +#: ../../story-class.rst:154 41b172bf34d0440fadc8322fad80b439 +msgid "" +"Places and draws Story to a `DocumentWriter`. Avoids the need for calling" +" code to implement a loop that calls `Story.place()` and `Story.draw()` " +"etc, at the expense of having to provide at least the `rectfn()` " +"callback." +msgstr "" + +#: ../../story-class.rst:159 f45d6bee9274444588f63a947cb04ff9 +msgid "a `DocumentWriter` or None." +msgstr "" + +#: ../../story-class.rst:160 0a82dd0477cc4e6aba46d8bde1ff66cb +msgid "" +"a callable taking `(rect_num: int, filled: Rect)` and returning " +"`(mediabox, rect, ctm)`: * mediabox: None or rect for new page. * rect: " +"The next rect into which content should be placed. * ctm: None or a " +"`Matrix`." +msgstr "" + +#: ../../story-class.rst:160 09db40fd97944cc3bdc056101682d345 +msgid "" +"a callable taking `(rect_num: int, filled: Rect)` and returning " +"`(mediabox, rect, ctm)`:" +msgstr "" + +#: ../../story-class.rst:163 ../../story-class.rst:204 +#: 195039e86a0a453b80a1947c0d982191 cc6afdff529d4b18bf96bab124b071b0 +msgid "mediabox: None or rect for new page." +msgstr "" + +#: ../../story-class.rst:164 ../../story-class.rst:205 +#: 25c7020d98834950b5d94ff65444d7dd 66c0ba4ebccc4299ab74abd2a830ae53 +msgid "rect: The next rect into which content should be placed." +msgstr "" + +#: ../../story-class.rst:165 15dd25041536413eb3b45f6c0546d4c9 +msgid "ctm: None or a `Matrix`." +msgstr "" + +#: ../../story-class.rst:166 00bf180b2a0c4c8d85c03815119541f1 +msgid "" +"None, or a callable taking `(position: ElementPosition)`: * position:" +" An `ElementPosition` with an extra `.page_num` member. Typically " +"called multiple times as we generate elements that are headings or have " +"an id." +msgstr "" + +#: ../../story-class.rst:166 25928f4a5c5f491488b15662e26bc608 +msgid "None, or a callable taking `(position: ElementPosition)`:" +msgstr "" + +#: ../../story-class.rst:168 2dd05e9f8b994f32855896af88fa138a +msgid "position:" +msgstr "" + +#: ../../story-class.rst:169 e39ff5907e3f417a840c59e64a0ce9d8 +msgid "An `ElementPosition` with an extra `.page_num` member." +msgstr "" + +#: ../../story-class.rst:170 4892cafe0f7d41f0985e89860b77823a +msgid "" +"Typically called multiple times as we generate elements that are headings" +" or have an id." +msgstr "" + +#: ../../story-class.rst:172 3fa53b922faa4eda8ba2cba1ac636ca9 +msgid "" +"None, or a callable taking `(page_num, mediabox, dev, after)`; called at " +"start (`after=0`) and end (`after=1`) of each page." +msgstr "" + +#: ../../story-class.rst:178 dd5221f0ed8740b9870aee56024e5b7b +msgid "" +"Static method that does iterative layout of html content to a " +"`DocumentWriter`." +msgstr "" + +#: ../../story-class.rst:181 30078c22673b4583b6668ac47bc366ff +msgid "" +"For example this allows one to add a table of contents section while " +"ensuring that page numbers are patched up until stable." +msgstr "" + +#: ../../story-class.rst:184 c06d6f0e11c445a79282ea1b2b0ad535 +msgid "" +"Repeatedly creates a new `Story` from `(contentfn(), user_css, em, " +"archive)` and lays it out with internal call to `Story.write()`; uses a " +"None writer and extracts the list of `ElementPosition`'s which is passed " +"to the next call of `contentfn()`." +msgstr "" + +#: ../../story-class.rst:190 44779b3ded2c4ee6874e7b1ae2bff004 +msgid "" +"When the html from `contentfn()` becomes unchanged, we do a final " +"iteration using `writer`." +msgstr "" + +#: ../../story-class.rst:193 0f2c4d433e064304a49d4bd0a6ebfe73 +msgid "A `DocumentWriter`." +msgstr "" + +#: ../../story-class.rst:195 368d195d03b147fc837acd54849c93e0 +msgid "" +"A function taking a list of `ElementPositions` and returning a string " +"containing html. The returned html can depend on the list of positions, " +"for example with a table of contents near the start." +msgstr "" + +#: ../../story-class.rst:200 1cf1064d178a4eb5abc44f35d1b26213 +msgid "" +"A callable taking `(rect_num: int, filled: Rect)` and returning " +"`(mediabox, rect, ctm)`: * mediabox: None or rect for new page. * rect: " +"The next rect into which content should be placed. * ctm: A `Matrix`." +msgstr "" + +#: ../../story-class.rst:201 9c7835ef50c04228a8a373880c57f7ec +msgid "" +"A callable taking `(rect_num: int, filled: Rect)` and returning " +"`(mediabox, rect, ctm)`:" +msgstr "" + +#: ../../story-class.rst:206 ee9f39495b5e42c8abe6db31752b059c +msgid "ctm: A `Matrix`." +msgstr "" + +#: ../../story-class.rst:207 0e5bb33450b440519eaa4678352a268d +msgid "" +"None, or a callable taking `(page_num, medibox, dev, after)`; called at " +"start (`after=0`) and end (`after=1`) of each page." +msgstr "" + +#: ../../story-class.rst:212 1e4fd7df55fb49df898e449e0f6cc1d4 +msgid "" +"If true, we add unique ids to all header tags that don't already have an " +"id. This can help automatic generation of tables of contents." +msgstr "" + +#: ../../story-class.rst:216 5855dd1c0eb74ba680d81ec3bd7ab855 +msgid "Returns:" +msgstr "" + +#: ../../story-class.rst:217 b8d9d14cc3f7420cbfcb12cdd3784c27 +msgid "None." +msgstr "" + +#: ../../story-class.rst:221 22ec8dffec4842c2b36b31e44c148e9b +msgid "" +"Similar to `write()` except that we don't have a `writer` arg and we " +"return a PDF `Document` in which links have been created for each " +"internal html link." +msgstr "" + +#: ../../story-class.rst:227 cb292a6045f4454589078e45beb372b8 +msgid "" +"Similar to `write_stabilized()` except that we don't have a `writer` arg " +"and instead return a PDF `Document` in which links have been created for " +"each internal html link." +msgstr "" + +#: ../../story-class.rst:233 79e6df9feb764d49bb6c4880d7985f6e +msgid "The result from a `Story.fit*()` method." +msgstr "" + +#: ../../story-class.rst:235 2a76b4161e5f46ca816faca601040d90 +msgid "Members:" +msgstr "" + +#: ../../story-class.rst:237 035ed3847947402d887364c7d5c447e9 +msgid "`big_enough`:" +msgstr "" + +#: ../../story-class.rst:238 bf717872d31642deaf8eb1605a3012a6 +msgid "`True` if the fit succeeded." +msgstr "" + +#: ../../story-class.rst:239 7320376b01af4fa9a8fa3ae295bbda83 +msgid "`filled`:" +msgstr "" + +#: ../../story-class.rst:240 17cc4e2057bd41cc8e2633814392b385 +msgid "From the last call to `Story.place()`." +msgstr "" + +#: ../../story-class.rst:241 e24cc834373e411587bbb7bfa0414333 +msgid "`more`:" +msgstr "" + +#: ../../story-class.rst:242 4a3e937b059041a7b3a20e0d429f503c +msgid "`False` if the fit succeeded." +msgstr "" + +#: ../../story-class.rst:243 bbbe1925cdb245ad87cc43c74cf72b73 +msgid "`numcalls`:" +msgstr "" + +#: ../../story-class.rst:244 9e3bcaa3dbf8478a98ff6e4241532bb6 +msgid "Number of calls made to `self.place()`." +msgstr "" + +#: ../../story-class.rst:245 169f3c8877c640d8aa7fb28ee47ab520 +msgid "`parameter`:" +msgstr "" + +#: ../../story-class.rst:246 985d429bb06144c6bcfa903f4c388ebf +msgid "The successful parameter value, or the largest failing value." +msgstr "" + +#: ../../story-class.rst:247 42a31d9fef9248d9a8d194383c59191d +msgid "`rect`:" +msgstr "" + +#: ../../story-class.rst:248 902774936ea0439f89fd8ff5b6dfc8e4 +msgid "The rect created from `parameter`." +msgstr "" + +#: ../../story-class.rst:254 ../../story-class.rst:282 +#: ../../story-class.rst:304 ../../story-class.rst:325 +#: 696c11bfa76d489093846a7c247a4851 853a35b41b0d4e92a0abce39320b0d0b +#: 8e63b26bcbe146e994f59d0598d8ae81 f109c3abb97c461c90ef5083439ae6b7 +msgid "Returns a `Story.FitResult` instance." +msgstr "" + +#: ../../story-class.rst:256 18ef28643cd147a3a66b0e495f27b656 +msgid "" +"On success, the last call to `self.place()` will have been with the " +"returned rectangle, so `self.draw()` can be used directly." +msgstr "" + +#: ../../story-class.rst:259 fcc258b789cf4618a282896268872c2f +msgid "" +"A callable taking a floating point `parameter` and returning a " +"`pymupdf.Rect()`. If the rect is empty, we assume the story will not fit " +"and do not call `self.place()`. Must guarantee that `self.place()` " +"behaves monotonically when given rect `fn(parameter`) as `parameter` " +"increases. This usually means that both width and height increase or stay" +" unchanged as `parameter` increases." +msgstr "" + +#: ../../story-class.rst:260 c6955c50c2ba4885973d0c3f04c0e2c5 +msgid "" +"A callable taking a floating point `parameter` and returning a " +"`pymupdf.Rect()`. If the rect is empty, we assume the story will not fit " +"and do not call `self.place()`." +msgstr "" + +#: ../../story-class.rst:264 d7e59ae0c80245ab9c009b98fd8b45c0 +msgid "" +"Must guarantee that `self.place()` behaves monotonically when given rect " +"`fn(parameter`) as `parameter` increases. This usually means that both " +"width and height increase or stay unchanged as `parameter` increases." +msgstr "" + +#: ../../story-class.rst:268 11dc2ac2cfa948f9b5a1f9820e2552e5 +msgid "Minimum parameter to consider; `None` for -infinity." +msgstr "" + +#: ../../story-class.rst:270 318cf2242b354dcfaf2261319967a6e2 +msgid "Maximum parameter to consider; `None` for +infinity." +msgstr "" + +#: ../../story-class.rst:272 c04b8320d63941998719b704f3829f97 +msgid "Maximum error in returned `parameter`." +msgstr "" + +#: ../../story-class.rst:274 ../../story-class.rst:295 +#: ../../story-class.rst:317 ../../story-class.rst:338 +#: 04ed040f1f414b7c8386ffe687178265 470693ef9de2469a8028547ee1f19ddd +#: 8b4b77e4979541f0a4121fe75de9674d aed40072033645edb4aa0fbcdb14816f +msgid "If true we output diagnostics." +msgstr "" + +#: ../../story-class.rst:279 44286dc4a32a44f390cb28a04e6cf752 +msgid "" +"Finds smallest value `scale` in range `scale_min..scale_max` where `scale" +" * rect` is large enough to contain the story `self`." +msgstr "" + +#: ../../story-class.rst:284 ../../story-class.rst:306 +#: bc70968d12674cddba38101f99cb1fbd fdda159f6afc401ebac759335fb3dfec +msgid "width of rect." +msgstr "" + +#: ../../story-class.rst:286 ../../story-class.rst:327 +#: 3ee0663bbd3d4788b49acf35a5a11b7e b17196b122de4057b9427222b9a3e7f4 +msgid "height of rect." +msgstr "" + +#: ../../story-class.rst:288 198e10d6fd8b4243a6c9e1051223c22e +msgid "Minimum scale to consider; must be >= 0." +msgstr "" + +#: ../../story-class.rst:290 8fb7f93b830e4d5bb7de7c76d7c7e540 +msgid "Maximum scale to consider, must be >= scale_min or `None` for infinite." +msgstr "" + +#: ../../story-class.rst:293 f423b2cdc42a427f978455fb05d8b7df +msgid "Maximum error in returned scale." +msgstr "" + +#: ../../story-class.rst:300 9dc7b774a8d94c71b557ecfbb9976265 +msgid "" +"Finds smallest height in range `height_min..height_max` where a rect with" +" size `(width, height)` is large enough to contain the story `self`." +msgstr "" + +#: ../../story-class.rst:308 85ff87d9747942168779a4df514ba339 +msgid "Minimum height to consider; must be >= 0." +msgstr "" + +#: ../../story-class.rst:310 912d526c91f243f18cb6395c816ca9bc +msgid "Maximum height to consider, must be >= height_min or `None` for infinite." +msgstr "" + +#: ../../story-class.rst:313 ../../story-class.rst:334 +#: c1f7875eb4ae4239a6376368ebf24647 c7cca120f409456097470b299bdfb49a +msgid "`(x0, y0)` of rect." +msgstr "" + +#: ../../story-class.rst:315 f67d83462abe4bbcaff9a80b51a5978f +msgid "Maximum error in returned height." +msgstr "" + +#: ../../story-class.rst:322 acf77aa0831f4a0386314816cc6f06aa +msgid "" +"Finds smallest width in range `width_min..width_max` where a rect with " +"size `(width, height)` is large enough to contain the story `self`." +msgstr "" + +#: ../../story-class.rst:329 9bd900ad77c545e490768485d91fc7c8 +msgid "Minimum width to consider; must be >= 0." +msgstr "" + +#: ../../story-class.rst:331 ff7c27444b38461aa0606500f65534c2 +msgid "Maximum width to consider, must be >= width_min or `None` for infinite." +msgstr "" + +#: ../../story-class.rst:336 0b2941234085492388b7df6476fba23f +msgid "Maximum error in returned width." +msgstr "" + +#: ../../story-class.rst:343 b1ca57aa343940a18c8a31095aa158c9 +msgid "Element Positioning CallBack function" +msgstr "" + +#: ../../story-class.rst:345 091fadf161344745a01b68eb9c135c89 +msgid "" +"The callback function can be used to log information about story output. " +"The function's access to the information is read-only: it has no way to " +"influence the story's output." +msgstr "" + +#: ../../story-class.rst:347 6228d7d0c75448809d16fd4e876f667e +msgid "" +"A typical loop for executing a story with using this method would look " +"like this::" +msgstr "" + +#: ../../story-class.rst:379 ae147d021aa143be82a1e049deb89061 +msgid "Attributes of the ElementPosition class" +msgstr "" + +#: ../../story-class.rst:380 c1fbd0b7565542d1b95f8c57a58016bd +msgid "" +"Exactly one parameter must be passed to the function provided by " +":meth:`Story.element_positions`. It is an object with the following " +"attributes:" +msgstr "" + +#: ../../story-class.rst:382 db748bf0d1de49da994057c0c9813003 +msgid "" +"The parameter passed to the `recorder` function is an object with the " +"following attributes:" +msgstr "" + +#: ../../story-class.rst:384 332f4d6df2e849cda1fb558f9f1bc52e +msgid "`elpos.depth` (int) -- depth of this element in the box structure." +msgstr "" + +#: ../../story-class.rst:386 43ebf06ffd544102857d5d1e63b02e5e +msgid "" +"`elpos.heading` (int) -- the header level, 0 if no header, 1-6 for " +":htmlTag:`h1` - :htmlTag:`h6`." +msgstr "" + +#: ../../story-class.rst:388 fd08004f2ef1497584d8af90ce1c5a41 +msgid "" +"`elpos.href` (str) -- value of the `href` attribute, or None if not " +"defined." +msgstr "" + +#: ../../story-class.rst:390 d75122312d1142dc8e2d75061746ee48 +msgid "`elpos.id` (str) -- value of the `id` attribute, or None if not defined." +msgstr "" + +#: ../../story-class.rst:392 f0d4a253cad54310a3c431f54e394f96 +msgid "`elpos.rect` (tuple) -- element position on page." +msgstr "" + +#: ../../story-class.rst:394 a66c52c844ca4388889b38841925a406 +msgid "`elpos.text` (str) -- immediate text of the element." +msgstr "" + +#: ../../story-class.rst:396 bed702a812984188bb16fc3565c6d75a +msgid "" +"`elpos.open_close` (int bit field) -- bit 0 set: opens element, bit 1 " +"set: closes element. Relevant for elements that may contain other " +"elements and thus may not immediately be closed after being created / " +"opened." +msgstr "" + +#: ../../story-class.rst:398 9c020d958f7e41739d4c89fc24c82271 +msgid "`elpos.rect_num` (int) -- count of rectangles filled by the story so far." +msgstr "" + +#: ../../story-class.rst:400 64579e878d5a4437b0267944543f75dc +msgid "" +"`elpos.page_num` (int) -- page number; only present when using " +"`pymupdf.Story.write*()` functions." +msgstr "" + +#: ../../footer.rst:46 a8171a5060434652be4eadd0eef0baa1 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/supported-files-table.mo b/docs/locales/ko/LC_MESSAGES/supported-files-table.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/supported-files-table.po b/docs/locales/ko/LC_MESSAGES/supported-files-table.po new file mode 100644 index 000000000..319de7961 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/supported-files-table.po @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + diff --git a/docs/locales/ko/LC_MESSAGES/textpage.mo b/docs/locales/ko/LC_MESSAGES/textpage.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/textpage.po b/docs/locales/ko/LC_MESSAGES/textpage.po new file mode 100644 index 000000000..6e8621817 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/textpage.po @@ -0,0 +1,1188 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 a689d6f014ae4b3e996f4ea1430fd7e2 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 fcaf663acdd64264ba54a9b09a7a053d +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 2384969b3a1a48ecb481ced21413e4ab +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../textpage.rst:7 b50883dcbbd2424db737f428b4204dc7 +msgid "TextPage" +msgstr "" + +#: ../../textpage.rst:9 6e81bba1ccf7481d8fc21ba0651cd715 +msgid "" +"This class represents text and images shown on a document page. All " +":ref:`MuPDF document types` are supported." +msgstr "" + +#: ../../textpage.rst:11 214a6f0b55b94183bb1a4fee5b003e96 +msgid "" +"The usual ways to create a textpage are :meth:`DisplayList.get_textpage` " +"and :meth:`Page.get_textpage`. Because there is a limited set of methods " +"in this class, there exist wrappers in :ref:`Page` which are handier to " +"use. The last column of this table shows these corresponding :ref:`Page` " +"methods." +msgstr "" + +#: ../../textpage.rst:13 8974c23cb16b4aa1b56189eff275c6fe +msgid "For a description of what this class is all about, see Appendix 2." +msgstr "" + +#: ../../textpage.rst:16 a2ef271a41f24f089f82cb6c12de5544 +msgid "**Method**" +msgstr "" + +#: ../../textpage.rst:16 5b00ef707e3f4637b40a48d5d422e544 +msgid "**Description**" +msgstr "" + +#: ../../textpage.rst:16 c508a7963cbb4c77ab691615841f72fb +msgid "page get_text or search method" +msgstr "" + +#: ../../textpage.rst:18 24790f911d6d4af491f3f0d4a90c5e4e +msgid ":meth:`~.extractText`" +msgstr "" + +#: ../../textpage.rst:18 56f3e18347124df290f5bb60a9c6ab6f +msgid "extract plain text" +msgstr "" + +#: ../../textpage.rst:18 ../../textpage.rst:19 292888a082e041b8820ab5b47243fa82 +#: 587fc832f8b941329c209fc49dd67b0b +msgid "\"text\"" +msgstr "" + +#: ../../textpage.rst:19 062786889a8a4ad586cea1bcbfa2bb0d +msgid ":meth:`~.extractTEXT`" +msgstr "" + +#: ../../textpage.rst:19 e0b7b72c38c746a4b7c512c66b738f1c +msgid "synonym of previous" +msgstr "" + +#: ../../textpage.rst:20 98ed5aa1b9884de7858b147ee2bd2f0c +msgid ":meth:`~.extractBLOCKS`" +msgstr "" + +#: ../../textpage.rst:20 35f208a1af3c4c5c8f17069788e702ca +msgid "plain text grouped in blocks" +msgstr "" + +#: ../../textpage.rst:20 6318f67c8f964981b4a354142092e102 +msgid "\"blocks\"" +msgstr "" + +#: ../../textpage.rst:21 07a1408ddaf24b158ac6dc5d9fcc8115 +msgid ":meth:`~.extractWORDS`" +msgstr "" + +#: ../../textpage.rst:21 52e0458f76ee4231a07829bb051b29ac +msgid "all words with their bbox" +msgstr "" + +#: ../../textpage.rst:21 2efe7bf211e74dc4a731d81393a6e10c +msgid "\"words\"" +msgstr "" + +#: ../../textpage.rst:22 7c9da76988c243e0b79a0f2a5c23cee7 +msgid ":meth:`~.extractHTML`" +msgstr "" + +#: ../../textpage.rst:22 269dcb92057443e096b0cd366dd7ba29 +msgid "page content in HTML format" +msgstr "" + +#: ../../textpage.rst:22 d24ee0e44d5c45e59f125aacaccf3465 +msgid "\"html\"" +msgstr "" + +#: ../../textpage.rst:23 388abf5016ba455c959cdd56009a4499 +msgid ":meth:`~.extractXHTML`" +msgstr "" + +#: ../../textpage.rst:23 b09f5acedceb4611bc7ea51121eb9bb2 +msgid "page content in XHTML format" +msgstr "" + +#: ../../textpage.rst:23 416a7019408e492da02693ffd6949a7a +msgid "\"xhtml\"" +msgstr "" + +#: ../../textpage.rst:24 ee85d9810eff41caa760d9ffb2a4fed2 +msgid ":meth:`~.extractXML`" +msgstr "" + +#: ../../textpage.rst:24 8ab1b023d2cc42b6ae74cb3b92b8d797 +msgid "page text in XML format" +msgstr "" + +#: ../../textpage.rst:24 fd3d4026c2c045b6a5dc724cd3c1cd16 +msgid "\"xml\"" +msgstr "" + +#: ../../textpage.rst:25 a0d67d42d20d483ba2dc7c60232c4262 +msgid ":meth:`~.extractDICT`" +msgstr "" + +#: ../../textpage.rst:25 ../../textpage.rst:27 1867105a7ef841cd809711e47e335c93 +#: 8cfc8dba8d384e489e2948bcbd7adaca +msgid "page content in *dict* format" +msgstr "" + +#: ../../textpage.rst:25 8159466e656146a38f47f43f6bdcb810 +msgid "\"dict\"" +msgstr "" + +#: ../../textpage.rst:26 1d75b88f1edb442898ea8017de3492d7 +msgid ":meth:`~.extractJSON`" +msgstr "" + +#: ../../textpage.rst:26 ../../textpage.rst:28 7480fba67d534ecc8956acf7902d5aed +#: 82d01a9dbb1d488198ecd836fed442ff +msgid "page content in JSON format" +msgstr "" + +#: ../../textpage.rst:26 78d2d0b851b240db8420aa1f8c823676 +msgid "\"json\"" +msgstr "" + +#: ../../textpage.rst:27 1ade4b09c9674544bb58977574f5d593 +msgid ":meth:`~.extractRAWDICT`" +msgstr "" + +#: ../../textpage.rst:27 3155e2902bcd4713aa47e4919ec46081 +msgid "\"rawdict\"" +msgstr "" + +#: ../../textpage.rst:28 b5f0e031790f497694abb5caa6eee204 +msgid ":meth:`~.extractRAWJSON`" +msgstr "" + +#: ../../textpage.rst:28 9b7e2e49823242bf83ea6a25986488d0 +msgid "\"rawjson\"" +msgstr "" + +#: ../../textpage.rst:29 c2c9458e9c4a490087a519b61ecc5b19 +msgid ":meth:`~.search`" +msgstr "" + +#: ../../textpage.rst:29 ee8c8a71aa524335969fbb8af60b211e +msgid "Search for a string in the page" +msgstr "" + +#: ../../textpage.rst:29 f79465ca7ff14a0a80fc365911c70bf6 +msgid ":meth:`Page.search_for`" +msgstr "" + +#: ../../textpage.rst:32 083eef252c154937ae0bc85aa81aff68 +msgid "**Class API**" +msgstr "" + +#: ../../textpage.rst:40 f33111b086ad4d72980c782edd305dd0 +msgid "" +"Return a string of the page's complete text. The text is UTF-8 unicode " +"and in the same sequence as specified at the time of document creation." +msgstr "" + +#: ../../textpage.rst 3e9d1669f2fe4f15ab3177563f0420e3 +#: 4bd4b9fa21ed426188fe213d2241f4ac 720def9977a743fdb77d7caeb93f8e63 +#: aea747bd7d624e70bc7def00d62df838 ca24753a6b21474daba199227cbdb7cd +#: d0072bc05d7144aca56767bfde82c6a9 e1647eb182054d70be24b2cc9c6381ca +msgid "Parameters" +msgstr "" + +#: ../../textpage.rst:42 ../../textpage.rst:85 ../../textpage.rst:93 +#: ../../textpage.rst:113 ../../textpage.rst:121 +#: 053cd209c0cd44b08367efe95d323dcb 2e3408186db64af29672df98a2541c3a +#: 88f4b7d0b3014f8ab6a88c7157c764d9 eafc202f0101431bbd82bb8f066f24c2 +#: f7da0622405347bcb10099abdba152a3 +msgid "" +"(new in v1.19.1) sort the output by vertical, then horizontal " +"coordinates. In many cases, this should suffice to generate a \"natural\"" +" reading order." +msgstr "" + +#: ../../textpage.rst 07f5f0a7fa5f4efbb1093cd496e1425a +#: 0f27872a10dd46fda6c8e7ecaf77c92b 34621dc4778249c49fbd4c5f8fd2fd39 +#: 4c8745e920b8430fadff84a8e977a147 5081234f6b32451d915cc94583c1d60e +#: 9a9a5268dcfc421cb4ca9b69e5030ee1 9f3241fa28914e49a481723379042cd8 +#: c0b2e445162446e1b4a2e0eb834ac7ca f3b8d685f26e44edbe5e23bac745020d +#: f63537f76faf47c884089748bdcbcd8b f8803c61a6fc41fe89a08237112d6d49 +msgid "Return type" +msgstr "" + +#: ../../textpage.rst:49 63307d556a584ea19173a54596c7f880 +msgid "" +"Textpage content as a list of text lines grouped by block. Each list " +"items looks like this::" +msgstr "" + +#: ../../textpage.rst:53 78718be495234f9dbfa93e48e16d1e13 +msgid "" +"The first four entries are the block's bbox coordinates, *block_type* is " +"1 for an image block, 0 for text. *block_no* is the block sequence " +"number. Multiple text lines are joined via line breaks." +msgstr "" + +#: ../../textpage.rst:55 12f402e2e12346f8b7dd871f590f3197 +msgid "" +"For an image block, its bbox and a text line with some image meta " +"information is included -- **not the image content**." +msgstr "" + +#: ../../textpage.rst:57 fb2f6c324124423bb74dbd2e4b974806 +msgid "" +"This is a high-speed method with just enough information to output plain " +"text in desired reading sequence." +msgstr "" + +#: ../../textpage.rst:63 cfb05f044359435fb061d158cb6ef21e +msgid "Changed in v1.23.5: added `delimiters` parameter" +msgstr "" + +#: ../../textpage.rst:65 e3116b1baa374ce2b67b6002aaae107d +msgid "" +"Textpage content as a list of single words with bbox information. An item" +" of this list looks like this::" +msgstr "" + +#: ../../textpage.rst:69 6f56fac0469e45afa313a96110815e53 +msgid "" +"(new in v1.23.5) use these characters as *additional* word separators. By" +" default, all white spaces (including the non-breaking space `0xA0`) " +"indicate start and end of a word. Now you can specify more characters " +"causing this. For instance, the default will return " +"`\"john.doe@outlook.com\"` as **one** word. If you specify " +"`delimiters=\"@.\"` then the **four** words `\"john\"`, `\"doe\"`, " +"`\"outlook\"`, `\"com\"` will be returned. Other possible uses include " +"ignoring punctuation characters `delimiters=string.punctuation`. The " +"\"word\" strings will not contain any delimiting character." +msgstr "" + +#: ../../textpage.rst:71 f122cb9dbcfb43fb8cd911d4aabb4817 +msgid "" +"This is a high-speed method which e.g. allows extracting text from within" +" given areas or recovering the text reading sequence." +msgstr "" + +#: ../../textpage.rst:77 9fd59d1b4ce240e7ab72d24d4bfe0b1d +msgid "" +"Textpage content as a string in HTML format. This version contains " +"complete formatting and positioning information. Images are included " +"(encoded as base64 strings). You need an HTML package to interpret the " +"output in Python. Your internet browser should be able to adequately " +"display this information, but see :ref:`HTMLQuality`." +msgstr "" + +#: ../../textpage.rst:83 a07e225c4bf3412585128a2fb86b8200 +msgid "" +"Textpage content as a Python dictionary. Provides same information detail" +" as HTML. See below for the structure." +msgstr "" + +#: ../../textpage.rst:91 3c7dcaacfe924c9ab076958b43f75600 +msgid "" +"Textpage content as a JSON string. Created by " +"`json.dumps(TextPage.extractDICT())`. It is included for backlevel " +"compatibility. You will probably use this method ever only for outputting" +" the result to some file. The method detects binary image data and " +"converts them to base64 encoded strings." +msgstr "" + +#: ../../textpage.rst:99 87f36a88ced6410383dcdafa2979eae5 +msgid "" +"Textpage content as a string in XHTML format. Text information detail is " +"comparable with :meth:`extractTEXT`, but also contains images (base64 " +"encoded). This method makes no attempt to re-create the original visual " +"appearance." +msgstr "" + +#: ../../textpage.rst:105 ce4a584473674c4e91533c25a532fe15 +msgid "" +"Textpage content as a string in XML format. This contains complete " +"formatting information about every single character on the page: font, " +"size, line, paragraph, location, color, etc. Contains no images. You need" +" an XML package to interpret the output in Python." +msgstr "" + +#: ../../textpage.rst:111 53dc5f5e5cc04c54a952877ba4755541 +msgid "" +"Textpage content as a Python dictionary -- technically similar to " +":meth:`extractDICT`, and it contains that information as a subset " +"(including any images). It provides additional detail down to each " +"character, which makes using XML obsolete in many cases. See below for " +"the structure." +msgstr "" + +#: ../../textpage.rst:119 33863035deb9499b8feb6d00b3064acb +msgid "" +"Textpage content as a JSON string. Created by " +"`json.dumps(TextPage.extractRAWDICT())`. You will probably use this " +"method ever only for outputting the result to some file. The method " +"detects binary image data and converts them to base64 encoded strings." +msgstr "" + +#: ../../textpage.rst:127 209053b84b6545e3994a163287facefa +msgid "Changed in v1.18.2" +msgstr "" + +#: ../../textpage.rst:129 05ffbacb61c7489882f082b48886e8d5 +msgid "Search for *string* and return a list of found locations." +msgstr "" + +#: ../../textpage.rst:131 c71683b946f54d84aff575da2005613b +msgid "" +"the string to search for. Upper and lower cases will all match if needle " +"consists of ASCII letters only -- it does not yet work for \"Ä\" versus " +"\"ä\", etc." +msgstr "" + +#: ../../textpage.rst:132 0f1af98486ec43429066d8c48e3dc958 +msgid "return quadrilaterals instead of rectangles." +msgstr "" + +#: ../../textpage.rst 943e3f54b51f470ba6d34411ccdabcd3 +msgid "Returns" +msgstr "" + +#: ../../textpage.rst:134 89e19eb80ccd4b318611f268b0f75d7e +msgid "" +"a list of :ref:`Rect` or :ref:`Quad` objects, each surrounding a found " +"*needle* occurrence. As the search string may contain spaces, its parts " +"may be found on different lines. In this case, more than one rectangle " +"(resp. quadrilateral) are returned. **(Changed in v1.18.2)** The method " +"**now supports dehyphenation**, so it will find e.g. \"method\", even if " +"it was hyphenated in two parts \"meth-\" and \"od\" across two lines. The" +" two returned rectangles will contain \"meth\" (no hyphen) and \"od\"." +msgstr "" + +#: ../../textpage.rst:136 c134a9fb178648ae8bab433d54e37e2b +msgid "**Overview of changes in v1.18.2:**" +msgstr "" + +#: ../../textpage.rst:138 d9a3438955224e5685de548903667d74 +msgid "The `hit_max` parameter has been removed: all hits are always returned." +msgstr "" + +#: ../../textpage.rst:139 c687c9305d954f6eaea257e2fe5bbe58 +msgid "" +"The `rect` parameter of the :ref:`TextPage` is now respected: only text " +"inside this area is examined. Only characters with fully contained bboxes" +" are considered. The wrapper method :meth:`Page.search_for` " +"correspondingly supports a *clip* parameter." +msgstr "" + +#: ../../textpage.rst:140 ec9e270e430341a88939c174a0e838a3 +msgid "**Hyphenated words** are now found." +msgstr "" + +#: ../../textpage.rst:141 595b14cd29774ef49fd1666b1d37dbb7 +msgid "" +"**Overlapping rectangles** in the same line are now automatically joined." +" We assume that such separations are an artifact created by multiple " +"marked content groups, containing parts of the same search needle." +msgstr "" + +#: ../../textpage.rst:143 7b283f04f24544e18dc95d6f698f1a39 +msgid "" +"Example Quad versus Rect: when searching for needle \"pymupdf\", then the" +" corresponding entry will either be the blue rectangle, or, if *quads* " +"was specified, the quad *Quad(ul, ur, ll, lr)*." +msgstr "" + +#: ../../textpage.rst:149 22015cb6553240db9caee4c5d4d0a06b +msgid "" +"The rectangle associated with the text page. This either equals the " +"rectangle of the creating page or the `clip` parameter of " +":meth:`Page.get_textpage` and text extraction / searching methods." +msgstr "" + +#: ../../textpage.rst:151 e4d7797e393d49f38a2ad6066b720a21 +msgid "" +"The output of text searching and most text extractions **is restricted to" +" this rectangle**. (X)HTML and XML output will however always extract the" +" full page." +msgstr "" + +#: ../../textpage.rst:156 746d4f0331d74f5eb4b706ab194b8b02 +msgid "Structure of Dictionary Outputs" +msgstr "" + +#: ../../textpage.rst:157 ae8559712aa84a3b8f3abc14fba42605 +msgid "" +"Methods :meth:`TextPage.extractDICT`, :meth:`TextPage.extractJSON`, " +":meth:`TextPage.extractRAWDICT`, and :meth:`TextPage.extractRAWJSON` " +"return dictionaries, containing the page's text and image content. The " +"dictionary structures of all four methods are almost equal. They strive " +"to map the text page's information hierarchy of blocks, lines, spans and " +"characters as precisely as possible, by representing each of these by its" +" own sub-dictionary:" +msgstr "" + +#: ../../textpage.rst:159 1fc549b40ec54504aba36b49e614c7cc +msgid "A **page** consists of a list of **block dictionaries**." +msgstr "" + +#: ../../textpage.rst:160 531deb445eda49c78ee0170f577f2f93 +msgid "A (text) **block** consists of a list of **line dictionaries**." +msgstr "" + +#: ../../textpage.rst:161 5d0d26a55df64fb0bc4619f73f865415 +msgid "A **line** consists of a list of **span dictionaries**." +msgstr "" + +#: ../../textpage.rst:162 d297bff2aae540828c971d533f6fe3bb +msgid "" +"A **span** either consists of the text itself or, for the RAW variants, a" +" list of **character dictionaries**." +msgstr "" + +#: ../../textpage.rst:163 37000c1f71684c77a812407e7849a0e0 +msgid "" +"RAW variants: a **character** is a dictionary of its origin, bbox and " +"unicode." +msgstr "" + +#: ../../textpage.rst:165 192df2422b5e482bbb29f7afc93e8cdc +msgid "" +"All PyMuPDF geometry objects herein (points, rectangles, matrices) are " +"represented by there **\"like\"** formats: a :data:`rect_like` *tuple* is" +" used instead of a :ref:`Rect`, etc. The reasons for this are performance" +" and memory considerations:" +msgstr "" + +#: ../../textpage.rst:167 517e734e4772478cb6b1bc32cab2ab16 +msgid "" +"This code is written in C, where Python tuples can easily be generated. " +"The geometry objects on the other hand are defined in Python source only." +" A conversion of each Python tuple into its corresponding geometry object" +" would add significant -- and largely unnecessary -- execution time." +msgstr "" + +#: ../../textpage.rst:168 a7f4b55b2bb84753bc138ab3a04c2f8a +msgid "" +"A 4-tuple needs about 168 bytes, the corresponding :ref:`Rect` 472 bytes " +"- almost three times the size. A \"dict\" dictionary for a text-heavy " +"page contains 300+ bbox objects -- which thus require about 50 KB storage" +" as 4-tuples versus 140 KB as :ref:`Rect` objects. A \"rawdict\" output " +"for such a page will however contain **4 to 5 thousand** bboxes, so in " +"this case we talk about 750 KB versus 2 MB." +msgstr "" + +#: ../../textpage.rst:170 bbdd6aa883a447c5b6bbb24a389b7944 +msgid "" +"Please also note, that only **bboxes** (= :data:`rect_like` 4-tuples) are" +" returned, whereas a :ref:`TextPage` actually has the **full position " +"information** -- in :ref:`Quad` format. The reason for this decision is " +"again a memory consideration: a :data:`quad_like` needs 488 bytes (3 " +"times the size of a :data:`rect_like`). Given the mentioned amounts of " +"generated bboxes, returning :data:`quad_like` information would have a " +"significant impact." +msgstr "" + +#: ../../textpage.rst:172 d2d5ce2b47bc4940b491f08fbbaa0027 +msgid "" +"In the vast majority of cases, we are dealing with **horizontal text " +"only**, where bboxes provide entirely sufficient information." +msgstr "" + +#: ../../textpage.rst:174 feb1b497d7a04358ac4fc4f59750eb21 +msgid "" +"In addition, **the full quad information is not lost**: it can be " +"recovered as needed for lines, spans, and characters by using the " +"appropriate function from the following list:" +msgstr "" + +#: ../../textpage.rst:176 e89548afd6dc44168e0b77628a3cba31 +msgid ":meth:`recover_quad` -- the quad of a complete span" +msgstr "" + +#: ../../textpage.rst:177 27d71bee525843278a01adf552fa7a36 +msgid ":meth:`recover_span_quad` -- the quad of a character subset of a span" +msgstr "" + +#: ../../textpage.rst:178 041a2862fe3d48ac95055a9328f85989 +msgid ":meth:`recover_line_quad` -- the quad of a line" +msgstr "" + +#: ../../textpage.rst:179 66ae40921c104d34aba6daaf7127f04f +msgid ":meth:`recover_char_quad` -- the quad of a character" +msgstr "" + +#: ../../textpage.rst:181 727a2901b16c4ddd96ae14b244c5424a +msgid "" +"As mentioned, using these functions is ever only needed, if the text is " +"**not written horizontally** -- `line[\"dir\"] != (1, 0)` -- and you need" +" the quad for text marker annotations (:meth:`Page.add_highlight_annot` " +"and friends)." +msgstr "" + +#: ../../textpage.rst:191 7805ac6076c748d18288314bba88341d +msgid "Page Dictionary" +msgstr "" + +#: ../../textpage.rst:194 ../../textpage.rst:208 ../../textpage.rst:251 +#: ../../textpage.rst:263 ../../textpage.rst:285 ../../textpage.rst:369 +#: 29f9782130d642a8b2fddc4dfd20716c 70f3d2461fad4b3fadb0fc3afaea9f2e +#: 975906fdd1184ad3ad3fd3d27e4993b0 baf341562d684245aa92ddd993c2dd48 +#: bf7900e8b9b5405a8f0d4d83a8bf0411 c6778ca210f143f38e1b9841a02401e9 +msgid "**Key**" +msgstr "" + +#: ../../textpage.rst:194 ../../textpage.rst:208 ../../textpage.rst:251 +#: ../../textpage.rst:263 ../../textpage.rst:285 ../../textpage.rst:369 +#: 264a4f1acc10474eb5e78fe3b5e5823b b4b639c47a4a414db8f8f3bb50ee8dc9 +#: cc9c466c5ba84957921e1ff86a57d116 d94353036c5b40c1846dd829e554f27f +#: f0dc2d1c0f2f41dea26d6f56aa6b3a26 fe805e2ac2f84c418cdee9f01871d787 +msgid "**Value**" +msgstr "" + +#: ../../textpage.rst:196 ../../textpage.rst:214 +#: 07aa10194d0d48eb97c6202f508f7705 8f326282fbe8407aa66c61b1d8bcd062 +msgid "width" +msgstr "" + +#: ../../textpage.rst:196 f244c49149a243688a1885d014c7a1bb +msgid "width of the `clip` rectangle *(float)*" +msgstr "" + +#: ../../textpage.rst:197 ../../textpage.rst:215 +#: b8882d43fa804c8a9c251b3ec47cef6d bcccca2b99b94b7ea01f4de3b4b7c85a +msgid "height" +msgstr "" + +#: ../../textpage.rst:197 3100ead6fa2e45f5b61d6969928e4877 +msgid "height of the `clip` rectangle *(float)*" +msgstr "" + +#: ../../textpage.rst:198 c5935e75747b42e799fe04c7f318b0da +msgid "blocks" +msgstr "" + +#: ../../textpage.rst:198 30ab779a07894b089542bb81604f9b47 +msgid "*list* of block dictionaries" +msgstr "" + +#: ../../textpage.rst:202 db462c15f35c46f5b52a233a3beed4d0 +msgid "Block Dictionaries" +msgstr "" + +#: ../../textpage.rst:203 952d964d7a5e43c2848616b970e2716c +msgid "" +"Block dictionaries come in two different formats for **image blocks** and" +" for **text blocks**." +msgstr "" + +#: ../../textpage.rst:205 238f68f9676441f1bdcff950557a856e +msgid "**Image block:**" +msgstr "" + +#: ../../textpage.rst:210 ../../textpage.rst:253 +#: 800a3c27effc460f9480726ec3a5c729 d35d41a494c04f6285bda0eace697528 +msgid "type" +msgstr "" + +#: ../../textpage.rst:210 6328d3cec703451097bfaa7cf7f6c65f +msgid "1 = image (``int``)" +msgstr "" + +#: ../../textpage.rst:211 ../../textpage.rst:254 ../../textpage.rst:265 +#: ../../textpage.rst:287 ../../textpage.rst:372 +#: 13e6c3dfe54549b9b050cea92d99d01a 322f2d6f5b2b44ed9706ad2f98ad459c +#: 4f766fcb9538433a8d4db8a39a80ff3c bc56648f4c414b1eb1faa55dba01ab98 +#: db0fdf56b2254240a588914bece3c707 +msgid "bbox" +msgstr "" + +#: ../../textpage.rst:211 ff4d18f9a8d24d16a31d552e95f6e589 +msgid "image bbox on page (:data:`rect_like`)" +msgstr "" + +#: ../../textpage.rst:212 ../../textpage.rst:255 +#: 4c56479091544270885701e21d3794c0 5d311b7030c74d77b291641b825cabc0 +msgid "number" +msgstr "" + +#: ../../textpage.rst:212 044f427c89414858935273b873628617 +msgid "block count (``int``)" +msgstr "" + +#: ../../textpage.rst:213 d457db3dffd648f5b421b9dabda513e8 +msgid "ext" +msgstr "" + +#: ../../textpage.rst:213 9a1b2497c15747ccae408e2908b03716 +msgid "image type (``str``), as file extension, see below" +msgstr "" + +#: ../../textpage.rst:214 65917d8aff0a47ae97e1c880700ae5b9 +msgid "original image width (``int``)" +msgstr "" + +#: ../../textpage.rst:215 ef1b2983b8484b67aea4e7c52ec94c5e +msgid "original image height (``int``)" +msgstr "" + +#: ../../textpage.rst:216 cdbc1a0fe83a45878f7d57c8195c2541 +msgid "colorspace" +msgstr "" + +#: ../../textpage.rst:216 0768d9dd62e74b518365212bb8f2d509 +msgid "colorspace component count (``int``)" +msgstr "" + +#: ../../textpage.rst:217 c72ef151fd0843acbf96ee02c0b50384 +msgid "xres" +msgstr "" + +#: ../../textpage.rst:217 2b798798946e43259c410f01235ab8cf +msgid "resolution in x-direction (``int``) [#f3]_" +msgstr "" + +#: ../../textpage.rst:218 711945f5b34049a1b07317557513f490 +msgid "yres" +msgstr "" + +#: ../../textpage.rst:218 91a31d61290640b8988418d1a9ebb3ba +msgid "resolution in y-direction (``int``) [#f3]_" +msgstr "" + +#: ../../textpage.rst:219 c247c45f267c4a6281d20687be8c99af +msgid "bpc" +msgstr "" + +#: ../../textpage.rst:219 8934e38405664f3fa8f78d65d3a6dba5 +msgid "bits per component (``int``)" +msgstr "" + +#: ../../textpage.rst:220 2db498cd52714dd8b5097aa444b17ac0 +msgid "transform" +msgstr "" + +#: ../../textpage.rst:220 c07a01fdd4744863a7e7b665d9066376 +msgid "matrix transforming image rect to bbox (:data:`matrix_like`)" +msgstr "" + +#: ../../textpage.rst:221 ../../textpage.rst:292 +#: 416da7dc62f34728a5e65a5b6eccec10 e5bfbe8873ce4531a1a93eea31b542ab +msgid "size" +msgstr "" + +#: ../../textpage.rst:221 ef114c513c0140809c273a1fca277935 +msgid "size of the image in bytes (``int``)" +msgstr "" + +#: ../../textpage.rst:222 b4442e7378f340ad9bbc40a5bda85f94 +msgid "image" +msgstr "" + +#: ../../textpage.rst:222 44de8974cd434bbca7c4dea100e9987f +msgid "image content (``bytes``)" +msgstr "" + +#: ../../textpage.rst:223 ce697bda1a494d35a92a1a9b886f4a53 +msgid "mask" +msgstr "" + +#: ../../textpage.rst:223 203d79f1d981499da21d8cae601cef42 +msgid "image mask content (``bytes``) for transparent images" +msgstr "" + +#: ../../textpage.rst:226 7b2748f1df1342538dd7b750dd6db1db +msgid "" +"Possible values of the \"ext\" key are \"bmp\", \"gif\", \"jpeg\", " +"\"jpx\" (JPEG 2000), \"jxr\" (JPEG XR), \"png\", \"pnm\", and \"tiff\"." +msgstr "" + +#: ../../textpage.rst:230 f165771e95ce4de587ef46d0281ce182 +msgid "" +"An image block is generated for **all and every image occurrence** on the" +" page. Hence there may be duplicates, if an image is shown at different " +"locations." +msgstr "" + +#: ../../textpage.rst:232 34122c8c572a45d7a4acfd1f2cbbbe55 +msgid "" +":ref:`TextPage` and corresponding method :meth:`Page.get_text` are " +"**available for all document types**. Only for PDF documents, methods " +":meth:`Document.get_page_images` / :meth:`Page.get_images` offer some " +"overlapping functionality as far as image lists are concerned. But both " +"lists **may or may not** contain the same items. Any differences are most" +" probably caused by one of the following:" +msgstr "" + +#: ../../textpage.rst:234 87715f6d6a82452b8ef41b7cbb3b917c +msgid "" +"\"Inline\" images (see page 214 of the :ref:`AdobeManual`) of a PDF page " +"are contained in a textpage, but **do not appear** in " +":meth:`Page.get_images`." +msgstr "" + +#: ../../textpage.rst:235 7671c8c4e14e4452a9de51d3be9f9a57 +msgid "" +"Annotations may also contain images -- these will **not appear** in " +":meth:`Page.get_images`." +msgstr "" + +#: ../../textpage.rst:236 528e4366c2844284b6b3e06d85663c2c +msgid "" +"Image blocks in a textpage are generated for **every** image location -- " +"whether or not there are any duplicates. This is in contrast to " +":meth:`Page.get_images`, which will list each image only once (per " +"reference name)." +msgstr "" + +#: ../../textpage.rst:237 6ba5259a29524a72bae31a85c368deb0 +msgid "" +"Images mentioned in the page's :data:`object` definition will **always** " +"appear in :meth:`Page.get_images` [#f1]_. But it may happen, that there " +"is no \"display\" command in the page's :data:`contents` (erroneously or " +"on purpose). In this case the image will **not appear** in the textpage." +msgstr "" + +#: ../../textpage.rst:239 e7f81738e67441429325db9963571f7d +msgid "" +"The image's \"transformation matrix\" is defined as the matrix, for which" +" the expression `bbox / transform == pymupdf.Rect(0, 0, 1, 1)` is true, " +"lookup details here: :ref:`ImageTransformation`." +msgstr "" + +#: ../../textpage.rst:241 57bed7561cd444e0b640b95c35da2f85 +msgid "" +"A transparent image may be accompanied by a mask image. This is stored " +"under key `\"mask\"` and has the format of a `DeviceGray` PNG image. " +"Otherwise the value of this key is ``None``. If present, you may be able " +"to recover (an equivalent of) the original image -- i.e. with " +"transparency -- by creating :ref:`Pixmap` objects from the \"image\", " +"respectively \"mask\" values and overlay them. This is not guaranteed to " +"always work because mask images come in multiple formats, of which not " +"all qualify for the conditions under which overlaying Pixmaps are " +"supported. Here is a code snippet:" +msgstr "" + +#: ../../textpage.rst:248 4615f23b245b4db39e8ea23b4d176464 +msgid "**Text block:**" +msgstr "" + +#: ../../textpage.rst:253 db5d3f31fc8d4153b8fafecfdf3d1727 +msgid "0 = text *(int)*" +msgstr "" + +#: ../../textpage.rst:254 6964cf3c7ba24458aae29d347f3f603a +msgid "block rectangle, :data:`rect_like`" +msgstr "" + +#: ../../textpage.rst:255 731cf949720a4619b5ea681f7764d295 +msgid "block count *(int)*" +msgstr "" + +#: ../../textpage.rst:256 3a23e4510e7949e29bf987d16327eb49 +msgid "lines" +msgstr "" + +#: ../../textpage.rst:256 ede4e782ec014752989f15767a43462d +msgid "*list* of text line dictionaries" +msgstr "" + +#: ../../textpage.rst:260 647d1430aba549968a23caa9bd2bf178 +msgid "Line Dictionary" +msgstr "" + +#: ../../textpage.rst:265 88d566f6551a42a29f62a0819ecbed64 +msgid "line rectangle, :data:`rect_like`" +msgstr "" + +#: ../../textpage.rst:266 bc961e945f144c85a9e1a2193c3a4443 +msgid "wmode" +msgstr "" + +#: ../../textpage.rst:266 220a8c26dda34ae4b15fb120791f0296 +msgid "writing mode *(int)*: 0 = horizontal, 1 = vertical" +msgstr "" + +#: ../../textpage.rst:267 b23571753e8641b391f1c7bd3d666faf +msgid "dir" +msgstr "" + +#: ../../textpage.rst:267 f040c814bf3643e0b50bb1889d157bc2 +msgid "writing direction, :data:`point_like`" +msgstr "" + +#: ../../textpage.rst:268 f4df6d31bea14f7d9133d10fe217a237 +msgid "spans" +msgstr "" + +#: ../../textpage.rst:268 d2626131157f45bda11a0a0240ae20e0 +msgid "*list* of span dictionaries" +msgstr "" + +#: ../../textpage.rst:271 827a258f7a314424b22d7d3077bc4795 +msgid "" +"The value of key *\"dir\"* is the **unit vector** `dir = (cosine, -sine)`" +" of the angle, which the text has relative to the x-axis [#f2]_. See the " +"following picture: The word in each quadrant (counter-clockwise from top-" +"right to bottom-right) is rotated by 30, 120, 210 and 300 degrees " +"respectively." +msgstr "" + +#: ../../textpage.rst:277 76e3be33b8eb4d20a040a290a7493044 +msgid "Span Dictionary" +msgstr "" + +#: ../../textpage.rst:279 44e867372fca4010ae8c117e6f57244a +msgid "" +"Spans contain the actual text. A line contains **more than one span " +"only**, if it contains text with different font properties." +msgstr "" + +#: ../../textpage.rst:281 2484e6f332594c488b1ab6e8e45e8358 +msgid "Changed in version 1.14.17 Spans now also have a *bbox* key (again)." +msgstr "" + +#: ../../textpage.rst:282 fe2deeccb3484496b06cee9c45979177 +msgid "Changed in version 1.17.6 Spans now also have an *origin* key." +msgstr "" + +#: ../../textpage.rst:287 24917424394140498d62e12db012d491 +msgid "span rectangle, :data:`rect_like`" +msgstr "" + +#: ../../textpage.rst:288 ../../textpage.rst:371 +#: d062895875c246f08ce11e156a46fe6c e4eadb2bf3fd4656a1dcaea2aa762fb2 +msgid "origin" +msgstr "" + +#: ../../textpage.rst:288 49dcac4791f7495283b181cd85e5cb96 +msgid "the first character's origin, :data:`point_like`" +msgstr "" + +#: ../../textpage.rst:289 a039c803b12f44f2b903bfd72ff968f0 +msgid "font" +msgstr "" + +#: ../../textpage.rst:289 e59d2678453347c3b2290c87101bee41 +msgid "font name *(str)*" +msgstr "" + +#: ../../textpage.rst:290 9789271ef0d44ca8b8b7753a47109329 +msgid "ascender" +msgstr "" + +#: ../../textpage.rst:290 bae202ea90f340c08117616fba695605 +msgid "ascender of the font *(float)*" +msgstr "" + +#: ../../textpage.rst:291 f04de1e03bc64ecb932178642bbf28a2 +msgid "descender" +msgstr "" + +#: ../../textpage.rst:291 cab39571402145599cd516740c2cd5e3 +msgid "descender of the font *(float)*" +msgstr "" + +#: ../../textpage.rst:292 7bb34b245d0e4a7a807d37f771540973 +msgid "font size *(float)*" +msgstr "" + +#: ../../textpage.rst:293 728b3550893a43df91864ece6b6a6c75 +msgid "flags" +msgstr "" + +#: ../../textpage.rst:293 d4144f5c31e240ca8a9bc6a9902c4b40 +msgid "font characteristics *(int)*" +msgstr "" + +#: ../../textpage.rst:294 4ab488b7a402495f924066ec5fa0901d +msgid "char_flags" +msgstr "" + +#: ../../textpage.rst:294 ac689e1eb3bd44c196f5a43696910e9c +msgid "char characteristics *(int)*" +msgstr "" + +#: ../../textpage.rst:295 70dfc6783fdb4c5a8a1e0ad9b92b44fc +msgid "color" +msgstr "" + +#: ../../textpage.rst:295 0c21ca835d2f477e934a8f5cec1f8a4c +msgid "text color in sRGB format 0xRRGGBB *(int)*." +msgstr "" + +#: ../../textpage.rst:296 8e921b08a2ba477497897d70a87f4977 +msgid "alpha" +msgstr "" + +#: ../../textpage.rst:296 ec794a253afb48ea90cf9d7494caa03b +msgid "text opacity 0..255 *(int)*." +msgstr "" + +#: ../../textpage.rst:297 72dbc8f290b94f6c88700e6a5df12717 +msgid "text" +msgstr "" + +#: ../../textpage.rst:297 42bc9c7faaed433c9e3868ab04254f3f +msgid "(only for :meth:`extractDICT`) text *(str)*" +msgstr "" + +#: ../../textpage.rst:298 6c4e864e58554766a1c930bd0e32e581 +msgid "chars" +msgstr "" + +#: ../../textpage.rst:298 287db5214934490ba0764caaa9ee699d +msgid "(only for :meth:`extractRAWDICT`) *list* of character dictionaries" +msgstr "" + +#: ../../textpage.rst:301 6a3a9323a60541ca97db64597a2a451a +msgid "|history_begin|" +msgstr "" + +#: ../../textpage.rst:303 e0b8ee67e36546b0b5b8b155e00eeb45 +msgid "*(New in version 1.25.3.0):* Added *\"alpha\"* item." +msgstr "" + +#: ../../textpage.rst:305 04010301eebf4c2dbf6989108e207ae9 +msgid "" +"*(New in version 1.16.0):* *\"color\"* is the text color encoded in sRGB " +"(int) format, e.g. 0xFF0000 for red. There are functions for converting " +"this integer back to formats (r, g, b) (PDF with float values from 0 to " +"1) :meth:`sRGB_to_pdf`, or (R, G, B), :meth:`sRGB_to_rgb` (with integer " +"values from 0 to 255)." +msgstr "" + +#: ../../textpage.rst:307 744bef29da2f4dbc90404a35ef0fd253 +msgid "" +"*(New in v1.18.5):* *\"ascender\"* and *\"descender\"* are font " +"properties, provided relative to :data:`fontsize` 1. Note that descender " +"is a negative value. The following picture shows the relationship to " +"other values and properties." +msgstr "" + +#: ../../textpage.rst:309 e0a8a997405247f6bb89749ab0b624b7 +msgid "|history_end|" +msgstr "" + +#: ../../textpage.rst:314 9b180b7db6ac43e489b8d8e9ccb31622 +msgid "" +"These numbers may be used to compute the minimum height of a character " +"(or span) -- as opposed to the standard height provided in the \"bbox\" " +"values (which actually represents the **line height**). The following " +"code recalculates the span bbox to have a height of **fontsize** exactly " +"fitting the text inside:" +msgstr "" + +#: ../../textpage.rst:324 91c353d85b0a45d7bde9987e275b50b5 +msgid "" +"The above calculation may deliver a **larger** height! This may e.g. " +"happen for OCRed documents, where the risk of all sorts of text artifacts" +" is high. MuPDF tries to come up with a reasonable bbox height, " +"independently from the :data:`fontsize` found in the PDF. So please " +"ensure that the height of `span[\"bbox\"]` is **larger** than " +"`span[\"size\"]`." +msgstr "" + +#: ../../textpage.rst:326 cfa2fe9816d741889a16e7a98228f45f +msgid "" +"You may request PyMuPDF to do all of the above automatically by executing" +" `pymupdf.TOOLS.set_small_glyph_heights(True)`. This sets a global " +"parameter so that all subsequent text searches and text extractions are " +"based on reduced glyph heights, where meaningful." +msgstr "" + +#: ../../textpage.rst:328 dcd3f3103b3a404ea59ed88e1020efbe +msgid "" +"The following shows the original span rectangle in red and the rectangle " +"with re-computed height in blue." +msgstr "" + +#: ../../textpage.rst:334 c4897a84054b4b60ab66d79b8388e431 +msgid "" +"*\"flags\"* is an integer, which represents font properties except for " +"the first bit 0. They are to be interpreted like this:" +msgstr "" + +#: ../../textpage.rst:336 817f541495b84011b646fb0f5a0c1eff +msgid "" +"bit 0: superscripted (:data:`TEXT_FONT_SUPERSCRIPT`) -- not a font " +"property, detected by MuPDF code." +msgstr "" + +#: ../../textpage.rst:337 4966d75813f448898822b04faffbe380 +msgid "bit 1: italic (:data:`TEXT_FONT_ITALIC`)" +msgstr "" + +#: ../../textpage.rst:338 31205a9cd37941e0ac7c7fbbfb19ffc1 +msgid "bit 2: serifed (:data:`TEXT_FONT_SERIFED`)" +msgstr "" + +#: ../../textpage.rst:339 f887f5fcd078467cbd8ea212d8133aa3 +msgid "bit 3: monospaced (:data:`TEXT_FONT_MONOSPACED`)" +msgstr "" + +#: ../../textpage.rst:340 075ed56b276245c096a3204cc111339a +msgid "bit 4: bold (:data:`TEXT_FONT_BOLD`)" +msgstr "" + +#: ../../textpage.rst:342 fafa4c4a530a43fa8278e455dd07640f +msgid "Test these characteristics like so:" +msgstr "" + +#: ../../textpage.rst:348 ffbc346b79aa4a6189253e08eeb6280f +msgid "" +"Bits 1 thru 4 are font properties, i.e. encoded in the font program. " +"Please note, that this information is not necessarily correct or " +"complete: fonts quite often contain wrong data here." +msgstr "" + +#: ../../textpage.rst:350 67a56b648e48459abc86b3d71dded7d7 +msgid "" +"*\"char_flags\"* is an integer, which represents extra character " +"properties:" +msgstr "" + +#: ../../textpage.rst:352 16e54aeb7318448cb0edbbce096027cc +msgid "bit 0: strikeout." +msgstr "" + +#: ../../textpage.rst:353 f36bc128a5084f419c7b735cc7a5caeb +msgid "bit 1: underline." +msgstr "" + +#: ../../textpage.rst:354 05f6a81ee7234929b145f42b0eaeb4ee +msgid "bit 2: synthetic (always 0, see char dictionary)." +msgstr "" + +#: ../../textpage.rst:355 2d7d278b9b7b46479144808b701ed7da +msgid "bit 3: filled." +msgstr "" + +#: ../../textpage.rst:356 a0b8d460dd8a42e69537652330a1f9ee +msgid "bit 4: stroked." +msgstr "" + +#: ../../textpage.rst:357 430da53ed561403d90a8c2c28cc01a90 +msgid "bit 5: clipped." +msgstr "" + +#: ../../textpage.rst:359 26fc27f279ca42fba75113be40e54d40 +msgid "" +"For example if not filled and not stroked (`if not (char_flags & 2**3 & " +"2**4): ...`) then the text will be invisible." +msgstr "" + +#: ../../textpage.rst:362 f68e611505354310ab256d5f4ac755f3 +msgid "(`char_flags` is new in v1.25.2.)" +msgstr "" + +#: ../../textpage.rst:366 2b6029a504d149d0b74200b8dd10b461 +msgid "Character Dictionary for :meth:`extractRAWDICT`" +msgstr "" + +#: ../../textpage.rst:371 e3322f02de66484cb59d9ddf2e914bcb +msgid "character's left baseline point, :data:`point_like`" +msgstr "" + +#: ../../textpage.rst:372 3a206190a9b4495299d14480848ee306 +msgid "character rectangle, :data:`rect_like`" +msgstr "" + +#: ../../textpage.rst:373 7925e02a5e07443895c900f6450205fa +msgid "synthetic" +msgstr "" + +#: ../../textpage.rst:373 d557f7b009724b00a3418fb77e4943ce +msgid "bool." +msgstr "" + +#: ../../textpage.rst:374 fb692a970116495a977cac2daff0d94b +msgid "c" +msgstr "" + +#: ../../textpage.rst:374 30e9a39551314a14a169ee11d34c575f +msgid "the character (unicode)" +msgstr "" + +#: ../../textpage.rst:377 504a88fbf1324f19a3ed16c3f2c0c942 +msgid "(`synthetic` is new in v1.25.3.)" +msgstr "" + +#: ../../textpage.rst:379 9d820af6f3ac446a912245d16d5e7bdd +msgid "" +"This image shows the relationship between a character's bbox and its " +"quad: |textpagechar|" +msgstr "" + +#: ../../textpage.rst:381 64023f700298486f98b566eac340e37b +#: 7901af22526f478cb0ba76a7cc56288e +msgid "textpagechar" +msgstr "" + +#: ../../textpage.rst:386 ab41f5e333004a04a46c0505e9d7bebf +msgid "Footnotes" +msgstr "" + +#: ../../textpage.rst:387 9c3377a336cd4477b8afbd4528d4dee0 +msgid "" +"Image specifications for a PDF page are done in a page's (sub-) " +":data:`dictionary`, called `/Resources`. Resource dictionaries can be " +"**inherited** from any of the page's parent objects (usually the " +":data:`catalog` -- the top-level parent). The PDF creator may e.g. define" +" one `/Resources` on file level, naming all images and / or all fonts " +"ever used by any page. In these cases, :meth:`Page.get_images` and " +":meth:`Page.get_fonts` will consequently return the same lists for all " +"pages. If desired, this situation can be reverted using " +":meth:`Page.clean_contents`. After execution, the page's object " +"definition will show fonts and images that are actually used." +msgstr "" + +#: ../../textpage.rst:389 8ebe9e78accc4c87b80eb50757ed695f +msgid "" +"The coordinate systems of MuPDF and PDF are different in that MuPDF uses " +"the page's top-left point as `(0, 0)`. In PDF, this is the bottom-left " +"point. Therefore, the positive direction for MuPDF's y-axis is **from top" +" to bottom**. This causes the sign change for the sine value here: a " +"**negative** value indicates anti-clockwise rotation of the text." +msgstr "" + +#: ../../textpage.rst:391 9bfe3c4bcdac45eb9b746197c51d2a7a +msgid "" +"This value is always 96, the default of the PDF interpreter. It **does " +"not reflect** the resolution of the image itself. If you need the image's" +" resolution, use the :meth:`Pixmap.xres` and :meth:`Pixmap.yres` " +"attributes of the :ref:`Pixmap` created from the returned image binary." +msgstr "" + +#: ../../footer.rst:46 909bafb54f4646cd8842c5ccd34ceeef +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/textwriter.mo b/docs/locales/ko/LC_MESSAGES/textwriter.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/textwriter.po b/docs/locales/ko/LC_MESSAGES/textwriter.po new file mode 100644 index 000000000..f2b2fb396 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/textwriter.po @@ -0,0 +1,607 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 95c1ee7365714a268b45d71ca863b7ee +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 8dbea99845b74a23bde58d46198a17ac +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 cf3d095401604af48e44cc3a35d66bff +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../textwriter.rst:7 e9730367b10a49359e1d45817a7f7880 +msgid "TextWriter" +msgstr "" + +#: ../../textwriter.rst:9 cda3eb15a6fe4186b26bf8276092c97f +msgid "|pdf_only_class|" +msgstr "" + +#: ../../textwriter.rst:11 db627f8740eb4561a5527a9d4ca4e25f +msgid "New in v1.16.18" +msgstr "" + +#: ../../textwriter.rst:13 67e48f18fa9440238b3a1969be763ace +msgid "" +"This class represents a MuPDF *text* object. The basic idea is to " +"**decouple (1) text preparation, and (2) text output** to PDF pages." +msgstr "" + +#: ../../textwriter.rst:15 5a301b5eac7846a6a95cae297b7806a2 +msgid "" +"During **preparation**, a text writer stores any number of text pieces " +"(\"spans\") together with their positions and individual font " +"information. The **output** of the writer's prepared content may happen " +"multiple times to any PDF page with a compatible page size." +msgstr "" + +#: ../../textwriter.rst:17 7cf591fcc0cf40af9d587a72b702b960 +msgid "" +"A text writer is an elegant alternative to methods " +":meth:`Page.insert_text` and friends:" +msgstr "" + +#: ../../textwriter.rst:19 8d88b6d0545142bc9885b1dcbb44a4ea +msgid "" +"**Improved text positioning:** Choose any point where insertion of text " +"should start. Storing text returns the \"cursor position\" after the " +"*last character* of the span." +msgstr "" + +#: ../../textwriter.rst:20 4014fff4490f449991524305bfef1c4b +msgid "" +"**Free font choice:** Each text span has its own font and " +":data:`fontsize`. This lets you easily switch when composing a larger " +"text." +msgstr "" + +#: ../../textwriter.rst:21 96e0cdf2386340edafe0ed3b9aa2a211 +msgid "" +"**Automatic fallback fonts:** If a character is not supported by the " +"chosen font, alternative fonts are automatically searched. This " +"significantly reduces the risk of seeing unprintable symbols in the " +"output (\"TOFUs\" -- looking like a small rectangle). PyMuPDF now also " +"comes with the **universal font \"Droid Sans Fallback Regular\"**, which " +"supports **all Latin** characters (including Cyrillic and Greek), and " +"**all CJK** characters (Chinese, Japanese, Korean)." +msgstr "" + +#: ../../textwriter.rst:22 89a8833cb85e46909d178dc372f5aaac +msgid "" +"**Cyrillic and Greek Support:** The :ref:`Base-14-fonts` have integrated " +"support of Cyrillic and Greek characters **without specifying encoding.**" +" Your text may be a mixture of Latin, Greek and Cyrillic." +msgstr "" + +#: ../../textwriter.rst:23 939bfd358cb14ee1ac3d682b4310030f +msgid "" +"**Transparency support:** Parameter *opacity* is supported. This offers a" +" handy way to create watermark-style text." +msgstr "" + +#: ../../textwriter.rst:24 36106b9c863b43c39d4d348af9680b3e +msgid "" +"**Justified text:** Supported for any font -- not just simple fonts as in" +" :meth:`Page.insert_textbox`." +msgstr "" + +#: ../../textwriter.rst:25 88d0bcdd76b94defb985b51bd7050a50 +msgid "" +"**Reusability:** A TextWriter object exists independent from PDF pages. " +"It can be written multiple times, either to the same or to other pages, " +"in the same or in different PDFs, choosing different colors or " +"transparency." +msgstr "" + +#: ../../textwriter.rst:27 6ef8000439b141009aae765ba8c24479 +msgid "Using this object entails three steps:" +msgstr "" + +#: ../../textwriter.rst:29 55dea84332984f3ca477041ec762edcf +msgid "" +"When **created**, a TextWriter requires a fixed **page rectangle** in " +"relation to which it calculates text positions. A text writer can write " +"to pages of this size only." +msgstr "" + +#: ../../textwriter.rst:30 57f72fe6a49d41c7be7ed160f47f3019 +msgid "" +"Store text in the TextWriter using methods :meth:`TextWriter.append`, " +":meth:`TextWriter.appendv` and :meth:`TextWriter.fill_textbox` as often " +"as is desired." +msgstr "" + +#: ../../textwriter.rst:31 ac5cfe5c0bf548bf8358a2cc4efa279b +msgid "Output the TextWriter object on some PDF page(s)." +msgstr "" + +#: ../../textwriter.rst:35 a70f239f39dc44bcbbcc7f367f4f04e8 +msgid "" +"Starting with version 1.17.0, TextWriters **do support** text rotation " +"via the *morph* parameter of :meth:`TextWriter.write_text`." +msgstr "" + +#: ../../textwriter.rst:37 39efcbe7af8242d59a6e61a1577bd093 +msgid "" +"There also exists :meth:`Page.write_text` which combines one or more " +"TextWriters and jointly writes them to a given rectangle and with a given" +" rotation angle -- much like :meth:`Page.show_pdf_page`." +msgstr "" + +#: ../../textwriter.rst:41 58759c7fac7b4e859398a94c56641cf5 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../textwriter.rst:41 f8b99b262c4e479daa04854b10a8ca62 +msgid "**Short Description**" +msgstr "" + +#: ../../textwriter.rst:43 5aef1526d3ed401ebe84391dae14eb4e +msgid ":meth:`~TextWriter.append`" +msgstr "" + +#: ../../textwriter.rst:43 8a1f849d010e4a069dd84d412203d33f +msgid "Add text in horizontal write mode" +msgstr "" + +#: ../../textwriter.rst:44 a3aab120ca1545a79fce7af51ccd1964 +msgid ":meth:`~TextWriter.appendv`" +msgstr "" + +#: ../../textwriter.rst:44 30601ff66d064e7bbc6b0711078114c1 +msgid "Add text in vertical write mode" +msgstr "" + +#: ../../textwriter.rst:45 665726b1a2f74150b2cf20b54f5d3864 +msgid ":meth:`~TextWriter.fill_textbox`" +msgstr "" + +#: ../../textwriter.rst:45 79bdf8fe196e481f9e0f7e6b6d83fa39 +msgid "Fill rectangle (horizontal write mode)" +msgstr "" + +#: ../../textwriter.rst:46 50d2cf2d0f664964ad637397d702ba01 +msgid ":meth:`~TextWriter.write_text`" +msgstr "" + +#: ../../textwriter.rst:46 e17f4b99e3a3451090107da06c63083d +msgid "Output TextWriter to a PDF page" +msgstr "" + +#: ../../textwriter.rst:47 b1dd0ce95c524931a45226c559b5fc7f +msgid ":attr:`~TextWriter.color`" +msgstr "" + +#: ../../textwriter.rst:47 977d247f29344daebbc7eb2edad63dda +msgid "Text color (can be changed)" +msgstr "" + +#: ../../textwriter.rst:48 a702a69b27f04a1a8bf416872181b83c +msgid ":attr:`~TextWriter.last_point`" +msgstr "" + +#: ../../textwriter.rst:48 9c6a85c298f542b0ad83608987c80d7c +msgid "Last written character ends here" +msgstr "" + +#: ../../textwriter.rst:49 85bb365488064af39728ae2cff15a95e +msgid ":attr:`~TextWriter.opacity`" +msgstr "" + +#: ../../textwriter.rst:49 360143b334e144b188b4fc4606f37cd1 +msgid "Text opacity (can be changed)" +msgstr "" + +#: ../../textwriter.rst:50 44cf6996b53b4136925af2dd23e6d3c3 +msgid ":attr:`~TextWriter.rect`" +msgstr "" + +#: ../../textwriter.rst:50 a79f2dca7b614eaaa5682eae3f4fa368 +msgid "Page rectangle used by this TextWriter" +msgstr "" + +#: ../../textwriter.rst:51 86888b68bbf045c8a8e10712005c4259 +msgid ":attr:`~TextWriter.text_rect`" +msgstr "" + +#: ../../textwriter.rst:51 cd277f06068040caa6fda7759192bbd3 +msgid "Area occupied so far" +msgstr "" + +#: ../../textwriter.rst:55 07466a577be94bd3ab53ccdfc689e759 +msgid "**Class API**" +msgstr "" + +#: ../../textwriter.rst 0671bfe1c02041f88c29cf3ea4be264b +#: 7841a29906a944f189e7e759b6592a97 7cb374b81c074ac69a19656e5756ce8c +#: 800737d8455c4751bf6f9476b3e4a8df ffbf23da457b4c1fbab7452f6745e439 +msgid "Parameters" +msgstr "" + +#: ../../textwriter.rst:61 1156a360315c4f6cab4971ea0b50224f +msgid "rectangle internally used for text positioning computations." +msgstr "" + +#: ../../textwriter.rst:62 51fad4a4f8034a198c2666a029ac959b +msgid "" +"sets the transparency for the text to store here. Values outside the " +"interval `[0, 1)` will be ignored. A value of e.g. 0.5 means 50% " +"transparency." +msgstr "" + +#: ../../textwriter.rst:63 6b628abb5ffe4a5585ddb2b56255b5dd +msgid "" +"the color of the text. All colors are specified as floats *0 <= color <= " +"1*. A single float represents some gray level, a sequence implies the " +"colorspace via its length." +msgstr "" + +#: ../../textwriter.rst:68 0fa13673da764fdaab29ebfad67bf44c +msgid "*Changed in v1.18.9*" +msgstr "" + +#: ../../textwriter.rst:69 ../../textwriter.rst:100 +#: 08713255cee94718b3bc26b0dda8f233 be3763dd7a294137b65bf5a1770830d3 +msgid "*Changed in v1.18.15*" +msgstr "" + +#: ../../textwriter.rst:71 6f8eddc35363416184aad7c44e5d01ef +msgid "Add some new text in horizontal writing." +msgstr "" + +#: ../../textwriter.rst:73 ../../textwriter.rst:104 +#: 31e8d87141cf44c5890e5151a73047f4 f7e1346516c8429f9cafb3010a03a215 +msgid "start position of the text, the bottom left point of the first character." +msgstr "" + +#: ../../textwriter.rst:74 3b2200db94814c6b84f09e2a67431714 +msgid "" +"a string of arbitrary length. It will be written starting at position " +"\"pos\"." +msgstr "" + +#: ../../textwriter.rst:75 ../../textwriter.rst:106 +#: 6080d699b79c4e7cabc81e6632904644 8f2fdb3f4ec442f4b7703714fb642f4c +msgid "a :ref:`Font`. If omitted, `pymupdf.Font(\"helv\")` will be used." +msgstr "" + +#: ../../textwriter.rst:76 09fbce8fe4ee46b0a95710e2b4761014 +msgid "the :data:`fontsize`, a positive number, default 11." +msgstr "" + +#: ../../textwriter.rst:77 ../../textwriter.rst:108 +#: 4483c3fec8c3452cac52b7d831f281c1 87ccb28c8f1b4453af79b92ad4c5aabd +msgid "" +"the language to use, e.g. \"en\" for English. Meaningful values should be" +" compliant with the ISO 639 standards 1, 2, 3 or 5. Reserved for future " +"use: currently has no effect as far as we know." +msgstr "" + +#: ../../textwriter.rst:78 d8bd68ad24da40269a51cc710d5053e8 +msgid "" +"*(New in v1.18.9)* whether the text should be written from right to left." +" Applicable for languages like Arabian or Hebrew. Default is ``False``. " +"If ``True``, any Latin parts within the text will automatically " +"converted. There are no other consequences, i.e. " +":attr:`TextWriter.last_point` will still be the rightmost character, and " +"there neither is any alignment taking place. Hence you may want to use " +":meth:`TextWriter.fill_textbox` instead." +msgstr "" + +#: ../../textwriter.rst:79 75daea05a2a449aa9e600dc6f54efa72 +msgid "" +"*(New in v1.18.15)* look for the character's Small Capital version in the" +" font. If present, take that value instead. Otherwise the original " +"character (this font or the fallback font) will be taken. The fallback " +"font will never return small caps. For example, this snippet:: >>> doc =" +" pymupdf.open() >>> page = doc.new_page() >>> text = \"PyMuPDF: the " +"Python bindings for MuPDF\" >>> font = pymupdf.Font(\"figo\") # choose a" +" font with small caps >>> tw = pymupdf.TextWriter(page.rect) >>> " +"tw.append((50,100), text, font=font, small_caps=True) >>> " +"tw.write_text(page) >>> doc.ez_save(\"x.pdf\") will produce this PDF " +"text: .. image:: images/img-smallcaps.*" +msgstr "" + +#: ../../textwriter.rst:79 46eb184e73ae4219ac1e4bed06322f56 +msgid "" +"*(New in v1.18.15)* look for the character's Small Capital version in the" +" font. If present, take that value instead. Otherwise the original " +"character (this font or the fallback font) will be taken. The fallback " +"font will never return small caps. For example, this snippet::" +msgstr "" + +#: ../../textwriter.rst:90 973003c33fe84aa69d42e2c43c861a09 +msgid "will produce this PDF text:" +msgstr "" + +#: ../../textwriter.rst 031973dcb92c46dfb30974b0b0277dbb +#: 56067c1753344901a2a112d292086782 6fe2f7cc1d5b405588798ce1725db0d6 +msgid "Returns" +msgstr "" + +#: ../../textwriter.rst:95 ../../textwriter.rst:111 +#: 2916a5791a9446a1be47d9bdde016b5b 2d57d9c3e3404a1b8aaedf35dc4f6d7d +msgid "" +":attr:`text_rect` and :attr:`last_point`. *(Changed in v1.18.0:)* Raises " +"an exception for an unsupported font -- checked via " +":attr:`Font.is_writable`." +msgstr "" + +#: ../../textwriter.rst:102 53cbfa2552fa46b2837c5848f6ae7eed +msgid "Add some new text in vertical, top-to-bottom writing." +msgstr "" + +#: ../../textwriter.rst:105 77e2561d4b4a448caf4a7b3ecbc624ce +msgid "a string. It will be written starting at position \"pos\"." +msgstr "" + +#: ../../textwriter.rst:107 1195a41741cd44ca8653fce3a3c8b23f +msgid "the :data:`fontsize`, a positive float, default 11." +msgstr "" + +#: ../../textwriter.rst:109 ../../textwriter.rst:133 +#: 48cdfcdb373b4a939b9ac2491aaf9f76 a007fa3bc26e4925bac3b3884fa1d6f4 +msgid "*(New in v1.18.15)* see :meth:`append`." +msgstr "" + +#: ../../textwriter.rst:115 131d2ddda39f47e5b8750ce4e02aacf1 +msgid "" +"Changed in 1.17.3: New parameter `pos` to specify where to start writing " +"within rectangle." +msgstr "" + +#: ../../textwriter.rst:116 29062b4cba8b458c9715b63563932eea +msgid "" +"Changed in v1.18.9: Return list of lines which do not fit in rectangle. " +"Support writing right-to-left (e.g. Arabian, Hebrew)." +msgstr "" + +#: ../../textwriter.rst:117 1af15893d8c0406eaba47e8cbc605623 +msgid "Changed in v1.18.15: Prefer small caps if supported by the font." +msgstr "" + +#: ../../textwriter.rst:119 557382b2514d472bbe73f5017c792395 +msgid "" +"Fill a given rectangle with text in horizontal writing mode. This is a " +"convenience method to use as an alternative for :meth:`append`." +msgstr "" + +#: ../../textwriter.rst:121 cef4e997c224414e95918704fa70b178 +msgid "the area to fill. No part of the text will appear outside of this." +msgstr "" + +#: ../../textwriter.rst:122 eb9a1f87715c476190b440d505b21385 +msgid "" +"the text. Can be specified as a (UTF-8) string or a list / tuple of " +"strings. A string will first be converted to a list using *splitlines()*." +" Every list item will begin on a new line (forced line breaks)." +msgstr "" + +#: ../../textwriter.rst:123 adaa607ca4b34119b1413a21aa5d5703 +msgid "" +"*(new in v1.17.3)* start storing at this point. Default is a point near " +"rectangle top-left." +msgstr "" + +#: ../../textwriter.rst:124 093d30283065429a8003316402078989 +msgid "the :ref:`Font`, default `pymupdf.Font(\"helv\")`." +msgstr "" + +#: ../../textwriter.rst:125 fa67844b1bdc4fd5b33c77ea89ae7619 +msgid "the :data:`fontsize`." +msgstr "" + +#: ../../textwriter.rst:126 a3f0cf660cc34b2aa6461b460ccc9fd7 +msgid "" +"text alignment. Use one of TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, " +"TEXT_ALIGN_RIGHT or TEXT_ALIGN_JUSTIFY." +msgstr "" + +#: ../../textwriter.rst:127 fab2e37b003c4547a135db4871ab87f9 +msgid "" +"*(New in v1.18.9)* whether the text should be written from right to left." +" Applicable for languages like Arabian or Hebrew. Default is ``False``. " +"If ``True``, any Latin parts are automatically reverted. You must still " +"set the alignment (if you want right alignment), it does not happen " +"automatically -- the other alignment options remain available as well." +msgstr "" + +#: ../../textwriter.rst:128 fbd4a0182852411d9c83784e6421be47 +msgid "" +"on text overflow do nothing, warn, or raise an exception. Overflow text " +"will never be written. **Changed in v1.18.9:** * Default is ``None``. * " +"The list of overflow lines will be returned." +msgstr "" + +#: ../../textwriter.rst:128 0e6db582f2eb4eb28e4c2efbd9fb40e1 +msgid "" +"on text overflow do nothing, warn, or raise an exception. Overflow text " +"will never be written. **Changed in v1.18.9:**" +msgstr "" + +#: ../../textwriter.rst:130 cdae6e2706854c9e826f849d936c11ee +msgid "Default is ``None``." +msgstr "" + +#: ../../textwriter.rst:131 1bda032411484b10b23479232b916047 +msgid "The list of overflow lines will be returned." +msgstr "" + +#: ../../textwriter.rst 035f3f34d091461bbe3cc1d030bfe153 +#: 1871d0ab981b44759c8973a335232ef3 6459020d5302480fb99a57af3fd39d02 +#: 92e14712db2944b694cdf765796b471d d0a0b9758d76412fb2a1f68276a1f782 +#: f3e6dee2f74245bfa95d18620e9bd73d +msgid "Return type" +msgstr "" + +#: ../../textwriter.rst:136 396c812b4c0346d69cbc578eaae29744 +msgid "" +"*New in v1.18.9* -- List of lines that did not fit in the rectangle. Each" +" item is a tuple `(text, length)` containing a string and its length (on " +"the page)." +msgstr "" + +#: ../../textwriter.rst:138 cd3a09fa82ee40e399e27a6aa0c1235d +msgid "" +"Use these methods as often as is required -- there is no technical limit " +"(except memory constraints of your system). You can also mix " +":meth:`append` and text boxes and have multiple of both. Text positioning" +" is exclusively controlled by the insertion point. Therefore there is no " +"need to adhere to any order. *(Changed in v1.18.0:)* Raise an exception " +"for an unsupported font -- checked via :attr:`Font.is_writable`." +msgstr "" + +#: ../../textwriter.rst:143 54709b98b30a47ac89166f31faf2772a +msgid "" +"Write the TextWriter text to a page, which is the only mandatory " +"parameter. The other parameters can be used to temporarily override the " +"values used when the TextWriter was created." +msgstr "" + +#: ../../textwriter.rst:145 59f4fdcbbc44452680ba4c0c95aa5cff +msgid "write to this :ref:`Page`." +msgstr "" + +#: ../../textwriter.rst:146 ../../textwriter.rst:147 +#: 376b4dcec8264f3db2f6be76d778904b d45c4d5a07474ef4a0cd683fdd04bcdc +msgid "override the value of the TextWriter for this output." +msgstr "" + +#: ../../textwriter.rst:148 ee07ac03480b41539d94053d359dd9d3 +msgid "" +"modify the text appearance by applying a matrix to it. If provided, this " +"must be a sequence *(fixpoint, matrix)* with a point-like *fixpoint* and " +"a matrix-like *matrix*. A typical example is rotating the text around " +"*fixpoint*." +msgstr "" + +#: ../../textwriter.rst:149 b45dc013b8e740f9bef33593ed5c8711 +msgid "put in foreground (default) or background." +msgstr "" + +#: ../../textwriter.rst:150 ba9cfbd9695340699d7179b74412ef18 +msgid "*(new in v1.18.4)* the :data:`xref` of an :data:`OCG` or :data:`OCMD`." +msgstr "" + +#: ../../textwriter.rst:151 9523549f48f246a3ae03b7bc5f901456 +msgid "" +"The PDF `Tr` operator value. Values: 0 (default), 1, 2, 3 (invisible). " +".. image:: images/img-rendermode.*" +msgstr "" + +#: ../../textwriter.rst:151 78528b40a6544fe0a046dee8ae6857ef +msgid "The PDF `Tr` operator value. Values: 0 (default), 1, 2, 3 (invisible)." +msgstr "" + +#: ../../textwriter.rst:158 525f73853e924927ad796c65943a368d +msgid "The area currently occupied." +msgstr "" + +#: ../../textwriter.rst:160 ../../textwriter.rst:184 +#: ba565ed25cdd42f7862fcb93e757cf70 be5a7d304fd0479ea3d522fa0b628537 +msgid ":ref:`Rect`" +msgstr "" + +#: ../../textwriter.rst:164 87ebb8ff55c24240abc1589af86e4a9a +msgid "" +"The \"cursor position\" -- a :ref:`Point` -- after the last written " +"character (its bottom-right)." +msgstr "" + +#: ../../textwriter.rst:166 ac55d30024ef4851bc1e890d44698e93 +msgid ":ref:`Point`" +msgstr "" + +#: ../../textwriter.rst:170 3f90c9a1dc4c4511a85d2dd1d614e275 +msgid "The text opacity (modifiable)." +msgstr "" + +#: ../../textwriter.rst:176 40b6c71ad92443f69b941e2ae68ef65d +msgid "The text color (modifiable)." +msgstr "" + +#: ../../textwriter.rst:182 c8c0cc26dcc643b4b7a36449cc37508b +msgid "" +"The page rectangle for which this TextWriter was created. Must not be " +"modified." +msgstr "" + +#: ../../textwriter.rst:187 96d56c1eedc9403da49260989a4dc7c5 +msgid "" +"To see some demo scripts dealing with TextWriter, have a look at `the " +"TextWriter demo scripts `_." +msgstr "" + +#: ../../textwriter.rst:189 86f5ad85ef9f430798003667a5d4bba8 +msgid "Opacity and color apply to **all the text** in this object." +msgstr "" + +#: ../../textwriter.rst:190 3fd56e7645674dd592624498a3b40033 +msgid "" +"If you need different colors / transparency, you must create a separate " +"TextWriter. Whenever you determine the color should change, simply append" +" the text to the respective TextWriter using the previously returned " +":attr:`last_point` as position for the new text span." +msgstr "" + +#: ../../textwriter.rst:191 473cca9e82e445e7a947ffeaead9f1d6 +msgid "" +"Appending items or text boxes can occur in arbitrary order: only the " +"position parameter controls where text appears." +msgstr "" + +#: ../../textwriter.rst:192 e86c99a3e580410c80b33c1b9273d1e5 +msgid "" +"Font and :data:`fontsize` can freely vary within the same TextWriter. " +"This can be used to let text with different properties appear on the same" +" displayed line: just specify *pos* accordingly, and e.g. set it to " +":attr:`last_point` of the previously added item." +msgstr "" + +#: ../../textwriter.rst:193 0dd912f04fa84ab7832bd944567f6dc1 +msgid "" +"You can use the *pos* argument of :meth:`TextWriter.fill_textbox` to set " +"the position of the first text character. This allows filling the same " +"textbox with contents from different :ref:`TextWriter` objects, thus " +"allowing for multiple colors, opacities, etc." +msgstr "" + +#: ../../textwriter.rst:194 46ddcc45b9594214860870dcb571f619 +msgid "" +"MuPDF does not support all fonts with this feature, e.g. no Type3 fonts. " +"Starting with v1.18.0 this can be checked via the font attribute " +":attr:`Font.is_writable`. This attribute is also checked when using " +":ref:`TextWriter` methods." +msgstr "" + +#: ../../footer.rst:46 b6d5682a116d45b9b5a6850c9cfd6f9e +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/the-basics.mo b/docs/locales/ko/LC_MESSAGES/the-basics.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/the-basics.po b/docs/locales/ko/LC_MESSAGES/the-basics.po new file mode 100644 index 000000000..cd01a796d --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/the-basics.po @@ -0,0 +1,807 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 f7b025d9345a4b48b8e13575dce4b5f6 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 096cfd3146e049549b47ca986e5fb8b9 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 54780494620e4f37a46301389f9e346c +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../the-basics.rst:8 b573d287df3a4994ab9fc76c334671ff +msgid "The Basics" +msgstr "" + +#: ../../the-basics.rst:13 f7ad136a192c476f8006b215bda74aeb +msgid "Opening a File" +msgstr "" + +#: ../../the-basics.rst:16 02f1cd284e354ff99efcff59db44a1d3 +msgid "To open a file, do the following:" +msgstr "" + +#: ../../the-basics.rst:27 ../../the-basics.rst:58 ../../the-basics.rst:119 +#: ../../the-basics.rst:149 ../../the-basics.rst:199 ../../the-basics.rst:249 +#: ../../the-basics.rst:287 ../../the-basics.rst:377 ../../the-basics.rst:416 +#: ../../the-basics.rst:467 ../../the-basics.rst:553 ../../the-basics.rst:638 +#: ../../the-basics.rst:694 ../../the-basics.rst:886 ../../the-basics.rst:1070 +#: 0068950bcad54023968e3f762f5f517f 05774a0919aa4c5c9c36f6bac5d452ef +#: 0e7e23d4b7bc416cae884504c277d711 1225e0c609dc479ca2f4b881424a32ac +#: 2222ebbac6364d5b9b08e76451ddf9a1 47f2b0f15354473b88fd164c09ab6f50 +#: 4830de8bf34d47e6a2ffef8fe914a53f 7efa68f16195464b9faadc6def36171f +#: 86a29e64e6a24ade8a8ac4da891c7f28 8daf9faca165448ba7a882a6b2cdb4e2 +#: 9f4f8da64538439287fec0bfd34094c4 b84230e6f2734b0b8af4a50458974ebf +#: d5c2e1f3166846bf85914a88c378cfc2 da8824eb7edf4d73aa56dc95df1dd1d1 +#: f53b94d6fdab4636b68a2e80cfc9f035 +msgid "**Taking it further**" +msgstr "" + +#: ../../the-basics.rst:29 89354d4f696a4471b78c43ab5c2a5c2a +msgid "" +"See the :ref:`list of supported file types` and " +":ref:`The How to Guide on Opening Files ` for more " +"advanced options." +msgstr "" + +#: ../../the-basics.rst:38 5cac62e394ac45989dbc0d2e8dd159be +msgid "Extract text from a |PDF|" +msgstr "" + +#: ../../the-basics.rst:40 a0d1eb5ca0da4ab8951f1b2b8623289d +msgid "To extract all the text from a |PDF| file, do the following:" +msgstr "" + +#: ../../the-basics.rst:54 883a6098a76f43d1a5ac736b2cce28a8 +msgid "" +"Of course it is not just |PDF| which can have text extracted - all the " +":ref:`supported document file formats ` such as " +":title:`MOBI`, :title:`EPUB`, :title:`TXT` can have their text extracted." +msgstr "" + +#: ../../the-basics.rst:60 20545bb8acee4ab784b06e10f8f6c531 +msgid "" +"If your document contains image based text content the use OCR on the " +"page for subsequent text extraction:" +msgstr "" + +#: ../../the-basics.rst:67 ../../the-basics.rst:121 +#: a3622ac2d3a8426eb4bf51fd86910cc2 e6467ed2be7e4603bb2d779b91c7f5b3 +msgid "" +"There are many more examples which explain how to extract text from " +"specific areas or how to extract tables from documents. Please refer to " +"the :ref:`How to Guide for Text`." +msgstr "" + +#: ../../the-basics.rst:69 707cbcbf6a784fb39564f16a7e3dc032 +msgid "" +"You can now also :ref:`extract text in Markdown " +"format`." +msgstr "" + +#: ../../the-basics.rst:71 ../../the-basics.rst:123 ../../the-basics.rst:153 +#: ../../the-basics.rst:208 ../../the-basics.rst:255 ../../the-basics.rst:291 +#: ../../the-basics.rst:318 ../../the-basics.rst:343 ../../the-basics.rst:383 +#: ../../the-basics.rst:420 ../../the-basics.rst:474 ../../the-basics.rst:500 +#: ../../the-basics.rst:527 ../../the-basics.rst:608 ../../the-basics.rst:659 +#: ../../the-basics.rst:698 ../../the-basics.rst:762 ../../the-basics.rst:821 +#: ../../the-basics.rst:898 ../../the-basics.rst:928 ../../the-basics.rst:964 +#: ../../the-basics.rst:990 ../../the-basics.rst:1074 +#: 07855b8e74cf474bb2c22f4ea1486b77 14463d4aca01470b9aeb4b607b17f5c9 +#: 1c3978a5519a4d36b5e656a91c01ecdf 2c0ea7a221bc482c9799c3a352cb1eb9 +#: 5c80f9f1865449309e09d88d691bb68a 5efa802d04ed4ed89cd05d92421170f6 +#: 67c48e5b292f4e9b9dd54a97ff4accf5 890c419a3008426abe76d049f182b2f8 +#: 89defd51bf04459e9d7361784de9c261 8fd41167904a409080c488f71c5f60e3 +#: 97e7e736a10449a9bb80fe64abc4572d 9a7f26aa2f0a4af2aefe5dbe1f4bd77f +#: a017d665ee0942bc950c27a6f1261a1d a3129d1fc34c489dbce01f464dab1fec +#: a42c9f54e3c1452ba53a839adc35e52c bda2261d0d2e4a559d33aa934c6fc244 +#: bda7623fd6574e8a9c992679676465a3 c499bd5e8117498eb20b5ad1d95592b0 +#: cce4af742f274d3096ca85a76a595aba d7b4b9ff758e46f99007f97eb4ff95c7 +#: dbcf27434c3f43c1850b747a56c81c6d e9ad6ac85a8243b7837a2ba0a008093e +#: fe8941aaa58649e6b9bbe06143ba9fa4 +msgid "**API reference**" +msgstr "" + +#: ../../the-basics.rst:73 b7bf2d8223824a34a302b49fe4ee31fb +msgid ":meth:`Page.get_text`" +msgstr "" + +#: ../../the-basics.rst:85 9ada4b1ef4a24e7493857603dcd93d75 +msgid "Extract images from a |PDF|" +msgstr "" + +#: ../../the-basics.rst:87 5ed12b425f01418ba06929d7c6d08a32 +msgid "To extract all the images from a |PDF| file, do the following:" +msgstr "" + +#: ../../the-basics.rst:125 b8190e106cd745da99ebfa71d6dc7550 +msgid ":meth:`Page.get_images`" +msgstr "" + +#: ../../the-basics.rst:126 a75e43c33c564cf6a23b07e3f3d7b4f3 +msgid ":ref:`Pixmap`" +msgstr "" + +#: ../../the-basics.rst:133 6faa94d7643a453791a62048e151e9f6 +msgid "Extract vector graphics" +msgstr "" + +#: ../../the-basics.rst:135 4f09604cb7f64a9f8e72293ed907ad38 +msgid "To extract all the vector graphics from a document page, do the following:" +msgstr "" + +#: ../../the-basics.rst:145 2a5a383743524b57b81c68a8b6342599 +msgid "" +"This will return a dictionary of paths for any vector drawings found on " +"the page." +msgstr "" + +#: ../../the-basics.rst:151 225e28d931034158a41317ebaea841d5 +msgid "" +"Please refer to: :ref:`How to Extract " +"Drawings`." +msgstr "" + +#: ../../the-basics.rst:155 6f4863d999e44206b34be29b3deb363e +msgid ":meth:`Page.get_drawings`" +msgstr "" + +#: ../../the-basics.rst:166 810da3e647c342ef9dc50496dad28ba4 +msgid "Merging |PDF| files" +msgstr "" + +#: ../../the-basics.rst:168 f5160b79b89244d8a6045b6cbdd53e39 +msgid "To merge |PDF| files, do the following:" +msgstr "" + +#: ../../the-basics.rst:182 fdc9cd0b81044db2822c364c5561f18d +msgid "Merging |PDF| files with other types of file" +msgstr "" + +#: ../../the-basics.rst:184 44edda88e0bb4b66bb4b3f4271487f7b +msgid "" +"With :meth:`Document.insert_file` you can invoke the method to merge " +":ref:`supported files` with |PDF|. For example:" +msgstr "" + +#: ../../the-basics.rst:201 af6d68b7867f4c02b0b25a870eb70be1 +msgid "" +"It is easy to join PDFs with :meth:`Document.insert_pdf` & " +":meth:`Document.insert_file`. Given open |PDF| documents, you can copy " +"page ranges from one to the other. You can select the point where the " +"copied pages should be placed, you can revert the page sequence and also " +"change page rotation." +msgstr "" + +#: ../../the-basics.rst:203 8c29c60b2e3944278d03602d769f8c7c +msgid "" +"The GUI script `join.py `_ uses this method" +" to join a list of files while also joining the respective table of " +"contents segments. It looks like this:" +msgstr "" + +#: ../../the-basics.rst:210 dfc7e6e8e50b40d19288f88e51710867 +msgid ":meth:`Document.insert_pdf`" +msgstr "" + +#: ../../the-basics.rst:211 3c85c393fc9a47d1a1f4d4bd44f71f7d +msgid ":meth:`Document.insert_file`" +msgstr "" + +#: ../../the-basics.rst:218 5374c164503d49308ea222d3f1f4ac68 +msgid "Working with Coordinates" +msgstr "" + +#: ../../the-basics.rst:220 32ef87567fbf4591aa33613a467efc43 +msgid "" +"There is one *mathematical term* that you should feel comfortable with " +"when using |PyMuPDF| - **\"coordinates\"**. Please have a quick look at " +"the :ref:`Coordinates` section to understand the coordinate system to " +"help you with positioning objects and understand your document space." +msgstr "" + +#: ../../the-basics.rst:229 808c51c176874e4f8e4f561f56a7e050 +msgid "Adding a watermark to a |PDF|" +msgstr "" + +#: ../../the-basics.rst:231 e3bd1bcc59dd4871843542cffb69e4d9 +msgid "To add a watermark to a |PDF| file, do the following:" +msgstr "" + +#: ../../the-basics.rst:251 a02e5eacf1034f0fae2054ffe20904e8 +msgid "" +"Adding watermarks is essentially as simple as adding an image at the base" +" of each |PDF| page. You should ensure that the image has the required " +"opacity and aspect ratio to make it look the way you need it to." +msgstr "" + +#: ../../the-basics.rst:253 d20d708a49884eba9914d117e2f10133 +msgid "" +"In the example above a new image is created from each file reference, but" +" to be more performant (by saving memory and file size) this image data " +"should be referenced only once - see the code example and explanation on " +":meth:`Page.insert_image` for the implementation." +msgstr "" + +#: ../../the-basics.rst:257 3d33f6e4d88f4ad0934fe5db402cbd31 +msgid ":meth:`Page.bound`" +msgstr "" + +#: ../../the-basics.rst:258 ../../the-basics.rst:294 +#: 289513e33a19434b93565b65bb3c2d5c fe5190d74fae437cbe633bd7b771d7ef +msgid ":meth:`Page.insert_image`" +msgstr "" + +#: ../../the-basics.rst:267 13c93c134b884caa94bdb24bcf268c12 +msgid "Adding an image to a |PDF|" +msgstr "" + +#: ../../the-basics.rst:269 4c1ed375c4bf445fbb7cbc313de62c6d +msgid "To add an image to a |PDF| file, for example a logo, do the following:" +msgstr "" + +#: ../../the-basics.rst:289 de096300347c4213ba1adacf5f0db3f9 +msgid "" +"As with the watermark example you should ensure to be more performant by " +"only referencing the image once if possible - see the code example and " +"explanation on :meth:`Page.insert_image`." +msgstr "" + +#: ../../the-basics.rst:293 8945f4f902264ba6b1269f807ddfd71e +msgid ":ref:`Rect`" +msgstr "" + +#: ../../the-basics.rst:303 71949133fcb94c6f98465813be0eb404 +msgid "Rotating a |PDF|" +msgstr "" + +#: ../../the-basics.rst:305 7e3ebb344a7348c2bf946c4795d74d92 +msgid "To add a rotation to a page, do the following:" +msgstr "" + +#: ../../the-basics.rst:320 3d4e339ae052429bb76f09916c436436 +msgid ":meth:`Page.set_rotation`" +msgstr "" + +#: ../../the-basics.rst:328 6e2d701fd5f047cda7216925fec76fc7 +msgid "Cropping a |PDF|" +msgstr "" + +#: ../../the-basics.rst:330 b7c23f5face54c169824a13ca7b42f15 +msgid "To crop a page to a defined :ref:`Rect`, do the following:" +msgstr "" + +#: ../../the-basics.rst:345 a6b1cd0d8cad41189d7c67fabc5f334b +msgid ":meth:`Page.set_cropbox`" +msgstr "" + +#: ../../the-basics.rst:354 d575dbec6b32487f8b9cf82c6e30d10c +msgid ":index:`Attaching Files `" +msgstr "" + +#: ../../the-basics.rst:356 c9c54ff0348c471ead7ff5c1018b7d28 +msgid "To attach another file to a page, do the following:" +msgstr "" + +#: ../../the-basics.rst:379 3314a0f701fc46868da9fe2bf79bdca5 +msgid "" +"When adding the file with :meth:`Page.add_file_annot` note that the third" +" parameter for the `filename` should include the actual file extension. " +"Without this the attachment possibly will not be able to be recognized as" +" being something which can be opened. For example, if the `filename` is " +"just *\"attachment\"* when view the resulting PDF and attempting to open " +"the attachment you may well get an error. However, with " +"*\"attachment.pdf\"* this can be recognized and opened by PDF viewers as " +"a valid file type." +msgstr "" + +#: ../../the-basics.rst:381 b376de22c21a4a678e98898f240e4e68 +msgid "" +"The default icon for the attachment is by default a \"push pin\", however" +" you can change this by setting the `icon` parameter." +msgstr "" + +#: ../../the-basics.rst:385 ddad44834e324cef9b0c5a12b15fb49e +msgid ":ref:`Point`" +msgstr "" + +#: ../../the-basics.rst:386 ../../the-basics.rst:422 +#: b75a50b64e26476e944aa8754f20bf2f f27fcc6d362c42cda221464725dea5af +msgid ":meth:`Document.tobytes`" +msgstr "" + +#: ../../the-basics.rst:387 0a0ed0f4324040aa8e444b4b4434a966 +msgid ":meth:`Page.add_file_annot`" +msgstr "" + +#: ../../the-basics.rst:396 2c6b15690e394abebe55eb54a8f0e9b4 +msgid ":index:`Embedding Files `" +msgstr "" + +#: ../../the-basics.rst:398 566061a4f08642cf8ce04c7d8822cfb5 +msgid "To embed a file to a document, do the following:" +msgstr "" + +#: ../../the-basics.rst:418 c7fc5f4b49a94065be458d831ec56a8d +msgid "" +"As with :ref:`attaching files`, when adding " +"the file with :meth:`Document.embfile_add` note that the first parameter " +"for the `filename` should include the actual file extension." +msgstr "" + +#: ../../the-basics.rst:423 e86602ef585c432bab7857de813ba158 +msgid ":meth:`Document.embfile_add`" +msgstr "" + +#: ../../the-basics.rst:433 1dadf897eed34352b65305be6227cc68 +msgid "Deleting Pages" +msgstr "" + +#: ../../the-basics.rst:435 b2ec142ee4284464bac65150b104a3c8 +msgid "To delete a page from a document, do the following:" +msgstr "" + +#: ../../the-basics.rst:445 26bcb9712b45488d81fcd37a2c5338dc +msgid "To delete a multiple pages from a document, do the following:" +msgstr "" + +#: ../../the-basics.rst:459 2a651424c7104dda8fccdeb738d8f3d4 +msgid "What happens if I delete a page referred to by bookmarks or hyperlinks?" +msgstr "" + +#: ../../the-basics.rst:461 268000ef67c644459cb4d5f0f21c3a0f +msgid "" +"A bookmark (entry in the Table of Contents) will become inactive and will" +" no longer navigate to any page." +msgstr "" + +#: ../../the-basics.rst:463 c9da611cc8bd48d69c43c3418cd4dba8 +msgid "" +"A hyperlink will be removed from the page that contains it. The visible " +"content on that page will not otherwise be changed in any way." +msgstr "" + +#: ../../the-basics.rst:469 691f875a941741d08cb1049a5fd7fea0 +msgid "" +"The page index is zero-based, so to delete page 10 of a document you " +"would do the following `doc.delete_page(9)`." +msgstr "" + +#: ../../the-basics.rst:471 471029bcec864d5c83b56258d14c9a6b +msgid "" +"Similarly, `doc.delete_pages(from_page=9, to_page=14)` will delete pages " +"10 - 15 inclusive." +msgstr "" + +#: ../../the-basics.rst:476 a6edabe8375f47aab6ecea141c9de9ef +msgid ":meth:`Document.delete_page`" +msgstr "" + +#: ../../the-basics.rst:477 dc08fba2f443449d9604c358be0f59b2 +msgid ":meth:`Document.delete_pages`" +msgstr "" + +#: ../../the-basics.rst:485 94049f92c8ad4d6b8b0024d436ab9235 +msgid "Re-Arranging Pages" +msgstr "" + +#: ../../the-basics.rst:487 82cc8c6d56974119a12c0c709d30c2d0 +msgid "To change the sequence of pages, i.e. re-arrange pages, do the following:" +msgstr "" + +#: ../../the-basics.rst:502 4c1a980fdd2442ae896528a2b043b4d7 +msgid ":meth:`Document.move_page`" +msgstr "" + +#: ../../the-basics.rst:511 1b6a6d6430b64d2fa81c618aa5a36c2a +msgid "Copying Pages" +msgstr "" + +#: ../../the-basics.rst:514 703c6c326a244e3f95a5f9308a4db9f8 +msgid "To copy pages, do the following:" +msgstr "" + +#: ../../the-basics.rst:529 e0f411a53f464a6cb29477e745869390 +msgid ":meth:`Document.copy_page`" +msgstr "" + +#: ../../the-basics.rst:537 3f3ac486797b4e59a03d43dfd13d0ae9 +msgid "Selecting Pages" +msgstr "" + +#: ../../the-basics.rst:540 c5e43d6789904283afdfc2c3e31f4b3e +msgid "To select pages, do the following:" +msgstr "" + +#: ../../the-basics.rst:555 0c1c3c72d9c542d5a9fd994ca426390d +msgid "" +"With |PyMuPDF| you have all options to copy, move, delete or re-arrange " +"the pages of a |PDF|. Intuitive methods exist that allow you to do this " +"on a page-by-page level, like the :meth:`Document.copy_page` method." +msgstr "" + +#: ../../the-basics.rst:557 99b4ed9af68646628e27f7fd50ed6026 +msgid "" +"Or you alternatively prepare a complete new page layout in form of a " +":title:`Python` sequence, that contains the page numbers you want, in the" +" sequence you want, and as many times as you want each page. The " +"following may illustrate what can be done with :meth:`Document.select`" +msgstr "" + +#: ../../the-basics.rst:564 6807a098f55f41e08049ad773d010494 +msgid "" +"Now let's prepare a PDF for double-sided printing (on a printer not " +"directly supporting this):" +msgstr "" + +#: ../../the-basics.rst:566 2bd6434b882a4d8db3c304ffbd3aa687 +msgid "" +"The number of pages is given by `len(doc)` (equal to `doc.page_count`). " +"The following lists represent the even and the odd page numbers, " +"respectively:" +msgstr "" + +#: ../../the-basics.rst:573 293d86f017734a8ebc3c3f116fd93ed9 +msgid "" +"This snippet creates the respective sub documents which can then be used " +"to print the document:" +msgstr "" + +#: ../../the-basics.rst:585 7c03acb1833d4a7e835b8d14d71d52a1 +msgid "" +"For more information also have a look at this Wiki `article " +"`_." +msgstr "" + +#: ../../the-basics.rst:588 54ec68649c0e4b609bbc4f4ad4e005cb +msgid "" +"The following example will reverse the order of all pages (**extremely " +"fast:** sub-second time for the 756 pages of the :ref:`AdobeManual`):" +msgstr "" + +#: ../../the-basics.rst:598 bb40e1408cac4faa8820273561325390 +msgid "" +"This snippet duplicates the PDF with itself so that it will contain the " +"pages *0, 1, ..., n, 0, 1, ..., n* **(extremely fast and without " +"noticeably increasing the file size!)**:" +msgstr "" + +#: ../../the-basics.rst:610 2c346b1ac6fe452d96ab804a995e9039 +msgid ":meth:`Document.select`" +msgstr "" + +#: ../../the-basics.rst:621 0c4e94066fe44ad499c54211fe16aae6 +msgid "Adding Blank Pages" +msgstr "" + +#: ../../the-basics.rst:623 b2cff0e96799476d884ceb9a27a0a394 +msgid "To add a blank page, do the following:" +msgstr "" + +#: ../../the-basics.rst:640 ce36fc6b536c46d4b1f018b19e714a4d +msgid "Use this to create the page with another pre-defined paper format:" +msgstr "" + +#: ../../the-basics.rst:648 7d2dc00bc025437295e6e7ac8de51e61 +msgid "" +"The convenience function :meth:`paper_size` knows over 40 industry " +"standard paper formats to choose from. To see them, inspect dictionary " +":attr:`paperSizes`. Pass the desired dictionary key to :meth:`paper_size`" +" to retrieve the paper dimensions. Upper and lower case is supported. If " +"you append \"-L\" to the format name, the landscape version is returned." +msgstr "" + +#: ../../the-basics.rst:650 b44282f4ada544d1b18a337f793bbdfb +msgid "" +"Here is a 3-liner that creates a |PDF|: with one empty page. Its file " +"size is 460 bytes:" +msgstr "" + +#: ../../the-basics.rst:661 af312c05560c44ba8fb88cf29ece1e12 +msgid ":meth:`Document.new_page`" +msgstr "" + +#: ../../the-basics.rst:662 055ca7bfd52e46bda58c8e862bd8e592 +msgid ":attr:`paperSizes`" +msgstr "" + +#: ../../the-basics.rst:671 6ec80ca2c8344ab1b10072ee1e7ecfdf +msgid "Inserting Pages with Text Content" +msgstr "" + +#: ../../the-basics.rst:673 7c9a1501fb5d405a9f5ad46a99f0b474 +msgid "" +"Using the :meth:`Document.insert_page` method also inserts a new page and" +" accepts the same `width` and `height` parameters. But it lets you also " +"insert arbitrary text into the new page and returns the number of " +"inserted lines." +msgstr "" + +#: ../../the-basics.rst:696 815fd32c08dc43ed939c0022fe0cb355 +msgid "" +"The text parameter can be a (sequence of) string (assuming UTF-8 " +"encoding). Insertion will start at :ref:`Point` (50, 72), which is one " +"inch below top of page and 50 points from the left. The number of " +"inserted text lines is returned." +msgstr "" + +#: ../../the-basics.rst:700 ee1877c30f20440d928f255b6b27ec30 +msgid ":meth:`Document.insert_page`" +msgstr "" + +#: ../../the-basics.rst:711 3399cdc8dfc44101b644bcf9d0619529 +msgid "Splitting Single Pages" +msgstr "" + +#: ../../the-basics.rst:713 1f3717fc854a40d5a0fd9753b49a88a0 +msgid "" +"This deals with splitting up pages of a |PDF| in arbitrary pieces. For " +"example, you may have a |PDF| with *Letter* format pages which you want " +"to print with a magnification factor of four: each page is split up in 4 " +"pieces which each going to a separate |PDF| page in *Letter* format " +"again." +msgstr "" + +#: ../../the-basics.rst:756 ../../the-basics.rst:814 +#: 0ece8212e7b845609bb12d9e90ea10a7 e15f29ebe62e4a60a0bbbb8de5608f21 +msgid "Example:" +msgstr "" + +#: ../../the-basics.rst:764 ../../the-basics.rst:823 +#: aca3faccb4c045c097b9959629642eef b75fa5b0807b4f56bffef5b96e756cdd +msgid ":meth:`Page.cropbox_position`" +msgstr "" + +#: ../../the-basics.rst:765 ../../the-basics.rst:824 +#: 0ffa92661611435b91fb6a7e14df8701 2322a38c63f947d589e9b2ec7f1f17f2 +msgid ":meth:`Page.show_pdf_page`" +msgstr "" + +#: ../../the-basics.rst:775 e866676a9e9f4db28f98f0921db8b45f +msgid "Combining Single Pages" +msgstr "" + +#: ../../the-basics.rst:777 66702d857bfe496f8bd6f6120c0c5137 +msgid "" +"This deals with joining |PDF| pages to form a new |PDF| with pages each " +"combining two or four original ones (also called \"2-up\", \"4-up\", " +"etc.). This could be used to create booklets or thumbnail-like overviews." +msgstr "" + +#: ../../the-basics.rst:833 dd61fd34be574893bee88166ee3d19f3 +msgid "|PDF| Encryption & Decryption" +msgstr "" + +#: ../../the-basics.rst:836 16ea9b1cd9f949fdab48b3c4210a4d72 +msgid "" +"Starting with version 1.16.0, |PDF| decryption and encryption (using " +"passwords) are fully supported. You can do the following:" +msgstr "" + +#: ../../the-basics.rst:838 3b6def2609e44c32be069c6362839e2f +msgid "" +"Check whether a document is password protected / (still) encrypted " +"(:attr:`Document.needs_pass`, :attr:`Document.is_encrypted`)." +msgstr "" + +#: ../../the-basics.rst:839 ce41ab81ce8b4386a83878a416a7940a +msgid "Gain access authorization to a document (:meth:`Document.authenticate`)." +msgstr "" + +#: ../../the-basics.rst:840 b189a7d59fa543a19cf3c17b16f8d694 +msgid "" +"Set encryption details for PDF files using :meth:`Document.save` or " +":meth:`Document.write` and" +msgstr "" + +#: ../../the-basics.rst:842 d636f0b456a045fe96ded79e540924a6 +msgid "decrypt or encrypt the content" +msgstr "" + +#: ../../the-basics.rst:843 c02d51458a324504be651a75c4b42da7 +msgid "set password(s)" +msgstr "" + +#: ../../the-basics.rst:844 a9dbedfc3d3840d2b0ddef263073ee71 +msgid "set the encryption method" +msgstr "" + +#: ../../the-basics.rst:845 8613c50a6710457fb64b656501a9ed53 +msgid "set permission details" +msgstr "" + +#: ../../the-basics.rst:847 4d78b28e7d8c479bb687ad0b04fea32f +msgid "A PDF document may have two different passwords:" +msgstr "" + +#: ../../the-basics.rst:849 17b762c8cf4d4efba56eae14ccf0e0e6 +msgid "" +"The **owner password** provides full access rights, including changing " +"passwords, encryption method, or permission detail." +msgstr "" + +#: ../../the-basics.rst:850 25b92c66fe7843978232636bf038bea9 +msgid "" +"The **user password** provides access to document content according to " +"the established permission details. If present, opening the |PDF| in a " +"viewer will require providing it." +msgstr "" + +#: ../../the-basics.rst:852 1fc241ab15944159a3e960c912753d85 +msgid "" +"Method :meth:`Document.authenticate` will automatically establish access " +"rights according to the password used." +msgstr "" + +#: ../../the-basics.rst:854 5a8ee082646145f0af795201a5cf3f2c +msgid "" +"The following snippet creates a new |PDF| and encrypts it with separate " +"user and owner passwords. Permissions are granted to print, copy and " +"annotate, but no changes are allowed to someone authenticating with the " +"user password." +msgstr "" + +#: ../../the-basics.rst:888 bc1d33f5c72f4b7c91414475ea9319ad +msgid "" +"Opening this document with some viewer (Nitro Reader 5) reflects these " +"settings:" +msgstr "" + +#: ../../the-basics.rst:892 8d0714fc6e9b483da17392fad5a08ef9 +msgid "" +"**Decrypting** will automatically happen on save as before when no " +"encryption parameters are provided." +msgstr "" + +#: ../../the-basics.rst:894 5ad13206208e4f04ab1f73c460b95b06 +msgid "" +"To **keep the encryption method** of a PDF save it using " +"`encryption=pymupdf.PDF_ENCRYPT_KEEP`. If `doc.can_save_incrementally() " +"== True`, an incremental save is also possible." +msgstr "" + +#: ../../the-basics.rst:896 ea683283b4ae4990996434cbfc824108 +msgid "" +"To **change the encryption method** specify the full range of options " +"above (`encryption`, `owner_pw`, `user_pw`, `permissions`). An " +"incremental save is **not possible** in this case." +msgstr "" + +#: ../../the-basics.rst:900 6b214aa29bc543f4acbac8c3cd3481b0 +msgid ":meth:`Document.save`" +msgstr "" + +#: ../../the-basics.rst:909 a57f259ce92445d6a5d6c2862dc3cf54 +msgid "Extracting Tables from a :title:`Page`" +msgstr "" + +#: ../../the-basics.rst:911 6f9e7f86d5ac46e3b9825c17b82571e4 +msgid "Tables can be found and extracted from any document :ref:`Page`." +msgstr "" + +#: ../../the-basics.rst:930 b7494b5442a14995a5d2119082615ca8 +msgid ":meth:`Page.find_tables`" +msgstr "" + +#: ../../the-basics.rst:935 c890052d477340849a65eeee67960e53 +msgid "" +"There is also the `pdf2docx extract tables method`_ which is capable of " +"table extraction if you prefer." +msgstr "" + +#: ../../the-basics.rst:944 a282cebe140b45f5b2ed5299e377820a +msgid "Getting Page Links" +msgstr "" + +#: ../../the-basics.rst:946 65729bc707934b5eb43017e9a7ccf13f +msgid "Links can be extracted from a :ref:`Page` to return :ref:`Link` objects." +msgstr "" + +#: ../../the-basics.rst:966 a413c62db71c4a03bcf604d1cbb23495 +msgid ":meth:`Page.first_link`" +msgstr "" + +#: ../../the-basics.rst:975 9c52975671c8427abba8f3c2386f6cfd +msgid "Getting All Annotations from a Document" +msgstr "" + +#: ../../the-basics.rst:977 6c049fc7e04c48738c8b0a947179c35a +msgid "" +"Annotations (:ref:`Annot`) on pages can be retrieved with the " +"`page.annots()` method." +msgstr "" + +#: ../../the-basics.rst:992 02ac755f074b4ae28b2dde5d67b4474f +msgid ":meth:`Page.annots`" +msgstr "" + +#: ../../the-basics.rst:1002 3d4556c1d28240f2aa6a1c395fc1a1a9 +msgid "Redacting content from a |PDF|" +msgstr "" + +#: ../../the-basics.rst:1004 d99eb5ab89464e8d97d4fc7e46651604 +msgid "" +"Redactions are special types of annotations which can be marked onto a " +"document page to denote an area on the page which should be securely " +"removed. After marking an area with a rectangle then this area will be " +"marked for *redaction*, once the redaction is *applied* then the content " +"is securely removed." +msgstr "" + +#: ../../the-basics.rst:1006 223f6cd8cecb4da98e5dd318031c8fda +msgid "" +"For example if we wanted to redact all instances of the name \"Jane Doe\"" +" from a document we could do the following:" +msgstr "" + +#: ../../the-basics.rst:1034 62dd2d2bb85640b2b62115053f61669a +msgid "" +"Another example could be redacting an area of a page, but not to redact " +"any line art (i.e. vector graphics) within the defined area, by setting a" +" parameter flag as follows:" +msgstr "" + +#: ../../the-basics.rst:1065 d9d9f830754d466387849b71b4085d14 +msgid "" +"Once a redacted version of a document is saved then the redacted content " +"in the |PDF| is *irretrievable*. Thus, a redacted area in a document " +"removes text and graphics completely from that area." +msgstr "" + +#: ../../the-basics.rst:1072 946a2796985d485fb5e2ed7acc4289e8 +msgid "" +"The are a few options for creating and applying redactions to a page, for" +" the full API details to understand the parameters to control these " +"options refer to the API reference." +msgstr "" + +#: ../../the-basics.rst:1076 548f9c1e5ac243f8b4055e2a34c65166 +msgid ":meth:`Page.add_redact_annot`" +msgstr "" + +#: ../../the-basics.rst:1078 47c9ad1997a44ad7b9d0ef477ee10755 +msgid ":meth:`Page.apply_redactions`" +msgstr "" + +#: ../../the-basics.rst:1088 1a162b81c4bf4f65abc57893d5ffe457 +msgid "Converting PDF Documents" +msgstr "" + +#: ../../the-basics.rst:1090 72cd004015184e5c91130763bcf42e8b +msgid "" +"We recommend the pdf2docx_ library which uses |PyMuPDF| and the **python-" +"docx** library to provide simple document conversion from |PDF| to " +"**DOCX** format." +msgstr "" + +#: ../../footer.rst:46 3e0afdfbfd574b1daaa229594686200d +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/tools.mo b/docs/locales/ko/LC_MESSAGES/tools.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/tools.po b/docs/locales/ko/LC_MESSAGES/tools.po new file mode 100644 index 000000000..a9bf23963 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/tools.po @@ -0,0 +1,723 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 0d73a14a6d9b419f84fde1e0a7e33dfb +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 921ceade773644d4b48019b5e3890fb7 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 a82f7fcc28444c4fb146f56d5780eff7 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../tools.rst:6 bf1306c6f8b244acaf911ab721a197e6 +msgid "Tools" +msgstr "" + +#: ../../tools.rst:8 d6c5d72a09a14bd5b21c5508eee3c250 +msgid "" +"This class is a collection of utility methods and attributes, mainly " +"around memory management. To simplify and speed up its use, it is " +"automatically instantiated under the name *TOOLS* when PyMuPDF is " +"imported." +msgstr "" + +#: ../../tools.rst:11 9f4695034d1a41088a1a1d353f6e4809 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../tools.rst:11 f90fa89b5ac8455297a7e999b318a95d +msgid "**Description**" +msgstr "" + +#: ../../tools.rst:13 3b8fa8bde4af4703bd9f495bf42f0357 +msgid ":meth:`Tools.gen_id`" +msgstr "" + +#: ../../tools.rst:13 f4df8c5ade854c22b113521c4432ad43 +msgid "generate a unique identifier" +msgstr "" + +#: ../../tools.rst:14 f8432b4a73fd4daebad6cf69ee75d4d4 +msgid ":meth:`Tools.store_shrink`" +msgstr "" + +#: ../../tools.rst:14 8e71bc4d1dff4fffab79133c5adb84ef +msgid "shrink the storables cache [#f1]_" +msgstr "" + +#: ../../tools.rst:15 00c0e3852ea44f5ea91c82ec35aed5c6 +msgid ":meth:`Tools.mupdf_warnings`" +msgstr "" + +#: ../../tools.rst:15 6c729a59131c47e3991d378e1a1d7cf5 +msgid "return the accumulated MuPDF warnings" +msgstr "" + +#: ../../tools.rst:16 7c9ee72296df4159918174ed60bb239f +msgid ":meth:`Tools.mupdf_display_errors`" +msgstr "" + +#: ../../tools.rst:16 ad79443c20664a909cafe94ef8993c2e +msgid "control whether MuPDF errors are displayed as messages." +msgstr "" + +#: ../../tools.rst:17 a3c989deda0d478a8f40594bf7839b13 +msgid ":meth:`Tools.mupdf_display_warnings`" +msgstr "" + +#: ../../tools.rst:17 3331b000061f4a199137b54996d28f55 +msgid "control whether MuPDF warnings are displayed as messages." +msgstr "" + +#: ../../tools.rst:18 f77ae8fb589148f0bf492ce7a1e42572 +msgid ":meth:`Tools.reset_mupdf_warnings`" +msgstr "" + +#: ../../tools.rst:18 2cd40e7b15e749f7ba4befb2c7516c7e +msgid "empty MuPDF warnings/errors message buffer." +msgstr "" + +#: ../../tools.rst:19 4447fb5926bd4ba7bec76e747bab9297 +msgid ":meth:`Tools.set_aa_level`" +msgstr "" + +#: ../../tools.rst:19 2e6c524419ac41e9a6900f4809d65d99 +msgid "set the anti-aliasing values" +msgstr "" + +#: ../../tools.rst:20 a2dafc1f04fb468e927711809b1b4abb +msgid ":meth:`Tools.set_annot_stem`" +msgstr "" + +#: ../../tools.rst:20 ee82321884b340e6a4b6fcffc62f8557 +msgid "set the prefix of new annotation / link ids" +msgstr "" + +#: ../../tools.rst:21 c1bc06eb490b40dab6174b41d9a9ee6c +msgid ":meth:`Tools.set_small_glyph_heights`" +msgstr "" + +#: ../../tools.rst:21 15946a92e17a460a9c36b31c32fe3247 +msgid "search and extract using small bbox heights" +msgstr "" + +#: ../../tools.rst:22 8ecbbd2dd4e14e78a91df8d330c13ff6 +msgid ":meth:`Tools.set_subset_fontnames`" +msgstr "" + +#: ../../tools.rst:22 4fa566e4c99645d999c63acedee77f82 +msgid "control suppression of subset fontname tags" +msgstr "" + +#: ../../tools.rst:23 61d6e34abc994469a66c945c3a08e615 +msgid ":meth:`Tools.show_aa_level`" +msgstr "" + +#: ../../tools.rst:23 a7fd746934534e9d831b150cfe0481c9 +msgid "return the anti-aliasing values" +msgstr "" + +#: ../../tools.rst:24 c9363164a1784bcaa8761a54aff46d1d +msgid ":meth:`Tools.unset_quad_corrections`" +msgstr "" + +#: ../../tools.rst:24 5f3c02c8cfbd421e94b18e090cd74703 +msgid "disable PyMuPDF-specific code" +msgstr "" + +#: ../../tools.rst:25 651ff5c6373f471e8d008e9c405305ab +msgid ":attr:`Tools.fitz_config`" +msgstr "" + +#: ../../tools.rst:25 b9e06f68f97a4ae1bbd309ad39720d5d +msgid "configuration settings of PyMuPDF" +msgstr "" + +#: ../../tools.rst:26 4df2a633c6da421f9959024a3d94fa3f +msgid ":attr:`Tools.store_maxsize`" +msgstr "" + +#: ../../tools.rst:26 122b22e68967478289e3a595b9e4e8f7 +msgid "maximum storables cache size" +msgstr "" + +#: ../../tools.rst:27 d7402c339e7e41708fd85b9e49948078 +msgid ":attr:`Tools.store_size`" +msgstr "" + +#: ../../tools.rst:27 14ccf353f0934125951cc340919573ee +msgid "current storables cache size" +msgstr "" + +#: ../../tools.rst:30 2128d557bf1f4f3d9d16ad8e9dba7f05 +msgid "**Class API**" +msgstr "" + +#: ../../tools.rst:36 189938171e2b49469e4180e2f35aa327 +msgid "" +"A convenience method returning a unique positive integer which will " +"increase by 1 on every invocation. Example usages include creating unique" +" keys in databases - its creation should be faster than using timestamps " +"by an order of magnitude." +msgstr "" + +#: ../../tools.rst:38 695deea765974c6fad7f3e3815d0a10f +msgid "" +"MuPDF has dropped support for this in v1.14.0, so we have re-implemented " +"a similar function with the following differences:" +msgstr "" + +#: ../../tools.rst:40 a683185479de4917b28d0da3b150aeb8 +msgid "" +"It is not part of MuPDF's global context and not threadsafe (not an issue" +" because we do not support threads in PyMuPDF anyway)." +msgstr "" + +#: ../../tools.rst:41 1b2ba6f48de24451a18b344a30157fbd +msgid "" +"It is implemented as *int*. This means that the maximum number is " +"*sys.maxsize*. Should this number ever be exceeded, the counter starts " +"over again at 1." +msgstr "" + +#: ../../tools.rst 4a3706449679419cbfe46da4fca67368 +#: 4b21a59b097141b5aaf0f44b355bd101 5672ab6b4aba48c892de4d5bb4e0f0b9 +#: 6669bbdf4a3e4020a1d9b48bff99e268 957464664fbc40f0af479085467effc0 +#: 9990614cbe3041348193e004172104db 999752762ad24ea4bf641bfb8ad2f43f +#: c24f35275eaf4e4192cf718cc1f06dbc e55479e7313947a092977c725c75a395 +#: e919810950e6418e9d92a82349a27cc5 +msgid "Return type" +msgstr "" + +#: ../../tools.rst 07f96f9c40e24f1993747e0c10a8eff6 +#: 226fe9b32c914b299f5fbc681e42ffc1 22d12df8c6e44432b1b8c0ca643fe26b +#: 6bd8faa6d20a40a2a3317b0b6c56695c 95ff0c78ce0449998879214817772a0f +#: a12efba073594882b138ec467749be24 b15ef08627884b7d9cb926fae2c74680 +#: d317ebc8557f4d41bb1a58c902624a43 de51e2f78e304d46be9085659f5175b0 +msgid "Returns" +msgstr "" + +#: ../../tools.rst:44 cf26039ee2174ec4a0622c0822a413bb +msgid "a unique positive integer." +msgstr "" + +#: ../../tools.rst:49 329f36f70579439ea15f22b38c11d02a +msgid "New in v1.18.6" +msgstr "" + +#: ../../tools.rst:51 9db0524a2e0b4842a9c038c8912cd9d8 +msgid "Set or inquire the prefix for the id of new annotations, fields or links." +msgstr "" + +#: ../../tools.rst 07fc0d2c71f440218ad32d0fa55bd668 +#: 0ac957fb86d34012bc3ca235b75a2815 13711810c96c4b3eba0c108d0199a0a7 +#: 1d1396015b5247a5bd6c115fb3673828 3c06afcb1d6a424383b91978fc6206bc +#: 631e43e526dd46998258d5316be56c67 6605936ea7ec4e80b4bbea17b256c74d +#: 6fee094bef9d4193923a723c70f17922 ddd35b40d05a410cb68e69625771ba39 +msgid "Parameters" +msgstr "" + +#: ../../tools.rst:53 4b1ab23b0f98420db4907311dec28fb1 +msgid "" +"if omitted, the current value is returned, default is \"fitz\". " +"Annotations, fields / widgets and links technically are subtypes of the " +"same type of object (`/Annot`) in PDF documents. An `/Annot` object may " +"be given a unique identifier within a page. For each of the applicable " +"subtypes, PyMuPDF generates identifiers \"stem-Annn\", \"stem-Wnnn\" or " +"\"stem-Lnnn\" respectively. The number \"nnn\" is used to enforce the " +"required uniqueness." +msgstr "" + +#: ../../tools.rst:56 4f61028eee9146b292fb1b2405da09d1 +msgid "the current value." +msgstr "" + +#: ../../tools.rst:61 3cb17a9bd0814e1687e04154eec0593c +msgid "New in v1.18.5" +msgstr "" + +#: ../../tools.rst:63 217da1303cbb4b13b6837e9ca5541ce0 +msgid "" +"Set or inquire reduced bbox heights in text extract and text search " +"methods." +msgstr "" + +#: ../../tools.rst:65 56c84534f6434dc8841353567d8b453e +msgid "" +"if omitted or `None`, the current setting is returned. For other values " +"the *bool()* function is applied to set a global variable. If `True`, " +":meth:`Page.search_for` and :meth:`Page.get_text` methods return " +"character, span, line or block bboxes that have a height of *font size*. " +"If `False` (standard setting when PyMuPDF is imported), bbox height will " +"be based on font properties and normally equal *line height*." +msgstr "" + +#: ../../tools.rst:68 ../../tools.rst:81 ../../tools.rst:95 +#: a176f0944378445b9d91fe21cb93ad4d d1b2c5f192854ac09a19db50d3b38655 +#: f628ee815a1c4d908896ef7b8f14b847 +msgid "``True`` or ``False``." +msgstr "" + +#: ../../tools.rst:70 808cb746a7f74b23b2eccf918a1aee94 +msgid "" +"Text extraction options \"xml\", \"xhtml\" and \"html\", which directly " +"wrap MuPDF code, are not influenced by this." +msgstr "" + +#: ../../tools.rst:74 897746f738b94bc295467ea1ebcea01b +msgid "New in v1.18.9" +msgstr "" + +#: ../../tools.rst:76 744e708191de4faa9c2a7dade121573a +msgid "Control suppression of subset fontname tags in text extractions." +msgstr "" + +#: ../../tools.rst:78 59d2a8ce838b418a8dc500d85140932e +msgid "" +"if omitted / `None`, the current setting is returned. Arguments " +"evaluating to `True` or `False` set a global variable. If `True`, options" +" \"dict\", \"json\", \"rawdict\" and \"rawjson\" will return e.g. " +"`\"NOHSJV+Calibri-Light\"`, otherwise only `\"Calibri-Light\"` (the " +"default). The setting remains in effect until changed again." +msgstr "" + +#: ../../tools.rst:83 d6465691fb404e9f9138143abb284794 +msgid "" +"Except mentioned above, no other text extraction variants are influenced " +"by this. This is especially true for the options \"xml\", \"xhtml\" and " +"\"html\", which are based on MuPDF code. They extract the font name " +"`\"Calibri-Light\"`, or even just the **family** name -- `Calibri` in " +"this example." +msgstr "" + +#: ../../tools.rst:88 d588b77e57cf47edadda3e5a2bd2640c +msgid "New in v1.18.10" +msgstr "" + +#: ../../tools.rst:90 a2f363e88df54db6bf8ab0004f895156 +msgid "" +"Enable / disable PyMuPDF-specific code, that tries to rebuild valid " +"character quads when encountering nonsense in :meth:`Page.get_text` text " +"extractions. This code depends on certain font properties (ascender and " +"descender), which do not exist in rare situations and cause segmentation " +"faults when trying to access them. This method sets a global parameter in" +" PyMuPDF, which suppresses execution of this code." +msgstr "" + +#: ../../tools.rst:92 d5e3272b930e4822a2e6c4d5e66a011b +msgid "" +"if omitted or `None`, the current setting is returned. For other values " +"the *bool()* function is applied to set a global variable. If `True`, " +"PyMuPDF will not try to access the resp. font properties and use values " +"`ascender=0.8` and `descender=-0.2` instead." +msgstr "" + +#: ../../tools.rst:100 333a61c7d142433ab4fd0f13a7aabc3c +msgid "Reduce the storables cache by a percentage of its current size." +msgstr "" + +#: ../../tools.rst:102 5790eaa60b4f4f4cadc19ece9d505603 +msgid "" +"the percentage of current size to free. If 100+ the store will be " +"emptied, if zero, nothing will happen. MuPDF's caching strategy is " +"\"least recently used\", so low-usage elements get deleted first." +msgstr "" + +#: ../../tools.rst:105 1b9c6e1ac6134c118b552c8a38a7587a +msgid "" +"the new current store size. Depending on the situation, the size " +"reduction may be larger than the requested percentage." +msgstr "" + +#: ../../tools.rst:109 ../../tools.rst:119 5be5f274ce2740e89346b52c7e37e06a +#: b90faa6a9e97498798492c9d79a9bf6d +msgid "New in version 1.16.14" +msgstr "" + +#: ../../tools.rst:111 1f5fae3d0c1e48c8a312f344dfa41fc0 +msgid "" +"Return the current anti-aliasing values. These values control the " +"rendering quality of graphics and text elements." +msgstr "" + +#: ../../tools.rst:114 e6976bc95bab4023b63ca1064c6a68ca +msgid "" +"A dictionary with the following initial content: `{'graphics': 8, 'text':" +" 8, 'graphics_min_line_width': 0.0}`." +msgstr "" + +#: ../../tools.rst:121 911a1d5a1cb24741a60e13fc35d16874 +msgid "" +"Set the new number of bits to use for anti-aliasing. The same value is " +"taken currently for graphics and text rendering. This might change in a " +"future MuPDF release." +msgstr "" + +#: ../../tools.rst:123 926fa10830264d0c8cfbe04143b5486e +msgid "" +"an integer ranging between 0 and 8. Value outside this range will be " +"silently changed to valid values. The value will remain in effect " +"throughout the current session or until changed again." +msgstr "" + +#: ../../tools.rst:128 ../../tools.rst:167 144d6b730a8649498527dfd19b461f43 +#: 3a2e5f71bfd04dd5a13298d81dc0c38c +msgid "New in version 1.16.0" +msgstr "" + +#: ../../tools.rst:130 2d91e313160b448ea59abdf6c66b4a0d +msgid "Empty MuPDF warnings message buffer." +msgstr "" + +#: ../../tools.rst:135 92b7764848884178b4a41b5d1ff2caa3 +msgid "Control whether MuPDF errors should be displayed as |PyMuPDF| messages." +msgstr "" + +#: ../../tools.rst:138 ../../tools.rst:154 1d6bb3c5c84647d58a7d5ed4b5a92b2c +#: e72ab3692a3e4261b45203c6bfa6fd63 +msgid "If `None`, the current setting is left unchanged." +msgstr "" + +#: ../../tools.rst:139 c2abcce114b8497dae07e3ea0bc60591 +msgid "" +"Otherwise changes the current setting to `bool(value)`; if ``True``, " +"future MuPDF errors will be shown as :ref:`Messages`." +msgstr "" + +#: ../../tools.rst:141 a4be68a89b5d4042996ecf157036e027 +msgid "" +"Regardless of this setting, MuPDF errors will always be stored in the " +"warnings store." +msgstr "" + +#: ../../tools.rst:142 ../../tools.rst:158 23ee905f3f0e48319c7c3638b644070d +#: b94e26874cea438aa7f0653a55f1414f +msgid "Upon import of |PyMuPDF| this value is ``True``." +msgstr "" + +#: ../../tools.rst:144 ../../tools.rst:160 380a472c7f0440deadd5f2a66e36cd6d +#: ec3080d72d284985b697f158380df6b2 +msgid "The current setting as ``True`` or ``False``." +msgstr "" + +#: ../../tools.rst:146 ../../tools.rst:162 7482f516a78043879c8c3e587e6ecbe6 +#: c135c85d22654225b7e4564087de3d01 +msgid "New in version 1.16.8" +msgstr "" + +#: ../../tools.rst:151 35926b1a764d48ae80b23f5dd83f3451 +msgid "Control whether MuPDF warnings should be displayed as |PyMuPDF| messages." +msgstr "" + +#: ../../tools.rst:155 16b5294227bd4af28cbe50a51eb464b5 +msgid "" +"Otherwise changes the current setting to `bool(value)`; if ``True``, " +"future MuPDF warnings will be shown as :ref:`Messages`." +msgstr "" + +#: ../../tools.rst:157 f7cf6d0e1c1543b09eed6f3596cc274c +msgid "" +"Regardless of this setting, MuPDF warnings will always be stored in the " +"warnings store." +msgstr "" + +#: ../../tools.rst:169 a3f7042644dd47c383bcc0f2188e0677 +msgid "" +"Return all stored MuPDF messages as a string with interspersed line-" +"breaks." +msgstr "" + +#: ../../tools.rst:171 287a6a8e83ba40cebec9beb0cce433ad +msgid "*(new in version 1.16.7)* whether to automatically empty the store." +msgstr "" + +#: ../../tools.rst:176 0b1e9109776c417d9631077a29280c56 +msgid "" +"A dictionary containing the actual values used for configuring PyMuPDF " +"and MuPDF. Also refer to the installation chapter. This is an overview of" +" the keys, each of which describes the status of a support aspect." +msgstr "" + +#: ../../tools.rst:179 29eef430a5db42389b1ed5ded77ee8dc +msgid "**Key**" +msgstr "" + +#: ../../tools.rst:179 8ec8d2564994434abd178d4f3c3f4c27 +msgid "**Support included for ...**" +msgstr "" + +#: ../../tools.rst:181 b78162547f5b4e87a989c50674465ac3 +msgid "plotter-g" +msgstr "" + +#: ../../tools.rst:181 a6e78ff6069e4d3ba0c8d22a1dd3e306 +msgid "Gray colorspace rendering" +msgstr "" + +#: ../../tools.rst:182 018d6608637142b39977343ce2007a00 +msgid "plotter-rgb" +msgstr "" + +#: ../../tools.rst:182 e760fa73ba9244e5a70d3038f62eedc0 +msgid "RGB colorspace rendering" +msgstr "" + +#: ../../tools.rst:183 0ebf2b22dcae46a4ac0e108cd380d920 +msgid "plotter-cmyk" +msgstr "" + +#: ../../tools.rst:183 219cf41f7248407fb5018ae49943793b +msgid "CMYK colorspcae rendering" +msgstr "" + +#: ../../tools.rst:184 3c60e398c9bf4ea1a21599b87752ff86 +msgid "plotter-n" +msgstr "" + +#: ../../tools.rst:184 769eb710317c41a480dbc570a4cee0f1 +msgid "overprint rendering" +msgstr "" + +#: ../../tools.rst:185 de0c1cb2bd6e4d3f9218813213738b89 +msgid "pdf" +msgstr "" + +#: ../../tools.rst:185 0eb90b0c563943b092427c844fa84d82 +msgid "PDF documents" +msgstr "" + +#: ../../tools.rst:186 b99df5adf3fa4e9f9146cf0f5b29995a +msgid "xps" +msgstr "" + +#: ../../tools.rst:186 9489b74272084bbeb3d2c279e697ecf2 +msgid "XPS documents" +msgstr "" + +#: ../../tools.rst:187 d2a4ee5c893b4b87a0166bbe1856cda6 +msgid "svg" +msgstr "" + +#: ../../tools.rst:187 e551c61cd7e441449280f9359dec7dc7 +msgid "SVG documents" +msgstr "" + +#: ../../tools.rst:188 577bc099e8ac44c9b26c26942341b2c7 +msgid "cbz" +msgstr "" + +#: ../../tools.rst:188 ebc6a4b501dc4f6b962a645852e681d1 +msgid "CBZ documents" +msgstr "" + +#: ../../tools.rst:189 64ec1daad09243c88803ed7eb5709835 +msgid "img" +msgstr "" + +#: ../../tools.rst:189 7d744907b35241c78b99cc180e6b9113 +msgid "IMG documents" +msgstr "" + +#: ../../tools.rst:190 bb12f79a20f04779acd3ed438cfbbc96 +msgid "html" +msgstr "" + +#: ../../tools.rst:190 bb3a4a4575c943969b56f0af2d838d7e +msgid "HTML documents" +msgstr "" + +#: ../../tools.rst:191 ab3d19b472154fce925a82f813fe20c5 +msgid "epub" +msgstr "" + +#: ../../tools.rst:191 44a8aabb49ac41458e987ca800cc7eac +msgid "EPUB documents" +msgstr "" + +#: ../../tools.rst:192 4a9f9a0ca3fe4cc79bc5b83c962ebe17 +msgid "jpx" +msgstr "" + +#: ../../tools.rst:192 5ab6d3192a344c83a9666aadf1016b5b +msgid "JPEG2000 images" +msgstr "" + +#: ../../tools.rst:193 b74ed5834b3d4fd081414ff7634e74ec +msgid "js" +msgstr "" + +#: ../../tools.rst:193 36672693f4374487a530bf0c3af9832c +msgid "JavaScript" +msgstr "" + +#: ../../tools.rst:194 adc238844f2c4040bbd4a86abbf6039a +msgid "tofu" +msgstr "" + +#: ../../tools.rst:194 558f9de6ca4f46dd808cfbf415f7ce06 +msgid "all TOFU fonts" +msgstr "" + +#: ../../tools.rst:195 3f1c381eadc64b8db7d515ae9eba3984 +msgid "tofu-cjk" +msgstr "" + +#: ../../tools.rst:195 ea40b88f4fdd4d1eb43a2a6bf6e8f5ba +msgid "CJK font subset (China, Japan, Korea)" +msgstr "" + +#: ../../tools.rst:196 a4f1e69f4b814edb83e603a1355259dc +msgid "tofu-cjk-ext" +msgstr "" + +#: ../../tools.rst:196 c377019167934982a83d55627ae3ba2c +msgid "CJK font extensions" +msgstr "" + +#: ../../tools.rst:197 0fc7a1646f7646738d72ec2061e7691c +msgid "tofu-cjk-lang" +msgstr "" + +#: ../../tools.rst:197 66d5555a5824418a9f35c3b2b71e4b88 +msgid "CJK font language extensions" +msgstr "" + +#: ../../tools.rst:198 1b5d5d0dbd32445593b767b2483e3060 +msgid "tofu-emoji" +msgstr "" + +#: ../../tools.rst:198 0cdbcf60f7d64d39b197db2579600064 +msgid "TOFU emoji fonts" +msgstr "" + +#: ../../tools.rst:199 7fc6679d779c41719fccabfb090325fa +msgid "tofu-historic" +msgstr "" + +#: ../../tools.rst:199 9cbba9254c32429899b6b2dac733f20d +msgid "TOFU historic fonts" +msgstr "" + +#: ../../tools.rst:200 2ef2e1b8fab04ed5b5cf6812262986b0 +msgid "tofu-symbol" +msgstr "" + +#: ../../tools.rst:200 70b9a0a97d0f47deb48c32f026c189b8 +msgid "TOFU symbol fonts" +msgstr "" + +#: ../../tools.rst:201 84425b54341d4ddf86a53d5636ce6d6c +msgid "tofu-sil" +msgstr "" + +#: ../../tools.rst:201 eb589864b3f14b24adedd043685a8f64 +msgid "TOFU SIL fonts" +msgstr "" + +#: ../../tools.rst:202 755f0012ad0c4aea8e9a52a0776c2c81 +msgid "icc" +msgstr "" + +#: ../../tools.rst:202 5358baa2b811434fb799602302fdbe35 +msgid "ICC profiles" +msgstr "" + +#: ../../tools.rst:203 1ea2192091824ca8a0a392c9dc10f890 +msgid "py-memory" +msgstr "" + +#: ../../tools.rst:203 9cb31e10c386492c9cbb9a5e2265ace3 +msgid "using Python memory management [#f2]_" +msgstr "" + +#: ../../tools.rst:204 dec087f849db4162a867ce6d93c08a53 +msgid "base14" +msgstr "" + +#: ../../tools.rst:204 69f5e80bd30c411d97af4b8a75e364ec +msgid "Base-14 fonts (should always be true)" +msgstr "" + +#: ../../tools.rst:207 3a669d605b904f36b9308d04b1fad7df +msgid "" +"For an explanation of the term \"TOFU\" see `this Wikipedia article " +"`_::" +msgstr "" + +#: ../../tools.rst:241 bf3651fc67ee458a8794cf46e18bdaa0 +msgid "" +"Maximum storables cache size in bytes. |PyMuPDF| is generated with a " +"value of 268'435'456 (256 MB, the default value), which you should " +"therefore always see here. If this value is zero, then an \"unlimited\" " +"growth is permitted." +msgstr "" + +#: ../../tools.rst:247 cd118310efc74373a064388fb69baf0b +msgid "" +"Current storables cache size in bytes. This value may change (and will " +"usually increase) with every use of a |PyMuPDF| function. It will " +"(automatically) decrease only when :attr:`Tools.store_maxsize` is going " +"to be exceeded: in this case, |MuPDF| will evict low-usage objects until " +"the value is again in range." +msgstr "" + +#: ../../tools.rst:252 eb29156bef9747b0801b3a3a7cb7b827 +msgid "Example Session" +msgstr "" + +#: ../../tools.rst:288 4ea509ba0cce45108ae592589157ef48 +msgid "Footnotes" +msgstr "" + +#: ../../tools.rst:289 eac7cbc90f544d38b17f9aaecb25533b +msgid "" +"This memory area is internally used by MuPDF, and it serves as a cache " +"for objects that have already been read and interpreted, thus improving " +"performance. The most bulky object types are images and also fonts. When " +"an application starts up the MuPDF library (in our case this happens as " +"part of *import pymupdf*), it must specify a maximum size for this area. " +"PyMuPDF's uses the default value (256 MB) to limit memory consumption. " +"Use the methods here to control or investigate store usage. For example: " +"even after a document has been closed and all related objects have been " +"deleted, the store usage may still not drop down to zero. So you might " +"want to enforce that before opening another document." +msgstr "" + +#: ../../tools.rst:291 762bd894d82742c9b21223dc22c6390d +msgid "" +"By default PyMuPDF and MuPDF use `malloc()`/`free()` for dynamic memory " +"management. One can instead force them to use the Python allocation " +"functions `PyMem_New()`/`PyMem_Del()`, by modifying *fitz/fitz.i* to do " +"`#define JM_MEMORY 1` and rebuilding PyMuPDF." +msgstr "" + +#: ../../footer.rst:46 78ca850d896b41bda3d3e7d7c4795819 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/tutorial.mo b/docs/locales/ko/LC_MESSAGES/tutorial.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/tutorial.po b/docs/locales/ko/LC_MESSAGES/tutorial.po new file mode 100644 index 000000000..e64f543a1 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/tutorial.po @@ -0,0 +1,1108 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 af1c872c0c8149488a828ec57db0d05a +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 5f296e40a5a84c7db71c20c23cf034c9 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 6ce8107c629e456a909666cce87fe6bd +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../tutorial.rst:8 939af6d1c28b485eb4ff9f7d7027d32c +msgid "Tutorial" +msgstr "" + +#: ../../tutorial.rst:12 4f39e913a37d45aaaae25d581b6b21a5 +msgid "" +"This tutorial will show you the use of |PyMuPDF|, |MuPDF| in Python, step" +" by step." +msgstr "" + +#: ../../tutorial.rst:14 5a427c507e6b44479862e8eb2c0a69ba +msgid "" +"Because |MuPDF| supports not only PDF, but also XPS, OpenXPS, CBZ, CBR, " +"FB2 and EPUB formats, so does |PyMuPDF| [#f1]_. Nevertheless, for the " +"sake of brevity we will only talk about PDF files. At places where indeed" +" only PDF files are supported, this will be mentioned explicitly." +msgstr "" + +#: ../../tutorial.rst:16 b2c324e1eda6484681a5b98002f9f022 +msgid "" +"In addition to this introduction, please do visit PyMuPDF's `YouTube " +"Channel `_ which covers most of the " +"following in the form of YouTube \"Shorts\" and longer videos." +msgstr "" + +#: ../../tutorial.rst:19 c23da3317c5d43fdadba3fa7c99c3afc +msgid "Importing the Bindings" +msgstr "" + +#: ../../tutorial.rst:20 a04dcd4a09c3420f950b46d664276cd8 +msgid "" +"The Python bindings to MuPDF are made available by this import statement." +" We also show here how your version can be checked::" +msgstr "" + +#: ../../tutorial.rst:30 56adbb5b22484758912815cc290316d8 +msgid "Note on the Name *fitz*" +msgstr "" + +#: ../../tutorial.rst:32 3b2a413d1d2040d38bbc841d83f98d16 +msgid "" +"Old versions of |PyMuPDF| had their **Python** import name as `fitz`. " +"Newer versions use `pymupdf` instead, and offer `fitz` as a fallback so " +"that old code will still work." +msgstr "" + +#: ../../tutorial.rst:34 e7ad072736bc434da33243355f43a143 +msgid "The reason for the name `fitz` is a historical curiosity:" +msgstr "" + +#: ../../tutorial.rst:36 0a1388985e214bc8803f67a3cdc99664 +msgid "The original rendering library for MuPDF was called *Libart*." +msgstr "" + +#: ../../tutorial.rst:38 6bb98d1d5fd843a9a823b5a023f389e8 +msgid "" +"*\"After Artifex Software acquired the MuPDF project, the development " +"focus shifted on writing a new modern graphics library called \"Fitz\". " +"Fitz was originally intended as an R&D project to replace the aging " +"Ghostscript graphics library, but has instead become the rendering engine" +" powering MuPDF.\"* (Quoted from `Wikipedia " +"`_)." +msgstr "" + +#: ../../tutorial.rst:42 f0b608072e0948f0a8d5019e86f78ae4 +msgid "" +"Use of legacy name `fitz` can fail if defunct pypi.org package `fitz` is " +"installed; see :ref:`problems-after-installation`." +msgstr "" + +#: ../../tutorial.rst:48 5b6f4f47d3d14b3dabbafb6419e1bfd3 +msgid "Opening a Document" +msgstr "" + +#: ../../tutorial.rst:50 bad87b705ed349689aeb233740a2a4dd +msgid "" +"To access a :ref:`supported document`, it must be " +"opened with the following statement::" +msgstr "" + +#: ../../tutorial.rst:54 8ee29d11c6664eaba2d74e39fe256992 +msgid "" +"This creates the :ref:`Document` object *doc*. *filename* must be a " +"Python string (or a `pathlib.Path`) specifying the name of an existing " +"file." +msgstr "" + +#: ../../tutorial.rst:56 fd7dc22114c4467ea703f11c5e4ddad9 +msgid "" +"It is also possible to open a document from memory data, or to create a " +"new, empty PDF. See :ref:`Document` for details. You can also use " +":ref:`Document` as a *context manager*." +msgstr "" + +#: ../../tutorial.rst:58 e53b2ee3b09744bba7d0a597e3110a06 +msgid "" +"A document contains many attributes and functions. Among them are meta " +"information (like \"author\" or \"subject\"), number of total pages, " +"outline and encryption information." +msgstr "" + +#: ../../tutorial.rst:61 ed2d7a85b35c446faacb3600235eef21 +msgid "Some :ref:`Document` Methods and Attributes" +msgstr "" + +#: ../../tutorial.rst:64 3b4470725538483087f6877a0b238a75 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../tutorial.rst:64 348a919c08be4e7bacbcbdebf6aadceb +msgid "**Description**" +msgstr "" + +#: ../../tutorial.rst:66 3c58bb5e0cfd4357bf595f5730c490f5 +msgid ":attr:`Document.page_count`" +msgstr "" + +#: ../../tutorial.rst:66 71bcf48456184a0a864819c5c6c6b639 +msgid "the number of pages (*int*)" +msgstr "" + +#: ../../tutorial.rst:67 a9ca3bea8587466696f8c3a412c51474 +msgid ":attr:`Document.metadata`" +msgstr "" + +#: ../../tutorial.rst:67 5d63c2f5c2bf442da412566cddc8f0da +msgid "the metadata (*dict*)" +msgstr "" + +#: ../../tutorial.rst:68 3a230f9d11cf49c8abaabfc21332281a +msgid ":meth:`Document.get_toc`" +msgstr "" + +#: ../../tutorial.rst:68 670c25d439184b3d864535494e4bc345 +msgid "get the table of contents (*list*)" +msgstr "" + +#: ../../tutorial.rst:69 4dbf36bdcc774cfe94f6fe488e23ab70 +msgid ":meth:`Document.load_page`" +msgstr "" + +#: ../../tutorial.rst:69 6a5260a61382415882e9d006c179fe90 +msgid "read a :ref:`Page`" +msgstr "" + +#: ../../tutorial.rst:73 d6bc5b209b1c4e7aa5b367e616992438 +msgid "Accessing Meta Data" +msgstr "" + +#: ../../tutorial.rst:74 5eeb7a67a3834701bda60567079af358 +msgid "" +"PyMuPDF fully supports standard metadata. :attr:`Document.metadata` is a " +"Python dictionary with the following keys. It is available for **all " +"document types**, though not all entries may always contain data. For " +"details of their meanings and formats consult the respective manuals, " +"e.g. :ref:`AdobeManual` for PDF. Further information can also be found in" +" chapter :ref:`Document`. The meta data fields are strings or ``None`` if" +" not otherwise indicated. Also be aware that not all of them always " +"contain meaningful data -- even if they are not ``None``." +msgstr "" + +#: ../../tutorial.rst:77 6c9a21d704a241029ce9b7f001b7bac5 +msgid "Key" +msgstr "" + +#: ../../tutorial.rst:77 8400973337594bcf8e3da33817744ccf +msgid "Value" +msgstr "" + +#: ../../tutorial.rst:79 6aa5ce470f8642c4af491e28af8bc999 +msgid "producer" +msgstr "" + +#: ../../tutorial.rst:79 52ee9d5cf1d94e4e824f1486804c0a49 +msgid "producer (producing software)" +msgstr "" + +#: ../../tutorial.rst:80 85a0fa96090940f499052abc68aac361 +msgid "format" +msgstr "" + +#: ../../tutorial.rst:80 cd1a7dc5cfca479ca59b0e5e2b00f5bb +msgid "format: 'PDF-1.4', 'EPUB', etc." +msgstr "" + +#: ../../tutorial.rst:81 96773e4fde41492a8fbc9d8e0dfffe01 +msgid "encryption" +msgstr "" + +#: ../../tutorial.rst:81 4b242b9f88fb40e4847a8ad0358789ec +msgid "encryption method used if any" +msgstr "" + +#: ../../tutorial.rst:82 520e1f5cffc3419faccbecacb778ad88 +#: adc5542c41534ce68fe9d02192b1f9e0 +msgid "author" +msgstr "" + +#: ../../tutorial.rst:83 d593bfa2f3f1464ca98020a5d8cc2d74 +msgid "modDate" +msgstr "" + +#: ../../tutorial.rst:83 49db626a877e41699ba02058512b97d9 +msgid "date of last modification" +msgstr "" + +#: ../../tutorial.rst:84 ac0f4c311d9d4f91b366556afa0eac07 +#: cad667882e9247ed9a8465e9e8f6f30e +msgid "keywords" +msgstr "" + +#: ../../tutorial.rst:85 4a12c1d082794891871985009346217e +#: 9afee53342a24f749bd6b1695ceba4ca +msgid "title" +msgstr "" + +#: ../../tutorial.rst:86 0659f2376ae84f0694559432c6acc6ab +msgid "creationDate" +msgstr "" + +#: ../../tutorial.rst:86 c3e9c7f2af964de1a4ea55d6dfc87ae7 +msgid "date of creation" +msgstr "" + +#: ../../tutorial.rst:87 f7336bfddb6c47da8c979a965fd0e200 +msgid "creator" +msgstr "" + +#: ../../tutorial.rst:87 cde7dc3a8d604edeb4df81869876cc12 +msgid "creating application" +msgstr "" + +#: ../../tutorial.rst:88 59f646e95f21440aab80a6d9eaee2cb5 +#: dfcc9986b7404e3ea4869973f3300afb +msgid "subject" +msgstr "" + +#: ../../tutorial.rst:91 e212f47f482f4ba086c347c1ee602818 +msgid "" +"Apart from these standard metadata, **PDF documents** starting from PDF " +"version 1.4 may also contain so-called *\"metadata streams\"* (see also " +":data:`stream`). Information in such streams is coded in XML. PyMuPDF " +"deliberately contains no XML components for this purpose (the " +":ref:`PyMuPDF Xml class` is a helper class intended to access the " +"DOM content of a :ref:`Story` object), so we do not directly support " +"access to information contained therein. But you can extract the stream " +"as a whole, inspect or modify it using a package like `lxml`_ and then " +"store the result back into the PDF. If you want, you can also delete this" +" data altogether." +msgstr "" + +#: ../../tutorial.rst:93 5ec202ac5c494be3bf62e68bf5ba28b1 +msgid "" +"There are two utility scripts in the repository that `metadata import " +"(PDF only)`_ resp. `metadata export`_ metadata from resp. to CSV files." +msgstr "" + +#: ../../tutorial.rst:96 1d31369f6b884d08a61b700b01e9e7b1 +msgid "Working with Outlines" +msgstr "" + +#: ../../tutorial.rst:97 fe8e22242a324f349fca363f8d0f6348 +msgid "" +"The easiest way to get all outlines (also called \"bookmarks\") of a " +"document, is by loading its *table of contents*::" +msgstr "" + +#: ../../tutorial.rst:101 4fe54a9ca0244cd9871ba72a155cbe95 +msgid "" +"This will return a Python list of lists *[[lvl, title, page, ...], ...]* " +"which looks much like a conventional table of contents found in books." +msgstr "" + +#: ../../tutorial.rst:103 a0df1526a42e4d88bf1fb24bf14c2392 +msgid "" +"*lvl* is the hierarchy level of the entry (starting from 1), *title* is " +"the entry's title, and *page* the page number (1-based!). Other " +"parameters describe details of the bookmark target." +msgstr "" + +#: ../../tutorial.rst:105 f60efb5302364edfb64c7775c185929b +msgid "" +"There are two utility scripts in the repository that `toc import (PDF " +"only)`_ resp. `toc export`_ table of contents from resp. to CSV files." +msgstr "" + +#: ../../tutorial.rst:108 f7e0d8ac5cd64bbfb19d5a7680f37840 +msgid "Working with Pages" +msgstr "" + +#: ../../tutorial.rst:109 bea68ab57a6a4ec49fa98a57625daec3 +msgid ":ref:`Page` handling is at the core of MuPDF's functionality." +msgstr "" + +#: ../../tutorial.rst:111 705fbd37cfd04f5eb2725ee74973716c +msgid "" +"You can render a page into a raster or vector (SVG) image, optionally " +"zooming, rotating, shifting or shearing it." +msgstr "" + +#: ../../tutorial.rst:112 07346e73ca2f4851bcb7243ed707f0c5 +msgid "" +"You can extract a page's text and images in many formats and search for " +"text strings." +msgstr "" + +#: ../../tutorial.rst:113 b10390460b7e469d933d4b0bca64cbd8 +msgid "" +"For PDF documents many more methods are available to add text or images " +"to pages." +msgstr "" + +#: ../../tutorial.rst:115 634af7e840c34aba910ebc8b50aac6b1 +msgid "" +"First, a :ref:`Page` must be created. This is a method of " +":ref:`Document`::" +msgstr "" + +#: ../../tutorial.rst:120 e13781020ec34c48a1d29405c5d4063b +msgid "" +"Any integer `-∞ < pno < page_count` is possible here. Negative numbers " +"count backwards from the end, so *doc[-1]* is the last page, like with " +"Python sequences." +msgstr "" + +#: ../../tutorial.rst:122 4e28316907e444489cfbf10a12e27bba +msgid "" +"Some more advanced way would be using the document as an **iterator** " +"over its pages::" +msgstr "" + +#: ../../tutorial.rst:136 84e73234fd424852a2b36c0bc15b2d9d +msgid "Once you have your page, here is what you would typically do with it:" +msgstr "" + +#: ../../tutorial.rst:139 088737b71af34948b17fbe30a60a9dc4 +msgid "Inspecting the Links, Annotations or Form Fields of a Page" +msgstr "" + +#: ../../tutorial.rst:140 80600b8ed5664159a8aad4e5b6706037 +msgid "" +"Links are shown as \"hot areas\" when a document is displayed with some " +"viewer software. If you click while your cursor shows a hand symbol, you " +"will usually be taken to the target that is encoded in that hot area. " +"Here is how to get all links::" +msgstr "" + +#: ../../tutorial.rst:145 5b90391005b24d46b953ffde747dbd80 +msgid "" +"*links* is a Python list of dictionaries. For details see " +":meth:`Page.get_links`." +msgstr "" + +#: ../../tutorial.rst:147 19b388140fd44ace88779d4d2f85e3f5 +msgid "You can also use an iterator which emits one link at a time::" +msgstr "" + +#: ../../tutorial.rst:152 972adb409c6b4d1781d1976cb040f944 +msgid "" +"If dealing with a PDF document page, there may also exist annotations " +"(:ref:`Annot`) or form fields (:ref:`Widget`), each of which have their " +"own iterators::" +msgstr "" + +#: ../../tutorial.rst:162 354960511fbd4e299b3561f27464ffa6 +msgid "Rendering a Page" +msgstr "" + +#: ../../tutorial.rst:163 4b29e0e4b9f04b54a4b12db45462cebe +msgid "This example creates a **raster** image of a page's content::" +msgstr "" + +#: ../../tutorial.rst:167 b23c4b5d3b5345f0add5cb0dffaa6255 +msgid "" +"``pix`` is a :ref:`Pixmap` object which (in this case) contains an " +"**RGB** image of the page, ready to be used for many purposes. Method " +":meth:`Page.get_pixmap` offers lots of variations for controlling the " +"image: resolution / DPI, colorspace (e.g. to produce a grayscale image or" +" an image with a subtractive color scheme), transparency, rotation, " +"mirroring, shifting, shearing, etc. For example: to create an **RGBA** " +"image (i.e. containing an alpha channel), specify *pix = " +"page.get_pixmap(alpha=True)*." +msgstr "" + +#: ../../tutorial.rst:169 e2331fb68ff848cab6245b27ba5f4079 +msgid "" +"A :ref:`Pixmap` contains a number of methods and attributes which are " +"referenced below. Among them are the integers ``width``, ``height`` (each" +" in pixels) and ``stride`` (number of bytes of one horizontal image " +"line). Attribute ``samples`` represents a rectangular area of bytes " +"representing the image data (a Python ``bytes`` object)." +msgstr "" + +#: ../../tutorial.rst:171 03e8c67cd34a4299bbacfe8abd40de63 +msgid "" +"You can also create a **vector** image of a page by using " +":meth:`Page.get_svg_image`. Refer to this `Vector Image Support page`_ " +"for details." +msgstr "" + +#: ../../tutorial.rst:174 c887d409be174ceca947d6b32e881d03 +msgid "Saving the Page Image in a File" +msgstr "" + +#: ../../tutorial.rst:175 5e39659faf42451083abd892ba3bdb4e +msgid "We can simply store the image in a PNG file::" +msgstr "" + +#: ../../tutorial.rst:180 7ef7b19218354906a6c5d511a0672a1f +msgid "Displaying the Image in GUIs" +msgstr "" + +#: ../../tutorial.rst:181 f6651c84f3d54689abdaff0d00a3095e +msgid "" +"We can also use it in GUI dialog managers. :attr:`Pixmap.samples` " +"represents an area of bytes of all the pixels as a Python bytes object. " +"Here are some examples, find more in the `examples`_ directory." +msgstr "" + +#: ../../tutorial.rst:184 93b0ff029516467ca4a36bb526aeb687 +msgid "wxPython" +msgstr "" + +#: ../../tutorial.rst:185 6f03843027834dda8394ee85d04238d5 +msgid "" +"Consult their documentation for adjustments to RGB(A) pixmaps and, " +"potentially, specifics for your wxPython release::" +msgstr "" + +#: ../../tutorial.rst:193 b6f1e9b15675411e9bd7023777e4b99a +msgid "Tkinter" +msgstr "" + +#: ../../tutorial.rst:194 c11e72b65c0e4368a0fe00c748909105 +msgid "Please also see section 3.19 of the `Pillow documentation`_::" +msgstr "" + +#: ../../tutorial.rst:203 41e53493133b4606b75fc48aa4b02d6b +msgid "The following **avoids using Pillow**::" +msgstr "" + +#: ../../tutorial.rst:210 2d36aa26bccf4e5ba49ede95aef20a49 +msgid "" +"If you are looking for a complete Tkinter script paging through **any " +"supported** document, `here it is!`_. It can also zoom into pages, and it" +" runs under Python 2 or 3. It requires the extremely handy `PySimpleGUI`_" +" pure Python package." +msgstr "" + +#: ../../tutorial.rst:213 9a88cb97b2d9452ab197250569501e5f +msgid "PyQt4, PyQt5, PySide" +msgstr "" + +#: ../../tutorial.rst:214 daeac83261ba4066a7dc604d3aa562f2 +msgid "Please also see section 3.16 of the `Pillow documentation`_::" +msgstr "" + +#: ../../tutorial.rst:223 b85add3e93e4499b89e82f1646430a26 +msgid "" +"Again, you also can get along **without using Pillow.** Qt's `QImage` " +"luckily supports native Python pointers, so the following is the " +"recommended way to create Qt images::" +msgstr "" + +#: ../../tutorial.rst:233 0fcb7bc54009424fa20575e22fb06d0e +msgid "Extracting Text and Images" +msgstr "" + +#: ../../tutorial.rst:234 f5900cc6c4924334a0f4bf4d1bdae4ae +msgid "" +"We can also extract all text, images and other information of a page in " +"many different forms, and levels of detail::" +msgstr "" + +#: ../../tutorial.rst:238 48bff694040b45549010d3b53435733b +msgid "" +"Use one of the following strings for *opt* to obtain different formats " +"[#f2]_:" +msgstr "" + +#: ../../tutorial.rst:240 3c9203fe338a46629695295936dc44a4 +msgid "" +"**\"text\"**: (default) plain text with line breaks. No formatting, no " +"text position details, no images." +msgstr "" + +#: ../../tutorial.rst:242 ef523faacbb4433e9599b78451f9a623 +msgid "**\"blocks\"**: generate a list of text blocks (= paragraphs)." +msgstr "" + +#: ../../tutorial.rst:244 494f2cbaf4dc4d3595b54a18d8165a4f +msgid "**\"words\"**: generate a list of words (strings not containing spaces)." +msgstr "" + +#: ../../tutorial.rst:246 f95d696f7efa4e48a4fe4018638ee139 +msgid "" +"**\"html\"**: creates a full visual version of the page including any " +"images. This can be displayed with your internet browser." +msgstr "" + +#: ../../tutorial.rst:248 8f24748d78b04cc6b92c29fcae8ff8ca +msgid "" +"**\"dict\"** / **\"json\"**: same information level as HTML, but provided" +" as a Python dictionary or resp. JSON string. See " +":meth:`TextPage.extractDICT` for details of its structure." +msgstr "" + +#: ../../tutorial.rst:250 266283a205584bb98dd88e0282b81b8a +msgid "" +"**\"rawdict\"** / **\"rawjson\"**: a super-set of **\"dict\"** / " +"**\"json\"**. It additionally provides character detail information like " +"XML. See :meth:`TextPage.extractRAWDICT` for details of its structure." +msgstr "" + +#: ../../tutorial.rst:252 be5015a7daf84be89659b718295dcaf6 +msgid "" +"**\"xhtml\"**: text information level as the TEXT version but includes " +"images. Can also be displayed by internet browsers." +msgstr "" + +#: ../../tutorial.rst:254 6a9fccccc2af470dbe418b64d95196fb +msgid "" +"**\"xml\"**: contains no images, but full position and font information " +"down to each single text character. Use an XML module to interpret." +msgstr "" + +#: ../../tutorial.rst:256 c2fb29629d574544ba6240118706a993 +msgid "" +"To give you an idea about the output of these alternatives, we did text " +"example extracts. See :ref:`Appendix1`." +msgstr "" + +#: ../../tutorial.rst:259 6fcbe8fa549f4672940aa6a7baa43298 +msgid "Searching for Text" +msgstr "" + +#: ../../tutorial.rst:260 055f0da706d34efba1868870cc7ac25e +msgid "You can find out, exactly where on a page a certain text string appears::" +msgstr "" + +#: ../../tutorial.rst:264 fa6460b021d44b8aba602b1940777f99 +msgid "" +"This delivers a list of rectangles (see :ref:`Rect`), each of which " +"surrounds one occurrence of the string \"mupdf\" (case insensitive). You " +"could use this information to e.g. highlight those areas (PDF only) or " +"create a cross reference of the document." +msgstr "" + +#: ../../tutorial.rst:266 9602ff0fbee54febb5a9bce0eb7643a8 +msgid "" +"Please also do have a look at chapter :ref:`cooperation` and at demo " +"programs `demo.py`_ and `demo-lowlevel.py`_. Among other things they " +"contain details on how the :ref:`TextPage`, :ref:`Device` and " +":ref:`DisplayList` classes can be used for a more direct control, e.g. " +"when performance considerations suggest it." +msgstr "" + +#: ../../tutorial.rst:273 d532b1e3d0b249d5863b7d1af292f56f +msgid "Stories: Generating PDF from HTML Source" +msgstr "" + +#: ../../tutorial.rst:275 416352710d134781921a3400fd5b5ef0 +msgid "" +"The :ref:`Story` class is a new feature of PyMuPDF version 1.21.0. It " +"represents support for MuPDF's **\"story\"** interface." +msgstr "" + +#: ../../tutorial.rst:277 accd3e3fc6d547b78b274237642033d6 +msgid "" +"The following is a quote from the book `\"MuPDF Explored\"`_ by Robin " +"Watts from `Artifex`_:" +msgstr "" + +#: ../../tutorial.rst:281 47e500970eb842949a968db6adee0910 +msgid "" +"*Stories provide a way to easily layout styled content for use with " +"devices, such as those offered by Document Writers (...). The concept of " +"a story comes from desktop publishing, which in turn (...) gets it from " +"newspapers. If you consider a traditional newspaper layout, it will " +"consist of various news articles (stories) that are laid out into " +"multiple columns, possibly across multiple pages.*" +msgstr "" + +#: ../../tutorial.rst:283 27ebf650cfb746b6ae9e42bdde508478 +msgid "" +"*Accordingly, MuPDF uses a story to represent a flow of text with styling" +" information. The user of the story can then supply a sequence of " +"rectangles into which the story will be laid out, and the positioned text" +" can then be drawn to an output device. This keeps the concept of the " +"text itself (the story) to be separated from the areas into which the " +"text should be flowed (the layout).*" +msgstr "" + +#: ../../tutorial.rst:287 7da64d937fe84390a33b56158c76d219 +msgid "" +"A Story works somewhat similar to an internet browser: It faithfully " +"parses and renders HTML hypertext and also optional stylesheets (CSS). " +"But its **output is a PDF** -- not web pages." +msgstr "" + +#: ../../tutorial.rst:290 290d5414b6754a0a8cec4ef553811e70 +msgid "" +"When creating a :ref:`Story`, the input from up to three different " +"information sources is taken into account. All these items are optional." +msgstr "" + +#: ../../tutorial.rst:292 b76811f3a6e94ca48849af027b1e4aa7 +msgid "" +"HTML source code, either a Python string or **created by the script** " +"using methods of :ref:`Xml`." +msgstr "" + +#: ../../tutorial.rst:294 631005d36d9d478eb1222c6746a62f78 +msgid "" +"CSS (Cascaded Style Sheet) source code, provided as a Python string. CSS " +"can be used to provide styling information (text font size, color, etc.) " +"like it would happen for web pages. Obviously, this string may also be " +"read from a file." +msgstr "" + +#: ../../tutorial.rst:296 b555903aaf064df4ac02bf4379ecd84b +msgid "" +"An :ref:`Archive` **must be used** whenever the DOM references images, or" +" uses text fonts except the standard :ref:`Base-14-Fonts`, CJK fonts and " +"the NOTO fonts generated into the PyMuPDF binary." +msgstr "" + +#: ../../tutorial.rst:299 5a5a7775caf44157ab99d4fb18a08da0 +msgid "" +"The :ref:`API` allows creating DOMs completely from scratch, " +"including desired styling information. It can also be used to modify or " +"extend **provided** HTML: text can be deleted or replaced, or its styling" +" can be changed. Text -- for example extracted from databases -- can also" +" be added and fill template-like HTML documents." +msgstr "" + +#: ../../tutorial.rst:301 eff1f356f57a4a5baa32893df82ccc7f +msgid "" +"It is **not required** to provide syntactically complete HTML documents: " +"snippets like `Hello World!` are fully accepted, and many /" +" most syntax errors are automatically corrected." +msgstr "" + +#: ../../tutorial.rst:303 365fa2cc06434ed8ad7429aaf3a63265 +msgid "" +"After the HTML is considered complete, it can be used to create a PDF " +"document. This happens via the new :ref:`DocumentWriter` class. The " +"programmer calls its methods to create a new empty page, and passes " +"rectangles to the Story to fill them." +msgstr "" + +#: ../../tutorial.rst:305 3291ca47108e47b19f4b0bc0a5a4027b +msgid "" +"The story in turn will return completion codes indicating whether or not " +"more content is waiting to be written. Which part of the content will " +"land in which rectangle or on which page is automatically determined by " +"the story itself -- it cannot be influenced other than by providing the " +"rectangles." +msgstr "" + +#: ../../tutorial.rst:307 bd9d9dd769be42d4b2431ad4fac946e4 +msgid "" +"Please see the :ref:`Stories recipes` for a number of " +"typical use cases." +msgstr "" + +#: ../../tutorial.rst:311 b4514f2b40064533bbf026420a0260d7 +msgid "PDF Maintenance" +msgstr "" + +#: ../../tutorial.rst:312 76f8cae636954def812f6bd6aa4d9077 +msgid "" +"PDFs are the only document type that can be **modified** using PyMuPDF. " +"Other file types are read-only." +msgstr "" + +#: ../../tutorial.rst:314 6d192d43c9e24232be29c65e1e0c1018 +msgid "" +"However, you can convert **any document** (including images) to a PDF and" +" then apply all PyMuPDF features to the conversion result. Find out more " +"here :meth:`Document.convert_to_pdf`, and also look at the demo script " +"`pdf-converter.py`_ which can convert any :ref:`supported " +"document` to PDF." +msgstr "" + +#: ../../tutorial.rst:316 05d7bbe4027a4e9b98372c4707c22cd4 +msgid "" +":meth:`Document.save()` always stores a PDF in its current (potentially " +"modified) state on disk." +msgstr "" + +#: ../../tutorial.rst:318 400c516b51f0441a9c6ac7d433101329 +msgid "" +"You normally can choose whether to save to a new file, or just append " +"your modifications to the existing one (\"incremental save\"), which " +"often is very much faster." +msgstr "" + +#: ../../tutorial.rst:320 57fdfcd11a1245249d7e837f37b43094 +msgid "" +"The following describes ways how you can manipulate PDF documents. This " +"description is by no means complete: much more can be found in the " +"following chapters." +msgstr "" + +#: ../../tutorial.rst:323 ec4c85ec57124203b67f52652f082b88 +msgid "Modifying, Creating, Re-arranging and Deleting Pages" +msgstr "" + +#: ../../tutorial.rst:324 625ab390c172404fbdc7aa9520874495 +msgid "" +"There are several ways to manipulate the so-called **page tree** (a " +"structure describing all the pages) of a PDF:" +msgstr "" + +#: ../../tutorial.rst:326 159259eb9e4145daa6c13b2ad767f12e +msgid "" +":meth:`Document.delete_page` and :meth:`Document.delete_pages` delete " +"pages." +msgstr "" + +#: ../../tutorial.rst:328 473d5897fff649019f539d6232e91f44 +msgid "" +":meth:`Document.copy_page`, :meth:`Document.fullcopy_page` and " +":meth:`Document.move_page` copy or move a page to other locations within " +"the same document." +msgstr "" + +#: ../../tutorial.rst:330 1e6c19e64c734426bec58da4dfbe7e0b +msgid "" +":meth:`Document.select` shrinks a PDF down to selected pages. Parameter " +"is a sequence [#f3]_ of the page numbers that you want to keep. These " +"integers must all be in range *0 <= i < page_count*. When executed, all " +"pages **missing** in this list will be deleted. Remaining pages will " +"occur **in the sequence and as many times (!) as you specify them**." +msgstr "" + +#: ../../tutorial.rst:332 1032d54636274cfab2c769409afa76e0 +msgid "So you can easily create new PDFs with" +msgstr "" + +#: ../../tutorial.rst:334 e8415caf00594110bef2b948c89abcbd +msgid "the first or last 10 pages," +msgstr "" + +#: ../../tutorial.rst:335 fc336f721207413b95dce987329adfad +msgid "only the odd or only the even pages (for doing double-sided printing)," +msgstr "" + +#: ../../tutorial.rst:336 3a6929bd1e7d4e178ef1549c9c67d87a +msgid "pages that **do** or **don't** contain a given text," +msgstr "" + +#: ../../tutorial.rst:337 968ba746356447208207a1cee391ea52 +msgid "reverse the page sequence, ..." +msgstr "" + +#: ../../tutorial.rst:339 1c2ed724e9564be1a8841011462e53a1 +msgid "... whatever you can think of." +msgstr "" + +#: ../../tutorial.rst:341 3a7dc1aa206e4858a930d0cc0ce437cf +msgid "" +"The saved new document will contain links, annotations and bookmarks that" +" are still valid (i.a.w. either pointing to a selected page or to some " +"external resource)." +msgstr "" + +#: ../../tutorial.rst:343 62273df02f3a43edaca93b7b9899b551 +msgid "" +":meth:`Document.insert_page` and :meth:`Document.new_page` insert new " +"pages." +msgstr "" + +#: ../../tutorial.rst:345 62ec5bdcc4854cc0ab7b5a9c5de8295e +msgid "" +"Pages themselves can moreover be modified by a range of methods (e.g. " +"page rotation, annotation and link maintenance, text and image " +"insertion)." +msgstr "" + +#: ../../tutorial.rst:348 f481a1f85523458ba716bfffa017ecc2 +msgid "Joining and Splitting PDF Documents" +msgstr "" + +#: ../../tutorial.rst:350 5c4f9e715c364f99ab85e02a35390a54 +msgid "" +"Method :meth:`Document.insert_pdf` copies pages **between different** PDF" +" documents. Here is a simple **joiner** example (*doc1* and *doc2* being " +"opened PDFs)::" +msgstr "" + +#: ../../tutorial.rst:355 76e1ca6378be4c7780b008c6aa0147b1 +msgid "" +"Here is a snippet that **splits** *doc1*. It creates a new document of " +"its first and its last 10 pages::" +msgstr "" + +#: ../../tutorial.rst:362 425d928677684aaebd2c13acc306cc3a +msgid "" +"More can be found in the :ref:`Document` chapter. Also have a look at " +"`PDFjoiner.py`_." +msgstr "" + +#: ../../tutorial.rst:365 3a32f81f55af4ff2942e6a5bda5351e4 +msgid "Embedding Data" +msgstr "" + +#: ../../tutorial.rst:367 e8c1a07274464e69b5716d2cfcd333a2 +msgid "" +"PDFs can be used as containers for arbitrary data (executables, other " +"PDFs, text or binary files, etc.) much like ZIP archives." +msgstr "" + +#: ../../tutorial.rst:369 e53116859c304e5d8cae52bca7615d49 +msgid "" +"PyMuPDF fully supports this feature via :ref:`Document` ``embfile_*`` " +"methods and attributes. For some detail read :ref:`Appendix 3`, consult " +"the Wiki on `dealing with embedding files`_, or the example scripts " +"`embedded-copy.py`_, `embedded-export.py`_, `embedded-import.py`_, and " +"`embedded-list.py`_." +msgstr "" + +#: ../../tutorial.rst:373 7e063cc85bf74b67af328699883eabcd +msgid "Saving" +msgstr "" + +#: ../../tutorial.rst:375 ddc980f323444d9a888df621e5e4413a +msgid "" +"As mentioned above, :meth:`Document.save` will **always** save the " +"document in its current state." +msgstr "" + +#: ../../tutorial.rst:377 938eb4bca93d44e7ad9d9db6a21b0197 +msgid "" +"You can write changes back to the **original PDF** by specifying option " +"``incremental=True``. This process is (usually) **extremely fast**, since" +" changes are **appended to the original file** without completely " +"rewriting it." +msgstr "" + +#: ../../tutorial.rst:379 34a90e8b41204457b27c7bf4c896ed07 +msgid "" +":meth:`Document.save` options correspond to options of MuPDF's command " +"line utility *mutool clean*, see the following table." +msgstr "" + +#: ../../tutorial.rst:382 1163070c3e2e478c9edfeeef99960201 +msgid "**Save Option**" +msgstr "" + +#: ../../tutorial.rst:382 94311b1ebca3478a8d7bf6f6d522fd8b +msgid "**mutool**" +msgstr "" + +#: ../../tutorial.rst:382 962d3ef8846c431c8e9dfdf9d487bfb1 +msgid "**Effect**" +msgstr "" + +#: ../../tutorial.rst:384 b65cf8acc8bc476f8334931a4c8a17b8 +msgid "garbage=1" +msgstr "" + +#: ../../tutorial.rst:384 6b4221531c1b4915975145d5a46840f9 +msgid "g" +msgstr "" + +#: ../../tutorial.rst:384 b773213735d5433a912d7d50de094b58 +msgid "garbage collect unused objects" +msgstr "" + +#: ../../tutorial.rst:385 9bb3557107484b32b9d48ee883975e41 +msgid "garbage=2" +msgstr "" + +#: ../../tutorial.rst:385 e5d8266ec4434156843ae8d329cb1234 +msgid "gg" +msgstr "" + +#: ../../tutorial.rst:385 5d1cd64ee4a44495b52e5808a4c51ebf +msgid "in addition to 1, compact :data:`xref` tables" +msgstr "" + +#: ../../tutorial.rst:386 5846a30c454d494b9cb77c2612b7e3ba +msgid "garbage=3" +msgstr "" + +#: ../../tutorial.rst:386 8499a2c0b7254ddfbc44cba627532452 +msgid "ggg" +msgstr "" + +#: ../../tutorial.rst:386 349d1afd120c468c8663d3467baf0a1d +msgid "in addition to 2, merge duplicate objects" +msgstr "" + +#: ../../tutorial.rst:387 f97513200d184db2818ef3272e06659d +msgid "garbage=4" +msgstr "" + +#: ../../tutorial.rst:387 8818b59f9bf3464e8ff2acae77c152f2 +msgid "gggg" +msgstr "" + +#: ../../tutorial.rst:387 c284ddf0b0794e979bfa728c57373d83 +msgid "in addition to 3, merge duplicate stream content" +msgstr "" + +#: ../../tutorial.rst:388 7874a21a2a374610abddf1cbd7efb717 +msgid "clean=True" +msgstr "" + +#: ../../tutorial.rst:388 c1e6bac1097a452a8399150c1e9c8279 +msgid "cs" +msgstr "" + +#: ../../tutorial.rst:388 9ddc64830c9040ed8451f02ed2741816 +msgid "clean and sanitize content streams" +msgstr "" + +#: ../../tutorial.rst:389 c2f486c396c84db0ba07db1c9ee5a7ae +msgid "deflate=True" +msgstr "" + +#: ../../tutorial.rst:389 49a98a67d15747c98e6ca70bb53f3c51 +msgid "z" +msgstr "" + +#: ../../tutorial.rst:389 37e910e46f2247d3a69e36dbd0748d94 +msgid "deflate uncompressed streams" +msgstr "" + +#: ../../tutorial.rst:390 7ffbd7aa96264ff1902b58f73b4fd092 +msgid "deflate_images=True" +msgstr "" + +#: ../../tutorial.rst:390 83ea4c4b317d488092885540eb84f939 +msgid "i" +msgstr "" + +#: ../../tutorial.rst:390 4e719956c06a4d49bb8d10a19576ee42 +msgid "deflate image streams" +msgstr "" + +#: ../../tutorial.rst:391 c33f6052e9494538ae7f4e1191c64fd2 +msgid "deflate_fonts=True" +msgstr "" + +#: ../../tutorial.rst:391 9786f972e1be4a16b85ffee8b754ec19 +msgid "f" +msgstr "" + +#: ../../tutorial.rst:391 79fefb0533874ecb8a096e7db7f10332 +msgid "deflate fontfile streams" +msgstr "" + +#: ../../tutorial.rst:392 423d166f2fc54b4498a9377a2dd30960 +msgid "ascii=True" +msgstr "" + +#: ../../tutorial.rst:392 a67143a6cbe040c590ae0a63a0fe9234 +msgid "a" +msgstr "" + +#: ../../tutorial.rst:392 59590f861522439b8f81250d3941e06c +msgid "convert binary data to ASCII format" +msgstr "" + +#: ../../tutorial.rst:393 86236a9e66cf4150970d92080d6e1583 +msgid "linear=True" +msgstr "" + +#: ../../tutorial.rst:393 5893e24f2faa4060ba0c43aa63dbd263 +msgid "l" +msgstr "" + +#: ../../tutorial.rst:393 0dec5675398e49978e78651893a99395 +msgid "create a linearized version" +msgstr "" + +#: ../../tutorial.rst:394 febbe58d4b104f8bbe950ccccccb1859 +msgid "expand=True" +msgstr "" + +#: ../../tutorial.rst:394 ef0e028a01314e21a0d744ca0d2ad01f +msgid "d" +msgstr "" + +#: ../../tutorial.rst:394 09ec7a0736e34a67aa68a9542195d17e +msgid "decompress all streams" +msgstr "" + +#: ../../tutorial.rst:397 e917b060c085407fb80a474e3bec75e9 +msgid "" +"For an explanation of terms like ``object``, ``stream``, ``xref`` consult" +" the :ref:`Glossary` chapter." +msgstr "" + +#: ../../tutorial.rst:399 dcb5dc3e6c3a41349a7db5e5052ed2e0 +msgid "" +"For example, ``mutool clean -ggggz file.pdf`` yields excellent " +"compression results. It corresponds to ``doc.save(filename, garbage=4, " +"deflate=True)``." +msgstr "" + +#: ../../tutorial.rst:402 c79ea0512d3b44e78f142255268af6ac +msgid "Closing" +msgstr "" + +#: ../../tutorial.rst:403 f745b8b8cfd64cd0955b6d9c72baa5f3 +msgid "" +"It is often desirable to \"close\" a document to relinquish control of " +"the underlying file to the OS, while your program continues." +msgstr "" + +#: ../../tutorial.rst:405 6ec44b753b01413a9bcbd6b21a1310d7 +msgid "" +"This can be achieved by the :meth:`Document.close` method. Apart from " +"closing the underlying file, buffer areas associated with the document " +"will be freed." +msgstr "" + +#: ../../tutorial.rst:408 88cb960755d5457da5441939ff0c836d +msgid "Further Reading" +msgstr "" + +#: ../../tutorial.rst:409 079337447add4588b00679495c0756c6 +msgid "" +"Also have a look at PyMuPDF's `Wiki`_ pages. Especially those named in " +"the sidebar under title **\"Recipes\"** cover over 15 topics written in " +"\"How-To\" style." +msgstr "" + +#: ../../tutorial.rst:411 4ff206365d3c46319f8786732294335f +msgid "" +"This document also contains a :ref:`FAQ`. This chapter has close " +"connection to the aforementioned recipes, and it will be extended with " +"more content over time." +msgstr "" + +#: ../../tutorial.rst:418 8469cb98a4bc46da95e015537403452d +msgid "Footnotes" +msgstr "" + +#: ../../tutorial.rst:419 7abfecf3e58542b0859cd575498948f7 +msgid "" +"PyMuPDF lets you also open several image file types just like normal " +"documents. See section :ref:`ImageFiles` in chapter :ref:`Pixmap` for " +"more comments." +msgstr "" + +#: ../../tutorial.rst:421 70b740aad28644b395c85b6a12f20f0e +msgid "" +":meth:`Page.get_text` is a convenience wrapper for several methods of " +"another PyMuPDF class, :ref:`TextPage`. The names of these methods " +"correspond to the argument string passed to :meth:`Page.get_text` \\: " +"*Page.get_text(\"dict\")* is equivalent to *TextPage.extractDICT()* \\." +msgstr "" + +#: ../../tutorial.rst:423 13eddbfd7bd64cd49e523d76972c7368 +msgid "" +"\"Sequences\" are Python objects conforming to the sequence protocol. " +"These objects implement a method named *__getitem__()*. Best known " +"examples are Python tuples and lists. But *array.array*, *numpy.array* " +"and PyMuPDF's \"geometry\" objects (:ref:`Algebra`) are sequences, too. " +"Refer to :ref:`SequenceTypes` for details." +msgstr "" + +#: ../../footer.rst:46 34f591e7f8ab491b884b15a32b4f508e +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/vars.mo b/docs/locales/ko/LC_MESSAGES/vars.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/vars.po b/docs/locales/ko/LC_MESSAGES/vars.po new file mode 100644 index 000000000..c4a8caae2 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/vars.po @@ -0,0 +1,787 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 b5ad9d8dc172425eb69cab3f7d6af3f1 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 469b53fb216c416cab35e3785cb83220 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 3fc4b25efb434bdd9a36d5ea7c1bb7e4 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../vars.rst:5 f49c06cd5a6f4032b8cd339c64a77df1 +msgid "Constants and Enumerations" +msgstr "" + +#: ../../vars.rst:6 49759909465a4d1794c2b500ea92ef1d +msgid "" +"Constants and enumerations of :title:`MuPDF` as implemented by |PyMuPDF|." +" Each of the following values is accessible as `pymupdf.value`." +msgstr "" + +#: ../../vars.rst:10 32fc3323ad3f4cdfb477267318e012bc +msgid "Constants" +msgstr "" + +#: ../../vars.rst:14 5b27640ef1ee4e98bea1cf03003160a1 +msgid "Predefined Python list of valid :ref:`Base-14-Fonts`." +msgstr "" + +#: ../../vars.rst 03741e7ad1a44d5299f6572dedaca7b4 +#: 049f7b4ff1974e208b3a904e6026a510 05d7b5730e6142eb96888bc1f1fbcc93 +#: 0651bf5144c1497e884e5c0cc6076c5a 0d7a04755856497fa83f67a8849b2425 +#: 26435fd0d5d24581abb8057002bce4cc 340ebf4c39ec45d4bfe3a768d8345ba6 +#: 4305209c628b41b484db244a821e36a6 441240ad284b456d8fe847ecb191b0f1 +#: 5ba5705e35594ba28d545462f311e0f9 61aa981fd8a346deaaf51a3d4c08d34a +#: 6ca990f8a13b4358bbabc20892811cc3 771ae51b4e044a81ae255f6c908697fb +#: 84cd0a4cb52c4fec9fe883c2ad4ace9d 850da1d028064e8191dfa082a3f82827 +#: 8792cce457a84f11b18d64b74d8debc3 8a25036eb68c414abfb7ad4fa62d7229 +#: 92c64e0683614c6c9deb6668c7f4b761 a2004991370a40408515cf83163b6ffb +#: cdbf08fc2b5b4750b45132b7ec6c2616 d06dea99fa0a4e3cbee4b2b714c43296 +#: f03ecc8098ca4cc181b8356bd7a2bb91 f3646d6d4cee48e0b1af3350ce178eec +#: f7af32255ccb4f66a37175278b7b7087 fddcade3afa241b8a81b00e45d91f2a4 +msgid "type" +msgstr "" + +#: ../../vars.rst:16 669fb77a7bdd4fbcb224507f1b8d7932 +msgid "list" +msgstr "" + +#: ../../vars.rst:20 b3ae8b9f4f43444aa8fdc74de25f17f0 +msgid "Predefined RGB colorspace *pymupdf.Colorspace(pymupdf.CS_RGB)*." +msgstr "" + +#: ../../vars.rst:22 ../../vars.rst:28 ../../vars.rst:34 +#: 19f89992935a4f8e839adc1511263368 204d25d273a7452cb5ba5e71b6869076 +#: 79e2265294cd409f800e1e4a446e2ccf +msgid ":ref:`Colorspace`" +msgstr "" + +#: ../../vars.rst:26 6a13d5103eb54565bf88415ab0ddc8c5 +msgid "Predefined GRAY colorspace *pymupdf.Colorspace(pymupdf.CS_GRAY)*." +msgstr "" + +#: ../../vars.rst:32 7321e72d393e42a3b735759e78d1800e +msgid "Predefined CMYK colorspace *pymupdf.Colorspace(pymupdf.CS_CMYK)*." +msgstr "" + +#: ../../vars.rst:38 69ab2345dd374ad1873f76d16292717c +msgid "1 -- Type of :ref:`Colorspace` is RGBA" +msgstr "" + +#: ../../vars.rst:40 ../../vars.rst:46 ../../vars.rst:52 ../../vars.rst:324 +#: ../../vars.rst:330 ../../vars.rst:339 ../../vars.rst:348 ../../vars.rst:354 +#: ../../vars.rst:360 015aafcf193f4fd986c01b2543bb2157 +#: 0a5dae970bce40d4a3ef066a7b52120d 648ca70552324683a3f2d83756f7f850 +#: 9b976dcffb04497a9119e83b6b78aab2 ab0b93519cea4419af8c90b1cc9d3a36 +#: b6975d022fb6464bb4f18e4ee6bd73fa c2c115fb5ad14e8da9970160f490f151 +#: c3202da1e321403b976247fc2a19756a d3d462436758488a8dab6f328e27425e +msgid "int" +msgstr "" + +#: ../../vars.rst:44 23b50446130242d885968a5027985060 +msgid "2 -- Type of :ref:`Colorspace` is GRAY" +msgstr "" + +#: ../../vars.rst:50 9cf5e34e2e83453799d96f7be872aa7b +msgid "3 -- Type of :ref:`Colorspace` is CMYK" +msgstr "" + +#: ../../vars.rst:56 22d14edcfed74d6ba68f180a5162d3bc +msgid "'x.xx.x' -- MuPDF version that is being used by PyMuPDF." +msgstr "" + +#: ../../vars.rst:58 ../../vars.rst:70 24ffecb2a7de45fbbce9cac71b9ad2c2 +#: 4162b0bbb82145f5863294fee9b84fcb +msgid "string" +msgstr "" + +#: ../../vars.rst:62 22fa0f6343d143a783918bf5d77c0101 +msgid "MuPDF version as a tuple of integers, `(major, minor, patch)`." +msgstr "" + +#: ../../vars.rst:64 ../../vars.rst:76 ../../vars.rst:86 +#: 2f0bacf105574469a7a2f46854047382 ad5b78a4130443e0b9cb7a3e7209521d +#: d8a2a6e3dcc44d9a96a1324281332fc4 +msgid "tuple" +msgstr "" + +#: ../../vars.rst:68 44158f3deff845c6a420df354f39c1ae +msgid "'x.xx.x' -- PyMuPDF version." +msgstr "" + +#: ../../vars.rst:74 503076c6013f48dea2d5aff3c0bfffe3 +msgid "PyMuPDF version as a tuple of integers, `(major, minor, patch)`." +msgstr "" + +#: ../../vars.rst:80 ../../vars.rst:98 60b862b7a373462c8b0819e549788e84 +#: c79955e7841e4b48a637775a61cfbd69 +msgid "Disabled (set to None) in 1.26.1." +msgstr "" + +#: ../../vars.rst:84 fff27c04ee62442897c643c5bfb60fd8 +msgid "" +"(pymupdf_version, mupdf_version, timestamp) -- combined version " +"information where `timestamp` is the generation point in time formatted " +"as \"YYYYMMDDhhmmss\"." +msgstr "" + +#: ../../vars.rst:90 4fbbccb8f9024a63a332534e6a7d0d2e +msgid "Legacy equivalent to `mupdf_version`." +msgstr "" + +#: ../../vars.rst:94 24f0ff9e8cf44c5fba17fe9c4bd63d7f +msgid "Legacy equivalent to `pymupdf_version`." +msgstr "" + +#: ../../vars.rst:104 4dce9933f18a45198a4633f8fefe9d07 +msgid "Document Permissions" +msgstr "" + +#: ../../vars.rst:107 ../../vars.rst:125 ../../vars.rst:138 +#: 69c0225036764f13b91eaa9dd3d4b5a1 8e2f223c79664413ba8ac6afd092c3fa +#: a0a9b218a32347e18401eec3e71b51c6 +msgid "Code" +msgstr "" + +#: ../../vars.rst:107 c680e8bb0a64489fbe38ff0350dae277 +msgid "Permitted Action" +msgstr "" + +#: ../../vars.rst:109 a79221d078824de999e2f0ccf27939da +msgid "PDF_PERM_PRINT" +msgstr "" + +#: ../../vars.rst:109 634b2c786f6946a99a89687ae863c63d +msgid "Print the document" +msgstr "" + +#: ../../vars.rst:110 488e117f6ad841e4b5ebe9ca302ecd70 +msgid "PDF_PERM_MODIFY" +msgstr "" + +#: ../../vars.rst:110 a868ac82b5084146a37a1633ab518c6c +msgid "Modify the document's contents" +msgstr "" + +#: ../../vars.rst:111 18ef7dd19b374b5ebfdb3cec757c73ac +msgid "PDF_PERM_COPY" +msgstr "" + +#: ../../vars.rst:111 8f52d72b641b40d285393c8d0bdf12b3 +msgid "Copy or otherwise extract text and graphics" +msgstr "" + +#: ../../vars.rst:112 9e025ab3d4f741e2a325152bc6f8a701 +msgid "PDF_PERM_ANNOTATE" +msgstr "" + +#: ../../vars.rst:112 cb0beab224b94270bdabfc3bd1ceacc6 +msgid "Add or modify text annotations and interactive form fields" +msgstr "" + +#: ../../vars.rst:113 65f9a8539a38426e9d9edea861734d4d +msgid "PDF_PERM_FORM" +msgstr "" + +#: ../../vars.rst:113 9880c191956741d1ada6315e712e1df3 +msgid "Fill in forms and sign the document" +msgstr "" + +#: ../../vars.rst:114 419137e25c424c91876fed826c5a5bb0 +msgid "PDF_PERM_ACCESSIBILITY" +msgstr "" + +#: ../../vars.rst:114 c90f5be96ba842199ff198fe845a93a8 +msgid "Obsolete, always permitted" +msgstr "" + +#: ../../vars.rst:115 2ac0ea137a68490a808035fe357a1eb5 +msgid "PDF_PERM_ASSEMBLE" +msgstr "" + +#: ../../vars.rst:115 ee21ef3d77b543aa83b85d5966fa800c +msgid "Insert, rotate, or delete pages, bookmarks, thumbnail images" +msgstr "" + +#: ../../vars.rst:116 12f225fa0c204cecae58e07d185ee517 +msgid "PDF_PERM_PRINT_HQ" +msgstr "" + +#: ../../vars.rst:116 40cb4480233843f686a1bb405c551ad8 +msgid "High quality printing" +msgstr "" + +#: ../../vars.rst:122 c7730f8c05a4440dabe25baa7a267683 +msgid "PDF Optional Content Codes" +msgstr "" + +#: ../../vars.rst:125 ../../vars.rst:138 063e2ffd14154f0ebe27a414e68d96c6 +#: fe257d4a0ce0417dba5855c9020e0ca1 +msgid "Meaning" +msgstr "" + +#: ../../vars.rst:127 fe2012971224466ea97a0fb2a812c5d5 +msgid "PDF_OC_ON" +msgstr "" + +#: ../../vars.rst:127 420c6f19787341418e8a584a6befd890 +msgid "Set an OCG to ON temporarily" +msgstr "" + +#: ../../vars.rst:128 2c29aec5886a45cfae0e991402caad13 +msgid "PDF_OC_TOGGLE" +msgstr "" + +#: ../../vars.rst:128 a7ebc40cd09c47a3867c2d73be2fdc36 +msgid "Toggle OCG status temporarily" +msgstr "" + +#: ../../vars.rst:129 4b06b1f6475a41cb8d448d28fbf5dd24 +msgid "PDF_OC_OFF" +msgstr "" + +#: ../../vars.rst:129 8a6a1199c65a44ba85224f9de436969f +msgid "Set an OCG to OFF temporarily" +msgstr "" + +#: ../../vars.rst:135 2b7b50430a24457fafc7cd3943e62be7 +msgid "PDF encryption method codes" +msgstr "" + +#: ../../vars.rst:140 a3c958105b9a4e8db59f50cb6ab72b3f +msgid "PDF_ENCRYPT_KEEP" +msgstr "" + +#: ../../vars.rst:140 30102a9f273a4422a20bf1aa06b451e6 +msgid "do not change" +msgstr "" + +#: ../../vars.rst:141 57fd2541dc9c472e9d50b26ef7cd6daf +msgid "PDF_ENCRYPT_NONE" +msgstr "" + +#: ../../vars.rst:141 49f9186cb5ae45cd9064cb575b6d5385 +msgid "remove any encryption" +msgstr "" + +#: ../../vars.rst:142 49fe127596b048f4a7ea339156fdf19d +msgid "PDF_ENCRYPT_RC4_40" +msgstr "" + +#: ../../vars.rst:142 5e3374e98bdc43a199f2fd85dcc18580 +msgid "RC4 40 bit" +msgstr "" + +#: ../../vars.rst:143 178727ee434846ad808cce5a8aaad74f +msgid "PDF_ENCRYPT_RC4_128" +msgstr "" + +#: ../../vars.rst:143 a3c8b50a7af8456a966bcd7de122f754 +msgid "RC4 128 bit" +msgstr "" + +#: ../../vars.rst:144 1ccff559acbb47a8a81bae717b32c4c8 +msgid "PDF_ENCRYPT_AES_128" +msgstr "" + +#: ../../vars.rst:144 d1fdccc17e4348788f55154c73a66ddd +msgid "*Advanced Encryption Standard* 128 bit" +msgstr "" + +#: ../../vars.rst:145 6052a9f31b7f4ec0b078312655adc0d5 +msgid "PDF_ENCRYPT_AES_256" +msgstr "" + +#: ../../vars.rst:145 14eb7ccec2184fbbb74c67eb54aeaa93 +msgid "*Advanced Encryption Standard* 256 bit" +msgstr "" + +#: ../../vars.rst:146 0e8a697210064a68a4acb78e4798c066 +msgid "PDF_ENCRYPT_UNKNOWN" +msgstr "" + +#: ../../vars.rst:146 c4ff9f33d8bf406baac59afdedce3393 +msgid "unknown" +msgstr "" + +#: ../../vars.rst:152 41ce5d42a96641298f59e62ca328c3ad +msgid "Font File Extensions" +msgstr "" + +#: ../../vars.rst:153 a5aa4b1442b84096a3364986edc00478 +msgid "" +"The table show file extensions you should use when saving fontfile " +"buffers extracted from a PDF. This string is returned by " +":meth:`Document.get_page_fonts`, :meth:`Page.get_fonts` and " +":meth:`Document.extract_font`." +msgstr "" + +#: ../../vars.rst:156 0052347b09ef46dd84c581597bacb35f +msgid "Ext" +msgstr "" + +#: ../../vars.rst:156 2d2cd27d463f4ff0997dae7caa6b83b6 +msgid "Description" +msgstr "" + +#: ../../vars.rst:158 112b17f0de1840a08e0864ed1e9fad0c +msgid "ttf" +msgstr "" + +#: ../../vars.rst:158 0cb8088360d7427baefcf5281b49766b +msgid "TrueType font" +msgstr "" + +#: ../../vars.rst:159 c2a6b6d61d0e40d583db103da173e32f +msgid "pfa" +msgstr "" + +#: ../../vars.rst:159 5a1d03107af64f5981ab318e0360c9af +msgid "Postscript for ASCII font (various subtypes)" +msgstr "" + +#: ../../vars.rst:160 86be9bafc4174236b68e13a9dac7e5c8 +msgid "cff" +msgstr "" + +#: ../../vars.rst:160 8675d363e0c9499ab403a49e9cda22a1 +msgid "Type1C font (compressed font equivalent to Type1)" +msgstr "" + +#: ../../vars.rst:161 4c60a1421ea7458e81092448bae7a1d8 +msgid "cid" +msgstr "" + +#: ../../vars.rst:161 cf49f17f14d346f89b4ace2ba62a022f +msgid "character identifier font (postscript format)" +msgstr "" + +#: ../../vars.rst:162 fc39dc6369a74d13baa2932ca54039b7 +msgid "otf" +msgstr "" + +#: ../../vars.rst:162 e6d68a78565e4efdbdabf3ad08977b53 +msgid "OpenType font" +msgstr "" + +#: ../../vars.rst:163 b7864b379d2a4c898a5538edf898a0a6 +msgid "n/a" +msgstr "" + +#: ../../vars.rst:163 d276c42e480048c98e84446e521418fb +msgid "not extractable, e.g. :ref:`Base-14-Fonts`, Type 3 fonts and others" +msgstr "" + +#: ../../vars.rst:169 30a554d8b43e4399ac3db70eb4861a79 +msgid "Text Alignment" +msgstr "" + +#: ../../vars.rst:172 c285bb937c45411c9e8428e8cbc6d5ce +msgid "0 -- align left." +msgstr "" + +#: ../../vars.rst:176 f6c2ead9ebb844e2a50572a57dbf9a86 +msgid "1 -- align center." +msgstr "" + +#: ../../vars.rst:180 8e82db4889224a20909e002199177be8 +msgid "2 -- align right." +msgstr "" + +#: ../../vars.rst:184 75af6aadfef54289894f0d114de9eeae +msgid "3 -- align justify." +msgstr "" + +#: ../../vars.rst:191 cf47b8894ae04d868274979275d334ee +msgid "Font Properties" +msgstr "" + +#: ../../vars.rst:192 5c56a8ed6d794191b089c5b738da3cf9 +msgid "" +"Please note that the following bits are derived from what a font has to " +"say about its properties. It may not be (and quite often is not) correct." +msgstr "" + +#: ../../vars.rst:196 d8f06c39601c4b96bd13ea9e078c40ce +msgid "" +"1 -- the character or span is a superscript. This property is computed by" +" MuPDF and not part of any font information." +msgstr "" + +#: ../../vars.rst:200 d21771d5f06e4862a5dc0a350e8a4def +msgid "2 -- the font is italic." +msgstr "" + +#: ../../vars.rst:204 c25bebd41297409da31265769924b7c0 +msgid "4 -- the font is serifed." +msgstr "" + +#: ../../vars.rst:208 b4a15a033d644c66b6b71cd52bef75b0 +msgid "8 -- the font is mono-spaced." +msgstr "" + +#: ../../vars.rst:212 fd8f231700104de8a26b9fa17f57dca6 +msgid "16 -- the font is bold." +msgstr "" + +#: ../../vars.rst:215 ae7fc7375fe24bcab9635e7ecaf45788 +msgid "Text Extraction Flags" +msgstr "" + +#: ../../vars.rst:216 b53381821bdc40c69b532bc7e53092be +msgid "" +"Option bits controlling the amount of data, that are parsed into a " +":ref:`TextPage`." +msgstr "" + +#: ../../vars.rst:218 4e0693fb1e8f4c7e991b270de3d35b6c +msgid "" +"For the PyMuPDF programmer, some combination (using Python's `|` " +"operator, or simply use `+`) of these values are aggregated in the " +"``flags`` integer, a parameter of all text search and text extraction " +"methods. Depending on the individual method, different default " +"combinations of the values are used. Please use a value that meets your " +"situation. Especially make sure to switch off image extraction unless you" +" really need them. The impact on performance and memory is significant!" +msgstr "" + +#: ../../vars.rst:222 e2a36dbf69d04d888507fc509ee2b720 +msgid "" +"1 -- If set, ligatures are passed through to the application in their " +"original form. Otherwise ligatures are expanded into their constituent " +"parts, e.g. the ligature \"ffi\" is expanded into three eparate " +"characters f, f and i. Default is \"on\" in PyMuPDF. MuPDF supports the " +"following 7 ligatures: \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", , " +"\"ft\", \"st\"." +msgstr "" + +#: ../../vars.rst:226 03ceff6db720488f91e124b08d5a1e41 +msgid "" +"2 -- If set, whitespace is passed through. Otherwise any type of " +"horizontal whitespace (including horizontal tabs) will be replaced with " +"space characters of variable width. Default is \"on\" in PyMuPDF." +msgstr "" + +#: ../../vars.rst:230 cf99390225b04a8996e5580bd96fe830 +msgid "" +"4 -- If set, then images will be stored in the :ref:`TextPage`. This " +"causes the presence of (usually large!) binary image content in the " +"output of text extractions of types \"blocks\", \"dict\", \"json\", " +"\"rawdict\", \"rawjson\", \"html\", and \"xhtml\" and is the default " +"there. If used with \"blocks\" however, only image metadata will be " +"returned, not the image itself." +msgstr "" + +#: ../../vars.rst:234 2681e56367fe46aa936b2b5870294639 +msgid "" +"8 -- If set, Mupdf will not try to add missing space characters where " +"there are large gaps between characters. In PDF, the creator often does " +"not insert spaces to point to the next character's position, but will " +"provide the direct location address. The default in PyMuPDF is \"off\" --" +" so spaces **will be generated**." +msgstr "" + +#: ../../vars.rst:238 cb25cbf3acb74d84824fa410aed54abd +msgid "" +"16 -- Ignore hyphens at line ends and join with next line. Used " +"internally with the text search functions. However, it is generally " +"available: if on, text extractions will return joined text lines (or " +"spans) with the ending hyphen of the first line eliminated. So two " +"separate spans **\"first meth-\"** and **\"od leads to wrong results\"** " +"on different lines will be joined to one span **\"first method leads to " +"wrong results\"** and correspondingly updated bboxes: the characters of " +"the resulting span will no longer have identical y-coordinates." +msgstr "" + +#: ../../vars.rst:242 19c2601d343547ba88a56aac0f0c8ff5 +msgid "" +"32 -- Generate a new line for every span. Not used (\"off\") in PyMuPDF, " +"but available for your use. Every line in \"dict\", \"json\", " +"\"rawdict\", \"rawjson\" will contain exactly one span." +msgstr "" + +#: ../../vars.rst:246 87e941b789f8436e998a2f3801575756 +msgid "" +"64 -- Characters entirely outside a page's **mediabox** or contained in " +"other \"clipped\" areas will be ignored. This is default in PyMuPDF." +msgstr "" + +#: ../../vars.rst:250 befbc341b1674e348a9396c99be1ac8a +msgid "" +"128 -- Use raw character codes instead of U+FFFD. This is the default for" +" **text extraction** in PyMuPDF. If you **want to detect** when encoding " +"information is missing or uncertain, toggle this flag and scan for the " +"presence of U+FFFD (= `chr(0xfffd)`) code points in the resulting text." +msgstr "" + +#: ../../vars.rst:254 328eded5e21c495986514848f3acd090 +msgid "256 -- Not supported." +msgstr "" + +#: ../../vars.rst:258 c2468f6ee1364a9aacd5178c2e2e1f03 +msgid "" +"512 -- Ignore metric values of all fonts when computing character " +"boundary boxes -- most prominently the `ascender " +"`_ and `descender " +"`_ values. Instead, follow the " +"drawing commands of each character's glyph and compute its rectangle " +"hull. This is the smallest rectangle wrapping all points used for drawing" +" the visual appearance - see the :ref:`Shape` class for understanding the" +" background. This will especially result in individual character heights." +" For instance a (white) space will have a **bbox of height 0** (because " +"nothing is drawn) -- in contrast to the non-zero boundary box generated " +"when using font metrics. This option may be useful to cope with getting " +"meaningful boundary boxes even for fonts containing errors. Its use will " +"slow down text extraction somewhat because of the incurred computational " +"effort." +msgstr "" + +#: ../../vars.rst:260 0d005cfd39294c549dcb076c7db6a438 +msgid "" +"Note that this has no effect by default - one must also disable the " +"global quad corrections setting with " +"`pymupdf.TOOLS.unset_quad_corrections(True)`." +msgstr "" + +#: ../../vars.rst:265 26addbea02e84233b6230ff416c3f839 +msgid "1024 -- Not supported." +msgstr "" + +#: ../../vars.rst:269 71ca80b7b9a0453f96fbe2509cc882f8 +msgid "" +"2048 -- Ignore built-in differences between text appearing in e.g. PDF " +"viewers versus text stored in the PDF. See :ref:`AdobeManual`, page 615 " +"for background. If set, the **stored** (\"replacement\" text) is ignored " +"in favor of the displayed text." +msgstr "" + +#: ../../vars.rst:273 a2280aa3922d45a0b01eec12d3b1828e +msgid "4096 -- Attempt to segment page into different regions." +msgstr "" + +#: ../../vars.rst:275 6055e0ec2f2640a4a69c769d60051dd1 +msgid "" +"The following constants represent the default combinations of the above " +"for text extraction and searching:" +msgstr "" + +#: ../../vars.rst:279 ../../vars.rst:283 ../../vars.rst:287 ../../vars.rst:307 +#: 18445061c2274e3094f8e223b2f97d8b 4848e850ecdd4b71ae9e0fe4bd1bd2ab +#: 7e1253a470a94b4bad14d5086ec64c03 b78142b94eed4f5ca84f11c2fef8b074 +msgid "" +"`TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP " +"| TEXT_USE_CID_FOR_UNKNOWN_UNICODE`" +msgstr "" + +#: ../../vars.rst:291 ../../vars.rst:295 ../../vars.rst:299 ../../vars.rst:303 +#: 1cef0274d54745cead1031d1bca2799f 2fbf2a5e26ee49eb868428bcbb529499 +#: 9fdd1b123b4e4f2fa9c013d23a2b966c ffe8940542984cda9c70ce1c925581dc +msgid "" +"`TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP " +"| TEXT_PRESERVE_IMAGES | TEXT_USE_CID_FOR_UNKNOWN_UNICODE`" +msgstr "" + +#: ../../vars.rst:311 bb90ee72173049c7a370c67ba9105b23 +msgid "`TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_DEHYPHENATE`" +msgstr "" + +#: ../../vars.rst:317 f588bfe5d7214e09848d2ea66fc226e0 +msgid "Link Destination Kinds" +msgstr "" + +#: ../../vars.rst:318 25e6f87b871146ab8c9d29979584f4b3 +msgid "Possible values of :attr:`linkDest.kind` (link destination kind)." +msgstr "" + +#: ../../vars.rst:322 93386ed82cc246f889866c47a3647e09 +msgid "0 -- No destination. Indicates a dummy link." +msgstr "" + +#: ../../vars.rst:328 55d8c4d1bc6e4ff7896e13f3fcbbfa74 +msgid "1 -- Points to a place in this document." +msgstr "" + +#: ../../vars.rst:334 17fd7d0b788140929657b02c096290f0 +msgid "" +"2 -- Points to a URI -- typically a resource specified with internet " +"syntax." +msgstr "" + +#: ../../vars.rst:336 c2c977e93a6b466686c3ec774112b806 +msgid "" +"PyMuPDF treats any external link that contains a colon and does not start" +" with `file:`, as `LINK_URI`." +msgstr "" + +#: ../../vars.rst:343 f2f74244f1ff419e9d052ead3e767a51 +msgid "3 -- Launch (open) another file (of any \"executable\" type)." +msgstr "" + +#: ../../vars.rst:345 80fd06d08b3a4bbd91c5550c158e44a4 +msgid "" +"|PyMuPDF| treats any external link that starts with `file:` or doesn't " +"contain a colon, as `LINK_LAUNCH`." +msgstr "" + +#: ../../vars.rst:352 953c280a5a2c4081b49b4428360d0b70 +msgid "4 -- points to a named location." +msgstr "" + +#: ../../vars.rst:358 c2dd6d723df94a729c602ab39198e6e3 +msgid "5 -- Points to a place in another PDF document." +msgstr "" + +#: ../../vars.rst:365 13d9db49dc764ad2943a0bd89bf1eccd +msgid "Link Destination Flags" +msgstr "" + +#: ../../vars.rst:367 d3b19de8c19a4cca93ae0614069136aa +msgid "" +"The rightmost byte of this integer is a bit field, so test the truth of " +"these bits with the *&* operator." +msgstr "" + +#: ../../vars.rst:371 adfb385a3f204afa96eae840376cfaaf +msgid "1 (bit 0) Top left x value is valid" +msgstr "" + +#: ../../vars.rst:373 ../../vars.rst:379 ../../vars.rst:385 ../../vars.rst:391 +#: ../../vars.rst:397 ../../vars.rst:403 ../../vars.rst:409 +#: 45d5d66079ad4119a37daf32345170ea 68ec9fd7a3194726abc3dd123922506c +#: 802dc57d84e340dda07eb08e1fa533ea a78880c24f194e0183ba7acb53112b5c +#: b54e07447ebd48d08adcaa6c2330efd7 cc044f3983144e34b9ec5e221c661f84 +#: de33e1ca908e4329acf8e771d8062395 +msgid "bool" +msgstr "" + +#: ../../vars.rst:377 f6bb945288e84c2ea7af6535127f5686 +msgid "2 (bit 1) Top left y value is valid" +msgstr "" + +#: ../../vars.rst:383 1429f391f08e4098bf3648e649655ce7 +msgid "4 (bit 2) Bottom right x value is valid" +msgstr "" + +#: ../../vars.rst:389 dd2f2b2b41774030b5c2a8b95d745273 +msgid "8 (bit 3) Bottom right y value is valid" +msgstr "" + +#: ../../vars.rst:395 62df816d97ee45ccab57344fe8d25a10 +msgid "16 (bit 4) Horizontal fit" +msgstr "" + +#: ../../vars.rst:401 78e6492677c146c4a8d9bf5ea9d48be1 +msgid "32 (bit 5) Vertical fit" +msgstr "" + +#: ../../vars.rst:407 40d05c050d174b918e1b5d3b4e8d4671 +msgid "64 (bit 6) Bottom right x is a zoom figure" +msgstr "" + +#: ../../vars.rst:413 136d76a8f9eb46c88e7d3a181650da73 +msgid "Annotation Related Constants" +msgstr "" + +#: ../../vars.rst:414 0afb6c758143449fb56a0b04ab704888 +msgid "See chapter 8.4.5, pp. 615 of the :ref:`AdobeManual` for details." +msgstr "" + +#: ../../vars.rst:419 c080cb77d13c409a8faecbcbd760910c +msgid "Annotation Types" +msgstr "" + +#: ../../vars.rst:420 d20a798f8f554b5d8529e31b8816197f +msgid "" +"These identifiers also cover **links** and **widgets**: the PDF " +"specification technically handles them all in the same way, whereas " +"|MuPDF| (and PyMuPDF) treats them as three basically different types of " +"objects." +msgstr "" + +#: ../../vars.rst:457 713c32c363bd480cba99fcadd3fa3555 +msgid "Annotation Flag Bits" +msgstr "" + +#: ../../vars.rst:474 9fdaae6162c54afea314aa849239b470 +msgid "Annotation Line Ending Styles" +msgstr "" + +#: ../../vars.rst:490 3e407ea8c72444ebba3331d472a6a25a +msgid "Widget Constants" +msgstr "" + +#: ../../vars.rst:495 96ec99e51a7e4985a737ba02c17541ac +msgid "Widget Types (*field_type*)" +msgstr "" + +#: ../../vars.rst:508 755546e537074e1aaa1b792a365b879a +msgid "Text Widget Subtypes (*text_format*)" +msgstr "" + +#: ../../vars.rst:519 2d435f5842544cc5ad764fc27d6e30db +msgid "Widget flags (*field_flags*)" +msgstr "" + +#: ../../vars.rst:520 1be2e082d5f24d78b93633d42c3ab6b3 +msgid "**Common to all field types**::" +msgstr "" + +#: ../../vars.rst:526 9a70d77fe1724d00a6baf6703369f739 +msgid "**Text widgets**::" +msgstr "" + +#: ../../vars.rst:536 a70d3da20a7a4996843ce3b94a65f844 +msgid "**Button widgets**::" +msgstr "" + +#: ../../vars.rst:543 33f39c42d34a4fa49140b193aec55d00 +msgid "**Choice widgets**::" +msgstr "" + +#: ../../vars.rst:556 05602853929445cfb71dfca4dc7fb284 +msgid "PDF Standard Blend Modes" +msgstr "" + +#: ../../vars.rst:558 d1da99abe9c4449e9af156616a68a1c3 +msgid "For an explanation see :ref:`AdobeManual`, page 324::" +msgstr "" + +#: ../../vars.rst:581 72834b1fb7fb47c6982ed3593f7600d3 +msgid "Stamp Annotation Icons" +msgstr "" + +#: ../../vars.rst:582 71aa56b7b0644cef8475af050d9bccf3 +msgid "MuPDF has defined the following icons for **rubber stamp** annotations::" +msgstr "" + +#: ../../footer.rst:46 7b627849860f4ae7a235d36a44c7c566 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/version.mo b/docs/locales/ko/LC_MESSAGES/version.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/version.po b/docs/locales/ko/LC_MESSAGES/version.po new file mode 100644 index 000000000..2272f4d93 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/version.po @@ -0,0 +1,47 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../version.rst:3 d1fbe6ff1d5549fb8be875f6d37c584b +msgid "This documentation covers PyMuPDF |version|." +msgstr "" + +#: ../../version.rst:5 133bf913bb004c8ca82964184ed7628c +msgid "" +"The major and minor versions of |PyMuPDF| and |MuPDF| will always be the " +"same. Only the third qualifier (patch level) may deviate from that of " +"|MuPDF|." +msgstr "" + +#: ../../version.rst:7 994720d99f72419ebd711b2cf71dcefb +msgid "" +"Typically PyMuPDF is released more frequently than MuPDF so it will often" +" be the case that the patch level of PyMuPDF will be greater than the " +"embedded MuPDF." +msgstr "" + +#: ../../version.rst:11 371aa251e8314b9aad7c870f54636f80 +msgid "For example PyMuPDF-1.24.5 contains MuPDF-1.24.2." +msgstr "" + +#: ../../version.rst:13 7c7d7d87d7e14441959c236fee7d2ee5 +msgid "Also see `pymupdf_version` and `mupdf_version`." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/widget.mo b/docs/locales/ko/LC_MESSAGES/widget.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/widget.po b/docs/locales/ko/LC_MESSAGES/widget.po new file mode 100644 index 000000000..b768fe102 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/widget.po @@ -0,0 +1,608 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 9be7fe8ece684722b20723502ba6e81a +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 4fd0b4c61f30429d928c92ebb1081bc3 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 8395c05a667445b68d678e31a6c9296f +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../widget.rst:7 b5bf7834aa6d4acc80837502b85e97c1 +msgid "Widget" +msgstr "" + +#: ../../widget.rst:9 db658752009445c5a3459712f6b25c8f +msgid "|pdf_only_class|" +msgstr "" + +#: ../../widget.rst:11 d1312e8bf60148598975d49439011b6c +msgid "" +"This class represents a PDF Form field, also called a \"widget\". " +"Throughout this documentation, we are using these terms synonymously. " +"Fields technically are a special case of PDF annotations, which allow " +"users with limited permissions to enter information in a PDF. This is " +"primarily used for filling out forms." +msgstr "" + +#: ../../widget.rst:13 6befe4905ed146a2ab8cfd92d1d923bc +msgid "" +"Like annotations, widgets live on PDF pages. Similar to annotations, the " +"first widget on a page is accessible via :attr:`Page.first_widget` and " +"subsequent widgets can be accessed via the :attr:`Widget.next` property." +msgstr "" + +#: ../../widget.rst:15 f5dcbec91e9446b1bc886ab894d9b27c +msgid "" +"Like annotations, widgets also lose connection to their page when the " +"page becomes unavailable, please see `here " +"`_ for details. This is relevant " +"especially when updating the widget: this will fail if the original page " +"object is no longer available." +msgstr "" + +#: ../../widget.rst:17 23ea64f7e0164b6788a0c02783469bef +msgid "" +"*(Changed in version 1.16.0)* MuPDF no longer treats widgets as a subset " +"of general annotations. Consequently, :attr:`Page.first_annot` and " +":meth:`Annot.next` will deliver **non-widget annotations exclusively**, " +"and be ``None`` if only form fields exist on a page. Vice versa, " +":attr:`Page.first_widget` and :meth:`Widget.next` will only show widgets." +" This design decision is purely internal to MuPDF; technically, links, " +"annotations and fields have a lot in common and also continue to share " +"the better part of their code within (Py-) MuPDF." +msgstr "" + +#: ../../widget.rst:20 4c382afc381347e990494e4d0e1c78f7 +msgid "**Class API**" +msgstr "" + +#: ../../widget.rst:26 f56bf175166444f7920a252639d09199 +msgid "*New in version 1.18.15*" +msgstr "" + +#: ../../widget.rst:28 00cee4b5b9734e0484ff17718afb7614 +msgid "" +"Return the names of On / Off (i.e. selected / clicked or not) states a " +"button field may have. While the 'Off' state usually is also named like " +"so, the 'On' state is often given a name relating to the functional " +"context, for example 'Yes', 'Female', etc." +msgstr "" + +#: ../../widget.rst:30 7d6a3ae94e2742d5a84bf396789e24e1 +msgid "" +"This method helps finding out the possible values of :attr:`field_value` " +"in these cases." +msgstr "" + +#: ../../widget.rst 3ba59739b0504accbfb45a04c8b24a7f +#: ac61f1c8af7547ca9e4696981cd7c001 +msgid "returns" +msgstr "" + +#: ../../widget.rst:32 dc0ef726c74e4a249337ee6f20cdd308 +msgid "" +"a dictionary with the names of 'On' and 'Off' for the *normal* and the " +"*pressed-down* appearance of button widgets. The following example shows " +"that the \"selected\" value is \"Male\":" +msgstr "" + +#: ../../widget.rst:40 dca66819e96f4f19a12d511c1409a188 +msgid "New in version 1.22.2" +msgstr "" + +#: ../../widget.rst:42 72cfa1c4a4794fdebcf176d87534ed11 +msgid "" +"Return the value of the \"ON\" state of check boxes and radio buttons. " +"For check boxes this is always the value \"Yes\". For radio buttons, this" +" is the value to select / activate the button." +msgstr "" + +#: ../../widget.rst:44 ef6612006aa6463b9f062200357220e8 +msgid "" +"the value that sets the button to \"selected\". For non-checkbox, non-" +"radiobutton fields, always `None` is returned. For check boxes the return" +" is `True`. For radio buttons this is the value \"Male\" in the following" +" example:" +msgstr "" + +#: ../../widget.rst:51 149007e65bf84de18e2eb1c2afe8bf71 +msgid "" +"So for check boxes and radio buttons, the recommended method to set them " +"to \"selected\", or to check the state is the following:" +msgstr "" + +#: ../../widget.rst:60 9b42ee70ae144a8b92f71cf466956b05 +msgid "" +"After any changes to a widget, this **method must be used** to reflect " +"changes in the PDF [#f1]_." +msgstr "" + +#: ../../widget.rst f9afde507f67494fbafed9da093edc2c +msgid "Parameters" +msgstr "" + +#: ../../widget.rst:62 4a0049c3506c40d99e4aba3b7c10c027 +msgid "" +"if ``True``, the widget's :attr:`Widget.field_flags` are copied to the " +"``Parent`` object (if present) and all widgets named in its ``Kids`` " +"array. This provides a convenient way to -- for example -- set all " +"instances of the widget to read-only, no matter on which page they may " +"occur [#f2]_." +msgstr "" + +#: ../../widget.rst:66 ad4e8312e49447b68aa62039c7138968 +msgid "" +"Reset the field's value to its default -- if defined -- or remove it. Do " +"not forget to issue :meth:`update` afterwards." +msgstr "" + +#: ../../widget.rst:70 ac472167a7e14f4290ac8a193c79160c +msgid "" +"Point to the next form field on the page. The last widget returns " +"``None``." +msgstr "" + +#: ../../widget.rst:74 1f2d580b4eca4c468f4a0e6592281c85 +msgid "" +"A list of up to 4 floats defining the field's border color. Default value" +" is ``None`` which causes border style and border width to be ignored." +msgstr "" + +#: ../../widget.rst:78 4d75daab990241b7a3b26a0e4ab3a3f3 +msgid "" +"A string defining the line style of the field's border. See " +":attr:`Annot.border`. Default is \"s\" (\"Solid\") -- a continuous line. " +"Only the first character (upper or lower case) will be regarded when " +"creating a widget." +msgstr "" + +#: ../../widget.rst:82 a3b4c3bbfb544efd99ac42ab92c5d596 +msgid "A float defining the width of the border line. Default is 1." +msgstr "" + +#: ../../widget.rst:86 8abf38d7b6a540acb99b929363d614c3 +msgid "" +"A list/tuple of integers defining the dash properties of the border line." +" This is only meaningful if *border_style == \"D\"* and " +":attr:`border_color` is provided." +msgstr "" + +#: ../../widget.rst:90 89fa9c260a8c49f0b07ea1b251cece4e +msgid "" +"Python sequence of strings defining the valid choices of list boxes and " +"combo boxes. For these widget types, this property is mandatory and must " +"contain at least two items. Ignored for other types." +msgstr "" + +#: ../../widget.rst:94 d429d2ef1dd644d79f98b280f55ad276 +msgid "" +"A mandatory string defining the field's name. No checking for duplicates " +"takes place." +msgstr "" + +#: ../../widget.rst:98 3e1f3a12889b40cdb2687c5e1e275082 +msgid "" +"An optional string containing an \"alternate\" field name. Typically used" +" for any notes, help on field usage, etc. Default is the field name." +msgstr "" + +#: ../../widget.rst:102 02bb3f5a570947e98e225720d915a4b5 +msgid "The value of the field." +msgstr "" + +#: ../../widget.rst:106 159866e898664171a44d8b61241d2731 +msgid "" +"An integer defining a large amount of properties of a field. Be careful " +"when changing this attribute as this may change the field type." +msgstr "" + +#: ../../widget.rst:110 62966a5f68404db5822a72647d202b90 +msgid "" +"A mandatory integer defining the field type. This is a value in the range" +" of 0 to 6. It cannot be changed when updating the widget." +msgstr "" + +#: ../../widget.rst:114 a9fbed37d8be4f51b900e87522083cb4 +msgid "A string describing (and derived from) the field type." +msgstr "" + +#: ../../widget.rst:118 0893214230bb4b998907cfb864bf8047 +msgid "A list of up to 4 floats defining the field's background color." +msgstr "" + +#: ../../widget.rst:122 864cf589b08549bca7920c38f91caa48 +msgid "The caption string of a button-type field." +msgstr "" + +#: ../../widget.rst:126 d1ed58b8e9784d0f9f5368aa781d8db2 +msgid "A bool indicating the signing status of a signature field, else ``None``." +msgstr "" + +#: ../../widget.rst:130 fd9f9f5619ec4ae69d780dcfdcaf1cf5 +msgid "The rectangle containing the field." +msgstr "" + +#: ../../widget.rst:134 32a4055906494c169f91575f408fd75e +msgid "" +"A list of **1, 3 or 4 floats** defining the text color. Default value is " +"black (`[0, 0, 0]`)." +msgstr "" + +#: ../../widget.rst:138 f951f27a175047e6ad58a7ee9d45d202 +msgid "" +"A string defining the font to be used. Default and replacement for " +"invalid values is *\"Helv\"*. For valid font reference names see the " +"table below." +msgstr "" + +#: ../../widget.rst:142 93d6bab5e8ed4964b445aaff3f5a666e +msgid "" +"A float defining the text :data:`fontsize`. Default value is zero, which " +"causes PDF viewer software to dynamically choose a size suitable for the " +"annotation's rectangle and text amount." +msgstr "" + +#: ../../widget.rst:146 a1ded660efa640cd9b872d5a1fffdb1f +msgid "" +"An integer defining the maximum number of text characters. PDF viewers " +"will (should) not accept a longer text." +msgstr "" + +#: ../../widget.rst:150 68eac259cd954e619832866bde7c37e3 +msgid "" +"An integer defining acceptable text types (e.g. numeric, date, time, " +"etc.). For reference only for the time being -- will be ignored when " +"creating or updating widgets." +msgstr "" + +#: ../../widget.rst:154 9df210c84ecd4845b952f6d3cc9195cc +msgid "The PDF :data:`xref` of the widget." +msgstr "" + +#: ../../widget.rst:158 ../../widget.rst:164 ../../widget.rst:170 +#: ../../widget.rst:176 ../../widget.rst:182 6ac3abf289404eeaafe2d71129cccf4f +#: 8034826ba5bf458fa878c3dfe0dcb46e 8155dfc13cad413eb75cd134942ce80a +#: b8eb6a539c4941e6b3212dc4474dfd75 c5b33ed64c7043db966de5404c881830 +msgid "New in version 1.16.12" +msgstr "" + +#: ../../widget.rst:160 27f8421d8a374cd587fc385b05348e06 +msgid "" +"JavaScript text (unicode) for an action associated with the widget, or " +"``None``. This is the only script action supported for **button type** " +"widgets." +msgstr "" + +#: ../../widget.rst:166 bbc99abeab574327895dbdfadb016871 +msgid "" +"JavaScript text (unicode) to be performed when the user types a key-" +"stroke into a text field or combo box or modifies the selection in a " +"scrollable list box. This action can check the keystroke for validity and" +" reject or modify it. ``None`` if not present." +msgstr "" + +#: ../../widget.rst:172 49c953662fc846e4ab3a5754771075d5 +msgid "" +"JavaScript text (unicode) to be performed before the field is formatted " +"to display its current value. This action can modify the field’s value " +"before formatting. ``None`` if not present." +msgstr "" + +#: ../../widget.rst:178 f099a7380085444088d138037fc88009 +msgid "" +"JavaScript text (unicode) to be performed when the field’s value is " +"changed. This action can check the new value for validity. ``None`` if " +"not present." +msgstr "" + +#: ../../widget.rst:184 195412bc8f7645c7af94839cbeef56c7 +msgid "" +"JavaScript text (unicode) to be performed to recalculate the value of " +"this field when that of another field changes. ``None`` if not present." +msgstr "" + +#: ../../widget.rst:188 ../../widget.rst:194 be53028b2eeb496e91e645ddedbecf73 +#: caaac82450ae43fd84f1684ee16cc1aa +msgid "New in version 1.22.6" +msgstr "" + +#: ../../widget.rst:190 66757bee21264b4591997469672bf407 +msgid "" +"JavaScript text (unicode) to be performed on losing the focus of this " +"field. ``None`` if not present." +msgstr "" + +#: ../../widget.rst:196 6d86df2f110242b9b322d96488384f39 +msgid "" +"JavaScript text (unicode) to be performed on focusing this field. " +"``None`` if not present." +msgstr "" + +#: ../../widget.rst:200 31230d72253b4583a09b8159f40329f4 +msgid "For **adding** or **changing** one of the above scripts," +msgstr "" + +#: ../../widget.rst:201 3d2a3d82396442afb52dfc4cdd423495 +msgid "" +"just put the appropriate JavaScript source code in the widget attribute. " +"To **remove** a script, set the respective attribute to ``None``." +msgstr "" + +#: ../../widget.rst:204 8ae6388eebe44c248ddac814e91ade75 +msgid "Button fields only support :attr:`script`." +msgstr "" + +#: ../../widget.rst:205 eaf4aaf730aa470bac28fa589c1d9a75 +msgid "Other script entries will automatically be set to ``None``." +msgstr "" + +#: ../../widget.rst:207 1574012d10e54a92850485e41d1ffedf +msgid "" +"It is worthwhile to look at `this " +"`_ manual with lots of " +"information about Adobe's standard scripts for various field types. For " +"example, if you want to add a text field representing a date, you may " +"want to store the following scripts. They will ensure pattern-compatible " +"date formats and display date pickers in supporting viewers::" +msgstr "" + +#: ../../widget.rst:219 c65b215c2ad34e7488b15662ebd4d3bb +msgid "Standard Fonts for Widgets" +msgstr "" + +#: ../../widget.rst:220 cdad1a06914d4e0096cf6f84a03b0434 +msgid "" +"Widgets use their own resources object ``/DR``. A widget resources object" +" must at least contain a ``/Font`` object. Widget fonts are independent " +"from page fonts. We currently support the 14 PDF base fonts using the " +"following fixed reference names, or any name of an already existing field" +" font. When specifying a text font for new or changed widgets, **either**" +" choose one in the first table column (upper and lower case supported), " +"**or** one of the already existing form fonts. In the latter case, " +"spelling must exactly match." +msgstr "" + +#: ../../widget.rst:222 7fd5734a55b445cc854e109cbc203e17 +msgid "" +"To find out already existing field fonts, inspect the list " +":attr:`Document.FormFonts`." +msgstr "" + +#: ../../widget.rst:225 989af4e78c0847918dbff49079157c49 +msgid "**Reference**" +msgstr "" + +#: ../../widget.rst:225 2a3d30a6f94b40939fd222ac5505a0c3 +msgid "**Base14 Fontname**" +msgstr "" + +#: ../../widget.rst:227 352a551d7b7d4200932f4f74ab639993 +msgid "CoBI" +msgstr "" + +#: ../../widget.rst:227 97b97d88ac2049608397f18450ce94f9 +msgid "Courier-BoldOblique" +msgstr "" + +#: ../../widget.rst:228 5784d31036e8451ea00333ebfc861db7 +msgid "CoBo" +msgstr "" + +#: ../../widget.rst:228 f62fddbdd0ec4ca5a7de461de53b6f58 +msgid "Courier-Bold" +msgstr "" + +#: ../../widget.rst:229 7b2ab33a398843e2b2becf0f64045392 +msgid "CoIt" +msgstr "" + +#: ../../widget.rst:229 053e2cadb71446e3938febe4ef984f31 +msgid "Courier-Oblique" +msgstr "" + +#: ../../widget.rst:230 4f7d11706d4b41ec968dff1ac8fb677f +msgid "Cour" +msgstr "" + +#: ../../widget.rst:230 bc034dde385b406280bef75f575a2672 +msgid "Courier" +msgstr "" + +#: ../../widget.rst:231 ff774f899f274ee5a81ee1e6d1959b8c +msgid "HeBI" +msgstr "" + +#: ../../widget.rst:231 172ee9521a2348cd9f506babd8af5f10 +msgid "Helvetica-BoldOblique" +msgstr "" + +#: ../../widget.rst:232 79d0f51c58f54f67a759e45d17d9ffc6 +msgid "HeBo" +msgstr "" + +#: ../../widget.rst:232 467053b50fdf4b6a970d48f6d4cc2e1a +msgid "Helvetica-Bold" +msgstr "" + +#: ../../widget.rst:233 5abb199e534a4b2985760322156b7819 +msgid "HeIt" +msgstr "" + +#: ../../widget.rst:233 8d472db0bc5a44caa9de71c566f7cb7e +msgid "Helvetica-Oblique" +msgstr "" + +#: ../../widget.rst:234 d03174f7c84045ea9ef98507a09fa344 +msgid "Helv" +msgstr "" + +#: ../../widget.rst:234 bbec46b6db884fb29167ffc50a0c7dcb +msgid "Helvetica **(default)**" +msgstr "" + +#: ../../widget.rst:235 cd1c089129784daeb903d5ef116ea70b +msgid "Symb" +msgstr "" + +#: ../../widget.rst:235 81ad28b580f44ba78513b1abebbc40bc +msgid "Symbol" +msgstr "" + +#: ../../widget.rst:236 de4c92826dc94244b1b8ef026ab90a2e +msgid "TiBI" +msgstr "" + +#: ../../widget.rst:236 3dc417d13f2d4a6cbb1233643dc93f65 +msgid "Times-BoldItalic" +msgstr "" + +#: ../../widget.rst:237 43969ece08334ca685bd92f021cd1884 +msgid "TiBo" +msgstr "" + +#: ../../widget.rst:237 32b0cc34477144ffb88eb7565f2a0533 +msgid "Times-Bold" +msgstr "" + +#: ../../widget.rst:238 a1252968a11c4601b7341a5c9ad95394 +msgid "TiIt" +msgstr "" + +#: ../../widget.rst:238 8cdd804d025940c8b5d05a9397419bdc +msgid "Times-Italic" +msgstr "" + +#: ../../widget.rst:239 4d07f298c6d14909b518fad20ea5e681 +msgid "TiRo" +msgstr "" + +#: ../../widget.rst:239 b7c540028a3d4cedb72159dba9849432 +msgid "Times-Roman" +msgstr "" + +#: ../../widget.rst:240 58ea0b46026f4588b999a9ca93163980 +msgid "ZaDb" +msgstr "" + +#: ../../widget.rst:240 2e0483edf38749a1928b25d20ab9055a +msgid "ZapfDingbats" +msgstr "" + +#: ../../widget.rst:243 a31f0eb06f284c738ae3404fb14e5e42 +msgid "" +"You are generally free to use any font for every widget. However, we " +"recommend using ``ZaDb`` (\"ZapfDingbats\") and :data:`fontsize` 0 for " +"check boxes: typical viewers will put a correctly sized tickmark in the " +"field's rectangle, when it is clicked." +msgstr "" + +#: ../../widget.rst:246 25ed10dbd2a14216bbd4ed04f57c98cd +msgid "Supported Widget Types" +msgstr "" + +#: ../../widget.rst:247 8cb59d1d5bd14f098f5fc408b8849853 +msgid "" +"PyMuPDF supports the creation and update of many, but not all widget " +"types." +msgstr "" + +#: ../../widget.rst:249 8461bca05ec547fabc82884dedd125bb +msgid "text (`PDF_WIDGET_TYPE_TEXT`)" +msgstr "" + +#: ../../widget.rst:250 4c1a2929bc174c79bd4b539f47d803f2 +msgid "push button (`PDF_WIDGET_TYPE_BUTTON`)" +msgstr "" + +#: ../../widget.rst:251 c8546d5d5e834b6bb9bf78579650d52d +msgid "check box (`PDF_WIDGET_TYPE_CHECKBOX`)" +msgstr "" + +#: ../../widget.rst:252 90c82cab0fe4443ab3b6c96bde056ab8 +msgid "combo box (`PDF_WIDGET_TYPE_COMBOBOX`)" +msgstr "" + +#: ../../widget.rst:253 466344d91d064ed5a8d839e9b95d1988 +msgid "list box (`PDF_WIDGET_TYPE_LISTBOX`)" +msgstr "" + +#: ../../widget.rst:254 315046b3a75448dd80a03dc3287c68fe +msgid "" +"radio button (`PDF_WIDGET_TYPE_RADIOBUTTON`): PyMuPDF does not currently " +"support the **creation** of groups of (interconnected) radio buttons, " +"where setting one button automatically unsets the other buttons in the " +"group. The widget object also does not reflect the presence of a button " +"group. However: consistently selecting (or unselecting) a radio button is" +" supported. This includes correctly setting the value maintained in the " +"owning button group. Selecting a radio button may be done by either " +"assigning `True` or `field.on_state()` to the field value. **De-" +"selecting** the button should be done assigning `False`." +msgstr "" + +#: ../../widget.rst:255 b7ca95506bb743bf8bc9d51686c700fc +msgid "" +"signature (`PDF_WIDGET_TYPE_SIGNATURE`) **read only** -- no update or " +"creation of signatures." +msgstr "" + +#: ../../widget.rst:258 b53b3f3d840749208db6e32b83f6d04d +msgid "Footnotes" +msgstr "" + +#: ../../widget.rst:259 3eaba62dde8347e2a386454b987a2ed7 +msgid "" +"If you intend to re-access a new or updated field (e.g. for making a " +"pixmap), make sure to reload the page first. Either close and re-open the" +" document, or load another page first, or simply do `page = " +"doc.reload_page(page)`." +msgstr "" + +#: ../../widget.rst:261 148f6fb2b3f74450a3f794e012c04772 +msgid "" +"Among other purposes, ``Parent`` objects are also used to facilitate " +"multiple occurrences of a field (on the same or on different pages). The " +"``Kids`` array in this ``Parent`` object contains the cross references of" +" all widgets that are \"copies\" of the same field. Whenever the field " +"value of any \"kid\" widget is changed, all the other kids are " +"immediately updated too. This is a very efficient way to handle multiple " +"copies of the same field, e.g. for filling out forms. This simultaneous " +"update only happens for :attr:`Widget.field value`. The new parameter " +"``sync_flags`` extends this to :attr:`Widget.field_flags`. This cannot be" +" automated in the same way as for the field value to allow for more " +"flexibility." +msgstr "" + +#: ../../footer.rst:46 00e495d1b07b4fb7afe8b0b3fc2b91b4 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/xml-class.mo b/docs/locales/ko/LC_MESSAGES/xml-class.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/xml-class.po b/docs/locales/ko/LC_MESSAGES/xml-class.po new file mode 100644 index 000000000..fd04fe46d --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/xml-class.po @@ -0,0 +1,1014 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 9bc3699c82af49c8b1df7fe13214a7b5 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 326238c0829940fabc392be468cf2397 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 050fa15499a34569a9fd77b259465298 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../xml-class.rst:7 7539bb52127547af984aad658b4cfb92 +msgid "Xml" +msgstr "" + +#: ../../xml-class.rst:11 69918b04ded7433cafdc59a4cd3b47d7 +msgid "New in v1.21.0" +msgstr "" + +#: ../../xml-class.rst:13 701eb0771c3d48bfa320b9448a73332b +msgid "" +"This represents an HTML or an XML node. It is a helper class intended to " +"access the DOM (Document Object Model) content of a :ref:`Story` object." +msgstr "" + +#: ../../xml-class.rst:15 650bf51115434e7790ea30f9fd0bb7d7 +msgid "" +"There is no need to ever directly construct an :ref:`Xml` object: after " +"creating a :ref:`Story`, simply take :attr:`Story.body` -- which is an " +"Xml node -- and use it to navigate your way through the story's DOM." +msgstr "" + +#: ../../xml-class.rst:19 cf40a558798c4fbd8a72c27c44432134 +msgid "**Method / Attribute**" +msgstr "" + +#: ../../xml-class.rst:19 fb064b9b3de54836a65897651c2b23e7 +msgid "**Description**" +msgstr "" + +#: ../../xml-class.rst:21 e78c7cff21934e9799758e2681885d59 +msgid ":meth:`~.add_bullet_list`" +msgstr "" + +#: ../../xml-class.rst:21 4073ca2339474772a59d8cd2f6c9929e +msgid "Add a :htmlTag:`ul` tag - bulleted list, context manager." +msgstr "" + +#: ../../xml-class.rst:22 42afb4855a364bb5a7ee0ff4f980142e +msgid ":meth:`~.add_codeblock`" +msgstr "" + +#: ../../xml-class.rst:22 63b440c548b84d47862d2ad1f1981743 +msgid "Add a :htmlTag:`pre` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:23 8e3607a7f041426fbc845b4c6a9ae096 +msgid ":meth:`~.add_description_list`" +msgstr "" + +#: ../../xml-class.rst:23 7629f4b770e34ccbad2fb9fdd3dcc9c2 +msgid "Add a :htmlTag:`dl` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:24 2331abc8ed194fbb98cd0182804a342d +msgid ":meth:`~.add_division`" +msgstr "" + +#: ../../xml-class.rst:24 87f6077df46b419cafefc73a835bac19 +msgid "add a :htmlTag:`div` tag (renamed from “section”), context manager." +msgstr "" + +#: ../../xml-class.rst:25 925b77ace63e499b89b3bec1a66f73ea +msgid ":meth:`~.add_header`" +msgstr "" + +#: ../../xml-class.rst:25 720b6d400ec443eba12a19c4c15e56be +msgid "Add a header tag (one of :htmlTag:`h1` to :htmlTag:`h6`), context manager." +msgstr "" + +#: ../../xml-class.rst:26 eaa38653ffd94b3db76df39d6295fdc8 +msgid ":meth:`~.add_horizontal_line`" +msgstr "" + +#: ../../xml-class.rst:26 a63a5897e97c42babb68572cfcfe82bc +msgid "Add a :htmlTag:`hr` tag." +msgstr "" + +#: ../../xml-class.rst:27 b6f6a42fc89d48b38d896ea993d6f1e6 +msgid ":meth:`~.add_image`" +msgstr "" + +#: ../../xml-class.rst:27 5373ac70d619448680766ec6a39acfab +msgid "Add a :htmlTag:`img` tag." +msgstr "" + +#: ../../xml-class.rst:28 ce704c9a05ac4c59a02e1a7228a107d8 +msgid ":meth:`~.add_link`" +msgstr "" + +#: ../../xml-class.rst:28 866729d3f92f46b5b5050d74efe8b5cf +msgid "Add a :htmlTag:`a` tag." +msgstr "" + +#: ../../xml-class.rst:29 71e847fed4e7459c8e769511a02ef5b8 +msgid ":meth:`~.add_number_list`" +msgstr "" + +#: ../../xml-class.rst:29 a46aa17f1d1f45d8898477a87ff3b5d1 +msgid "Add a :htmlTag:`ol` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:30 de6a8f56bf954b939a2062d06ed2ffe8 +msgid ":meth:`~.add_paragraph`" +msgstr "" + +#: ../../xml-class.rst:30 0bcc2cb10d0c4fd6bb3867ebb07872c5 +msgid "Add a :htmlTag:`p` tag." +msgstr "" + +#: ../../xml-class.rst:31 4406855a42c346f8aa73b01f948cfe52 +msgid ":meth:`~.add_span`" +msgstr "" + +#: ../../xml-class.rst:31 1eadbc2d97d449d988ab2794879e3bf4 +msgid "Add a :htmlTag:`span` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:32 10b12cf26309427f89d2d544e249c8a7 +msgid ":meth:`~.add_subscript`" +msgstr "" + +#: ../../xml-class.rst:32 7dd123f6a64b4aa099e9a52c82b30045 +msgid "" +"Add subscript text(:htmlTag:`sub` tag) - inline element, treated like " +"text." +msgstr "" + +#: ../../xml-class.rst:33 de4883604bc7468e9377ecec6f43e967 +msgid ":meth:`~.add_superscript`" +msgstr "" + +#: ../../xml-class.rst:33 bfdbc3b97efd4e3582ffbbd52091f942 +msgid "" +"Add subscript text (:htmlTag:`sup` tag) - inline element, treated like " +"text." +msgstr "" + +#: ../../xml-class.rst:34 06e5244a2e6743fd9c3d655ed3660e26 +msgid ":meth:`~.add_code`" +msgstr "" + +#: ../../xml-class.rst:34 ../../xml-class.rst:35 ../../xml-class.rst:36 +#: ../../xml-class.rst:37 71a231e6482d429a809a97b5dcd97c68 +#: 774ac2c4b60a4ae3b7a6d68ee5d1bdea b6821fb5425047c9874368c5c1972e38 +#: f0583fc28b774b69beeaddbe640ae558 +msgid "Add code text (:htmlTag:`code` tag) - inline element, treated like text." +msgstr "" + +#: ../../xml-class.rst:35 73c73171c8554952a9f1e9319b796f08 +msgid ":meth:`~.add_var`" +msgstr "" + +#: ../../xml-class.rst:36 f593a824878e4e74bc4566535b5054f5 +msgid ":meth:`~.add_samp`" +msgstr "" + +#: ../../xml-class.rst:37 273c407a402d44adb958afeb1212ea43 +msgid ":meth:`~.add_kbd`" +msgstr "" + +#: ../../xml-class.rst:38 17bafeb602d745cbb40f2f75a48f3779 +msgid ":meth:`~.add_text`" +msgstr "" + +#: ../../xml-class.rst:38 ../../xml-class.rst:162 +#: 39fe57b6ab4a45358f606b2aed299e68 e043e37cf5b94d67a2582ea0b74a31b1 +msgid "Add a text string. Line breaks ``\\n`` are honored as :htmlTag:`br` tags." +msgstr "" + +#: ../../xml-class.rst:39 5696aceb71e6487aba73473972dbfe08 +msgid ":meth:`~.append_child`" +msgstr "" + +#: ../../xml-class.rst:39 a9589f5c6e09425a808f5e6073a4e37c +msgid "Append a child node." +msgstr "" + +#: ../../xml-class.rst:40 eee20ca8fefd43f2b810d09f844b9572 +msgid ":meth:`~.clone`" +msgstr "" + +#: ../../xml-class.rst:40 397f2e9e26664a2ba88d3d931a8461ed +msgid "Make a copy if this node." +msgstr "" + +#: ../../xml-class.rst:41 7cc5d81732194edd964b9ecedca6a6e6 +msgid ":meth:`~.create_element`" +msgstr "" + +#: ../../xml-class.rst:41 77b33e435fb74f0cba25782b92faa883 +msgid "Make a new node with a given tag name." +msgstr "" + +#: ../../xml-class.rst:42 893b3a532b644a4682535c9f8ba1cd88 +msgid ":meth:`~.create_text_node`" +msgstr "" + +#: ../../xml-class.rst:42 ../../xml-class.rst:306 +#: 852761f667764aca8cf306c687632a47 bfdec0120fc345f1888e2301350d2b31 +msgid "Create direct text for the current node." +msgstr "" + +#: ../../xml-class.rst:43 624514bea7a74d5483c624263ca273f1 +msgid ":meth:`~.find`" +msgstr "" + +#: ../../xml-class.rst:43 30101fec0f2043428d06155ab746f88a +msgid "Find a sub-node with given properties." +msgstr "" + +#: ../../xml-class.rst:44 5c39afc942714c20ba3425fc35e759bd +msgid ":meth:`~.find_next`" +msgstr "" + +#: ../../xml-class.rst:44 537686d3196148fd8f556fb760788f08 +msgid "Repeat previous \"find\" with the same criteria." +msgstr "" + +#: ../../xml-class.rst:45 c9c16b8e293d420ab20c63e69a52d33a +msgid ":meth:`~.insert_after`" +msgstr "" + +#: ../../xml-class.rst:45 9203ddd2bde641e3b1682aca7200b06b +msgid "Insert an element after current node." +msgstr "" + +#: ../../xml-class.rst:46 df9f60af548040e2acd6c6a20980a110 +msgid ":meth:`~.insert_before`" +msgstr "" + +#: ../../xml-class.rst:46 dc4fce41210744cfaf0c95d6aa831c18 +msgid "Insert an element before current node." +msgstr "" + +#: ../../xml-class.rst:47 2b82b7c677bb4945be75049a8969b1b6 +msgid ":meth:`~.remove`" +msgstr "" + +#: ../../xml-class.rst:47 b5fe4505db6d41c480d47bddef4cf52e +msgid "Remove this node." +msgstr "" + +#: ../../xml-class.rst:48 f33a29d728f347659819597b9939e554 +msgid ":meth:`~.set_align`" +msgstr "" + +#: ../../xml-class.rst:48 289d9bcffcb6493d807fc143be1dc232 +msgid "Set the alignment using a CSS style spec. Only works for block-level tags." +msgstr "" + +#: ../../xml-class.rst:49 f5378dd097d847ce96657a999ab7114a +msgid ":meth:`~.set_attribute`" +msgstr "" + +#: ../../xml-class.rst:49 ../../xml-class.rst:172 +#: 1814a357c0ed44e2b9a5355fa2f28270 6492db795dcd4ea482ffc67b547ece9f +msgid "Set an arbitrary key to some value (which may be empty)." +msgstr "" + +#: ../../xml-class.rst:50 73208c8fe2ba4dd2a71a852fd9b952a4 +msgid ":meth:`~.set_bgcolor`" +msgstr "" + +#: ../../xml-class.rst:50 ../../xml-class.rst:199 +#: 0aba92f0ec714f9f9e1a4fc6337b11a9 766786fc29af4bfe8751a6998dd4c96f +msgid "Set the background color. Only works for block-level tags." +msgstr "" + +#: ../../xml-class.rst:51 09762db5cf824a718700722ce57cae1a +msgid ":meth:`~.set_bold`" +msgstr "" + +#: ../../xml-class.rst:51 ../../xml-class.rst:205 +#: 02cb247379cf41b8a7bdc6b9c8986250 d7e5ee2fe5be41508c6b731ff74f9ddc +msgid "Set bold on or off or to some string value." +msgstr "" + +#: ../../xml-class.rst:52 2a1024abf59c406b95d76d4dad068061 +msgid ":meth:`~.set_color`" +msgstr "" + +#: ../../xml-class.rst:52 5daf275c40c94edf959fa5a44e4caffd +msgid "Set text color." +msgstr "" + +#: ../../xml-class.rst:53 9a70ba2b81a54311a2dcee0192747a4d +msgid ":meth:`~.set_columns`" +msgstr "" + +#: ../../xml-class.rst:53 f2bad300933849d7a83712ce8d8acba0 +msgid "Set the number of columns. Argument may be any valid number or string." +msgstr "" + +#: ../../xml-class.rst:54 f5cb73e293d84c2593b223b987f3a245 +msgid ":meth:`~.set_font`" +msgstr "" + +#: ../../xml-class.rst:54 4e8c68cac8e4421398691c001e143897 +msgid "Set the font-family, e.g. “sans-serif”." +msgstr "" + +#: ../../xml-class.rst:55 dd2ab54a599548b8a3567fc16473df0a +msgid ":meth:`~.set_fontsize`" +msgstr "" + +#: ../../xml-class.rst:55 460f5f62de7a4ef2894a131015155780 +msgid "Set the font size. Either a float or a valid HTML/CSS string." +msgstr "" + +#: ../../xml-class.rst:56 c24030b2539d481e9ee5585d1e45a101 +msgid ":meth:`~.set_id`" +msgstr "" + +#: ../../xml-class.rst:56 c1a2bbd206c64d51b6ce8e6fba7afae9 +msgid "Set a :htmlTag:`id`. A check for uniqueness is performed." +msgstr "" + +#: ../../xml-class.rst:57 19d42012842a4657b3d0c55161c2f510 +msgid ":meth:`~.set_italic`" +msgstr "" + +#: ../../xml-class.rst:57 79e8cd4b75b447dcaf86dc611bfd6a80 +msgid "Set italic on or off or to some string value." +msgstr "" + +#: ../../xml-class.rst:58 44b35de9ea08474c9147300a0afc6450 +msgid ":meth:`~.set_leading`" +msgstr "" + +#: ../../xml-class.rst:58 ../../xml-class.rst:249 +#: 38ffd73528514393b5fa0a83385774f7 de2651e329c0412bb1d14f2173456714 +msgid "" +"Set inter-block text distance (`-mupdf-leading`), only works on block-" +"level nodes." +msgstr "" + +#: ../../xml-class.rst:59 e4a9d8224ddf439db8e8f6e24fdb7767 +msgid ":meth:`~.set_lineheight`" +msgstr "" + +#: ../../xml-class.rst:59 433ad772d7bb4426b0d39eba7f6759a2 +msgid "Set height of a line. Float like 1.5, which sets to `1.5 * fontsize`." +msgstr "" + +#: ../../xml-class.rst:60 c2b91a86c2894a5e831c7cbd43f37c80 +msgid ":meth:`~.set_margins`" +msgstr "" + +#: ../../xml-class.rst:60 82df52bdba464711b98314ee57ae0d93 +msgid "Set the margin(s), float or string with up to 4 values." +msgstr "" + +#: ../../xml-class.rst:61 168a45e0043a4b048a5c7670725fc426 +msgid ":meth:`~.set_pagebreak_after`" +msgstr "" + +#: ../../xml-class.rst:61 ../../xml-class.rst:267 +#: b6747164bb71457d90a190b5cf480397 ddfd826cae5544718fe1aa5d53c23a89 +msgid "Insert a page break after this node." +msgstr "" + +#: ../../xml-class.rst:62 d8426c25df0b42d497a60c8fd3aebec5 +msgid ":meth:`~.set_pagebreak_before`" +msgstr "" + +#: ../../xml-class.rst:62 ../../xml-class.rst:271 +#: 2ed3ee7979a147a28b3336a5c139fa26 9b95ee2877aa4ae5b4ef25e4293b592f +msgid "Insert a page break before this node." +msgstr "" + +#: ../../xml-class.rst:63 0bbec4f8c36441edb6459ee34ab62648 +msgid ":meth:`~.set_properties`" +msgstr "" + +#: ../../xml-class.rst:63 40444fbe8f064c23bd58e34d6f14ea1c +msgid "Set any or all desired properties in one call." +msgstr "" + +#: ../../xml-class.rst:64 c1e79c3c529647d08705d27a389c9923 +msgid ":meth:`~.add_style`" +msgstr "" + +#: ../../xml-class.rst:64 77bd7ceb193541c4947123335f26d16f +msgid "Set (add) a “style” that is not supported by its own `set_` method." +msgstr "" + +#: ../../xml-class.rst:65 41ad2d1f0b1d40229cea9747269b25ab +msgid ":meth:`~.add_class`" +msgstr "" + +#: ../../xml-class.rst:65 96578b87b27b460c9bf2d9efa981eb61 +msgid "Set (add) a “class” attribute." +msgstr "" + +#: ../../xml-class.rst:66 89c5d6f6e058468293782417c3e94def +msgid ":meth:`~.set_text_indent`" +msgstr "" + +#: ../../xml-class.rst:66 7c1f2fd1462449ff90ddf0f757199edf +msgid "" +"Set indentation for first textblock line. Only works for block-level " +"nodes." +msgstr "" + +#: ../../xml-class.rst:67 72ab40c71f664eb8a56fd757221a367f +msgid ":attr:`~.tagname`" +msgstr "" + +#: ../../xml-class.rst:67 ../../xml-class.rst:370 +#: 4b07f06d00824419babf7bf40fb65c85 66c0edfd4d6d4a1999d2178ca42a8757 +msgid "Either the HTML tag name like :htmlTag:`p` or `None` if a text node." +msgstr "" + +#: ../../xml-class.rst:68 ea015551c0d747b1852ab24eb94cad14 +msgid ":attr:`~.text`" +msgstr "" + +#: ../../xml-class.rst:68 ../../xml-class.rst:374 +#: c3f5e31031c54b1e930260f43e6be0fc cb38a9c4ef35438a85aced5101afb7a6 +msgid "Either the node's text or `None` if a tag node." +msgstr "" + +#: ../../xml-class.rst:69 752c527b6d7d4b12aec52a36461733ac +msgid ":attr:`~.is_text`" +msgstr "" + +#: ../../xml-class.rst:69 7f2454ce70d247559d3f5e6eae53562a +msgid "Check if the node is a text." +msgstr "" + +#: ../../xml-class.rst:70 1bee2aa60bf9453083bcadfacfb8be41 +msgid ":attr:`~.first_child`" +msgstr "" + +#: ../../xml-class.rst:70 ../../xml-class.rst:382 +#: 320d6a189e5f4b909fcc81b1c7eea929 39ca3a0836484a45b0f4118ed2f543a9 +msgid "Contains the first node one level below this one (or `None`)." +msgstr "" + +#: ../../xml-class.rst:71 0cc3911f891b40008b81fbdd77555d23 +msgid ":attr:`~.last_child`" +msgstr "" + +#: ../../xml-class.rst:71 ../../xml-class.rst:386 +#: a7088ac1bc6b4553ae8926b7c0229f6a c798e3695bca4932a01d7d08afd5f68e +msgid "Contains the last node one level below this one (or `None`)." +msgstr "" + +#: ../../xml-class.rst:72 a55fd7ae669d40778dc10035cd16136f +msgid ":attr:`~.next`" +msgstr "" + +#: ../../xml-class.rst:72 ../../xml-class.rst:390 +#: 0a1b07cfeb4547bc9c8eb66220b51859 1594bd77ea1742818cc3686d1368a882 +msgid "The next node at the same level (or `None`)." +msgstr "" + +#: ../../xml-class.rst:73 3486238a07154ef78a502dbf58be4824 +msgid ":attr:`~.previous`" +msgstr "" + +#: ../../xml-class.rst:73 ../../xml-class.rst:394 +#: 4d3a63d266e64b0197dad3f7c0d9cc45 72a4097f399d429bb3a1c8aafccecb21 +msgid "The previous node at the same level." +msgstr "" + +#: ../../xml-class.rst:74 f9b1df7efd3d4d10bb406eaba4295f05 +msgid ":attr:`~.root`" +msgstr "" + +#: ../../xml-class.rst:74 ../../xml-class.rst:398 +#: bfd73bf27d05422aaddeafca50d7a8b6 f32aae02b0764bacb0f76cc2143b791b +msgid "The top node of the DOM, which hence has the tagname :htmlTag:`html`." +msgstr "" + +#: ../../xml-class.rst:79 04c90c00f0a947559dcf40c4890dca12 +msgid "**Class API**" +msgstr "" + +#: ../../xml-class.rst:85 78730e0cda88494983058b058e9e9d05 +msgid "" +"Add an :htmlTag:`ul` tag - bulleted list, context manager. See `ul " +"`_." +msgstr "" + +#: ../../xml-class.rst:89 4f29c89ccbfd4ebb87fe36bb3b143b3c +msgid "" +"Add a :htmlTag:`pre` tag, context manager. See `pre " +"`_." +msgstr "" + +#: ../../xml-class.rst:93 679cd9edd9ed4afba4ff714af8036e0a +msgid "" +"Add a :htmlTag:`dl` tag, context manager. See `dl " +"`_." +msgstr "" + +#: ../../xml-class.rst:97 03e27d350d674d08ad2c44040f814f40 +msgid "" +"Add a :htmlTag:`div` tag, context manager. See `div " +"`_." +msgstr "" + +#: ../../xml-class.rst:101 f64e22d6332f479b986b6021758b3b15 +msgid "" +"Add a header tag (one of :htmlTag:`h1` to :htmlTag:`h6`), context " +"manager. See `headings `_." +msgstr "" + +#: ../../xml-class.rst 065c93b2667f4b59bc0005d8ee418d8e +#: 0c0a56039e054d99b2a70bf8dd35baee 0f0a8df2cba44726bec15ed750efb16e +#: 19e23e19f33242218bb8f64846608ee1 1c343ef536aa4bafad7120a5e99056a1 +#: 1df8d379b67f4f6c9148d65ce90d895e 24c794268e424405a4a7f928f152c94e +#: 440694bb26a9429f9fa1f91091512eb1 4af31c38629d4f56adb3cb36814e3245 +#: 546d1a6e9d0f495991e37a1b3e6d41a8 5bfd45e82ad443779803025b203f38cb +#: 5da360e4399b48b4a218a98f9d0bbb30 828fe4bbceb047d4a7c94bc58345e8bb +#: 9269e453278f43798e57eb495a5041e2 96ee0634d0b04540aca68822d19e0a90 +#: 98969797941e4cf5af5b2924a2f961a6 9cd0609f829f404c893e7acfc862cee1 +#: 9df52934e8d54142a9e0de65ef90b860 a1d997b3c81746e487eca75e6c11ed5d +#: a939f729c85d4d1da6c0e948bc0bbfcd b03c3995869142a59b346240cdee6c43 +#: b60153cfefa0401da9ed776dc2c65612 c90134765fa543669a418fef9aab5219 +#: cf5c3947ed904cf7a110a9133cc0cbf2 e443cd6dc92b463b9aae5951fefa7923 +#: eda27fed7cd14102af44b6d779aa08bd fa812988f52149b688bb626370a17c9b +msgid "Parameters" +msgstr "" + +#: ../../xml-class.rst:103 d3fcc399e60b42c0bdff62809c41bda6 +msgid "a value 1 - 6." +msgstr "" + +#: ../../xml-class.rst:107 aa6f32332828484d9fd7c76b918eb637 +msgid "" +"Add a :htmlTag:`hr` tag. See `hr `_." +msgstr "" + +#: ../../xml-class.rst:111 8a7ecb8e64aa4ef78928e81ad5978135 +msgid "" +"Add an :htmlTag:`img` tag. This causes the inclusion of the named image " +"in the DOM." +msgstr "" + +#: ../../xml-class.rst:113 b364cd57a22047b1841b3478e4211748 +msgid "" +"the filename of the image. This **must be the member name** of some entry" +" of the :ref:`Archive` parameter of the :ref:`Story` constructor." +msgstr "" + +#: ../../xml-class.rst:114 feffa4db8ba749cbb80b8956ec59a8fd +msgid "" +"if provided, either an absolute (int) value, or a percentage string like " +"\"30%\". A percentage value refers to the width of the specified `where` " +"rectangle in :meth:`Story.place`. If this value is provided and `height` " +"is omitted, the image will be included keeping its aspect ratio." +msgstr "" + +#: ../../xml-class.rst:115 297ebbb18a1d4119bf9749589e7e9e4e +msgid "" +"if provided, either an absolute (int) value, or a percentage string like " +"\"30%\". A percentage value refers to the height of the specified `where`" +" rectangle in :meth:`Story.place`. If this value is provided and `width` " +"is omitted, the image's aspect ratio will be honored." +msgstr "" + +#: ../../xml-class.rst:119 d974d7965d9e4aaebf7e34b4412b977d +msgid "Add an :htmlTag:`a` tag - inline element, treated like text." +msgstr "" + +#: ../../xml-class.rst:121 88cda2b7ced649b08f3b9caab400a13f +msgid "the URL target." +msgstr "" + +#: ../../xml-class.rst:122 01b3f8e929ec4382b026f5024c8e461b +msgid "the text to display. If omitted, the `href` text is shown instead." +msgstr "" + +#: ../../xml-class.rst:126 38a8de21bb334e30a4a2375a71fba139 +msgid "Add an :htmlTag:`ol` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:130 7efd1c5e1e974d669fc2925b573e2841 +msgid "Add a :htmlTag:`p` tag, context manager." +msgstr "" + +#: ../../xml-class.rst:134 c28c4b6bf3094deaa1ac7d2708055377 +msgid "Add a :htmlTag:`span` tag, context manager. See `span`_" +msgstr "" + +#: ../../xml-class.rst:138 9a0db462abc049d99bfebaa8f494b1dd +msgid "" +"Add \"subscript\" text(:htmlTag:`sub` tag) - inline element, treated like" +" text." +msgstr "" + +#: ../../xml-class.rst:142 5eb3622bf42541978d83a6f83b4b1812 +msgid "" +"Add \"superscript\" text (:htmlTag:`sup` tag) - inline element, treated " +"like text." +msgstr "" + +#: ../../xml-class.rst:146 e0c253e931424beabdbe9a4cc102ff2b +msgid "" +"Add \"code\" text (:htmlTag:`code` tag) - inline element, treated like " +"text." +msgstr "" + +#: ../../xml-class.rst:150 487abd903ffe4968a0b3edddbf781aab +msgid "" +"Add \"variable\" text (:htmlTag:`var` tag) - inline element, treated like" +" text." +msgstr "" + +#: ../../xml-class.rst:154 511f5e07831d43b98c9cd52460fadbfc +msgid "" +"Add \"sample output\" text (:htmlTag:`samp` tag) - inline element, " +"treated like text." +msgstr "" + +#: ../../xml-class.rst:158 148acc227ed543ada9eb80f9e3361148 +msgid "" +"Add \"keyboard input\" text (:htmlTag:`kbd` tag) - inline element, " +"treated like text." +msgstr "" + +#: ../../xml-class.rst:166 e4fd83f3113444fa892754d2cd229f16 +msgid "Set the text alignment. Only works for block-level tags." +msgstr "" + +#: ../../xml-class.rst:168 80569a79f1374591a9cbef4bf9a3554b +msgid "" +"either one of the :ref:`TextAlign` or the `text-align " +"`_ values." +msgstr "" + +#: ../../xml-class.rst:174 ../../xml-class.rst:187 ../../xml-class.rst:195 +#: 63ec265f02574038be39ffd12857e1e6 8653d6040fce4304b9283b10c63c2a0d +#: effdb08d08d64ad69f7156445ad85f24 +msgid "the name of the attribute." +msgstr "" + +#: ../../xml-class.rst:175 79eb35ff54564e498350c87ded4ab7b7 +msgid "the (optional) value of the attribute." +msgstr "" + +#: ../../xml-class.rst:179 a2933af8cb7a40b19b6dbea4b44ff85f +msgid "Retrieve all attributes of the current nodes as a dictionary." +msgstr "" + +#: ../../xml-class.rst 32037a4115c54269bed963a9419700ba +#: 514e402f7fa346968ad90659db7f2e01 a394ddf7dbba4fabb6abe4d9a2494e7e +#: a8bc581bad6e47c491f2e0bcf268e024 d1475ecbf73a4bd192f538e82597cff8 +#: ef0dfc6236be412da3e165b06927dfea f8bdb32d37f64c87b60bb023b68db4cb +msgid "Returns" +msgstr "" + +#: ../../xml-class.rst:181 06c6f148cb9342faadd6c3f69b513064 +msgid "a dictionary with the attributes and their values of the node." +msgstr "" + +#: ../../xml-class.rst:185 7d985017baee4025a15c386fbc54a679 +msgid "Get the attribute value of `key`." +msgstr "" + +#: ../../xml-class.rst:189 e58d4bc58a864aac9df9458c3c692295 +msgid "a string with the value of `key`." +msgstr "" + +#: ../../xml-class.rst:193 eecf70453d9b436f95de9f883d149934 +msgid "Remove the attribute `key` from the node." +msgstr "" + +#: ../../xml-class.rst:201 57c7564c7d1d49d99080b1d8e3cdf22b +msgid "" +"either an RGB value like (255, 0, 0) (for \"red\") or a valid " +"`background-color `_ value." +msgstr "" + +#: ../../xml-class.rst:207 07cc41a72c11401e83da8ae6811ccb19 +msgid "" +"`True`, `False` or a valid `font-weight `_ value." +msgstr "" + +#: ../../xml-class.rst:211 322f90617c804bb383193f215f5dde9f +msgid "Set the color of the text following." +msgstr "" + +#: ../../xml-class.rst:213 13738c9e497c45e794028a25ca07431e +msgid "" +"either an RGB value like (255, 0, 0) (for \"red\") or a valid `color " +"`_ value." +msgstr "" + +#: ../../xml-class.rst:217 ef2c0e22c6604e62ba8209606b4b1975 +msgid "Set the number of columns." +msgstr "" + +#: ../../xml-class.rst:219 d06d790826214f6699bc65ae803b9462 +msgid "" +"a valid `columns `_ value." +msgstr "" + +#: ../../xml-class.rst:221 000fd611f95c464f8f11a5a4598a606a +msgid "Currently ignored - supported in a future MuPDF version." +msgstr "" + +#: ../../xml-class.rst:225 fde30f65a0f442f6855556915da1c562 +msgid "Set the font-family." +msgstr "" + +#: ../../xml-class.rst:227 bfb2bd55581945cabecbcb5b056be723 +msgid "e.g. \"sans-serif\"." +msgstr "" + +#: ../../xml-class.rst:231 085198158cb2442389b728fc435b56d7 +msgid "Set the font size for text following." +msgstr "" + +#: ../../xml-class.rst:233 53f7e1e14eb44cb0b45fe5b86c6d03cc +msgid "" +"a float or a valid `font-size `_ value." +msgstr "" + +#: ../../xml-class.rst:237 9930a2a780534ef5a9103c07de7c9fef +msgid "" +"Set a :htmlTag:`id`. This serves as a unique identification of the node " +"within the DOM. Use it to easily locate the node to inspect or modify it." +" A check for uniqueness is performed." +msgstr "" + +#: ../../xml-class.rst:239 801cf634ae524f6cad153eaa722f43ad +msgid "id string of the node." +msgstr "" + +#: ../../xml-class.rst:243 f65729a2c4b74d829046318ef936f1c2 +msgid "Set italic on or off or to some string value for the text following it." +msgstr "" + +#: ../../xml-class.rst:245 149ad466119a4542a2c87b3bee16a879 +msgid "" +"`True`, `False` or some valid `font-style `_ value." +msgstr "" + +#: ../../xml-class.rst:251 1d31490b64ab4d07ad99879f7cb90dbb +msgid "the distance in points to the previous block." +msgstr "" + +#: ../../xml-class.rst:255 b2b8c642e624457a89cc502c77f83eb6 +msgid "Set height of a line." +msgstr "" + +#: ../../xml-class.rst:257 1391850946a446399568957cef3c7105 +msgid "" +"a float like 1.5 (which sets to `1.5 * fontsize`), or some valid `line-" +"height `_ " +"value." +msgstr "" + +#: ../../xml-class.rst:261 c131738521f44bc1a5a34f3ba742e01a +msgid "Set the margin(s)." +msgstr "" + +#: ../../xml-class.rst:263 ec3773235e6f4255ada57ef6228fe619 +msgid "" +"float or string with up to 4 values. See `CSS documentation " +"`_." +msgstr "" + +#: ../../xml-class.rst:275 8fbca28b57f64486b5b56c863f4cbe11 +msgid "" +"Set any or all desired properties in one call. The meaning of argument " +"values equal the values of the corresponding `set_` methods." +msgstr "" + +#: ../../xml-class.rst:277 a14842df5ad24d31b94dd60fec7103a9 +msgid "" +"The properties set by this method are directly attached to the node, " +"whereas every `set_` method generates a new :htmlTag:`span` below the " +"current node that has the respective property. So to e.g. \"globally\" " +"set some property for the :htmlTag:`body`, this method must be used." +msgstr "" + +#: ../../xml-class.rst:281 5da4e32a2695451ca00a8a86bab4541b +msgid "Set (add) some style attribute not supported by its own `set_` method." +msgstr "" + +#: ../../xml-class.rst:283 6392305b5a7e471fa1c1d69022c6bd2c +msgid "any valid CSS style value." +msgstr "" + +#: ../../xml-class.rst:287 c0bf1c8061944e968296465505764685 +msgid "Set (add) some \"class\" attribute." +msgstr "" + +#: ../../xml-class.rst:289 9889f5cc48754a19aca80a823fcb4332 +msgid "" +"the name of the class. Must have been defined in either the HTML or the " +"CSS source of the DOM." +msgstr "" + +#: ../../xml-class.rst:293 ed0b59c949334c3fa17dc81324af792c +msgid "" +"Set indentation for the first textblock line. Only works for block-level " +"nodes." +msgstr "" + +#: ../../xml-class.rst:295 538f9c84b65f484a93b95b4d0606fb41 +msgid "" +"a valid `text-indent `_ value. Please note that negative values do not work." +msgstr "" + +#: ../../xml-class.rst:300 d3a718c0c70d49049aebc80cc901669d +msgid "" +"Append a child node. This is a low-level method used by other methods " +"like :meth:`Xml.add_paragraph`." +msgstr "" + +#: ../../xml-class.rst:302 e7b73c698ba84cbdab245a96fa97fe50 +msgid "the :ref:`Xml` node to append." +msgstr "" + +#: ../../xml-class.rst:308 eee163ad3bf946fc8d1c06451560b1f6 +msgid "the text to append." +msgstr "" + +#: ../../xml-class.rst 48ca1cf827424632b6df8b1f61aff2d8 +#: 5a467a48aece48f5af3c2d9dd6a79a6a 79a19d1a83304de78df5ae63b3cf011d +#: 9b7aa1d2e710481dbbd51c4d42edee22 +msgid "Return type" +msgstr "" + +#: ../../xml-class.rst:310 ../../xml-class.rst:319 +#: 32c303fb0dac4363930ab76a9fae8a4f 53681ecca3f3467fb5fae3cbacb510bb +msgid ":ref:`Xml`" +msgstr "" + +#: ../../xml-class.rst:311 499726c017994824bde748a90a928f34 +msgid "the created element." +msgstr "" + +#: ../../xml-class.rst:315 0c1436ead4e64f169d82559ac30aafde +msgid "" +"Create a new node with a given tag. This a low-level method used by other" +" methods like :meth:`Xml.add_paragraph`." +msgstr "" + +#: ../../xml-class.rst:317 650c0522f68e46f79b7b78e749ef099f +msgid "the element tag." +msgstr "" + +#: ../../xml-class.rst:320 c2e4eca0854f4f44904ae958cc1b512a +msgid "" +"the created element. To actually bind it to the DOM, use " +":meth:`Xml.append_child`." +msgstr "" + +#: ../../xml-class.rst:324 389df01cef2c4d66b9de220b4cc87ca6 +msgid "Insert the given element `elem` before this node." +msgstr "" + +#: ../../xml-class.rst:326 ../../xml-class.rst:332 +#: 1ed21b3334994d7bbbc9764862bcf4f6 600cfd70bbe74df6877a4b86b38f1ebb +msgid "some :ref:`Xml` element." +msgstr "" + +#: ../../xml-class.rst:330 e5458cc6669144b7bfdf2343f0c21e74 +msgid "Insert the given element `elem` after this node." +msgstr "" + +#: ../../xml-class.rst:336 42abfb8ab4174455a80a025ce97bd50c +msgid "" +"Make a copy of this node, which then may be appended (using " +":meth:`Xml.append_child`) or inserted (using one of " +":meth:`Xml.insert_before`, :meth:`Xml.insert_after`) in this DOM." +msgstr "" + +#: ../../xml-class.rst:338 b5252a0bf4364fae8cf35e1e9e7d0383 +msgid "the clone (:ref:`Xml`) of the current node." +msgstr "" + +#: ../../xml-class.rst:342 362b5a14f7fd43b8a4be84f6b6759549 +msgid "Remove this node from the DOM." +msgstr "" + +#: ../../xml-class.rst:347 87f726733b6b4164ae7d762eb87f82f9 +msgid "For debugging purposes, print this node's structure in a simplified form." +msgstr "" + +#: ../../xml-class.rst:351 ba4e72c688cb4136b4f2819b163f141d +msgid "" +"Under the current node, find the first node with the given `tag`, " +"attribute `att` and value `match`." +msgstr "" + +#: ../../xml-class.rst:353 0eb8c23c7e404d0f8266bdd5afc90f1d +msgid "restrict search to this tag. May be `None` for unrestricted searches." +msgstr "" + +#: ../../xml-class.rst:354 e85128004d5248e39422fe39444ba26e +msgid "check this attribute. May be `None`." +msgstr "" + +#: ../../xml-class.rst:355 3a104232d8d8490bb8bb68707170fe0d +msgid "the desired attribute value to match. May be `None`." +msgstr "" + +#: ../../xml-class.rst:357 ../../xml-class.rst:364 +#: 5f386373c6214610aa33071db5466757 e29314d184624c83a397fe0d6ece01d9 +msgid ":ref:`Xml`." +msgstr "" + +#: ../../xml-class.rst:358 38c0470acdf04c86abfcedf9fe0c0b47 +msgid "`None` if nothing found, otherwise the first matching node." +msgstr "" + +#: ../../xml-class.rst:362 27dc6f1158ee4ae1ab5b5ee699711efb +msgid "" +"Continue a previous :meth:`Xml.find` (or :meth:`find_next`) with the same" +" values." +msgstr "" + +#: ../../xml-class.rst:365 abf8144df2e74b2691806ff1de2952fe +msgid "`None` if none more found, otherwise the next matching node." +msgstr "" + +#: ../../xml-class.rst:378 40847870fc8148d0813cf916ab8843c0 +msgid "Check if a text node." +msgstr "" + +#: ../../xml-class.rst:402 53dbcceafddb48ffb942b33e36196bd8 +msgid "Setting Text properties" +msgstr "" + +#: ../../xml-class.rst:404 dc2cc7b945f844119dedecfe84cdf6dc +msgid "" +"In HTML tags can be nested such that innermost text **inherits " +"properties** from the tag enveloping its parent tag. For example " +"`

some bold textthis is bold and italicregular text

`." +msgstr "" + +#: ../../xml-class.rst:406 170b31327e6942bab73827a94f772b2b +msgid "" +"To achieve the same effect, methods like :meth:`Xml.set_bold` and " +":meth:`Xml.set_italic` each open a temporary :htmlTag:`span` with the " +"desired property underneath the current node." +msgstr "" + +#: ../../xml-class.rst:408 1589a3ff75a54034bb3aba5ae73b9048 +msgid "" +"In addition, these methods return there parent node, so they can be " +"concatenated with each other." +msgstr "" + +#: ../../xml-class.rst:413 9aac54ddfa0142bfb1e6966cbe1b4b1a +msgid "Context Manager support" +msgstr "" + +#: ../../xml-class.rst:414 37fa0cacd232431c8502088e2fd24017 +msgid "The standard way to add nodes to a DOM is this::" +msgstr "" + +#: ../../xml-class.rst:427 8b079fb6a7d7433681981c09a7afe0b8 +msgid "" +"Methods that are flagged as \"context managers\" can conveniently be used" +" in this way::" +msgstr "" + +#: ../../footer.rst:46 28d16ed4d4324a5fa5f2b048fb351902 +msgid "This documentation covers all versions up to |version|." +msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/znames.mo b/docs/locales/ko/LC_MESSAGES/znames.mo new file mode 100644 index 0000000000000000000000000000000000000000..17804c43c61fdbaf897cd8c6d9175d53032ed0c7 GIT binary patch literal 424 zcmYjN$xg#C5G@j?9659Ffm@l7MTN>;)Rd$UDQ=@QAi>RT-4ICa$aWCrKlnYq1qTr2 zNh8ghd9!|=9Dj5Sj*OieJ8Q{5oE!h$B%zI^QarP@hIj+_OsZ0FjM6=6(r|`c+q<-{ ztc=w{Y9Oj8H!y7q1-Zb;N*6g?OGdS+fsks3k>_|la9!|v$n&x9cO3&Ggp9qGZSP;* zLlk5{77zyLc7aLUeO$~VE1^n5E-6s*yWDKkmpGSR^LV;e6M2tZTtF z<7SmVAKLPgE+VM~&V>|DbEv-ZBXhUyDu23yk`!Qd>8SGiiQf9=FG6 PN>{8xp6xoeZ*{%^F;IE# literal 0 HcmV?d00001 diff --git a/docs/locales/ko/LC_MESSAGES/znames.po b/docs/locales/ko/LC_MESSAGES/znames.po new file mode 100644 index 000000000..a82faf2f1 --- /dev/null +++ b/docs/locales/ko/LC_MESSAGES/znames.po @@ -0,0 +1,108 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2015-2025, Artifex +# This file is distributed under the same license as the PyMuPDF package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PyMuPDF 1.26.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ko\n" +"Language-Team: ko \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.10.3\n" + +#: ../../header.rst:-1 0eb4a369e5b94c7489997eb18eb43347 +msgid "Artifex" +msgstr "" + +#: ../../header.rst:-1 d0b7be7b87414f0dacea935473d04f43 +msgid "" +"PyMuPDF is a high-performance Python library for data extraction, " +"analysis, conversion & manipulation of PDF (and other) documents." +msgstr "" + +#: ../../header.rst:-1 caca777a734049198ad1a788ab3304f9 +msgid "" +"PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " +"PDF Splitting, PDF Creation, Pyodide, PyScript" +msgstr "" + +#: ../../znames.rst:7 083b7e0a5a2b460f8da6d411d620371a +msgid "Deprecated Names" +msgstr "" + +#: ../../znames.rst:9 e3a203bb6f834ba0a39fa9d32da05a58 +msgid "" +"The original naming convention for methods and properties has been " +"\"camelCase\". Since its creation around 2013, a tremendous increase of " +"functionality has happened in PyMuPDF -- and with it a corresponding " +"increase in classes, methods and properties. In too many cases, this has " +"led to non-intuitive, illogical and ugly names, difficult to memorize or " +"guess." +msgstr "" + +#: ../../znames.rst:11 d001aeecdacb4bd59a62961dbc1370dd +msgid "" +"A few versions ago, I therefore decided to shift gears and switch to a " +"\"snake_cased\" naming standard. This was a major effort, which needed a " +"step-wise approach. I think am done with it now (version 1.18.14)." +msgstr "" + +#: ../../znames.rst:14 6f07346687c14dbb83e38186df94b743 +msgid "" +"The following list maps deprecated names to their new versions. For " +"example, property `pageCount` became `page_count` in the :ref:`Document` " +"class. There also are less obvious name changes, e.g. method `getPNGdata`" +" was renamed to `tobytes` in the :ref:`Pixmap` class." +msgstr "" + +#: ../../znames.rst:16 cc7e51d7a5144cd290ff0b79249d442c +msgid "" +"Names of classes (camel case) and package-wide constants (the majority is" +" upper case) remain untouched." +msgstr "" + +#: ../../znames.rst:18 6e79bdebc3d2434394db7e65ce997c71 +msgid "" +"Old names will remain available as deprecated aliases through MuPDF " +"version 1.19.0 and **be removed** in the version that follows it - " +"probably version 1.20.0, but this depends on upstream decisions (MuPDF)." +msgstr "" + +#: ../../znames.rst:20 dbf4b6c8f3134ca596bd0a822ffd2e9b +msgid "" +"Starting with version 1.19.0, we will issue deprecation warnings on " +"`sys.stderr` like `Deprecation: 'newPage' removed from class 'Document' " +"after v1.19.0 - use 'new_page'.` when aliased methods are being used. " +"Using a deprecated property will not cause this type of warning." +msgstr "" + +#: ../../znames.rst:22 2f0d5cce9e2e4f5e8541eb4b6fc686ed +msgid "" +"Starting immediately, all deprecated objects (methods and properties) " +"will show a copy of the original's docstring, **prefixed** with the " +"deprecation message, for example::" +msgstr "" + +#: ../../znames.rst:39 8e4f2cae0e38499bbf0543f4bdfb1885 +msgid "" +"There is a utility script `alias-changer.py `_ which can be used to " +"do mass-renames in your scripts. It accepts either a single file or a " +"folder as argument. If a folder is supplied, all its Python files and " +"those of its subfolders are changed. Optionally, backups of the scripts " +"can be taken." +msgstr "" + +#: ../../footer.rst:46 52ab1685187a4ce284f0a14818fcf934 +msgid "This documentation covers all versions up to |version|." +msgstr "" + From 36bc4d687b26c6297e639ef72f36cce9415ec8a2 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 00:12:56 +0000 Subject: [PATCH 02/23] Example translation #1 --- docs/locales/ko/LC_MESSAGES/page.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/locales/ko/LC_MESSAGES/page.po b/docs/locales/ko/LC_MESSAGES/page.po index 7ebb254f7..6733cd4f1 100644 --- a/docs/locales/ko/LC_MESSAGES/page.po +++ b/docs/locales/ko/LC_MESSAGES/page.po @@ -2855,7 +2855,7 @@ msgstr "" msgid "" "PDF only: Draw a circle around *center* (:data:`point_like`) with a " "radius of *radius*. See :meth:`Shape.draw_circle`." -msgstr "" +msgstr "PDF 전용: 중심(point_like)을 기준으로 반지름이 radius인 원을 그립니다. Shape.draw_circle() 참조." #: ../../page.rst:990 2e0189701fa74750b9dacd5303fc0bd4 msgid "" From ef000bcb5a79308f129a73c92269cd544b181cb8 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 00:14:57 +0000 Subject: [PATCH 03/23] Example translation #2 --- docs/locales/ko/LC_MESSAGES/page.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/locales/ko/LC_MESSAGES/page.po b/docs/locales/ko/LC_MESSAGES/page.po index 6733cd4f1..b9e986d1b 100644 --- a/docs/locales/ko/LC_MESSAGES/page.po +++ b/docs/locales/ko/LC_MESSAGES/page.po @@ -2855,7 +2855,7 @@ msgstr "" msgid "" "PDF only: Draw a circle around *center* (:data:`point_like`) with a " "radius of *radius*. See :meth:`Shape.draw_circle`." -msgstr "PDF 전용: 중심(point_like)을 기준으로 반지름이 radius인 원을 그립니다. Shape.draw_circle() 참조." +msgstr "PDF 전용: 중심(:data:`point_like`)을 기준으로 반지름이 *radius* 인 원을 그립니다. :meth:`Shape.draw_circle` 참조." #: ../../page.rst:990 2e0189701fa74750b9dacd5303fc0bd4 msgid "" From 1404d454532e91218a0ac9421cc68249f6ea354d Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 00:41:58 +0000 Subject: [PATCH 04/23] typo fix --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index aa686b6e3..8326bcc04 100644 --- a/docs/README.md +++ b/docs/README.md @@ -54,7 +54,7 @@ This will serve the docs on a localhost and auto-update the pages live as you ma PyMuPDF docs can be delivered in multiple languages - English, Japanese & Korean. -To add a new langauge, e.g. Korean, use: +To add a new language, e.g. Korean, use: `sphinx-build -b gettext . _build/gettext` `sphinx-intl update -p _build/gettext -l ko` From 1d4e885d61f902b2ff28670ff99688dd52f7fcb3 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 13:35:28 +0000 Subject: [PATCH 05/23] Adds dedicated locale yaml file for readthedocs --- docs/locales/ko/.readthedocs.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/locales/ko/.readthedocs.yaml diff --git a/docs/locales/ko/.readthedocs.yaml b/docs/locales/ko/.readthedocs.yaml new file mode 100644 index 000000000..c870734b0 --- /dev/null +++ b/docs/locales/ko/.readthedocs.yaml @@ -0,0 +1,25 @@ +# .readthedocs.yaml +# Note: We use this dedicated yaml inside the locales/ko folder as RTD was having problems building a PDF +# This yaml is the same as the main one - it just removes the PDF build option + +# Required +version: 2 + +# Set the version of Python and other tools you might need +build: + os: ubuntu-20.04 + tools: + python: "3.9" + # You can also specify other tool versions: + # nodejs: "16" + # rust: "1.55" + # golang: "1.17" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/conf.py + +# Optionally declare the Python requirements required to build your docs +python: + install: + - requirements: docs/requirements.txt From 6192ec00747852aff7a78e07a3559af5f3614efc Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 17:08:25 +0000 Subject: [PATCH 06/23] Syncs po files with recent changes on main branch. --- .../ko/LC_MESSAGES/pymupdf-layout/index.po | 370 ++-- .../locales/ko/LC_MESSAGES/pymupdf4llm/api.po | 1495 +++++++++-------- .../ko/LC_MESSAGES/pymupdf4llm/index.po | 107 +- 3 files changed, 1028 insertions(+), 944 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po index d7f656bf2..6cd9defd3 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-11-26 17:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 69bdc5540cdf44a780d55453fad1a7fa +#: ../../header.rst:-1 55554f175cc249878ead6e3e984a2e8a msgid "Artifex" msgstr "" -#: ../../header.rst:-1 75b189cbfec540cfa54ca608b1023c06 +#: ../../header.rst:-1 6aa2efac349e4bcab64dd67c0a0d5b13 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 c2034d5aea3c471fa5ec4cb90d2c2101 +#: ../../header.rst:-1 fc386a5037ac4a0ba4239f1c51308e56 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -171,28 +171,27 @@ msgstr "" msgid "Extending Capability" msgstr "" -#: ../../pymupdf-layout/index.rst:108 f3bec49e1ee042caad2ba1f1f8d07230 +#: ../../pymupdf-layout/index.rst:107 f3bec49e1ee042caad2ba1f1f8d07230 msgid "Using with Pro" msgstr "" -#: ../../pymupdf-layout/index.rst:110 1a6a4c0ada2842d588768a849fe3c7f3 +#: ../../pymupdf-layout/index.rst:109 1a6a4c0ada2842d588768a849fe3c7f3 msgid "" "We are able to extend |PyMuPDF Layout| to work with |PyMuPDF Pro| and " "thus increase our capability by allowing Office documents to be provided " -"as input files. In this case all we have to do is to include the import " -"for |PyMuPDF Pro| and unlock it before we import & activate |PyMuPDF " -"Layout|::" +"as input files. In this case all we have to do is to add the import for " +"|PyMuPDF Pro| and unlock it::" msgstr "" -#: ../../pymupdf-layout/index.rst:117 695ebd9778304b3da362108ea2e9695e +#: ../../pymupdf-layout/index.rst:116 695ebd9778304b3da362108ea2e9695e msgid "Now we can happily load Office files and convert them as follows::" msgstr "" -#: ../../pymupdf-layout/index.rst:124 14fdcdcd4aab4335919c50efc4749185 +#: ../../pymupdf-layout/index.rst:122 14fdcdcd4aab4335919c50efc4749185 msgid "OCR support" msgstr "" -#: ../../pymupdf-layout/index.rst:126 99eb4f65329d45c7bb6eaf035c255259 +#: ../../pymupdf-layout/index.rst:124 99eb4f65329d45c7bb6eaf035c255259 msgid "" "The new layout-sensitive PyMuPDF4LLM version also evaluates whether a " "page would benefit from applying OCR to it. If its heuristics come to " @@ -200,262 +199,199 @@ msgid "" "invoked. Its results are then handled like normal page content." msgstr "" -#: ../../pymupdf-layout/index.rst:128 92a0df16770d46a1be17c84a05ee6af8 -msgid "If Tesseract is not installed on your platform, no OCR is attempted." +#: ../../pymupdf-layout/index.rst:126 cdbf9a9f1f5341cc96aaaa1a6a74434f +msgid "" +"If a page contains (roughly) no text at all, but is covered with images " +"or many character-sized vectors, a check is made using `OpenCV " +"`_ whether text is *probably* " +"detectable on the page at all. This is done to tell apart image-based " +"text from ordinary pictures (like photographies)." msgstr "" -#: ../../pymupdf-layout/index.rst:137 fddcc1ea96e64c658554704bb141490b -msgid "PyMuPDF Layout and parameter caveats" +#: ../../pymupdf-layout/index.rst:128 8c8ba1c1b2bc4875b04cc60b98293a08 +msgid "" +"If the page does contain text but too many characters are unreadable " +"(like \"�����\"), OCR is also executed, but **for the affected text areas" +" only** -- not the full page. This way, we avoid losing already existing " +"text and other content like images and vectors." msgstr "" -#: ../../pymupdf-layout/index.rst:140 7900f027d5e94aefb22c02f4ba83a6b2 +#: ../../pymupdf-layout/index.rst:130 225a390ebce94321a090f94ab2165c16 msgid "" -"|PyMuPDF Layout| uses |PyMuPDF4LLM| for its interface. However, if you " -"have imported ``Layout`` then the following caveats apply to the method " -"parameters:" +"For these heuristics to work we need both, an existing Tesseract " +"installation and the availability of OpenCV in the Python environment. If" +" either is missing, no OCR is attempted at all." msgstr "" -#: ../../pymupdf-layout/index.rst:144 0642cf3b9b4842168a9b83a1d06e4eac -msgid "Parameter" +#: ../../pymupdf-layout/index.rst:137 fddcc1ea96e64c658554704bb141490b +msgid "|PyMuPDF Layout| and |PyMuPDF4LLM| parameter caveats" msgstr "" -#: ../../pymupdf-layout/index.rst:144 3eb44a2de17a445fb8b8ed8245e03cc5 -msgid "to_markdown" +#: ../../pymupdf-layout/index.rst:139 b7f33df2c3974ea1bbead613286f3639 +msgid "" +"If you have imported ``pymupdf.layout``, |PyMuPDF4LLM| changes its " +"behavior in various areas quite significantly. New methods become " +"available and also some features are no longer supported. Please visit " +"`this site `_ for" +" a detailed description of the changes. That web site is being kept up to" +" date while we continue to work on improvements." msgstr "" -#: ../../pymupdf-layout/index.rst:144 a11e031283df470a903feff06d45481b -msgid "to_text" +#: ../../footer.rst:46 fcc43bbf382644f6928a40bc9aea37c1 +msgid "This documentation covers all versions up to |version|." msgstr "" -#: ../../pymupdf-layout/index.rst:144 0cbc4803367040939fc85ff509844af3 -msgid "to_json" -msgstr "" +#~ msgid "" +#~ "We are able to extend |PyMuPDF " +#~ "Layout| to work with |PyMuPDF Pro| " +#~ "and thus increase our capability by " +#~ "allowing Office documents to be provided" +#~ " as input files. In this case " +#~ "all we have to do is to " +#~ "include the import for |PyMuPDF Pro| " +#~ "and unlock it before we import &" +#~ " activate |PyMuPDF Layout|::" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:144 20e2c633fff34b4ba62ca527052c8079 -msgid "Comments" -msgstr "" +#~ msgid "If Tesseract is not installed on your platform, no OCR is attempted." +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:146 a034d76a566b404d95e9aac2fc39a171 -msgid "doc" -msgstr "" +#~ msgid "PyMuPDF Layout and parameter caveats" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:146 ../../pymupdf-layout/index.rst:148 -#: ../../pymupdf-layout/index.rst:150 ../../pymupdf-layout/index.rst:154 -#: ../../pymupdf-layout/index.rst:156 ../../pymupdf-layout/index.rst:160 -#: ../../pymupdf-layout/index.rst:173 ../../pymupdf-layout/index.rst:179 -#: ../../pymupdf-layout/index.rst:181 ../../pymupdf-layout/index.rst:195 -#: ../../pymupdf-layout/index.rst:203 068818a44d2f468db01eb1e3340b2ddf -#: 0690c3cfbb2a443cb7421db631e24e13 08eef9a5c6914160a3445d125b84c640 -#: 13e87a62cf3d4fb59de03d87cae59ea1 1fa52c19198247198101c560907493e5 -#: 2996ea664103455f8649896a925bff10 323af2167afa47579fb625940d5a4524 -#: 340f851a7c23432b8a36e4a6540166fe 3c6cdb8a60d742f7b935bccb0c7def6e -#: 4a30dc9de6d7441cb0ddb27bd890ae37 4ebd87d9dd5e4abbbfbd54dadb71c611 -#: 4fcc8cb87e474b05819c6a4b6bb25178 50303c1ffa214918b48f10a8933d50e1 -#: 521023f41c934cadb610eebfa8a7f081 615d79ebbb344a7a9e9c7d0dfd223fc0 -#: 773ef62fb56a453b962abd09a084a2dd 77d6080909844423a0f470a49866d84a -#: 8d5b8d3f28bf4bff9396fc3bcedb4dd2 8df37e5f9251457fab0aff8602c4b9fd -#: 986d476859504964a9a5ebef71fd0075 99e5b687820f4455960421ab4944cc00 -#: 99f5ec6922d148898c805085e81bb83f b2819d7080834bd3ba45a2854683fb39 -#: b3d9d1c0aab34f1c827e97178a3592b0 c0a638c053e74162815b811edbc008e4 -#: c9455f9401ef41fb857cbab2ba3a6bc9 ce153f4e6d844cf2923ecd2c9f263012 -#: d99fa30a6c204ad2b6c9be48f4f0ef40 ddb3f88f90a343c2937c199c0437e4f5 -#: e3b2457835f84671b58ecc288178d5b1 ec2d2d58e4f3425b874a4ca45c5d2d36 -msgid "✔️" -msgstr "" +#~ msgid "" +#~ "|PyMuPDF Layout| uses |PyMuPDF4LLM| for " +#~ "its interface. However, if you have " +#~ "imported ``Layout`` then the following " +#~ "caveats apply to the method parameters:" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:148 af76689881b9484896f1889b34284589 -msgid "header" -msgstr "" +#~ msgid "Parameter" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:148 ../../pymupdf-layout/index.rst:150 -#: 54047d35dd0d4340ad828abcc3d4ae73 6957d49d6a86449c9eac38b2a54e6cc3 -msgid "ignored" -msgstr "" +#~ msgid "to_markdown" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:148 ../../pymupdf-layout/index.rst:150 -#: 4ab4d0c7a8a24f25986f9f0da74a34bf 57878a2faa184f9c83e5541e0e238e5b -msgid "**new:** replaces ``margins``" -msgstr "" +#~ msgid "to_text" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:150 a9f77be1d664483ba6b37c632650f97b -msgid "footer" -msgstr "" +#~ msgid "to_json" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:152 d0aa12aa4f00428986bd9f1bfafb57ef -msgid "detect_bg_color" -msgstr "" +#~ msgid "Comments" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:152 ../../pymupdf-layout/index.rst:162 -#: ../../pymupdf-layout/index.rst:164 ../../pymupdf-layout/index.rst:167 -#: ../../pymupdf-layout/index.rst:169 ../../pymupdf-layout/index.rst:171 -#: ../../pymupdf-layout/index.rst:175 ../../pymupdf-layout/index.rst:177 -#: ../../pymupdf-layout/index.rst:183 ../../pymupdf-layout/index.rst:185 -#: ../../pymupdf-layout/index.rst:199 ../../pymupdf-layout/index.rst:201 -#: 037cf03b45de4c73a42ca68f8b58e8d8 0c4f9b0a754a4130875fadd22859ceee -#: 177bda5be8d74b74a02a312beb496344 269fee74fba044ca8acb5475966e1115 -#: 2c220593bf574b1d85c715883132d849 329fa547d17240a68f456272d25e433f -#: 3d36e353b9c4414088ed45fd637f555f 443ac9cbd7884660acbc1f4768f37cc6 -#: 4629f1f4dc7947779adb8d1b3018fae0 5453a421010344e4baffffc324a79e89 -#: 54f2ca47f5a247c5a8fa9a22636175dd 5688e49e2a0942cb87ee1a84c12e5b9f -#: 575f36da9b824300b73aee4031c0cd50 577a53d6cb094743b8251dfec25e426b -#: 5ed39c1ecda44e6db9e9a5483c1cf8cc 617e58b82cb94261bfd565e709aa011f -#: 90c9c546859c43919105a8a6c6486072 a67a9ecd7cf3486cb7893dedc9896ae9 -#: a6c5fdafe0cc4d7dab5b70a076cb2bfc a6c888b311da43159bb397ef13d60f49 -#: a88f92dc304b45c39840633b1d3bfd88 b475e4ab0ea241bda89d6d58b97f25d1 -#: bf9f6bea83754ed692f50be05e399043 c1334286266a4c8a9af242a549f21c8e -#: c692ae8281e04d2cb72f39cb96fcfb76 cc97ee937e26408ebd168280efee9ee3 -#: d4909e6b4ec248b7bd8d88a9e5297910 e4ee587fe79a4818b20273582191d961 -#: e768cb4c266a4fc8a76023f1ae232acb eceffb2e674145e29657be7bbf85f53d -#: ed537ecf65b445e686f3b11090ea6a54 f3a11a7308ce4d3ebd50335ad46594f7 -#: f47af19af03a45979d0d8062269cdce8 f58e9d907c3c4b0385c02fec7667056a -#: f770075c35b242128e597c9a21787dd6 fcb03e7a0a704153bc6499a549a66899 -msgid "❌" -msgstr "" +#~ msgid "doc" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:154 0f49a5f2a10b4d3483fe454f5d4127ff -msgid "dpi" -msgstr "" +#~ msgid "✔️" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:156 2ce7c0840b074f9f89c879b7c516f916 -msgid "embed_images" -msgstr "" +#~ msgid "header" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:158 9fae796ddf3d4f94817ad1ec8104217d -msgid "extract_words" -msgstr "" +#~ msgid "ignored" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:158 ../../pymupdf-layout/index.rst:187 -#: ../../pymupdf-layout/index.rst:189 ../../pymupdf-layout/index.rst:191 -#: ../../pymupdf-layout/index.rst:193 ../../pymupdf-layout/index.rst:197 -#: 02cf7166619e45268ae2f38531587a19 030575d0b43f4fdcb1ac1f5e90e7f37a -#: 04fcdcb70c51491a95b69936bef8b580 07b9b24696f24478abc7cf1859b9232b -#: 3d410b7559fe4ad0a91f3f28649af4f6 439b7fb5351e457fb90b5d2737f7f6f5 -#: 452365aff045448496f6b44cbf4df358 58b4f806d86442099784e34b30f9049e -#: 691d26f0c3864ceabd96fb1937e3bbd7 85f711e000cc440d94922f7cf086d5a7 -#: 88d45b4aa2ac43a0916160fedeb12e98 a3859bcf09ed4d268230d76c7fe04fed -#: a824e96fb98e4fc3ba6bd28549fbf4fa b68c441f0baf44d3903525dedcf01258 -#: cc677c9bea974de48d747482441b9be6 eb7579f48b2244b3a7fb30fe80410fed -#: eefc53bf898643739dbb14279ab26b39 ffd983ad5e524696ba650d59baaf5048 -msgid "later" -msgstr "" +#~ msgid "**new:** replaces ``margins``" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:158 ../../pymupdf-layout/index.rst:187 -#: ../../pymupdf-layout/index.rst:189 ../../pymupdf-layout/index.rst:191 -#: ../../pymupdf-layout/index.rst:193 ../../pymupdf-layout/index.rst:197 -#: 6a12374d878342418d29f3fc630535f1 729a892af35947fb91c98511c6be0b08 -#: b69eb7177bce4a7eb31590c9bc32d45c e73ee03b9f244390b91624ded6aac3a7 -#: f1d10bcdcaac4a0f86fbe3dcab155ff9 fab9fa35a7d14d1aa32cbf65818a2c16 -msgid "postponed" -msgstr "" +#~ msgid "footer" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:160 0a49f78e5c62484094cc1c85d6741a7b -msgid "filename" -msgstr "" +#~ msgid "detect_bg_color" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:162 d04a4d1509e14038860443d41643af9f -msgid "fontsize_limit" -msgstr "" +#~ msgid "❌" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:162 ../../pymupdf-layout/index.rst:167 -#: ../../pymupdf-layout/index.rst:169 ../../pymupdf-layout/index.rst:175 -#: ../../pymupdf-layout/index.rst:177 ../../pymupdf-layout/index.rst:183 -#: ../../pymupdf-layout/index.rst:185 ../../pymupdf-layout/index.rst:199 -#: 07ed59e3b5b24c07ba338008f9e881d9 1836526077e24ef1ac357b066984045d -#: 3d7c7766402740949e270a384e37f5a7 6060f327ed4b4672a2dc22f1268c1809 -#: ae9bf45f059b4b3cae574253cc9fbea4 b7a641f0c7f24a4e9d4f3a528be21093 -#: d5218d9c1d624865be5039e9dede61c5 fe36fba64a64462a917a32f226bcc3eb -msgid "obsolete" -msgstr "" +#~ msgid "dpi" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:164 b6282276cfba4dc1b37b41d5e2913e29 -msgid "force_text" -msgstr "" +#~ msgid "embed_images" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:164 f0b935a546764c8a96239ef8111a1f79 -msgid "text in pictures is always ignored" -msgstr "" +#~ msgid "extract_words" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:167 9fe7a34b4a014bc2afb30f28487f9b52 -msgid "graphics_limit" -msgstr "" +#~ msgid "later" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:169 1ac6874d5d4a48a18ce2c93197fde65d -msgid "hdr_info" -msgstr "" +#~ msgid "postponed" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:171 72682ae27da04948b9f988b564308e9d -msgid "ignore_alpha" -msgstr "" +#~ msgid "filename" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:173 f2d8cde52f9948dda58ace10f5e865d1 -msgid "ignore_code" -msgstr "" +#~ msgid "fontsize_limit" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:175 60c85621f6ff4506a460423aaab9a67f -msgid "ignore_graphics" -msgstr "" +#~ msgid "obsolete" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:177 9513eed707794239ad97baa9cfd136e7 -msgid "ignore_images" -msgstr "" +#~ msgid "force_text" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:179 e6e3ea6a21814d51a7ade7192e23cf98 -msgid "image_format" -msgstr "" +#~ msgid "text in pictures is always ignored" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:181 910d2628948d47fab9e9baade593f743 -msgid "image_path" -msgstr "" +#~ msgid "graphics_limit" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:183 ba6e60df5c414e6fa3f372adedaf0f7d -msgid "image_size_limit" -msgstr "" +#~ msgid "hdr_info" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:185 3b92ae8dbd114e9db295e803e0f65aaf -msgid "margins" -msgstr "" +#~ msgid "ignore_alpha" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:187 31b9f54461174d0db4d217067064a9c0 -msgid "page_chunks" -msgstr "" +#~ msgid "ignore_code" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:189 d75cd782ef7c48ab910d8db93fa073c9 -msgid "page_height" -msgstr "" +#~ msgid "ignore_graphics" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:191 63083e192eea418f9db2d138ec32e2bb -msgid "page_separators" -msgstr "" +#~ msgid "ignore_images" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:193 bab876688b124ad886c4e738e7ab5eeb -msgid "page_width" -msgstr "" +#~ msgid "image_format" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:195 bb085d405a43484486042257ff985bbf -msgid "pages" -msgstr "" +#~ msgid "image_path" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:197 c13f0a229d2e44babf233bb21b554a56 -msgid "show_progress" -msgstr "" +#~ msgid "image_size_limit" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:199 9fdc17aff7f9403b8f46890e9f09cd56 -msgid "table_strategy" -msgstr "" +#~ msgid "margins" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:201 111d276552b24d8aa9f46214e58ca21a -msgid "use_glyphs" -msgstr "" +#~ msgid "page_chunks" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:201 95ec15fc72054b6699de7228b0ce9bc9 -msgid "always show �" -msgstr "" +#~ msgid "page_height" +#~ msgstr "" -#: ../../pymupdf-layout/index.rst:203 5b9fb335e14843328c32dac736894c1e -msgid "write_images" -msgstr "" +#~ msgid "page_separators" +#~ msgstr "" -#: ../../footer.rst:46 fcc43bbf382644f6928a40bc9aea37c1 -msgid "This documentation covers all versions up to |version|." -msgstr "" +#~ msgid "page_width" +#~ msgstr "" + +#~ msgid "pages" +#~ msgstr "" + +#~ msgid "show_progress" +#~ msgstr "" + +#~ msgid "table_strategy" +#~ msgstr "" + +#~ msgid "use_glyphs" +#~ msgstr "" + +#~ msgid "always show �" +#~ msgstr "" + +#~ msgid "write_images" +#~ msgstr "" diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po index c170182bb..ea482ab1a 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-11-26 17:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 33b51be1a3fd400bb40cf8f712ffa8bc +#: ../../header.rst:-1 82786ea5867f4818b6c5c7b3e8a55ef0 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 39bd7529ca584c02af4af5ea09626b14 +#: ../../header.rst:-1 1a6aac6ec3e34205b07c2f37fdc69e13 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 ce702b4c4ac14bb3b521ee52767b9645 +#: ../../header.rst:-1 ab4f1a2eeccd4098ae98718eac840f2e msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -43,690 +43,811 @@ msgstr "" msgid "The |PyMuPDF4LLM| API" msgstr "" -#: ../../pymupdf4llm/api.rst:17 6e87f5a4e1a44605b75b0eed1670adc7 -msgid "Prints the version of the library." -msgstr "" - -#: ../../pymupdf4llm/api.rst:27 6713d68d075249318098787f8ebab5ab -msgid "" -"Reads the pages of the file and outputs the text of its pages in |JSON| " -"format." -msgstr "" - -#: ../../pymupdf4llm/api.rst 1491979de5344cbe840b1920c11c75f7 -#: 23081d42741344f3ba3d30b671c6b8aa 5386b729aba74f68a0da40e4c33d2fa5 -#: 5ca0d15e7bc84bec9185a71d076a5fc5 b34786abdfc2468bb4587550ce7f1a91 -#: faf9b5ec738347e2abdd6dce0938b6c2 -msgid "Parameters" -msgstr "" - -#: ../../pymupdf4llm/api.rst:29 ../../pymupdf4llm/api.rst:77 -#: ../../pymupdf4llm/api.rst:172 1914db31df714f3b853ff56e0ac631e2 -#: 3f30ef9516814e46b7e716ec8e7605b4 dd4aa884dc9e4ee7b8f93b34c10e2879 -msgid "" -"the file, to be specified either as a file path string, or as a |PyMuPDF|" -" :class:`Document` (created via `pymupdf.open`). In order to use " -"`pathlib.Path` specifications, Python file-like objects, documents in " -"memory etc. you **must** use a |PyMuPDF| :class:`Document`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:31 fd97596633aa43669efcc45eed086a93 -msgid "" -"specify the desired image resolution in dots per inch. Default value is " -"150." -msgstr "" - -#: ../../pymupdf4llm/api.rst:33 ../../pymupdf4llm/api.rst:109 -#: 50c895251d984ff79f0115d1217dd73c eb60e14666724534a2ba0d929a87d223 -msgid "" -"specify the desired image format via its extension. Default is \"png\" " -"(portable network graphics). Another popular format may be \"jpg\". " -"Possible values are all :ref:`supported output formats " -"`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:35 ../../pymupdf4llm/api.rst:111 -#: 112525a23b4d407687769eebc8c36c1b 47a71d8bfa964db4a3e4bf5eccc1a08d -msgid "" -"store images in this folder. Relevant if `write_images=True`. Default is " -"the path of the script directory." -msgstr "" - -#: ../../pymupdf4llm/api.rst:37 ../../pymupdf4llm/api.rst:143 -#: ../../pymupdf4llm/api.rst:180 0c8d508927e345c294c0e52dea7d8742 -#: 5c6234b4359548cf9047308e5aa5e85d ffc2792c5a9943b2a205d39f82eb0a26 -msgid "" -"optional, the pages to consider for output (caution: specify 0-based page" -" numbers). If omitted (`None`) all pages are processed." -msgstr "" - -#: ../../pymupdf4llm/api.rst:42 d607751b6e6b4bf4a197ed90eb3382d4 -msgid "" -"Please note that page ``header`` / ``footer`` exclusion is not applicable" -" to |JSON| output as it aims to always represent all data for the " -"included pages." -msgstr "" - -#: ../../pymupdf4llm/api.rst:75 9812053178d349d9a0bf26f0631c7d9a -msgid "" -"Reads the pages of the file and outputs the text of its pages in " -"|Markdown| format. How this should happen in detail can be influenced by " -"a number of parameters. Please note that **support for building page " -"chunks** from the |Markdown| text is supported." -msgstr "" - -#: ../../pymupdf4llm/api.rst:79 e0e7abe0ad424df7a5e1e515cd5df497 -msgid "" -"does a simple check for the general background color of the pages " -"(default is ``True``). If any text or vector has this color it will be " -"ignored. May increase detection accuracy." -msgstr "" - -#: ../../pymupdf4llm/api.rst:81 7d8c08728c8e46f8b4f495fba9f4c988 -msgid "" -"specify the desired image resolution in dots per inch. Relevant only if " -"`write_images=True`. Default value is 150." -msgstr "" - -#: ../../pymupdf4llm/api.rst:83 68997715f4354ca281cec1bd4066f3ec -msgid "" -"like `write_images`, but images will be included in the markdown text as " -"base64-encoded strings. Ignores `write_images` and `image_path` if used. " -"This may drastically increase the size of your markdown text." -msgstr "" - -#: ../../pymupdf4llm/api.rst:85 de13a21d25604cc58644b596d890eb11 -msgid "" -"a value of `True` enforces `page_chunks=True` and adds key \"words\" to " -"each page dictionary. Its value is a list of words as delivered by " -"PyMuPDF's `Page` method `get_text(\"words\")`. The sequence of the words " -"in this list is the same as the extracted text." -msgstr "" - -#: ../../pymupdf4llm/api.rst:87 4e0ba5ecb8f841b688c2c627aa667476 -msgid "" -"(New in v.0.0.19) Overwrites or sets the desired image file name of " -"written images. Useful when the document is provided as a memory object " -"(which has no inherent file name)." -msgstr "" - -#: ../../pymupdf4llm/api.rst:89 a298db4930294be3a4f98f81b7d0ad8d -msgid "" -"limit the font size to consider for text extraction. If the font size is " -"lower than what is set then the text won't be considered for extraction. " -"Default is `3`, meaning only text with a font size `>= 3` will be " -"considered for extraction." -msgstr "" - -#: ../../pymupdf4llm/api.rst:91 ../../pymupdf4llm/api.rst:176 -#: 2f62d707418b4b1ebb8386e2a8e12951 8e51763542334db8870295069b42df9b -msgid "" -"boolean to switch on/off footer content. This parameter controls whether " -"we want to include or omit the footer content from all the document " -"pages. Useful if the document has repetitive footer content which doesn't" -" add any value to the overall extraction data. Default is `True` meaning " -"that footer content will be considered." -msgstr "" - -#: ../../pymupdf4llm/api.rst:93 81d99b1cb5f941aa8f76f0555160e0ca -msgid "" -"generate text output even when overlapping images / graphics. This text " -"then appears after the respective image. If `write_images=True` this " -"parameter may be `False` to suppress repetition of text on images." -msgstr "" - -#: ../../pymupdf4llm/api.rst:95 2c94b2c08ace456ea56ccb130a17bd9e -msgid "" -"use this to limit dealing with excess amounts of vector graphics " -"elements. Scientific documents, or pages simulating text via graphics " -"commands may contain tens of thousands of these objects. As vector " -"graphics are analyzed for multiple purposes, runtime may quickly become " -"intolerable. With this parameter, all vector graphics will be ignored if " -"their count exceeds the threshold. **Changed in v0.0.19:** The page will " -"still be processed, and text, tables and images should be extracted." -msgstr "" - -#: ../../pymupdf4llm/api.rst:97 8f60985232c04a4082e8e747d218034b -msgid "" -"use this if you want to provide your own header detection logic. This may" -" be a callable or an object having a method named `get_header_id`. It " -"must accept a text span (a span dictionary as contained in " -":meth:`~.extractDICT`) and a keyword parameter \"page\" (which is the " -"owning :ref:`Page ` object). It must return a string \"\" or up to " -"6 \"#\" characters followed by 1 space. If omitted (`None`), a full " -"document scan will be performed to find the most popular font sizes and " -"derive header levels based on them. To completely avoid this behavior " -"specify `hdr_info=lambda s, page=None: \"\"` or `hdr_info=False`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:99 ../../pymupdf4llm/api.rst:174 -#: 0d2f15552e204d3f858326a925f5bd31 5f3982c7223341e7830bb1356b1ac08e -msgid "" -"boolean to switch on/off header content. This parameter controls whether " -"we want to include or omit the header content from all the document " -"pages. Useful if the document has repetitive header content which doesn't" -" add any value to the overall extraction data. Default is `True` meaning " -"that header content will be considered." -msgstr "" - -#: ../../pymupdf4llm/api.rst:101 e6c79d9046e24211b0f94cc290ec651a -msgid "" -"if ``True`` includes text even when completely transparent. Default is " -"``False``: transparent text will be ignored which usually increases " -"detection accuracy." -msgstr "" - -#: ../../pymupdf4llm/api.rst:103 3a244cdcfd854196a6e4a514fe8865ff -msgid "" -"if `True` then mono-spaced text does not receive special formatting. Code" -" blocks will no longer be generated. This value is set to `True` if " -"`extract_words=True` is used." -msgstr "" - -#: ../../pymupdf4llm/api.rst:105 165887daf2e34b78802fe050432e6056 -msgid "" -"(New in v.0.0.20) Disregard vector graphics on the page. This may help " -"detecting text correctly when pages are very crowded (often the case for " -"documents representing presentation slides). Also speeds up processing " -"time. This automatically prevents table detection." -msgstr "" - -#: ../../pymupdf4llm/api.rst:107 67d38ed2b2404f9a94b649a2b2dd3209 -msgid "" -"(New in v.0.0.20) Disregard images on the page. This may help detecting " -"text correctly when pages are very crowded (often the case for documents " -"representing presentation slides). Also speeds up processing time." -msgstr "" - -#: ../../pymupdf4llm/api.rst:113 4120a21ad74e43e08e88fab80f146e56 -#, python-format -msgid "" -"this must be a ``0 <= value < 1``. Images are ignored if `width / " -"page.rect.width <= image_size_limit` or `height / page.rect.height <= " -"image_size_limit`. For instance, the default value 0.05 means that to be " -"considered for inclusion, an image's width and height must be larger than" -" 5% of the page's width and height, respectively." -msgstr "" - -#: ../../pymupdf4llm/api.rst:115 418ca5e67f724ac087249542892fb0c5 -msgid "" -"a float or a sequence of 2 or 4 floats specifying page borders. Only " -"objects inside the margins will be considered for output. * `margin=f` " -"yields `(f, f, f, f)` for `(left, top, right, bottom)`. * `(top, bottom)`" -" yields `(0, top, 0, bottom)`. * To always read full pages " -"**(default)**, use `margins=0`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:115 127d16102cc34c94ab263c72e4f7ed03 -msgid "" -"a float or a sequence of 2 or 4 floats specifying page borders. Only " -"objects inside the margins will be considered for output." -msgstr "" - -#: ../../pymupdf4llm/api.rst:117 e1c2526cef8b4033806a039337db0dcd -msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:118 76957bc56f274019ab143dd0a40475f1 -msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:119 2ec1ba697670474f873741c1f7d47eef -msgid "To always read full pages **(default)**, use `margins=0`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:121 589f29af1fb44927974671d52a49fce7 -msgid "" -"if `True` the output will be a list of `Document.page_count` dictionaries" -" (one per page). Each dictionary has the following structure: - " -"**\"metadata\"** - a dictionary consisting of the document's metadata " -":attr:`Document.metadata`, enriched with additional keys " -"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" -" document), and **\"page_number\"** (1-based page number). - " -"**\"toc_items\"** - a list of Table of Contents items pointing to this " -"page. Each item of this list has the format `[lvl, title, pagenumber]`, " -"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " -"a 1-based page number. - **\"tables\"** - a list of tables on this page." -" Each item is a dictionary with keys \"bbox\", \"row_count\" and " -"\"col_count\". Key \"bbox\" is a `pymupdf.Rect` in tuple format of the " -"table's position on the page. - **\"images\"** - a list of images on the" -" page. This a copy of page method :meth:`Page.get_image_info`. - " -"**\"graphics\"** - a list of vector graphics rectangles on the page. This" -" is a list of boundary boxes of clustered vector graphics as delivered by" -" method :meth:`Page.cluster_drawings`. - **\"text\"** - page content as " -"|Markdown| text. - **\"words\"** - if `extract_words=True` was used. " -"This is a list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, " -"wno)` as delivered by `page.get_text(\"words\")`. The **sequence** of " -"these tuples however is the same as produced in the markdown text string " -"and thus honors multi-column text. This is also true for text in tables: " -"words are extracted in the sequence of table row cells." -msgstr "" - -#: ../../pymupdf4llm/api.rst:121 9562a8bc13e64d76a0a1ec065eab4cc8 -msgid "" -"if `True` the output will be a list of `Document.page_count` dictionaries" -" (one per page). Each dictionary has the following structure:" -msgstr "" - -#: ../../pymupdf4llm/api.rst:123 144282e9fb174b5a973a0a216b3f52c7 -msgid "" -"**\"metadata\"** - a dictionary consisting of the document's metadata " -":attr:`Document.metadata`, enriched with additional keys " -"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" -" document), and **\"page_number\"** (1-based page number)." -msgstr "" - -#: ../../pymupdf4llm/api.rst:125 b7aa7094d76642e68f696db57c2792cc -msgid "" -"**\"toc_items\"** - a list of Table of Contents items pointing to this " -"page. Each item of this list has the format `[lvl, title, pagenumber]`, " -"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " -"a 1-based page number." -msgstr "" - -#: ../../pymupdf4llm/api.rst:127 6e6b8762bad942a987b50cd6dbedef31 -msgid "" -"**\"tables\"** - a list of tables on this page. Each item is a dictionary" -" with keys \"bbox\", \"row_count\" and \"col_count\". Key \"bbox\" is a " -"`pymupdf.Rect` in tuple format of the table's position on the page." -msgstr "" - -#: ../../pymupdf4llm/api.rst:129 316c92fc56df47798b42ce47811dafcb -msgid "" -"**\"images\"** - a list of images on the page. This a copy of page method" -" :meth:`Page.get_image_info`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:131 51b2e05b16fc4212a6ff96d5103144e2 -msgid "" -"**\"graphics\"** - a list of vector graphics rectangles on the page. This" -" is a list of boundary boxes of clustered vector graphics as delivered by" -" method :meth:`Page.cluster_drawings`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:133 ac83b7888c79463d8f82fc3e3fc3cb93 -msgid "**\"text\"** - page content as |Markdown| text." -msgstr "" - -#: ../../pymupdf4llm/api.rst:135 ab618137dc79474e907611a6d2b60df8 -msgid "" -"**\"words\"** - if `extract_words=True` was used. This is a list of " -"tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, wno)` as delivered by " -"`page.get_text(\"words\")`. The **sequence** of these tuples however is " -"the same as produced in the markdown text string and thus honors multi-" -"column text. This is also true for text in tables: words are extracted in" -" the sequence of table row cells." -msgstr "" - -#: ../../pymupdf4llm/api.rst:137 a1a06afb69c24d59a1386aad1b25cd49 -msgid "" -"specify a desired page height. For relevance see the `page_width` " -"parameter. If using the default `None`, the document will appear as one " -"large page with a width of `page_width`. Consequently in this case, no " -"markdown page separators will occur (except the final one), respectively " -"only one page chunk will be returned." -msgstr "" - -#: ../../pymupdf4llm/api.rst:139 3e230ea52f6b466ca3ec776ecc335b25 -msgid "" -"if ``True`` inserts a string ``--- end of page=n ---`` at the end of each" -" page output. Intended for debugging purposes. The page number if " -"0-based. The separator string is wrapped with line breaks. Default is " -"``False``." -msgstr "" - -#: ../../pymupdf4llm/api.rst:141 10d4295fd0f44d04b6d852ab5a6acdac -msgid "" -"specify a desired page width. This is ignored for documents with a fixed " -"page width like PDF, XPS etc. **Reflowable** documents however, like " -"e-books, office [#f2]_ or text files have no fixed page dimensions and by" -" default are assumed to have Letter format width (612) and an " -"**\"infinite\"** page height. This means that the **full document is " -"treated as one large page.**" -msgstr "" - -#: ../../pymupdf4llm/api.rst:145 dc236e54ade449268e191f491a5b6ea1 -msgid "" -"Default is `False`. A value of `True` displays a text-based progress bar " -"as pages are being converted to Markdown. It will look similar to the " -"following:: Processing input.pdf... [====================" -" ] (148/291)" -msgstr "" - -#: ../../pymupdf4llm/api.rst:145 e4c522b34caa44a18c93cc8eb900b9e3 -msgid "" -"Default is `False`. A value of `True` displays a text-based progress bar " -"as pages are being converted to Markdown. It will look similar to the " -"following::" -msgstr "" - -#: ../../pymupdf4llm/api.rst:147 f3fb620547a545348303520f89258470 -msgid "" -"Processing input.pdf... [==================== ] " -"(148/291)" -msgstr "" - -#: ../../pymupdf4llm/api.rst:150 41914ace8aa744f5a267a6a0a97ee95e -msgid "" -"see: :meth:`table detection strategy `. Default is " -"`\"lines_strict\"` which ignores background colors. In some occasions, " -"other strategies may be more successful, for example `\"lines\"` which " -"uses all vector graphics objects for detection. **Changed in v0.0.19:** " -"A value of `None` will not perform any table detection at all. This may " -"be useful when you know that your document contains no tables. Execution " -"time savings can be significant." -msgstr "" - -#: ../../pymupdf4llm/api.rst:152 c63d164ea5544a498b35fe38801ae9d3 -msgid "" -"(New in v.0.0.19) Default is `False`. A value of `True` will use the " -"glyph number of the characters instead of the character itself if the " -"font does not store the Unicode value." -msgstr "" - -#: ../../pymupdf4llm/api.rst:154 631acd268b024502a0907860df6d323e -msgid "" -"when encountering images or vector graphics, images will be created from " -"the respective page area and stored in the specified folder. |Markdown| " -"references will be generated pointing to these images. Any text contained" -" in these areas will not be included in the text output (but appear as " -"part of the images). Therefore, if for instance your document has text " -"written on full page images, make sure to set this parameter to `False`." -msgstr "" - -#: ../../pymupdf4llm/api.rst 10386a25a6684b9782d497e1b2ab9e7f -#: 434dc1344eee439e8802a936eabddc16 5ba94a7e357e45b6a6db51457f8e2248 -#: ce8c80fd2ba44f4ca70bd8cfa927667d d09eb990da164cc496213db2472627c3 -msgid "Returns" -msgstr "" - -#: ../../pymupdf4llm/api.rst:156 5104a12ff2bc40329d605a673453b83f -msgid "" -"Either a string of the combined text of all selected document pages, or a" -" list of dictionaries." -msgstr "" - -#: ../../pymupdf4llm/api.rst:161 40085551cb854077b0e69651c8dede8d -msgid "" -"Please see :ref:`PyMuPDF Layout and parameter caveats " -"`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:170 4a891777dd194ce5afc0dbaa1888c05e -msgid "" -"Reads the pages of the file and outputs the text of its pages in |TXT| " -"format." -msgstr "" - -#: ../../pymupdf4llm/api.rst:178 64b4a6218fb6453eaee092371ccf56fc -msgid "" -"if `True` then mono-spaced text does not receive special formatting. Code" -" blocks will no longer be generated." -msgstr "" - -#: ../../pymupdf4llm/api.rst:187 730da9832ee34199b883b18fc855ad5d -msgid "" -"Create a `pdf_markdown_reader.PDFMarkdownReader` using the `LlamaIndex`_ " -"package. Please note that this package will **not automatically be " -"installed** when installing **pymupdf4llm**." -msgstr "" - -#: ../../pymupdf4llm/api.rst:189 f4ebb53b213d4cc7acf63d4d794fa84e -msgid "" -"For details on the possible arguments, please consult the LlamaIndex " -"documentation [#f1]_." -msgstr "" - -#: ../../pymupdf4llm/api.rst 1cc27cb1af624e44aa82eb89545d50bd -msgid "raises" -msgstr "" - -#: ../../pymupdf4llm/api.rst:191 c747e6f8d358429dab545fa80fbae5b5 -msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." -msgstr "" - -#: ../../pymupdf4llm/api.rst:192 1b1f6a827fe94471845df9f864387c21 -msgid "" -"a `pdf_markdown_reader.PDFMarkdownReader` and issues message " -"\"Successfully imported LlamaIndex\". Please note that this method needs " -"several seconds to execute. For details on using the markdown reader " -"please see below." -msgstr "" - -#: ../../pymupdf4llm/api.rst:201 0fa3da6e44164c04911b61eb1400320b -msgid "" -"Create an object which maps text font sizes to the respective number of " -"'#' characters which are used by Markdown syntax to indicate header " -"levels. The object is created by scanning the document for font size " -"\"popularity\". The most popular font size and all smaller sizes are used" -" for body text. Larger font sizes are mapped to the respective header " -"levels - which correspond to the HTML tags `

` to `

`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:203 ddd88f5814e44f1a92be17074c92bb0d -msgid "All font sizes are rounded to integer values." -msgstr "" - -#: ../../pymupdf4llm/api.rst:205 cb4d0ddc5eb042a2af411bde013b6d40 -msgid "" -"If more than 6 header levels would be required, then the largest number " -"smaller than the `
` font size is used for body text." -msgstr "" - -#: ../../pymupdf4llm/api.rst:207 54ad0ee02efd40a39495107efa84da39 -msgid "" -"Please note that creating the object will read and inspect the text of " -"the entire document - independently of reading the document again in the " -"`to_markdown()` method subsequently. Method `to_markdown()` by default " -"**will create this object** if you do not override its `hdr_info=None` " -"parameter." -msgstr "" - -#: ../../pymupdf4llm/api.rst:210 f7d107ba6131433aab04cf9a922b9665 -msgid "" -"the file, to be specified either as a file path string, or as a |PyMuPDF|" -" Document (created via `pymupdf.open`). In order to use `pathlib.Path` " -"specifications, Python file-like objects, documents in memory etc. you " -"**must** use a |PyMuPDF| Document." -msgstr "" - -#: ../../pymupdf4llm/api.rst:212 710883f192154f769f653cc9bb9b21bd -msgid "optional, the pages to consider. If omitted all pages are processed." -msgstr "" - -#: ../../pymupdf4llm/api.rst:214 26d4fb4142aa4c798761d905a8e927b1 -msgid "" -"the default font size limit for body text. Only used when the document " -"scan does not deliver valid information." -msgstr "" - -#: ../../pymupdf4llm/api.rst:216 f8d32b79562342739ca5edda00c6a964 -msgid "" -"the maximum number of header levels to be used. Valid values are in " -"`range(1, 7)`. The default is 6, which corresponds to the HTML tags " -"`

` to `

`. A smaller value will limit the number of generated " -"header levels. For instance, a value of 3 will only generate header tags " -"\"#\", \"##\" and \"###\". Body text will be assumed for all font sizes " -"smaller than the one corresponding to \"###\"." -msgstr "" - -#: ../../pymupdf4llm/api.rst:221 7a18426418c045d89b6a6915ef43c2f3 -msgid "" -"Return appropriate markdown header prefix. This is either \"\" or a " -"string of \"#\" characters followed by a space." -msgstr "" - -#: ../../pymupdf4llm/api.rst:223 04294f93901a4d46a3e0aa688dfb83f5 -msgid "" -"Given a text span from a \"dict\"\" extraction, determine the markdown " -"header prefix string of 0 to n concatenated '#' characters." -msgstr "" - -#: ../../pymupdf4llm/api.rst:226 ../../pymupdf4llm/api.rst:344 -#: 550655d8107e43ffb7203846680f7e24 e828990897a1448badcc3b731c9c6517 -msgid "" -"a dictionary containing the text span information. This is the same " -"dictionary as returned by `page.get_text(\"dict\")`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:228 ../../pymupdf4llm/api.rst:346 -#: 54cc09285e7747a6923cf3526f9f38b0 5cfcdf8fe7f247bf953d2b65807bc202 -msgid "" -"the owning page object. This can be used when additional information " -"needs to be extracted." -msgstr "" - -#: ../../pymupdf4llm/api.rst:230 ../../pymupdf4llm/api.rst:348 -#: 73c5aaf02c6d4677952eeb97ab552011 9e78b659560c4472ac40f0c8fb3698b6 -msgid "a string of \"#\" characters followed by a space." -msgstr "" - -#: ../../pymupdf4llm/api.rst:234 a4033b3dac4443679a2b4a28458411fe -msgid "" -"A dictionary mapping (integer) font sizes to Markdown header strings like" -" ``{14: '# ', 12: '## '}``. The dictionary is created by the " -":class:`IdentifyHeaders` constructor. The keys are the font sizes of the " -"text spans in the document. The values are the respective header strings." -msgstr "" - -#: ../../pymupdf4llm/api.rst:238 56e441aea6a147fcbefc72fa4305d33a -msgid "" -"An integer value indicating the font size limit for body text. This is " -"computed as ``min(header_id.keys()) - 1``. In the above example, " -"body_limit would be 11." -msgstr "" - -#: ../../pymupdf4llm/api.rst:244 33febc39239d46f9b55e35cb74ef4147 -msgid "**How to limit header levels (example)**" -msgstr "" - -#: ../../pymupdf4llm/api.rst:246 d9878de9640443dcbf1a24c44a78770f -msgid "Limit the generated header levels to 3::" -msgstr "" - -#: ../../pymupdf4llm/api.rst:256 26889d430ea442a89dbe07ec23b0e7f3 -msgid "**How to provide your own header logic (example 1)**" -msgstr "" - -#: ../../pymupdf4llm/api.rst:258 15ff981c833143a59eaded941db96669 -msgid "Provide your own function which uses pre-determined, fixed font sizes::" -msgstr "" - -#: ../../pymupdf4llm/api.rst:285 ab24ee46d29546d3ab1443a5e76a33fa -msgid "**How to provide your own header logic (example 2)**" -msgstr "" - -#: ../../pymupdf4llm/api.rst:287 fcb3f54f74cd485786ee6cbe166e8f73 -msgid "" -"This user function uses the document's Table of Contents -- under the " -"assumption that the bookmark text is also present as a header line on the" -" page (which certainly need not be the case!)::" -msgstr "" - -#: ../../pymupdf4llm/api.rst:327 14480bac3ba944fd96170a5756041644 -msgid "" -"Create an object which uses the document's Table of Contents (TOC) to " -"determine header levels. Upon object creation, the table of contents is " -"read via the `Document.get_toc()` method. The TOC data is then used to " -"determine header levels in the `to_markdown()` method." -msgstr "" - -#: ../../pymupdf4llm/api.rst:329 5be4e1eff9704c8382cbb8c4c31f13c6 -msgid "" -"This is an alternative to :class:`IdentifyHeaders`. Instead of running " -"through the full document to identify font sizes, it uses the document's " -"Table Of Contents (TOC) to identify headers on pages. Like " -":class:`IdentifyHeaders`, this also is no guarantee to find headers, but " -"for well-built Table of Contents, there is a good chance for more " -"correctly identifying header lines on document pages than the font-size-" -"based approach." -msgstr "" - -#: ../../pymupdf4llm/api.rst:332 d914b48ba702438e9f46dc3401768b47 -msgid "" -"It also has the advantage of being much faster than the font-size-based " -"approach, as it does not execute a full document scan or even access any " -"of the document pages." -msgstr "" - -#: ../../pymupdf4llm/api.rst:334 f40165ffd9124da1924d012adeb43873 -msgid "" -"Examples where this approach works very well are the Adobe's files on PDF" -" documentation." -msgstr "" - -#: ../../pymupdf4llm/api.rst:336 fd4050856d3d4290929a03317169bd66 -msgid "" -"Please note that this feature **does not read document pages** where the " -"table of contents may exist as normal standard text. It only accesses " -"data as provided by the `Document.get_toc()` method. It will not identify" -" any headers for documents where the table of contents is not available " -"as a collection of bookmarks." -msgstr "" - -#: ../../pymupdf4llm/api.rst:340 b0bb3bce89a646eeba118d8363ee87f7 -msgid "" -"Return appropriate markdown header prefix. This is either an empty string" -" or a string of \"#\" characters followed by a space." -msgstr "" - -#: ../../pymupdf4llm/api.rst:342 b77b616760354716a6d28cfa0e57b151 -msgid "" -"Given a text span from a \"dict\" extraction variant, determine the " -"markdown header prefix string of 0 to n concatenated \"#\" characters." -msgstr "" - -#: ../../pymupdf4llm/api.rst:352 c26d5479bdc643ebbe830ea70cc92c6f -msgid "**How to use class TocHeaders**" -msgstr "" - -#: ../../pymupdf4llm/api.rst:354 c68809493db84470bb3fa5d1d864b1c0 -msgid "" -"This is a version of previous **example 2** that uses :class:`TocHeaders`" -" for header identification::" -msgstr "" - -#: ../../pymupdf4llm/api.rst:372 eaafa54a042149aa81d8d9da29930a37 -msgid "" -"This is the only method of the markdown reader you should currently use " -"to extract markdown data. Please in any case ignore methods " -"`aload_data()` and `lazy_load_data()`. Other methods like " -"`use_doc_meta()` may or may not make sense. For more information, please " -"consult the LlamaIndex documentation [#f1]_." -msgstr "" - -#: ../../pymupdf4llm/api.rst:374 7a42c78f0d604568b37387b7870eec16 -msgid "Under the hood the method will execute `to_markdown()`." -msgstr "" - -#: ../../pymupdf4llm/api.rst:376 8119933a56b04dd4b5a34e56303068bd -msgid "a list of `LlamaIndexDocument` documents - one for each page." -msgstr "" - -#: ../../pymupdf4llm/api.rst:380 1cb18a1dc7ef4e7085bdd5823bd0511d -msgid "" -"For a list of changes, please see file `CHANGES.md " -"`_." -msgstr "" - -#: ../../pymupdf4llm/api.rst:383 60b5690329a344a6b271a528644b1d60 -msgid "Footnotes" -msgstr "" - -#: ../../pymupdf4llm/api.rst:384 e7d44d9605ab4a30a5c5bd1883e5a7a5 -msgid "`LlamaIndex documentation `_" -msgstr "" - -#: ../../pymupdf4llm/api.rst:386 a6f79e15bc8b42b99ce558e692e5a425 -msgid "" -"When using PyMuPDF-Pro, supported office documents are converted " -"internally into a PDF-like format. Therefore, they **will have fixed page" -" dimensions** and be no longer \"reflowable\". Consequently, the page " -"width and page height specifications will be ignored as well in these " -"cases." -msgstr "" - #: ../../footer.rst:46 1ed68f4bf8fd45fab04f7a49fba09f0a msgid "This documentation covers all versions up to |version|." msgstr "" +#~ msgid "Prints the version of the library." +#~ msgstr "" + +#~ msgid "" +#~ "Reads the pages of the file and" +#~ " outputs the text of its pages " +#~ "in |JSON| format." +#~ msgstr "" + +#~ msgid "Parameters" +#~ msgstr "" + +#~ msgid "" +#~ "the file, to be specified either " +#~ "as a file path string, or as " +#~ "a |PyMuPDF| :class:`Document` (created via " +#~ "`pymupdf.open`). In order to use " +#~ "`pathlib.Path` specifications, Python file-" +#~ "like objects, documents in memory etc." +#~ " you **must** use a |PyMuPDF| " +#~ ":class:`Document`." +#~ msgstr "" + +#~ msgid "" +#~ "specify the desired image resolution in" +#~ " dots per inch. Default value is " +#~ "150." +#~ msgstr "" + +#~ msgid "" +#~ "specify the desired image format via " +#~ "its extension. Default is \"png\" " +#~ "(portable network graphics). Another popular" +#~ " format may be \"jpg\". Possible " +#~ "values are all :ref:`supported output " +#~ "formats `." +#~ msgstr "" + +#~ msgid "" +#~ "store images in this folder. Relevant" +#~ " if `write_images=True`. Default is the " +#~ "path of the script directory." +#~ msgstr "" + +#~ msgid "" +#~ "optional, the pages to consider for " +#~ "output (caution: specify 0-based page " +#~ "numbers). If omitted (`None`) all pages" +#~ " are processed." +#~ msgstr "" + +#~ msgid "" +#~ "Please note that page ``header`` / " +#~ "``footer`` exclusion is not applicable " +#~ "to |JSON| output as it aims to " +#~ "always represent all data for the " +#~ "included pages." +#~ msgstr "" + +#~ msgid "" +#~ "Reads the pages of the file and" +#~ " outputs the text of its pages " +#~ "in |Markdown| format. How this should" +#~ " happen in detail can be influenced" +#~ " by a number of parameters. Please" +#~ " note that **support for building " +#~ "page chunks** from the |Markdown| text" +#~ " is supported." +#~ msgstr "" + +#~ msgid "" +#~ "does a simple check for the " +#~ "general background color of the pages" +#~ " (default is ``True``). If any text" +#~ " or vector has this color it " +#~ "will be ignored. May increase detection" +#~ " accuracy." +#~ msgstr "" + +#~ msgid "" +#~ "specify the desired image resolution in" +#~ " dots per inch. Relevant only if " +#~ "`write_images=True`. Default value is 150." +#~ msgstr "" + +#~ msgid "" +#~ "like `write_images`, but images will be" +#~ " included in the markdown text as " +#~ "base64-encoded strings. Ignores `write_images` " +#~ "and `image_path` if used. This may " +#~ "drastically increase the size of your" +#~ " markdown text." +#~ msgstr "" + +#~ msgid "" +#~ "a value of `True` enforces " +#~ "`page_chunks=True` and adds key \"words\" " +#~ "to each page dictionary. Its value " +#~ "is a list of words as delivered" +#~ " by PyMuPDF's `Page` method " +#~ "`get_text(\"words\")`. The sequence of the " +#~ "words in this list is the same " +#~ "as the extracted text." +#~ msgstr "" + +#~ msgid "" +#~ "(New in v.0.0.19) Overwrites or sets " +#~ "the desired image file name of " +#~ "written images. Useful when the document" +#~ " is provided as a memory object " +#~ "(which has no inherent file name)." +#~ msgstr "" + +#~ msgid "" +#~ "limit the font size to consider " +#~ "for text extraction. If the font " +#~ "size is lower than what is set " +#~ "then the text won't be considered " +#~ "for extraction. Default is `3`, meaning" +#~ " only text with a font size `>=" +#~ " 3` will be considered for " +#~ "extraction." +#~ msgstr "" + +#~ msgid "" +#~ "boolean to switch on/off footer content." +#~ " This parameter controls whether we " +#~ "want to include or omit the footer" +#~ " content from all the document pages." +#~ " Useful if the document has " +#~ "repetitive footer content which doesn't " +#~ "add any value to the overall " +#~ "extraction data. Default is `True` " +#~ "meaning that footer content will be " +#~ "considered." +#~ msgstr "" + +#~ msgid "" +#~ "generate text output even when " +#~ "overlapping images / graphics. This text" +#~ " then appears after the respective " +#~ "image. If `write_images=True` this parameter" +#~ " may be `False` to suppress " +#~ "repetition of text on images." +#~ msgstr "" + +#~ msgid "" +#~ "use this to limit dealing with " +#~ "excess amounts of vector graphics " +#~ "elements. Scientific documents, or pages " +#~ "simulating text via graphics commands " +#~ "may contain tens of thousands of " +#~ "these objects. As vector graphics are" +#~ " analyzed for multiple purposes, runtime" +#~ " may quickly become intolerable. With " +#~ "this parameter, all vector graphics will" +#~ " be ignored if their count exceeds" +#~ " the threshold. **Changed in v0.0.19:** " +#~ "The page will still be processed, " +#~ "and text, tables and images should " +#~ "be extracted." +#~ msgstr "" + +#~ msgid "" +#~ "use this if you want to provide" +#~ " your own header detection logic. " +#~ "This may be a callable or an " +#~ "object having a method named " +#~ "`get_header_id`. It must accept a text" +#~ " span (a span dictionary as contained" +#~ " in :meth:`~.extractDICT`) and a keyword" +#~ " parameter \"page\" (which is the " +#~ "owning :ref:`Page ` object). It " +#~ "must return a string \"\" or up" +#~ " to 6 \"#\" characters followed by" +#~ " 1 space. If omitted (`None`), a " +#~ "full document scan will be performed " +#~ "to find the most popular font " +#~ "sizes and derive header levels based " +#~ "on them. To completely avoid this " +#~ "behavior specify `hdr_info=lambda s, " +#~ "page=None: \"\"` or `hdr_info=False`." +#~ msgstr "" + +#~ msgid "" +#~ "boolean to switch on/off header content." +#~ " This parameter controls whether we " +#~ "want to include or omit the header" +#~ " content from all the document pages." +#~ " Useful if the document has " +#~ "repetitive header content which doesn't " +#~ "add any value to the overall " +#~ "extraction data. Default is `True` " +#~ "meaning that header content will be " +#~ "considered." +#~ msgstr "" + +#~ msgid "" +#~ "if ``True`` includes text even when " +#~ "completely transparent. Default is ``False``:" +#~ " transparent text will be ignored " +#~ "which usually increases detection accuracy." +#~ msgstr "" + +#~ msgid "" +#~ "if `True` then mono-spaced text " +#~ "does not receive special formatting. " +#~ "Code blocks will no longer be " +#~ "generated. This value is set to " +#~ "`True` if `extract_words=True` is used." +#~ msgstr "" + +#~ msgid "" +#~ "(New in v.0.0.20) Disregard vector " +#~ "graphics on the page. This may " +#~ "help detecting text correctly when pages" +#~ " are very crowded (often the case " +#~ "for documents representing presentation " +#~ "slides). Also speeds up processing time." +#~ " This automatically prevents table " +#~ "detection." +#~ msgstr "" + +#~ msgid "" +#~ "(New in v.0.0.20) Disregard images on" +#~ " the page. This may help detecting" +#~ " text correctly when pages are very" +#~ " crowded (often the case for " +#~ "documents representing presentation slides). " +#~ "Also speeds up processing time." +#~ msgstr "" + +#~ msgid "" +#~ "this must be a ``0 <= value " +#~ "< 1``. Images are ignored if " +#~ "`width / page.rect.width <= image_size_limit`" +#~ " or `height / page.rect.height <= " +#~ "image_size_limit`. For instance, the default" +#~ " value 0.05 means that to be " +#~ "considered for inclusion, an image's " +#~ "width and height must be larger " +#~ "than 5% of the page's width and" +#~ " height, respectively." +#~ msgstr "" + +#~ msgid "" +#~ "a float or a sequence of 2 " +#~ "or 4 floats specifying page borders. " +#~ "Only objects inside the margins will " +#~ "be considered for output. * `margin=f`" +#~ " yields `(f, f, f, f)` for " +#~ "`(left, top, right, bottom)`. * `(top," +#~ " bottom)` yields `(0, top, 0, " +#~ "bottom)`. * To always read full " +#~ "pages **(default)**, use `margins=0`." +#~ msgstr "" + +#~ msgid "" +#~ "a float or a sequence of 2 " +#~ "or 4 floats specifying page borders. " +#~ "Only objects inside the margins will " +#~ "be considered for output." +#~ msgstr "" + +#~ msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." +#~ msgstr "" + +#~ msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." +#~ msgstr "" + +#~ msgid "To always read full pages **(default)**, use `margins=0`." +#~ msgstr "" + +#~ msgid "" +#~ "if `True` the output will be a " +#~ "list of `Document.page_count` dictionaries " +#~ "(one per page). Each dictionary has " +#~ "the following structure: - **\"metadata\"**" +#~ " - a dictionary consisting of the " +#~ "document's metadata :attr:`Document.metadata`, " +#~ "enriched with additional keys " +#~ "**\"file_path\"** (the file name), " +#~ "**\"page_count\"** (number of pages in " +#~ "document), and **\"page_number\"** (1-based " +#~ "page number). - **\"toc_items\"** - a" +#~ " list of Table of Contents items " +#~ "pointing to this page. Each item " +#~ "of this list has the format `[lvl," +#~ " title, pagenumber]`, where `lvl` is " +#~ "the hierarchy level, `title` a string" +#~ " and `pagenumber` as a 1-based page" +#~ " number. - **\"tables\"** - a list" +#~ " of tables on this page. Each " +#~ "item is a dictionary with keys " +#~ "\"bbox\", \"row_count\" and \"col_count\". Key" +#~ " \"bbox\" is a `pymupdf.Rect` in " +#~ "tuple format of the table's position " +#~ "on the page. - **\"images\"** - a" +#~ " list of images on the page. " +#~ "This a copy of page method " +#~ ":meth:`Page.get_image_info`. - **\"graphics\"** -" +#~ " a list of vector graphics rectangles" +#~ " on the page. This is a list" +#~ " of boundary boxes of clustered " +#~ "vector graphics as delivered by method" +#~ " :meth:`Page.cluster_drawings`. - **\"text\"** -" +#~ " page content as |Markdown| text. -" +#~ " **\"words\"** - if `extract_words=True` " +#~ "was used. This is a list of " +#~ "tuples `(x0, y0, x1, y1, \"wordstring\"," +#~ " bno, lno, wno)` as delivered by " +#~ "`page.get_text(\"words\")`. The **sequence** of " +#~ "these tuples however is the same " +#~ "as produced in the markdown text " +#~ "string and thus honors multi-column " +#~ "text. This is also true for text" +#~ " in tables: words are extracted in" +#~ " the sequence of table row cells." +#~ msgstr "" + +#~ msgid "" +#~ "if `True` the output will be a " +#~ "list of `Document.page_count` dictionaries " +#~ "(one per page). Each dictionary has " +#~ "the following structure:" +#~ msgstr "" + +#~ msgid "" +#~ "**\"metadata\"** - a dictionary consisting " +#~ "of the document's metadata " +#~ ":attr:`Document.metadata`, enriched with additional" +#~ " keys **\"file_path\"** (the file name)," +#~ " **\"page_count\"** (number of pages in " +#~ "document), and **\"page_number\"** (1-based " +#~ "page number)." +#~ msgstr "" + +#~ msgid "" +#~ "**\"toc_items\"** - a list of Table " +#~ "of Contents items pointing to this " +#~ "page. Each item of this list has" +#~ " the format `[lvl, title, pagenumber]`, " +#~ "where `lvl` is the hierarchy level, " +#~ "`title` a string and `pagenumber` as " +#~ "a 1-based page number." +#~ msgstr "" + +#~ msgid "" +#~ "**\"tables\"** - a list of tables " +#~ "on this page. Each item is a " +#~ "dictionary with keys \"bbox\", \"row_count\"" +#~ " and \"col_count\". Key \"bbox\" is a" +#~ " `pymupdf.Rect` in tuple format of " +#~ "the table's position on the page." +#~ msgstr "" + +#~ msgid "" +#~ "**\"images\"** - a list of images " +#~ "on the page. This a copy of " +#~ "page method :meth:`Page.get_image_info`." +#~ msgstr "" + +#~ msgid "" +#~ "**\"graphics\"** - a list of vector " +#~ "graphics rectangles on the page. This" +#~ " is a list of boundary boxes of" +#~ " clustered vector graphics as delivered " +#~ "by method :meth:`Page.cluster_drawings`." +#~ msgstr "" + +#~ msgid "**\"text\"** - page content as |Markdown| text." +#~ msgstr "" + +#~ msgid "" +#~ "**\"words\"** - if `extract_words=True` was" +#~ " used. This is a list of tuples" +#~ " `(x0, y0, x1, y1, \"wordstring\", " +#~ "bno, lno, wno)` as delivered by " +#~ "`page.get_text(\"words\")`. The **sequence** of " +#~ "these tuples however is the same " +#~ "as produced in the markdown text " +#~ "string and thus honors multi-column " +#~ "text. This is also true for text" +#~ " in tables: words are extracted in" +#~ " the sequence of table row cells." +#~ msgstr "" + +#~ msgid "" +#~ "specify a desired page height. For " +#~ "relevance see the `page_width` parameter. " +#~ "If using the default `None`, the " +#~ "document will appear as one large " +#~ "page with a width of `page_width`. " +#~ "Consequently in this case, no markdown" +#~ " page separators will occur (except " +#~ "the final one), respectively only one" +#~ " page chunk will be returned." +#~ msgstr "" + +#~ msgid "" +#~ "if ``True`` inserts a string ``--- " +#~ "end of page=n ---`` at the end " +#~ "of each page output. Intended for " +#~ "debugging purposes. The page number if" +#~ " 0-based. The separator string is " +#~ "wrapped with line breaks. Default is " +#~ "``False``." +#~ msgstr "" + +#~ msgid "" +#~ "specify a desired page width. This " +#~ "is ignored for documents with a " +#~ "fixed page width like PDF, XPS " +#~ "etc. **Reflowable** documents however, like" +#~ " e-books, office [#f2]_ or text files" +#~ " have no fixed page dimensions and" +#~ " by default are assumed to have " +#~ "Letter format width (612) and an " +#~ "**\"infinite\"** page height. This means " +#~ "that the **full document is treated " +#~ "as one large page.**" +#~ msgstr "" + +#~ msgid "" +#~ "Default is `False`. A value of " +#~ "`True` displays a text-based progress" +#~ " bar as pages are being converted " +#~ "to Markdown. It will look similar " +#~ "to the following:: Processing input.pdf..." +#~ " [==================== ] (148/291)" +#~ msgstr "" + +#~ msgid "" +#~ "Default is `False`. A value of " +#~ "`True` displays a text-based progress" +#~ " bar as pages are being converted " +#~ "to Markdown. It will look similar " +#~ "to the following::" +#~ msgstr "" + +#~ msgid "" +#~ "Processing input.pdf... [====================" +#~ " ] (148/291)" +#~ msgstr "" + +#~ msgid "" +#~ "see: :meth:`table detection strategy " +#~ "`. Default is `\"lines_strict\"`" +#~ " which ignores background colors. In " +#~ "some occasions, other strategies may be" +#~ " more successful, for example `\"lines\"`" +#~ " which uses all vector graphics " +#~ "objects for detection. **Changed in " +#~ "v0.0.19:** A value of `None` will " +#~ "not perform any table detection at " +#~ "all. This may be useful when you" +#~ " know that your document contains no" +#~ " tables. Execution time savings can " +#~ "be significant." +#~ msgstr "" + +#~ msgid "" +#~ "(New in v.0.0.19) Default is `False`." +#~ " A value of `True` will use the" +#~ " glyph number of the characters " +#~ "instead of the character itself if " +#~ "the font does not store the " +#~ "Unicode value." +#~ msgstr "" + +#~ msgid "" +#~ "when encountering images or vector " +#~ "graphics, images will be created from" +#~ " the respective page area and stored" +#~ " in the specified folder. |Markdown| " +#~ "references will be generated pointing to" +#~ " these images. Any text contained in" +#~ " these areas will not be included " +#~ "in the text output (but appear as" +#~ " part of the images). Therefore, if" +#~ " for instance your document has text" +#~ " written on full page images, make" +#~ " sure to set this parameter to " +#~ "`False`." +#~ msgstr "" + +#~ msgid "Returns" +#~ msgstr "" + +#~ msgid "" +#~ "Either a string of the combined " +#~ "text of all selected document pages, " +#~ "or a list of dictionaries." +#~ msgstr "" + +#~ msgid "" +#~ "Please see :ref:`PyMuPDF Layout and " +#~ "parameter caveats `." +#~ msgstr "" + +#~ msgid "" +#~ "Reads the pages of the file and" +#~ " outputs the text of its pages " +#~ "in |TXT| format." +#~ msgstr "" + +#~ msgid "" +#~ "if `True` then mono-spaced text " +#~ "does not receive special formatting. " +#~ "Code blocks will no longer be " +#~ "generated." +#~ msgstr "" + +#~ msgid "" +#~ "Create a `pdf_markdown_reader.PDFMarkdownReader` " +#~ "using the `LlamaIndex`_ package. Please " +#~ "note that this package will **not " +#~ "automatically be installed** when installing" +#~ " **pymupdf4llm**." +#~ msgstr "" + +#~ msgid "" +#~ "For details on the possible arguments," +#~ " please consult the LlamaIndex " +#~ "documentation [#f1]_." +#~ msgstr "" + +#~ msgid "raises" +#~ msgstr "" + +#~ msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." +#~ msgstr "" + +#~ msgid "" +#~ "a `pdf_markdown_reader.PDFMarkdownReader` and issues" +#~ " message \"Successfully imported LlamaIndex\"." +#~ " Please note that this method needs" +#~ " several seconds to execute. For " +#~ "details on using the markdown reader " +#~ "please see below." +#~ msgstr "" + +#~ msgid "" +#~ "Create an object which maps text " +#~ "font sizes to the respective number " +#~ "of '#' characters which are used " +#~ "by Markdown syntax to indicate header" +#~ " levels. The object is created by " +#~ "scanning the document for font size " +#~ "\"popularity\". The most popular font " +#~ "size and all smaller sizes are " +#~ "used for body text. Larger font " +#~ "sizes are mapped to the respective " +#~ "header levels - which correspond to " +#~ "the HTML tags `

` to `

`." +#~ msgstr "" + +#~ msgid "All font sizes are rounded to integer values." +#~ msgstr "" + +#~ msgid "" +#~ "If more than 6 header levels would" +#~ " be required, then the largest number" +#~ " smaller than the `
` font size" +#~ " is used for body text." +#~ msgstr "" + +#~ msgid "" +#~ "Please note that creating the object " +#~ "will read and inspect the text of" +#~ " the entire document - independently " +#~ "of reading the document again in " +#~ "the `to_markdown()` method subsequently. " +#~ "Method `to_markdown()` by default **will " +#~ "create this object** if you do not" +#~ " override its `hdr_info=None` parameter." +#~ msgstr "" + +#~ msgid "" +#~ "the file, to be specified either " +#~ "as a file path string, or as " +#~ "a |PyMuPDF| Document (created via " +#~ "`pymupdf.open`). In order to use " +#~ "`pathlib.Path` specifications, Python file-" +#~ "like objects, documents in memory etc." +#~ " you **must** use a |PyMuPDF| " +#~ "Document." +#~ msgstr "" + +#~ msgid "optional, the pages to consider. If omitted all pages are processed." +#~ msgstr "" + +#~ msgid "" +#~ "the default font size limit for " +#~ "body text. Only used when the " +#~ "document scan does not deliver valid " +#~ "information." +#~ msgstr "" + +#~ msgid "" +#~ "the maximum number of header levels " +#~ "to be used. Valid values are in" +#~ " `range(1, 7)`. The default is 6, " +#~ "which corresponds to the HTML tags " +#~ "`

` to `

`. A smaller value " +#~ "will limit the number of generated " +#~ "header levels. For instance, a value " +#~ "of 3 will only generate header " +#~ "tags \"#\", \"##\" and \"###\". Body " +#~ "text will be assumed for all font" +#~ " sizes smaller than the one " +#~ "corresponding to \"###\"." +#~ msgstr "" + +#~ msgid "" +#~ "Return appropriate markdown header prefix. " +#~ "This is either \"\" or a string" +#~ " of \"#\" characters followed by a" +#~ " space." +#~ msgstr "" + +#~ msgid "" +#~ "Given a text span from a " +#~ "\"dict\"\" extraction, determine the markdown" +#~ " header prefix string of 0 to n" +#~ " concatenated '#' characters." +#~ msgstr "" + +#~ msgid "" +#~ "a dictionary containing the text span" +#~ " information. This is the same " +#~ "dictionary as returned by " +#~ "`page.get_text(\"dict\")`." +#~ msgstr "" + +#~ msgid "" +#~ "the owning page object. This can " +#~ "be used when additional information " +#~ "needs to be extracted." +#~ msgstr "" + +#~ msgid "a string of \"#\" characters followed by a space." +#~ msgstr "" + +#~ msgid "" +#~ "A dictionary mapping (integer) font " +#~ "sizes to Markdown header strings like" +#~ " ``{14: '# ', 12: '## '}``. The" +#~ " dictionary is created by the " +#~ ":class:`IdentifyHeaders` constructor. The keys " +#~ "are the font sizes of the text " +#~ "spans in the document. The values " +#~ "are the respective header strings." +#~ msgstr "" + +#~ msgid "" +#~ "An integer value indicating the font " +#~ "size limit for body text. This is" +#~ " computed as ``min(header_id.keys()) - 1``." +#~ " In the above example, body_limit " +#~ "would be 11." +#~ msgstr "" + +#~ msgid "**How to limit header levels (example)**" +#~ msgstr "" + +#~ msgid "Limit the generated header levels to 3::" +#~ msgstr "" + +#~ msgid "**How to provide your own header logic (example 1)**" +#~ msgstr "" + +#~ msgid "Provide your own function which uses pre-determined, fixed font sizes::" +#~ msgstr "" + +#~ msgid "**How to provide your own header logic (example 2)**" +#~ msgstr "" + +#~ msgid "" +#~ "This user function uses the document's" +#~ " Table of Contents -- under the " +#~ "assumption that the bookmark text is " +#~ "also present as a header line on" +#~ " the page (which certainly need not" +#~ " be the case!)::" +#~ msgstr "" + +#~ msgid "" +#~ "Create an object which uses the " +#~ "document's Table of Contents (TOC) to" +#~ " determine header levels. Upon object " +#~ "creation, the table of contents is " +#~ "read via the `Document.get_toc()` method. " +#~ "The TOC data is then used to " +#~ "determine header levels in the " +#~ "`to_markdown()` method." +#~ msgstr "" + +#~ msgid "" +#~ "This is an alternative to " +#~ ":class:`IdentifyHeaders`. Instead of running " +#~ "through the full document to identify" +#~ " font sizes, it uses the document's" +#~ " Table Of Contents (TOC) to identify" +#~ " headers on pages. Like " +#~ ":class:`IdentifyHeaders`, this also is no " +#~ "guarantee to find headers, but for " +#~ "well-built Table of Contents, there " +#~ "is a good chance for more " +#~ "correctly identifying header lines on " +#~ "document pages than the font-size-" +#~ "based approach." +#~ msgstr "" + +#~ msgid "" +#~ "It also has the advantage of being" +#~ " much faster than the font-size-" +#~ "based approach, as it does not " +#~ "execute a full document scan or " +#~ "even access any of the document " +#~ "pages." +#~ msgstr "" + +#~ msgid "" +#~ "Examples where this approach works very" +#~ " well are the Adobe's files on " +#~ "PDF documentation." +#~ msgstr "" + +#~ msgid "" +#~ "Please note that this feature **does " +#~ "not read document pages** where the " +#~ "table of contents may exist as " +#~ "normal standard text. It only accesses" +#~ " data as provided by the " +#~ "`Document.get_toc()` method. It will not " +#~ "identify any headers for documents where" +#~ " the table of contents is not " +#~ "available as a collection of bookmarks." +#~ msgstr "" + +#~ msgid "" +#~ "Return appropriate markdown header prefix. " +#~ "This is either an empty string or" +#~ " a string of \"#\" characters " +#~ "followed by a space." +#~ msgstr "" + +#~ msgid "" +#~ "Given a text span from a \"dict\"" +#~ " extraction variant, determine the markdown" +#~ " header prefix string of 0 to n" +#~ " concatenated \"#\" characters." +#~ msgstr "" + +#~ msgid "**How to use class TocHeaders**" +#~ msgstr "" + +#~ msgid "" +#~ "This is a version of previous " +#~ "**example 2** that uses :class:`TocHeaders`" +#~ " for header identification::" +#~ msgstr "" + +#~ msgid "" +#~ "This is the only method of the " +#~ "markdown reader you should currently use" +#~ " to extract markdown data. Please in" +#~ " any case ignore methods `aload_data()` " +#~ "and `lazy_load_data()`. Other methods like " +#~ "`use_doc_meta()` may or may not make " +#~ "sense. For more information, please " +#~ "consult the LlamaIndex documentation [#f1]_." +#~ msgstr "" + +#~ msgid "Under the hood the method will execute `to_markdown()`." +#~ msgstr "" + +#~ msgid "a list of `LlamaIndexDocument` documents - one for each page." +#~ msgstr "" + +#~ msgid "" +#~ "For a list of changes, please see" +#~ " file `CHANGES.md " +#~ "`_." +#~ msgstr "" + +#~ msgid "Footnotes" +#~ msgstr "" + +#~ msgid "`LlamaIndex documentation `_" +#~ msgstr "" + +#~ msgid "" +#~ "When using PyMuPDF-Pro, supported office" +#~ " documents are converted internally into" +#~ " a PDF-like format. Therefore, they" +#~ " **will have fixed page dimensions** " +#~ "and be no longer \"reflowable\". " +#~ "Consequently, the page width and page" +#~ " height specifications will be ignored " +#~ "as well in these cases." +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po index 9bbbd15db..46708ca93 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-11-26 17:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 53c72493367d4eb1be603397129b39fe +#: ../../header.rst:-1 d999746961f541d091c04253454c2495 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 1b5624909c1b466fb93485742b40bbd2 +#: ../../header.rst:-1 942f0462179c4c28a52bfb5b4819a15a msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 113a15e76cb34538aebd04c22e64f82d +#: ../../header.rst:-1 cc1a6ef974e74b6299fc9df6b833ae6d msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -47,189 +47,206 @@ msgid "" " document output `." msgstr "" -#: ../../pymupdf4llm/index.rst:14 50bf080e50e64ba58e973f0addf24d73 +#: ../../pymupdf4llm/index.rst:12 8b36d59c925f4a0d93873eeab7e4843a +msgid "" +"When using |PyMuPDF4LLM| with PyMuPDF-Layout, page layout detection will " +"be greatly improved. This is true for table detection, but also for the " +"detection of page headers and footers, footnotes, list items and text " +"paragraphs. In addition two new methods become available, `to_json()` and" +" `to_text()`." +msgstr "" + +#: ../../pymupdf4llm/index.rst:16 50bf080e50e64ba58e973f0addf24d73 msgid "" "You can extend the supported file types to also include **Office** " "document formats (DOC/DOCX, XLS/XLSX, PPT/PPTX, HWP/HWPX) by :ref:`using " "PyMuPDF Pro with PyMuPDF4LLM `." msgstr "" -#: ../../pymupdf4llm/index.rst:17 38428359cdaf4039b439454f5c712ec7 +#: ../../pymupdf4llm/index.rst:19 38428359cdaf4039b439454f5c712ec7 msgid "Features" msgstr "" -#: ../../pymupdf4llm/index.rst:19 5f4fb197fcdd4a0ab3ac79607a78a25e +#: ../../pymupdf4llm/index.rst:21 5f4fb197fcdd4a0ab3ac79607a78a25e msgid "Support for multi-column pages" msgstr "" -#: ../../pymupdf4llm/index.rst:20 7e249663241a4aacb2f9b1fcb4450393 +#: ../../pymupdf4llm/index.rst:22 7e249663241a4aacb2f9b1fcb4450393 msgid "" "Support for image and vector graphics extraction (and inclusion of " "references in the MD text)" msgstr "" -#: ../../pymupdf4llm/index.rst:21 cf659dc9b2da48d69e7ab3d1cda7f132 +#: ../../pymupdf4llm/index.rst:23 cf659dc9b2da48d69e7ab3d1cda7f132 msgid "Support for page chunking output." msgstr "" -#: ../../pymupdf4llm/index.rst:22 20715d6347fb42b7b485fba224287741 +#: ../../pymupdf4llm/index.rst:24 20715d6347fb42b7b485fba224287741 msgid "" "Direct support for output as :ref:`LlamaIndex Documents " "`." msgstr "" -#: ../../pymupdf4llm/index.rst:26 90f6c12aacd14b7eba944b6c1e013ed5 +#: ../../pymupdf4llm/index.rst:25 ed7f233894d54e93aca9c1f33a896476 +msgid "In \"layout mode\": Support for plain text output similar to Markdown" +msgstr "" + +#: ../../pymupdf4llm/index.rst:26 e29cc03c8f6f40be974a1f9262165c9c +msgid "In \"layout mode\": Support for JSON output" +msgstr "" + +#: ../../pymupdf4llm/index.rst:30 90f6c12aacd14b7eba944b6c1e013ed5 msgid "Functionality" msgstr "" -#: ../../pymupdf4llm/index.rst:28 e63a722974dc41f3928dc372e66da5c0 +#: ../../pymupdf4llm/index.rst:32 e63a722974dc41f3928dc372e66da5c0 msgid "" "This package converts the pages of a file to text in **Markdown** format " "using |PyMuPDF|." msgstr "" -#: ../../pymupdf4llm/index.rst:30 1504c800279e44568bfbbeef3eb2ba6d +#: ../../pymupdf4llm/index.rst:34 1504c800279e44568bfbbeef3eb2ba6d msgid "" "Standard text and tables are detected, brought in the right reading " "sequence and then together converted to **GitHub**-compatible " "**Markdown** text." msgstr "" -#: ../../pymupdf4llm/index.rst:32 4d3e28d4b9654f6889e99f25edeafb6f +#: ../../pymupdf4llm/index.rst:36 4d3e28d4b9654f6889e99f25edeafb6f msgid "" "Header lines are identified via the font size and appropriately prefixed " "with one or more `#` tags." msgstr "" -#: ../../pymupdf4llm/index.rst:34 d3dc9c01915e4fd5a47c1784eae70c00 +#: ../../pymupdf4llm/index.rst:38 d3dc9c01915e4fd5a47c1784eae70c00 msgid "" "Bold, italic, mono-spaced text and code blocks are detected and formatted" " accordingly. Similar applies to ordered and unordered lists." msgstr "" -#: ../../pymupdf4llm/index.rst:36 bc9f92950b5b4c038ed82153c462a0c6 +#: ../../pymupdf4llm/index.rst:40 bc9f92950b5b4c038ed82153c462a0c6 msgid "" "By default, all document pages are processed. If desired, a subset of " "pages can be specified by providing a list of `0`-based page numbers." msgstr "" -#: ../../pymupdf4llm/index.rst:40 24714fd3cb744a908099e19f1af6ce7e +#: ../../pymupdf4llm/index.rst:44 24714fd3cb744a908099e19f1af6ce7e msgid "Installation" msgstr "" -#: ../../pymupdf4llm/index.rst:43 dd73904df42146e18551936620e44355 +#: ../../pymupdf4llm/index.rst:47 dd73904df42146e18551936620e44355 msgid "Install the package via **pip** with:" msgstr "" -#: ../../pymupdf4llm/index.rst:54 a08840e778fe46379ec9110ad3c3608a +#: ../../pymupdf4llm/index.rst:58 a08840e778fe46379ec9110ad3c3608a msgid "Extracting a file as **Markdown**" msgstr "" -#: ../../pymupdf4llm/index.rst:56 98c0760b58c04cbeb1299faf5b79ab3f +#: ../../pymupdf4llm/index.rst:60 98c0760b58c04cbeb1299faf5b79ab3f msgid "" "To retrieve your document content in **Markdown** simply install the " "package and then use a couple of lines of **Python** code to get results." msgstr "" -#: ../../pymupdf4llm/index.rst:60 6a398956ca7f4c9c9057734393a79743 +#: ../../pymupdf4llm/index.rst:64 6a398956ca7f4c9c9057734393a79743 msgid "Then in your **Python** script do:" msgstr "" -#: ../../pymupdf4llm/index.rst:71 b227684a017d42e8b88f83ad2a3c673e +#: ../../pymupdf4llm/index.rst:75 b227684a017d42e8b88f83ad2a3c673e msgid "" "Instead of the filename string as above, one can also provide a " ":ref:`PyMuPDF Document `. A second parameter may be a list of " -"`0`-based page numbers, e.g. `[0,1]` would just select the first and " +"`0`-based page numbers, e.g. `[0, 1]` would just select the first and " "second pages of the document." msgstr "" -#: ../../pymupdf4llm/index.rst:74 a0929decafbc41cb86a00b46905219e0 +#: ../../pymupdf4llm/index.rst:78 a0929decafbc41cb86a00b46905219e0 msgid "" "If you want to store your **Markdown** file, e.g. store as a UTF8-encoded" " file, then do:" msgstr "" -#: ../../pymupdf4llm/index.rst:87 fe47c11343ec4d278c9f9cc524bccb86 +#: ../../pymupdf4llm/index.rst:91 fe47c11343ec4d278c9f9cc524bccb86 msgid "Extracting a file as a **LlamaIndex** document" msgstr "" -#: ../../pymupdf4llm/index.rst:89 6834228bb5524c319b8c3d5dbe8138d6 +#: ../../pymupdf4llm/index.rst:93 6834228bb5524c319b8c3d5dbe8138d6 msgid "" "|PyMuPDF4LLM| supports direct conversion to a **LLamaIndex** document. A " "document is first converted into **Markdown** format and then a " "**LlamaIndex** document is returned as follows:" msgstr "" -#: ../../pymupdf4llm/index.rst:103 e653025ecf1948759d96b33b7902c524 +#: ../../pymupdf4llm/index.rst:107 e653025ecf1948759d96b33b7902c524 msgid "Using with |PyMuPDF Pro|" msgstr "" -#: ../../pymupdf4llm/index.rst:106 9e877b4bd26d43cbaf81821091d51a1b +#: ../../pymupdf4llm/index.rst:110 9e877b4bd26d43cbaf81821091d51a1b msgid "" "For **Office** document support, |PyMuPDF4LLM| works seamlessly with " "|PyMuPDF Pro|. Assuming you have :doc:`../pymupdf-pro` installed you will" " be able to work with **Office** documents as expected:" msgstr "" -#: ../../pymupdf4llm/index.rst:117 ff1a10504dbe4b5381a2f6232a21b346 +#: ../../pymupdf4llm/index.rst:121 ff1a10504dbe4b5381a2f6232a21b346 msgid "" "As you can see |PyMuPDF Pro| functionality will be available within the " "|PyMuPDF4LLM| context!" msgstr "" -#: ../../pymupdf4llm/index.rst:122 32a7f061e08e4a6ca0f4f3fddb070669 +#: ../../pymupdf4llm/index.rst:126 32a7f061e08e4a6ca0f4f3fddb070669 msgid "API" msgstr "" -#: ../../pymupdf4llm/index.rst:124 b4ebede9414d489da467192cd788038a +#: ../../pymupdf4llm/index.rst:128 b4ebede9414d489da467192cd788038a msgid "See :ref:`the PyMuPDF4LLM API `." msgstr "" -#: ../../pymupdf4llm/index.rst:127 bb3e7108ffa0474c9130db24bde17039 +#: ../../pymupdf4llm/index.rst:131 bb3e7108ffa0474c9130db24bde17039 msgid "Further Resources" msgstr "" -#: ../../pymupdf4llm/index.rst:131 ec0ceb929e634253940d9d8b12c34e12 +#: ../../pymupdf4llm/index.rst:135 ec0ceb929e634253940d9d8b12c34e12 msgid "Sample code" msgstr "" -#: ../../pymupdf4llm/index.rst:133 f2d41ac1c1d24d9289e6ce68bc9370de +#: ../../pymupdf4llm/index.rst:137 f2d41ac1c1d24d9289e6ce68bc9370de msgid "" "`Command line RAG Chatbot with PyMuPDF " "`_" msgstr "" -#: ../../pymupdf4llm/index.rst:134 bf6ddba28b86427ab7c934e3fe869608 +#: ../../pymupdf4llm/index.rst:138 bf6ddba28b86427ab7c934e3fe869608 msgid "" "`Example of a Browser Application using Langchain and PyMuPDF " "`_" msgstr "" -#: ../../pymupdf4llm/index.rst:138 05f33a793ba04dbea19e7a464b4c8cd5 +#: ../../pymupdf4llm/index.rst:142 05f33a793ba04dbea19e7a464b4c8cd5 msgid "Blogs" msgstr "" -#: ../../pymupdf4llm/index.rst:140 d6c3173afe6a4dbd880c662d9a8b9e66 +#: ../../pymupdf4llm/index.rst:144 d6c3173afe6a4dbd880c662d9a8b9e66 msgid "" "`RAG/LLM and PDF: Enhanced Text Extraction `_" msgstr "" -#: ../../pymupdf4llm/index.rst:141 2469a1a8ebb649b083d10e876d5b3022 +#: ../../pymupdf4llm/index.rst:145 2469a1a8ebb649b083d10e876d5b3022 msgid "" "`Creating a RAG Chatbot with ChatGPT and PyMuPDF " "`_" msgstr "" -#: ../../pymupdf4llm/index.rst:142 750da7ec1111406c9f24fe09151140ae +#: ../../pymupdf4llm/index.rst:146 750da7ec1111406c9f24fe09151140ae msgid "" "`Building a RAG Chatbot GUI with the ChatGPT API and PyMuPDF " "`_" msgstr "" -#: ../../pymupdf4llm/index.rst:143 d820865d4e2b470b975fd95e67ec0436 +#: ../../pymupdf4llm/index.rst:147 d820865d4e2b470b975fd95e67ec0436 msgid "" "`RAG/LLM and PDF: Conversion to Markdown Text with PyMuPDF " "`. A second" +#~ " parameter may be a list of " +#~ "`0`-based page numbers, e.g. `[0,1]` " +#~ "would just select the first and " +#~ "second pages of the document." +#~ msgstr "" + From 3988121067ffedb03567dc69cda607a2943b33e4 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 17:12:34 +0000 Subject: [PATCH 07/23] Test push to validate RTD sync. --- docs/locales/ko/LC_MESSAGES/about.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/about.po b/docs/locales/ko/LC_MESSAGES/about.po index f9db35449..f0c175fc1 100644 --- a/docs/locales/ko/LC_MESSAGES/about.po +++ b/docs/locales/ko/LC_MESSAGES/about.po @@ -37,11 +37,11 @@ msgstr "" #: ../../about.rst:10 6bf350a1548242f08f4231816b75ae9e msgid "Features Comparison" -msgstr "" +msgstr "기능 비교" #: ../../about.rst:16 e6e0680f36684a24b35c48e7756b8ee2 msgid "Feature Matrix" -msgstr "" +msgstr "기능 매트릭스" #: ../../about.rst:18 fdad9ebd21e342da9d1b6b35ca5ad4e9 msgid "" From d79aa188d4ee22c7a811f1034dc0ef2716a9ebc1 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 17:22:28 +0000 Subject: [PATCH 08/23] Another RTD sync test --- docs/locales/ko/LC_MESSAGES/about.mo | Bin 424 -> 734 bytes docs/locales/ko/LC_MESSAGES/about.po | 2 +- docs/locales/ko/LC_MESSAGES/page.mo | Bin 424 -> 696 bytes .../ko/LC_MESSAGES/pymupdf-layout/index.mo | Bin 424 -> 424 bytes docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo | Bin 424 -> 424 bytes .../locales/ko/LC_MESSAGES/pymupdf4llm/index.mo | Bin 424 -> 424 bytes 6 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/locales/ko/LC_MESSAGES/about.mo b/docs/locales/ko/LC_MESSAGES/about.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..0a4a5782e44dacab2cf76c2adc7c81e85153f55f 100644 GIT binary patch delta 366 zcmYj~!Ab&A6o#*5%L;1S;ygh31nmlUf(zT#VzQ~Zbo0v09VSE2pdv;CBQ+Nd1dZvU zz|z3T*J$el%(=cpM?vtw$AA9+a{k+09%8?V$b0sy)^23r6C diff --git a/docs/locales/ko/LC_MESSAGES/about.po b/docs/locales/ko/LC_MESSAGES/about.po index f0c175fc1..30f971481 100644 --- a/docs/locales/ko/LC_MESSAGES/about.po +++ b/docs/locales/ko/LC_MESSAGES/about.po @@ -47,7 +47,7 @@ msgstr "기능 매트릭스" msgid "" "The following table illustrates how |PyMuPDF| compares with other typical" " solutions." -msgstr "" +msgstr "다음 표는 |PyMuPDF| 가 다른 일반적인 솔루션들과 어떻게 비교되는지 보여줍니다." #: ../../about.rst:47 5f1d6f3b09ac43e1ae7043dc7a879c02 msgid "" diff --git a/docs/locales/ko/LC_MESSAGES/page.mo b/docs/locales/ko/LC_MESSAGES/page.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..7eec4ca1a62cb4e8a9638cb85daba9c7ebcdddc5 100644 GIT binary patch delta 328 zcmZ3%yo0s=o)F7a1|VPpVi_RT0dbIk4Uk<1#I`_O#mK<01xR-Qu|7ycfQy?#eqK(c zm4ZuAV!1-1LULwNa!#s3Vo`o+UW$TNa%x^lYLS+LhE+;pNupIkL4IalNqkObc4~sA zLV0FMhJs0=LQ!H$W@)iPewu<7gsG*c5S*H-V3nI%l3|q)oRL_Ns+R&ZKOSOwg5E}* z8pe8%-ES7OyqUGqO5x3tiEp~sV6)}T+!lpbJ2t#o((q=^p4SWKD7@Y<%8#mW50syi51{44Q diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.mo b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..118dabadb702a5de54b0f683ce5945e22ab3dae2 100644 GIT binary patch delta 18 ZcmZ3%yn=Z`GrO6Bp}CcT$;K`@MgTPV1t$Oi delta 18 ZcmZ3%yn=Z`GrOsRk+GGr@y0GWMgTPA1tkCg diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..118dabadb702a5de54b0f683ce5945e22ab3dae2 100644 GIT binary patch delta 18 ZcmZ3%yn=Z`GrO6Bp}CcT$;K`@MgTPV1t$Oi delta 18 ZcmZ3%yn=Z`GrOsRk+GGr@y0GWMgTPA1tkCg diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.mo b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..118dabadb702a5de54b0f683ce5945e22ab3dae2 100644 GIT binary patch delta 18 ZcmZ3%yn=Z`GrO6Bp}CcT$;K`@MgTPV1t$Oi delta 18 ZcmZ3%yn=Z`GrOsRk+GGr@y0GWMgTPA1tkCg From 02154714a32b883ba6a5a9717a7cc6f55ed0ab82 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Wed, 26 Nov 2025 17:34:27 +0000 Subject: [PATCH 09/23] Updates README. --- docs/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/README.md b/docs/README.md index 8326bcc04..69794f948 100644 --- a/docs/README.md +++ b/docs/README.md @@ -79,6 +79,15 @@ Once built HTML docs HTML pages are in `_build/html/ko`. Note: subsequent runs can omit the `-a` parameter to speed up builds (it will just build what has changed). +Note: When build the corresponding `.mo` binary files will also be generated - these updated binaries should also be committed to Git. + +### Depoloying + +Docs will be automatically deployed to RTD once pushes are made to relevant branches. + + +### Updating + - Updating, after changes on the `main` branch and a sync with the main `en` .rst files, from the "docs" location, do: `sphinx-build -b gettext . _build/gettext` @@ -91,6 +100,11 @@ then: This will update the corresponding `po` files for further edits. Then check these files for "#, fuzzy" entries as the new stuff might exist there and requires editing. + + + + + ## Building PDF documentation - First ensure you have [rst2pdf](https://pypi.org/project/rst2pdf/) installed: From 6d14d4070ac3989685c2cef6395a0be586c5813e Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Tue, 2 Dec 2025 16:15:17 +0000 Subject: [PATCH 10/23] Updates pymupdf4llm API page --- .../locales/ko/LC_MESSAGES/pymupdf4llm/api.mo | Bin 424 -> 23309 bytes .../locales/ko/LC_MESSAGES/pymupdf4llm/api.po | 1338 +++++++---------- 2 files changed, 529 insertions(+), 809 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.mo index 118dabadb702a5de54b0f683ce5945e22ab3dae2..14afbebf12e309392b8bf0a5ad4fef69245b45cc 100644 GIT binary patch literal 23309 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 delta 114 zcmeC(#<+sn|DF)bR0bem1Y#K=RsnI4fDVvd1(ehUi3JqpXQd{W=z6B;hNTu2XXfWw xDFjsdmIk=EDH!S*ndzBNZVR6$lAX`xlbDxYnwXxd8, 2025. +# FIRST AUTHOR , 2024. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PyMuPDF 1.26.7\n" +"Project-Id-Version: PyMuPDF 1.24.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-11-26 17:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Language: ko\n" -"Language-Team: ko \n" +"Language: ja\n" +"Language-Team: ja \n" "Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -41,813 +41,533 @@ msgstr "" #: ../../pymupdf4llm/api.rst:12 e4fe663d1ee04cf7bbc808eeb9ce308b msgid "The |PyMuPDF4LLM| API" -msgstr "" +msgstr "|PyMuPDF4LLM| API" #: ../../footer.rst:46 1ed68f4bf8fd45fab04f7a49fba09f0a msgid "This documentation covers all versions up to |version|." msgstr "" -#~ msgid "Prints the version of the library." -#~ msgstr "" - -#~ msgid "" -#~ "Reads the pages of the file and" -#~ " outputs the text of its pages " -#~ "in |JSON| format." -#~ msgstr "" - -#~ msgid "Parameters" -#~ msgstr "" - -#~ msgid "" -#~ "the file, to be specified either " -#~ "as a file path string, or as " -#~ "a |PyMuPDF| :class:`Document` (created via " -#~ "`pymupdf.open`). In order to use " -#~ "`pathlib.Path` specifications, Python file-" -#~ "like objects, documents in memory etc." -#~ " you **must** use a |PyMuPDF| " -#~ ":class:`Document`." -#~ msgstr "" - -#~ msgid "" -#~ "specify the desired image resolution in" -#~ " dots per inch. Default value is " -#~ "150." -#~ msgstr "" - -#~ msgid "" -#~ "specify the desired image format via " -#~ "its extension. Default is \"png\" " -#~ "(portable network graphics). Another popular" -#~ " format may be \"jpg\". Possible " -#~ "values are all :ref:`supported output " -#~ "formats `." -#~ msgstr "" - -#~ msgid "" -#~ "store images in this folder. Relevant" -#~ " if `write_images=True`. Default is the " -#~ "path of the script directory." -#~ msgstr "" - -#~ msgid "" -#~ "optional, the pages to consider for " -#~ "output (caution: specify 0-based page " -#~ "numbers). If omitted (`None`) all pages" -#~ " are processed." -#~ msgstr "" - -#~ msgid "" -#~ "Please note that page ``header`` / " -#~ "``footer`` exclusion is not applicable " -#~ "to |JSON| output as it aims to " -#~ "always represent all data for the " -#~ "included pages." -#~ msgstr "" - -#~ msgid "" -#~ "Reads the pages of the file and" -#~ " outputs the text of its pages " -#~ "in |Markdown| format. How this should" -#~ " happen in detail can be influenced" -#~ " by a number of parameters. Please" -#~ " note that **support for building " -#~ "page chunks** from the |Markdown| text" -#~ " is supported." -#~ msgstr "" - -#~ msgid "" -#~ "does a simple check for the " -#~ "general background color of the pages" -#~ " (default is ``True``). If any text" -#~ " or vector has this color it " -#~ "will be ignored. May increase detection" -#~ " accuracy." -#~ msgstr "" - -#~ msgid "" -#~ "specify the desired image resolution in" -#~ " dots per inch. Relevant only if " -#~ "`write_images=True`. Default value is 150." -#~ msgstr "" - -#~ msgid "" -#~ "like `write_images`, but images will be" -#~ " included in the markdown text as " -#~ "base64-encoded strings. Ignores `write_images` " -#~ "and `image_path` if used. This may " -#~ "drastically increase the size of your" -#~ " markdown text." -#~ msgstr "" - -#~ msgid "" -#~ "a value of `True` enforces " -#~ "`page_chunks=True` and adds key \"words\" " -#~ "to each page dictionary. Its value " -#~ "is a list of words as delivered" -#~ " by PyMuPDF's `Page` method " -#~ "`get_text(\"words\")`. The sequence of the " -#~ "words in this list is the same " -#~ "as the extracted text." -#~ msgstr "" - -#~ msgid "" -#~ "(New in v.0.0.19) Overwrites or sets " -#~ "the desired image file name of " -#~ "written images. Useful when the document" -#~ " is provided as a memory object " -#~ "(which has no inherent file name)." -#~ msgstr "" - -#~ msgid "" -#~ "limit the font size to consider " -#~ "for text extraction. If the font " -#~ "size is lower than what is set " -#~ "then the text won't be considered " -#~ "for extraction. Default is `3`, meaning" -#~ " only text with a font size `>=" -#~ " 3` will be considered for " -#~ "extraction." -#~ msgstr "" - -#~ msgid "" -#~ "boolean to switch on/off footer content." -#~ " This parameter controls whether we " -#~ "want to include or omit the footer" -#~ " content from all the document pages." -#~ " Useful if the document has " -#~ "repetitive footer content which doesn't " -#~ "add any value to the overall " -#~ "extraction data. Default is `True` " -#~ "meaning that footer content will be " -#~ "considered." -#~ msgstr "" - -#~ msgid "" -#~ "generate text output even when " -#~ "overlapping images / graphics. This text" -#~ " then appears after the respective " -#~ "image. If `write_images=True` this parameter" -#~ " may be `False` to suppress " -#~ "repetition of text on images." -#~ msgstr "" - -#~ msgid "" -#~ "use this to limit dealing with " -#~ "excess amounts of vector graphics " -#~ "elements. Scientific documents, or pages " -#~ "simulating text via graphics commands " -#~ "may contain tens of thousands of " -#~ "these objects. As vector graphics are" -#~ " analyzed for multiple purposes, runtime" -#~ " may quickly become intolerable. With " -#~ "this parameter, all vector graphics will" -#~ " be ignored if their count exceeds" -#~ " the threshold. **Changed in v0.0.19:** " -#~ "The page will still be processed, " -#~ "and text, tables and images should " -#~ "be extracted." -#~ msgstr "" - -#~ msgid "" -#~ "use this if you want to provide" -#~ " your own header detection logic. " -#~ "This may be a callable or an " -#~ "object having a method named " -#~ "`get_header_id`. It must accept a text" -#~ " span (a span dictionary as contained" -#~ " in :meth:`~.extractDICT`) and a keyword" -#~ " parameter \"page\" (which is the " -#~ "owning :ref:`Page ` object). It " -#~ "must return a string \"\" or up" -#~ " to 6 \"#\" characters followed by" -#~ " 1 space. If omitted (`None`), a " -#~ "full document scan will be performed " -#~ "to find the most popular font " -#~ "sizes and derive header levels based " -#~ "on them. To completely avoid this " -#~ "behavior specify `hdr_info=lambda s, " -#~ "page=None: \"\"` or `hdr_info=False`." -#~ msgstr "" - -#~ msgid "" -#~ "boolean to switch on/off header content." -#~ " This parameter controls whether we " -#~ "want to include or omit the header" -#~ " content from all the document pages." -#~ " Useful if the document has " -#~ "repetitive header content which doesn't " -#~ "add any value to the overall " -#~ "extraction data. Default is `True` " -#~ "meaning that header content will be " -#~ "considered." -#~ msgstr "" - -#~ msgid "" -#~ "if ``True`` includes text even when " -#~ "completely transparent. Default is ``False``:" -#~ " transparent text will be ignored " -#~ "which usually increases detection accuracy." -#~ msgstr "" - -#~ msgid "" -#~ "if `True` then mono-spaced text " -#~ "does not receive special formatting. " -#~ "Code blocks will no longer be " -#~ "generated. This value is set to " -#~ "`True` if `extract_words=True` is used." -#~ msgstr "" - -#~ msgid "" -#~ "(New in v.0.0.20) Disregard vector " -#~ "graphics on the page. This may " -#~ "help detecting text correctly when pages" -#~ " are very crowded (often the case " -#~ "for documents representing presentation " -#~ "slides). Also speeds up processing time." -#~ " This automatically prevents table " -#~ "detection." -#~ msgstr "" - -#~ msgid "" -#~ "(New in v.0.0.20) Disregard images on" -#~ " the page. This may help detecting" -#~ " text correctly when pages are very" -#~ " crowded (often the case for " -#~ "documents representing presentation slides). " -#~ "Also speeds up processing time." -#~ msgstr "" - -#~ msgid "" -#~ "this must be a ``0 <= value " -#~ "< 1``. Images are ignored if " -#~ "`width / page.rect.width <= image_size_limit`" -#~ " or `height / page.rect.height <= " -#~ "image_size_limit`. For instance, the default" -#~ " value 0.05 means that to be " -#~ "considered for inclusion, an image's " -#~ "width and height must be larger " -#~ "than 5% of the page's width and" -#~ " height, respectively." -#~ msgstr "" - -#~ msgid "" -#~ "a float or a sequence of 2 " -#~ "or 4 floats specifying page borders. " -#~ "Only objects inside the margins will " -#~ "be considered for output. * `margin=f`" -#~ " yields `(f, f, f, f)` for " -#~ "`(left, top, right, bottom)`. * `(top," -#~ " bottom)` yields `(0, top, 0, " -#~ "bottom)`. * To always read full " -#~ "pages **(default)**, use `margins=0`." -#~ msgstr "" - -#~ msgid "" -#~ "a float or a sequence of 2 " -#~ "or 4 floats specifying page borders. " -#~ "Only objects inside the margins will " -#~ "be considered for output." -#~ msgstr "" - -#~ msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." -#~ msgstr "" - -#~ msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." -#~ msgstr "" - -#~ msgid "To always read full pages **(default)**, use `margins=0`." -#~ msgstr "" - -#~ msgid "" -#~ "if `True` the output will be a " -#~ "list of `Document.page_count` dictionaries " -#~ "(one per page). Each dictionary has " -#~ "the following structure: - **\"metadata\"**" -#~ " - a dictionary consisting of the " -#~ "document's metadata :attr:`Document.metadata`, " -#~ "enriched with additional keys " -#~ "**\"file_path\"** (the file name), " -#~ "**\"page_count\"** (number of pages in " -#~ "document), and **\"page_number\"** (1-based " -#~ "page number). - **\"toc_items\"** - a" -#~ " list of Table of Contents items " -#~ "pointing to this page. Each item " -#~ "of this list has the format `[lvl," -#~ " title, pagenumber]`, where `lvl` is " -#~ "the hierarchy level, `title` a string" -#~ " and `pagenumber` as a 1-based page" -#~ " number. - **\"tables\"** - a list" -#~ " of tables on this page. Each " -#~ "item is a dictionary with keys " -#~ "\"bbox\", \"row_count\" and \"col_count\". Key" -#~ " \"bbox\" is a `pymupdf.Rect` in " -#~ "tuple format of the table's position " -#~ "on the page. - **\"images\"** - a" -#~ " list of images on the page. " -#~ "This a copy of page method " -#~ ":meth:`Page.get_image_info`. - **\"graphics\"** -" -#~ " a list of vector graphics rectangles" -#~ " on the page. This is a list" -#~ " of boundary boxes of clustered " -#~ "vector graphics as delivered by method" -#~ " :meth:`Page.cluster_drawings`. - **\"text\"** -" -#~ " page content as |Markdown| text. -" -#~ " **\"words\"** - if `extract_words=True` " -#~ "was used. This is a list of " -#~ "tuples `(x0, y0, x1, y1, \"wordstring\"," -#~ " bno, lno, wno)` as delivered by " -#~ "`page.get_text(\"words\")`. The **sequence** of " -#~ "these tuples however is the same " -#~ "as produced in the markdown text " -#~ "string and thus honors multi-column " -#~ "text. This is also true for text" -#~ " in tables: words are extracted in" -#~ " the sequence of table row cells." -#~ msgstr "" - -#~ msgid "" -#~ "if `True` the output will be a " -#~ "list of `Document.page_count` dictionaries " -#~ "(one per page). Each dictionary has " -#~ "the following structure:" -#~ msgstr "" - -#~ msgid "" -#~ "**\"metadata\"** - a dictionary consisting " -#~ "of the document's metadata " -#~ ":attr:`Document.metadata`, enriched with additional" -#~ " keys **\"file_path\"** (the file name)," -#~ " **\"page_count\"** (number of pages in " -#~ "document), and **\"page_number\"** (1-based " -#~ "page number)." -#~ msgstr "" - -#~ msgid "" -#~ "**\"toc_items\"** - a list of Table " -#~ "of Contents items pointing to this " -#~ "page. Each item of this list has" -#~ " the format `[lvl, title, pagenumber]`, " -#~ "where `lvl` is the hierarchy level, " -#~ "`title` a string and `pagenumber` as " -#~ "a 1-based page number." -#~ msgstr "" - -#~ msgid "" -#~ "**\"tables\"** - a list of tables " -#~ "on this page. Each item is a " -#~ "dictionary with keys \"bbox\", \"row_count\"" -#~ " and \"col_count\". Key \"bbox\" is a" -#~ " `pymupdf.Rect` in tuple format of " -#~ "the table's position on the page." -#~ msgstr "" - -#~ msgid "" -#~ "**\"images\"** - a list of images " -#~ "on the page. This a copy of " -#~ "page method :meth:`Page.get_image_info`." -#~ msgstr "" - -#~ msgid "" -#~ "**\"graphics\"** - a list of vector " -#~ "graphics rectangles on the page. This" -#~ " is a list of boundary boxes of" -#~ " clustered vector graphics as delivered " -#~ "by method :meth:`Page.cluster_drawings`." -#~ msgstr "" - -#~ msgid "**\"text\"** - page content as |Markdown| text." -#~ msgstr "" - -#~ msgid "" -#~ "**\"words\"** - if `extract_words=True` was" -#~ " used. This is a list of tuples" -#~ " `(x0, y0, x1, y1, \"wordstring\", " -#~ "bno, lno, wno)` as delivered by " -#~ "`page.get_text(\"words\")`. The **sequence** of " -#~ "these tuples however is the same " -#~ "as produced in the markdown text " -#~ "string and thus honors multi-column " -#~ "text. This is also true for text" -#~ " in tables: words are extracted in" -#~ " the sequence of table row cells." -#~ msgstr "" - -#~ msgid "" -#~ "specify a desired page height. For " -#~ "relevance see the `page_width` parameter. " -#~ "If using the default `None`, the " -#~ "document will appear as one large " -#~ "page with a width of `page_width`. " -#~ "Consequently in this case, no markdown" -#~ " page separators will occur (except " -#~ "the final one), respectively only one" -#~ " page chunk will be returned." -#~ msgstr "" - -#~ msgid "" -#~ "if ``True`` inserts a string ``--- " -#~ "end of page=n ---`` at the end " -#~ "of each page output. Intended for " -#~ "debugging purposes. The page number if" -#~ " 0-based. The separator string is " -#~ "wrapped with line breaks. Default is " -#~ "``False``." -#~ msgstr "" - -#~ msgid "" -#~ "specify a desired page width. This " -#~ "is ignored for documents with a " -#~ "fixed page width like PDF, XPS " -#~ "etc. **Reflowable** documents however, like" -#~ " e-books, office [#f2]_ or text files" -#~ " have no fixed page dimensions and" -#~ " by default are assumed to have " -#~ "Letter format width (612) and an " -#~ "**\"infinite\"** page height. This means " -#~ "that the **full document is treated " -#~ "as one large page.**" -#~ msgstr "" - -#~ msgid "" -#~ "Default is `False`. A value of " -#~ "`True` displays a text-based progress" -#~ " bar as pages are being converted " -#~ "to Markdown. It will look similar " -#~ "to the following:: Processing input.pdf..." -#~ " [==================== ] (148/291)" -#~ msgstr "" - -#~ msgid "" -#~ "Default is `False`. A value of " -#~ "`True` displays a text-based progress" -#~ " bar as pages are being converted " -#~ "to Markdown. It will look similar " -#~ "to the following::" -#~ msgstr "" - -#~ msgid "" -#~ "Processing input.pdf... [====================" -#~ " ] (148/291)" -#~ msgstr "" - -#~ msgid "" -#~ "see: :meth:`table detection strategy " -#~ "`. Default is `\"lines_strict\"`" -#~ " which ignores background colors. In " -#~ "some occasions, other strategies may be" -#~ " more successful, for example `\"lines\"`" -#~ " which uses all vector graphics " -#~ "objects for detection. **Changed in " -#~ "v0.0.19:** A value of `None` will " -#~ "not perform any table detection at " -#~ "all. This may be useful when you" -#~ " know that your document contains no" -#~ " tables. Execution time savings can " -#~ "be significant." -#~ msgstr "" - -#~ msgid "" -#~ "(New in v.0.0.19) Default is `False`." -#~ " A value of `True` will use the" -#~ " glyph number of the characters " -#~ "instead of the character itself if " -#~ "the font does not store the " -#~ "Unicode value." -#~ msgstr "" - -#~ msgid "" -#~ "when encountering images or vector " -#~ "graphics, images will be created from" -#~ " the respective page area and stored" -#~ " in the specified folder. |Markdown| " -#~ "references will be generated pointing to" -#~ " these images. Any text contained in" -#~ " these areas will not be included " -#~ "in the text output (but appear as" -#~ " part of the images). Therefore, if" -#~ " for instance your document has text" -#~ " written on full page images, make" -#~ " sure to set this parameter to " -#~ "`False`." -#~ msgstr "" - -#~ msgid "Returns" -#~ msgstr "" - -#~ msgid "" -#~ "Either a string of the combined " -#~ "text of all selected document pages, " -#~ "or a list of dictionaries." -#~ msgstr "" - -#~ msgid "" -#~ "Please see :ref:`PyMuPDF Layout and " -#~ "parameter caveats `." -#~ msgstr "" - -#~ msgid "" -#~ "Reads the pages of the file and" -#~ " outputs the text of its pages " -#~ "in |TXT| format." -#~ msgstr "" - -#~ msgid "" -#~ "if `True` then mono-spaced text " -#~ "does not receive special formatting. " -#~ "Code blocks will no longer be " -#~ "generated." -#~ msgstr "" - -#~ msgid "" -#~ "Create a `pdf_markdown_reader.PDFMarkdownReader` " -#~ "using the `LlamaIndex`_ package. Please " -#~ "note that this package will **not " -#~ "automatically be installed** when installing" -#~ " **pymupdf4llm**." -#~ msgstr "" - -#~ msgid "" -#~ "For details on the possible arguments," -#~ " please consult the LlamaIndex " -#~ "documentation [#f1]_." -#~ msgstr "" - -#~ msgid "raises" -#~ msgstr "" - -#~ msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." -#~ msgstr "" - -#~ msgid "" -#~ "a `pdf_markdown_reader.PDFMarkdownReader` and issues" -#~ " message \"Successfully imported LlamaIndex\"." -#~ " Please note that this method needs" -#~ " several seconds to execute. For " -#~ "details on using the markdown reader " -#~ "please see below." -#~ msgstr "" - -#~ msgid "" -#~ "Create an object which maps text " -#~ "font sizes to the respective number " -#~ "of '#' characters which are used " -#~ "by Markdown syntax to indicate header" -#~ " levels. The object is created by " -#~ "scanning the document for font size " -#~ "\"popularity\". The most popular font " -#~ "size and all smaller sizes are " -#~ "used for body text. Larger font " -#~ "sizes are mapped to the respective " -#~ "header levels - which correspond to " -#~ "the HTML tags `

` to `

`." -#~ msgstr "" - -#~ msgid "All font sizes are rounded to integer values." -#~ msgstr "" - -#~ msgid "" -#~ "If more than 6 header levels would" -#~ " be required, then the largest number" -#~ " smaller than the `
` font size" -#~ " is used for body text." -#~ msgstr "" - -#~ msgid "" -#~ "Please note that creating the object " -#~ "will read and inspect the text of" -#~ " the entire document - independently " -#~ "of reading the document again in " -#~ "the `to_markdown()` method subsequently. " -#~ "Method `to_markdown()` by default **will " -#~ "create this object** if you do not" -#~ " override its `hdr_info=None` parameter." -#~ msgstr "" - -#~ msgid "" -#~ "the file, to be specified either " -#~ "as a file path string, or as " -#~ "a |PyMuPDF| Document (created via " -#~ "`pymupdf.open`). In order to use " -#~ "`pathlib.Path` specifications, Python file-" -#~ "like objects, documents in memory etc." -#~ " you **must** use a |PyMuPDF| " -#~ "Document." -#~ msgstr "" - -#~ msgid "optional, the pages to consider. If omitted all pages are processed." -#~ msgstr "" - -#~ msgid "" -#~ "the default font size limit for " -#~ "body text. Only used when the " -#~ "document scan does not deliver valid " -#~ "information." -#~ msgstr "" - -#~ msgid "" -#~ "the maximum number of header levels " -#~ "to be used. Valid values are in" -#~ " `range(1, 7)`. The default is 6, " -#~ "which corresponds to the HTML tags " -#~ "`

` to `

`. A smaller value " -#~ "will limit the number of generated " -#~ "header levels. For instance, a value " -#~ "of 3 will only generate header " -#~ "tags \"#\", \"##\" and \"###\". Body " -#~ "text will be assumed for all font" -#~ " sizes smaller than the one " -#~ "corresponding to \"###\"." -#~ msgstr "" - -#~ msgid "" -#~ "Return appropriate markdown header prefix. " -#~ "This is either \"\" or a string" -#~ " of \"#\" characters followed by a" -#~ " space." -#~ msgstr "" - -#~ msgid "" -#~ "Given a text span from a " -#~ "\"dict\"\" extraction, determine the markdown" -#~ " header prefix string of 0 to n" -#~ " concatenated '#' characters." -#~ msgstr "" - -#~ msgid "" -#~ "a dictionary containing the text span" -#~ " information. This is the same " -#~ "dictionary as returned by " -#~ "`page.get_text(\"dict\")`." -#~ msgstr "" - -#~ msgid "" -#~ "the owning page object. This can " -#~ "be used when additional information " -#~ "needs to be extracted." -#~ msgstr "" - -#~ msgid "a string of \"#\" characters followed by a space." -#~ msgstr "" - -#~ msgid "" -#~ "A dictionary mapping (integer) font " -#~ "sizes to Markdown header strings like" -#~ " ``{14: '# ', 12: '## '}``. The" -#~ " dictionary is created by the " -#~ ":class:`IdentifyHeaders` constructor. The keys " -#~ "are the font sizes of the text " -#~ "spans in the document. The values " -#~ "are the respective header strings." -#~ msgstr "" - -#~ msgid "" -#~ "An integer value indicating the font " -#~ "size limit for body text. This is" -#~ " computed as ``min(header_id.keys()) - 1``." -#~ " In the above example, body_limit " -#~ "would be 11." -#~ msgstr "" - -#~ msgid "**How to limit header levels (example)**" -#~ msgstr "" - -#~ msgid "Limit the generated header levels to 3::" -#~ msgstr "" - -#~ msgid "**How to provide your own header logic (example 1)**" -#~ msgstr "" - -#~ msgid "Provide your own function which uses pre-determined, fixed font sizes::" -#~ msgstr "" - -#~ msgid "**How to provide your own header logic (example 2)**" -#~ msgstr "" - -#~ msgid "" -#~ "This user function uses the document's" -#~ " Table of Contents -- under the " -#~ "assumption that the bookmark text is " -#~ "also present as a header line on" -#~ " the page (which certainly need not" -#~ " be the case!)::" -#~ msgstr "" - -#~ msgid "" -#~ "Create an object which uses the " -#~ "document's Table of Contents (TOC) to" -#~ " determine header levels. Upon object " -#~ "creation, the table of contents is " -#~ "read via the `Document.get_toc()` method. " -#~ "The TOC data is then used to " -#~ "determine header levels in the " -#~ "`to_markdown()` method." -#~ msgstr "" - -#~ msgid "" -#~ "This is an alternative to " -#~ ":class:`IdentifyHeaders`. Instead of running " -#~ "through the full document to identify" -#~ " font sizes, it uses the document's" -#~ " Table Of Contents (TOC) to identify" -#~ " headers on pages. Like " -#~ ":class:`IdentifyHeaders`, this also is no " -#~ "guarantee to find headers, but for " -#~ "well-built Table of Contents, there " -#~ "is a good chance for more " -#~ "correctly identifying header lines on " -#~ "document pages than the font-size-" -#~ "based approach." -#~ msgstr "" - -#~ msgid "" -#~ "It also has the advantage of being" -#~ " much faster than the font-size-" -#~ "based approach, as it does not " -#~ "execute a full document scan or " -#~ "even access any of the document " -#~ "pages." -#~ msgstr "" - -#~ msgid "" -#~ "Examples where this approach works very" -#~ " well are the Adobe's files on " -#~ "PDF documentation." -#~ msgstr "" - -#~ msgid "" -#~ "Please note that this feature **does " -#~ "not read document pages** where the " -#~ "table of contents may exist as " -#~ "normal standard text. It only accesses" -#~ " data as provided by the " -#~ "`Document.get_toc()` method. It will not " -#~ "identify any headers for documents where" -#~ " the table of contents is not " -#~ "available as a collection of bookmarks." -#~ msgstr "" - -#~ msgid "" -#~ "Return appropriate markdown header prefix. " -#~ "This is either an empty string or" -#~ " a string of \"#\" characters " -#~ "followed by a space." -#~ msgstr "" - -#~ msgid "" -#~ "Given a text span from a \"dict\"" -#~ " extraction variant, determine the markdown" -#~ " header prefix string of 0 to n" -#~ " concatenated \"#\" characters." -#~ msgstr "" - -#~ msgid "**How to use class TocHeaders**" -#~ msgstr "" - -#~ msgid "" -#~ "This is a version of previous " -#~ "**example 2** that uses :class:`TocHeaders`" -#~ " for header identification::" -#~ msgstr "" - -#~ msgid "" -#~ "This is the only method of the " -#~ "markdown reader you should currently use" -#~ " to extract markdown data. Please in" -#~ " any case ignore methods `aload_data()` " -#~ "and `lazy_load_data()`. Other methods like " -#~ "`use_doc_meta()` may or may not make " -#~ "sense. For more information, please " -#~ "consult the LlamaIndex documentation [#f1]_." -#~ msgstr "" - -#~ msgid "Under the hood the method will execute `to_markdown()`." -#~ msgstr "" - -#~ msgid "a list of `LlamaIndexDocument` documents - one for each page." -#~ msgstr "" - -#~ msgid "" -#~ "For a list of changes, please see" -#~ " file `CHANGES.md " -#~ "`_." -#~ msgstr "" - -#~ msgid "Footnotes" -#~ msgstr "" - -#~ msgid "`LlamaIndex documentation `_" -#~ msgstr "" - -#~ msgid "" -#~ "When using PyMuPDF-Pro, supported office" -#~ " documents are converted internally into" -#~ " a PDF-like format. Therefore, they" -#~ " **will have fixed page dimensions** " -#~ "and be no longer \"reflowable\". " -#~ "Consequently, the page width and page" -#~ " height specifications will be ignored " -#~ "as well in these cases." -#~ msgstr "" +msgid "Prints the version of the library." +msgstr "" + +msgid "Reads the pages of the file and outputs the text of its pages in |Markdown| format. How this should happen in detail can be influenced by a number of parameters. Please note that **support for building page chunks** from the |Markdown| text is supported." +msgstr "" + +msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Ignored| does a simple check for the general background color of the pages (default is ``True``). If any text or vector has this color it will be ignored. May increase detection accuracy." +msgstr "" + +msgid "specify the desired image resolution in dots per inch. Relevant only if `write_images=True` or `embed_images=True`. Default value is 150." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Valid| use :ref:`OCR capability ` to help analyse the page." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Valid| specify the desired image resolution in dots per inch for applying OCR to the intermediate image of the page. Default value is 400. Only relevant if the page has been determined to profit from OCR (no or few text, most of the page covered by images or character-like vectors, etc.). Large values may increase the OCR precision but increase memory requirements and processing time. There also is a risk of over-sharpening the image which may decrease OCR precision. So the default value should probably be sufficiently high." +msgstr "" + +msgid "like `write_images`, but images will be included in the markdown text as base64-encoded strings. Mutually exclusive with `write_images` and ignores `image_path`. This may drastically increase the size of your markdown text." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Ignored| a value of `True` enforces `page_chunks=True` and adds key "words" to each page dictionary. Its value is a list of words as delivered by PyMuPDF's `Page` method `get_text("words")`. The sequence of the words in this list is the same as the extracted text." +msgstr "" + +msgid "Overwrites or sets the desired image file name of written images. Useful when the document is provided as a memory object (which has no inherent file name)." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Ignored| limit the font size to consider for text extraction. If the font size is lower than what is set then the text won't be considered for extraction. Default is `3`, meaning only text with a font size `>= 3` will be considered for extraction." +msgstr "" + +msgid "|PyMuPDFLayoutMode_Valid| boolean to switch on/off page footer content. This parameter controls whether to include or omit footer text from all the document pages. Useful if the document has repetitive footer content which doesn't add any value to the overall extraction data. Default is `True` meaning that footer content will be considered." +msgstr "" + + +msgid "generate text output even when overlapping images / graphics. This text then appears after the respective image." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| use this to limit dealing with excess amounts of vector graphics elements. Scientific documents, or pages simulating text via graphics commands may contain tens of thousands of these objects. As vector graphics are analyzed for multiple purposes, runtime may quickly become intolerable. With this parameter, all vector graphics will be ignored if their count exceeds the threshold." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| use this if you want to provide your own header detection logic. This may be a callable or an object having a method named `get_header_id`. It must accept a text span (a span dictionary as contained in :meth:`~.extractDICT`) and a keyword parameter "page" (which is the owning :ref:`Page ` object). It must return a string "" or up to 6 "#" characters followed by 1 space. If omitted (`None`), a full document scan will be performed to find the most popular font sizes and derive header levels based on them. To completely avoid this behavior specify `hdr_info=lambda s, page=None: ""` or `hdr_info=False`." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Valid| boolean to switch on/off page header content. This parameter controls whether we want to include or omit the header content from all the document pages. Useful if the document has repetitive header content which doesn't add any value to the overall extraction data. Default is `True` meaning that header content will be considered." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| if ``True`` includes text even when completely transparent. Default is ``False``: transparent text will be ignored which usually increases detection accuracy." +msgstr "" + + + +msgid "if `True` then mono-spaced text lines do not receive special formatting. Code blocks will no longer be generated. This value is set to `True` if `extract_words=True` is used." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard vector graphics on the page. This may help detecting text correctly when pages are very crowded (often the case for documents representing presentation slides). Also speeds up processing time. This automatically prevents table detection." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard images on the page. This may help detecting text correctly when pages are very crowded (often the case for documents representing presentation slides). Also speeds up processing time." +msgstr "" + + + +msgid "specify the desired image format via its extension. Default is "png" (portable network graphics). Another popular format may be "jpg". Possible values are all :ref:`supported output formats `." +msgstr "" + + + +msgid "store images in this folder. Relevant if `write_images=True`. Default is the path of the script directory." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| this must be a ``0 <= value < 1``. Images are ignored if `width / page.rect.width <= image_size_limit` or `height / page.rect.height <= image_size_limit`. For instance, the default value 0.05 means that to be considered for inclusion, an image's width and height must be larger than 5% of the page's width and height, respectively." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| a float or a sequence of 2 or 4 floats specifying page borders. Only objects inside the margins will be considered for output." +msgstr "" + + + +msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." +msgstr "" + + + +msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." +msgstr "" + + + +msgid "To always read full pages **(default)**, use `margins=0`." +msgstr "" + + + +msgid "if `True` the output will be a list of `Document.page_count` dictionaries (one per page). Each dictionary has the following structure:" +msgstr "" + + + +msgid "**\"metadata\"** - a dictionary consisting of the document's metadata :attr:`Document.metadata`, enriched with additional keys **\"file_path\"** (the file name), **\"page_count\"** (number of pages in document), and **\"page_number\"** (1-based page number)." +msgstr "" + + + +msgid "**\"toc_items\"** - a list of Table of Contents items pointing to this page. Each item of this list has the format `[lvl, title, pagenumber]`, where `lvl` is the hierarchy level, `title` a string and `pagenumber` as a 1-based page number." +msgstr "" + + + +msgid "**\"tables\"** - a list of tables on this page. Each item is a dictionary with keys \"bbox\", \"row_count\" and \"col_count\". Key \"bbox\" is a `pymupdf.Rect` in tuple format of the table's position on the page." +msgstr "" + + + +msgid "**\"images\"** - |PyMuPDFLayoutMode_EmptyList| a list of images on the page. This a copy of page method :meth:`Page.get_image_info`." +msgstr "" + + + +msgid "**\"graphics\"** - |PyMuPDFLayoutMode_EmptyList| a list of vector graphics rectangles on the page. This is a list of boundary boxes of clustered vector graphics as delivered by method :meth:`Page.cluster_drawings`." +msgstr "" + + + +msgid "**\"text\"** - page content as |Markdown| text." +msgstr "" + + + +msgid "**\"words\"** - |PyMuPDFLayoutMode_EmptyList| if `extract_words=True` was used. This is a list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, wno)` as delivered by `page.get_text(\"words\")`. The **sequence** of these tuples however is the same as produced in the markdown text string and thus honors multi-column text. This is also true for text in tables: words are extracted in the sequence of table row cells." +msgstr "" + + + +msgid "specify a desired page height. For relevance see the `page_width` parameter. If using the default `None`, the document will appear as one large page with a width of `page_width`. Consequently in this case, no markdown page separators will occur (except the final one), respectively only one page chunk will be returned." +msgstr "" + + + +msgid "if ``True`` inserts a string ``--- end of page=n ---`` at the end of each page output. Intended for debugging purposes. The page number is 0-based. The separator string is wrapped with line breaks. Default is ``False``." +msgstr "" + + + + +msgid "specify a desired page width. This is ignored for documents with a fixed page width like PDF, XPS etc. **Reflowable** documents however, like e-books, office [#f2]_ or text files have no fixed page dimensions. They by default are assumed to have Letter format width (612) and an **unlimited** page height. This means that the **full document is treated as one large page.**" +msgstr "" + + + +msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Any Python sequence with integer items is accepted. The sequence is sorted and processed to only contain unique items." +msgstr "" + + + +msgid "Default is `False`. A value of `True` displays a progress bar as pages are being converted. Package `tqdm `_ is used if installed, otherwise the built-in text based progress bar is used." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| see: :meth:`table detection strategy `. Default is `"lines_strict"` which ignores background colors. In some occasions, other strategies may be more successful, for example `"lines"` which uses all vector graphics objects for detection." +msgstr "" + + + +msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.19) Default is `False`. A value of `True` will use the glyph number of the characters instead of the character itself if the font does not store the Unicode value." +msgstr "" + + + +msgid "when encountering images or vector graphics, images will be created from the respective page area and stored in the specified folder. |Markdown| references will be generated pointing to these images. Any text contained in these areas will not be included in the text output (but appear as part of the images). Therefore, if for instance your document has text written on full page images, make sure to set this parameter to `False`." +msgstr "" + + + +msgid "If using :ref:`PyMuPDF Layout `, boundary boxes that are classified as "picture" by the layout module will be treated as images - independent from the mixture of text, images or vector graphics they may be covering. If `force_text=True` is used, text will still be extracted from these areas and included in the output after the respective image reference." +msgstr "" + + + +msgid "Either a string of the combined text of all selected document pages, or a list of dictionaries if `page_chunks=True`." +msgstr "" + + + +msgid "Reads the pages of the file and outputs the text of its pages in |TXT| format." +msgstr "" + + +msgid "|PyMuPDFLayoutMode_Valid|. This method is only available with PyMuPDF Layout." +msgstr "" + + + +msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +msgstr "" + + + +msgid "boolean to switch on/off page header content. This parameter controls whether to include or omit the header content from all the document pages. Useful if the document has repetitive header content which doesn't add any value to the overall extraction data. Default is `True` meaning that header content will be written." +msgstr "" + + + +msgid "boolean to switch on/off page footer content. This parameter controls whether to include or omit the footer content from all the document pages. Useful if the document has repetitive footer content which doesn't add any value to the overall extraction data. Default is `True` meaning that footer content will be written." +msgstr "" + + + +msgid "if `True` then mono-spaced text lines do not receive special formatting. No blocks will be written and text lines will be written continuously." +msgstr "" + + +msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Any Python sequence with integer items is accepted. The sequence is sorted and processed to only contain unique items." +msgstr "" + + + +msgid "generate text output also when overlapping images / graphics. This text then appears after the respective image reference. Images (i.e. \"picture\" areas) however will not be written to the text output but appear as a text line in the output like `==> picture [width x height] <==`." +msgstr "" + + + +msgid "Default is `False`. A value of `True` displays a progress bar as pages are being converted. Package `tqdm `_ is used if installed, otherwise the built-in text based progress bar is used." +msgstr "" + + + +msgid "Parses the document and the specified pages and converts the result into a |JSON|-formatted string." +msgstr "" + + + + +msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +msgstr "" + + + +msgid "specify the desired image resolution in dots per inch. Default value is 150. Only relevant if one of the parameters `write_images=True` or `embed_images=True` is used." +msgstr "" + + + +msgid "specify the desired image format via its extension. Default is \"png\" (portable network graphics). Another popular format may be \"jpg\". Possible values are all :ref:`supported output formats `. Only relevant if one of the parameters `write_images=True` or `embed_images=True` is used." +msgstr "" + + + +msgid "store images in this folder. Relevant if `write_images=True`. Default is the path of the script directory. Page areas classified as \"picture\" will be written as image files to the specified location. The image file names will be of the format `{image_path}/{filename}-pagenumber-image_number.{image_format}`." +msgstr "" + + + +msgid "generate text output for text that is written upon areas that are classified as \"picture\" by the layout module. This may be especially be useful when picture content is not stored." +msgstr "" + + + +msgid "display a progress bar during processing." +msgstr "" + + + +msgid "store image binaries for \"picture\" boundary boxes. Base64-encoded images are included in the JSON output. Ignores `image_path` if used. This may drastically increase the size of your JSON text." +msgstr "" + + + +msgid "store image files \"picture\" boundary boxes.when encountering images, image files will be created from the respective page area and stored in the specified folder. Any text contained in these areas will still be included in the text output." +msgstr "" + + + +msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Specify any valid Python sequence containing integers between `0` and `page_count - 1`." +msgstr "" + + + +msgid "Please see `this site `_ for more background and the current status of further improvements regarding usage with :ref:`PyMuPDF Layout `." +msgstr "" + + + +msgid "Create a `pdf_markdown_reader.PDFMarkdownReader` using the `LlamaIndex`_ package. Please note that this package will **not automatically be installed** when installing **pymupdf4llm**." +msgstr "" + + + +msgid "For details on the possible arguments, please consult the LlamaIndex documentation [#f1]_." +msgstr "" + + + +msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." +msgstr "" + + + +msgid "a `pdf_markdown_reader.PDFMarkdownReader` and issues message "Successfully imported LlamaIndex". Please note that this method needs several seconds to execute. For details on using the markdown reader please see below." +msgstr "" + + + +msgid "This class is not available in \"layout mode\", i.e. if the import of pymupdf4llm has happened **after** the statement ``import pymupdf.layout``." +msgstr "" + + + +msgid "Create an object which maps text font sizes to the respective number of '#' characters which are used by Markdown syntax to indicate header levels. The object is created by scanning the document for font size \"popularity\". The most popular font size and all smaller sizes are used for body text. Larger font sizes are mapped to the respective header levels - which correspond to the HTML tags `

` to `

`." +msgstr "" + + + +msgid "All font sizes are rounded to integer values." +msgstr "" + + + +msgid "If more than 6 header levels would be required, then the largest number smaller than the `
` font size is used for body text." +msgstr "" + + + +msgid "Please note that creating the object will read and inspect the text of the entire document - independently of reading the document again in the `to_markdown()` method subsequently. Method `to_markdown()` by default **will create this object** if you do not override its `hdr_info=None` parameter." +msgstr "" + + + +msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| Document (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| Document." +msgstr "" + + + +msgid "optional, the pages to consider. If omitted all pages are processed." +msgstr "" + + + +msgid "the default font size limit for body text. Only used when the document scan does not deliver valid information." +msgstr "" + + + +msgid "the maximum number of header levels to be used. Valid values are in `range(1, 7)`. The default is 6, which corresponds to the HTML tags `

` to `

`. A smaller value will limit the number of generated header levels. For instance, a value of 3 will only generate header tags \"#\", \"##\" and \"###\". Body text will be assumed for all font sizes smaller than the one corresponding to \"###\"." +msgstr "" + + + +msgid "Return appropriate markdown header prefix. This is either \"\" or a string of \"#\" characters followed by a space." +msgstr "" + + + +msgid "Given a text span from a \"dict\" extraction, determine the markdown header prefix string of 0 to n concatenated '#' characters." +msgstr "" + + + +msgid "a dictionary containing the text span information. This is the same dictionary as returned by `page.get_text(\"dict\")`." +msgstr "" + + + +msgid "the owning page object. This can be used when additional information needs to be extracted." +msgstr "" + + + +msgid "a string of \"#\" characters followed by a space." +msgstr "" + + + +msgid "A dictionary mapping (integer) font sizes to Markdown header strings like ``{14: '# ', 12: '## '}``. The dictionary is created by the :class:`IdentifyHeaders` constructor. The keys are the font sizes of the text spans in the document. The values are the respective header strings." +msgstr "" + + + +msgid "An integer value indicating the font size limit for body text. This is computed as ``min(header_id.keys()) - 1``. In the above example, body_limit would be 11." +msgstr "" + + + +msgid "**How to limit header levels (example)**" +msgstr "" + + + +msgid "Limit the generated header levels to 3::" +msgstr "" + + + +msgid "**How to provide your own header logic (example 1)**" +msgstr "" + + + +msgid "Provide your own function which uses pre-determined, fixed font sizes::" +msgstr "" + + + +msgid "**How to provide your own header logic (example 2)**" +msgstr "" + + + +msgid "This user function uses the document's Table of Contents -- under the assumption that the bookmark text is also present as a header line on the page (which certainly need not be the case!)::" +msgstr "" + + + +msgid "Create an object which uses the document's Table of Contents (TOC) to determine header levels. Upon object creation, the table of contents is read via the `Document.get_toc()` method. The TOC data is then used to determine header levels in the `to_markdown()` method." +msgstr "" + + + +msgid "This is an alternative to :class:`IdentifyHeaders`. Instead of running through the full document to identify font sizes, it uses the document's Table Of Contents (TOC) to identify headers on pages. Like :class:`IdentifyHeaders`, this also is no guarantee to find headers, but for well-built Table of Contents, there is a good chance for more correctly identifying header lines on document pages than the font-size-based approach." +msgstr "" + + +msgid "It also has the advantage of being much faster than the font-size-based approach, as it does not execute a full document scan or even access any of the document pages." +msgstr "" + + + +msgid "Examples where this approach works very well are the Adobe's files on PDF documentation." +msgstr "" + + + +msgid "Please note that this feature **does not read document pages** where the table of contents may exist as normal standard text. It only accesses data as provided by the `Document.get_toc()` method. It will not identify any headers for documents where the table of contents is not available as a collection of bookmarks." +msgstr "" + + +msgid "Return appropriate markdown header prefix. This is either an empty string or a string of \"#\" characters followed by a space." +msgstr "" + + + +msgid "Given a text span from a \"dict\" extraction variant, determine the markdown header prefix string of 0 to n concatenated \"#\" characters." +msgstr "" + + +msgid "a dictionary containing the text span information. This is the same dictionary as returned by `page.get_text(\"dict\")`." +msgstr "" + + + +msgid "the owning page object. This can be used when additional information needs to be extracted." +msgstr "" + + + +msgid "a string of \"#\" characters followed by a space." +msgstr "" + + + +msgid "**How to use class TocHeaders**" +msgstr "" + + + +msgid "This is a version of previous **example 2** that uses :class:`TocHeaders` for header identification::" +msgstr "" + + + +msgid "This is the only method of the markdown reader you should currently use to extract markdown data. Please in any case ignore methods `aload_data()` and `lazy_load_data()`. Other methods like `use_doc_meta()` may or may not make sense. For more information, please consult the LlamaIndex documentation [#f1]_." +msgstr "" + + + +msgid "Under the hood the method will execute `to_markdown()`." +msgstr "" + + + +msgid "a list of `LlamaIndexDocument` documents - one for each page." +msgstr "" + + + +msgid "For a list of changes, please see file `CHANGES.md `_." +msgstr "" + + + +msgid "`LlamaIndex documentation `_" +msgstr "" + + + +msgid "When using PyMuPDF-Pro, supported office documents are converted internally into a PDF-like format. Therefore, they **will have fixed page dimensions** and be no longer "reflowable". Consequently, the page width and page height specifications will be ignored as well in these cases." +msgstr "" + + + +msgid "Footnotes" +msgstr "" + + From 10b65420af4a62f88748a9c1aa70840afa65b2a1 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Tue, 2 Dec 2025 16:25:25 +0000 Subject: [PATCH 11/23] Syncs Korean docs with latest updates. --- docs/locales/ko/LC_MESSAGES/about.po | 32 +- docs/locales/ko/LC_MESSAGES/changes.po | 18 +- docs/locales/ko/LC_MESSAGES/installation.po | 16 +- .../ko/LC_MESSAGES/pymupdf-layout/index.po | 151 ++- .../locales/ko/LC_MESSAGES/pymupdf4llm/api.po | 895 ++++++++++++------ .../ko/LC_MESSAGES/pymupdf4llm/index.po | 42 +- docs/locales/ko/LC_MESSAGES/the-basics.po | 200 ++-- docs/locales/ko/LC_MESSAGES/version.po | 24 +- 8 files changed, 898 insertions(+), 480 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/about.po b/docs/locales/ko/LC_MESSAGES/about.po index 30f971481..748053203 100644 --- a/docs/locales/ko/LC_MESSAGES/about.po +++ b/docs/locales/ko/LC_MESSAGES/about.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 c21340a4b75747d5952e637a324049bf +#: ../../header.rst:-1 f19dada9348f4b02a8e7f37161295aed msgid "Artifex" msgstr "" -#: ../../header.rst:-1 12768be3aef44279a0f53bb67e659597 +#: ../../header.rst:-1 3a2fd52dfdbe4ef0ba2277d3dc5ce9cd msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 4d3f2343a3e8462e92d346b6ef1bbe0f +#: ../../header.rst:-1 6457f182efd342f9971c29ded21b19cd msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -133,33 +133,41 @@ msgid "" " Inc.`" msgstr "" -#: ../../version.rst:3 b23f02d66d164eb195ed6512c8e9ff6c +#: ../../version.rst:1 b23f02d66d164eb195ed6512c8e9ff6c msgid "This documentation covers PyMuPDF |version|." msgstr "" -#: ../../version.rst:5 ca881a8c265b46618c644701ea14c695 +#: ../../version.rst:3 ca881a8c265b46618c644701ea14c695 msgid "" -"The major and minor versions of |PyMuPDF| and |MuPDF| will always be the " +"The major and minor versions of PyMuPDF and MuPDF will always be the " "same. Only the third qualifier (patch level) may deviate from that of " -"|MuPDF|." +"MuPDF." msgstr "" -#: ../../version.rst:7 a91d12805e42498fb4eebcb3f7923eb8 +#: ../../version.rst:5 a91d12805e42498fb4eebcb3f7923eb8 msgid "" "Typically PyMuPDF is released more frequently than MuPDF so it will often" " be the case that the patch level of PyMuPDF will be greater than the " "embedded MuPDF." msgstr "" -#: ../../version.rst:11 2e3b5e5955fc4cba8aafc25d3d650e7a +#: ../../version.rst:9 2e3b5e5955fc4cba8aafc25d3d650e7a msgid "For example PyMuPDF-1.24.5 contains MuPDF-1.24.2." msgstr "" -#: ../../version.rst:13 a60af2aa03494194b19ecf8e3bc095fc +#: ../../version.rst:11 a60af2aa03494194b19ecf8e3bc095fc msgid "Also see `pymupdf_version` and `mupdf_version`." msgstr "" -#: ../../footer.rst:46 ea2d1136af82416baa3286db6ed38f96 +#: ../../footer.rst:48 ea2d1136af82416baa3286db6ed38f96 msgid "This documentation covers all versions up to |version|." msgstr "" +#~ msgid "" +#~ "The major and minor versions of " +#~ "|PyMuPDF| and |MuPDF| will always be " +#~ "the same. Only the third qualifier " +#~ "(patch level) may deviate from that " +#~ "of |MuPDF|." +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/changes.po b/docs/locales/ko/LC_MESSAGES/changes.po index 8c15845ee..b13af9e93 100644 --- a/docs/locales/ko/LC_MESSAGES/changes.po +++ b/docs/locales/ko/LC_MESSAGES/changes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 4b2125667c71405ca651d2f4f33203ce +#: ../../header.rst:-1 5bde7eeb42a94cb6ad62717574f27aa5 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 7a5706b2ba4a4c5f9ab33e6a435e268e +#: ../../header.rst:-1 d2d8813dfee94f0996d61dd06a14af30 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 232846e89a9147f6abd57e2c5299b488 +#: ../../header.rst:-1 222913211ce746a5a7e9bc909639786b msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -1961,7 +1961,7 @@ msgstr "" #: ../../../changes.txt:675 fab60867577a487b9c3f486166614839 msgid "" "Fixed bug in set_xml_metadata(), PR `3112 " -"https://github.com/pymupdf/PyMuPDF/pull/3112>`_: Fix pdf_add_stream " +"`_: Fix pdf_add_stream " "metadata error" msgstr "" @@ -8646,7 +8646,13 @@ msgid "" " Supports incremental saves." msgstr "" -#: ../../footer.rst:46 0555f8605d724eadbe65f9eb27755b4f +#: ../../footer.rst:48 0555f8605d724eadbe65f9eb27755b4f msgid "This documentation covers all versions up to |version|." msgstr "" +#~ msgid "" +#~ "Fixed bug in set_xml_metadata(), PR " +#~ "`3112 https://github.com/pymupdf/PyMuPDF/pull/3112>`_: Fix" +#~ " pdf_add_stream metadata error" +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/installation.po b/docs/locales/ko/LC_MESSAGES/installation.po index 39cdbd15d..025673e24 100644 --- a/docs/locales/ko/LC_MESSAGES/installation.po +++ b/docs/locales/ko/LC_MESSAGES/installation.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 bc107b9bc1f9411db1b06a2b9a73ce64 +#: ../../header.rst:-1 96029ef0e2b04d549d1dd8636b516591 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 d7d772a2db0344ea81f7e2d671249a0d +#: ../../header.rst:-1 2e20adf971da4adf8ade567b89099694 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 3d75e7a13d97463585cb89b8a4cf50e2 +#: ../../header.rst:-1 e225975277fd4141bab6dfb2babcab67 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -563,7 +563,13 @@ msgid "" "ocr/4.00/tessdata`" msgstr "" -#: ../../footer.rst:46 04ec8ea4e7e743ab9f77de31a752358a +#: ../../installation.rst:336 a123b1fc6a474985b09b2e4de3759541 +msgid "" +"Find out more on the `official documentation for installing Tesseract " +"website `_." +msgstr "" + +#: ../../footer.rst:48 04ec8ea4e7e743ab9f77de31a752358a msgid "This documentation covers all versions up to |version|." msgstr "" diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po index 6cd9defd3..3942c83dc 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf-layout/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-26 17:04+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 55554f175cc249878ead6e3e984a2e8a +#: ../../header.rst:-1 26c7f492ac6349fe997fad9d41aabea5 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 6aa2efac349e4bcab64dd67c0a0d5b13 +#: ../../header.rst:-1 4231d660381d4fa5b43b5d8b068e8dfa msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 fc386a5037ac4a0ba4239f1c51308e56 +#: ../../header.rst:-1 8bba0218b1e445b192946cba4c548076 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -61,49 +61,49 @@ msgstr "" msgid "Install from |PyPI| with::" msgstr "" -#: ../../pymupdf-layout/index.rst:26 5e49fc1022b0491e968e6dac9a6ebd28 +#: ../../pymupdf-layout/index.rst:28 5e49fc1022b0491e968e6dac9a6ebd28 msgid "Using" msgstr "" -#: ../../pymupdf-layout/index.rst:29 c4caa7b3525f461385db5339599b8e02 +#: ../../pymupdf-layout/index.rst:31 c4caa7b3525f461385db5339599b8e02 msgid "" "In nutshell, |PyMuPDF Layout| detects the layout to extract, but we need " "|PyMuPDF4LLM| for the API interface. This provides us with options to " "extract document content as |Markdown|, |JSON| or |TXT|." msgstr "" -#: ../../pymupdf-layout/index.rst:31 2851cd8bd3374a3c8fc60a4a0fe524e8 +#: ../../pymupdf-layout/index.rst:33 2851cd8bd3374a3c8fc60a4a0fe524e8 msgid "" "Let's set up the Python coding environment to get started and open a PDF " "then we'll move on to the semantic data extraction." msgstr "" -#: ../../pymupdf-layout/index.rst:34 6a1648fb91cc454788a795ffc391432a +#: ../../pymupdf-layout/index.rst:36 6a1648fb91cc454788a795ffc391432a msgid "Register packages and open a PDF" msgstr "" -#: ../../pymupdf-layout/index.rst:36 1ba188d096bc425abbfee2ba07430823 +#: ../../pymupdf-layout/index.rst:38 1ba188d096bc425abbfee2ba07430823 msgid "First up let's import the libraries and open a sample document::" msgstr "" -#: ../../pymupdf-layout/index.rst:42 d7900ddabe0644c09c53ba9fb57126b0 +#: ../../pymupdf-layout/index.rst:44 d7900ddabe0644c09c53ba9fb57126b0 msgid "" "Note, in the above code, that |PyMuPDF Layout| must be imported as shown " "and before importing |PyMuPDF4LLM| to activate |PyMuPDF|'s layout feature" " and make it available to |PyMuPDF4LLM|." msgstr "" -#: ../../pymupdf-layout/index.rst:44 7b66dd7c7a164f99b1fd0113f2ccf699 +#: ../../pymupdf-layout/index.rst:46 7b66dd7c7a164f99b1fd0113f2ccf699 msgid "" "Omitting the first line would cause execution of standard |PyMuPDF4LLM| -" " without the layout feature!" msgstr "" -#: ../../pymupdf-layout/index.rst:47 a21b9bc7b3844b0ab455c3f364a2057f +#: ../../pymupdf-layout/index.rst:49 a21b9bc7b3844b0ab455c3f364a2057f msgid "Extract the structured data" msgstr "" -#: ../../pymupdf-layout/index.rst:49 35bc60862bb24334a75b7dc95b60156f +#: ../../pymupdf-layout/index.rst:51 35bc60862bb24334a75b7dc95b60156f msgid "" "We've activated the |PyMuPDF Layout| library and we've loaded a document," " next let's extract the structured data. This is now like a super-charged" @@ -112,33 +112,33 @@ msgid "" " results." msgstr "" -#: ../../pymupdf-layout/index.rst:52 8fabaa7045ea40bca50d9b6cf1904b2b +#: ../../pymupdf-layout/index.rst:54 8fabaa7045ea40bca50d9b6cf1904b2b msgid "Extract as Markdown" msgstr "" -#: ../../pymupdf-layout/index.rst:60 253f86c879cd4cfda51045e1311a3cba +#: ../../pymupdf-layout/index.rst:62 253f86c879cd4cfda51045e1311a3cba msgid "Extract as JSON" msgstr "" -#: ../../pymupdf-layout/index.rst:68 8da4947d5b974f24803ba5ed16e8cd77 +#: ../../pymupdf-layout/index.rst:70 8da4947d5b974f24803ba5ed16e8cd77 msgid "Extract as TXT" msgstr "" -#: ../../pymupdf-layout/index.rst:76 5bbe37c28031413fa4f86978d66b0161 +#: ../../pymupdf-layout/index.rst:78 5bbe37c28031413fa4f86978d66b0161 msgid "" "Please refer top the full :ref:`PyMuPDF4LLM API ` for " "more." msgstr "" -#: ../../pymupdf-layout/index.rst:78 6eedc55b27574fb583b04a9b9f3e3f55 +#: ../../pymupdf-layout/index.rst:80 6eedc55b27574fb583b04a9b9f3e3f55 msgid "Finally we can save the output to an external file as follows::" msgstr "" -#: ../../pymupdf-layout/index.rst:86 9bdb3f269e1c497e91d97cdc3a687bff +#: ../../pymupdf-layout/index.rst:88 9bdb3f269e1c497e91d97cdc3a687bff msgid "Headers & Footers" msgstr "" -#: ../../pymupdf-layout/index.rst:89 c239bc0bbbd64d318e6e8fdc55d1efbe +#: ../../pymupdf-layout/index.rst:91 c239bc0bbbd64d318e6e8fdc55d1efbe msgid "" "Many documents will have header and footer information on each page of a " "PDF which you may or may not want to include. This information can be " @@ -147,35 +147,35 @@ msgid "" "to extracting the document content )." msgstr "" -#: ../../pymupdf-layout/index.rst:91 ee2ea44ed53e4d95860be54bee8ead00 +#: ../../pymupdf-layout/index.rst:93 ee2ea44ed53e4d95860be54bee8ead00 msgid "" "|PyMuPDF Layout| is trained in detecting these typical document elements " "and able to omit them." msgstr "" -#: ../../pymupdf-layout/index.rst:93 2e53e75f3b83455ab9f885efaae230c7 +#: ../../pymupdf-layout/index.rst:95 2e53e75f3b83455ab9f885efaae230c7 msgid "" "So in this case we can adjust our API calls to ignore these elements as " "follows::" msgstr "" -#: ../../pymupdf-layout/index.rst:101 fc82782444984a34ab18e40f5123faeb +#: ../../pymupdf-layout/index.rst:103 fc82782444984a34ab18e40f5123faeb msgid "" "Please note that page ``header`` / ``footer`` exclusion is not applicable" " to JSON output as it aims to always represent all data for the included " -"pages. Please refer top the full :ref:`PyMuPDF4LLM API `" -" for more." +"pages. Please refer to the full :ref:`PyMuPDF4LLM API ` " +"for more." msgstr "" -#: ../../pymupdf-layout/index.rst:104 a00239ede95b43319833ba01713ce8d7 +#: ../../pymupdf-layout/index.rst:106 a00239ede95b43319833ba01713ce8d7 msgid "Extending Capability" msgstr "" -#: ../../pymupdf-layout/index.rst:107 f3bec49e1ee042caad2ba1f1f8d07230 +#: ../../pymupdf-layout/index.rst:109 f3bec49e1ee042caad2ba1f1f8d07230 msgid "Using with Pro" msgstr "" -#: ../../pymupdf-layout/index.rst:109 1a6a4c0ada2842d588768a849fe3c7f3 +#: ../../pymupdf-layout/index.rst:111 1a6a4c0ada2842d588768a849fe3c7f3 msgid "" "We are able to extend |PyMuPDF Layout| to work with |PyMuPDF Pro| and " "thus increase our capability by allowing Office documents to be provided " @@ -183,32 +183,32 @@ msgid "" "|PyMuPDF Pro| and unlock it::" msgstr "" -#: ../../pymupdf-layout/index.rst:116 695ebd9778304b3da362108ea2e9695e +#: ../../pymupdf-layout/index.rst:118 695ebd9778304b3da362108ea2e9695e msgid "Now we can happily load Office files and convert them as follows::" msgstr "" -#: ../../pymupdf-layout/index.rst:122 14fdcdcd4aab4335919c50efc4749185 +#: ../../pymupdf-layout/index.rst:126 14fdcdcd4aab4335919c50efc4749185 msgid "OCR support" msgstr "" -#: ../../pymupdf-layout/index.rst:124 99eb4f65329d45c7bb6eaf035c255259 +#: ../../pymupdf-layout/index.rst:128 99eb4f65329d45c7bb6eaf035c255259 msgid "" -"The new layout-sensitive PyMuPDF4LLM version also evaluates whether a " +"The new layout-sensitive |PyMuPDF4LLM| version also evaluates whether a " "page would benefit from applying OCR to it. If its heuristics come to " "this conclusion, the built-in Tesseract-OCR module is automatically " "invoked. Its results are then handled like normal page content." msgstr "" -#: ../../pymupdf-layout/index.rst:126 cdbf9a9f1f5341cc96aaaa1a6a74434f +#: ../../pymupdf-layout/index.rst:130 cdbf9a9f1f5341cc96aaaa1a6a74434f msgid "" "If a page contains (roughly) no text at all, but is covered with images " "or many character-sized vectors, a check is made using `OpenCV " "`_ whether text is *probably* " "detectable on the page at all. This is done to tell apart image-based " -"text from ordinary pictures (like photographies)." +"text from ordinary pictures (like photographs)." msgstr "" -#: ../../pymupdf-layout/index.rst:128 8c8ba1c1b2bc4875b04cc60b98293a08 +#: ../../pymupdf-layout/index.rst:132 8c8ba1c1b2bc4875b04cc60b98293a08 msgid "" "If the page does contain text but too many characters are unreadable " "(like \"�����\"), OCR is also executed, but **for the affected text areas" @@ -216,18 +216,45 @@ msgid "" "text and other content like images and vectors." msgstr "" -#: ../../pymupdf-layout/index.rst:130 225a390ebce94321a090f94ab2165c16 +#: ../../pymupdf-layout/index.rst:134 225a390ebce94321a090f94ab2165c16 msgid "" -"For these heuristics to work we need both, an existing Tesseract " -"installation and the availability of OpenCV in the Python environment. If" +"For these heuristics to work we need both, an existing :ref:`Tesseract " +"installation ` and the availability of `OpenCV " +"`_ in the Python environment. If" " either is missing, no OCR is attempted at all." msgstr "" -#: ../../pymupdf-layout/index.rst:137 fddcc1ea96e64c658554704bb141490b +#: ../../pymupdf-layout/index.rst:136 08b0b8dca54f41e4a81739a6b2fd1324 +msgid "" +"The decision tree for whether OCR is actually used or not depends on the " +"following:" +msgstr "" + +#: ../../pymupdf-layout/index.rst:138 8cd3ca3cdb2c404eb48ad42a553220de +msgid ":ref:`PyMuPDF Layout is imported `" +msgstr "" + +#: ../../pymupdf-layout/index.rst:140 10ee5e795c7446e8b3403d85522a49cd +msgid "" +"In the :ref:`PyMuPDF4LLM API ` you have `use_ocr` " +"enabled (this is set to `True` by default)" +msgstr "" + +#: ../../pymupdf-layout/index.rst:142 a91c79870eec43b4b647375636f046ea +msgid ":ref:`Tesseract is correctly installed `" +msgstr "" + +#: ../../pymupdf-layout/index.rst:144 32944c44045a42d29563e3e93a1b1d98 +msgid "" +"`OpenCV `_ is available in your " +"Python environment" +msgstr "" + +#: ../../pymupdf-layout/index.rst:154 fddcc1ea96e64c658554704bb141490b msgid "|PyMuPDF Layout| and |PyMuPDF4LLM| parameter caveats" msgstr "" -#: ../../pymupdf-layout/index.rst:139 b7f33df2c3974ea1bbead613286f3639 +#: ../../pymupdf-layout/index.rst:156 b7f33df2c3974ea1bbead613286f3639 msgid "" "If you have imported ``pymupdf.layout``, |PyMuPDF4LLM| changes its " "behavior in various areas quite significantly. New methods become " @@ -237,7 +264,7 @@ msgid "" " date while we continue to work on improvements." msgstr "" -#: ../../footer.rst:46 fcc43bbf382644f6928a40bc9aea37c1 +#: ../../footer.rst:48 fcc43bbf382644f6928a40bc9aea37c1 msgid "This documentation covers all versions up to |version|." msgstr "" @@ -395,3 +422,45 @@ msgstr "" #~ msgid "write_images" #~ msgstr "" +#~ msgid "" +#~ "Please note that page ``header`` / " +#~ "``footer`` exclusion is not applicable " +#~ "to JSON output as it aims to " +#~ "always represent all data for the " +#~ "included pages. Please refer top the " +#~ "full :ref:`PyMuPDF4LLM API `" +#~ " for more." +#~ msgstr "" + +#~ msgid "" +#~ "The new layout-sensitive PyMuPDF4LLM " +#~ "version also evaluates whether a page" +#~ " would benefit from applying OCR to" +#~ " it. If its heuristics come to " +#~ "this conclusion, the built-in " +#~ "Tesseract-OCR module is automatically " +#~ "invoked. Its results are then handled" +#~ " like normal page content." +#~ msgstr "" + +#~ msgid "" +#~ "If a page contains (roughly) no " +#~ "text at all, but is covered with" +#~ " images or many character-sized " +#~ "vectors, a check is made using " +#~ "`OpenCV `_ " +#~ "whether text is *probably* detectable on" +#~ " the page at all. This is done" +#~ " to tell apart image-based text " +#~ "from ordinary pictures (like photographies)." +#~ msgstr "" + +#~ msgid "" +#~ "For these heuristics to work we " +#~ "need both, an existing Tesseract " +#~ "installation and the availability of " +#~ "OpenCV in the Python environment. If " +#~ "either is missing, no OCR is " +#~ "attempted at all." +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po index 8befbad76..d9e932307 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.24.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-26 17:04+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ja\n" @@ -19,555 +19,844 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 82786ea5867f4818b6c5c7b3e8a55ef0 +#: ../../header.rst:-1 28d86985971f44c9b5c589f8ab54e80c msgid "Artifex" msgstr "" -#: ../../header.rst:-1 1a6aac6ec3e34205b07c2f37fdc69e13 +#: ../../header.rst:-1 e7a5b73934cd435dbb28ac3030a6bc42 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 ab4f1a2eeccd4098ae98718eac840f2e +#: ../../header.rst:-1 92d346afb67b4f3ab88c5a1064a46694 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" msgstr "" -#: ../../pymupdf4llm/api.rst:9 4e5664b1124d48d18fd12e59b727a0bd +#: ../../pymupdf4llm/api.rst:27 4e5664b1124d48d18fd12e59b727a0bd msgid "API" msgstr "" -#: ../../pymupdf4llm/api.rst:12 e4fe663d1ee04cf7bbc808eeb9ce308b +#: ../../pymupdf4llm/api.rst:30 e4fe663d1ee04cf7bbc808eeb9ce308b msgid "The |PyMuPDF4LLM| API" msgstr "|PyMuPDF4LLM| API" -#: ../../footer.rst:46 1ed68f4bf8fd45fab04f7a49fba09f0a -msgid "This documentation covers all versions up to |version|." -msgstr "" - +#: ../../pymupdf4llm/api.rst:35 4e2df9f8107d4db1a2347a4be75c0272 msgid "Prints the version of the library." msgstr "" -msgid "Reads the pages of the file and outputs the text of its pages in |Markdown| format. How this should happen in detail can be influenced by a number of parameters. Please note that **support for building page chunks** from the |Markdown| text is supported." +#: ../../pymupdf4llm/api.rst:69 c21d1e47747e4a6eadd73614ff6f800a +msgid "" +"Reads the pages of the file and outputs the text of its pages in " +"|Markdown| format. How this should happen in detail can be influenced by " +"a number of parameters. Please note that **support for building page " +"chunks** from the |Markdown| text is supported." msgstr "" -msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +#: ../../pymupdf4llm/api.rst 13d669ad26754dc0b5dd18b71aaaa6e7 +#: 9f1452580faf4a6282a5888330a95503 9f18803cca3b49628d55a64c7a8473ee +#: b1bbc30b869d4427932592ee651344a4 c3792e58bf894b75870f21f594a83813 +#: c57820b438a34e958720773d86d8a687 +msgid "Parameters" msgstr "" -msgid "|PyMuPDFLayoutMode_Ignored| does a simple check for the general background color of the pages (default is ``True``). If any text or vector has this color it will be ignored. May increase detection accuracy." +#: ../../pymupdf4llm/api.rst:71 ../../pymupdf4llm/api.rst:163 +#: ../../pymupdf4llm/api.rst:184 1df54be04e4d4aaeac61cce4ba98817f +#: 4632c24ae65b499e81a55a61b741ffba 835d293ddb884273a0d2f38bfd18e563 +msgid "" +"the file, to be specified either as a file path string, or as a |PyMuPDF|" +" :class:`Document` (created via `pymupdf.open`). In order to use " +"`pathlib.Path` specifications, Python file-like objects, documents in " +"memory etc. you **must** use a |PyMuPDF| :class:`Document`." msgstr "" -msgid "specify the desired image resolution in dots per inch. Relevant only if `write_images=True` or `embed_images=True`. Default value is 150." +#: ../../pymupdf4llm/api.rst:73 5b01dd3e313a4f1183943c524048c4a3 +msgid "" +"|PyMuPDFLayoutMode_Ignored| does a simple check for the general " +"background color of the pages (default is ``True``). If any text or " +"vector has this color it will be ignored. May increase detection " +"accuracy." msgstr "" -msgid "|PyMuPDFLayoutMode_Valid| use :ref:`OCR capability ` to help analyse the page." +#: ../../pymupdf4llm/api.rst:75 f4d01e56b3794441a8802c4a80be94aa +msgid "" +"specify the desired image resolution in dots per inch. Relevant only if " +"`write_images=True` or `embed_images=True`. Default value is 150." msgstr "" -msgid "|PyMuPDFLayoutMode_Valid| specify the desired image resolution in dots per inch for applying OCR to the intermediate image of the page. Default value is 400. Only relevant if the page has been determined to profit from OCR (no or few text, most of the page covered by images or character-like vectors, etc.). Large values may increase the OCR precision but increase memory requirements and processing time. There also is a risk of over-sharpening the image which may decrease OCR precision. So the default value should probably be sufficiently high." +#: ../../pymupdf4llm/api.rst:77 41ff8c59beb54152b76219649e55269d +msgid "" +"|PyMuPDFLayoutMode_Valid| use :ref:`OCR capability " +"` to help analyse the page." msgstr "" -msgid "like `write_images`, but images will be included in the markdown text as base64-encoded strings. Mutually exclusive with `write_images` and ignores `image_path`. This may drastically increase the size of your markdown text." +#: ../../pymupdf4llm/api.rst:79 d3e8adb5845748eeacc23caba37adfb9 +msgid "" +"|PyMuPDFLayoutMode_Valid| specify the desired image resolution in dots " +"per inch for applying OCR to the intermediate image of the page. Default " +"value is 400. Only relevant if the page has been determined to profit " +"from OCR (no or few text, most of the page covered by images or " +"character-like vectors, etc.). Large values may increase the OCR " +"precision but increase memory requirements and processing time. There " +"also is a risk of over-sharpening the image which may decrease OCR " +"precision. So the default value should probably be sufficiently high." msgstr "" -msgid "|PyMuPDFLayoutMode_Ignored| a value of `True` enforces `page_chunks=True` and adds key "words" to each page dictionary. Its value is a list of words as delivered by PyMuPDF's `Page` method `get_text("words")`. The sequence of the words in this list is the same as the extracted text." +#: ../../pymupdf4llm/api.rst:81 9d41bfc8dacf4906862ed59207d58a4f +msgid "" +"like `write_images`, but images will be included in the markdown text as " +"base64-encoded strings. Mutually exclusive with `write_images` and " +"ignores `image_path`. This may drastically increase the size of your " +"markdown text." msgstr "" -msgid "Overwrites or sets the desired image file name of written images. Useful when the document is provided as a memory object (which has no inherent file name)." +#: ../../pymupdf4llm/api.rst:83 cbd2e3785be64256b6c64d96627ce87c +msgid "" +"|PyMuPDFLayoutMode_Ignored| a value of `True` enforces `page_chunks=True`" +" and adds key \"words\" to each page dictionary. Its value is a list of " +"words as delivered by PyMuPDF's `Page` method `get_text(\"words\")`. The " +"sequence of the words in this list is the same as the extracted text." msgstr "" -msgid "|PyMuPDFLayoutMode_Ignored| limit the font size to consider for text extraction. If the font size is lower than what is set then the text won't be considered for extraction. Default is `3`, meaning only text with a font size `>= 3` will be considered for extraction." +#: ../../pymupdf4llm/api.rst:85 a9fcde34b67b4aac85960a2058a8384d +msgid "" +"Overwrites or sets the desired image file name of written images. Useful " +"when the document is provided as a memory object (which has no inherent " +"file name)." msgstr "" -msgid "|PyMuPDFLayoutMode_Valid| boolean to switch on/off page footer content. This parameter controls whether to include or omit footer text from all the document pages. Useful if the document has repetitive footer content which doesn't add any value to the overall extraction data. Default is `True` meaning that footer content will be considered." +#: ../../pymupdf4llm/api.rst:87 445155dce88c4e488ea537ff3be59de6 +msgid "" +"|PyMuPDFLayoutMode_Ignored| limit the font size to consider for text " +"extraction. If the font size is lower than what is set then the text " +"won't be considered for extraction. Default is `3`, meaning only text " +"with a font size `>= 3` will be considered for extraction." msgstr "" - -msgid "generate text output even when overlapping images / graphics. This text then appears after the respective image." +#: ../../pymupdf4llm/api.rst:89 a09091d58eb74cb4953110f6516b8f92 +msgid "" +"|PyMuPDFLayoutMode_Valid| boolean to switch on/off page footer content. " +"This parameter controls whether to include or omit footer text from all " +"the document pages. Useful if the document has repetitive footer content " +"which doesn't add any value to the overall extraction data. Default is " +"`True` meaning that footer content will be considered." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| use this to limit dealing with excess amounts of vector graphics elements. Scientific documents, or pages simulating text via graphics commands may contain tens of thousands of these objects. As vector graphics are analyzed for multiple purposes, runtime may quickly become intolerable. With this parameter, all vector graphics will be ignored if their count exceeds the threshold." +#: ../../pymupdf4llm/api.rst:91 18670d8b86384ed99d85b86b0328a4ca +msgid "" +"generate text output even when overlapping images / graphics. This text " +"then appears after the respective image." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| use this if you want to provide your own header detection logic. This may be a callable or an object having a method named `get_header_id`. It must accept a text span (a span dictionary as contained in :meth:`~.extractDICT`) and a keyword parameter "page" (which is the owning :ref:`Page ` object). It must return a string "" or up to 6 "#" characters followed by 1 space. If omitted (`None`), a full document scan will be performed to find the most popular font sizes and derive header levels based on them. To completely avoid this behavior specify `hdr_info=lambda s, page=None: ""` or `hdr_info=False`." +#: ../../pymupdf4llm/api.rst:93 30d505740e2243e4a965d5bed923e367 +msgid "" +"|PyMuPDFLayoutMode_Ignored| use this to limit dealing with excess amounts" +" of vector graphics elements. Scientific documents, or pages simulating " +"text via graphics commands may contain tens of thousands of these " +"objects. As vector graphics are analyzed for multiple purposes, runtime " +"may quickly become intolerable. With this parameter, all vector graphics " +"will be ignored if their count exceeds the threshold." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Valid| boolean to switch on/off page header content. This parameter controls whether we want to include or omit the header content from all the document pages. Useful if the document has repetitive header content which doesn't add any value to the overall extraction data. Default is `True` meaning that header content will be considered." +#: ../../pymupdf4llm/api.rst:95 f45e892b070e41909fee2c6af82edbe5 +msgid "" +"|PyMuPDFLayoutMode_Ignored| use this if you want to provide your own " +"header detection logic. This may be a callable or an object having a " +"method named `get_header_id`. It must accept a text span (a span " +"dictionary as contained in :meth:`~.extractDICT`) and a keyword parameter" +" \"page\" (which is the owning :ref:`Page ` object). It must return" +" a string \"\" or up to 6 \"#\" characters followed by 1 space. If " +"omitted (`None`), a full document scan will be performed to find the most" +" popular font sizes and derive header levels based on them. To completely" +" avoid this behavior specify `hdr_info=lambda s, page=None: \"\"` or " +"`hdr_info=False`." +msgstr "" + +#: ../../pymupdf4llm/api.rst:97 a35f46ec3a53486fa48b3655d9e9c97d +msgid "" +"|PyMuPDFLayoutMode_Valid| boolean to switch on/off page header content. " +"This parameter controls whether we want to include or omit the header " +"content from all the document pages. Useful if the document has " +"repetitive header content which doesn't add any value to the overall " +"extraction data. Default is `True` meaning that header content will be " +"considered." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| if ``True`` includes text even when completely transparent. Default is ``False``: transparent text will be ignored which usually increases detection accuracy." +#: ../../pymupdf4llm/api.rst:99 28b04a679d88497e96269ee7f0812e9e +msgid "" +"|PyMuPDFLayoutMode_Ignored| if ``True`` includes text even when " +"completely transparent. Default is ``False``: transparent text will be " +"ignored which usually increases detection accuracy." msgstr "" - - -msgid "if `True` then mono-spaced text lines do not receive special formatting. Code blocks will no longer be generated. This value is set to `True` if `extract_words=True` is used." +#: ../../pymupdf4llm/api.rst:101 36820cc6604844b2a4d5375a7cd5792f +msgid "" +"if `True` then mono-spaced text lines do not receive special formatting. " +"Code blocks will no longer be generated. This value is set to `True` if " +"`extract_words=True` is used." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard vector graphics on the page. This may help detecting text correctly when pages are very crowded (often the case for documents representing presentation slides). Also speeds up processing time. This automatically prevents table detection." +#: ../../pymupdf4llm/api.rst:103 bff188eabaf94192af91641c85c1e98d +msgid "" +"|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard vector graphics " +"on the page. This may help detecting text correctly when pages are very " +"crowded (often the case for documents representing presentation slides). " +"Also speeds up processing time. This automatically prevents table " +"detection." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard images on the page. This may help detecting text correctly when pages are very crowded (often the case for documents representing presentation slides). Also speeds up processing time." +#: ../../pymupdf4llm/api.rst:105 056587fcf3d04ac29d30bcd3886d95f2 +msgid "" +"|PyMuPDFLayoutMode_Ignored| (New in v.0.0.20) Disregard images on the " +"page. This may help detecting text correctly when pages are very crowded " +"(often the case for documents representing presentation slides). Also " +"speeds up processing time." msgstr "" - - -msgid "specify the desired image format via its extension. Default is "png" (portable network graphics). Another popular format may be "jpg". Possible values are all :ref:`supported output formats `." +#: ../../pymupdf4llm/api.rst:107 ecf6dcf203a643bd8e51300ae9ad0a06 +msgid "" +"specify the desired image format via its extension. Default is \"png\" " +"(portable network graphics). Another popular format may be \"jpg\". " +"Possible values are all :ref:`supported output formats " +"`." msgstr "" - - -msgid "store images in this folder. Relevant if `write_images=True`. Default is the path of the script directory." +#: ../../pymupdf4llm/api.rst:109 adbd88cd1ca14c1ba5ee08b2109bce36 +msgid "" +"store images in this folder. Relevant if `write_images=True`. Default is " +"the path of the script directory." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| this must be a ``0 <= value < 1``. Images are ignored if `width / page.rect.width <= image_size_limit` or `height / page.rect.height <= image_size_limit`. For instance, the default value 0.05 means that to be considered for inclusion, an image's width and height must be larger than 5% of the page's width and height, respectively." +#: ../../pymupdf4llm/api.rst:111 afeb57cfa94f4015b4e1e6c1c2e6e125 +#, python-format +msgid "" +"|PyMuPDFLayoutMode_Ignored| this must be a ``0 <= value < 1``. Images are" +" ignored if `width / page.rect.width <= image_size_limit` or `height / " +"page.rect.height <= image_size_limit`. For instance, the default value " +"0.05 means that to be considered for inclusion, an image's width and " +"height must be larger than 5% of the page's width and height, " +"respectively." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| a float or a sequence of 2 or 4 floats specifying page borders. Only objects inside the margins will be considered for output." +#: ../../pymupdf4llm/api.rst:113 85475d5ce25043fe947f058364b6d756 +msgid "" +"|PyMuPDFLayoutMode_Ignored| a float or a sequence of 2 or 4 floats " +"specifying page borders. Only objects inside the margins will be " +"considered for output. * `margin=f` yields `(f, f, f, f)` for `(left, " +"top, right, bottom)`. * `(top, bottom)` yields `(0, top, 0, bottom)`. * " +"To always read full pages **(default)**, use `margins=0`." msgstr "" +#: ../../pymupdf4llm/api.rst:113 3fb6f34f01ff47e3a66ae8c810ee06e0 +msgid "" +"|PyMuPDFLayoutMode_Ignored| a float or a sequence of 2 or 4 floats " +"specifying page borders. Only objects inside the margins will be " +"considered for output." +msgstr "" - +#: ../../pymupdf4llm/api.rst:115 801899e2be22416aa50f59d49696821f msgid "`margin=f` yields `(f, f, f, f)` for `(left, top, right, bottom)`." msgstr "" - - +#: ../../pymupdf4llm/api.rst:116 387562b55d82431291823c1801fd50a4 msgid "`(top, bottom)` yields `(0, top, 0, bottom)`." msgstr "" - - +#: ../../pymupdf4llm/api.rst:117 cdd8cebf2e1948a0a421609fc71375f2 msgid "To always read full pages **(default)**, use `margins=0`." msgstr "" - - -msgid "if `True` the output will be a list of `Document.page_count` dictionaries (one per page). Each dictionary has the following structure:" +#: ../../pymupdf4llm/api.rst:119 34c0664f16c740c7aca19e3a24e79e08 +msgid "" +"if `True` the output will be a list of `Document.page_count` dictionaries" +" (one per page). Each dictionary has the following structure: - " +"**\"metadata\"** - a dictionary consisting of the document's metadata " +":attr:`Document.metadata`, enriched with additional keys " +"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" +" document), and **\"page_number\"** (1-based page number). - " +"**\"toc_items\"** - a list of Table of Contents items pointing to this " +"page. Each item of this list has the format `[lvl, title, pagenumber]`, " +"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " +"a 1-based page number. - **\"tables\"** - a list of tables on this page." +" Each item is a dictionary with keys \"bbox\", \"row_count\" and " +"\"col_count\". Key \"bbox\" is a `pymupdf.Rect` in tuple format of the " +"table's position on the page. - **\"images\"** - " +"|PyMuPDFLayoutMode_EmptyList| a list of images on the page. This a copy " +"of page method :meth:`Page.get_image_info`. - **\"graphics\"** - " +"|PyMuPDFLayoutMode_EmptyList| a list of vector graphics rectangles on the" +" page. This is a list of boundary boxes of clustered vector graphics as " +"delivered by method :meth:`Page.cluster_drawings`. - **\"text\"** - page" +" content as |Markdown| text. - **\"words\"** - " +"|PyMuPDFLayoutMode_EmptyList| if `extract_words=True` was used. This is a" +" list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, wno)` as " +"delivered by `page.get_text(\"words\")`. The **sequence** of these tuples" +" however is the same as produced in the markdown text string and thus " +"honors multi-column text. This is also true for text in tables: words are" +" extracted in the sequence of table row cells." +msgstr "" + +#: ../../pymupdf4llm/api.rst:119 26276a827ba549e7ae6680403a0325be +msgid "" +"if `True` the output will be a list of `Document.page_count` dictionaries" +" (one per page). Each dictionary has the following structure:" msgstr "" - - -msgid "**\"metadata\"** - a dictionary consisting of the document's metadata :attr:`Document.metadata`, enriched with additional keys **\"file_path\"** (the file name), **\"page_count\"** (number of pages in document), and **\"page_number\"** (1-based page number)." +#: ../../pymupdf4llm/api.rst:121 412ffcdcfd664b5a9cdca7475bb6c793 +msgid "" +"**\"metadata\"** - a dictionary consisting of the document's metadata " +":attr:`Document.metadata`, enriched with additional keys " +"**\"file_path\"** (the file name), **\"page_count\"** (number of pages in" +" document), and **\"page_number\"** (1-based page number)." msgstr "" - - -msgid "**\"toc_items\"** - a list of Table of Contents items pointing to this page. Each item of this list has the format `[lvl, title, pagenumber]`, where `lvl` is the hierarchy level, `title` a string and `pagenumber` as a 1-based page number." +#: ../../pymupdf4llm/api.rst:123 e102e7dfa70942fabc2932205ec555ed +msgid "" +"**\"toc_items\"** - a list of Table of Contents items pointing to this " +"page. Each item of this list has the format `[lvl, title, pagenumber]`, " +"where `lvl` is the hierarchy level, `title` a string and `pagenumber` as " +"a 1-based page number." msgstr "" - - -msgid "**\"tables\"** - a list of tables on this page. Each item is a dictionary with keys \"bbox\", \"row_count\" and \"col_count\". Key \"bbox\" is a `pymupdf.Rect` in tuple format of the table's position on the page." +#: ../../pymupdf4llm/api.rst:125 697bc1bf53f943a6a77a7e73b4ed9069 +msgid "" +"**\"tables\"** - a list of tables on this page. Each item is a dictionary" +" with keys \"bbox\", \"row_count\" and \"col_count\". Key \"bbox\" is a " +"`pymupdf.Rect` in tuple format of the table's position on the page." msgstr "" - - -msgid "**\"images\"** - |PyMuPDFLayoutMode_EmptyList| a list of images on the page. This a copy of page method :meth:`Page.get_image_info`." +#: ../../pymupdf4llm/api.rst:127 f4902a3e2743455b879b8e485c311e6e +msgid "" +"**\"images\"** - |PyMuPDFLayoutMode_EmptyList| a list of images on the " +"page. This a copy of page method :meth:`Page.get_image_info`." msgstr "" - - -msgid "**\"graphics\"** - |PyMuPDFLayoutMode_EmptyList| a list of vector graphics rectangles on the page. This is a list of boundary boxes of clustered vector graphics as delivered by method :meth:`Page.cluster_drawings`." +#: ../../pymupdf4llm/api.rst:129 247ba43947304db2939158ac691bb939 +msgid "" +"**\"graphics\"** - |PyMuPDFLayoutMode_EmptyList| a list of vector " +"graphics rectangles on the page. This is a list of boundary boxes of " +"clustered vector graphics as delivered by method " +":meth:`Page.cluster_drawings`." msgstr "" - - +#: ../../pymupdf4llm/api.rst:131 57d71d3b3a3249569cbda9768c424bda msgid "**\"text\"** - page content as |Markdown| text." msgstr "" - - -msgid "**\"words\"** - |PyMuPDFLayoutMode_EmptyList| if `extract_words=True` was used. This is a list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, lno, wno)` as delivered by `page.get_text(\"words\")`. The **sequence** of these tuples however is the same as produced in the markdown text string and thus honors multi-column text. This is also true for text in tables: words are extracted in the sequence of table row cells." -msgstr "" - - - -msgid "specify a desired page height. For relevance see the `page_width` parameter. If using the default `None`, the document will appear as one large page with a width of `page_width`. Consequently in this case, no markdown page separators will occur (except the final one), respectively only one page chunk will be returned." -msgstr "" - - - -msgid "if ``True`` inserts a string ``--- end of page=n ---`` at the end of each page output. Intended for debugging purposes. The page number is 0-based. The separator string is wrapped with line breaks. Default is ``False``." -msgstr "" - - - - -msgid "specify a desired page width. This is ignored for documents with a fixed page width like PDF, XPS etc. **Reflowable** documents however, like e-books, office [#f2]_ or text files have no fixed page dimensions. They by default are assumed to have Letter format width (612) and an **unlimited** page height. This means that the **full document is treated as one large page.**" +#: ../../pymupdf4llm/api.rst:133 5f83592243374620aa76011c7afea0ae +msgid "" +"**\"words\"** - |PyMuPDFLayoutMode_EmptyList| if `extract_words=True` was" +" used. This is a list of tuples `(x0, y0, x1, y1, \"wordstring\", bno, " +"lno, wno)` as delivered by `page.get_text(\"words\")`. The **sequence** " +"of these tuples however is the same as produced in the markdown text " +"string and thus honors multi-column text. This is also true for text in " +"tables: words are extracted in the sequence of table row cells." msgstr "" - - -msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Any Python sequence with integer items is accepted. The sequence is sorted and processed to only contain unique items." +#: ../../pymupdf4llm/api.rst:135 a4eb7467e30b421a95b8c99919ecbce6 +msgid "" +"specify a desired page height. For relevance see the `page_width` " +"parameter. If using the default `None`, the document will appear as one " +"large page with a width of `page_width`. Consequently in this case, no " +"markdown page separators will occur (except the final one), respectively " +"only one page chunk will be returned." msgstr "" - - -msgid "Default is `False`. A value of `True` displays a progress bar as pages are being converted. Package `tqdm `_ is used if installed, otherwise the built-in text based progress bar is used." +#: ../../pymupdf4llm/api.rst:137 3d9536256eb44ab18b73999b0e0a94ef +msgid "" +"if ``True`` inserts a string ``--- end of page=n ---`` at the end of each" +" page output. Intended for debugging purposes. The page number is " +"0-based. The separator string is wrapped with line breaks. Default is " +"``False``." msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| see: :meth:`table detection strategy `. Default is `"lines_strict"` which ignores background colors. In some occasions, other strategies may be more successful, for example `"lines"` which uses all vector graphics objects for detection." +#: ../../pymupdf4llm/api.rst:139 9cb78dc09dde4bdb80163561a09b2df7 +msgid "" +"specify a desired page width. This is ignored for documents with a fixed " +"page width like PDF, XPS etc. **Reflowable** documents however, like " +"e-books, office [#f2]_ or text files have no fixed page dimensions. They " +"by default are assumed to have Letter format width (612) and an " +"**unlimited** page height. This means that the **full document is treated" +" as one large page.**" msgstr "" - - -msgid "|PyMuPDFLayoutMode_Ignored| (New in v.0.0.19) Default is `False`. A value of `True` will use the glyph number of the characters instead of the character itself if the font does not store the Unicode value." +#: ../../pymupdf4llm/api.rst:141 ../../pymupdf4llm/api.rst:171 +#: 951850c1f7ff4f798dca7dda5b985f12 d4db9adce2fe428ab58a3903b6e897f9 +msgid "" +"optional, the pages to consider for output (caution: specify 0-based page" +" numbers). If omitted (`None`) all pages are processed. Any Python " +"sequence with integer items is accepted. The sequence is sorted and " +"processed to only contain unique items." msgstr "" - - -msgid "when encountering images or vector graphics, images will be created from the respective page area and stored in the specified folder. |Markdown| references will be generated pointing to these images. Any text contained in these areas will not be included in the text output (but appear as part of the images). Therefore, if for instance your document has text written on full page images, make sure to set this parameter to `False`." +#: ../../pymupdf4llm/api.rst:143 ../../pymupdf4llm/api.rst:175 +#: 56fb5c28b7784bf8b4a7d4c352ab926b 82e67bb02bfc4cf09bbf354bfaab4eae +#: 9536a5d8ab5a41c98764cbe8dda15cb9 +msgid "" +"Default is `False`. A value of `True` displays a progress bar as pages " +"are being converted. Package `tqdm `_ is " +"used if installed, otherwise the built-in text based progress bar is " +"used." msgstr "" - - -msgid "If using :ref:`PyMuPDF Layout `, boundary boxes that are classified as "picture" by the layout module will be treated as images - independent from the mixture of text, images or vector graphics they may be covering. If `force_text=True` is used, text will still be extracted from these areas and included in the output after the respective image reference." +#: ../../pymupdf4llm/api.rst:145 2db14405113e40179eb2edf68e69b579 +msgid "" +"|PyMuPDFLayoutMode_Ignored| see: :meth:`table detection strategy " +"`. Default is `\"lines_strict\"` which ignores " +"background colors. In some occasions, other strategies may be more " +"successful, for example `\"lines\"` which uses all vector graphics " +"objects for detection." msgstr "" - - -msgid "Either a string of the combined text of all selected document pages, or a list of dictionaries if `page_chunks=True`." +#: ../../pymupdf4llm/api.rst:147 abf44d2845b94d018e86396e471a2797 +msgid "" +"|PyMuPDFLayoutMode_Ignored| (New in v.0.0.19) Default is `False`. A value" +" of `True` will use the glyph number of the characters instead of the " +"character itself if the font does not store the Unicode value." msgstr "" - - -msgid "Reads the pages of the file and outputs the text of its pages in |TXT| format." +#: ../../pymupdf4llm/api.rst:149 dfec1fde53d145b4a723e9686dc1ad55 +msgid "" +"when encountering images or vector graphics, images will be created from " +"the respective page area and stored in the specified folder. |Markdown| " +"references will be generated pointing to these images. Any text contained" +" in these areas will not be included in the text output (but appear as " +"part of the images). Therefore, if for instance your document has text " +"written on full page images, make sure to set this parameter to `False`." +" If using :ref:`PyMuPDF Layout `, boundary boxes that " +"are classified as \"picture\" by the layout module will be treated as " +"images - independent from the mixture of text, images or vector graphics " +"they may be covering. If `force_text=True` is used, text will still be " +"extracted from these areas and included in the output after the " +"respective image reference." +msgstr "" + +#: ../../pymupdf4llm/api.rst:149 93ccd09a15134624a2ab4a2288ba6171 +msgid "" +"when encountering images or vector graphics, images will be created from " +"the respective page area and stored in the specified folder. |Markdown| " +"references will be generated pointing to these images. Any text contained" +" in these areas will not be included in the text output (but appear as " +"part of the images). Therefore, if for instance your document has text " +"written on full page images, make sure to set this parameter to `False`." msgstr "" - -msgid "|PyMuPDFLayoutMode_Valid|. This method is only available with PyMuPDF Layout." +#: ../../pymupdf4llm/api.rst:151 250eaf1b38694043b90736d4d9a821ce +msgid "" +"If using :ref:`PyMuPDF Layout `, boundary boxes that are " +"classified as \"picture\" by the layout module will be treated as images " +"- independent from the mixture of text, images or vector graphics they " +"may be covering. If `force_text=True` is used, text will still be " +"extracted from these areas and included in the output after the " +"respective image reference." msgstr "" - - -msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +#: ../../pymupdf4llm/api.rst 0d07c67350cb436fb33e8aad838f6779 +#: 598d4d5d997b46ae9c685c56a12f8d30 6c9887cf2f934da0a3139fe4efef9133 +#: 7cd056f0a5e24e6c9cb9ef3811c9fe21 85a59fb19a314f869c001f8014cb715b +msgid "Returns" msgstr "" - - -msgid "boolean to switch on/off page header content. This parameter controls whether to include or omit the header content from all the document pages. Useful if the document has repetitive header content which doesn't add any value to the overall extraction data. Default is `True` meaning that header content will be written." +#: ../../pymupdf4llm/api.rst:153 5f63166d8164444791851b4680d313dd +msgid "" +"Either a string of the combined text of all selected document pages, or a" +" list of dictionaries if `page_chunks=True`." msgstr "" - - -msgid "boolean to switch on/off page footer content. This parameter controls whether to include or omit the footer content from all the document pages. Useful if the document has repetitive footer content which doesn't add any value to the overall extraction data. Default is `True` meaning that footer content will be written." +#: ../../pymupdf4llm/api.rst:159 5b52df94b00743b6a3926949923c8769 +msgid "" +"Reads the pages of the file and outputs the text of its pages in |TXT| " +"format." msgstr "" - - -msgid "if `True` then mono-spaced text lines do not receive special formatting. No blocks will be written and text lines will be written continuously." +#: ../../pymupdf4llm/api.rst:161 ../../pymupdf4llm/api.rst:182 +#: 67252eed1bc0433b86f2f7f7339cf77b b67079733cf74d7ba1d1fbbb866cb359 +msgid "" +"|PyMuPDFLayoutMode_Valid|. This method is only available with PyMuPDF " +"Layout." msgstr "" - -msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Any Python sequence with integer items is accepted. The sequence is sorted and processed to only contain unique items." +#: ../../pymupdf4llm/api.rst:165 d3ce63da02ea48dca75f94d50be77f12 +msgid "" +"boolean to switch on/off page header content. This parameter controls " +"whether to include or omit the header content from all the document " +"pages. Useful if the document has repetitive header content which doesn't" +" add any value to the overall extraction data. Default is `True` meaning " +"that header content will be written." msgstr "" - - -msgid "generate text output also when overlapping images / graphics. This text then appears after the respective image reference. Images (i.e. \"picture\" areas) however will not be written to the text output but appear as a text line in the output like `==> picture [width x height] <==`." +#: ../../pymupdf4llm/api.rst:167 67bec0a4a60e463496475cd96362ffeb +msgid "" +"boolean to switch on/off page footer content. This parameter controls " +"whether to include or omit the footer content from all the document " +"pages. Useful if the document has repetitive footer content which doesn't" +" add any value to the overall extraction data. Default is `True` meaning " +"that footer content will be written." msgstr "" - - -msgid "Default is `False`. A value of `True` displays a progress bar as pages are being converted. Package `tqdm `_ is used if installed, otherwise the built-in text based progress bar is used." +#: ../../pymupdf4llm/api.rst:169 fb77c695d98d4c95aa3263b6b6d780b7 +msgid "" +"if `True` then mono-spaced text lines do not receive special formatting. " +"No blocks will be written and text lines will be written continuously." msgstr "" - - -msgid "Parses the document and the specified pages and converts the result into a |JSON|-formatted string." +#: ../../pymupdf4llm/api.rst:173 1b962ab25f1847bcbeca72a0b761b13e +msgid "" +"generate text output also when overlapping images / graphics. This text " +"then appears after the respective image reference. Images (i.e. " +"\"picture\" areas) however will not be written to the text output but " +"appear as a text line in the output like `==> picture [width x height] " +"<==`." msgstr "" - - - -msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| :class:`Document` (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| :class:`Document`." +#: ../../pymupdf4llm/api.rst:180 5d81ef685e2d4f0db6010c6fe5be7a9d +msgid "" +"Parses the document and the specified pages and converts the result into " +"a |JSON|-formatted string." msgstr "" - - -msgid "specify the desired image resolution in dots per inch. Default value is 150. Only relevant if one of the parameters `write_images=True` or `embed_images=True` is used." +#: ../../pymupdf4llm/api.rst:186 4855882483854c768ca0261d1ae19f75 +msgid "" +"specify the desired image resolution in dots per inch. Default value is " +"150. Only relevant if one of the parameters `write_images=True` or " +"`embed_images=True` is used." msgstr "" - - -msgid "specify the desired image format via its extension. Default is \"png\" (portable network graphics). Another popular format may be \"jpg\". Possible values are all :ref:`supported output formats `. Only relevant if one of the parameters `write_images=True` or `embed_images=True` is used." +#: ../../pymupdf4llm/api.rst:188 92c49b4e2541455c8fc58a215abe7ded +msgid "" +"specify the desired image format via its extension. Default is \"png\" " +"(portable network graphics). Another popular format may be \"jpg\". " +"Possible values are all :ref:`supported output formats " +"`. Only relevant if one of the parameters " +"`write_images=True` or `embed_images=True` is used." msgstr "" - - -msgid "store images in this folder. Relevant if `write_images=True`. Default is the path of the script directory. Page areas classified as \"picture\" will be written as image files to the specified location. The image file names will be of the format `{image_path}/{filename}-pagenumber-image_number.{image_format}`." +#: ../../pymupdf4llm/api.rst:190 1be020ddc3ca4fbe9f5fd73c3298040b +msgid "" +"store images in this folder. Relevant if `write_images=True`. Default is " +"the path of the script directory. Page areas classified as \"picture\" " +"will be written as image files to the specified location. The image file " +"names will be of the format `{image_path}/{filename}-pagenumber-" +"image_number.{image_format}`." msgstr "" - - -msgid "generate text output for text that is written upon areas that are classified as \"picture\" by the layout module. This may be especially be useful when picture content is not stored." +#: ../../pymupdf4llm/api.rst:192 984764256bf04d99b89ba80370d8541c +msgid "" +"generate text output for text that is written upon areas that are " +"classified as \"picture\" by the layout module. This may be especially be" +" useful when picture content is not stored." msgstr "" - - +#: ../../pymupdf4llm/api.rst:194 8b5e7a2ba58e4b0da1eed3140c9a2eed msgid "display a progress bar during processing." msgstr "" - - -msgid "store image binaries for \"picture\" boundary boxes. Base64-encoded images are included in the JSON output. Ignores `image_path` if used. This may drastically increase the size of your JSON text." +#: ../../pymupdf4llm/api.rst:196 5a55754f73304138814f39a3895fb5db +msgid "" +"store image binaries for \"picture\" boundary boxes. Base64-encoded " +"images are included in the JSON output. Ignores `image_path` if used. " +"This may drastically increase the size of your JSON text." msgstr "" - - -msgid "store image files \"picture\" boundary boxes.when encountering images, image files will be created from the respective page area and stored in the specified folder. Any text contained in these areas will still be included in the text output." +#: ../../pymupdf4llm/api.rst:198 13a91b7cc1f04969b4e871b8c7920989 +msgid "" +"store image files \"picture\" boundary boxes.when encountering images, " +"image files will be created from the respective page area and stored in " +"the specified folder. Any text contained in these areas will still be " +"included in the text output." msgstr "" - - -msgid "optional, the pages to consider for output (caution: specify 0-based page numbers). If omitted (`None`) all pages are processed. Specify any valid Python sequence containing integers between `0` and `page_count - 1`." +#: ../../pymupdf4llm/api.rst:200 dd0ddcf7925544d4b76e9734667d33f4 +msgid "" +"optional, the pages to consider for output (caution: specify 0-based page" +" numbers). If omitted (`None`) all pages are processed. Specify any valid" +" Python sequence containing integers between `0` and `page_count - 1`." msgstr "" - - -msgid "Please see `this site `_ for more background and the current status of further improvements regarding usage with :ref:`PyMuPDF Layout `." +#: ../../pymupdf4llm/api.rst:205 47988e45549446179f8420be32191824 +msgid "" +"Please see `this site " +"`_ for more " +"background and the current status of further improvements regarding usage" +" with :ref:`PyMuPDF Layout `." msgstr "" - - -msgid "Create a `pdf_markdown_reader.PDFMarkdownReader` using the `LlamaIndex`_ package. Please note that this package will **not automatically be installed** when installing **pymupdf4llm**." +#: ../../pymupdf4llm/api.rst:210 8bdedbb86fac4bdca76803ff7f660033 +msgid "" +"Create a `pdf_markdown_reader.PDFMarkdownReader` using the `LlamaIndex`_ " +"package. Please note that this package will **not automatically be " +"installed** when installing **pymupdf4llm**." msgstr "" - - -msgid "For details on the possible arguments, please consult the LlamaIndex documentation [#f1]_." +#: ../../pymupdf4llm/api.rst:212 ac6f0e13b9034f77a6222df6d6f0a966 +msgid "" +"For details on the possible arguments, please consult the LlamaIndex " +"documentation [#f1]_." msgstr "" +#: ../../pymupdf4llm/api.rst 71aa61f2d1a446ec8dc78203d5e8258b +msgid "raises" +msgstr "" - +#: ../../pymupdf4llm/api.rst:214 f1a663fdbc6e4f06b71256b6a4ef2df9 msgid "`NotImplementedError`: Please install required `LlamaIndex`_ package." msgstr "" - - -msgid "a `pdf_markdown_reader.PDFMarkdownReader` and issues message "Successfully imported LlamaIndex". Please note that this method needs several seconds to execute. For details on using the markdown reader please see below." +#: ../../pymupdf4llm/api.rst:215 9c61e09aba8942e081d3fc15080f8708 +msgid "" +"a `pdf_markdown_reader.PDFMarkdownReader` and issues message " +"\"Successfully imported LlamaIndex\". Please note that this method needs " +"several seconds to execute. For details on using the markdown reader " +"please see below." msgstr "" - - -msgid "This class is not available in \"layout mode\", i.e. if the import of pymupdf4llm has happened **after** the statement ``import pymupdf.layout``." +#: ../../pymupdf4llm/api.rst:222 ../../pymupdf4llm/api.rst:350 +#: 59202f45ef284beea61e2fb7c2b74d47 71f2f0dd222a44589ed37b4ae0fd4ad7 +msgid "|PyMuPDFLayoutMode_Unavailable|" msgstr "" - - -msgid "Create an object which maps text font sizes to the respective number of '#' characters which are used by Markdown syntax to indicate header levels. The object is created by scanning the document for font size \"popularity\". The most popular font size and all smaller sizes are used for body text. Larger font sizes are mapped to the respective header levels - which correspond to the HTML tags `

` to `

`." +#: ../../pymupdf4llm/api.rst:227 36ad491d525c45e3923f3fd43b7ab548 +msgid "" +"Create an object which maps text font sizes to the respective number of " +"'#' characters which are used by Markdown syntax to indicate header " +"levels. The object is created by scanning the document for font size " +"\"popularity\". The most popular font size and all smaller sizes are used" +" for body text. Larger font sizes are mapped to the respective header " +"levels - which correspond to the HTML tags `

` to `

`." msgstr "" - - +#: ../../pymupdf4llm/api.rst:229 a5f1efbaa3ec4a3fa953b61ecb108cb5 msgid "All font sizes are rounded to integer values." msgstr "" - - -msgid "If more than 6 header levels would be required, then the largest number smaller than the `
` font size is used for body text." +#: ../../pymupdf4llm/api.rst:231 060cf88a851843848a644386178dfc4f +msgid "" +"If more than 6 header levels would be required, then the largest number " +"smaller than the `
` font size is used for body text." msgstr "" - - -msgid "Please note that creating the object will read and inspect the text of the entire document - independently of reading the document again in the `to_markdown()` method subsequently. Method `to_markdown()` by default **will create this object** if you do not override its `hdr_info=None` parameter." +#: ../../pymupdf4llm/api.rst:233 4b8c52bf47c0493388a6cae3ddc6dc33 +msgid "" +"Please note that creating the object will read and inspect the text of " +"the entire document - independently of reading the document again in the " +"`to_markdown()` method subsequently. Method `to_markdown()` by default " +"**will create this object** if you do not override its `hdr_info=None` " +"parameter." msgstr "" - - -msgid "the file, to be specified either as a file path string, or as a |PyMuPDF| Document (created via `pymupdf.open`). In order to use `pathlib.Path` specifications, Python file-like objects, documents in memory etc. you **must** use a |PyMuPDF| Document." +#: ../../pymupdf4llm/api.rst:236 8a854caf0428436bb30ff64c0e2b7b99 +msgid "" +"the file, to be specified either as a file path string, or as a |PyMuPDF|" +" Document (created via `pymupdf.open`). In order to use `pathlib.Path` " +"specifications, Python file-like objects, documents in memory etc. you " +"**must** use a |PyMuPDF| Document." msgstr "" - - +#: ../../pymupdf4llm/api.rst:238 ca89a89858a54fcbbb852141997e973c msgid "optional, the pages to consider. If omitted all pages are processed." msgstr "" - - -msgid "the default font size limit for body text. Only used when the document scan does not deliver valid information." +#: ../../pymupdf4llm/api.rst:240 28c341c4a1a546bda43c89f339be5704 +msgid "" +"the default font size limit for body text. Only used when the document " +"scan does not deliver valid information." msgstr "" - - -msgid "the maximum number of header levels to be used. Valid values are in `range(1, 7)`. The default is 6, which corresponds to the HTML tags `

` to `

`. A smaller value will limit the number of generated header levels. For instance, a value of 3 will only generate header tags \"#\", \"##\" and \"###\". Body text will be assumed for all font sizes smaller than the one corresponding to \"###\"." +#: ../../pymupdf4llm/api.rst:242 9f2766b2b7ca488cbd3a37553ff5694f +msgid "" +"the maximum number of header levels to be used. Valid values are in " +"`range(1, 7)`. The default is 6, which corresponds to the HTML tags " +"`

` to `

`. A smaller value will limit the number of generated " +"header levels. For instance, a value of 3 will only generate header tags " +"\"#\", \"##\" and \"###\". Body text will be assumed for all font sizes " +"smaller than the one corresponding to \"###\"." msgstr "" - - -msgid "Return appropriate markdown header prefix. This is either \"\" or a string of \"#\" characters followed by a space." +#: ../../pymupdf4llm/api.rst:247 15756bee4cc048d0804e9ad2b8711c6b +msgid "" +"Return appropriate markdown header prefix. This is either \"\" or a " +"string of \"#\" characters followed by a space." msgstr "" - - -msgid "Given a text span from a \"dict\" extraction, determine the markdown header prefix string of 0 to n concatenated '#' characters." +#: ../../pymupdf4llm/api.rst:249 a58b7b22952e44f6a83e6cbd4945aec1 +msgid "" +"Given a text span from a \"dict\" extraction, determine the markdown " +"header prefix string of 0 to n concatenated '#' characters." msgstr "" - - -msgid "a dictionary containing the text span information. This is the same dictionary as returned by `page.get_text(\"dict\")`." +#: ../../pymupdf4llm/api.rst:251 ../../pymupdf4llm/api.rst:370 +#: 7a4b3f9199c64c60855e87be06938800 937b8a8741c941fe837306b743b991d2 +msgid "" +"a dictionary containing the text span information. This is the same " +"dictionary as returned by `page.get_text(\"dict\")`." msgstr "" - - -msgid "the owning page object. This can be used when additional information needs to be extracted." +#: ../../pymupdf4llm/api.rst:253 ../../pymupdf4llm/api.rst:372 +#: 3f4de965af784b5aa3bc9c1d0da99386 4fb44301f96d4a76813aaaf15f5dbf3f +msgid "" +"the owning page object. This can be used when additional information " +"needs to be extracted." msgstr "" - - +#: ../../pymupdf4llm/api.rst:255 ../../pymupdf4llm/api.rst:374 +#: 1ada9bd96e9e481bbf098e63f0b97a34 4e537632f9824eafa6ea661c5c65813d msgid "a string of \"#\" characters followed by a space." msgstr "" - - -msgid "A dictionary mapping (integer) font sizes to Markdown header strings like ``{14: '# ', 12: '## '}``. The dictionary is created by the :class:`IdentifyHeaders` constructor. The keys are the font sizes of the text spans in the document. The values are the respective header strings." +#: ../../pymupdf4llm/api.rst:259 e3e73fd9f50a4142a184bd4baa20c90b +msgid "" +"A dictionary mapping (integer) font sizes to Markdown header strings like" +" ``{14: '# ', 12: '## '}``. The dictionary is created by the " +":class:`IdentifyHeaders` constructor. The keys are the font sizes of the " +"text spans in the document. The values are the respective header strings." msgstr "" - - -msgid "An integer value indicating the font size limit for body text. This is computed as ``min(header_id.keys()) - 1``. In the above example, body_limit would be 11." +#: ../../pymupdf4llm/api.rst:263 c5a884c560bc48cfb1e711db69d97d70 +msgid "" +"An integer value indicating the font size limit for body text. This is " +"computed as ``min(header_id.keys()) - 1``. In the above example, " +"body_limit would be 11." msgstr "" - - +#: ../../pymupdf4llm/api.rst:269 18f9b62b612f43cb98b8bc9395d2e91d msgid "**How to limit header levels (example)**" msgstr "" - - +#: ../../pymupdf4llm/api.rst:271 fdcd8a88e3764fe2beb711dd0f769a93 msgid "Limit the generated header levels to 3::" msgstr "" - - +#: ../../pymupdf4llm/api.rst:281 6922b5601f2b4e85abea7f1588a5242f msgid "**How to provide your own header logic (example 1)**" msgstr "" - - +#: ../../pymupdf4llm/api.rst:283 0c5bbcfbc3d54e32afd708445550f723 msgid "Provide your own function which uses pre-determined, fixed font sizes::" msgstr "" - - +#: ../../pymupdf4llm/api.rst:310 b42d96ba59d74b32b1b76a558c18107f msgid "**How to provide your own header logic (example 2)**" msgstr "" - - -msgid "This user function uses the document's Table of Contents -- under the assumption that the bookmark text is also present as a header line on the page (which certainly need not be the case!)::" -msgstr "" - - - -msgid "Create an object which uses the document's Table of Contents (TOC) to determine header levels. Upon object creation, the table of contents is read via the `Document.get_toc()` method. The TOC data is then used to determine header levels in the `to_markdown()` method." -msgstr "" - - - -msgid "This is an alternative to :class:`IdentifyHeaders`. Instead of running through the full document to identify font sizes, it uses the document's Table Of Contents (TOC) to identify headers on pages. Like :class:`IdentifyHeaders`, this also is no guarantee to find headers, but for well-built Table of Contents, there is a good chance for more correctly identifying header lines on document pages than the font-size-based approach." -msgstr "" - - -msgid "It also has the advantage of being much faster than the font-size-based approach, as it does not execute a full document scan or even access any of the document pages." +#: ../../pymupdf4llm/api.rst:312 c06eabeb42df48b0a48defe0031513fe +msgid "" +"This user function uses the document's Table of Contents -- under the " +"assumption that the bookmark text is also present as a header line on the" +" page (which certainly need not be the case!)::" msgstr "" - - -msgid "Examples where this approach works very well are the Adobe's files on PDF documentation." +#: ../../pymupdf4llm/api.rst:354 7b2f4631e38449c0829b1d5669205310 +msgid "" +"Create an object which uses the document's Table of Contents (TOC) to " +"determine header levels. Upon object creation, the table of contents is " +"read via the `Document.get_toc()` method. The TOC data is then used to " +"determine header levels in the `to_markdown()` method." msgstr "" - - -msgid "Please note that this feature **does not read document pages** where the table of contents may exist as normal standard text. It only accesses data as provided by the `Document.get_toc()` method. It will not identify any headers for documents where the table of contents is not available as a collection of bookmarks." +#: ../../pymupdf4llm/api.rst:356 80a339f128134f47b56bdd58fb75a2e7 +msgid "" +"This is an alternative to :class:`IdentifyHeaders`. Instead of running " +"through the full document to identify font sizes, it uses the document's " +"Table Of Contents (TOC) to identify headers on pages. Like " +":class:`IdentifyHeaders`, this also is no guarantee to find headers, but " +"for well-built Table of Contents, there is a good chance for more " +"correctly identifying header lines on document pages than the font-size-" +"based approach." msgstr "" - -msgid "Return appropriate markdown header prefix. This is either an empty string or a string of \"#\" characters followed by a space." +#: ../../pymupdf4llm/api.rst:358 6ba9148a06a44cd0b05fab409c4283a1 +msgid "" +"It also has the advantage of being much faster than the font-size-based " +"approach, as it does not execute a full document scan or even access any " +"of the document pages." msgstr "" - - -msgid "Given a text span from a \"dict\" extraction variant, determine the markdown header prefix string of 0 to n concatenated \"#\" characters." +#: ../../pymupdf4llm/api.rst:360 e09d29ea50ee4cb99e1e48f14cb1d419 +msgid "" +"Examples where this approach works very well are the Adobe's files on PDF" +" documentation." msgstr "" - -msgid "a dictionary containing the text span information. This is the same dictionary as returned by `page.get_text(\"dict\")`." +#: ../../pymupdf4llm/api.rst:362 42d005a54259451e84de46008792d588 +msgid "" +"Please note that this feature **does not read document pages** where the " +"table of contents may exist as normal standard text. It only accesses " +"data as provided by the `Document.get_toc()` method. It will not identify" +" any headers for documents where the table of contents is not available " +"as a collection of bookmarks." msgstr "" - - -msgid "the owning page object. This can be used when additional information needs to be extracted." +#: ../../pymupdf4llm/api.rst:366 9747e3ce0895441493b43d41f4a9df78 +msgid "" +"Return appropriate markdown header prefix. This is either an empty string" +" or a string of \"#\" characters followed by a space." msgstr "" - - -msgid "a string of \"#\" characters followed by a space." +#: ../../pymupdf4llm/api.rst:368 59e1904d38f140f0a477ffbb69d1dc7d +msgid "" +"Given a text span from a \"dict\" extraction variant, determine the " +"markdown header prefix string of 0 to n concatenated \"#\" characters." msgstr "" - - +#: ../../pymupdf4llm/api.rst:378 4b11b54d62a94df4905acf20c2ad8471 msgid "**How to use class TocHeaders**" msgstr "" - - -msgid "This is a version of previous **example 2** that uses :class:`TocHeaders` for header identification::" +#: ../../pymupdf4llm/api.rst:380 95ea1015ab4c45ab9fdb488b9c270390 +msgid "" +"This is a version of previous **example 2** that uses :class:`TocHeaders`" +" for header identification::" msgstr "" - - -msgid "This is the only method of the markdown reader you should currently use to extract markdown data. Please in any case ignore methods `aload_data()` and `lazy_load_data()`. Other methods like `use_doc_meta()` may or may not make sense. For more information, please consult the LlamaIndex documentation [#f1]_." +#: ../../pymupdf4llm/api.rst:398 a4a87f3efb6d472d80ff03a5b8a23c65 +msgid "" +"This is the only method of the markdown reader you should currently use " +"to extract markdown data. Please in any case ignore methods " +"`aload_data()` and `lazy_load_data()`. Other methods like " +"`use_doc_meta()` may or may not make sense. For more information, please " +"consult the LlamaIndex documentation [#f1]_." msgstr "" - - +#: ../../pymupdf4llm/api.rst:400 df377eb2611b45ad9e06938903718a76 msgid "Under the hood the method will execute `to_markdown()`." msgstr "" - - +#: ../../pymupdf4llm/api.rst:402 afdbf4a1f22542639e7a55416dbdda7c msgid "a list of `LlamaIndexDocument` documents - one for each page." msgstr "" - - -msgid "For a list of changes, please see file `CHANGES.md `_." +#: ../../pymupdf4llm/api.rst:406 fd268aa92d6044ef951c3f708636d48e +msgid "" +"For a list of changes, please see file `CHANGES.md " +"`_." msgstr "" +#: ../../pymupdf4llm/api.rst:409 6446df28273c490c9e143aed82d42276 +msgid "Footnotes" +msgstr "" - +#: ../../pymupdf4llm/api.rst:410 bbce2a3f10a44b019ed3acaa0a06e6b6 msgid "`LlamaIndex documentation `_" msgstr "" - - -msgid "When using PyMuPDF-Pro, supported office documents are converted internally into a PDF-like format. Therefore, they **will have fixed page dimensions** and be no longer "reflowable". Consequently, the page width and page height specifications will be ignored as well in these cases." +#: ../../pymupdf4llm/api.rst:412 c49adecd61d04edda261abe63966093d +msgid "" +"When using PyMuPDF-Pro, supported office documents are converted " +"internally into a PDF-like format. Therefore, they **will have fixed page" +" dimensions** and be no longer \"reflowable\". Consequently, the page " +"width and page height specifications will be ignored as well in these " +"cases." msgstr "" - - -msgid "Footnotes" +#: ../../footer.rst:48 1ed68f4bf8fd45fab04f7a49fba09f0a +msgid "This documentation covers all versions up to |version|." msgstr "" - +#~ msgid "" +#~ "This class is not available in " +#~ "\"layout mode\", i.e. if the import " +#~ "of pymupdf4llm has happened **after** " +#~ "the statement ``import pymupdf.layout``." +#~ msgstr "" diff --git a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po index 46708ca93..f96759876 100644 --- a/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po +++ b/docs/locales/ko/LC_MESSAGES/pymupdf4llm/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-26 17:04+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 d999746961f541d091c04253454c2495 +#: ../../header.rst:-1 7f556c0708ab49cdbc462a525dfa7aff msgid "Artifex" msgstr "" -#: ../../header.rst:-1 942f0462179c4c28a52bfb5b4819a15a +#: ../../header.rst:-1 4eb9ac713eaa4bc5a5a44191f5dec7ae msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 cc1a6ef974e74b6299fc9df6b833ae6d +#: ../../header.rst:-1 8c03dba2f9bc41ab84de0114382f5e82 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -49,7 +49,7 @@ msgstr "" #: ../../pymupdf4llm/index.rst:12 8b36d59c925f4a0d93873eeab7e4843a msgid "" -"When using |PyMuPDF4LLM| with PyMuPDF-Layout, page layout detection will " +"When using |PyMuPDF4LLM| with PyMuPDF Layout, page layout detection will " "be greatly improved. This is true for table detection, but also for the " "detection of page headers and footers, footnotes, list items and text " "paragraphs. In addition two new methods become available, `to_json()` and" @@ -87,12 +87,16 @@ msgid "" "`." msgstr "" -#: ../../pymupdf4llm/index.rst:25 ed7f233894d54e93aca9c1f33a896476 -msgid "In \"layout mode\": Support for plain text output similar to Markdown" +#: ../../pymupdf4llm/index.rst:25 42fe53c6392143838058ca9b8b1684a3 +msgid "" +"When used with :ref:`PyMuPDF Layout ` : Support for plain" +" text output similar to Markdown" msgstr "" -#: ../../pymupdf4llm/index.rst:26 e29cc03c8f6f40be974a1f9262165c9c -msgid "In \"layout mode\": Support for JSON output" +#: ../../pymupdf4llm/index.rst:26 345e944ae1c54464a70343f8ee2b62e9 +msgid "" +"When used with :ref:`PyMuPDF Layout ` : Support for JSON " +"output" msgstr "" #: ../../pymupdf4llm/index.rst:30 90f6c12aacd14b7eba944b6c1e013ed5 @@ -253,7 +257,7 @@ msgid "" "with-pymupdf>`_" msgstr "" -#: ../../footer.rst:46 30b12247e1244acba7a2885245d87849 +#: ../../footer.rst:48 30b12247e1244acba7a2885245d87849 msgid "This documentation covers all versions up to |version|." msgstr "" @@ -267,3 +271,21 @@ msgstr "" #~ "second pages of the document." #~ msgstr "" +#~ msgid "" +#~ "When using |PyMuPDF4LLM| with PyMuPDF-" +#~ "Layout, page layout detection will be" +#~ " greatly improved. This is true for" +#~ " table detection, but also for the" +#~ " detection of page headers and " +#~ "footers, footnotes, list items and text" +#~ " paragraphs. In addition two new " +#~ "methods become available, `to_json()` and " +#~ "`to_text()`." +#~ msgstr "" + +#~ msgid "In \"layout mode\": Support for plain text output similar to Markdown" +#~ msgstr "" + +#~ msgid "In \"layout mode\": Support for JSON output" +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/the-basics.po b/docs/locales/ko/LC_MESSAGES/the-basics.po index cd01a796d..8c35e0f70 100644 --- a/docs/locales/ko/LC_MESSAGES/the-basics.po +++ b/docs/locales/ko/LC_MESSAGES/the-basics.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 f7b025d9345a4b48b8e13575dce4b5f6 +#: ../../header.rst:-1 909f9969c815483692de0eeae2b2c6b8 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 096cfd3146e049549b47ca986e5fb8b9 +#: ../../header.rst:-1 7c546c172c3049238925a5d3d154deac msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 54780494620e4f37a46301389f9e346c +#: ../../header.rst:-1 d775abfe51ed4aae97e87841af09650c msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -50,8 +50,8 @@ msgstr "" #: ../../the-basics.rst:27 ../../the-basics.rst:58 ../../the-basics.rst:119 #: ../../the-basics.rst:149 ../../the-basics.rst:199 ../../the-basics.rst:249 #: ../../the-basics.rst:287 ../../the-basics.rst:377 ../../the-basics.rst:416 -#: ../../the-basics.rst:467 ../../the-basics.rst:553 ../../the-basics.rst:638 -#: ../../the-basics.rst:694 ../../the-basics.rst:886 ../../the-basics.rst:1070 +#: ../../the-basics.rst:465 ../../the-basics.rst:551 ../../the-basics.rst:636 +#: ../../the-basics.rst:692 ../../the-basics.rst:884 ../../the-basics.rst:1068 #: 0068950bcad54023968e3f762f5f517f 05774a0919aa4c5c9c36f6bac5d452ef #: 0e7e23d4b7bc416cae884504c277d711 1225e0c609dc479ca2f4b881424a32ac #: 2222ebbac6364d5b9b08e76451ddf9a1 47f2b0f15354473b88fd164c09ab6f50 @@ -108,11 +108,11 @@ msgstr "" #: ../../the-basics.rst:71 ../../the-basics.rst:123 ../../the-basics.rst:153 #: ../../the-basics.rst:208 ../../the-basics.rst:255 ../../the-basics.rst:291 #: ../../the-basics.rst:318 ../../the-basics.rst:343 ../../the-basics.rst:383 -#: ../../the-basics.rst:420 ../../the-basics.rst:474 ../../the-basics.rst:500 -#: ../../the-basics.rst:527 ../../the-basics.rst:608 ../../the-basics.rst:659 -#: ../../the-basics.rst:698 ../../the-basics.rst:762 ../../the-basics.rst:821 -#: ../../the-basics.rst:898 ../../the-basics.rst:928 ../../the-basics.rst:964 -#: ../../the-basics.rst:990 ../../the-basics.rst:1074 +#: ../../the-basics.rst:420 ../../the-basics.rst:472 ../../the-basics.rst:498 +#: ../../the-basics.rst:525 ../../the-basics.rst:606 ../../the-basics.rst:657 +#: ../../the-basics.rst:696 ../../the-basics.rst:760 ../../the-basics.rst:819 +#: ../../the-basics.rst:896 ../../the-basics.rst:926 ../../the-basics.rst:962 +#: ../../the-basics.rst:988 ../../the-basics.rst:1072 #: 07855b8e74cf474bb2c22f4ea1486b77 14463d4aca01470b9aeb4b607b17f5c9 #: 1c3978a5519a4d36b5e656a91c01ecdf 2c0ea7a221bc482c9799c3a352cb1eb9 #: 5c80f9f1865449309e09d88d691bb68a 5efa802d04ed4ed89cd05d92421170f6 @@ -372,82 +372,82 @@ msgstr "" msgid "To delete a multiple pages from a document, do the following:" msgstr "" -#: ../../the-basics.rst:459 2a651424c7104dda8fccdeb738d8f3d4 +#: ../../the-basics.rst:457 2a651424c7104dda8fccdeb738d8f3d4 msgid "What happens if I delete a page referred to by bookmarks or hyperlinks?" msgstr "" -#: ../../the-basics.rst:461 268000ef67c644459cb4d5f0f21c3a0f +#: ../../the-basics.rst:459 268000ef67c644459cb4d5f0f21c3a0f msgid "" "A bookmark (entry in the Table of Contents) will become inactive and will" " no longer navigate to any page." msgstr "" -#: ../../the-basics.rst:463 c9da611cc8bd48d69c43c3418cd4dba8 +#: ../../the-basics.rst:461 c9da611cc8bd48d69c43c3418cd4dba8 msgid "" "A hyperlink will be removed from the page that contains it. The visible " "content on that page will not otherwise be changed in any way." msgstr "" -#: ../../the-basics.rst:469 691f875a941741d08cb1049a5fd7fea0 +#: ../../the-basics.rst:467 691f875a941741d08cb1049a5fd7fea0 msgid "" "The page index is zero-based, so to delete page 10 of a document you " "would do the following `doc.delete_page(9)`." msgstr "" -#: ../../the-basics.rst:471 471029bcec864d5c83b56258d14c9a6b +#: ../../the-basics.rst:469 471029bcec864d5c83b56258d14c9a6b msgid "" "Similarly, `doc.delete_pages(from_page=9, to_page=14)` will delete pages " "10 - 15 inclusive." msgstr "" -#: ../../the-basics.rst:476 a6edabe8375f47aab6ecea141c9de9ef +#: ../../the-basics.rst:474 a6edabe8375f47aab6ecea141c9de9ef msgid ":meth:`Document.delete_page`" msgstr "" -#: ../../the-basics.rst:477 dc08fba2f443449d9604c358be0f59b2 +#: ../../the-basics.rst:475 dc08fba2f443449d9604c358be0f59b2 msgid ":meth:`Document.delete_pages`" msgstr "" -#: ../../the-basics.rst:485 94049f92c8ad4d6b8b0024d436ab9235 +#: ../../the-basics.rst:483 94049f92c8ad4d6b8b0024d436ab9235 msgid "Re-Arranging Pages" msgstr "" -#: ../../the-basics.rst:487 82cc8c6d56974119a12c0c709d30c2d0 +#: ../../the-basics.rst:485 82cc8c6d56974119a12c0c709d30c2d0 msgid "To change the sequence of pages, i.e. re-arrange pages, do the following:" msgstr "" -#: ../../the-basics.rst:502 4c1a980fdd2442ae896528a2b043b4d7 +#: ../../the-basics.rst:500 4c1a980fdd2442ae896528a2b043b4d7 msgid ":meth:`Document.move_page`" msgstr "" -#: ../../the-basics.rst:511 1b6a6d6430b64d2fa81c618aa5a36c2a +#: ../../the-basics.rst:509 1b6a6d6430b64d2fa81c618aa5a36c2a msgid "Copying Pages" msgstr "" -#: ../../the-basics.rst:514 703c6c326a244e3f95a5f9308a4db9f8 +#: ../../the-basics.rst:512 703c6c326a244e3f95a5f9308a4db9f8 msgid "To copy pages, do the following:" msgstr "" -#: ../../the-basics.rst:529 e0f411a53f464a6cb29477e745869390 +#: ../../the-basics.rst:527 e0f411a53f464a6cb29477e745869390 msgid ":meth:`Document.copy_page`" msgstr "" -#: ../../the-basics.rst:537 3f3ac486797b4e59a03d43dfd13d0ae9 +#: ../../the-basics.rst:535 3f3ac486797b4e59a03d43dfd13d0ae9 msgid "Selecting Pages" msgstr "" -#: ../../the-basics.rst:540 c5e43d6789904283afdfc2c3e31f4b3e +#: ../../the-basics.rst:538 c5e43d6789904283afdfc2c3e31f4b3e msgid "To select pages, do the following:" msgstr "" -#: ../../the-basics.rst:555 0c1c3c72d9c542d5a9fd994ca426390d +#: ../../the-basics.rst:553 0c1c3c72d9c542d5a9fd994ca426390d msgid "" "With |PyMuPDF| you have all options to copy, move, delete or re-arrange " "the pages of a |PDF|. Intuitive methods exist that allow you to do this " "on a page-by-page level, like the :meth:`Document.copy_page` method." msgstr "" -#: ../../the-basics.rst:557 99b4ed9af68646628e27f7fd50ed6026 +#: ../../the-basics.rst:555 99b4ed9af68646628e27f7fd50ed6026 msgid "" "Or you alternatively prepare a complete new page layout in form of a " ":title:`Python` sequence, that contains the page numbers you want, in the" @@ -455,61 +455,61 @@ msgid "" "following may illustrate what can be done with :meth:`Document.select`" msgstr "" -#: ../../the-basics.rst:564 6807a098f55f41e08049ad773d010494 +#: ../../the-basics.rst:562 6807a098f55f41e08049ad773d010494 msgid "" "Now let's prepare a PDF for double-sided printing (on a printer not " "directly supporting this):" msgstr "" -#: ../../the-basics.rst:566 2bd6434b882a4d8db3c304ffbd3aa687 +#: ../../the-basics.rst:564 2bd6434b882a4d8db3c304ffbd3aa687 msgid "" "The number of pages is given by `len(doc)` (equal to `doc.page_count`). " "The following lists represent the even and the odd page numbers, " "respectively:" msgstr "" -#: ../../the-basics.rst:573 293d86f017734a8ebc3c3f116fd93ed9 +#: ../../the-basics.rst:571 293d86f017734a8ebc3c3f116fd93ed9 msgid "" "This snippet creates the respective sub documents which can then be used " "to print the document:" msgstr "" -#: ../../the-basics.rst:585 7c03acb1833d4a7e835b8d14d71d52a1 +#: ../../the-basics.rst:583 7c03acb1833d4a7e835b8d14d71d52a1 msgid "" "For more information also have a look at this Wiki `article " "`_." msgstr "" -#: ../../the-basics.rst:588 54ec68649c0e4b609bbc4f4ad4e005cb +#: ../../the-basics.rst:586 54ec68649c0e4b609bbc4f4ad4e005cb msgid "" "The following example will reverse the order of all pages (**extremely " "fast:** sub-second time for the 756 pages of the :ref:`AdobeManual`):" msgstr "" -#: ../../the-basics.rst:598 bb40e1408cac4faa8820273561325390 +#: ../../the-basics.rst:596 bb40e1408cac4faa8820273561325390 msgid "" "This snippet duplicates the PDF with itself so that it will contain the " "pages *0, 1, ..., n, 0, 1, ..., n* **(extremely fast and without " "noticeably increasing the file size!)**:" msgstr "" -#: ../../the-basics.rst:610 2c346b1ac6fe452d96ab804a995e9039 +#: ../../the-basics.rst:608 2c346b1ac6fe452d96ab804a995e9039 msgid ":meth:`Document.select`" msgstr "" -#: ../../the-basics.rst:621 0c4e94066fe44ad499c54211fe16aae6 +#: ../../the-basics.rst:619 0c4e94066fe44ad499c54211fe16aae6 msgid "Adding Blank Pages" msgstr "" -#: ../../the-basics.rst:623 b2cff0e96799476d884ceb9a27a0a394 +#: ../../the-basics.rst:621 b2cff0e96799476d884ceb9a27a0a394 msgid "To add a blank page, do the following:" msgstr "" -#: ../../the-basics.rst:640 ce36fc6b536c46d4b1f018b19e714a4d +#: ../../the-basics.rst:638 ce36fc6b536c46d4b1f018b19e714a4d msgid "Use this to create the page with another pre-defined paper format:" msgstr "" -#: ../../the-basics.rst:648 7d2dc00bc025437295e6e7ac8de51e61 +#: ../../the-basics.rst:646 7d2dc00bc025437295e6e7ac8de51e61 msgid "" "The convenience function :meth:`paper_size` knows over 40 industry " "standard paper formats to choose from. To see them, inspect dictionary " @@ -518,33 +518,33 @@ msgid "" "you append \"-L\" to the format name, the landscape version is returned." msgstr "" -#: ../../the-basics.rst:650 b44282f4ada544d1b18a337f793bbdfb +#: ../../the-basics.rst:648 b44282f4ada544d1b18a337f793bbdfb msgid "" "Here is a 3-liner that creates a |PDF|: with one empty page. Its file " "size is 460 bytes:" msgstr "" -#: ../../the-basics.rst:661 af312c05560c44ba8fb88cf29ece1e12 +#: ../../the-basics.rst:659 af312c05560c44ba8fb88cf29ece1e12 msgid ":meth:`Document.new_page`" msgstr "" -#: ../../the-basics.rst:662 055ca7bfd52e46bda58c8e862bd8e592 +#: ../../the-basics.rst:660 055ca7bfd52e46bda58c8e862bd8e592 msgid ":attr:`paperSizes`" msgstr "" -#: ../../the-basics.rst:671 6ec80ca2c8344ab1b10072ee1e7ecfdf +#: ../../the-basics.rst:669 6ec80ca2c8344ab1b10072ee1e7ecfdf msgid "Inserting Pages with Text Content" msgstr "" -#: ../../the-basics.rst:673 7c9a1501fb5d405a9f5ad46a99f0b474 +#: ../../the-basics.rst:671 7c9a1501fb5d405a9f5ad46a99f0b474 msgid "" "Using the :meth:`Document.insert_page` method also inserts a new page and" -" accepts the same `width` and `height` parameters. But it lets you also " -"insert arbitrary text into the new page and returns the number of " +" accepts the same ``width`` and ``height`` parameters. But it lets you " +"also insert arbitrary text into the new page and returns the number of " "inserted lines." msgstr "" -#: ../../the-basics.rst:696 815fd32c08dc43ed939c0022fe0cb355 +#: ../../the-basics.rst:694 815fd32c08dc43ed939c0022fe0cb355 msgid "" "The text parameter can be a (sequence of) string (assuming UTF-8 " "encoding). Insertion will start at :ref:`Point` (50, 72), which is one " @@ -552,15 +552,15 @@ msgid "" "inserted text lines is returned." msgstr "" -#: ../../the-basics.rst:700 ee1877c30f20440d928f255b6b27ec30 +#: ../../the-basics.rst:698 ee1877c30f20440d928f255b6b27ec30 msgid ":meth:`Document.insert_page`" msgstr "" -#: ../../the-basics.rst:711 3399cdc8dfc44101b644bcf9d0619529 +#: ../../the-basics.rst:709 3399cdc8dfc44101b644bcf9d0619529 msgid "Splitting Single Pages" msgstr "" -#: ../../the-basics.rst:713 1f3717fc854a40d5a0fd9753b49a88a0 +#: ../../the-basics.rst:711 1f3717fc854a40d5a0fd9753b49a88a0 msgid "" "This deals with splitting up pages of a |PDF| in arbitrary pieces. For " "example, you may have a |PDF| with *Letter* format pages which you want " @@ -569,98 +569,98 @@ msgid "" "again." msgstr "" -#: ../../the-basics.rst:756 ../../the-basics.rst:814 +#: ../../the-basics.rst:754 ../../the-basics.rst:812 #: 0ece8212e7b845609bb12d9e90ea10a7 e15f29ebe62e4a60a0bbbb8de5608f21 msgid "Example:" msgstr "" -#: ../../the-basics.rst:764 ../../the-basics.rst:823 +#: ../../the-basics.rst:762 ../../the-basics.rst:821 #: aca3faccb4c045c097b9959629642eef b75fa5b0807b4f56bffef5b96e756cdd msgid ":meth:`Page.cropbox_position`" msgstr "" -#: ../../the-basics.rst:765 ../../the-basics.rst:824 +#: ../../the-basics.rst:763 ../../the-basics.rst:822 #: 0ffa92661611435b91fb6a7e14df8701 2322a38c63f947d589e9b2ec7f1f17f2 msgid ":meth:`Page.show_pdf_page`" msgstr "" -#: ../../the-basics.rst:775 e866676a9e9f4db28f98f0921db8b45f +#: ../../the-basics.rst:773 e866676a9e9f4db28f98f0921db8b45f msgid "Combining Single Pages" msgstr "" -#: ../../the-basics.rst:777 66702d857bfe496f8bd6f6120c0c5137 +#: ../../the-basics.rst:775 66702d857bfe496f8bd6f6120c0c5137 msgid "" "This deals with joining |PDF| pages to form a new |PDF| with pages each " "combining two or four original ones (also called \"2-up\", \"4-up\", " "etc.). This could be used to create booklets or thumbnail-like overviews." msgstr "" -#: ../../the-basics.rst:833 dd61fd34be574893bee88166ee3d19f3 +#: ../../the-basics.rst:831 dd61fd34be574893bee88166ee3d19f3 msgid "|PDF| Encryption & Decryption" msgstr "" -#: ../../the-basics.rst:836 16ea9b1cd9f949fdab48b3c4210a4d72 +#: ../../the-basics.rst:834 16ea9b1cd9f949fdab48b3c4210a4d72 msgid "" "Starting with version 1.16.0, |PDF| decryption and encryption (using " "passwords) are fully supported. You can do the following:" msgstr "" -#: ../../the-basics.rst:838 3b6def2609e44c32be069c6362839e2f +#: ../../the-basics.rst:836 3b6def2609e44c32be069c6362839e2f msgid "" "Check whether a document is password protected / (still) encrypted " "(:attr:`Document.needs_pass`, :attr:`Document.is_encrypted`)." msgstr "" -#: ../../the-basics.rst:839 ce41ab81ce8b4386a83878a416a7940a +#: ../../the-basics.rst:837 ce41ab81ce8b4386a83878a416a7940a msgid "Gain access authorization to a document (:meth:`Document.authenticate`)." msgstr "" -#: ../../the-basics.rst:840 b189a7d59fa543a19cf3c17b16f8d694 +#: ../../the-basics.rst:838 b189a7d59fa543a19cf3c17b16f8d694 msgid "" "Set encryption details for PDF files using :meth:`Document.save` or " ":meth:`Document.write` and" msgstr "" -#: ../../the-basics.rst:842 d636f0b456a045fe96ded79e540924a6 +#: ../../the-basics.rst:840 d636f0b456a045fe96ded79e540924a6 msgid "decrypt or encrypt the content" msgstr "" -#: ../../the-basics.rst:843 c02d51458a324504be651a75c4b42da7 +#: ../../the-basics.rst:841 c02d51458a324504be651a75c4b42da7 msgid "set password(s)" msgstr "" -#: ../../the-basics.rst:844 a9dbedfc3d3840d2b0ddef263073ee71 +#: ../../the-basics.rst:842 a9dbedfc3d3840d2b0ddef263073ee71 msgid "set the encryption method" msgstr "" -#: ../../the-basics.rst:845 8613c50a6710457fb64b656501a9ed53 +#: ../../the-basics.rst:843 8613c50a6710457fb64b656501a9ed53 msgid "set permission details" msgstr "" -#: ../../the-basics.rst:847 4d78b28e7d8c479bb687ad0b04fea32f +#: ../../the-basics.rst:845 4d78b28e7d8c479bb687ad0b04fea32f msgid "A PDF document may have two different passwords:" msgstr "" -#: ../../the-basics.rst:849 17b762c8cf4d4efba56eae14ccf0e0e6 +#: ../../the-basics.rst:847 17b762c8cf4d4efba56eae14ccf0e0e6 msgid "" "The **owner password** provides full access rights, including changing " "passwords, encryption method, or permission detail." msgstr "" -#: ../../the-basics.rst:850 25b92c66fe7843978232636bf038bea9 +#: ../../the-basics.rst:848 25b92c66fe7843978232636bf038bea9 msgid "" "The **user password** provides access to document content according to " "the established permission details. If present, opening the |PDF| in a " "viewer will require providing it." msgstr "" -#: ../../the-basics.rst:852 1fc241ab15944159a3e960c912753d85 +#: ../../the-basics.rst:850 1fc241ab15944159a3e960c912753d85 msgid "" "Method :meth:`Document.authenticate` will automatically establish access " "rights according to the password used." msgstr "" -#: ../../the-basics.rst:854 5a8ee082646145f0af795201a5cf3f2c +#: ../../the-basics.rst:852 5a8ee082646145f0af795201a5cf3f2c msgid "" "The following snippet creates a new |PDF| and encrypts it with separate " "user and owner passwords. Permissions are granted to print, copy and " @@ -668,85 +668,85 @@ msgid "" "user password." msgstr "" -#: ../../the-basics.rst:888 bc1d33f5c72f4b7c91414475ea9319ad +#: ../../the-basics.rst:886 bc1d33f5c72f4b7c91414475ea9319ad msgid "" "Opening this document with some viewer (Nitro Reader 5) reflects these " "settings:" msgstr "" -#: ../../the-basics.rst:892 8d0714fc6e9b483da17392fad5a08ef9 +#: ../../the-basics.rst:890 8d0714fc6e9b483da17392fad5a08ef9 msgid "" "**Decrypting** will automatically happen on save as before when no " "encryption parameters are provided." msgstr "" -#: ../../the-basics.rst:894 5ad13206208e4f04ab1f73c460b95b06 +#: ../../the-basics.rst:892 5ad13206208e4f04ab1f73c460b95b06 msgid "" "To **keep the encryption method** of a PDF save it using " "`encryption=pymupdf.PDF_ENCRYPT_KEEP`. If `doc.can_save_incrementally() " "== True`, an incremental save is also possible." msgstr "" -#: ../../the-basics.rst:896 ea683283b4ae4990996434cbfc824108 +#: ../../the-basics.rst:894 ea683283b4ae4990996434cbfc824108 msgid "" "To **change the encryption method** specify the full range of options " "above (`encryption`, `owner_pw`, `user_pw`, `permissions`). An " "incremental save is **not possible** in this case." msgstr "" -#: ../../the-basics.rst:900 6b214aa29bc543f4acbac8c3cd3481b0 +#: ../../the-basics.rst:898 6b214aa29bc543f4acbac8c3cd3481b0 msgid ":meth:`Document.save`" msgstr "" -#: ../../the-basics.rst:909 a57f259ce92445d6a5d6c2862dc3cf54 +#: ../../the-basics.rst:907 a57f259ce92445d6a5d6c2862dc3cf54 msgid "Extracting Tables from a :title:`Page`" msgstr "" -#: ../../the-basics.rst:911 6f9e7f86d5ac46e3b9825c17b82571e4 +#: ../../the-basics.rst:909 6f9e7f86d5ac46e3b9825c17b82571e4 msgid "Tables can be found and extracted from any document :ref:`Page`." msgstr "" -#: ../../the-basics.rst:930 b7494b5442a14995a5d2119082615ca8 +#: ../../the-basics.rst:928 b7494b5442a14995a5d2119082615ca8 msgid ":meth:`Page.find_tables`" msgstr "" -#: ../../the-basics.rst:935 c890052d477340849a65eeee67960e53 +#: ../../the-basics.rst:933 c890052d477340849a65eeee67960e53 msgid "" "There is also the `pdf2docx extract tables method`_ which is capable of " "table extraction if you prefer." msgstr "" -#: ../../the-basics.rst:944 a282cebe140b45f5b2ed5299e377820a +#: ../../the-basics.rst:942 a282cebe140b45f5b2ed5299e377820a msgid "Getting Page Links" msgstr "" -#: ../../the-basics.rst:946 65729bc707934b5eb43017e9a7ccf13f +#: ../../the-basics.rst:944 65729bc707934b5eb43017e9a7ccf13f msgid "Links can be extracted from a :ref:`Page` to return :ref:`Link` objects." msgstr "" -#: ../../the-basics.rst:966 a413c62db71c4a03bcf604d1cbb23495 +#: ../../the-basics.rst:964 a413c62db71c4a03bcf604d1cbb23495 msgid ":meth:`Page.first_link`" msgstr "" -#: ../../the-basics.rst:975 9c52975671c8427abba8f3c2386f6cfd +#: ../../the-basics.rst:973 9c52975671c8427abba8f3c2386f6cfd msgid "Getting All Annotations from a Document" msgstr "" -#: ../../the-basics.rst:977 6c049fc7e04c48738c8b0a947179c35a +#: ../../the-basics.rst:975 6c049fc7e04c48738c8b0a947179c35a msgid "" "Annotations (:ref:`Annot`) on pages can be retrieved with the " "`page.annots()` method." msgstr "" -#: ../../the-basics.rst:992 02ac755f074b4ae28b2dde5d67b4474f +#: ../../the-basics.rst:990 02ac755f074b4ae28b2dde5d67b4474f msgid ":meth:`Page.annots`" msgstr "" -#: ../../the-basics.rst:1002 3d4556c1d28240f2aa6a1c395fc1a1a9 +#: ../../the-basics.rst:1000 3d4556c1d28240f2aa6a1c395fc1a1a9 msgid "Redacting content from a |PDF|" msgstr "" -#: ../../the-basics.rst:1004 d99eb5ab89464e8d97d4fc7e46651604 +#: ../../the-basics.rst:1002 d99eb5ab89464e8d97d4fc7e46651604 msgid "" "Redactions are special types of annotations which can be marked onto a " "document page to denote an area on the page which should be securely " @@ -755,53 +755,63 @@ msgid "" "is securely removed." msgstr "" -#: ../../the-basics.rst:1006 223f6cd8cecb4da98e5dd318031c8fda +#: ../../the-basics.rst:1004 223f6cd8cecb4da98e5dd318031c8fda msgid "" "For example if we wanted to redact all instances of the name \"Jane Doe\"" " from a document we could do the following:" msgstr "" -#: ../../the-basics.rst:1034 62dd2d2bb85640b2b62115053f61669a +#: ../../the-basics.rst:1032 62dd2d2bb85640b2b62115053f61669a msgid "" "Another example could be redacting an area of a page, but not to redact " "any line art (i.e. vector graphics) within the defined area, by setting a" " parameter flag as follows:" msgstr "" -#: ../../the-basics.rst:1065 d9d9f830754d466387849b71b4085d14 +#: ../../the-basics.rst:1063 d9d9f830754d466387849b71b4085d14 msgid "" "Once a redacted version of a document is saved then the redacted content " "in the |PDF| is *irretrievable*. Thus, a redacted area in a document " "removes text and graphics completely from that area." msgstr "" -#: ../../the-basics.rst:1072 946a2796985d485fb5e2ed7acc4289e8 +#: ../../the-basics.rst:1070 946a2796985d485fb5e2ed7acc4289e8 msgid "" "The are a few options for creating and applying redactions to a page, for" " the full API details to understand the parameters to control these " "options refer to the API reference." msgstr "" -#: ../../the-basics.rst:1076 548f9c1e5ac243f8b4055e2a34c65166 +#: ../../the-basics.rst:1074 548f9c1e5ac243f8b4055e2a34c65166 msgid ":meth:`Page.add_redact_annot`" msgstr "" -#: ../../the-basics.rst:1078 47c9ad1997a44ad7b9d0ef477ee10755 +#: ../../the-basics.rst:1076 47c9ad1997a44ad7b9d0ef477ee10755 msgid ":meth:`Page.apply_redactions`" msgstr "" -#: ../../the-basics.rst:1088 1a162b81c4bf4f65abc57893d5ffe457 +#: ../../the-basics.rst:1086 1a162b81c4bf4f65abc57893d5ffe457 msgid "Converting PDF Documents" msgstr "" -#: ../../the-basics.rst:1090 72cd004015184e5c91130763bcf42e8b +#: ../../the-basics.rst:1088 72cd004015184e5c91130763bcf42e8b msgid "" "We recommend the pdf2docx_ library which uses |PyMuPDF| and the **python-" "docx** library to provide simple document conversion from |PDF| to " "**DOCX** format." msgstr "" -#: ../../footer.rst:46 3e0afdfbfd574b1daaa229594686200d +#: ../../footer.rst:48 3e0afdfbfd574b1daaa229594686200d msgid "This documentation covers all versions up to |version|." msgstr "" +#~ msgid "" +#~ "Using the :meth:`Document.insert_page` method " +#~ "also inserts a new page and " +#~ "accepts the same `width` and `height`" +#~ " parameters. But it lets you also " +#~ "insert arbitrary text into the new " +#~ "page and returns the number of " +#~ "inserted lines." +#~ msgstr "" + diff --git a/docs/locales/ko/LC_MESSAGES/version.po b/docs/locales/ko/LC_MESSAGES/version.po index 2272f4d93..d0d6ad0ac 100644 --- a/docs/locales/ko/LC_MESSAGES/version.po +++ b/docs/locales/ko/LC_MESSAGES/version.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 23:33+0000\n" +"POT-Creation-Date: 2025-12-02 16:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,29 +19,37 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../version.rst:3 d1fbe6ff1d5549fb8be875f6d37c584b +#: ../../version.rst:1 d1fbe6ff1d5549fb8be875f6d37c584b msgid "This documentation covers PyMuPDF |version|." msgstr "" -#: ../../version.rst:5 133bf913bb004c8ca82964184ed7628c +#: ../../version.rst:3 133bf913bb004c8ca82964184ed7628c msgid "" -"The major and minor versions of |PyMuPDF| and |MuPDF| will always be the " +"The major and minor versions of PyMuPDF and MuPDF will always be the " "same. Only the third qualifier (patch level) may deviate from that of " -"|MuPDF|." +"MuPDF." msgstr "" -#: ../../version.rst:7 994720d99f72419ebd711b2cf71dcefb +#: ../../version.rst:5 994720d99f72419ebd711b2cf71dcefb msgid "" "Typically PyMuPDF is released more frequently than MuPDF so it will often" " be the case that the patch level of PyMuPDF will be greater than the " "embedded MuPDF." msgstr "" -#: ../../version.rst:11 371aa251e8314b9aad7c870f54636f80 +#: ../../version.rst:9 371aa251e8314b9aad7c870f54636f80 msgid "For example PyMuPDF-1.24.5 contains MuPDF-1.24.2." msgstr "" -#: ../../version.rst:13 7c7d7d87d7e14441959c236fee7d2ee5 +#: ../../version.rst:11 7c7d7d87d7e14441959c236fee7d2ee5 msgid "Also see `pymupdf_version` and `mupdf_version`." msgstr "" +#~ msgid "" +#~ "The major and minor versions of " +#~ "|PyMuPDF| and |MuPDF| will always be " +#~ "the same. Only the third qualifier " +#~ "(patch level) may deviate from that " +#~ "of |MuPDF|." +#~ msgstr "" + From 27e25472bf4049153fe895897945f1c4a1b38c9e Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Tue, 2 Dec 2025 22:26:26 +0000 Subject: [PATCH 12/23] Updates changes.po to sync with main --- docs/locales/ko/LC_MESSAGES/changes.po | 328 ++++++++++++++++++++++--- 1 file changed, 295 insertions(+), 33 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/changes.po b/docs/locales/ko/LC_MESSAGES/changes.po index b13af9e93..4dac6ad00 100644 --- a/docs/locales/ko/LC_MESSAGES/changes.po +++ b/docs/locales/ko/LC_MESSAGES/changes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PyMuPDF 1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:19+0000\n" +"POT-Creation-Date: 2025-12-02 22:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" @@ -19,17 +19,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ../../header.rst:-1 5bde7eeb42a94cb6ad62717574f27aa5 +#: ../../header.rst:-1 9ffb1f48b2494df7b48540af9ba555e5 msgid "Artifex" msgstr "" -#: ../../header.rst:-1 d2d8813dfee94f0996d61dd06a14af30 +#: ../../header.rst:-1 f4528acfe03f4323a54be4f8f1c27047 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." msgstr "" -#: ../../header.rst:-1 222913211ce746a5a7e9bc909639786b +#: ../../header.rst:-1 f2a88f7cde9b4e52a457ae00f4060abc msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" @@ -1647,7 +1647,7 @@ msgstr "" #: ../../../changes.txt:545 d9b6c05ed6004aca8f3189adad180c42 msgid "" "**Fixed** `3257 `_: " -"apply_redactions() deleting text outside of annoted box" +"apply_redactions() deleting text outside of annotated box" msgstr "" #: ../../../changes.txt:546 8baeb884a8f84d2fbf0d5b17af55639c @@ -1683,7 +1683,7 @@ msgstr "" #: ../../../changes.txt:551 eebdd0d853a04d7890db0116aeda3b84 msgid "" "**Fixed** `3172 `_: PDF's" -" 45º lines dissapearing in png conversion" +" 45º lines disappearing in png conversion" msgstr "" #: ../../../changes.txt:552 fd48b5fe2cf74dbb8772e3ffda26cc5b @@ -2760,7 +2760,7 @@ msgstr "" #: ../../../changes.txt:968 0c9e490c29db4714af654a120396b8e6 msgid "" "**Fixed** `2556 `_: " -"Segmentation fault at caling get_cdrawings(extended=True)" +"Segmentation fault at calling get_cdrawings(extended=True)" msgstr "" #: ../../../changes.txt:970 b47698c2a99a4d67be8d09ea95ac3f34 @@ -3450,7 +3450,7 @@ msgid "Improve ``insert_file()`` documentation." msgstr "" #: ../../../changes.txt:1248 d4504863060147358071d6130ed1d42c -msgid "``get_bboxlog()``: aded optional ``layers`` to ``get_bboxlog()``." +msgid "``get_bboxlog()``: added optional ``layers`` to ``get_bboxlog()``." msgstr "" #: ../../../changes.txt:1249 c11f7f0d2dab4b70968cca0abf587247 @@ -3976,7 +3976,7 @@ msgstr "" msgid "" "**Changed** :meth:`Page.annots` and :meth:`Page.widgets` to detect and " "prevent reloading the page (illegally) inside the iterator loops via " -":meth:`Document.reload_page`. Doing this brings down the interpretor. " +":meth:`Document.reload_page`. Doing this brings down the interpreter. " "Documented clean ways to do annotation and widget mass updates within " "properly designed loops." msgstr "" @@ -4137,21 +4137,21 @@ msgstr "" #: ../../../changes.txt:1489 3fb4097c0d9c45d884b47f003b15344b msgid "" "**Fixed** `#1417 `_." -" Developped circumvention for growth of open file handles using " +" Developed circumvention for growth of open file handles using " ":meth:`Document.insert_pdf`." msgstr "" #: ../../../changes.txt:1491 770e6646f6e74afcb2d4d3dcf9c81366 msgid "" "**Fixed** `#1418 `_." -" Developped circumvention for memory growth using " +" Developed circumvention for memory growth using " ":meth:`Document.insert_pdf`." msgstr "" #: ../../../changes.txt:1493 9689f4e9544c4246b896448b2322a17e msgid "" "**Fixed** `#1430 `_." -" Developped circumvention for mass pixmap generations of document pages." +" Developed circumvention for mass pixmap generations of document pages." msgstr "" #: ../../../changes.txt:1495 056b81d61e89402fb676e8fa87a24efc @@ -4176,7 +4176,7 @@ msgstr "" #: ../../../changes.txt:1501 82fcb8b930d84658abdd8396247c78de msgid "" "**Added** :attr:`Annot.irt_xref` and :meth:`Annot.set_irt_xref` to " -"inquire or set the `/IRT` (\"In Responde To\") property of an annotation." +"inquire or set the `/IRT` (\"In Response To\") property of an annotation." " Implements `#1450 " "`_." msgstr "" @@ -4383,7 +4383,7 @@ msgid "" "Rectangles are now characterized as *finite*, *valid* or *empty*, while " "the definitions of these terms have also changed. Rectangles specifically" " are now thought of being \"open\": not all corners and sides are " -"considered part of the retangle. Please do read the :ref:`Rect` section " +"considered part of the rectangle. Please do read the :ref:`Rect` section " "for details." msgstr "" @@ -4801,7 +4801,7 @@ msgstr "" msgid "" "**Changed** :meth:`Page.insert_image` to also accept the xref of an " "existing image in the file. This allows \"copying\" images between pages," -" and extremely fast mutiple insertions." +" and extremely fast multiple insertions." msgstr "" #: ../../../changes.txt:1696 819681238cbc4a129e57b370dfb026fc @@ -4953,7 +4953,7 @@ msgstr "" #: ../../../changes.txt:1733 3bfe043f395249f2ad66c8714a4dcd24 msgid "" "**Changed** :meth:`Document.subset_fonts`: Text is **not rewritten** any " -"more and should therefore **retain all its origial properties** -- like " +"more and should therefore **retain all its original properties** -- like " "being hidden or being controlled by Optional Content mechanisms." msgstr "" @@ -5647,7 +5647,7 @@ msgstr "" #: ../../../changes.txt:1909 878ea74492ff47559c0f731484ecd4c7 msgid "" -"**Added** severeal new methods to improve and speed-up table of contents " +"**Added** several new methods to improve and speed-up table of contents " "(TOC) handling. Among other things, TOC items can now changed or deleted " "individually -- without always replacing the complete TOC. Furthermore, " "access to some PDF page attributes is now possible without first " @@ -5658,7 +5658,7 @@ msgstr "" #: ../../../changes.txt:1910 4808333e353f4b9d9eb4c65d42a50c6d msgid "" "**Added** an option to :meth:`Document.insert_pdf` which allows " -"displaying progress messages. Adresses `#640 " +"displaying progress messages. Addresses `#640 " "`_." msgstr "" @@ -5920,14 +5920,14 @@ msgid "" "structure. This applies to EPUB documents currently. This comes with " "several new :ref:`Document` methods and changes for " ":meth:`Document.loadPage` and the \"indexed\" page access *doc[n]*: In " -"addition to specifying a page number as before, a tuple *(chaper, pno)* " +"addition to specifying a page number as before, a tuple *(chapter, pno)* " "can be specified to identify the desired page." msgstr "" #: ../../../changes.txt:1991 971b877040f248cdba6abf69baeef371 msgid "" "**Changed:** Improved support of redaction annotations: images overlapped" -" by redactions are **permanantly modified** by erasing the overlap areas." +" by redactions are **permanently modified** by erasing the overlap areas." " Also links are removed if overlapped by redactions. This is now fully in" " sync with PDF specifications." msgstr "" @@ -6007,7 +6007,7 @@ msgstr "" msgid "" "One major achievement is using MuPDF's capabilities to dynamically " "choosing fallback fonts whenever a character cannot be found in the " -"current one. This seemlessly works for Base-14 fonts in combination with " +"current one. This seamlessly works for Base-14 fonts in combination with " "CJK fonts (China, Japan, Korea). So a text may contain **any combination " "of characters** from the Latin, Greek, Russian, Chinese, Japanese and " "Korean languages." @@ -6510,7 +6510,7 @@ msgstr "" msgid "" "**Fixed** an issue (w/o Github number) which brought down the interpreter" " when encountering certain non-UTF-8 encodable characters while using " -":meth:`Page.getText` with te \"dict\" option." +":meth:`Page.getText` with the \"dict\" option." msgstr "" #: ../../../changes.txt:2185 e6ba0bd1a32e4b12891ded9326249a81 @@ -6931,7 +6931,7 @@ msgstr "" #: ../../../changes.txt:2312 91400574def7471c9bcf3e3b784293fa msgid "" "**Changed** :meth:`Page.show_pdf_page` to support rotation of the source " -"rectangle. Fixes #261 (\"Cannot rotate insterted pages\")." +"rectangle. Fixes #261 (\"Cannot rotate inserted pages\")." msgstr "" #: ../../../changes.txt:2313 373a473d44604ea0a33bee60a4608003 @@ -7323,7 +7323,7 @@ msgstr "" #: ../../../changes.txt:2434 c35c79318b584e5790dbea763351299b msgid "" "**Changed** method :meth:`Document.extractImage` to now return more meta " -"information about the extracted imgage. Also, its performance has been " +"information about the extracted image. Also, its performance has been " "greatly improved. Several demo scripts have been changed to make use of " "this method." msgstr "" @@ -7544,15 +7544,15 @@ msgstr "" #: ../../../changes.txt:2495 474a1a3d16e74ac7bcfe223ce5d3daad msgid "" -"While the preceeding patch subversions only contained various fixes, this" -" version again introduces major new features:" +"While the preceding patch subversions only contained various fixes, this " +"version again introduces major new features:" msgstr "" #: ../../../changes.txt:2497 5edc44b1ecc84b25be1507861ce353f4 msgid "" "**Added** basic support for PDF widget annotations. You can now add PDF " "form fields of types Text, CheckBox, ListBox and ComboBox. Where " -"necessary, the PDF is tranformed to a Form PDF with the first added " +"necessary, the PDF is transformed to a Form PDF with the first added " "widget." msgstr "" @@ -7709,8 +7709,8 @@ msgid "" "equal** to the JSON-deserialization of the old " ":meth:`TextPage.extractJSON`. The difference is that the result is " "created directly -- no JSON module is used. Because the user needs no " -"JSON module to interpet the information, it should be easier to use, and " -"also have a better performance, because it contains images in their " +"JSON module to interpret the information, it should be easier to use, and" +" also have a better performance, because it contains images in their " "original **binary format** -- they need not be base64-decoded." msgstr "" @@ -8212,7 +8212,7 @@ msgid "" "Link destination information has been reduced. Several properties of the " "*linkDest* class no longer contain valuable information. In fact, this " "class as a whole has been deleted from MuPDF's library and we in PyMuPDF " -"only maintain it to provide compatibilty to existing code." +"only maintain it to provide compatibility to existing code." msgstr "" #: ../../../changes.txt:2727 e0f444dd42e048608c890061f2205bab @@ -8237,7 +8237,7 @@ msgid "" "CMYK, 25% -- RGB, 50% -- GRAY). Many *Pixmap* constructors therefore now " "accept an *alpha* boolean to control inclusion of this channel. Other " "pixmap constructors (e.g. those for file and image input) create pixmaps " -"with no alpha alltogether. On the downside, save methods for pixmaps no " +"with no alpha altogether. On the downside, save methods for pixmaps no " "longer accept a *savealpha* option: this channel will always be saved " "when present. To minimize code breaks, we have left this parameter in the" " call patterns -- it will just be ignored." @@ -8250,8 +8250,8 @@ msgid "" "rectangle). There is no way to construct this information from other " "sources, therefore a source code change cannot be avoided in these cases." " We assume however, that not many users are actually employing these " -"rather low level classes explixitely. So the impact of that change should" -" be minor." +"rather low level classes explicitly. So the impact of that change should " +"be minor." msgstr "" #: ../../../changes.txt:2735 01de368016c141b1b2553cd585883f58 @@ -8656,3 +8656,265 @@ msgstr "" #~ " pdf_add_stream metadata error" #~ msgstr "" +#~ msgid "" +#~ "**Fixed** `3257 " +#~ "`_: " +#~ "apply_redactions() deleting text outside of" +#~ " annoted box" +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** `3172 " +#~ "`_: PDF's " +#~ "45º lines dissapearing in png conversion" +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** `2556 " +#~ "`_: Segmentation" +#~ " fault at caling get_cdrawings(extended=True)" +#~ msgstr "" + +#~ msgid "``get_bboxlog()``: aded optional ``layers`` to ``get_bboxlog()``." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** :meth:`Page.annots` and " +#~ ":meth:`Page.widgets` to detect and prevent " +#~ "reloading the page (illegally) inside " +#~ "the iterator loops via " +#~ ":meth:`Document.reload_page`. Doing this brings " +#~ "down the interpretor. Documented clean " +#~ "ways to do annotation and widget " +#~ "mass updates within properly designed " +#~ "loops." +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** `#1417 " +#~ "`_. " +#~ "Developped circumvention for growth of " +#~ "open file handles using " +#~ ":meth:`Document.insert_pdf`." +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** `#1418 " +#~ "`_. " +#~ "Developped circumvention for memory growth " +#~ "using :meth:`Document.insert_pdf`." +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** `#1430 " +#~ "`_. " +#~ "Developped circumvention for mass pixmap " +#~ "generations of document pages." +#~ msgstr "" + +#~ msgid "" +#~ "**Added** :attr:`Annot.irt_xref` and " +#~ ":meth:`Annot.set_irt_xref` to inquire or set" +#~ " the `/IRT` (\"In Responde To\") " +#~ "property of an annotation. Implements " +#~ "`#1450 `_." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** terminology and meaning of " +#~ "important geometry concepts: Rectangles are" +#~ " now characterized as *finite*, *valid* " +#~ "or *empty*, while the definitions of " +#~ "these terms have also changed. " +#~ "Rectangles specifically are now thought " +#~ "of being \"open\": not all corners " +#~ "and sides are considered part of " +#~ "the retangle. Please do read the " +#~ ":ref:`Rect` section for details." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** :meth:`Page.insert_image` to also " +#~ "accept the xref of an existing " +#~ "image in the file. This allows " +#~ "\"copying\" images between pages, and " +#~ "extremely fast mutiple insertions." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** :meth:`Document.subset_fonts`: Text is" +#~ " **not rewritten** any more and " +#~ "should therefore **retain all its " +#~ "origial properties** -- like being " +#~ "hidden or being controlled by Optional" +#~ " Content mechanisms." +#~ msgstr "" + +#~ msgid "" +#~ "**Added** severeal new methods to " +#~ "improve and speed-up table of " +#~ "contents (TOC) handling. Among other " +#~ "things, TOC items can now changed " +#~ "or deleted individually -- without " +#~ "always replacing the complete TOC. " +#~ "Furthermore, access to some PDF page " +#~ "attributes is now possible without first" +#~ " **loading** the page. This has a " +#~ "very significant impact on the " +#~ "performance of TOC manipulation." +#~ msgstr "" + +#~ msgid "" +#~ "**Added** an option to " +#~ ":meth:`Document.insert_pdf` which allows displaying" +#~ " progress messages. Adresses `#640 " +#~ "`_." +#~ msgstr "" + +#~ msgid "" +#~ "Faster page access is implemented for" +#~ " documents supporting a \"chapter\" " +#~ "structure. This applies to EPUB " +#~ "documents currently. This comes with " +#~ "several new :ref:`Document` methods and " +#~ "changes for :meth:`Document.loadPage` and the" +#~ " \"indexed\" page access *doc[n]*: In " +#~ "addition to specifying a page number " +#~ "as before, a tuple *(chaper, pno)* " +#~ "can be specified to identify the " +#~ "desired page." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed:** Improved support of redaction " +#~ "annotations: images overlapped by redactions" +#~ " are **permanantly modified** by erasing" +#~ " the overlap areas. Also links are" +#~ " removed if overlapped by redactions. " +#~ "This is now fully in sync with " +#~ "PDF specifications." +#~ msgstr "" + +#~ msgid "" +#~ "One major achievement is using MuPDF's" +#~ " capabilities to dynamically choosing " +#~ "fallback fonts whenever a character " +#~ "cannot be found in the current " +#~ "one. This seemlessly works for Base-14" +#~ " fonts in combination with CJK fonts" +#~ " (China, Japan, Korea). So a text " +#~ "may contain **any combination of " +#~ "characters** from the Latin, Greek, " +#~ "Russian, Chinese, Japanese and Korean " +#~ "languages." +#~ msgstr "" + +#~ msgid "" +#~ "**Fixed** an issue (w/o Github number)" +#~ " which brought down the interpreter " +#~ "when encountering certain non-UTF-8 " +#~ "encodable characters while using " +#~ ":meth:`Page.getText` with te \"dict\" option." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** :meth:`Page.show_pdf_page` to support" +#~ " rotation of the source rectangle. " +#~ "Fixes #261 (\"Cannot rotate insterted " +#~ "pages\")." +#~ msgstr "" + +#~ msgid "" +#~ "**Changed** method :meth:`Document.extractImage` to" +#~ " now return more meta information " +#~ "about the extracted imgage. Also, its" +#~ " performance has been greatly improved. " +#~ "Several demo scripts have been changed" +#~ " to make use of this method." +#~ msgstr "" + +#~ msgid "" +#~ "While the preceeding patch subversions " +#~ "only contained various fixes, this " +#~ "version again introduces major new " +#~ "features:" +#~ msgstr "" + +#~ msgid "" +#~ "**Added** basic support for PDF widget" +#~ " annotations. You can now add PDF " +#~ "form fields of types Text, CheckBox, " +#~ "ListBox and ComboBox. Where necessary, " +#~ "the PDF is tranformed to a Form" +#~ " PDF with the first added widget." +#~ msgstr "" + +#~ msgid "" +#~ ":meth:`TextPage.extractDICT` is a new method" +#~ " to extract the contents of a " +#~ "document page (text and images). All " +#~ "document types are supported as with " +#~ "the other :ref:`TextPage` *extract*()* " +#~ "methods. The returned object is a " +#~ "dictionary of nested lists and other " +#~ "dictionaries, and **exactly equal** to " +#~ "the JSON-deserialization of the old " +#~ ":meth:`TextPage.extractJSON`. The difference is " +#~ "that the result is created directly " +#~ "-- no JSON module is used. Because" +#~ " the user needs no JSON module " +#~ "to interpet the information, it should" +#~ " be easier to use, and also " +#~ "have a better performance, because it" +#~ " contains images in their original " +#~ "**binary format** -- they need not " +#~ "be base64-decoded." +#~ msgstr "" + +#~ msgid "" +#~ "Link destination information has been " +#~ "reduced. Several properties of the " +#~ "*linkDest* class no longer contain " +#~ "valuable information. In fact, this " +#~ "class as a whole has been deleted" +#~ " from MuPDF's library and we in " +#~ "PyMuPDF only maintain it to provide " +#~ "compatibilty to existing code." +#~ msgstr "" + +#~ msgid "" +#~ "The alpha (transparency) channel for " +#~ "pixmaps is now optional. Letting alpha" +#~ " default to *False* significantly reduces" +#~ " pixmap sizes (by 20% -- CMYK, " +#~ "25% -- RGB, 50% -- GRAY). Many " +#~ "*Pixmap* constructors therefore now accept " +#~ "an *alpha* boolean to control inclusion" +#~ " of this channel. Other pixmap " +#~ "constructors (e.g. those for file and" +#~ " image input) create pixmaps with no" +#~ " alpha alltogether. On the downside, " +#~ "save methods for pixmaps no longer " +#~ "accept a *savealpha* option: this " +#~ "channel will always be saved when " +#~ "present. To minimize code breaks, we " +#~ "have left this parameter in the " +#~ "call patterns -- it will just be" +#~ " ignored." +#~ msgstr "" + +#~ msgid "" +#~ "*DisplayList* and *TextPage* class " +#~ "constructors now **require the mediabox** " +#~ "of the page they are referring to" +#~ " (i.e. the *page.bound()* rectangle). There" +#~ " is no way to construct this " +#~ "information from other sources, therefore " +#~ "a source code change cannot be " +#~ "avoided in these cases. We assume " +#~ "however, that not many users are " +#~ "actually employing these rather low " +#~ "level classes explixitely. So the impact" +#~ " of that change should be minor." +#~ msgstr "" + From 309909063739b934f3f30bf9b2a79c45c6f5b215 Mon Sep 17 00:00:00 2001 From: Jamie Lemon Date: Tue, 2 Dec 2025 23:20:39 +0000 Subject: [PATCH 13/23] Removes fuzzy historical matches from changes.po from automated output. Because their typos cause the tests to fail. --- docs/locales/ko/LC_MESSAGES/changes.po | 268 ------------------------- 1 file changed, 268 deletions(-) diff --git a/docs/locales/ko/LC_MESSAGES/changes.po b/docs/locales/ko/LC_MESSAGES/changes.po index 4dac6ad00..21c2abb17 100644 --- a/docs/locales/ko/LC_MESSAGES/changes.po +++ b/docs/locales/ko/LC_MESSAGES/changes.po @@ -8650,271 +8650,3 @@ msgstr "" msgid "This documentation covers all versions up to |version|." msgstr "" -#~ msgid "" -#~ "Fixed bug in set_xml_metadata(), PR " -#~ "`3112 https://github.com/pymupdf/PyMuPDF/pull/3112>`_: Fix" -#~ " pdf_add_stream metadata error" -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `3257 " -#~ "`_: " -#~ "apply_redactions() deleting text outside of" -#~ " annoted box" -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `3172 " -#~ "`_: PDF's " -#~ "45º lines dissapearing in png conversion" -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `2556 " -#~ "`_: Segmentation" -#~ " fault at caling get_cdrawings(extended=True)" -#~ msgstr "" - -#~ msgid "``get_bboxlog()``: aded optional ``layers`` to ``get_bboxlog()``." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** :meth:`Page.annots` and " -#~ ":meth:`Page.widgets` to detect and prevent " -#~ "reloading the page (illegally) inside " -#~ "the iterator loops via " -#~ ":meth:`Document.reload_page`. Doing this brings " -#~ "down the interpretor. Documented clean " -#~ "ways to do annotation and widget " -#~ "mass updates within properly designed " -#~ "loops." -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `#1417 " -#~ "`_. " -#~ "Developped circumvention for growth of " -#~ "open file handles using " -#~ ":meth:`Document.insert_pdf`." -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `#1418 " -#~ "`_. " -#~ "Developped circumvention for memory growth " -#~ "using :meth:`Document.insert_pdf`." -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** `#1430 " -#~ "`_. " -#~ "Developped circumvention for mass pixmap " -#~ "generations of document pages." -#~ msgstr "" - -#~ msgid "" -#~ "**Added** :attr:`Annot.irt_xref` and " -#~ ":meth:`Annot.set_irt_xref` to inquire or set" -#~ " the `/IRT` (\"In Responde To\") " -#~ "property of an annotation. Implements " -#~ "`#1450 `_." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** terminology and meaning of " -#~ "important geometry concepts: Rectangles are" -#~ " now characterized as *finite*, *valid* " -#~ "or *empty*, while the definitions of " -#~ "these terms have also changed. " -#~ "Rectangles specifically are now thought " -#~ "of being \"open\": not all corners " -#~ "and sides are considered part of " -#~ "the retangle. Please do read the " -#~ ":ref:`Rect` section for details." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** :meth:`Page.insert_image` to also " -#~ "accept the xref of an existing " -#~ "image in the file. This allows " -#~ "\"copying\" images between pages, and " -#~ "extremely fast mutiple insertions." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** :meth:`Document.subset_fonts`: Text is" -#~ " **not rewritten** any more and " -#~ "should therefore **retain all its " -#~ "origial properties** -- like being " -#~ "hidden or being controlled by Optional" -#~ " Content mechanisms." -#~ msgstr "" - -#~ msgid "" -#~ "**Added** severeal new methods to " -#~ "improve and speed-up table of " -#~ "contents (TOC) handling. Among other " -#~ "things, TOC items can now changed " -#~ "or deleted individually -- without " -#~ "always replacing the complete TOC. " -#~ "Furthermore, access to some PDF page " -#~ "attributes is now possible without first" -#~ " **loading** the page. This has a " -#~ "very significant impact on the " -#~ "performance of TOC manipulation." -#~ msgstr "" - -#~ msgid "" -#~ "**Added** an option to " -#~ ":meth:`Document.insert_pdf` which allows displaying" -#~ " progress messages. Adresses `#640 " -#~ "`_." -#~ msgstr "" - -#~ msgid "" -#~ "Faster page access is implemented for" -#~ " documents supporting a \"chapter\" " -#~ "structure. This applies to EPUB " -#~ "documents currently. This comes with " -#~ "several new :ref:`Document` methods and " -#~ "changes for :meth:`Document.loadPage` and the" -#~ " \"indexed\" page access *doc[n]*: In " -#~ "addition to specifying a page number " -#~ "as before, a tuple *(chaper, pno)* " -#~ "can be specified to identify the " -#~ "desired page." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed:** Improved support of redaction " -#~ "annotations: images overlapped by redactions" -#~ " are **permanantly modified** by erasing" -#~ " the overlap areas. Also links are" -#~ " removed if overlapped by redactions. " -#~ "This is now fully in sync with " -#~ "PDF specifications." -#~ msgstr "" - -#~ msgid "" -#~ "One major achievement is using MuPDF's" -#~ " capabilities to dynamically choosing " -#~ "fallback fonts whenever a character " -#~ "cannot be found in the current " -#~ "one. This seemlessly works for Base-14" -#~ " fonts in combination with CJK fonts" -#~ " (China, Japan, Korea). So a text " -#~ "may contain **any combination of " -#~ "characters** from the Latin, Greek, " -#~ "Russian, Chinese, Japanese and Korean " -#~ "languages." -#~ msgstr "" - -#~ msgid "" -#~ "**Fixed** an issue (w/o Github number)" -#~ " which brought down the interpreter " -#~ "when encountering certain non-UTF-8 " -#~ "encodable characters while using " -#~ ":meth:`Page.getText` with te \"dict\" option." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** :meth:`Page.show_pdf_page` to support" -#~ " rotation of the source rectangle. " -#~ "Fixes #261 (\"Cannot rotate insterted " -#~ "pages\")." -#~ msgstr "" - -#~ msgid "" -#~ "**Changed** method :meth:`Document.extractImage` to" -#~ " now return more meta information " -#~ "about the extracted imgage. Also, its" -#~ " performance has been greatly improved. " -#~ "Several demo scripts have been changed" -#~ " to make use of this method." -#~ msgstr "" - -#~ msgid "" -#~ "While the preceeding patch subversions " -#~ "only contained various fixes, this " -#~ "version again introduces major new " -#~ "features:" -#~ msgstr "" - -#~ msgid "" -#~ "**Added** basic support for PDF widget" -#~ " annotations. You can now add PDF " -#~ "form fields of types Text, CheckBox, " -#~ "ListBox and ComboBox. Where necessary, " -#~ "the PDF is tranformed to a Form" -#~ " PDF with the first added widget." -#~ msgstr "" - -#~ msgid "" -#~ ":meth:`TextPage.extractDICT` is a new method" -#~ " to extract the contents of a " -#~ "document page (text and images). All " -#~ "document types are supported as with " -#~ "the other :ref:`TextPage` *extract*()* " -#~ "methods. The returned object is a " -#~ "dictionary of nested lists and other " -#~ "dictionaries, and **exactly equal** to " -#~ "the JSON-deserialization of the old " -#~ ":meth:`TextPage.extractJSON`. The difference is " -#~ "that the result is created directly " -#~ "-- no JSON module is used. Because" -#~ " the user needs no JSON module " -#~ "to interpet the information, it should" -#~ " be easier to use, and also " -#~ "have a better performance, because it" -#~ " contains images in their original " -#~ "**binary format** -- they need not " -#~ "be base64-decoded." -#~ msgstr "" - -#~ msgid "" -#~ "Link destination information has been " -#~ "reduced. Several properties of the " -#~ "*linkDest* class no longer contain " -#~ "valuable information. In fact, this " -#~ "class as a whole has been deleted" -#~ " from MuPDF's library and we in " -#~ "PyMuPDF only maintain it to provide " -#~ "compatibilty to existing code." -#~ msgstr "" - -#~ msgid "" -#~ "The alpha (transparency) channel for " -#~ "pixmaps is now optional. Letting alpha" -#~ " default to *False* significantly reduces" -#~ " pixmap sizes (by 20% -- CMYK, " -#~ "25% -- RGB, 50% -- GRAY). Many " -#~ "*Pixmap* constructors therefore now accept " -#~ "an *alpha* boolean to control inclusion" -#~ " of this channel. Other pixmap " -#~ "constructors (e.g. those for file and" -#~ " image input) create pixmaps with no" -#~ " alpha alltogether. On the downside, " -#~ "save methods for pixmaps no longer " -#~ "accept a *savealpha* option: this " -#~ "channel will always be saved when " -#~ "present. To minimize code breaks, we " -#~ "have left this parameter in the " -#~ "call patterns -- it will just be" -#~ " ignored." -#~ msgstr "" - -#~ msgid "" -#~ "*DisplayList* and *TextPage* class " -#~ "constructors now **require the mediabox** " -#~ "of the page they are referring to" -#~ " (i.e. the *page.bound()* rectangle). There" -#~ " is no way to construct this " -#~ "information from other sources, therefore " -#~ "a source code change cannot be " -#~ "avoided in these cases. We assume " -#~ "however, that not many users are " -#~ "actually employing these rather low " -#~ "level classes explixitely. So the impact" -#~ " of that change should be minor." -#~ msgstr "" - From e6f850a44a247d25394d1c5744b78a5ea267dabe Mon Sep 17 00:00:00 2001 From: Minhyeok Jeong Date: Tue, 2 Dec 2025 11:51:44 +0900 Subject: [PATCH 14/23] Add initial Korean translation draft for documentation * Translate multiple .po files using Cursor's agent functionality * Performed regex editing and initial review --- docs/about-feature-matrix.rst | 74 + docs/about-performance.rst | 22 + docs/footer.rst | 9 + docs/locales/ko/LC_MESSAGES/404.mo | Bin 424 -> 1409 bytes docs/locales/ko/LC_MESSAGES/404.po | 14 +- .../ko/LC_MESSAGES/about-feature-matrix.mo | Bin 424 -> 424 bytes .../ko/LC_MESSAGES/about-performance.mo | Bin 424 -> 424 bytes docs/locales/ko/LC_MESSAGES/about.mo | Bin 734 -> 6383 bytes docs/locales/ko/LC_MESSAGES/about.po | 50 +- docs/locales/ko/LC_MESSAGES/algebra.mo | Bin 424 -> 15360 bytes docs/locales/ko/LC_MESSAGES/algebra.po | 146 +- docs/locales/ko/LC_MESSAGES/annot.mo | Bin 424 -> 54918 bytes docs/locales/ko/LC_MESSAGES/annot.po | 466 +-- docs/locales/ko/LC_MESSAGES/app1.mo | Bin 424 -> 22474 bytes docs/locales/ko/LC_MESSAGES/app1.po | 224 +- docs/locales/ko/LC_MESSAGES/app2.mo | Bin 424 -> 5636 bytes docs/locales/ko/LC_MESSAGES/app2.po | 38 +- docs/locales/ko/LC_MESSAGES/app3.mo | Bin 424 -> 40720 bytes docs/locales/ko/LC_MESSAGES/app3.po | 252 +- docs/locales/ko/LC_MESSAGES/app4.mo | Bin 424 -> 11698 bytes docs/locales/ko/LC_MESSAGES/app4.po | 148 +- docs/locales/ko/LC_MESSAGES/archive-class.mo | Bin 424 -> 10390 bytes docs/locales/ko/LC_MESSAGES/archive-class.po | 92 +- docs/locales/ko/LC_MESSAGES/changes.mo | Bin 424 -> 1266 bytes docs/locales/ko/LC_MESSAGES/changes.po | 8 +- docs/locales/ko/LC_MESSAGES/classes.mo | Bin 424 -> 1158 bytes docs/locales/ko/LC_MESSAGES/classes.po | 10 +- docs/locales/ko/LC_MESSAGES/colors.mo | Bin 424 -> 4739 bytes docs/locales/ko/LC_MESSAGES/colors.po | 24 +- docs/locales/ko/LC_MESSAGES/colorspace.mo | Bin 424 -> 2818 bytes docs/locales/ko/LC_MESSAGES/colorspace.po | 40 +- .../ko/LC_MESSAGES/converting-files.mo | Bin 424 -> 2895 bytes .../ko/LC_MESSAGES/converting-files.po | 30 +- docs/locales/ko/LC_MESSAGES/coop_low.mo | Bin 424 -> 6673 bytes docs/locales/ko/LC_MESSAGES/coop_low.po | 56 +- docs/locales/ko/LC_MESSAGES/device.mo | Bin 424 -> 3269 bytes docs/locales/ko/LC_MESSAGES/device.po | 28 +- docs/locales/ko/LC_MESSAGES/displaylist.mo | Bin 424 -> 7377 bytes docs/locales/ko/LC_MESSAGES/displaylist.po | 92 +- .../ko/LC_MESSAGES/document-writer-class.mo | Bin 424 -> 6176 bytes .../ko/LC_MESSAGES/document-writer-class.po | 62 +- docs/locales/ko/LC_MESSAGES/document.mo | Bin 424 -> 216722 bytes docs/locales/ko/LC_MESSAGES/document.po | 2599 ++++++----------- docs/locales/ko/LC_MESSAGES/faq.mo | Bin 424 -> 1475 bytes docs/locales/ko/LC_MESSAGES/faq.po | 18 +- docs/locales/ko/LC_MESSAGES/font.mo | Bin 424 -> 27875 bytes docs/locales/ko/LC_MESSAGES/font.po | 336 +-- docs/locales/ko/LC_MESSAGES/footer.mo | Bin 424 -> 567 bytes docs/locales/ko/LC_MESSAGES/footer.po | 2 +- docs/locales/ko/LC_MESSAGES/functions.mo | Bin 424 -> 79893 bytes docs/locales/ko/LC_MESSAGES/functions.po | 714 ++--- docs/locales/ko/LC_MESSAGES/glossary.mo | Bin 424 -> 27780 bytes docs/locales/ko/LC_MESSAGES/glossary.po | 96 +- docs/locales/ko/LC_MESSAGES/header-404.mo | Bin 424 -> 981 bytes docs/locales/ko/LC_MESSAGES/header-404.po | 6 +- docs/locales/ko/LC_MESSAGES/header.mo | Bin 424 -> 981 bytes docs/locales/ko/LC_MESSAGES/header.po | 6 +- .../ko/LC_MESSAGES/how-to-open-a-file.mo | Bin 424 -> 10236 bytes .../ko/LC_MESSAGES/how-to-open-a-file.po | 86 +- docs/locales/ko/LC_MESSAGES/identity.mo | Bin 424 -> 2111 bytes docs/locales/ko/LC_MESSAGES/identity.po | 16 +- docs/locales/ko/LC_MESSAGES/index.mo | Bin 1258 -> 2017 bytes docs/locales/ko/LC_MESSAGES/index.po | 18 +- docs/locales/ko/LC_MESSAGES/installation.mo | Bin 424 -> 22186 bytes docs/locales/ko/LC_MESSAGES/installation.po | 210 +- docs/locales/ko/LC_MESSAGES/irect.mo | Bin 424 -> 13379 bytes docs/locales/ko/LC_MESSAGES/irect.po | 206 +- docs/locales/ko/LC_MESSAGES/link.mo | Bin 424 -> 13443 bytes docs/locales/ko/LC_MESSAGES/link.po | 134 +- docs/locales/ko/LC_MESSAGES/linkdest.mo | Bin 424 -> 7408 bytes docs/locales/ko/LC_MESSAGES/linkdest.po | 102 +- docs/locales/ko/LC_MESSAGES/lowlevel.mo | Bin 424 -> 1496 bytes docs/locales/ko/LC_MESSAGES/lowlevel.po | 12 +- docs/locales/ko/LC_MESSAGES/matrix.mo | Bin 424 -> 17166 bytes docs/locales/ko/LC_MESSAGES/matrix.po | 186 +- docs/locales/ko/LC_MESSAGES/module.mo | Bin 424 -> 20523 bytes docs/locales/ko/LC_MESSAGES/module.po | 178 +- docs/locales/ko/LC_MESSAGES/outline.mo | Bin 424 -> 6593 bytes docs/locales/ko/LC_MESSAGES/outline.po | 84 +- docs/locales/ko/LC_MESSAGES/packaging.mo | Bin 424 -> 6265 bytes docs/locales/ko/LC_MESSAGES/packaging.po | 78 +- docs/locales/ko/LC_MESSAGES/page.mo | Bin 696 -> 226318 bytes docs/locales/ko/LC_MESSAGES/page.po | 1838 ++++++------ docs/locales/ko/LC_MESSAGES/pixmap.mo | Bin 424 -> 57993 bytes docs/locales/ko/LC_MESSAGES/pixmap.po | 486 +-- docs/locales/ko/LC_MESSAGES/point.mo | Bin 424 -> 6666 bytes docs/locales/ko/LC_MESSAGES/point.po | 104 +- .../ko/LC_MESSAGES/pymupdf-layout/index.mo | Bin 424 -> 11052 bytes .../ko/LC_MESSAGES/pymupdf-layout/index.po | 73 +- .../ko/LC_MESSAGES/pymupdf-pro/index.mo | Bin 424 -> 7836 bytes .../ko/LC_MESSAGES/pymupdf-pro/index.po | 96 +- .../locales/ko/LC_MESSAGES/pymupdf4llm/api.mo | Bin 23309 -> 481 bytes .../ko/LC_MESSAGES/pymupdf4llm/index.mo | Bin 424 -> 8787 bytes .../ko/LC_MESSAGES/pymupdf4llm/index.po | 82 +- docs/locales/ko/LC_MESSAGES/pyodide.mo | Bin 424 -> 6238 bytes docs/locales/ko/LC_MESSAGES/pyodide.po | 58 +- docs/locales/ko/LC_MESSAGES/quad.mo | Bin 424 -> 10736 bytes docs/locales/ko/LC_MESSAGES/quad.po | 140 +- docs/locales/ko/LC_MESSAGES/rag.mo | Bin 424 -> 7477 bytes docs/locales/ko/LC_MESSAGES/rag.po | 60 +- .../ko/LC_MESSAGES/recipes-annotations.mo | Bin 424 -> 4657 bytes .../ko/LC_MESSAGES/recipes-annotations.po | 38 +- ...cipes-common-issues-and-their-solutions.mo | Bin 424 -> 13315 bytes ...cipes-common-issues-and-their-solutions.po | 100 +- .../recipes-drawing-and-graphics.mo | Bin 424 -> 11962 bytes .../recipes-drawing-and-graphics.po | 70 +- docs/locales/ko/LC_MESSAGES/recipes-images.mo | Bin 424 -> 41539 bytes docs/locales/ko/LC_MESSAGES/recipes-images.po | 358 ++- .../ko/LC_MESSAGES/recipes-journalling.mo | Bin 424 -> 8180 bytes .../ko/LC_MESSAGES/recipes-journalling.po | 48 +- .../recipes-low-level-interfaces.mo | Bin 424 -> 23689 bytes .../recipes-low-level-interfaces.po | 171 +- .../ko/LC_MESSAGES/recipes-multiprocessing.mo | Bin 424 -> 2596 bytes .../ko/LC_MESSAGES/recipes-multiprocessing.po | 22 +- docs/locales/ko/LC_MESSAGES/recipes-ocr.mo | Bin 424 -> 7047 bytes docs/locales/ko/LC_MESSAGES/recipes-ocr.po | 56 +- .../LC_MESSAGES/recipes-optional-content.mo | Bin 424 -> 9061 bytes .../LC_MESSAGES/recipes-optional-content.po | 56 +- .../locales/ko/LC_MESSAGES/recipes-stories.mo | Bin 424 -> 27902 bytes .../locales/ko/LC_MESSAGES/recipes-stories.po | 231 +- docs/locales/ko/LC_MESSAGES/recipes-text.mo | Bin 424 -> 33137 bytes docs/locales/ko/LC_MESSAGES/recipes-text.po | 256 +- docs/locales/ko/LC_MESSAGES/recipes.mo | Bin 424 -> 1124 bytes docs/locales/ko/LC_MESSAGES/recipes.po | 8 +- docs/locales/ko/LC_MESSAGES/rect.mo | Bin 424 -> 24607 bytes docs/locales/ko/LC_MESSAGES/rect.po | 316 +- docs/locales/ko/LC_MESSAGES/resources.mo | Bin 424 -> 2303 bytes docs/locales/ko/LC_MESSAGES/resources.po | 22 +- docs/locales/ko/LC_MESSAGES/shape.mo | Bin 424 -> 64282 bytes docs/locales/ko/LC_MESSAGES/shape.po | 438 +-- docs/locales/ko/LC_MESSAGES/story-class.mo | Bin 424 -> 35080 bytes docs/locales/ko/LC_MESSAGES/story-class.po | 308 +- .../ko/LC_MESSAGES/supported-files-table.mo | Bin 424 -> 424 bytes docs/locales/ko/LC_MESSAGES/textpage.mo | Bin 424 -> 43835 bytes docs/locales/ko/LC_MESSAGES/textpage.po | 448 +-- docs/locales/ko/LC_MESSAGES/textwriter.mo | Bin 424 -> 26428 bytes docs/locales/ko/LC_MESSAGES/textwriter.po | 212 +- docs/locales/ko/LC_MESSAGES/the-basics.mo | Bin 424 -> 29782 bytes docs/locales/ko/LC_MESSAGES/the-basics.po | 294 +- docs/locales/ko/LC_MESSAGES/tools.mo | Bin 424 -> 22628 bytes docs/locales/ko/LC_MESSAGES/tools.po | 286 +- docs/locales/ko/LC_MESSAGES/tutorial.mo | Bin 424 -> 45512 bytes docs/locales/ko/LC_MESSAGES/tutorial.po | 402 +-- docs/locales/ko/LC_MESSAGES/vars.mo | Bin 424 -> 23671 bytes docs/locales/ko/LC_MESSAGES/vars.po | 324 +- docs/locales/ko/LC_MESSAGES/version.mo | Bin 424 -> 1431 bytes docs/locales/ko/LC_MESSAGES/version.po | 10 +- docs/locales/ko/LC_MESSAGES/widget.mo | Bin 424 -> 25695 bytes docs/locales/ko/LC_MESSAGES/widget.po | 212 +- docs/locales/ko/LC_MESSAGES/xml-class.mo | Bin 424 -> 29264 bytes docs/locales/ko/LC_MESSAGES/xml-class.po | 428 +-- docs/locales/ko/LC_MESSAGES/znames.mo | Bin 424 -> 5410 bytes docs/locales/ko/LC_MESSAGES/znames.po | 26 +- docs/supported-files-table.rst | 12 + 154 files changed, 7371 insertions(+), 7690 deletions(-) diff --git a/docs/about-feature-matrix.rst b/docs/about-feature-matrix.rst index 793ea633f..6f94130d2 100644 --- a/docs/about-feature-matrix.rst +++ b/docs/about-feature-matrix.rst @@ -549,6 +549,80 @@ + } else if (lang == "ko") { + if (str=="Feature") { + return "기능"; + } else if (str=="Supports Multiple Document Formats") { + return "다중 문서 형식 지원"; + } else if (str=="Image") { + return "이미지"; + } else if (str=="Implementation") { + return "구현"; + } else if (str=="and") { + return "및"; + } else if (str=="Render Document Pages") { + return "문서 페이지 렌더링"; + } else if (str=="All document types") { + return "모든 문서 유형"; + } else if (str=="No rendering") { + return "렌더링 없음"; + } else if (str=="Extract Text") { + return "텍스트 추출"; + } else if (str=="Write Text to PDF Page") { + return "PDF 페이지에 텍스트 쓰기"; + } else if (str=="only") { + return "만"; + } else if (str=="Extract Vector Graphics") { + return "벡터 그래픽 추출"; + } else if (str=="Draw Vector Graphics (PDF)") { + return "벡터 그래픽 그리기 (PDF)"; + } else if (str=="Based on Existing, Mature Library") { + return "기존의 성숙한 라이브러리 기반"; + } else if (str=="Automatic Repair of Damaged PDFs") { + return "손상된 PDF 자동 복구"; + } else if (str=="Encrypted PDFs") { + return "암호화된 PDF"; + } else if (str=="Limited") { + return "제한적"; + } else if (str=="Linerarized PDFs") { + return "선형화된 PDF"; + } else if (str=="Incremental Updates") { + return "증분 업데이트"; + } else if (str=="Integrates with Jupyter and IPython Notebooks") { + return "Jupyter 및 IPython Notebooks 통합"; + } else if (str=="Joining / Merging PDF with other Document Types") { + return "다른 문서 유형과 PDF 결합 / 병합"; + } else if (str=="OCR API for Seamless Integration with Tesseract") { + return "Tesseract와의 원활한 통합을 위한 OCR API"; + } else if (str=="Integrated Checkpoint / Restart Feature (PDF)") { + return "통합 체크포인트 / 재시작 기능 (PDF)"; + } else if (str=="PDF Optional Content") { + return "PDF 선택적 콘텐츠"; + } else if (str=="PDF Embedded Files") { + return "PDF 임베디드 파일"; + } else if (str=="PDF Redactions") { + return "PDF 편집"; + } else if (str=="PDF Annotations") { + return "PDF 주석"; + } else if (str=="Full") { + return "전체"; + } else if (str=="PDF Form Fields") { + return "PDF 양식 필드"; + } else if (str=="Create, read, update") { + return "생성, 읽기, 업데이트"; + } else if (str=="Limited, no creation") { + return "제한적, 생성 불가"; + } else if (str=="PDF Page Labels") { + return "PDF 페이지 레이블"; + } else if (str=="Support Font Sub-Setting") { + return "폰트 서브셋 지원"; + } else if (str=="Extract Tables") { + return "테이블 추출"; + } else if (str=="Supports CJK characters") { + return "CJK 문자 지원"; + } else if (str == "Extract Text as Markdown (.md)") { + return "텍스트를 Markdown (.md) 으로 추출"; + } } return str; diff --git a/docs/about-performance.rst b/docs/about-performance.rst index d89ed1f1b..6a76ca26f 100644 --- a/docs/about-performance.rst +++ b/docs/about-performance.rst @@ -354,6 +354,28 @@ + } else if (langB == "ko") { + if (str=="Copying") { + return "복사"; + } else if (str == "This refers to opening a document and then saving it to a new file. This test measures the speed of reading a PDF and re-writing as a new PDF. This process is also at the core of functions like merging / joining multiple documents. The numbers below therefore apply to PDF joining and merging.") { + return "이것은 문서를 열고 새 파일로 저장하는 것을 의미합니다. 이 테스트는 PDF 를 읽고 새 PDF 로 다시 쓰는 속도를 측정합니다. 이 프로세스는 여러 문서를 병합 / 결합하는 기능의 핵심이기도 합니다. 따라서 아래 숫자는 PDF 결합 및 병합에도 적용됩니다."; + } else if (str == "The results for all 7,031 pages are:") { + return "모든 7,031 페이지에 대한 결과:"; + } else if (str == "seconds") { + return "초"; + } else if (str == "fastest") { + return "가장 빠름"; + } else if (str == "slowest") { + return "가장 느림"; + } else if (str == "Text Extraction") { + return "텍스트 추출"; + } else if (str == "This refers to extracting simple, plain text from every page of the document and storing it in a text file.") { + return "이것은 문서의 모든 페이지에서 간단한 일반 텍스트를 추출하여 텍스트 파일에 저장하는 것을 의미합니다."; + } else if (str == "Rendering") { + return "렌더링"; + } else if (str == "This refers to making an image (like PNG) from every page of a document at a given DPI resolution. This feature is the basis for displaying a document in a GUI window.") { + return "이것은 주어진 DPI 해상도로 문서의 모든 페이지에서 이미지 (예: PNG)를 만드는 것을 의미합니다. 이 기능은 GUI 창에서 문서를 표시하는 기반입니다."; + } } return str; diff --git a/docs/footer.rst b/docs/footer.rst index e734bf95a..ae9708622 100644 --- a/docs/footer.rst +++ b/docs/footer.rst @@ -22,6 +22,15 @@ return "このソフトウェアは無保証で提供されており、明示または黙示を問わず、いかなる保証もありません。このソフトウェアはライセンスの下で配布され、ライセンスの条件に明示的に許可されている場合を除き、コピー、変更、または配布してはなりません。ライセンシング情報については、artifex.comでライセンス情報を参照するか、アメリカ合衆国カリフォルニア州サンフランシスコのArtifex Software Inc. までお問い合わせください。" } + } else if (docLanguage == "ko") { + if (str == "Find #pymupdf on Discord") { + return "Discord 에서 #pymupdf 찾기"; + } else if (str == "Have a  question? Need some  answers? ") { + return " 질문이 있으신가요?  답변이 필요하신가요? "; + } + else if (str == "This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.") { + return "이 소프트웨어는 명시적이든 묵시적이든 어떠한 보증도 없이 있는 그대로 제공됩니다. 이 소프트웨어는 라이선스에 따라 배포되며, 해당 라이선스 조건에 명시적으로 승인된 경우를 제외하고는 복사, 수정 또는 배포할 수 없습니다. 라이선스 정보는 artifex.com 에서 참조하거나, 미국 캘리포니아주 샌프란시스코 Mesa Street 39, Suite 108A 소재 Artifex Software Inc. 에 문의하시기 바랍니다." + } } return str; diff --git a/docs/locales/ko/LC_MESSAGES/404.mo b/docs/locales/ko/LC_MESSAGES/404.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..1824baed60582c93ea02bb230ba659f980290e5c 100644 GIT binary patch literal 1409 zcmZuw&u<$=6kZ?*pR=4uzD6)iULvW?Qfg^teXOx*ea_6nrcKNl^^EYq&-ka}xGw=6jruH=a zo<@5X?cKon+tgn<4OFPo-R~P7aUTdfM_!TWP_L%S+i(#dRjXZ zJM+Aj@X$n+!aB7*U>saZc(DqCLD{rR@P3sDs4))+ zr(iL58EZqC@u-%s<-C9-$|F!UD^=a09RFD-c9G&SqRMQr%r#DUEy#cp5d=`?L?W?? zRdY?GUYtmR7XS;Gj%N*t11k?Z@ghMk40-aGpu~zEvK4Mr8#a0DhY3X%GzW-f!Kh0v zcut__%E-Th+&O!X7KNTE>2HOtG>~zqCmv0_5}l2#P=|4$=iG`}(l2-wS1&LFBKhTl zKJKcXB7z!_h$YVI@wlEi3yB$HX6953KMd4Y=!O|w(|!#NT1l_2p2twT;^B)h;4+&ydV!Ml zUSf0wracG6D&Z~_3!W(J=N`ocw9Az1X}gHe%dQx3Zp{>t*QiZ7_68eQGvESQ zqZTBh@mV|qCqs1)!T-38puVZgyT_oe_SCI={@wwooi?bOAF1Y#^7@Xve&>Hj#oxZ6 zns@x>0Mt=S9d*K|j^*U{1FZOuUHPEyf6)#j{O#Q!XwV8>dDOroN6A}V)%XF||Cthb zuO+V?f^2^(n=LrGUsqe#RJSqV+*UVxp!&a@JV5sQJ3)}VdWdp@pfKFuI|Oz6STzRf zR%;sfOF5vjP&6u>g6$p$-}+4|lPPLl)nCD?dLN PZ3jo;jmX;%$7TKk!95!( delta 60 vcmZqVUcsz$Pl#nI0}wC*u?!HafH+7%2gt4hO6mgX&DKoijI0KF##{^l&PxUg diff --git a/docs/locales/ko/LC_MESSAGES/404.po b/docs/locales/ko/LC_MESSAGES/404.po index 340b18354..f6cd906d4 100644 --- a/docs/locales/ko/LC_MESSAGES/404.po +++ b/docs/locales/ko/LC_MESSAGES/404.po @@ -21,33 +21,33 @@ msgstr "" #: ../../header-404.rst:-1 a1916335a5274785a49dd5e339d92fe7 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header-404.rst:-1 5d84ec96284f4e3f94e9c1b238269f04 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header-404.rst:-1 4576f08a21cd47f79352fb20f6583d87 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../404.rst:4 924f32c8351f4a62978ec14c16c351b5 msgid "404!" -msgstr "" +msgstr "404!" #: ../../404.rst:7 6d3e16ada64f4502aa193e221a595c34 msgid "**This page is not available.**" -msgstr "" +msgstr "**이 페이지를 사용할 수 없습니다.**" #: ../../404.rst:10 dbddaa0e43f144ebbea819e2466410b9 msgid "Please use the menu or search to find what you are looking for." -msgstr "" +msgstr "메뉴 또는 검색을 사용하여 찾고 있는 내용을 검색해 주세요." #: ../../footer.rst:46 a4c037a234b44cbe8461dba8e47036a1 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/about-feature-matrix.mo b/docs/locales/ko/LC_MESSAGES/about-feature-matrix.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..18e761b1d47fa2b82f82dae901c4f206e5b48992 100644 GIT binary patch delta 13 UcmZ3%yn=bdVn$YTJp(QV03GWCPXGV_ delta 13 UcmZ3%yn=bdVn$X2J!38g03Fc-O8@`> diff --git a/docs/locales/ko/LC_MESSAGES/about-performance.mo b/docs/locales/ko/LC_MESSAGES/about-performance.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..18e761b1d47fa2b82f82dae901c4f206e5b48992 100644 GIT binary patch delta 13 UcmZ3%yn=bdVn$YTJp(QV03GWCPXGV_ delta 13 UcmZ3%yn=bdVn$X2J!38g03Fc-O8@`> diff --git a/docs/locales/ko/LC_MESSAGES/about.mo b/docs/locales/ko/LC_MESSAGES/about.mo index 0a4a5782e44dacab2cf76c2adc7c81e85153f55f..0dd9f886179950194a5435319eadbc4175d6ea55 100644 GIT binary patch literal 6383 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 Dmqfkw delta 191 zcmaEFc#k#ao)F7a1|VPoVi_Q|0dbH(43NzS#IZmu48%D=90J4*KwQPhz;G2vgTw=v z7#MhgbPABp2GT`9dh!}(mC0vVLnqtv1alec8ks5>8Cw|}Z=S^?$!KbzXUxU$YR87x zT}u^SFJJPuYsc$lYu|J&fs5^Id9`%{!|U!PZ|3$Wyq!4bb=MSy$-e}3m|ss`GFeSX F9{}#)HIe`T diff --git a/docs/locales/ko/LC_MESSAGES/about.po b/docs/locales/ko/LC_MESSAGES/about.po index 748053203..8a3bc82d4 100644 --- a/docs/locales/ko/LC_MESSAGES/about.po +++ b/docs/locales/ko/LC_MESSAGES/about.po @@ -21,19 +21,19 @@ msgstr "" #: ../../header.rst:-1 f19dada9348f4b02a8e7f37161295aed msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 3a2fd52dfdbe4ef0ba2277d3dc5ce9cd msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 6457f182efd342f9971c29ded21b19cd msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../about.rst:10 6bf350a1548242f08f4231816b75ae9e msgid "Features Comparison" @@ -41,48 +41,48 @@ msgstr "기능 비교" #: ../../about.rst:16 e6e0680f36684a24b35c48e7756b8ee2 msgid "Feature Matrix" -msgstr "기능 매트릭스" +msgstr "기능 비교표" #: ../../about.rst:18 fdad9ebd21e342da9d1b6b35ca5ad4e9 msgid "" "The following table illustrates how |PyMuPDF| compares with other typical" " solutions." -msgstr "다음 표는 |PyMuPDF| 가 다른 일반적인 솔루션들과 어떻게 비교되는지 보여줍니다." +msgstr "다음 표는 |PyMuPDF| 가 다른 일반적인 솔루션과 어떻게 비교되는지 보여줍니다." #: ../../about.rst:47 5f1d6f3b09ac43e1ae7043dc7a879c02 msgid "" "A note about **Office** document types (DOCX, XLXS, PPTX) and **Hangul** " "documents (HWPX). These documents can be loaded into |PyMuPDF| and you " "will receive a :ref:`Document ` object." -msgstr "" +msgstr "**Office** 문서 유형(DOCX, XLXS, PPTX) 및 **한글** 문서(HWPX)에 대한 참고사항입니다. 이러한 문서는 |PyMuPDF| 에 로드할 수 있으며 :ref:`Document ` 객체를 받게 됩니다." #: ../../about.rst:49 9add749bf1d7451aabfcb79190677ddb msgid "There are some caveats:" -msgstr "" +msgstr "다음과 같은 주의사항이 있습니다:" #: ../../about.rst:52 a610a8b3f5cf4333938a9e7a75157f1d msgid "we convert the input to **HTML** to layout the content." -msgstr "" +msgstr "내용을 배치하기 위해 입력을 **HTML** 로 변환합니다." #: ../../about.rst:53 a71abef4bb604e3b8f1065200afb7907 msgid "because of this the original page separation has gone." -msgstr "" +msgstr "이로 인해 원본 페이지 구분이 사라집니다." #: ../../about.rst:55 255d6618e34f4f11ae7a1a0f54f57322 msgid "" "When saving out the result any faithful representation of the original " "layout cannot be expected." -msgstr "" +msgstr "결과를 저장할 때 원본 레이아웃의 정확한 표현을 기대할 수 없습니다." #: ../../about.rst:57 59954cbab9914471b64ad43b7eb7a58b msgid "" "Therefore input files are mostly in a form that's useful for text " "extraction." -msgstr "" +msgstr "따라서 입력 파일은 주로 텍스트 추출에 유용한 형태입니다." #: ../../about.rst:65 f3ad21fdc6c841f090824af510994edb msgid "Performance" -msgstr "" +msgstr "성능" #: ../../about.rst:69 482ba1a4696f429da50d900517f9001b msgid "" @@ -90,21 +90,21 @@ msgid "" "with a fixed set of :ref:`8 PDFs with a total of 7,031 " "pages` containing text & images is used to obtain " "performance timings." -msgstr "" +msgstr "다양한 작업에 대해 |PyMuPDF| 성능을 벤치마크하기 위해 텍스트와 이미지가 포함된 :ref:`총 7,031페이지의 8개 PDF 파일` 로 구성된 고정된 테스트 스위트를 사용하여 성능 타이밍을 측정합니다." #: ../../about.rst:72 11c5e7e482204c7682f05223297c6488 msgid "Here are current results, grouped by task:" -msgstr "" +msgstr "다음은 작업별로 그룹화된 현재 결과입니다:" #: ../../about.rst:81 9f36f4db74ab492ba26cc4fb9946f818 msgid "" "For more detail regarding the methodology for these performance timings " "see: :ref:`Performance Comparison Methodology`." -msgstr "" +msgstr "이러한 성능 타이밍 방법론에 대한 자세한 내용은 :ref:`성능 비교 방법론` 을 참조하세요." #: ../../about.rst:89 e86ca33131a544e8a4cc0821737a9a86 msgid "License and Copyright" -msgstr "" +msgstr "라이선스 및 저작권" #: ../../about.rst:93 061c6a01a19c40198fd34033af39cc6d msgid "" @@ -118,50 +118,50 @@ msgid "" "`_ for more information " "regarding a commercial license." -msgstr "" +msgstr "|PyMuPDF| 와 |MuPDF| 는 이제 오픈소스 |AGPL| 및 상용 라이선스 계약 모두에서 사용할 수 있습니다. 사용 사례가 라이선스 지침을 준수하는지 확인하려면 배포 자료(COPYING 파일) 및 `GNU 라이선스 페이지 `_ 에서 제공되는 |AGPL| 라이선스 계약 전문을 읽어보세요. |AGPL| 의 요구사항을 충족할 수 없다고 판단되는 경우, 상용 라이선스에 대한 자세한 정보는 `Artifex `_ 에 문의하세요." #: ../../about.rst:111 0cf7adfbbbe6404aae5016ba8cf4ca79 msgid "" ":title:`Artifex` is the exclusive commercial licensing agent for " ":title:`MuPDF`." -msgstr "" +msgstr ":title:`Artifex` 는 :title:`MuPDF` 의 독점 상용 라이선스 대리인입니다." #: ../../about.rst:113 1206bde366264e91900de44a990e7b13 msgid "" ":title:`Artifex`, the :title:`Artifex` logo, :title:`MuPDF`, and the " ":title:`MuPDF` logo are registered trademarks of :title:`Artifex Software" " Inc.`" -msgstr "" +msgstr ":title:`Artifex`, :title:`Artifex` 로고, :title:`MuPDF`, :title:`MuPDF` 로고는 :title:`Artifex Software Inc.` 의 등록 상표입니다." #: ../../version.rst:1 b23f02d66d164eb195ed6512c8e9ff6c msgid "This documentation covers PyMuPDF |version|." -msgstr "" +msgstr "이 문서는 PyMuPDF |version| 을 다룹니다." #: ../../version.rst:3 ca881a8c265b46618c644701ea14c695 msgid "" "The major and minor versions of PyMuPDF and MuPDF will always be the " "same. Only the third qualifier (patch level) may deviate from that of " "MuPDF." -msgstr "" +msgstr "PyMuPDF와 MuPDF의 주 버전과 부 버전은 항상 동일합니다. 세 번째 한정자(패치 레벨)만 |MuPDF| 와 다를 수 있습니다." #: ../../version.rst:5 a91d12805e42498fb4eebcb3f7923eb8 msgid "" "Typically PyMuPDF is released more frequently than MuPDF so it will often" " be the case that the patch level of PyMuPDF will be greater than the " "embedded MuPDF." -msgstr "" +msgstr "일반적으로 PyMuPDF는 MuPDF보다 더 자주 릴리스되므로, PyMuPDF의 패치 레벨이 내장된 MuPDF보다 높은 경우가 많습니다." #: ../../version.rst:9 2e3b5e5955fc4cba8aafc25d3d650e7a msgid "For example PyMuPDF-1.24.5 contains MuPDF-1.24.2." -msgstr "" +msgstr "예를 들어 PyMuPDF-1.24.5는 MuPDF-1.24.2를 포함합니다." #: ../../version.rst:11 a60af2aa03494194b19ecf8e3bc095fc msgid "Also see `pymupdf_version` and `mupdf_version`." -msgstr "" +msgstr "`pymupdf_version` 및 `mupdf_version` 도 참조하세요." #: ../../footer.rst:48 ea2d1136af82416baa3286db6ed38f96 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." #~ msgid "" #~ "The major and minor versions of " diff --git a/docs/locales/ko/LC_MESSAGES/algebra.mo b/docs/locales/ko/LC_MESSAGES/algebra.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..786470812c4c4b831653cab0ace59fefbcf8159a 100644 GIT binary patch literal 15360 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 delta 60 vcmZpuSi!7wPl#nI0}wC*u?!HafH+7%2gt4hO6mgX%?fhmjI0KF##{^l=Ntxi diff --git a/docs/locales/ko/LC_MESSAGES/algebra.po b/docs/locales/ko/LC_MESSAGES/algebra.po index e35e93280..297ceadb4 100644 --- a/docs/locales/ko/LC_MESSAGES/algebra.po +++ b/docs/locales/ko/LC_MESSAGES/algebra.po @@ -21,95 +21,95 @@ msgstr "" #: ../../header.rst:-1 1f5ba5d56ddc4a2fa55079bc44f7d2c1 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 03f8222493784e3ca314d8d7abdaff0a msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 e6cbb920023f4b0992f996b108924b94 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../algebra.rst:6 920754cf16444314b9c46d86f31b0f00 msgid "Operator Algebra for Geometry Objects" -msgstr "" +msgstr "기하 객체를 위한 연산자 대수" #: ../../algebra.rst:10 dec854bb55b9478eb8cc515d6eaca329 msgid "" "Instances of classes :ref:`Point`, :ref:`IRect`, :ref:`Rect`, :ref:`Quad`" " and :ref:`Matrix` are collectively also called \"geometry\" objects." -msgstr "" +msgstr ":ref:`Point`, :ref:`IRect`, :ref:`Rect`, :ref:`Quad`, :ref:`Matrix` 클래스의 인스턴스는 집합적으로 \"geometry\" 객체라고도 합니다." #: ../../algebra.rst:12 d199f8882c174dcea71374e8d9993b56 msgid "" "They all are special cases of Python sequences, see :ref:`SequenceTypes` " "for more background." -msgstr "" +msgstr "모두 Python 시퀀스의 특수한 경우입니다. 자세한 내용은 :ref:`SequenceTypes` 를 참조하세요." #: ../../algebra.rst:14 122aaf19e93244b3a259c46eacf945b1 msgid "" "We have defined operators for these classes that allow dealing with them " "(almost) like ordinary numbers in terms of addition, subtraction, " "multiplication, division, and some others." -msgstr "" +msgstr "이 클래스들에 대해 덧셈, 뺄셈, 곱셈, 나눗셈 및 기타 연산에서 일반 숫자처럼(거의) 다룰 수 있도록 연산자를 정의했습니다." #: ../../algebra.rst:16 84183cdd392441e182408f158d85ab50 msgid "This chapter is a synopsis of what is possible." -msgstr "" +msgstr "이 장은 가능한 작업의 요약입니다." #: ../../algebra.rst:19 e8894b34cabf472ea53483bffb05e53d msgid "General Remarks" -msgstr "" +msgstr "일반적인 설명" #: ../../algebra.rst:20 0934454c0329461698c27169858d0afb msgid "" "Operators can be either **binary** (i.e. involving two objects) or " "**unary**." -msgstr "" +msgstr "연산자는 **이항** (즉, 두 객체를 포함) 또는 **단항** 일 수 있습니다." #: ../../algebra.rst:22 68b04e12599f4ce6a527b3d5f4d358aa msgid "" "The resulting type of **binary** operations is either a **new object of " "the left operand's class,** a bool or (for dot products) a float." -msgstr "" +msgstr "**이항** 연산의 결과 유형은 **왼쪽 피연산자 클래스의 새 객체**, bool 또는(내적의 경우) float입니다." #: ../../algebra.rst:24 b5bdf8532fed412092362d18eeb3dbcd msgid "" "The result of **unary** operations is either a **new object** of the same" " class, a bool or a float." -msgstr "" +msgstr "**단항** 연산의 결과는 동일한 클래스의 **새 객체**, bool 또는 float입니다." #: ../../algebra.rst:26 c6550b01d863415293570f3c92bcab4f msgid "" "The binary operators `+, -, *, /` are defined for all classes. They " "*roughly* do what you would expect -- **except, that the second operand " "...**" -msgstr "" +msgstr "이항 연산자 `+, -, *, /` 는 모든 클래스에 대해 정의됩니다. 대략 예상대로 동작합니다 -- **단, 두 번째 피연산자는 ...**" #: ../../algebra.rst:28 55195cd58e234294875781acefaa545e msgid "" "may always be a number which then performs the operation on every " "component of the first one," -msgstr "" +msgstr "항상 숫자일 수 있으며, 그러면 첫 번째 피연산자의 모든 구성 요소에 대해 연산을 수행합니다," #: ../../algebra.rst:29 128012698aa343409977ea7e41b35276 msgid "" "may always be a numeric sequence of the same length (2, 4 or 6) -- we " "call such sequences :data:`point_like`, :data:`rect_like`, " ":data:`quad_like` or :data:`matrix_like`, respectively." -msgstr "" +msgstr "항상 동일한 길이(2, 4 또는 6)의 숫자 시퀀스일 수 있습니다 -- 이러한 시퀀스를 각각 :data:`point_like`, :data:`rect_like`, :data:`quad_like` 또는 :data:`matrix_like` 라고 합니다." #: ../../algebra.rst:31 c34b1b77d5ad43c7adc65443468f835d msgid "" "Rectangles support **additional binary** operations: **intersection** " "(operator `\"&\"`), **union** (operator `\"|\"`) and **containment** " "checking." -msgstr "" +msgstr "사각형은 **추가 이항** 연산을 지원합니다: **교집합** (연산자 `\"&\"`), **합집합** (연산자 `\"|\"`) 및 **포함** 확인." #: ../../algebra.rst:33 25ac1658fe1042febe1cabd928b67c0c msgid "" @@ -117,99 +117,99 @@ msgid "" "binary operator then the expression `a °= b` is always valid and the same" " as `a = a ° b`. Therefore, be careful and do **not** do `p1 *= p2` for " "two points, because thereafter \"p1\" is a **float**." -msgstr "" +msgstr "이항 연산자는 제자리 연산을 완전히 지원합니다. 따라서 \"°\"가 이항 연산자이면 표현식 `a °= b` 는 항상 유효하며 `a = a ° b` 와 동일합니다. 따라서 두 점에 대해 `p1 *= p2` 를 **하지 마세요**. 그 후 \"p1\"은 **float** 가 됩니다." #: ../../algebra.rst:37 a3178a19dae843a2a0d880ab3d29b924 msgid "Unary Operations" -msgstr "" +msgstr "단항 연산" #: ../../algebra.rst:40 ../../algebra.rst:59 49cce5653ff84ecd9e947c39e0d07c87 #: c3820b716a6d44b1be18f6133e3b4589 msgid "Oper." -msgstr "" +msgstr "연산" #: ../../algebra.rst:40 ../../algebra.rst:59 69b612ab28c5403698b26e70c7342e08 #: a4d6a4f7e8074daf86d9c71f76c15e3c msgid "Result" -msgstr "" +msgstr "결과" #: ../../algebra.rst:42 bd8aa928700f4d6da33517c5c44f92d1 msgid "bool(OBJ)" -msgstr "" +msgstr "bool(OBJ)" #: ../../algebra.rst:42 3944ae985d32466ba96b36a9d164d059 msgid "is false exactly if all components of OBJ are zero" -msgstr "" +msgstr "OBJ의 모든 구성 요소가 0인 경우에만 false" #: ../../algebra.rst:43 77ef179dc26548b3afe5aab5973b1ad3 msgid "abs(OBJ)" -msgstr "" +msgstr "abs(OBJ)" #: ../../algebra.rst:43 c040cb90c08c4c24ab34fca940e7a5d3 msgid "the rectangle area -- equal to norm(OBJ) for the other types" -msgstr "" +msgstr "사각형 영역 -- 다른 유형의 경우 norm(OBJ)와 동일" #: ../../algebra.rst:44 8e3b6dc21657411cb9b9aec339f7b58b msgid "norm(OBJ)" -msgstr "" +msgstr "norm(OBJ)" #: ../../algebra.rst:44 101cabdb07cc4340a520f882a1412565 msgid "square root of the component squares (Euclidean norm)" -msgstr "" +msgstr "구성 요소 제곱의 제곱근(유클리드 노름)" #: ../../algebra.rst:45 7dcf68ad8af544e4ab89a8fb9b2e127f msgid "+OBJ" -msgstr "" +msgstr "+OBJ" #: ../../algebra.rst:45 bb51eef23c134b9abcde315903ab5fa9 msgid "new copy of OBJ" -msgstr "" +msgstr "OBJ의 새 복사본" #: ../../algebra.rst:46 fbe1c96a611b41cdbdd3c8fd57b6cffd msgid "-OBJ" -msgstr "" +msgstr "-OBJ" #: ../../algebra.rst:46 bf0e072e4b3b4682b53d14c5d564d191 msgid "new copy of OBJ with negated components" -msgstr "" +msgstr "부정된 구성 요소를 가진 OBJ의 새 복사본" #: ../../algebra.rst:47 41d625338bff4d5bba38dc17591c1cd4 msgid "~m" -msgstr "" +msgstr "~m" #: ../../algebra.rst:47 e461d45306e940efa0e6c12f0b3a0001 msgid "inverse of matrix \"m\", or the null matrix if not invertible" -msgstr "" +msgstr "행렬 \"m\"의 역행렬, 또는 역행렬이 없으면 null 행렬" #: ../../algebra.rst:52 6dee1ec3dcbd4abfb2a10eb496fd0db8 msgid "Binary Operations" -msgstr "" +msgstr "이항 연산" #: ../../algebra.rst:53 77bb8041546c4d36b40997f8dc509039 msgid "" "These are expressions like `a ° b` where \"°\" is any of the operators " "`+, -, *, /`. Also binary operations are expressions of the form `a == b`" " and `b in a`." -msgstr "" +msgstr "이것들은 \"°\"가 연산자 `+, -, *, /` 중 하나인 `a ° b` 와 같은 표현식입니다. 또한 이항 연산은 `a == b` 및 `b in a` 형식의 표현식입니다." #: ../../algebra.rst:55 665cd59a262c4131b350a1640ca2f42c msgid "" "If \"b\" is a number, then the respective operation is executed for each " "component of \"a\". Otherwise, if \"b\" is **not a number,** then the " "following happens:" -msgstr "" +msgstr "\"b\"가 숫자이면 각 구성 요소에 대해 해당 연산이 실행됩니다. 그렇지 않고 \"b\"가 **숫자가 아니면** 다음이 발생합니다:" #: ../../algebra.rst:61 b25c4a3c6bc2413ea4202520e62172d8 msgid "a+b, a-b" -msgstr "" +msgstr "a+b, a-b" #: ../../algebra.rst:61 bf714007cfab424dbe07b769f64b1915 msgid "component-wise execution, \"b\" must be \"a-like\"." -msgstr "" +msgstr "구성 요소별 실행, \"b\"는 \"a-like\"여야 합니다." #: ../../algebra.rst:62 80c4437403a149669f5a019a372b05a9 msgid "a*m, a/m" -msgstr "" +msgstr "a*m, a/m" #: ../../algebra.rst:62 9c7dff332f5a488587e7031c72f8a13a msgid "" @@ -218,60 +218,60 @@ msgid "" "for non-invertible matrices). If \"a\" is a **point** or a **rectangle**," " then *\"a.transform(m)\"* is executed. If \"a\" is a matrix, then matrix" " concatenation takes place." -msgstr "" +msgstr "\"a\"는 점, 사각형 또는 행렬일 수 있으며 \"m\"은 :data:`matrix_like` 입니다. *\"a/m\"* 은 *\"a*~m\"* 로 처리됩니다(역행렬이 없는 행렬에 대한 참고 사항은 아래 참조). \"a\"가 **점** 또는 **사각형** 이면 *\"a.transform(m)\"* 이 실행됩니다. \"a\"가 행렬이면 행렬 연결이 수행됩니다." #: ../../algebra.rst:67 d01766d058d54714bc45e5e76968d4ea msgid "a*b" -msgstr "" +msgstr "a*b" #: ../../algebra.rst:67 d18a927d83d845ddbd20845807b09e1f msgid "returns the **vector dot product** for a point \"a\" and point-like \"b\"." -msgstr "" +msgstr "점 \"a\"와 점과 유사한 \"b\"에 대한 **벡터 내적** 을 반환합니다." #: ../../algebra.rst:68 a49b407604184c13b57152c45ddb58ae msgid "a&b" -msgstr "" +msgstr "a&b" #: ../../algebra.rst:68 7550c08ef54244859c5a00ebed58448c msgid "" "**intersection rectangle:** \"a\" must be a rectangle and \"b\" " ":data:`rect_like`. Delivers the **largest rectangle** contained in both " "operands." -msgstr "" +msgstr "**교집합 사각형:** \"a\"는 사각형이어야 하며 \"b\"는 :data:`rect_like` 여야 합니다. 두 피연산자에 모두 포함된 **가장 큰 사각형** 을 제공합니다." #: ../../algebra.rst:71 a60662c06b0643b0a08f75afa24efb29 msgid "a|b" -msgstr "" +msgstr "a|b" #: ../../algebra.rst:71 79243f4be19046db9091a2f54eb4b815 msgid "" "**union rectangle:** \"a\" must be a rectangle, and \"b\" may be " ":data:`point_like` or :data:`rect_like`. Delivers the **smallest " "rectangle** containing both operands." -msgstr "" +msgstr "**합집합 사각형:** \"a\"는 사각형이어야 하며 \"b\"는 :data:`point_like` 또는 :data:`rect_like` 일 수 있습니다. 두 피연산자를 모두 포함하는 **가장 작은 사각형** 을 제공합니다." #: ../../algebra.rst:74 f48f56c4ee6547259acb882e87de433c msgid "b in a" -msgstr "" +msgstr "b in a" #: ../../algebra.rst:74 8f22ca12cfa44a898823836324a3ed99 msgid "" "if \"b\" is a number, then `b in tuple(a)` is returned. If \"b\" is " ":data:`point_like`, :data:`rect_like` or :data:`quad_like`, then \"a\" " "must be a rectangle, and `a.contains(b)` is returned." -msgstr "" +msgstr "\"b\"가 숫자이면 `b in tuple(a)` 가 반환됩니다. \"b\"가 :data:`point_like`, :data:`rect_like` 또는 :data:`quad_like` 이면 \"a\"는 사각형이어야 하며 `a.contains(b)` 가 반환됩니다." #: ../../algebra.rst:77 686725c716014188a79169f7cf3fd1e6 msgid "a == b" -msgstr "" +msgstr "a == b" #: ../../algebra.rst:77 634c54d1d21d471fabf558849def45e4 msgid "``True`` if *bool(a-b)* is ``False`` (\"b\" may be \"a-like\")." -msgstr "" +msgstr "*bool(a-b)* 가 ``False`` 이면 ``True``(\"b\"는 \"a-like\"일 수 있음)." #: ../../algebra.rst:81 d34c2f644c4b4e6090e0e70255dd2ac5 msgid "Please note an important difference to usual arithmetic:" -msgstr "" +msgstr "일반적인 산술과의 중요한 차이점을 참고하세요:" #: ../../algebra.rst:83 ed3c97cc627d48b394819eb13306021a msgid "" @@ -282,7 +282,7 @@ msgid "" "exception using operator *\"/\"*, e.g. for the expression " "`pymupdf.Identity / m`. But if you formulate `pymupdf.Identity * ~m`, the" " result will be `pymupdf.Matrix()` (the null matrix)." -msgstr "" +msgstr "행렬 곱셈은 **가환적이지 않습니다**. 즉, 일반적으로 두 행렬에 대해 `m*n != n*m` 입니다. 또한 역행렬이 없는 0이 아닌 행렬도 있습니다. 예를 들어 `m = Matrix(1, 0, 1, 0, 1, 0)` 입니다. 이것들 중 하나로 나누려고 하면 연산자 *\"/\"* 를 사용하여 `ZeroDivisionError` 예외를 받게 됩니다. 예를 들어 표현식 `pymupdf.Identity / m` 의 경우입니다. 하지만 `pymupdf.Identity * ~m` 으로 작성하면 결과는 `pymupdf.Matrix()` (null 행렬)가 됩니다." #: ../../algebra.rst:85 34a95a9718a64ff1a3bea139455bb7f8 msgid "" @@ -290,7 +290,7 @@ msgid "" "remove it. For the time being, you can choose to avoid an exception and " "check whether ~m is the null matrix, or accept a potential " "*ZeroDivisionError* by using `pymupdf.Identity / m`." -msgstr "" +msgstr "인정하건대, 이것은 불일치를 나타내며, 우리는 이를 제거하는 것을 고려하고 있습니다. 당분간 예외를 피하고 ~m이 null 행렬인지 확인하거나, `pymupdf.Identity / m` 을 사용하여 잠재적인 *ZeroDivisionError* 를 받아들일 수 있습니다." #: ../../algebra.rst:89 be97480da28d4d4190b9207839fe11f4 msgid "" @@ -298,77 +298,77 @@ msgid "" "arbitrarily using brackets **(among objects of the same class!)** is " "possible: if r1, r2 are rectangles and m1, m2 are matrices, you can do " "this `(r1 + r2) * m1 * m2`." -msgstr "" +msgstr "이러한 규칙으로 모든 일반적인 대수 규칙이 적용됩니다. 예를 들어, 괄호를 임의로 사용하는 것**(동일한 클래스의 객체 중에서!)** 이 가능합니다: r1, r2가 사각형이고 m1, m2가 행렬이면 `(r1 + r2) * m1 * m2` 를 수행할 수 있습니다." #: ../../algebra.rst:90 511b54d905464bb8ad95bc07423f1ac2 msgid "" "For all objects of the same class, `a + b + c == (a + b) + c == a + (b + " "c)` is true." -msgstr "" +msgstr "동일한 클래스의 모든 객체에 대해 `a + b + c == (a + b) + c == a + (b + c)` 가 참입니다." #: ../../algebra.rst:91 c33b3f88dde84396a57cd45693269bce msgid "" "For matrices in addition the following is true: `(m1 + m2) * m3 == m1 * " "m3 + m2 * m3` (distributivity property)." -msgstr "" +msgstr "행렬의 경우 다음이 참입니다: `(m1 + m2) * m3 == m1 * m3 + m2 * m3` (분배 법칙)." #: ../../algebra.rst:92 78e8741acecb42b284d4923e4453fb4d msgid "" "**But the sequence of applying matrices is important:** If r is a " "rectangle and m1, m2 are matrices, then -- **caution!:**" -msgstr "" +msgstr "**하지만 행렬을 적용하는 순서가 중요합니다:** r이 사각형이고 m1, m2가 행렬이면 -- **주의!:**" #: ../../algebra.rst:93 f0abf06e26414aa19a371baa59b462f2 msgid "`r * m1 * m2 == (r * m1) * m2 != r * (m1 * m2)`" -msgstr "" +msgstr "`r * m1 * m2 == (r * m1) * m2 != r * (m1 * m2)`" #: ../../algebra.rst:96 f4a7e127cb3b40d6bfb3847510e2f35c msgid "Some Examples" -msgstr "" +msgstr "일부 예제" #: ../../algebra.rst:99 15d4cd12242a495384b94b9fc6c95502 msgid "Manipulation with numbers" -msgstr "" +msgstr "숫자로 조작" #: ../../algebra.rst:100 fcede45c56364a49abff9441c752c928 msgid "" "For the usual arithmetic operations, numbers are always allowed as second" " operand. In addition, you can formulate `\"x in OBJ\"`, where x is a " "number. It is implemented as `\"x in tuple(OBJ)\"`::" -msgstr "" +msgstr "일반적인 산술 연산의 경우 숫자는 항상 두 번째 피연산자로 허용됩니다. 또한 x가 숫자인 경우 `\"x in OBJ\"` 를 작성할 수 있습니다. 이것은 `\"x in tuple(OBJ)\"` 로 구현됩니다::" #: ../../algebra.rst:108 45094f3eda93464f8d0c9fa9f96154a4 msgid "" "The following will create the upper left quarter of a document page " "rectangle::" -msgstr "" +msgstr "다음은 문서 페이지 사각형의 왼쪽 위 사분면을 생성합니다::" #: ../../algebra.rst:116 fccb6e938aa14f8c823d2a27fb71bb4e msgid "" "The following will deliver the **middle point of a line** that connects " "two points **p1** and **p2**::" -msgstr "" +msgstr "다음은 두 점 **p1** 과 **p2** 를 연결하는 **선의 중점** 을 제공합니다::" #: ../../algebra.rst:125 0c7572c7661544739337b8dcd633678e msgid "" "Compute the **vector dot product** of two points. You can compute the " "**cosine of angles** and check orthogonality." -msgstr "" +msgstr "두 점의 **벡터 내적** 을 계산합니다. **각도의 코사인** 을 계산하고 직교성을 확인할 수 있습니다." #: ../../algebra.rst:149 9659faf69acb47fd94f2c4d7dbcfd358 msgid "Manipulation with \"like\" Objects" -msgstr "" +msgstr "\"like\" 객체로 조작" #: ../../algebra.rst:151 f7a23c3a7065470aa9f9ae634cfa4521 msgid "" "The second operand of a binary operation can always be \"like\" the left " "operand. \"Like\" in this context means \"a sequence of numbers of the " "same length\". With the above examples::" -msgstr "" +msgstr "이항 연산의 두 번째 피연산자는 항상 왼쪽 피연산자와 \"like\"일 수 있습니다. 이 맥락에서 \"Like\"는 \"동일한 길이의 숫자 시퀀스\"를 의미합니다. 위의 예제와 함께::" #: ../../algebra.rst:162 d40766627f0645a4a9b0f043c79f8df5 msgid "To shift a rectangle for 5 pixels to the right, do this::" -msgstr "" +msgstr "사각형을 오른쪽으로 5픽셀 이동하려면 다음을 수행하세요::" #: ../../algebra.rst:168 40356e8f087b4678a490620822d72405 msgid "" @@ -377,33 +377,33 @@ msgid "" "**\"division\"**), where the second operand may be \"like\" a matrix. " "Division in this context means \"multiplication with the inverted " "matrix\"::" -msgstr "" +msgstr "점, 사각형 및 행렬은 행렬로 *변환* 될 수 있습니다. PyMuPDF에서는 이를 **\"곱셈\"** (또는 각각 **\"나눗셈\"** )처럼 취급하며, 두 번째 피연산자는 행렬과 \"like\"일 수 있습니다. 이 맥락에서 나눗셈은 \"역행렬과의 곱셈\"을 의미합니다::" #: ../../algebra.rst:208 ca50582bfe28428c82f4ac0277e2d5be msgid "As a specialty, rectangles support additional binary operations:" -msgstr "" +msgstr "특수 기능으로, 사각형은 추가 이항 연산을 지원합니다:" #: ../../algebra.rst:210 59df6332d27249a28c44c9d4c7278be7 msgid "**intersection** -- the common area of rectangle-likes, operator *\"&\"*" -msgstr "" +msgstr "**교집합** -- 사각형과 유사한 것들의 공통 영역, 연산자 *\"&\"*" #: ../../algebra.rst:211 de5939af58234aa2be504334193d66d4 msgid "" "**inclusion** -- enlarge to include a point-like or rect-like, operator " "*\"|\"*" -msgstr "" +msgstr "**포함** -- 점과 유사하거나 사각형과 유사한 것을 포함하도록 확대, 연산자 *\"|\"*" #: ../../algebra.rst:212 7c511b27c11240cf9d09ca3e172cf9d2 msgid "**containment** check -- whether a point-like or rect-like is inside" -msgstr "" +msgstr "**포함** 확인 -- 점과 유사하거나 사각형과 유사한 것이 내부에 있는지 여부" #: ../../algebra.rst:214 901c1c4b81ce485fa4de1ef6f505e7e3 msgid "" "Here is an example for creating the smallest rectangle enclosing given " "points::" -msgstr "" +msgstr "주어진 점을 둘러싸는 가장 작은 사각형을 만드는 예제입니다::" #: ../../footer.rst:46 d8841960d4f44b93825542b2759973e3 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/annot.mo b/docs/locales/ko/LC_MESSAGES/annot.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..b52792d8597690d57566a4ae58b3da04f98212f5 100644 GIT binary patch literal 54918 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." -msgstr "" +msgstr "`alpha=True` 인 경우 픽스맵은 *\"premultiplied\"* 픽셀을 가집니다. 배경에 대해 알아보려면 예를 들어 이 온라인 용어집 `_ 에서 \"Premultiplied alpha\"를 찾아보세요." #: ../../annot.rst:112 ../../annot.rst:133 059d5413f3154aaa8134479d9629d7da #: 5b109c06581d4245b9034c003ef2e32f msgid "New in 1.18.0" -msgstr "" +msgstr "*1.18.0의 새로운 기능*" #: ../../annot.rst:114 70fc1c944cd84ce18b5f51c59bbb47f0 msgid "" @@ -493,7 +493,7 @@ msgid "" "like the same method for :ref:`Page`.. This currently only delivers " "relevant data for annotation types 'FreeText' and 'Stamp'. Other types " "return an empty string (or equivalent objects)." -msgstr "" +msgstr "다양한 형식으로 주석의 콘텐츠를 검색합니다 -- :ref:`Page` 의 동일한 메서드와 매우 유사합니다. 현재는 주석 타입 'FreeText' 및 'Stamp'에 대해서만 관련 데이터를 제공합니다. 다른 타입은 빈 문자열(또는 해당 객체)을 반환합니다." #: ../../annot.rst:116 4f2629a0de0d499f8b80783953ee846e msgid "" @@ -506,93 +506,93 @@ msgid "" ":meth:`TextPage.extractXML` * \"dict\" -- :meth:`TextPage.extractDICT` * " "\"json\" -- :meth:`TextPage.extractJSON` * \"rawdict\" -- " ":meth:`TextPage.extractRAWDICT`" -msgstr "" +msgstr "(위치 전용) 원하는 형식 - 다음 값 중 하나. 이 메서드는 :ref:`Page` 의 동일한 이름의 메서드와 정확히 동일하게 작동합니다. * \"text\" -- :meth:`TextPage.extractTEXT`, 기본값 * \"blocks\" -- :meth:`TextPage.extractBLOCKS` * \"words\" -- :meth:`TextPage.extractWORDS` * \"html\" -- :meth:`TextPage.extractHTML` * \"xhtml\" -- :meth:`TextPage.extractXHTML` * \"xml\" -- :meth:`TextPage.extractXML` * \"dict\" -- :meth:`TextPage.extractDICT` * \"json\" -- :meth:`TextPage.extractJSON` * \"rawdict\" -- :meth:`TextPage.extractRAWDICT`" #: ../../annot.rst:116 f5480fbc3f3f42fba82218a8e4aec39e msgid "" "(positional only) the desired format - one of the following values. " "Please note that this method works exactly like the same-named method of " ":ref:`Page`." -msgstr "" +msgstr "(위치 전용) 원하는 형식 - 다음 값 중 하나. 이 메서드는 :ref:`Page` 의 동일한 이름의 메서드와 정확히 동일하게 작동합니다." #: ../../annot.rst:118 72a5b0cb198a4de4a1b5bd8012921a2d msgid "\"text\" -- :meth:`TextPage.extractTEXT`, default" -msgstr "" +msgstr "\"text\" -- :meth:`TextPage.extractTEXT`, 기본값" #: ../../annot.rst:119 a0de89ee87384b559b91cb65e53fd4fe msgid "\"blocks\" -- :meth:`TextPage.extractBLOCKS`" -msgstr "" +msgstr "\"blocks\" -- :meth:`TextPage.extractBLOCKS`" #: ../../annot.rst:120 abb67ab204e8498a82f39f7786634fa3 msgid "\"words\" -- :meth:`TextPage.extractWORDS`" -msgstr "" +msgstr "\"words\" -- :meth:`TextPage.extractWORDS`" #: ../../annot.rst:121 2a65cab359de401d84fb6c06d18af7fe msgid "\"html\" -- :meth:`TextPage.extractHTML`" -msgstr "" +msgstr "\"html\" -- :meth:`TextPage.extractHTML`" #: ../../annot.rst:122 ebb1a0a333b94886a085c62c2910b11b msgid "\"xhtml\" -- :meth:`TextPage.extractXHTML`" -msgstr "" +msgstr "\"xhtml\" -- :meth:`TextPage.extractXHTML`" #: ../../annot.rst:123 039f6bd299a1459984f1378d7506db1d msgid "\"xml\" -- :meth:`TextPage.extractXML`" -msgstr "" +msgstr "\"xml\" -- :meth:`TextPage.extractXML`" #: ../../annot.rst:124 def0587d2e904e678a48944fd55d8845 msgid "\"dict\" -- :meth:`TextPage.extractDICT`" -msgstr "" +msgstr "\"dict\" -- :meth:`TextPage.extractDICT`" #: ../../annot.rst:125 9d446d90b12e480186eb0f5d4d6a88ca msgid "\"json\" -- :meth:`TextPage.extractJSON`" -msgstr "" +msgstr "\"json\" -- :meth:`TextPage.extractJSON`" #: ../../annot.rst:126 ba83222452844c0280bc4ca743ec52d2 msgid "\"rawdict\" -- :meth:`TextPage.extractRAWDICT`" -msgstr "" +msgstr "\"rawdict\" -- :meth:`TextPage.extractRAWDICT`" #: ../../annot.rst:128 fc5b291ff14745a4acd435eba57c0ee4 msgid "" "(keyword only) restrict the extraction to this area. Should hardly ever " "be required, defaults to :attr:`Annot.rect`." -msgstr "" +msgstr "(키워드 전용) 추출을 이 영역으로 제한합니다. 거의 필요하지 않으며, 기본값은 :attr:`Annot.rect` 입니다." #: ../../annot.rst:129 58a7b13ec10244cab579c577a4a02451 msgid "" "(keyword only) control the amount of data returned. Defaults to simple " "text extraction." -msgstr "" +msgstr "(키워드 전용) 반환되는 데이터 양을 제어합니다. 기본값은 간단한 텍스트 추출입니다." #: ../../annot.rst:135 abea461b229f40449176733f81fe3e1f msgid "" "Return the annotation text. Mostly (except line breaks) equal to " ":meth:`Annot.get_text` with the \"text\" option." -msgstr "" +msgstr "주석 텍스트를 반환합니다. 대부분(줄바꿈 제외) \"text\" 옵션을 사용하는 :meth:`Annot.get_text` 와 동일합니다." #: ../../annot.rst:137 7769e9ff53bb477581a82b545145ed52 msgid "the area to consider, defaults to :attr:`Annot.rect`." -msgstr "" +msgstr "고려할 영역, 기본값은 :attr:`Annot.rect` 입니다." #: ../../annot.rst:142 2e28ab6b2bd740c788a328a8a392b3d3 msgid "Create a :ref:`TextPage` for the annotation." -msgstr "" +msgstr "주석에 대한 :ref:`TextPage` 생성." #: ../../annot.rst:144 ec86c28fbc9c4ea5a4520e3182ebac54 msgid "" "indicator bits controlling the content available for subsequent text " "extractions and searches -- see the parameter of :meth:`Annot.get_text`." -msgstr "" +msgstr "후속 텍스트 추출 및 검색에 사용 가능한 콘텐츠를 제어하는 표시기 비트 -- :meth:`Annot.get_text` 의 매개변수 참조." #: ../../annot.rst:146 f524fdc0ad6649eabe0dcea86d45490d msgid "restrict extracted text to this area." -msgstr "" +msgstr "추출된 텍스트를 이 영역으로 제한합니다." #: ../../annot.rst 00ab1155c33d4b8b909387ee865f0f14 #: 054667c67ee948229ce41dcc4618fb84 70e6a4c25ac54573a0e41c8e5ca39783 #: 75932b217be7487a9362d25abfb1105c a5e875b7000f42ec9309633efaa12429 #: c194084f626c4b5799f1d232a00741a2 ffd675b9852a4f828c4dfe677c57a2bf msgid "Returns" -msgstr "" +msgstr "반환값" #: ../../annot.rst:148 195337666ae04da792bf99b2e5fc7381 msgid ":ref:`TextPage`" @@ -604,7 +604,7 @@ msgstr "" #: ../../annot.rst:152 b9da3f595018401c8b8eeb0c1529cca7 msgid "v1.25.5: fixed `clip` arg." -msgstr "" +msgstr "v1.25.5: `clip` 인수 수정." #: ../../annot.rst:154 0201b53debf84074b8cde915dfcee8f4 msgid "|history_end|" @@ -612,7 +612,7 @@ msgstr "" #: ../../annot.rst:158 7980023e59354afead5f160d58e260cb msgid "Changed in version 1.16.10" -msgstr "" +msgstr "버전 1.16.10에서 변경됨" #: ../../annot.rst:160 0b5d367dc98e4a3a9b3fe1c292ce8cb6 msgid "" @@ -620,32 +620,32 @@ msgid "" " author (title). Changes for *name* and *id* will be ignored. The update " "happens selectively: To leave a property unchanged, set it to ``None``. " "To delete existing data, use an empty string." -msgstr "" +msgstr "주석 속성을 변경합니다. 날짜, 내용, 제목 및 작성자(제목)가 포함됩니다. *name* 및 *id* 에 대한 변경은 무시됩니다. 업데이트는 선택적으로 수행됩니다: 속성을 변경하지 않으려면 ``None`` 으로 설정하세요. 기존 데이터를 삭제하려면 빈 문자열을 사용하세요." #: ../../annot.rst:162 82ce1316fe354b898446a0cf7a1713b5 msgid "" "a dictionary compatible with the *info* property (see below). All entries" " must be strings. If this argument is not a dictionary, the other " "arguments are used instead -- else they are ignored." -msgstr "" +msgstr "*info* 속성과 호환되는 딕셔너리(아래 참조). 모든 항목은 문자열이어야 합니다. 이 인수가 딕셔너리가 아니면 다른 인수가 대신 사용됩니다 -- 그렇지 않으면 무시됩니다." #: ../../annot.rst:163 ../../annot.rst:164 ../../annot.rst:167 #: 83ea81f2fcaf4733afe8ff369d458b6f 86f02eb815724a3a9d24dd57c593a1a3 #: c5a737145dcf4d738178459172d94c07 msgid "*(new in v1.16.10)* see description in :attr:`info`." -msgstr "" +msgstr "*(v1.16.10의 새로운 기능)* :attr:`info` 의 설명을 참조하세요." #: ../../annot.rst:165 5b9616a7ad9147aa931d66313938ba67 msgid "" "*(new in v1.16.10)* date of annot creation. If given, should be in PDF " "datetime format." -msgstr "" +msgstr "*(v1.16.10의 새로운 기능)* 주석 생성 날짜. 주어진 경우 PDF 날짜/시간 형식이어야 합니다." #: ../../annot.rst:166 3764dd0b660a48ecba7d241ddd0c78ef msgid "" "*(new in v1.16.10)* date of last modification. If given, should be in PDF" " datetime format." -msgstr "" +msgstr "*(v1.16.10의 새로운 기능)* 마지막 수정 날짜. 주어진 경우 PDF 날짜/시간 형식이어야 합니다." #: ../../annot.rst:171 e43517d418724f92aa471da27a597d2b msgid "" @@ -654,22 +654,22 @@ msgid "" "identified by *start* is attached to the first point, and *end* to the " "last point of this list. For unsupported annotation types, a no-operation" " with a warning message results." -msgstr "" +msgstr "주석의 라인 끝 스타일을 설정합니다. 이러한 주석 타입 각각은 라인으로 연결된 포인트 목록으로 정의됩니다. *start* 로 식별된 심볼은 첫 번째 포인트에 첨부되고, *end* 는 이 목록의 마지막 포인트에 첨부됩니다. 지원되지 않는 주석 타입의 경우 경고 메시지와 함께 작업이 수행되지 않습니다." #: ../../annot.rst:175 c6f37bfe8f864b7aa70a6677d903fbdc msgid "" "Some symbols have an interior area (diamonds, circles, squares, etc.). " "These areas are filled with the fill color or the stroke color, depending" " on the annotation type." -msgstr "" +msgstr "일부 심볼에는 내부 영역(다이아몬드, 원, 사각형 등)이 있습니다. 이러한 영역은 주석 타입에 따라 채우기 색상 또는 스트로크 색상으로 채워집니다." #: ../../annot.rst:177 35d6ef1a79c74b06ab0a9dcf482f9a65 msgid "The symbol number for the first point." -msgstr "" +msgstr "첫 번째 포인트의 심볼 번호." #: ../../annot.rst:178 458ad87b80944b07b309331fa16a70a2 msgid "The symbol number for the last point." -msgstr "" +msgstr "마지막 포인트의 심볼 번호." #: ../../annot.rst:182 4fed90be4a2f4f6eb36e2d7f41f31319 msgid "" @@ -677,7 +677,7 @@ msgid "" "This visibility is controlled by the user interface of supporting PDF " "viewers. It is independent from other attributes like " ":attr:`Annot.flags`." -msgstr "" +msgstr "PDF 선택적 콘텐츠 메커니즘을 사용하여 주석의 가시성을 설정합니다. 이 가시성은 지원하는 PDF 뷰어의 사용자 인터페이스에 의해 제어됩니다. :attr:`Annot.flags` 와 같은 다른 속성과는 독립적입니다." #: ../../annot.rst:184 613a0a96a3a548efb40200791489f4fd msgid "" @@ -685,119 +685,119 @@ msgid "" "previous xref will be overwritten. If zero, a previous entry will be " "removed. An exception occurs if the xref is not zero and does not point " "to a valid PDF object." -msgstr "" +msgstr "선택적 콘텐츠 그룹(OCG 또는 OCMD)의 :data:`xref`. 이전 xref는 덮어씌워집니다. 0이면 이전 항목이 제거됩니다. xref가 0이 아니고 유효한 PDF 객체를 가리키지 않으면 예외가 발생합니다." #: ../../annot.rst:186 55d26af3928947678aaeaa3e33027dcc msgid "This does **not require executing** :meth:`Annot.update` to take effect." -msgstr "" +msgstr "이것은 효과를 적용하기 위해 :meth:`Annot.update` **실행이 필요하지 않습니다**." #: ../../annot.rst:190 7e388a9f2b75447d8394d6d36c4a1bf8 msgid "" "Return the :data:`xref` of an optional content object, or zero if there " "is none." -msgstr "" +msgstr "선택적 콘텐츠 객체의 :data:`xref` 를 반환하거나, 없으면 0을 반환합니다." #: ../../annot.rst:192 e8ec795f695645628c3efbfd3915cec6 msgid "zero or the xref of an OCG (or OCMD)." -msgstr "" +msgstr "0 또는 OCG(또는 OCMD)의 xref." #: ../../annot.rst:197 b2f92c06a6294be3bfd5ec01d0e09768 msgid "New in v1.19.3" -msgstr "" +msgstr "*v1.19.3의 새로운 기능*" #: ../../annot.rst:199 ad11cb50eb7b4800aec2e137d3accb71 msgid "Set annotation to be \"In Response To\" another one." -msgstr "" +msgstr "주석을 다른 주석에 대한 \"답변 대상\"으로 설정합니다." #: ../../annot.rst:201 7b8bf875b3bc4826aa14c687fb8cd5d0 msgid "" "The :data:`xref` of another annotation. .. note:: Must refer to an " "existing annotation on this page. Setting this property requires no " "subsequent `update()`." -msgstr "" +msgstr "다른 주석의 :data:`xref`. .. note:: 이 페이지의 기존 주석을 참조해야 합니다. 이 속성을 설정하는 데 후속 `update()` 가 필요하지 않습니다." #: ../../annot.rst:201 9e9d820407064710884e6a66aa7f7f55 msgid "The :data:`xref` of another annotation." -msgstr "" +msgstr "다른 주석의 :data:`xref`." #: ../../annot.rst:203 14f320a016824d5198f1d52227d0a926 msgid "" "Must refer to an existing annotation on this page. Setting this property " "requires no subsequent `update()`." -msgstr "" +msgstr "이 페이지의 기존 주석을 참조해야 합니다. 이 속성을 설정하는 데 후속 `update()` 가 필요하지 않습니다." #: ../../annot.rst:208 ../../annot.rst:217 ../../annot.rst:237 #: 481fa7ca48f54e5598a63178e50438ab a466079f958942378ec240211f031c16 #: f9ec8616d1df4181aa40e2958d601327 msgid "New in v1.18.4" -msgstr "" +msgstr "*v1.18.4의 새로운 기능*" #: ../../annot.rst:210 67cc9664fad84f49a83ba297112ca110 msgid "" "Set the annotation's Popup annotation to open or closed -- **or** the " "annotation itself, if its type is 'Text' (\"sticky note\")." -msgstr "" +msgstr "주석의 Popup 주석을 열거나 닫도록 설정합니다 -- **또는** 타입이 'Text'(\"sticky note\")인 경우 주석 자체를 설정합니다." #: ../../annot.rst:212 1504f1da1fda45fea8f19f45ffc20d4f msgid "the desired open state." -msgstr "" +msgstr "원하는 열림 상태." #: ../../annot.rst:219 c089225b48284823a9b7556a44262d27 msgid "" "Create a Popup annotation for the annotation and specify its rectangle. " "If the Popup already exists, only its rectangle is updated." -msgstr "" +msgstr "주석에 대한 Popup 주석을 생성하고 사각형을 지정합니다. Popup이 이미 존재하면 사각형만 업데이트됩니다." #: ../../annot.rst:221 c34e5022b5454828b58718e9dcbc45fe msgid "the desired rectangle." -msgstr "" +msgstr "원하는 사각형." #: ../../annot.rst:227 facb954df51640a7ae7fd3710883dc98 msgid "" "Set the annotation's transparency. Opacity can also be set in " ":meth:`Annot.update`." -msgstr "" +msgstr "주석의 투명도를 설정합니다. 불투명도는 :meth:`Annot.update` 에서도 설정할 수 있습니다." #: ../../annot.rst:229 d7989596080e46c987557189dc9c25ff msgid "" "a float in range *[0, 1]*. Any value outside is assumed to be 1. E.g. a " "value of 0.5 sets the transparency to 50%." -msgstr "" +msgstr "*[0, 1]* 범위의 float. 범위 밖의 값은 1로 간주됩니다. 예를 들어 0.5 값은 투명도를 50%로 설정합니다." #: ../../annot.rst:231 8cd9cbde74a9498aa0f39f1aceeb59c0 msgid "Three overlapping 'Circle' annotations with each opacity set to 0.5:" -msgstr "" +msgstr "각 불투명도가 0.5로 설정된 세 개의 겹치는 'Circle' 주석:" #: ../../annot.rst:239 78ea45fdfd8c457285f97ad98ced56cb msgid "" "The annotation's blend mode. See :ref:`AdobeManual`, page 324 for " "explanations." -msgstr "" +msgstr "주석의 블렌드 모드. 설명은 :ref:`AdobeManual`, 324페이지를 참조하세요." #: ../../annot.rst:242 30d06915799b4a4d993a5b5fca1059fe msgid "the blend mode or ``None``." -msgstr "" +msgstr "블렌드 모드 또는 ``None``." #: ../../annot.rst:247 9dce9ac76ca040e1a31d5585a57839f6 msgid "New in v1.16.14" -msgstr "" +msgstr "*v1.16.14의 새로운 기능*" #: ../../annot.rst:249 dc743497d0c04f36b92127b326b52323 msgid "" "Set the annotation's blend mode. See :ref:`AdobeManual`, page 324 for " "explanations. The blend mode can also be set in :meth:`Annot.update`." -msgstr "" +msgstr "주석의 블렌드 모드를 설정합니다. 설명은 :ref:`AdobeManual`, 324페이지를 참조하세요. 블렌드 모드는 :meth:`Annot.update` 에서도 설정할 수 있습니다." #: ../../annot.rst:251 4cc8588ee3a54e0ea07306202519e692 msgid "" "set the blend mode. Use :meth:`Annot.update` to reflect this in the " "visual appearance. For predefined values see :ref:`BlendModes`. Use " "`PDF_BM_Normal` to **remove** a blend mode." -msgstr "" +msgstr "블렌드 모드를 설정합니다. 시각적 모양에 반영하려면 :meth:`Annot.update` 를 사용하세요. 미리 정의된 값은 :ref:`BlendModes` 를 참조하세요. 블렌드 모드를 **제거** 하려면 `PDF_BM_Normal` 을 사용하세요." #: ../../annot.rst:256 f91715c6f8dd45839dff56adcd90fe40 msgid "New in version 1.16.0" -msgstr "" +msgstr "*버전 1.16.0의 새로운 기능*" #: ../../annot.rst:258 63628e30584640f485f9216a26cc976e msgid "" @@ -805,11 +805,11 @@ msgid "" "'Text' annotations, this is the icon name, for 'Stamp' annotations the " "text in the stamp. The visual result (if any) depends on your PDF viewer." " See also :ref:`mupdficons`." -msgstr "" +msgstr "모든 주석 타입의 이름 필드를 변경합니다. 'FileAttachment' 및 'Text' 주석의 경우 이것은 아이콘 이름이고, 'Stamp' 주석의 경우 스탬프의 텍스트입니다. 시각적 결과(있는 경우)는 PDF 뷰어에 따라 다릅니다. :ref:`mupdficons` 도 참조하세요." #: ../../annot.rst:260 c9956808cf6344fe93a68e352c078f3b msgid "the new name." -msgstr "" +msgstr "새 이름." #: ../../annot.rst:262 77d72775e0d649e0aee5cd748dcf35c5 msgid "" @@ -823,7 +823,7 @@ msgid "" ":data:`fontsize` 20 must not exceed 190 points. So please make sure that " "the following inequality is true: `pymupdf.get_text_length(text, " "fontname=\"tibo\", fontsize=20) <= 190`." -msgstr "" +msgstr "'Stamp' 주석의 이름을 설정하면 사각형이 **변경되지 않으며**, 텍스트도 어떤 방식으로도 레이아웃되지 않습니다. :ref:`StampIcons` 에서 표준 텍스트를 선택하는 경우(`\"STAMP_\"` 뒤의 **정확한** 이름 부분), 원래 레이아웃을 받아야 합니다. **임의의 텍스트**는 대문자로 변경되지 않지만, 그대로 \"Times-Bold\" 글꼴로 작성되며 **한 줄**에 가로로 중앙 정렬되고 맞추기 위해 단축됩니다. 텍스트가 완전히 표시되도록 하려면 :data:`fontsize` 20을 사용한 길이가 190포인트를 초과하지 않아야 합니다. 따라서 다음 부등식이 참인지 확인하세요: `pymupdf.get_text_length(text, fontname=\"tibo\", fontsize=20) <= 190`." #: ../../annot.rst:266 215783824e424078a9c68252ef072b76 msgid "" @@ -833,66 +833,66 @@ msgid "" "This method only affects certain annotation types [#f2]_ and will lead to" " a message on Python's `sys.stderr` in other cases. No exception will be " "raised, but `False` will be returned." -msgstr "" +msgstr "주석의 사각형을 변경합니다. 주석을 이동할 수 있고 사각형의 양쪽을 독립적으로 확장할 수 있습니다. 그러나 주석 모양은 회전, 뒤집기 또는 기울임이 되지 않습니다. 이 메서드는 특정 주석 타입 [#f2]_에만 영향을 미치며 다른 경우에는 Python의 `sys.stderr` 에 메시지가 표시됩니다. 예외는 발생하지 않지만 `False` 가 반환됩니다." #: ../../annot.rst:268 a55821d5ebaa43a79524ea735d7fce30 msgid "" "the new rectangle of the annotation (finite and not empty). E.g. using a " "value of *annot.rect + (5, 5, 5, 5)* will shift the annot position 5 " "pixels to the right and downwards." -msgstr "" +msgstr "주석의 새 사각형(유한하고 비어 있지 않음). 예를 들어 *annot.rect + (5, 5, 5, 5)* 값을 사용하면 주석 위치가 오른쪽과 아래로 5픽셀 이동합니다." #: ../../annot.rst:270 58ba9ae624c649f59c822a951c81b8d9 msgid "You **need not** invoke :meth:`Annot.update` for activation of the effect." -msgstr "" +msgstr "효과를 활성화하기 위해 :meth:`Annot.update` 를 **호출할 필요가 없습니다**." #: ../../annot.rst:275 4182447a9b644af7b8fdaadfb8a05d32 msgid "" "Set the rotation of an annotation. This rotates the annotation rectangle " "around its center point. Then a **new annotation rectangle** is " "calculated from the resulting quad." -msgstr "" +msgstr "주석의 회전을 설정합니다. 이것은 중심점을 중심으로 주석 사각형을 회전시킵니다. 그런 다음 결과 쿼드에서 **새 주석 사각형** 이 계산됩니다." #: ../../annot.rst:277 6fc24fed55494f8fb4a955d4d8a13eba msgid "" "rotation angle in degrees. Arbitrary values are possible, but will be " "clamped to the interval `[0, 360)`." -msgstr "" +msgstr "도 단위의 회전 각도. 임의의 값이 가능하지만 `[0, 360)` 구간으로 제한됩니다." #: ../../annot.rst:280 e4f887994fc5422f95d07305f9ce1cd5 msgid "You **must invoke** :meth:`Annot.update` to activate the effect." -msgstr "" +msgstr "효과를 활성화하려면 :meth:`Annot.update` 를 **호출해야 합니다**." #: ../../annot.rst:281 708375ceb35c401f93a653d662ffa946 msgid "" "For PDF_ANNOT_FREE_TEXT, only one of the values 0, 90, 180 and 270 is " "possible and will **rotate the text** inside the current rectangle (which" " remains unchanged). Other values are silently ignored and replaced by 0." -msgstr "" +msgstr "PDF_ANNOT_FREE_TEXT의 경우 0, 90, 180, 270 값 중 하나만 가능하며 현재 사각형 내에서 **텍스트를 회전** 시킵니다(사각형은 변경되지 않음). 다른 값은 조용히 무시되고 0으로 대체됩니다." #: ../../annot.rst:282 9916c3c0474d42789055dd9fb27df6d5 msgid "" "Otherwise, only the following :ref:`AnnotationTypes` can be rotated: " "'Square', 'Circle', 'Caret', 'Text', 'FileAttachment', 'Ink', 'Line', " "'Polyline', 'Polygon', and 'Stamp'. For all others the method is a no-op." -msgstr "" +msgstr "그렇지 않으면 다음 :ref:`AnnotationTypes` 만 회전할 수 있습니다: 'Square', 'Circle', 'Caret', 'Text', 'FileAttachment', 'Ink', 'Line', 'Polyline', 'Polygon', 'Stamp'. 다른 모든 경우 메서드는 작업을 수행하지 않습니다." #: ../../annot.rst:287 21f87eefce9f42cd84347e0b9f4c9750 msgid "" "Changed in version 1.16.9: Allow specification without using a " "dictionary. The direct parameters are used if *border* is not a " "dictionary." -msgstr "" +msgstr "버전 1.16.9에서 변경됨: 딕셔너리를 사용하지 않고 지정할 수 있습니다. *border* 가 딕셔너리가 아니면 직접 매개변수가 사용됩니다." #: ../../annot.rst:289 a5d1d0e5012145d88adb8f0b58ec843d msgid "Changed in version 1.22.5: Support of the \"cloudy\" border effect." -msgstr "" +msgstr "버전 1.22.5에서 변경됨: \"cloudy\" 테두리 효과 지원." #: ../../annot.rst:291 c189c32c136c4970affbad53b8a4962c msgid "" "PDF only: Change border width, dashing, style and cloud effect. See the " ":attr:`Annot.border` attribute for more details." -msgstr "" +msgstr "PDF 전용: 테두리 너비, 파선, 스타일 및 클라우드 효과를 변경합니다. 자세한 내용은 :attr:`Annot.border` 속성을 참조하세요." #: ../../annot.rst:294 cd430c709f2743de8acc763ed90aa387 msgid "" @@ -901,37 +901,37 @@ msgid "" "and *clouds* (*int*). Omitted keys will leave the resp. property " "unchanged. Set the border argument to `None` (the default) to use the " "other arguments." -msgstr "" +msgstr ":attr:`border` 속성에서 반환된 딕셔너리, 키는 *\"width\"* (*float*), *\"style\"* (*str*), *\"dashes\"* (*sequence*), *clouds* (*int*). 생략된 키는 해당 속성을 변경하지 않습니다. 다른 인수를 사용하려면 border 인수를 `None` (기본값)으로 설정하세요." #: ../../annot.rst:296 39acc9934225448197fcfd592c9d832f msgid "A non-negative value will change the border line width." -msgstr "" +msgstr "음수가 아닌 값은 테두리 선 너비를 변경합니다." #: ../../annot.rst:297 a68a775771684101adfaada1b555645a msgid "A value other than `None` will change this border property." -msgstr "" +msgstr "`None` 이 아닌 값은 이 테두리 속성을 변경합니다." #: ../../annot.rst:298 6abbfe1e60884753b2f408c6140c1522 msgid "" "All items of the sequence must be integers, otherwise the parameter is " "ignored. To remove dashing use: `dashes=[]`. If dashes is a non-empty " "sequence, \"style\" will automatically be set to \"D\" (dashed)." -msgstr "" +msgstr "시퀀스의 모든 항목은 정수여야 하며, 그렇지 않으면 매개변수가 무시됩니다. 파선을 제거하려면 `dashes=[]` 를 사용하세요. dashes가 비어 있지 않은 시퀀스인 경우 \"style\"이 자동으로 \"D\"(파선)로 설정됩니다." #: ../../annot.rst:299 a14bf775a9aa4b5690dfa5d75ad9a268 msgid "" "A value >= 0 will change this property. Use `clouds=0` to remove the " "cloudy appearance completely. Only annotation types 'Square', 'Circle', " "and 'Polygon' are supported with this property." -msgstr "" +msgstr ">= 0 값은 이 속성을 변경합니다. 클라우드 모양을 완전히 제거하려면 `clouds=0` 을 사용하세요. 이 속성은 주석 타입 'Square', 'Circle', 'Polygon'에서만 지원됩니다." #: ../../annot.rst:303 ef79e54d0a714869a014c9d730425b72 msgid "Changes the annotation flags. Use the `|` operator to combine several." -msgstr "" +msgstr "주석 플래그를 변경합니다. 여러 개를 결합하려면 `|` 연산자를 사용하세요." #: ../../annot.rst:305 fd0aa1fe5fa54354942159d69033f3dd msgid "an integer specifying the required flags." -msgstr "" +msgstr "필요한 플래그를 지정하는 정수." #: ../../annot.rst:309 6c045aa7fffe4727b0d500917f834af7 msgid "" @@ -939,7 +939,7 @@ msgid "" " -- not all annotation types accept both. **Do not use this method at all" " for FreeText annotations** because it has its special conventions to " "deal with up to three colors (border, fill, text)." -msgstr "" +msgstr "지원되는 주석 타입에 대한 \"stroke\" 및 \"fill\" 색상을 변경합니다 -- 모든 주석 타입이 둘 다 허용하는 것은 아닙니다. **FreeText 주석에는 이 메서드를 전혀 사용하지 마세요** 최대 3개의 색상(테두리, 채우기, 텍스트)을 처리하는 특별한 규칙이 있기 때문입니다." #: ../../annot.rst:311 db7de1cdaf074887b6a5856f6edce371 msgid "" @@ -947,50 +947,50 @@ msgid "" "keys and values see below. The most practical way should be to first make" " a copy of the *colors* property and then modify this dictionary as " "required." -msgstr "" +msgstr "색상 지정을 포함하는 딕셔너리. 허용되는 딕셔너리 키와 값은 아래를 참조하세요. 가장 실용적인 방법은 먼저 *colors* 속성의 복사본을 만든 다음 필요에 따라 이 딕셔너리를 수정하는 것입니다." #: ../../annot.rst:312 ../../annot.rst:313 75cff1ffb24c4912bfeb81a9ebd1432d #: ab1efc57d7bc48e98cf5e1bdb658a212 msgid "see above." -msgstr "" +msgstr "위를 참조하세요." #: ../../annot.rst:315 7c1a94d49e3646c1acf119c6dbd9d5d2 msgid "" "To completely remove a color specification, use an empty sequence like " "`[]`. If you specify `None`, an existing specification will not be " "changed." -msgstr "" +msgstr "색상 지정을 완전히 제거하려면 `[]` 와 같은 빈 시퀀스를 사용하세요. `None` 을 지정하면 기존 지정이 변경되지 않습니다." #: ../../annot.rst:320 2a6d90dee7ce4d77b26b92943743267a msgid "New in version 1.16.12" -msgstr "" +msgstr "*버전 1.16.12의 새로운 기능*" #: ../../annot.rst:322 595743ee33354f6db6ea8007f5c683d9 msgid "" "Delete annotations referring to this one. This includes any 'Popup' " "annotations and all annotations responding to it." -msgstr "" +msgstr "이 주석을 참조하는 주석을 삭제합니다. 여기에는 모든 'Popup' 주석과 이에 응답하는 모든 주석이 포함됩니다." #: ../../annot.rst:336 3dd084b1ebf84cde9a0f1628888a078a msgid "" "Synchronize the appearance of an annotation with its properties after " "relevant changes." -msgstr "" +msgstr "관련 변경 후 주석의 모양을 속성과 동기화합니다." #: ../../annot.rst:338 7fe415cd7d454f189581594f76164856 msgid "You can safely **omit** this method **only** for the following changes:" -msgstr "" +msgstr "다음 변경 사항에 대해서만 이 메서드를 안전하게 **생략** 할 수 있습니다:" #: ../../annot.rst:344 fe15053758b14d7199c023e93f5fb1b5 msgid ":meth:`Annot.set_info` (except any changes to *\"content\"*)" -msgstr "" +msgstr ":meth:`Annot.set_info` (*\"content\"* 에 대한 변경 제외)" #: ../../annot.rst:346 0073d1e84f5d4733b0ed896ad1863ecc msgid "" "All arguments are optional. *(Changed in v1.16.14)* Blend mode and " "opacity are applicable to **all annotation types**. The other arguments " "are mostly special use, as described below." -msgstr "" +msgstr "모든 인수는 선택 사항입니다. *(v1.16.14에서 변경됨)* 블렌드 모드와 불투명도는 **모든 주석 타입** 에 적용됩니다. 다른 인수는 아래에 설명된 대로 대부분 특수 용도입니다." #: ../../annot.rst:348 f2ba4ab0eec14256874f4795f0809515 msgid "" @@ -998,23 +998,23 @@ msgid "" "sequences of floats ranging from 0.0 to 1.0 (including both). The " "sequence length must be 1, 3 or 4 (supporting GRAY, RGB and CMYK " "colorspaces respectively). For GRAY, just a float is also acceptable." -msgstr "" +msgstr "색상 지정은 PyMuPDF에서 사용하는 일반 형식으로 0.0부터 1.0까지(둘 다 포함)의 float 시퀀스로 만들 수 있습니다. 시퀀스 길이는 1, 3 또는 4여야 합니다(각각 GRAY, RGB 및 CMYK 색상 공간 지원). GRAY의 경우 단일 float도 허용됩니다." #: ../../annot.rst:350 f3ccad414cfa4feea70d7d6d4ee37f20 msgid "" "*(new in v1.16.14)* **valid for all annotation types:** change or set the" " annotation's transparency. Valid values are *0 <= opacity < 1*." -msgstr "" +msgstr "*(v1.16.14의 새로운 기능)* **모든 주석 타입에 유효:** 주석의 투명도를 변경하거나 설정합니다. 유효한 값은 *0 <= opacity < 1* 입니다." #: ../../annot.rst:352 04465250dcde4c4c860e257ac3e888cc msgid "" "*(new in v1.16.14)* **valid for all annotation types:** change or set the" " annotation's blend mode. For valid values see :ref:`BlendModes`." -msgstr "" +msgstr "*(v1.16.14의 새로운 기능)* **모든 주석 타입에 유효:** 주석의 블렌드 모드를 변경하거나 설정합니다. 유효한 값은 :ref:`BlendModes` 를 참조하세요." #: ../../annot.rst:354 9bc27aa105ae42cd82a2451d40ee6e6e msgid "change :data:`fontsize` of the text. 'FreeText' annotations only." -msgstr "" +msgstr "텍스트의 :data:`fontsize` 변경. 'FreeText' 주석만 해당." #: ../../annot.rst:356 cf2b46ce81194d3889beefcdf7c9b7bc msgid "" @@ -1022,24 +1022,24 @@ msgid "" "effect as ``border_color``. Note that the text color of rich-text " "annotations cannot be changed at all because it is set by HTML / CSS " "syntax and part of the text itself." -msgstr "" +msgstr "텍스트 색상 변경. 'FreeText' 주석만 해당. 이것은 ``border_color`` 와 동일한 효과를 가집니다. 리치 텍스트 주석의 텍스트 색상은 HTML / CSS 구문에 의해 설정되고 텍스트 자체의 일부이기 때문에 전혀 변경할 수 없습니다." #: ../../annot.rst:358 9573860e39914131a2e6b21985df1d0a msgid "" "change the border color. 'FreeText' annotations only. This has the same " "effect as ``text_color``." -msgstr "" +msgstr "테두리 색상 변경. 'FreeText' 주석만 해당. 이것은 ``text_color`` 와 동일한 효과를 가집니다." #: ../../annot.rst:360 f201d820422e410380867aef925e12c6 msgid "the fill color." -msgstr "" +msgstr "채우기 색상." #: ../../annot.rst:362 51b7ae492b9d439ea63ad6e688461680 msgid "" "*(new in v1.17.2)* add two diagonal lines to the annotation rectangle. " "'Redact' annotations only. If not desired, ``False`` must be specified " "even if the annotation was created with ``False``." -msgstr "" +msgstr "*(v1.17.2의 새로운 기능)* 주석 사각형에 두 개의 대각선을 추가합니다. 'Redact' 주석만 해당. 원하지 않는 경우 주석이 ``False`` 로 생성되었더라도 ``False`` 를 지정해야 합니다." #: ../../annot.rst:364 ca681b7d888b4269b353a917a0251fcc msgid "" @@ -1047,7 +1047,7 @@ msgid "" " several other annotation types (see :meth:`Annot.set_rotation`), [#f1]_." " Only choose 0, 90, 180, or 270 degrees for 'FreeText'. Otherwise any " "integer is acceptable." -msgstr "" +msgstr "새 회전 값. 기본값(-1)은 변경 없음을 의미합니다. 'FreeText' 및 여러 다른 주석 타입을 지원합니다(:meth:`Annot.set_rotation` 참조), [#f1]_. 'FreeText'의 경우 0, 90, 180 또는 270도만 선택하세요. 그렇지 않으면 모든 정수가 허용됩니다." #: ../../annot.rst:368 60ab5d4e01554e09aa2155cfcf1bd6a4 msgid "" @@ -1056,7 +1056,7 @@ msgid "" " be aware that for rich-text annotations, the text color is never " "changed. The text color is set by the ``text_color`` entry of the " "``info`` dictionary. This is a limitation of |MuPDF| and not a bug." -msgstr "" +msgstr "이 메서드는 FreeText 주석의 색상을 변경하는 유일한 방법입니다. 이 목적을 위해 :meth:`Annot.set_colors` 를 사용할 수 없습니다. 그러나 리치 텍스트 주석의 경우 텍스트 색상은 절대 변경되지 않습니다. 텍스트 색상은 ``info`` 딕셔너리의 ``text_color`` 항목에 의해 설정됩니다. 이것은 |MuPDF| 의 제한 사항이며 버그가 아닙니다." #: ../../annot.rst:370 1112033b5d6844729cb062a449ec85b1 msgid "" @@ -1064,62 +1064,62 @@ msgid "" "recommended!** This is because most annotation updates require the owning" " page to be reloaded -- which cannot be done inside this loop. Please use" " the example coding pattern given in the documentation of this generator." -msgstr "" +msgstr ":meth:`Page.annots` 루프 내에서 이 메서드를 사용하는 것은 **권장되지 않습니다!** 대부분의 주석 업데이트는 소유 페이지를 다시 로드해야 하기 때문입니다 -- 이 루프 내에서는 수행할 수 없습니다. 이 생성자의 문서에 제공된 예제 코딩 패턴을 사용하세요." #: ../../annot.rst:375 4a926753fff744ec9116dd6ed7183650 msgid "Basic information of the annot's attached file." -msgstr "" +msgstr "주석의 첨부 파일에 대한 기본 정보." #: ../../annot.rst:378 dff1e3b1a640429fb53eddd0fa92ce69 msgid "" "a dictionary with keys *filename*, *ufilename*, *desc* (description), " "*size* (uncompressed file size), *length* (compressed length) for " "FileAttachment annot types, else ``None``." -msgstr "" +msgstr "FileAttachment 주석 타입의 경우 *filename*, *ufilename*, *desc*(설명), *size*(압축되지 않은 파일 크기), *length*(압축된 길이) 키를 가진 딕셔너리, 그렇지 않으면 ``None``." #: ../../annot.rst:382 fff1e94235db41658c4a47630907af7b msgid "Returns attached file content." -msgstr "" +msgstr "첨부 파일 내용을 반환합니다." #: ../../annot.rst:385 e7858d0b8f274619a0e53226e2ad2558 msgid "the content of the attached file." -msgstr "" +msgstr "첨부 파일의 내용." #: ../../annot.rst:395 0a6f0f824993411db432fbc73cedbf48 msgid "" "Updates the content of an attached file. All arguments are optional. No " "arguments lead to a no-op." -msgstr "" +msgstr "첨부 파일의 내용을 업데이트합니다. 모든 인수는 선택 사항입니다. 인수가 없으면 작업이 수행되지 않습니다." #: ../../annot.rst:397 14cfd5ce68c443c4b5706490bf7ce62c msgid "" "the new file content. Omit to only change meta-information. *(Changed in" " version 1.14.13)* *io.BytesIO* is now also supported." -msgstr "" +msgstr "새 파일 내용. 메타 정보만 변경하려면 생략하세요. *(버전 1.14.13에서 변경됨)* *io.BytesIO* 도 이제 지원됩니다." #: ../../annot.rst:397 13e705e69a1d425184d4be574725693d msgid "the new file content. Omit to only change meta-information." -msgstr "" +msgstr "새 파일 내용. 메타 정보만 변경하려면 생략하세요." #: ../../annot.rst:399 a1e92b5db60e4c4599063b1893fd8eed msgid "*(Changed in version 1.14.13)* *io.BytesIO* is now also supported." -msgstr "" +msgstr "*(버전 1.14.13에서 변경됨)* *io.BytesIO* 도 이제 지원됩니다." #: ../../annot.rst:401 16d4a6c7354947dc9ed4a1af1e661951 msgid "new filename to associate with the file." -msgstr "" +msgstr "파일과 연결할 새 파일 이름." #: ../../annot.rst:403 f71c9be54bb649adbc2100b1cf7793e5 msgid "new unicode filename to associate with the file." -msgstr "" +msgstr "파일과 연결할 새 유니코드 파일 이름." #: ../../annot.rst:405 70d2cec5d76d4b4ca6ac53eb58acf503 msgid "new description of the file content." -msgstr "" +msgstr "파일 내용에 대한 새 설명." #: ../../annot.rst:409 dfdaec12a2274c30a1f374a77b655ee8 msgid "Return the embedded sound of an audio annotation." -msgstr "" +msgstr "오디오 주석의 포함된 사운드를 반환합니다." #: ../../annot.rst:412 c7fa04ae49d54d39a39b5d2245c490f0 msgid "" @@ -1135,81 +1135,81 @@ msgid "" "compression (str, opt.) name of compression filter stream (bytes, " "requ.) the sound file content =========== " "=======================================================" -msgstr "" +msgstr "사운드 오디오 파일 및 관련 속성. 가능한 딕셔너리 키는 다음과 같으며, \"rate\"와 \"stream\"만 항상 존재합니다. =========== ======================================================= 키 설명 =========== ======================================================= rate (float, 필수) 초당 샘플 수 channels (int, 선택) 사운드 채널 수 bps (int, 선택) 채널당 샘플 값당 비트 수 encoding (str, 선택) 인코딩 형식: Raw, Signed, muLaw, ALaw compression (str, 선택) 압축 필터 이름 stream (bytes, 필수) 사운드 파일 내용 =========== ========================================================" #: ../../annot.rst:412 df0e243fcf034592a8492436e6e1659a msgid "" "the sound audio file and accompanying properties. These are the possible " "dictionary keys, of which only \"rate\" and \"stream\" are always " "present." -msgstr "" +msgstr "사운드 오디오 파일 및 관련 속성. 가능한 딕셔너리 키는 다음과 같으며, \"rate\"와 \"stream\"만 항상 존재합니다." #: ../../annot.rst:415 12be1c52c4314285af838a6ce29fba9e msgid "Key" -msgstr "" +msgstr "키" #: ../../annot.rst:415 2bdf4ba35cce4815a2a492cf817897c8 msgid "Description" -msgstr "" +msgstr "설명" #: ../../annot.rst:417 0d66d09f790c4ff3bc6c27ba0d9b632a msgid "rate" -msgstr "" +msgstr "rate" #: ../../annot.rst:417 c1045c0883214be39172475f75e7f5d0 msgid "(float, requ.) samples per second" -msgstr "" +msgstr "(float, 필수) 초당 샘플 수" #: ../../annot.rst:418 8abdaaa9d7fe44dfa74cc67416d30c2b msgid "channels" -msgstr "" +msgstr "channels" #: ../../annot.rst:418 f74b4b35e92846e28327d70e75e25b02 msgid "(int, opt.) number of sound channels" -msgstr "" +msgstr "(int, 선택) 사운드 채널 수" #: ../../annot.rst:419 942b2b733eed481b9491bc82bc570e1c msgid "bps" -msgstr "" +msgstr "bps" #: ../../annot.rst:419 7be514225767447a8a8095e8df1f2bc4 msgid "(int, opt.) bits per sample value per channel" -msgstr "" +msgstr "(int, 선택) 채널당 샘플 값당 비트 수" #: ../../annot.rst:420 b38f02b791694df2ae7e91f5e18e4b63 msgid "encoding" -msgstr "" +msgstr "encoding" #: ../../annot.rst:420 73e6b25cf0da41518e6a2a8c8342f9b9 msgid "(str, opt.) encoding format: Raw, Signed, muLaw, ALaw" -msgstr "" +msgstr "(str, 선택) 인코딩 형식: Raw, Signed, muLaw, ALaw" #: ../../annot.rst:421 1969b7bd898244968ec9e8b0ccb1bde7 msgid "compression" -msgstr "" +msgstr "compression" #: ../../annot.rst:421 a89ee4a1e5ae438bb9abdf27689f1840 msgid "(str, opt.) name of compression filter" -msgstr "" +msgstr "(str, 선택) 압축 필터 이름" #: ../../annot.rst:422 8ae646c528504b2c930d6aeefa18e74b msgid "stream" -msgstr "" +msgstr "stream" #: ../../annot.rst:422 379f471934fe4d5fab7732b175a2bce2 msgid "(bytes, requ.) the sound file content" -msgstr "" +msgstr "(bytes, 필수) 사운드 파일 내용" #: ../../annot.rst:428 04846fc70fde4de09324de235eedf132 msgid "" "The annotation's transparency. If set, it is a value in range *[0, 1]*. " "The PDF default is 1. However, in an effort to tell the difference, we " "return *-1.0* if not set." -msgstr "" +msgstr "주석의 투명도. 설정된 경우 *[0, 1]* 범위의 값입니다. PDF 기본값은 1입니다. 그러나 차이를 구분하기 위해 설정되지 않은 경우 *-1.0* 을 반환합니다." #: ../../annot.rst:434 38341cb4267e49eea899f48c336adc57 msgid "The owning page object of the annotation." -msgstr "" +msgstr "주석의 소유 페이지 객체." #: ../../annot.rst:436 b69e2ef1768c4682aeceb59e231073e6 msgid ":ref:`Page`" @@ -1217,18 +1217,18 @@ msgstr "" #: ../../annot.rst:440 d8c838f369404f76b51db3fa29590aaf msgid "The annot rotation." -msgstr "" +msgstr "주석 회전." #: ../../annot.rst:443 0e4000b23bd0487692990ba93841e11b msgid "" "a value [-1, 359]. If rotation is not at all, -1 is returned (and implies" " a rotation angle of 0). Other possible values are normalized to some " "value value 0 <= angle < 360." -msgstr "" +msgstr "[-1, 359] 값. 회전이 전혀 없는 경우 -1이 반환됩니다(회전 각도 0을 의미). 다른 가능한 값은 0 <= angle < 360 값으로 정규화됩니다." #: ../../annot.rst:447 675380b4c5e64bf7bff950dcc720a751 msgid "The rectangle containing the annotation." -msgstr "" +msgstr "주석을 포함하는 사각형." #: ../../annot.rst:449 ../../annot.rst:549 aebdf20a1fda46b7abc7b4c3e0493882 #: ec14799005724be998a1275792677a12 @@ -1237,7 +1237,7 @@ msgstr "" #: ../../annot.rst:453 c70b9c19d6d84a359b2b1a7396054162 msgid "The next annotation on this page or None." -msgstr "" +msgstr "이 페이지의 다음 주석 또는 None." #: ../../annot.rst:455 e2f9dcc59c714b54a43f67ec7b62cff8 msgid "*Annot*" @@ -1249,58 +1249,58 @@ msgid "" "**[2, 'FreeText', 'FreeTextCallout']**. The second string entry is " "optional and may be empty. See the appendix :ref:`AnnotationTypes` for a " "list of possible values and their meanings." -msgstr "" +msgstr "주석 타입을 설명하는 숫자와 하나 또는 두 개의 문자열, 예: **[2, 'FreeText', 'FreeTextCallout']**. 두 번째 문자열 항목은 선택 사항이며 비어 있을 수 있습니다. 가능한 값과 의미 목록은 부록 :ref:`AnnotationTypes` 를 참조하세요." #: ../../annot.rst:465 814b528ad1594607875ed97510496fe2 msgid "" "A dictionary containing various information. All fields are optional " "strings. For information items not provided, an empty string is returned." -msgstr "" +msgstr "다양한 정보를 포함하는 딕셔너리. 모든 필드는 선택적 문자열입니다. 제공되지 않은 정보 항목의 경우 빈 문자열이 반환됩니다." #: ../../annot.rst:467 132313a5fcff4d5b98ca42e3a4bf5fda msgid "" "*name* -- e.g. for 'Stamp' annotations it will contain the stamp text " "like \"Sold\" or \"Experimental\", for other annot types you will see the" " name of the annot's icon here (\"PushPin\" for FileAttachment)." -msgstr "" +msgstr "*name* -- 예를 들어 'Stamp' 주석의 경우 \"Sold\" 또는 \"Experimental\"와 같은 스탬프 텍스트를 포함하고, 다른 주석 타입의 경우 여기에서 주석 아이콘의 이름을 볼 수 있습니다(FileAttachment의 경우 \"PushPin\")." #: ../../annot.rst:469 bc6c85b50da94924bc357226258bd3fc msgid "" "*content* -- a string containing the text for type *Text* and *FreeText* " "annotations. Commonly used for filling the text field of annotation pop-" "up windows." -msgstr "" +msgstr "*content* -- *Text* 및 *FreeText* 주석에 대한 텍스트를 포함하는 문자열. 주석 팝업 창의 텍스트 필드를 채우는 데 일반적으로 사용됩니다." #: ../../annot.rst:471 d7645d31cbb64e3cb699a731902ecb75 msgid "" "*title* -- a string containing the title of the annotation pop-up window." " By convention, this is used for the **annotation author**." -msgstr "" +msgstr "*title* -- 주석 팝업 창의 제목을 포함하는 문자열. 규칙에 따라 이것은 **주석 작성자** 에 사용됩니다." #: ../../annot.rst:473 ba6e837b12eb4a59b39297c6410293cb msgid "*creationDate* -- creation timestamp." -msgstr "" +msgstr "*creationDate* -- 생성 타임스탬프." #: ../../annot.rst:474 dea7337d10874b83bd25f6be18463264 msgid "*modDate* -- last modified timestamp." -msgstr "" +msgstr "*modDate* -- 마지막 수정 타임스탬프." #: ../../annot.rst:475 affe5f09ffd3424b9ff3466bd9fa10e4 msgid "*subject* -- subject." -msgstr "" +msgstr "*subject* -- 제목." #: ../../annot.rst:476 2839aeb340104f42b830df272fca2fb6 msgid "" "*id* -- *(new in version 1.16.10)* a unique identification of the " "annotation. This is taken from PDF key */NM*. Annotations added by " "PyMuPDF will have a unique name, which appears here." -msgstr "" +msgstr "*id* -- *(버전 1.16.10의 새로운 기능)* 주석의 고유 식별자. 이것은 PDF 키 */NM* 에서 가져옵니다. PyMuPDF로 추가된 주석은 여기에 나타나는 고유한 이름을 가집니다." #: ../../annot.rst:483 16616c415f6e46b7a3677cfdd3112ce3 msgid "" "An integer whose low order bits contain flags for how the annotation " "should be presented." -msgstr "" +msgstr "하위 비트에 주석을 표시하는 방법에 대한 플래그를 포함하는 정수." #: ../../annot.rst:489 8339de6110f3442eae85a3e339d2b60f msgid "" @@ -1308,41 +1308,41 @@ msgid "" "'FreeText', 'Line', 'PolyLine', and 'Polygon'. ``None`` if not " "applicable. For possible values and descriptions in this list, see the " ":ref:`AdobeManual`, table 1.76 on page 400." -msgstr "" +msgstr "'FreeText', 'Line', 'PolyLine', 'Polygon' 주석 타입의 시작 및 끝 심볼을 지정하는 정수 쌍. 적용되지 않는 경우 ``None``. 이 목록의 가능한 값과 설명은 :ref:`AdobeManual`, 400페이지의 표 1.76을 참조하세요." #: ../../annot.rst:495 8bf05b20e751463eae59e5c917d94466 msgid "" "A list containing a variable number of point (\"vertices\") coordinates " "(each given by a pair of floats) for various types of annotations:" -msgstr "" +msgstr "다양한 타입의 주석에 대한 가변 개수의 포인트(\"vertices\") 좌표(각각 float 쌍으로 제공)를 포함하는 목록:" #: ../../annot.rst:497 8912d31ff3344e5e8152219991bcb863 msgid "'Line' -- the starting and ending coordinates (2 float pairs)." -msgstr "" +msgstr "'Line' -- 시작 및 종료 좌표(2개의 float 쌍)." #: ../../annot.rst:498 a5b0fa3b850f4856bd236c668f63f1eb msgid "" "'FreeText' -- 2 or 3 float pairs designating the starting, the (optional)" " knee point, and the ending coordinates." -msgstr "" +msgstr "'FreeText' -- 시작, (선택적) 무릎 포인트, 종료 좌표를 지정하는 2개 또는 3개의 float 쌍." #: ../../annot.rst:499 b0ee60812ba343fea5fc2d15019955f2 msgid "" "'PolyLine' / 'Polygon' -- the coordinates of the edges connected by line " "pieces (n float pairs for n points)." -msgstr "" +msgstr "'PolyLine' / 'Polygon' -- 라인 조각으로 연결된 가장자리의 좌표(n개 포인트에 대해 n개의 float 쌍)." #: ../../annot.rst:500 8fbc31fb944e4da2868503b7613244d0 msgid "" "text markup annotations -- 4 float pairs specifying the *QuadPoints* of " "the marked text span (see :ref:`AdobeManual`, page 403)." -msgstr "" +msgstr "텍스트 마크업 주석 -- 표시된 텍스트 스팬의 *QuadPoints* 를 지정하는 4개의 float 쌍(:ref:`AdobeManual`, 403페이지 참조)." #: ../../annot.rst:501 09ceddfd7c4642e187b77e4fe278f331 msgid "" "'Ink' -- list of one to many sublists of vertex coordinates. Each such " "sublist represents a separate line in the drawing." -msgstr "" +msgstr "'Ink' -- 하나에서 많은 개수의 정점 좌표 하위 목록 목록. 각 하위 목록은 그리기의 별도 라인을 나타냅니다." #: ../../annot.rst:508 e363318aa7cb46ff97b34487bc567275 msgid "" @@ -1354,52 +1354,52 @@ msgid "" "determine the colorspaces used: 1 = GRAY, 3 = RGB, 4 = CMYK. So \"[1.0, " "0.0, 0.0]\" stands for RGB color red. Both lists can be empty if no color" " is specified. Be aware about some potentially unexpected cases:" -msgstr "" +msgstr "*0 <= float <= 1* 범위의 float 두 목록으로 \"stroke\" 및 내부(\"fill\") 색상을 지정하는 딕셔너리. 스트로크 색상은 테두리와 활성적으로 그려지거나 작성된 모든 것(\"stroked\")에 사용됩니다. 채우기 색상은 라인 끝, 원 및 사각형과 같은 객체의 내부에 사용됩니다. 이러한 목록의 길이는 암묵적으로 사용되는 색상 공간을 결정합니다: 1 = GRAY, 3 = RGB, 4 = CMYK. 따라서 \"[1.0, 0.0, 0.0]\"은 RGB 색상 빨강을 나타냅니다. 색상이 지정되지 않은 경우 두 목록 모두 비어 있을 수 있습니다. 잠재적으로 예상치 못한 경우에 유의하세요:" #: ../../annot.rst:510 c98f3742209a4834b74c3d4385888358 msgid "" "The color of Highlight annotations is a **stroke** color, contrary to " "intuition." -msgstr "" +msgstr "Highlight 주석의 색상은 직관과 반대로 **stroke** 색상입니다." #: ../../annot.rst:511 2d1b77af92f94df2901498dee3ecf512 msgid "" "The color if FreeText annotations is a **stroke** color, but appears as " "the color that fills the rectangle and any applicable line end symbols. " "Text color and border color cannot be accessed at all." -msgstr "" +msgstr "FreeText 주석의 색상은 **stroke** 색상이지만, 사각형과 모든 적용 가능한 라인 끝 심볼을 채우는 색상으로 나타납니다. 텍스트 색상과 테두리 색상은 전혀 액세스할 수 없습니다." #: ../../annot.rst:517 5673a83fdd3046e1a25a02e890bf9503 msgid "The PDF :data:`xref`." -msgstr "" +msgstr "PDF :data:`xref`." #: ../../annot.rst:523 80d30458b0ae4d81a75fccb23e4560df msgid "" "The PDF :data:`xref` of an annotation to which this one responds. Return " "zero if this is no response annotation." -msgstr "" +msgstr "이 주석이 응답하는 주석의 PDF :data:`xref`. 응답 주석이 아니면 0을 반환합니다." #: ../../annot.rst:529 adc968b773a6471aba76a7111c2340a5 msgid "" "The PDF :data:`xref` of the associated Popup annotation. Zero if non-" "existent." -msgstr "" +msgstr "연결된 Popup 주석의 PDF :data:`xref`. 존재하지 않으면 0." #: ../../annot.rst:535 87e7894e6b484ea3b6e9b676e28d88b3 msgid "Whether the annotation has a Popup annotation." -msgstr "" +msgstr "주석에 Popup 주석이 있는지 여부." #: ../../annot.rst:541 a5edaf80b163482b844afac753dce499 msgid "" "Whether the annotation's Popup is open -- **or** the annotation itself " "('Text' annotations only)." -msgstr "" +msgstr "주석의 Popup이 열려 있는지 여부 -- **또는** 주석 자체('Text' 주석만 해당)." #: ../../annot.rst:547 600f5a64e8a4400da0c1ae35c135efd1 msgid "" "The rectangle of the associated Popup annotation. Infinite rectangle if " "non-existent." -msgstr "" +msgstr "연결된 Popup 주석의 사각형. 존재하지 않으면 무한 사각형." #: ../../annot.rst:553 9fd4e2374ea64a4f895272c2450db57b msgid "" @@ -1412,19 +1412,19 @@ msgid "" "the annotation has a \"cloudy\" border, you will see the breadth of the " "cloud semi-circles here. In general, the numbers need not be identical. " "To compute the inner rectangle do `a.rect + a.rect_delta`." -msgstr "" +msgstr "주석의 `/RD` 항목을 나타내는 4개의 float 튜플. 네 숫자는 두 사각형(주석의 :attr:`rect` 와 그 사각형 내에 포함된 사각형) 사이의 수치 차이(왼쪽, 위쪽, -오른쪽, -아래쪽)를 설명합니다. 항목이 없으면 이 속성은 `(0, 0, 0, 0)` 입니다. 주석 테두리가 일반적인 직선인 경우, 이러한 숫자는 일반적으로 테두리 너비를 2로 나눈 값입니다. 주석에 \"cloudy\" 테두리가 있으면 여기에서 클라우드 반원의 폭을 볼 수 있습니다. 일반적으로 숫자가 동일할 필요는 없습니다. 내부 사각형을 계산하려면 `a.rect + a.rect_delta` 를 수행하세요." #: ../../annot.rst:557 76373f31dcbe446392d079eb34532b34 msgid "" "A dictionary containing border characteristics. Empty if no border " "information exists. The following keys may be present:" -msgstr "" +msgstr "테두리 특성을 포함하는 딕셔너리. 테두리 정보가 없으면 비어 있습니다. 다음 키가 있을 수 있습니다:" #: ../../annot.rst:559 2a2fab2fdf524b6184a1f5b62304135a msgid "" "*width* -- a float indicating the border thickness in points. The value " "is -1.0 if no width is specified." -msgstr "" +msgstr "*width* -- 포인트 단위의 테두리 두께를 나타내는 float. 너비가 지정되지 않으면 값은 -1.0입니다." #: ../../annot.rst:561 ee7176832c7e4740b78bb806706a9d04 msgid "" @@ -1432,7 +1432,7 @@ msgid "" "*[]* means no dashes, *[n]* means equal on-off lengths of *n* points, " "longer lists will be interpreted as specifying alternating on-off length " "values. See the :ref:`AdobeManual` page 126 for more details." -msgstr "" +msgstr "*dashes* -- 라인 파선 패턴을 지정하는 정수 시퀀스. *[]* 는 파선 없음을 의미하고, *[n]* 는 *n* 포인트의 동일한 on-off 길이를 의미하며, 더 긴 목록은 교대 on-off 길이 값을 지정하는 것으로 해석됩니다. 자세한 내용은 :ref:`AdobeManual` 126페이지를 참조하세요." #: ../../annot.rst:563 994ba35808ba4456b6568752b410a28e msgid "" @@ -1444,7 +1444,7 @@ msgid "" "engraved rectangle that appears to be recessed below the surface of the " "page, **\"U\"** (Underline) = a single line along the bottom of the " "annotation rectangle." -msgstr "" +msgstr "*style* -- 1바이트 테두리 스타일: **\"S\"** (Solid) = 주석을 둘러싸는 실선, **\"D\"** (Dashed) = 주석을 둘러싸는 파선, 파선 패턴은 *dashes* 항목으로 지정됨, **\"B\"** (Beveled) = 페이지 표면 위에 올라간 것처럼 보이는 시뮬레이션된 볼록 사각형, **\"I\"** (Inset) = 페이지 표면 아래로 움푹 들어간 것처럼 보이는 시뮬레이션된 조각 사각형, **\"U\"** (Underline) = 주석 사각형의 하단을 따른 단일 라인." #: ../../annot.rst:565 7700bc48fde44a268bcd7c4a8afa5304 msgid "" @@ -1452,11 +1452,11 @@ msgid "" "integer `-1 <= n <= 2`. A value `n = 0` indicates a straight line (no " "clouds), 1 means small and 2 means large semi-circles, mimicking the " "cloudy appearance. If -1, then no specification is present." -msgstr "" +msgstr "*clouds* -- \"cloudy\" 테두리를 나타내는 정수, 여기서 ``n`` 은 정수 `-1 <= n <= 2`. 값 `n = 0` 은 직선(클라우드 없음)을 나타내고, 1은 작은 반원을, 2는 큰 반원을 의미하여 클라우드 모양을 모방합니다. -1이면 지정이 없습니다." #: ../../annot.rst:573 332ac742d76d48529ceb6b4e40f7295a msgid "Annotation Icons in MuPDF" -msgstr "" +msgstr "MuPDF의 주석 아이콘" #: ../../annot.rst:574 21859a0e63974afa950419ab98ff55e6 msgid "" @@ -1466,23 +1466,23 @@ msgid "" "It is left to your discretion which item to choose when -- no mechanism " "will keep you from using e.g. the \"Speaker\" icon for a " "'FileAttachment'." -msgstr "" +msgstr "이것은 'Text' 및 'FileAttachment' 주석 타입에 대해 이름으로 참조할 수 있는 아이콘 목록입니다. 주석을 추가할 때 *icon* 매개변수를 통해 사용하거나 :meth:`Annot.set_name` 의 인수로 사용할 수 있습니다. 어떤 항목을 선택할지는 사용자의 재량에 맡겨집니다 -- 예를 들어 'FileAttachment'에 \"Speaker\" 아이콘을 사용하는 것을 막는 메커니즘은 없습니다." #: ../../annot.rst:580 cb12c1793cdb4341b24fbf6538c60d1c msgid "Example" -msgstr "" +msgstr "예제" #: ../../annot.rst:581 a2296e47889a4fec983f5aa41e485291 msgid "" "Change the graphical image of an annotation. Also update the \"author\" " "and the text to be shown in the popup window::" -msgstr "" +msgstr "주석의 그래픽 이미지를 변경합니다. 또한 팝업 창에 표시될 \"author\" 및 텍스트를 업데이트합니다::" #: ../../annot.rst:604 7bff751c7d604fe38047b43fdeb95933 msgid "" "This is how the circle annotation looks like before and after the change " "(pop-up windows displayed using Nitro PDF viewer):" -msgstr "" +msgstr "변경 전후의 원 주석 모습입니다(Nitro PDF 뷰어를 사용하여 표시된 팝업 창):" #: ../../annot.rst:606 479b5bc5389b486e92aaf64c6226c673 msgid "|circle|" @@ -1491,11 +1491,11 @@ msgstr "" #: ../../annot.rst:608 031e9835b5ea4674bd3bcd678ae780a5 #: 8bea81da58c844a9abeb9a5253d1a9b6 msgid "circle" -msgstr "" +msgstr "circle" #: ../../annot.rst:612 a8717fc2c8cd4706b95166aae42c2f9b msgid "Footnotes" -msgstr "" +msgstr "각주" #: ../../annot.rst:613 6d03771b774345a5b005846ee4002288 msgid "" @@ -1503,16 +1503,16 @@ msgid "" "annotation was defined, the original rectangle is **cannot be " "reconstructed** by setting the rotation value to zero again and will be " "lost." -msgstr "" +msgstr "주석을 회전시키면 사각형도 변경됩니다. 주석이 정의된 방식에 따라 원래 사각형은 회전 값을 다시 0으로 설정해도 **재구성할 수 없으며** 손실됩니다." #: ../../annot.rst:615 c6c9d602fa054b6fac8c6ec2c52ad078 msgid "" "Only the following annotation types support method " ":meth:`Annot.set_rect`: Text, FreeText, Square, Circle, Redact, Stamp, " "Caret, FileAttachment, Sound, and Movie." -msgstr "" +msgstr "다음 주석 타입만 :meth:`Annot.set_rect` 메서드를 지원합니다: Text, FreeText, Square, Circle, Redact, Stamp, Caret, FileAttachment, Sound, Movie." #: ../../footer.rst:46 bc670bbcee16481398498b6cc9d3f828 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/app1.mo b/docs/locales/ko/LC_MESSAGES/app1.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..faa3b74a3cf01a72cc614dc077ad7480cf4fa4ce 100644 GIT binary patch literal 22474 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 to " "interpret this output." -msgstr "" +msgstr "이 출력을 해석하기 위해 `lxml `_ 를 성공적으로 테스트했습니다." #: ../../app1.rst:258 ../../app1.rst:340 a405be8a4b8c4148920284c0af5d2a21 #: def99570eabf40eb9a2296563cf87c89 msgid "XHTML" -msgstr "" +msgstr "XHTML" #: ../../app1.rst:259 f860ba05b7b84b0cbbd677dfb53ba52c msgid "" ":meth:`TextPage.extractXHTML` (or *Page.get_text(\"xhtml\")*) is a " "variation of TEXT but in HTML format, containing the bare text and images" " (\"semantic\" output)::" -msgstr "" +msgstr ":meth:`TextPage.extractXHTML` (또는 *Page.get_text(\"xhtml\")*) 는 TEXT의 변형이지만 HTML 형식이며, 일반 텍스트와 이미지를 포함합니다(\"의미론적\" 출력)::" #: ../../app1.rst:268 0f8064883834458ab08418752216e011 msgid "Text Extraction Flags Defaults" -msgstr "" +msgstr "텍스트 추출 플래그 기본값" #: ../../app1.rst:269 8ba849c311aa457d85362ff7f4f1819e msgid "" @@ -302,7 +302,7 @@ msgid "" "flags with a value other than ``None``, be aware that you must set **all " "desired** options. A description of the respective bit settings can be " "found in :ref:`TextPreserve`." -msgstr "" +msgstr "버전 1.16.2의 새로운 기능: 메서드 :meth:`Page.get_text` 는 추출된 데이터의 양과 품질을 제어하는 키워드 매개변수 *flags* *(int)* 를 지원합니다. 다음 표는 각 추출 변형에 대한 기본 설정(플래그 매개변수 생략 또는 None)을 보여줍니다. ``None`` 이 아닌 값으로 플래그를 지정하는 경우 **모든 원하는** 옵션을 설정해야 합니다. 각 비트 설정에 대한 설명은 :ref:`TextPreserve` 에서 찾을 수 있습니다." #: ../../app1.rst:271 d40d16d07939413e8c75c3dc13b1127c msgid "" @@ -313,75 +313,75 @@ msgid "" ":data:`TEXTFLAGS_HTML`, :data:`TEXTFLAGS_XHTML`, :data:`TEXTFLAGS_XML`, " "and :data:`TEXTFLAGS_SEARCH`. You can now easily modify a default flag, " "e.g." -msgstr "" +msgstr "v1.19.6의 새로운 기능: 다음 표의 기본 조합은 이제 Python 상수로 사용할 수 있습니다: :data:`TEXTFLAGS_TEXT`, :data:`TEXTFLAGS_WORDS`, :data:`TEXTFLAGS_BLOCKS`, :data:`TEXTFLAGS_DICT`, :data:`TEXTFLAGS_RAWDICT`, :data:`TEXTFLAGS_HTML`, :data:`TEXTFLAGS_XHTML`, :data:`TEXTFLAGS_XML`, 및 :data:`TEXTFLAGS_SEARCH`. 이제 기본 플래그를 쉽게 수정할 수 있습니다. 예를 들어:" #: ../../app1.rst:273 dc924700aa9b4042894cae14679d63f2 msgid "**include** images in a \"blocks\" output:" -msgstr "" +msgstr "\"blocks\" 출력에 이미지를 **포함**:" #: ../../app1.rst:275 3d7561abbff8475c825b8d983783bf39 msgid "`flags = TEXTFLAGS_BLOCKS | TEXT_PRESERVE_IMAGES`" -msgstr "" +msgstr "`flags = TEXTFLAGS_BLOCKS | TEXT_PRESERVE_IMAGES`" #: ../../app1.rst:277 4ca8d0166e4646bd80fcc1d69f340a95 msgid "**exclude** images from a \"dict\" output:" -msgstr "" +msgstr "\"dict\" 출력에서 이미지를 **제외**:" #: ../../app1.rst:279 1a2e1663435b4abaa1b188e5d6bd9338 msgid "`flags = TEXTFLAGS_DICT & ~TEXT_PRESERVE_IMAGES`" -msgstr "" +msgstr "`flags = TEXTFLAGS_DICT & ~TEXT_PRESERVE_IMAGES`" #: ../../app1.rst:281 d3769cd425ff4854b0e4292af9c3a0e1 msgid "set **dehyphenation off** in text searches:" -msgstr "" +msgstr "텍스트 검색에서 **하이픈 제거를 끔**:" #: ../../app1.rst:283 2365979a4e104875a8c468496909f03d msgid "`flags = TEXTFLAGS_SEARCH & ~TEXT_DEHYPHENATE`" -msgstr "" +msgstr "`flags = TEXTFLAGS_SEARCH & ~TEXT_DEHYPHENATE`" #: ../../app1.rst:287 6f7f786332d34c359591ddf8d17a374b msgid "Indicator" -msgstr "" +msgstr "표시기" #: ../../app1.rst:287 5f2792809a9645ccaa7c3103a8c35f60 msgid "text" -msgstr "" +msgstr "text" #: ../../app1.rst:287 9330883adb104a8b880b90565531cf78 msgid "html" -msgstr "" +msgstr "html" #: ../../app1.rst:287 ead5e0f63b1849fcad0e1d2b7e718887 msgid "xhtml" -msgstr "" +msgstr "xhtml" #: ../../app1.rst:287 6c6f9476a4614058833f45708bdc20be msgid "xml" -msgstr "" +msgstr "xml" #: ../../app1.rst:287 0248ca12579948d7a86695462a79fdcb msgid "dict" -msgstr "" +msgstr "dict" #: ../../app1.rst:287 e7d633c232874f17bede991cf837d6c3 msgid "rawdict" -msgstr "" +msgstr "rawdict" #: ../../app1.rst:287 7fa4130e9ccf41c4a89237b146f501ef msgid "words" -msgstr "" +msgstr "words" #: ../../app1.rst:287 34941a4200304d7492e796f779d70af9 msgid "blocks" -msgstr "" +msgstr "blocks" #: ../../app1.rst:287 29648526b349495e89efdba8501f7d58 msgid "search" -msgstr "" +msgstr "search" #: ../../app1.rst:289 a7ced22ad3514aee9d5860e7a63e2585 msgid "preserve ligatures" -msgstr "" +msgstr "합자 유지" #: ../../app1.rst:289 ../../app1.rst:290 ../../app1.rst:291 ../../app1.rst:293 #: ../../app1.rst:294 ../../app1.rst:295 0cb4cd763ef542608c195c6460b399dc @@ -424,52 +424,52 @@ msgstr "" #: ../../app1.rst:290 d4a8b0082348457c9b3a7f0c83dde31d msgid "preserve whitespace" -msgstr "" +msgstr "공백 유지" #: ../../app1.rst:291 7cff9f000b1f41abbca9effe3a08af35 msgid "preserve images" -msgstr "" +msgstr "이미지 유지" #: ../../app1.rst:291 2dbd9b27a6ad426cb7dcc9be3911020b #: c63946a2a43041a995ca0fbeb23153ef d209151eb3624d868e0ce8d60b9347b8 msgid "n/a" -msgstr "" +msgstr "해당 없음" #: ../../app1.rst:292 5a4bb22be2824af98d9db38f003324d8 msgid "inhibit spaces" -msgstr "" +msgstr "공백 억제" #: ../../app1.rst:293 cb5ae3cd443344048f5ddc1e916152df msgid "dehyphenate" -msgstr "" +msgstr "하이픈 제거" #: ../../app1.rst:294 ac1c83a387304202a50381f999e13a9b msgid "clip to mediabox" -msgstr "" +msgstr "미디어박스로 자르기" #: ../../app1.rst:295 0fec3cdc767c4ecc80645956dbdaa050 msgid "use CID instead of U+FFFD" -msgstr "" +msgstr "U+FFFD 대신 CID 사용" #: ../../app1.rst:298 3e0abf5ee8404c7c85743a6d0c348e5f msgid "**search** refers to the text search function." -msgstr "" +msgstr "**search** 는 텍스트 검색 함수를 나타냅니다." #: ../../app1.rst:299 2063c0aa9e6746fca18404258dea465f msgid "**\"json\"** is handled exactly like **\"dict\"** and is hence left out." -msgstr "" +msgstr "**\"json\"** 은 **\"dict\"** 와 정확히 동일하게 처리되므로 생략되었습니다." #: ../../app1.rst:300 4a5e41e47c864b39a729542c7bb2ae23 msgid "" "**\"rawjson\"** is handled exactly like **\"rawdict\"** and is hence left" " out." -msgstr "" +msgstr "**\"rawjson\"** 은 **\"rawdict\"** 와 정확히 동일하게 처리되므로 생략되었습니다." #: ../../app1.rst:301 5783eaf8a223417bbb6edf7595657706 msgid "" "An \"n/a\" specification means a value of 0 and setting this bit never " "has any effect on the output (but an adverse effect on performance)." -msgstr "" +msgstr "\"n/a\" 지정은 값이 0임을 의미하며 이 비트를 설정해도 출력에 영향을 주지 않습니다(하지만 성능에 부정적인 영향을 미칩니다)." #: ../../app1.rst:302 b5dddb0dc411425db6bc1a169ff2a8d4 msgid "" @@ -477,15 +477,15 @@ msgid "" "includes them by default, then by all means set the respective bit off: " "You will experience a better performance and much lower space " "requirements." -msgstr "" +msgstr "기본적으로 이미지를 포함하는 출력 변형을 사용할 때 이미지에 관심이 없다면, 반드시 해당 비트를 끄세요: 더 나은 성능과 훨씬 낮은 공간 요구 사항을 경험할 수 있습니다." #: ../../app1.rst:304 608cc56e35e24516bf555cbdb28b782e msgid "To show the effect of `TEXT_INHIBIT_SPACES` have a look at this example::" -msgstr "" +msgstr "`TEXT_INHIBIT_SPACES` 의 효과를 보려면 이 예제를 참조하세요::" #: ../../app1.rst:324 73de41a5c50b4025bbb2c6a93243d3b7 msgid "Performance" -msgstr "" +msgstr "성능" #: ../../app1.rst:325 008bf5834d9c43878d55c1f182c383ad msgid "" @@ -493,7 +493,7 @@ msgid "" "information they supply, and in terms of resource requirements and " "runtimes. Generally, more information of course means, that more " "processing is required and a higher data volume is generated." -msgstr "" +msgstr "텍스트 추출 메서드는 제공하는 정보와 리소스 요구 사항 및 실행 시간 측면에서 모두 크게 다릅니다. 일반적으로 더 많은 정보는 더 많은 처리가 필요하고 더 높은 데이터 볼륨이 생성됨을 의미합니다." #: ../../app1.rst:327 aa82ec64134a4f3bbbea8037e3f3835d #, python-format @@ -504,7 +504,7 @@ msgid "" "settings required 160 seconds across all extraction methods. When all " "images where excluded, less than 50% of that time (77 seconds) were " "needed." -msgstr "" +msgstr "특히 이미지는 **매우 큰** 영향을 미칩니다. 필요하지 않을 때는 반드시 제외하세요(*flags* 매개변수를 통해). 기본 플래그 설정으로 아래에 언급된 총 2,700페이지를 처리하는 데 모든 추출 메서드에서 160초가 필요했습니다. 모든 이미지가 제외되면 그 시간의 50% 미만(77초)이 필요했습니다." #: ../../app1.rst:329 74982287fc904cbe9d5f67869c717cff msgid "" @@ -513,119 +513,119 @@ msgid "" "not aware of a faster (free) tool. Even the most detailed method, " "RAWDICT, processes all 1'310 pages of the :ref:`AdobeManual` in less than" " 5 seconds (simple text needs less than 2 seconds here)." -msgstr "" +msgstr "우선, 모든 메서드는 시장의 다른 제품과 비교하여 **매우 빠릅니다**. 처리 속도 측면에서 더 빠른(무료) 도구는 알지 못합니다. 가장 상세한 메서드인 RAWDICT조차 :ref:`AdobeManual` 의 모든 1,310페이지를 5초 미만으로 처리합니다(여기서는 간단한 텍스트가 2초 미만이 필요합니다)." #: ../../app1.rst:331 83629ccfb7c9414089033b0147642f2e msgid "" "The following table shows average relative speeds (\"RSpeed\", baseline " "1.00 is TEXT), taken across ca. 1400 text-heavy and 1300 image-heavy " "pages." -msgstr "" +msgstr "다음 표는 약 1400페이지의 텍스트 중심 페이지와 1300페이지의 이미지 중심 페이지에서 가져온 평균 상대 속도(\"RSpeed\", 기준선 1.00은 TEXT)를 보여줍니다." #: ../../app1.rst:334 bc84a1d73aa545a3aca4437e5017ed0e msgid "Method" -msgstr "" +msgstr "메서드" #: ../../app1.rst:334 9368181159ab4fd6a75aae6bdaa5d189 msgid "RSpeed" -msgstr "" +msgstr "RSpeed" #: ../../app1.rst:334 7110ef6f2a7c4849a31df08c1bbf7f95 msgid "Comments" -msgstr "" +msgstr "설명" #: ../../app1.rst:334 e1c0047fd9194edba834839b48102df9 msgid "no images" -msgstr "" +msgstr "이미지 없음" #: ../../app1.rst:336 4b7a66b4248d47dc9f0ac0139eea5321 msgid "TEXT" -msgstr "" +msgstr "TEXT" #: ../../app1.rst:336 ../../app1.rst:337 ../../app1.rst:340 #: 25343a3526d44c7e9147a4b83482b458 5c3d7bcdd77648fea697a40e67bab8fc #: 6669d2767e5c49eeb1606eef0ef897e0 e55d755ae5ee4a62bd2e705a1b4974a4 #: f0dcc7f23fa74accb9461d0e6ad00b34 msgid "1.00" -msgstr "" +msgstr "1.00" #: ../../app1.rst:336 74b3bb1df5a74fe7965c9a036c43b0b6 msgid "no images, **plain** text, line breaks" -msgstr "" +msgstr "이미지 없음, **일반** 텍스트, 줄바꿈" #: ../../app1.rst:337 db8f0e8c5f874c7bbbc6d938ebde2e18 msgid "image bboxes (only), **block** level text with bboxes, line breaks" -msgstr "" +msgstr "이미지 bbox(만), **블록** 수준 텍스트와 bbox, 줄바꿈" #: ../../app1.rst:338 075075d180484d1e9a104abafa5c7123 #: 18d11064908b48228b89fe3c8c0d242c msgid "1.02" -msgstr "" +msgstr "1.02" #: ../../app1.rst:338 b3d7c61c84a84af98ad596efb0959503 msgid "no images, **word** level text with bboxes" -msgstr "" +msgstr "이미지 없음, **단어** 수준 텍스트와 bbox" #: ../../app1.rst:339 0c5c60a2ef4342038c3a2c60d07bd072 #: ab025008beb540c3af6517c25c3731c8 msgid "2.72" -msgstr "" +msgstr "2.72" #: ../../app1.rst:339 233b3e8abb32457bb01d804468cd86e2 msgid "no images, **char** level text, layout and font details" -msgstr "" +msgstr "이미지 없음, **문자** 수준 텍스트, 레이아웃 및 글꼴 세부 정보" #: ../../app1.rst:340 495e91c0090643cd9239576c13e8f216 msgid "3.32" -msgstr "" +msgstr "3.32" #: ../../app1.rst:340 b4c7e848e2814720ab1d9fbeb303c9f9 msgid "**base64** images, **span** level text, no layout info" -msgstr "" +msgstr "**base64** 이미지, **스팬** 수준 텍스트, 레이아웃 정보 없음" #: ../../app1.rst:341 e1c73c9152e644efbed95fc738d1ae9d msgid "3.54" -msgstr "" +msgstr "3.54" #: ../../app1.rst:341 61d71ce102d24fbbb30ff945dc28f207 msgid "**base64** images, **span** level text, layout and font details" -msgstr "" +msgstr "**base64** 이미지, **스팬** 수준 텍스트, 레이아웃 및 글꼴 세부 정보" #: ../../app1.rst:341 892ba5e6677e4561bfe9a5dc406e3852 msgid "1.01" -msgstr "" +msgstr "1.01" #: ../../app1.rst:342 5b44d6bc99504bb4bc7e4d457aa5509f msgid "DICT" -msgstr "" +msgstr "DICT" #: ../../app1.rst:342 bb46e12ef905445f84a825d968043de6 msgid "3.93" -msgstr "" +msgstr "3.93" #: ../../app1.rst:342 426e28067c23452bb6edeb57689a7855 msgid "**binary** images, **span** level text, layout and font details" -msgstr "" +msgstr "**바이너리** 이미지, **스팬** 수준 텍스트, 레이아웃 및 글꼴 세부 정보" #: ../../app1.rst:342 16da06be2e1a492c94b26bb12c8c4022 msgid "1.04" -msgstr "" +msgstr "1.04" #: ../../app1.rst:343 02cf93b26e5f449e95976162924b980c msgid "RAWDICT" -msgstr "" +msgstr "RAWDICT" #: ../../app1.rst:343 0eddcb199db847968d5f20c520727971 msgid "4.50" -msgstr "" +msgstr "4.50" #: ../../app1.rst:343 7ae92e67a9f34967b697139a85969bff msgid "**binary** images, **char** level text, layout and font details" -msgstr "" +msgstr "**바이너리** 이미지, **문자** 수준 텍스트, 레이아웃 및 글꼴 세부 정보" #: ../../app1.rst:343 b31064906dbc405e9e886eab7a219b5f msgid "1.68" -msgstr "" +msgstr "1.68" #: ../../app1.rst:346 bbe02a1a6ecb4053aea6eac932438250 #, python-format @@ -634,13 +634,13 @@ msgid "" " speeds are changing drastically: except RAWDICT and XML, the other " "methods are almost equally fast, and RAWDICT requires 40% less execution " "time than the **now slowest XML**." -msgstr "" +msgstr "언급한 대로: 이미지 추출을 제외하면(마지막 열) 상대 속도가 크게 변합니다: RAWDICT와 XML을 제외하고 다른 메서드는 거의 동일하게 빠르며, RAWDICT는 **이제 가장 느린 XML** 보다 40% 적은 실행 시간이 필요합니다." #: ../../app1.rst:348 c9763e96efa94f389c83973e6830f9cc msgid "Look at chapter **Appendix 1** for more performance information." -msgstr "" +msgstr "더 많은 성능 정보는 **부록 1** 장을 참조하세요." #: ../../footer.rst:46 ee2a605b55f548d69f51e5e9c010b812 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/app2.mo b/docs/locales/ko/LC_MESSAGES/app2.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..2a2d0f9687532e84c0a07ac28ba0e366d00a4026 100644 GIT binary patch literal 5636 zcmai1U2Ggz6&_0YsS!{LyjAF^NXT)$o7hR3YWt(Qu>%%%W5q5N6^M*?XLpCr&I~iN zb_@}9n{{wvr%4rW>a^>y7D*c;BR2LnY=!%T#7kdz=>rl%LcE~8cb<6Rk?-7@S+C=? zwPK&0+52*pt*)3iSP{uIBwaPa|6>xcc$=QZt1 zus?)-5q2_u-hllZp6|dufIY82sA*rt^THQ2tqgk=_V2I{eNofC4*PG|bFlw~{Rnmz zhpxgN|1!>o{RiwZ*xrXUZ5j47tOXmw{u1ZE+@on3*pI)WXzgX)f$Xuph%d{SBN2`^Y1j_8RPWVgCht3w8ze zH{aB>Y1l^r+zHrMVVkgjgE+Lyd1fn6ByY5uSvIaWZHpI@XTP2bl=5$KSR1@QBDtV?rhP_7D-pPmGn9C zjJ)9)@RJ;mj2XiwemiYY&TtL*W(VZh{gl;hemM30c=eRDM*9$tf;9uAJqwoq} z+Bx$K4QA*#M}WjAhmla5k~>LVsttL8nK#a8L&&0v*Z4)5QRHh4%33Cs1JmLh^p(ni z<5+!UJ7hU_0g*d-V2+L1tl|3vB=_0`Xcr@k)G z`uI>LOcK7QAB12Z~|6aR#~e&1uVEDuSeeX&_lR_1?e`P)WBt#Eg@qN~PrLp3X$Qj_NYBj|&ZO zK~@~78~!lIIHg6VAQcQ9%=ZHw909#%&7i1=+I7$qIH-5lAe+-fZh6`={UW=SR5{A~ zX!;Cr24w=px;UN#=}u%FeB(%&^i(tp#T4kNq=+SNVlF76wk>m7ahauuRgwwaNrrCg z)*R$a$y(y(_n5|}TecL$%ydpC3g^*%O|bP$#ynhcQSlK+^hwMf&GdsU%OuWvw&in_~!``9t)V*1ElDeIik zPp+G$fkTHm8YX-OIn10M$~n`ooA4;?zccLe-|i)i!1+U$$fRMja++SSE)G z*pWZg1Gov?`&Otd9RzGE+M8(YM;TYC5wlOw8QwN@A z$5=(;NTEVAU_6NCl+d*F>?;M&VG%*HJNHGk77KR)<11=@1!{6@pC)Q}Sw4}enSfSdG5#E=L zDHK&|mB{FR&Biu~lTm>lN)@z?#ClT zr&8l5Q^P~_gOi!@(Z^pt`NBxgnC=IuDKtDE#p!q%I`QJz7`-qwK0;5Aj1P^DJvTHw zd}?HJ@>wjk3uVY`hF)N<-Y*A#A~Vv0j4< zciB;~bQ=-zN!!@Gw$pCTiz_vf^(x#|-_|N><7yS|cHJN^z8^W2*3POfc$UOgMb;~7 zYy=dtf@A)?De4#G!fJ1Lc{9A&3NJUsyPI4&e)&X@CDS09b923&H91F11aSCE{=E|`y~E@_!}$XIe4ac(ktJ+fQ;OzFb`1`;q@vC2<0>{F5XhfJbwx7 zIS>UlkMCl_g>Tl7Bqk*@eY@UnT>vpQ#1{6)oKI`wy*HF2QKiJh>iEa=WTz~-7REcX zE4#v@EqEjs>k%&)8?g<1ck3jodSsN7s8Zd5q5Y?p`0Xa2%5%wm5NF4f2PluFH9kWu zZGr{Ff>FP~RfmW6`@=Nx!!dI240jkAZH4N z*KR4%s8`@`SZ&HG#P8a!1oS4NH4}}&^7=eMq_G%U!LHroXrmThyU>+36lNlT80U5u zC%8uQG9Sbcv)F-!Truo+rN-3k2y+K_KqxC~{UB(BGDstDys6@-0o)pw2yjJFB_p>` z-AJ^SnWj+IuBu6(JraWgKRWIxA39~j{bNTdB2%nW#Br~K^2RN2BPmo?2E10f5?14C z`J|ybZdMpQ_YK0hca=xw@D0dDlezZkvo$=q6(7g{M?nh)0TS<2gYIC;T~b`V1Ci%; z7PmsC>$@BuUTom2h#|4iGC1k@7!)tQhH*g zDi>BnWl;$xk424!e5-@~d&>khmT!Z0yRq+wkVTh0s6+A4N?jI0KF##{^l*bW9% diff --git a/docs/locales/ko/LC_MESSAGES/app2.po b/docs/locales/ko/LC_MESSAGES/app2.po index cf3813004..ba17b5524 100644 --- a/docs/locales/ko/LC_MESSAGES/app2.po +++ b/docs/locales/ko/LC_MESSAGES/app2.po @@ -21,40 +21,40 @@ msgstr "" #: ../../header.rst:-1 91d1a3926cf04b7f86982004576a7dac msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 079f5f8f8d67400f8dff2c457815bc6e msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 f3ec318cd565440481d5fc24ebd6dd9d msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../app2.rst:7 df962b6f73f94a62944d489a625e02f6 msgid "Appendix 2: Considerations on Embedded Files" -msgstr "" +msgstr "부록 2: 임베디드 파일에 대한 고려사항" #: ../../app2.rst:8 fea3691f2b5d49e3be0cdd79daecdb75 msgid "" "This chapter provides some background on embedded files support in " "PyMuPDF." -msgstr "" +msgstr "이 장은 |PyMuPDF| 에서 임베디드 파일 지원에 대한 배경 정보를 제공합니다." #: ../../app2.rst:11 e6abfba16abf44f5b53d5c259c06168e msgid "General" -msgstr "" +msgstr "일반" #: ../../app2.rst:12 2e9ff1e795ec4a80886665b6d98570d1 msgid "" "Starting with version 1.4, PDF supports embedding arbitrary files as part" " (\"Embedded File Streams\") of a PDF document file (see chapter \"7.11.4" " Embedded File Streams\", pp. 103 of the :ref:`AdobeManual`)." -msgstr "" +msgstr "버전 1.4부터 PDF는 PDF 문서 파일의 일부로 임의의 파일을 임베딩하는 것을 지원합니다(\"Embedded File Streams\" 참조, :ref:`AdobeManual` 의 103페이지 \"7.11.4 Embedded File Streams\" 장 참조)." #: ../../app2.rst:15 3740cf26355f419488a18d5c5bf691e2 msgid "" @@ -62,7 +62,7 @@ msgid "" "or the OLE technique in MS Windows. PDF embedded files do, however, *not*" " support directory structures as does the ZIP format. An embedded file " "can in turn contain embedded files itself." -msgstr "" +msgstr "많은 측면에서 이것은 ZIP 파일이나 MS Windows의 OLE 기술에서도 볼 수 있는 개념과 유사합니다. 그러나 PDF 임베디드 파일은 ZIP 형식과 달리 디렉터리 구조를 *지원하지 않습니다*. 임베디드 파일은 차례로 자체적으로 임베디드 파일을 포함할 수 있습니다." #: ../../app2.rst:17 cf0b0ce27ac343a7989b881239cb446f msgid "" @@ -71,63 +71,63 @@ msgid "" "integrity aspects: all data, which a PDF may reference or even may be " "dependent on, can be bundled into it and so form a single, consistent " "unit of information." -msgstr "" +msgstr "이 개념의 장점은 임베디드 파일이 PDF의 보호 아래에 있어 권한/비밀번호 보호 및 무결성 측면의 이점을 받는다는 것입니다: PDF가 참조하거나 의존할 수 있는 모든 데이터를 하나로 묶어 단일하고 일관된 정보 단위를 형성할 수 있습니다." #: ../../app2.rst:19 7979fde2425b48d89516fd519a799cb9 msgid "" "In addition to embedded files, PDF 1.7 adds *collections* to its support " "range. This is an advanced way of storing and presenting meta information" " (i.e. arbitrary and extensible properties) of embedded files." -msgstr "" +msgstr "임베디드 파일 외에도 PDF 1.7은 지원 범위에 *collections* 를 추가합니다. 이것은 임베디드 파일의 메타 정보(즉, 임의의 확장 가능한 속성)를 저장하고 표시하는 고급 방법입니다." #: ../../app2.rst:22 96f7716c2f354c4e9734c53ec68da72d msgid "MuPDF Support" -msgstr "" +msgstr "|MuPDF| 지원" #: ../../app2.rst:23 c829491b2aaa4844aa1c48047af82974 msgid "" "After adding initial support for collections (portfolios) and " "*/EmbeddedFiles* in MuPDF version 1.11, this support was dropped again in" " version 1.15." -msgstr "" +msgstr "|MuPDF| 버전 1.11에서 컬렉션(포트폴리오) 및 */EmbeddedFiles* 에 대한 초기 지원을 추가한 후, 이 지원은 버전 1.15에서 다시 제거되었습니다." #: ../../app2.rst:25 f683f1fd707f420b90cc13279f35ebc0 msgid "" "As a consequence, the cli utility *mutool* no longer offers access to " "embedded files." -msgstr "" +msgstr "결과적으로 CLI 유틸리티 *mutool* 은 더 이상 임베디드 파일에 대한 액세스를 제공하지 않습니다." #: ../../app2.rst:27 de207c079b314eaea490841b284ea876 msgid "" "PyMuPDF -- having implemented an */EmbeddedFiles* API in response in its " "version 1.11.0 -- was therefore forced to change gears starting with its " "version 1.16.0 (we never published a MuPDF v1.15.x compatible PyMuPDF)." -msgstr "" +msgstr "|PyMuPDF| 는 버전 1.11.0에서 */EmbeddedFiles* API를 구현했기 때문에 버전 1.16.0부터 방향을 전환해야 했습니다(|MuPDF| v1.15.x와 호환되는 |PyMuPDF| 는 발행하지 않았습니다)." #: ../../app2.rst:29 73bd7a0c6aef40dea2819f6f52a55ff6 msgid "" "We are now maintaining our own code basis supporting embedded files. This" " code makes use of basic MuPDF dictionary and array functions only." -msgstr "" +msgstr "이제 임베디드 파일을 지원하는 자체 코드 기반을 유지 관리하고 있습니다. 이 코드는 기본 |MuPDF| 딕셔너리 및 배열 함수만 사용합니다." #: ../../app2.rst:32 de313e6dfe7e40e781939fab264fd4e5 msgid "PyMuPDF Support" -msgstr "" +msgstr "|PyMuPDF| 지원" #: ../../app2.rst:33 420a4c9141134c469dfb6d107c9bcd58 msgid "" "We continue to support the full old API with respect to embedded files --" " with only minor, cosmetic changes." -msgstr "" +msgstr "임베디드 파일과 관련하여 전체 이전 API를 계속 지원합니다 -- 단지 사소한 외관상의 변경만 있습니다." #: ../../app2.rst:35 66a7d51f81c6402caf1d00e67bd1bfd2 msgid "" "There even also is a new function, which delivers a list of all names " "under which embedded data are registered in a PDF, " ":meth:`Document.embfile_names`." -msgstr "" +msgstr "PDF에 임베디드 데이터가 등록된 모든 이름의 목록을 제공하는 새로운 함수도 있습니다: :meth:`Document.embfile_names`." #: ../../footer.rst:46 c600b715098140b3b7f197c61eb560ac msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/app3.mo b/docs/locales/ko/LC_MESSAGES/app3.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..b93e4b7bab72925c620fabe7bd8ed60b9d994c98 100644 GIT binary patch literal 40720 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 {tjuL0e*CDW|lGfI|`t%!~> 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 delta 61 xcmbQRk7)(7&OITPsSH5C2*ff#tODX70UaQ_3Mi=yq&IW;l{2y$=oxb{008}i2Il|( diff --git a/docs/locales/ko/LC_MESSAGES/app3.po b/docs/locales/ko/LC_MESSAGES/app3.po index d6b4b0fe3..67c759a5e 100644 --- a/docs/locales/ko/LC_MESSAGES/app3.po +++ b/docs/locales/ko/LC_MESSAGES/app3.po @@ -21,40 +21,40 @@ msgstr "" #: ../../header.rst:-1 6a4f4d9aba284482b17f5158db768103 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 ca8dbdbe51984f3d841ffa5414e59d9f msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 acc2a6d07e304bfeb3e884b734b79031 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../app3.rst:7 635cfbba07cc4d7fafc89714611a9318 msgid "Appendix 3: Assorted Technical Information" -msgstr "" +msgstr "부록 3: 기타 기술 정보" #: ../../app3.rst:8 4769a2a2c2d84bf2b3ee95f7b4bf80e3 msgid "" "This section deals with various technical topics, that are not " "necessarily related to each other." -msgstr "" +msgstr "이 섹션은 서로 관련이 없을 수 있는 다양한 기술 주제를 다룹니다." #: ../../app3.rst:15 ec8a4400984a477ca650493b54e8d584 msgid "Image Transformation Matrix" -msgstr "" +msgstr "이미지 변환 행렬" #: ../../app3.rst:16 e34c11954ed74384aadeee4920e21331 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 "" +msgstr "버전 1.18.11부터 이미지 변환 행렬은 텍스트 및 이미지 추출을 위한 일부 메서드에서 반환됩니다: :meth:`Page.get_text` 및 :meth:`Page.get_image_bbox`." #: ../../app3.rst:18 b72e0ef8b41e494489563ac4faed2c68 msgid "" @@ -63,39 +63,39 @@ msgid "" "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 "" +msgstr "변환 행렬은 이미지가 문서 페이지의 사각형(그 \"경계 상자\" = \"bbox\")에 맞도록 변환된 방법에 대한 정보를 포함합니다. 페이지의 이미지 bbox와 이 행렬을 검사하면 예를 들어 이미지가 페이지에서 확대/축소되거나 회전되어 표시되는지 여부와 방법을 결정할 수 있습니다." #: ../../app3.rst:20 d13c3c9d78be4c7baf9efb9708ddda02 msgid "" "The relationship between image dimension and its bbox on a page is the " "following:" -msgstr "" +msgstr "이미지 크기와 페이지의 bbox 간의 관계는 다음과 같습니다:" #: ../../app3.rst:24 24589c9043924415af09f8353878e2fa msgid "Using the original image's width and height," -msgstr "" +msgstr "원본 이미지의 너비와 높이를 사용하여," #: ../../app3.rst:23 5fcd053e3c4745e3ac9752cf844e3899 msgid "define the image rectangle `imgrect = pymupdf.Rect(0, 0, width, height)`" -msgstr "" +msgstr "이미지 사각형을 정의합니다 `imgrect = pymupdf.Rect(0, 0, width, height)`" #: ../../app3.rst:24 7a8b751ef2f84e4eb0d4f3bffd76a9ba msgid "" "define the \"shrink matrix\" `shrink = pymupdf.Matrix(1/width, 0, 0, " "1/height, 0, 0)`." -msgstr "" +msgstr "\"축소 행렬\"을 정의합니다 `shrink = pymupdf.Matrix(1/width, 0, 0, 1/height, 0, 0)`." #: ../../app3.rst:26 be4e302d72a047d9ad89310d107eb3e3 msgid "" "Transforming the image rectangle with its shrink matrix, will result in " "the unit rectangle: `imgrect * shrink = pymupdf.Rect(0, 0, 1, 1)`." -msgstr "" +msgstr "이미지 사각형을 축소 행렬로 변환하면 단위 사각형이 됩니다: `imgrect * shrink = pymupdf.Rect(0, 0, 1, 1)`." #: ../../app3.rst:28 cd872603d2774c46a06dda3917faa61c msgid "" "Using the image **transformation matrix** \"transform\", the following " "steps will compute the bbox::" -msgstr "" +msgstr "이미지 **변환 행렬** \"transform\"을 사용하면 다음 단계로 bbox를 계산합니다::" #: ../../app3.rst:34 b2fb7d53a3f8485390e8070c74877726 msgid "" @@ -103,11 +103,11 @@ msgid "" "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 "" +msgstr "행렬 곱 `shrink * transform` 을 검사하면 이미지 사각형이 페이지의 bbox에 맞도록 변환된 방법에 대한 모든 정보(회전, 변의 크기 조정 및 원점 이동)를 알 수 있습니다. 예제를 살펴보겠습니다:" #: ../../app3.rst:71 5677aee6873b459a93e06865c3302434 msgid "PDF Base 14 Fonts" -msgstr "" +msgstr "PDF Base 14 글꼴" #: ../../app3.rst:72 3df5aeca5c3f4ccf9325390f51398b06 msgid "" @@ -116,7 +116,7 @@ msgid "" "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 "" +msgstr "다음 14개의 내장 글꼴 이름은 **모든 PDF 뷰어** 애플리케이션에서 지원되어야 합니다. 이들은 딕셔너리로 제공되며, 전체 이름과 소문자 약어를 전체 글꼴 기본 이름에 매핑합니다. |PyMuPDF| 에서 **fontname** 을 제공해야 하는 곳에서는 딕셔너리의 **키 또는 값** 을 사용할 수 있습니다::" #: ../../app3.rst:105 a5f070fd9c6546bfa33ed69a6639683e msgid "" @@ -124,17 +124,17 @@ msgid "" "correctly and completely -- this is especially true for Symbol and " "ZapfDingbats. Also, the glyph (visual) images will be specific to every " "reader." -msgstr "" +msgstr "의무와 달리 모든 PDF 뷰어가 이러한 글꼴을 올바르고 완전하게 지원하는 것은 아닙니다 -- 이것은 특히 Symbol과 ZapfDingbats에 해당합니다. 또한 글리프(시각적) 이미지는 각 리더에 따라 다를 수 있습니다." #: ../../app3.rst:107 6842b8433a9547b6a82435e36e06fb70 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 "" +msgstr "이러한 글꼴을 사용하는 방법을 보려면 -- **CJK 내장** 글꼴을 포함하여 -- :meth:`Page.insert_font` 의 표를 참조하세요." #: ../../app3.rst:114 e3268f776b5a4b06a629bf9f9c25828c msgid "Adobe PDF References" -msgstr "" +msgstr "Adobe PDF 참조" #: ../../app3.rst:116 17a3fab0bc0d4dcc9ab758228d6be220 msgid "" @@ -142,11 +142,11 @@ msgid "" "throughout this documentation. It can be viewed and downloaded from " "`opensource.adobe.com `_." -msgstr "" +msgstr "Adobe에서 발행한 이 PDF Reference 매뉴얼은 이 문서 전반에 걸쳐 자주 인용됩니다. `opensource.adobe.com `_ 에서 볼 수 있고 다운로드할 수 있습니다." #: ../../app3.rst:125 c4f0367b9f574635971bdcbd0d2ca6fb msgid "Using Python Sequences as Arguments in PyMuPDF" -msgstr "" +msgstr "|PyMuPDF| 에서 Python 시퀀스를 인수로 사용하기" #: ../../app3.rst:126 3d89e490fbf7457284a6ae3fcc59d506 msgid "" @@ -154,60 +154,60 @@ msgid "" "values, other Python **sequence types** are also allowed. Python classes " "are said to implement the **sequence protocol**, if they have a " "`__getitem__()` method." -msgstr "" +msgstr "|PyMuPDF| 객체와 메서드가 숫자 값의 Python **list** 를 요구할 때, 다른 Python **시퀀스 타입** 도 허용됩니다. Python 클래스는 `__getitem__()` 메서드를 가지고 있으면 **시퀀스 프로토콜** 을 구현한다고 합니다." #: ../../app3.rst:128 bd7b31cc19e54f17857367f55587a14e 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 "" +msgstr "기본적으로 이것은 이러한 경우에 Python *list* 또는 *tuple* 또는 *array.array*, *numpy.array* 및 *bytearray* 타입을 상호 교환하여 사용할 수 있음을 의미합니다." #: ../../app3.rst:130 cc50a15ebc1a45c3ba30d1d2615eeb1b msgid "For example, specifying a sequence `\"s\"` in any of the following ways" -msgstr "" +msgstr "예를 들어, 다음 방법 중 하나로 시퀀스 `\"s\"` 를 지정하면" #: ../../app3.rst:132 ba9e965ec2384d4aaaacc84791926237 msgid "`s = [1, 2]` -- a list" -msgstr "" +msgstr "`s = [1, 2]` -- 리스트" #: ../../app3.rst:133 a1b8ab6b13fe41159b6b656dd7debae0 msgid "`s = (1, 2)` -- a tuple" -msgstr "" +msgstr "`s = (1, 2)` -- 튜플" #: ../../app3.rst:134 c68b9c09194b47c78b57fa6656c1ffea msgid "`s = array.array(\"i\", (1, 2))` -- an array.array" -msgstr "" +msgstr "`s = array.array(\"i\", (1, 2))` -- array.array" #: ../../app3.rst:135 3a8427a9db4d4436a94ddb0536f292f1 msgid "`s = numpy.array((1, 2))` -- a numpy array" -msgstr "" +msgstr "`s = numpy.array((1, 2))` -- numpy 배열" #: ../../app3.rst:136 33fa18c1c81f441890f097d10863edf5 msgid "`s = bytearray((1, 2))` -- a bytearray" -msgstr "" +msgstr "`s = bytearray((1, 2))` -- bytearray" #: ../../app3.rst:138 723f57c7a65942108b9add6c3d6123e3 msgid "will make it usable in the following example expressions:" -msgstr "" +msgstr "다음 예제 표현식에서 사용할 수 있습니다:" #: ../../app3.rst:140 7e8310592817456db2c249694ee67e4c msgid "`pymupdf.Point(s)`" -msgstr "" +msgstr "`pymupdf.Point(s)`" #: ../../app3.rst:141 ef9f88aff26342c1b8b682b45b03735a msgid "`pymupdf.Point(x, y) + s`" -msgstr "" +msgstr "`pymupdf.Point(x, y) + s`" #: ../../app3.rst:142 0a05dd917a434de3b831f92af1f206d8 msgid "`doc.select(s)`" -msgstr "" +msgstr "`doc.select(s)`" #: ../../app3.rst:144 e7823b7a8a1642dea3763c0d1fcf75df msgid "" "Similarly with all geometry objects :ref:`Rect`, :ref:`IRect`, " ":ref:`Matrix` and :ref:`Point`." -msgstr "" +msgstr "모든 기하 객체 :ref:`Rect`, :ref:`IRect`, :ref:`Matrix` 및 :ref:`Point` 에도 마찬가지입니다." #: ../../app3.rst:146 e62989d3437d4c809e933779b0b4f916 msgid "" @@ -216,18 +216,18 @@ msgid "" "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 "" +msgstr "모든 |PyMuPDF| 기하 클래스 자체가 시퀀스의 특수한 경우이므로, 이들은(:ref:`Quad` 제외 -- 아래 참조) 숫자 시퀀스를 사용할 수 있는 곳에서 자유롭게 사용할 수 있습니다. 예를 들어 *list()*, *tuple()*, *array.array()* 또는 *numpy.array()* 와 같은 함수의 인수로 사용할 수 있습니다. 이것이 작동하는 것을 보려면 다음 코드 조각을 참조하세요." #: ../../app3.rst:163 cd48dbd7918c44989e77808c4e3d2273 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 "" +msgstr ":ref:`Quad` 도 Python 시퀀스 객체이며 길이가 4입니다. 그러나 항목은 :data:`point_like` 입니다 -- 숫자가 아닙니다. 따라서 위의 설명은 적용되지 않습니다." #: ../../app3.rst:170 a239cac6134847fa88f5fdc763bc0034 msgid "Ensuring Consistency of Important Objects in PyMuPDF" -msgstr "" +msgstr "|PyMuPDF| 에서 중요한 객체의 일관성 보장" #: ../../app3.rst:171 94db2c4ab30441ca82c022e184f57bf9 msgid "" @@ -235,7 +235,7 @@ msgid "" "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 "" +msgstr "|PyMuPDF| 는 C 라이브러리 |MuPDF| 에 대한 Python 바인딩입니다. |MuPDF| 의 제작자들이 객체 지향적 동작을 근사하기 위해 많은 노력을 기울였지만, C 언어의 기본적인 한계를 극복할 수는 없었습니다." #: ../../app3.rst:173 7cf69b3e065341f0a20a77da785f6027 msgid "" @@ -243,14 +243,14 @@ msgid "" " 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 "" +msgstr "반면 Python은 OO 모델을 매우 깔끔하게 구현합니다. |PyMuPDF| 와 |MuPDF| 사이의 인터페이스 코드는 두 개의 기본 파일로 구성됩니다: *pymupdf.py* 와 *fitz_wrap.c*. 이들은 각 새 버전에 대해 우수한 SWIG 도구로 생성됩니다." #: ../../app3.rst:175 05bb51a7321b4ecd8dc9585c3e3f3b8c 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 "" +msgstr "|PyMuPDF| 의 객체나 메서드 중 하나를 사용하면 *pymupdf.py* 의 일부 코드가 실행되고, 이것은 차례로 *fitz_wrap.c* 로 컴파일된 일부 C 코드를 호출합니다." #: ../../app3.rst:177 0d437950b2ba4e1cbdfd6ccd5a4b5f4b msgid "" @@ -261,14 +261,14 @@ msgid "" "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 "" +msgstr "SWIG가 Python과 C 레벨을 동기화하기 위해 많은 노력을 기울이기 때문에, 특정 규칙 집합을 엄격히 따르면 모든 것이 잘 작동합니다. 예를 들어: 소유 :ref:`Document` 를 닫았거나(또는 삭제하거나 ``None`` 으로 설정한 후) :ref:`Page` 객체에 **절대 액세스하지 마세요**. 또는 덜 명확한 경우: 문서 메서드 *select()*, *delete_page()*, *insert_page()* 등을 실행한 후 페이지나 그 자식(링크 또는 주석)에 **절대 액세스하지 마세요**." #: ../../app3.rst:179 740cda1605364f24b13938ce08977597 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 "" +msgstr "그러나 무효화된 객체에 더 이상 액세스하지 않는 것만으로는 충분하지 않습니다: C 레벨 리소스(할당된 메모리)도 해제하기 위해 완전히 삭제해야 합니다." #: ../../app3.rst:181 9f8e966b70d34ecfabbaf171069a4cca msgid "" @@ -277,24 +277,24 @@ msgid "" "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 "" +msgstr "이러한 규칙의 이유는 문서와 그 페이지 사이, 그리고 페이지와 그 링크/주석 사이에 계층적 2단계 일대다 관계가 있다는 사실에 있습니다. 일관된 상황을 유지하기 위해 위의 작업 중 하나라도 완전한 재설정으로 이어져야 합니다 -- **Python과 동기적으로 C에서**." #: ../../app3.rst:183 a7f44e6e345e43358b3a79b7c052cd44 msgid "SWIG cannot know about this and consequently does not do it." -msgstr "" +msgstr "SWIG는 이것을 알 수 없으므로 결과적으로 이를 수행하지 않습니다." #: ../../app3.rst:185 9f2723ebd7904acaa02811c5490da7a1 msgid "" "The required logic has therefore been built into PyMuPDF itself in the " "following way." -msgstr "" +msgstr "따라서 필요한 로직이 다음과 같은 방식으로 |PyMuPDF| 자체에 내장되었습니다." #: ../../app3.rst:187 fd908d3774f14df1b4fb95b1d9afb2f4 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 "" +msgstr "페이지가 소유 문서를 \"잃거나\" 자체적으로 삭제되면, 현재 존재하는 모든 주석과 링크가 Python에서 사용할 수 없게 되고, C 레벨의 대응 항목이 삭제되고 할당 해제됩니다." #: ../../app3.rst:189 25e9288e71cb47e586bca43a0f860fb2 msgid "" @@ -304,20 +304,20 @@ msgid "" " 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 "" +msgstr "문서가 닫히거나(또는 삭제되거나 ``None`` 으로 설정되거나) 구조가 변경되면, 마찬가지로 현재 존재하는 모든 페이지와 그 자식이 사용할 수 없게 되고, 해당 C 레벨 삭제가 발생합니다. \"구조 변경\"에는 *select()*, *delete_page()*, *insert_page()*, *insert_pdf()* 등의 메서드가 포함됩니다: 이들 모두 객체 삭제의 연쇄를 초래합니다." #: ../../app3.rst:191 54df808609fb4f028e086d3d8e9d2f3b msgid "" "The programmer will normally not realize any of this. If he, however, " "tries to access invalidated objects, exceptions will be raised." -msgstr "" +msgstr "프로그래머는 일반적으로 이것을 인식하지 못합니다. 그러나 무효화된 객체에 액세스하려고 하면 예외가 발생합니다." #: ../../app3.rst:193 563eaa2415b64daabefd0a63dca2bd34 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 "" +msgstr "무효화된 객체는 *del page* 또는 *page = None* 등의 Python 문으로 직접 삭제할 수 없습니다. 대신 *__del__* 메서드를 호출해야 합니다." #: ../../app3.rst:195 e5c1f65e4ac6489ca69e7ebe7b57195c msgid "" @@ -326,15 +326,15 @@ msgid "" "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 "" +msgstr "모든 페이지, 링크 및 주석은 소유 객체를 가리키는 *parent* 속성을 가집니다. 이것은 애플리케이션 레벨에서 확인할 수 있는 속성입니다: *obj.parent == None* 이면 객체의 부모가 사라진 것이며, 속성이나 메서드에 대한 참조는 이 \"고아\" 상태에 대해 알리는 예외를 발생시킵니다." #: ../../app3.rst:197 d631125a6585402abe79abea78f9a828 msgid "A sample session:" -msgstr "" +msgstr "샘플 세션:" #: ../../app3.rst:214 9f74080977604195aab03d9e5d402dd0 msgid "This shows the cascading effect:" -msgstr "" +msgstr "이것은 연쇄 효과를 보여줍니다:" #: ../../app3.rst:231 2b8666687af94a81ad4c68af9a5f9e6b msgid "" @@ -343,50 +343,50 @@ msgid "" "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 "" +msgstr "위의 관계 외부의 객체는 이 메커니즘에 포함되지 않습니다. 예를 들어 *toc = doc.get_toc()* 로 목차를 만든 후 문서를 닫거나 변경하면, 이것은 변수 *toc* 를 어떤 방식으로도 변경할 수 없고 변경하지 않습니다. 필요에 따라 이러한 변수를 새로 고치는 것은 사용자의 책임입니다." #: ../../app3.rst:238 d3876be10a3649c3b2ab6f5d57c69ce0 msgid "Design of Method :meth:`Page.show_pdf_page`" -msgstr "" +msgstr "메서드 :meth:`Page.show_pdf_page` 의 설계" #: ../../app3.rst:241 3180435e0924483181b1a26a8cba5f32 msgid "Purpose and Capabilities" -msgstr "" +msgstr "목적 및 기능" #: ../../app3.rst:243 bf37b033f7ca48c58de17d9d2051b74d 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 "" +msgstr "이 메서드는 다른 PDF 문서의 (\"소스\") 페이지 이미지를 현재 (\"포함\", \"대상\") 페이지의 지정된 사각형 내에 표시합니다." #: ../../app3.rst:245 6f60a372555246208767f53ea2bfd820 msgid "" "**In contrast** to :meth:`Page.insert_image`, this display is vector-" "based and hence remains accurate across zooming levels." -msgstr "" +msgstr ":meth:`Page.insert_image` 와 **대조적으로**, 이 표시는 벡터 기반이므로 확대/축소 수준에서도 정확하게 유지됩니다." #: ../../app3.rst:246 998a98e328ec42aba32d728c2b4334e4 msgid "" "**Just like** :meth:`Page.insert_image`, the size of the display is " "adjusted to the given rectangle." -msgstr "" +msgstr ":meth:`Page.insert_image` 와 **마찬가지로**, 표시 크기는 주어진 사각형에 맞게 조정됩니다." #: ../../app3.rst:248 e75e8ccc88234308a5ec9fa48fa086f2 msgid "The following variations of the display are currently supported:" -msgstr "" +msgstr "다음과 같은 표시 변형이 현재 지원됩니다:" #: ../../app3.rst:250 d8cc5e5d21b84c21b682d4ab99c0d9df msgid "" "Bool parameter `\"keep_proportion\"` controls whether to maintain the " "aspect ratio (default) or not." -msgstr "" +msgstr "Bool 매개변수 `\"keep_proportion\"` 은 종횡비를 유지할지 여부를 제어합니다(기본값)." #: ../../app3.rst:251 186e450479084963890fe9da769fab60 msgid "" "Rectangle parameter `\"clip\"` restricts the visible part of the source " "page rectangle. Default is the full page." -msgstr "" +msgstr "사각형 매개변수 `\"clip\"` 은 소스 페이지 사각형의 보이는 부분을 제한합니다. 기본값은 전체 페이지입니다." #: ../../app3.rst:252 4f399ef693d44c11953293c07415b9ae msgid "" @@ -394,48 +394,48 @@ msgid "" " 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 "" +msgstr "float `\"rotation\"` 은 표시를 임의의 각도(도)로 회전시킵니다. 각도가 90의 정수 배가 아니고 `\"keep_proportion\"` 도 true인 경우, 4개 모서리 중 2개만 대상 경계에 위치할 수 있습니다." #: ../../app3.rst:253 64850af2d5454c3b8c0cc5f82512df49 msgid "" "Bool parameter `\"overlay\"` controls whether to put the image on top " "(foreground, default) of current page content or not (background)." -msgstr "" +msgstr "Bool 매개변수 `\"overlay\"` 는 이미지를 현재 페이지 콘텐츠 위(전경, 기본값)에 배치할지 여부를 제어합니다(배경)." #: ../../app3.rst:255 7e80998882b74dbd8a0af43da85cb0d4 msgid "Use cases include (but are not limited to) the following:" -msgstr "" +msgstr "사용 사례에는 다음이 포함됩니다(이에 국한되지 않음):" #: ../../app3.rst:257 996173b99261405f88be22fdbd55394b msgid "" "\"Stamp\" a series of pages of the current document with the same image, " "like a company logo or a watermark." -msgstr "" +msgstr "회사 로고나 워터마크와 같은 동일한 이미지로 현재 문서의 일련의 페이지에 \"스탬프\"를 찍습니다." #: ../../app3.rst:258 1c47493c9a7d4b9f86bf2e065fad544e msgid "" -"Combine arbitrary input pages into one output page to support “booklet” " +"Combine arbitrary input pages into one output page to support "booklet" " "or double-sided printing (known as \"4-up\", \"n-up\")." -msgstr "" +msgstr "임의의 입력 페이지를 하나의 출력 페이지로 결합하여 \"북렛\" 또는 양면 인쇄( \"4-up\", \"n-up\" 으로 알려짐)를 지원합니다." #: ../../app3.rst:259 7e5cd1ef35154a02b0bee17ee2806729 msgid "" "Split up (large) input pages into several arbitrary pieces. This is also " -"called “posterization”, because you e.g. can split an A4 page " +"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 "" +msgstr "(큰) 입력 페이지를 여러 임의의 조각으로 분할합니다. 이것은 \"포스터화\"라고도 하며, 예를 들어 A4 페이지를 가로와 세로로 분할하고, 4개 조각을 확대하여 별도의 A4 페이지로 인쇄한 다음 원본 페이지의 A2 버전을 얻을 수 있기 때문입니다." #: ../../app3.rst:262 b540c10d38674f279374416c7ec65281 msgid "Technical Implementation" -msgstr "" +msgstr "기술적 구현" #: ../../app3.rst:264 69b731e1cb1b4b1f82341ad0baeff00b 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 "" +msgstr "이것은 PDF **\"Form XObjects\"** 를 사용하여 수행됩니다. :ref:`AdobeManual` 의 217페이지 섹션 8.10을 참조하세요. :meth:`Page.show_pdf_page` 를 실행하면 다음이 발생합니다:" #: ../../app3.rst:266 50910b81c885485fadb624aecb9e1577 msgid "" @@ -443,165 +443,165 @@ msgid "" "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 "" +msgstr "소스 문서의 소스 페이지의 :data:`resources` 및 :data:`contents` 객체가 대상 문서로 복사되어 다음 속성을 가진 새로운 **Form XObject** 를 공동으로 생성합니다. 이 객체의 PDF :data:`xref` 번호는 메서드에 의해 반환됩니다." #: ../../app3.rst:268 a1333276b2c34164b105e04d7d4d2515 msgid "`/BBox` equals `/Mediabox` of the source page" -msgstr "" +msgstr "`/BBox` 는 소스 페이지의 `/Mediabox` 와 같습니다" #: ../../app3.rst:269 fbe66f56505f421dad721b5efa325673 msgid "`/Matrix` equals the identity matrix." -msgstr "" +msgstr "`/Matrix` 는 항등 행렬과 같습니다." #: ../../app3.rst:270 3a867e67f3d843608d9857ad1253fa34 msgid "" -"`/Resources` equals that of the source page. This involves a “deep-copy” " +"`/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 "" +msgstr "`/Resources` 는 소스 페이지의 것과 같습니다. 이것은 계층적으로 중첩된 다른 객체(글꼴, 이미지 등 포함)의 \"deep-copy\" 를 포함합니다. 여기에 관련된 복잡성은 |MuPDF| 의 grafting [#f1]_ 기술 함수로 처리됩니다." #: ../../app3.rst:271 1a49d5440ba142cf9172da9514e3c857 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 "" +msgstr "이것은 스트림 객체 타입이며, 그 스트림은 소스 페이지의 :data:`contents` 객체의 결합된 데이터의 정확한 복사본입니다." #: ../../app3.rst:273 dd47a3e1e5374c23ae28df502b54d8a4 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 "" +msgstr "이 Form XObject는 표시된 소스 페이지당 한 번만 실행됩니다. 동일한 소스 페이지의 후속 표시는 이 단계를 건너뛰고 이 객체에 대한 \"포인터\" Form XObjects만 생성합니다(다음 단계에서 수행)." #: ../../app3.rst:275 42724012ec184801b99998826eed3a72 msgid "" "A second **Form XObject** is then created which the target page uses to " "invoke the display. This object has the following properties:" -msgstr "" +msgstr "그런 다음 대상 페이지가 표시를 호출하는 데 사용하는 두 번째 **Form XObject** 가 생성됩니다. 이 객체는 다음 속성을 가집니다:" #: ../../app3.rst:277 e03b9eae952d4d1bb6e04da71d195465 msgid "`/BBox` equals the `/CropBox` of the source page (or `\"clip\"`)." -msgstr "" +msgstr "`/BBox` 는 소스 페이지의 `/CropBox` (또는 `\"clip\"`)와 같습니다." #: ../../app3.rst:278 1749263652a44611a4af6fbe1690c814 msgid "`/Matrix` represents the mapping of `/BBox` to the target rectangle." -msgstr "" +msgstr "`/Matrix` 는 `/BBox` 를 대상 사각형으로 매핑하는 것을 나타냅니다." #: ../../app3.rst:279 4fb0197364cf4a88b015f8fa5d6d6ff2 msgid "" "`/XObject` references the previous Form XObject via the fixed name " "`fullpage`." -msgstr "" +msgstr "`/XObject` 는 고정된 이름 `fullpage` 를 통해 이전 Form XObject를 참조합니다." #: ../../app3.rst:280 a3736f591c254b8a801d28e108cec9a8 msgid "" "The stream of this object contains exactly one fixed statement: " "`/fullpage Do`." -msgstr "" +msgstr "이 객체의 스트림은 정확히 하나의 고정된 문을 포함합니다: `/fullpage Do`." #: ../../app3.rst:281 5d63f1c31a56424b8903208d2ac3af39 msgid "" "If the method's `\"oc\"` argument is given, its value is assigned to this" " Form XObject as `/OC`." -msgstr "" +msgstr "메서드의 `\"oc\"` 인수가 주어지면, 그 값이 이 Form XObject에 `/OC` 로 할당됩니다." #: ../../app3.rst:283 e5c4f530e1134086bac2da1f45b4d894 msgid "" "The :data:`resources` and :data:`contents` objects of the target page are" " now modified as follows." -msgstr "" +msgstr "대상 페이지의 :data:`resources` 및 :data:`contents` 객체는 다음과 같이 수정됩니다." #: ../../app3.rst:285 d81644bc7b114307a984f10eed9801e7 msgid "" "Add an entry to the `/XObject` dictionary of `/Resources` with the name " "`fzFrm` (with n chosen such that this entry is unique on the page)." -msgstr "" +msgstr "`/Resources` 의 `/XObject` 딕셔너리에 `fzFrm` 이라는 이름으로 항목을 추가합니다(n은 이 항목이 페이지에서 고유하도록 선택됨)." #: ../../app3.rst:286 ff1f4fdf2e59413da229698f3921b8d0 msgid "" "Depending on `\"overlay\"`, prepend or append a new object to the page's " "`/Contents` array, containing the statement `q /fzFrm Do Q`." -msgstr "" +msgstr "`\"overlay\"` 에 따라 페이지의 `/Contents` 배열에 `q /fzFrm Do Q` 문을 포함하는 새 객체를 앞에 추가하거나 뒤에 추가합니다." #: ../../app3.rst:288 01882ae84bb54534ba3c6ab5ca61b114 msgid "This design approach ensures that:" -msgstr "" +msgstr "이 설계 접근 방식은 다음을 보장합니다:" #: ../../app3.rst:290 b9976fb7daeb4b6291c769ba97d9ac06 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 "" +msgstr "(잠재적으로 큰) 소스 페이지는 대상 PDF에 한 번만 복사됩니다. 소스 페이지를 표시하기 위해 각 대상 페이지당 작은 \"포인터\" Form XObjects 객체만 생성됩니다." #: ../../app3.rst:291 521ab75e321e488ca9676c4ce898d1b3 msgid "" "Each referring target page can have its own `\"oc\"` parameter to control" " the source page's visibility individually." -msgstr "" +msgstr "각 참조 대상 페이지는 소스 페이지의 가시성을 개별적으로 제어하기 위해 자체 `\"oc\"` 매개변수를 가질 수 있습니다." #: ../../app3.rst:298 05bf5b83ea6142389d3172a05aa36f27 msgid "Diagnostics" -msgstr "" +msgstr "진단" #: ../../app3.rst:303 b856bdfa521a4448b19dc8a507f2c401 msgid "|PyMuPDF| messages" -msgstr "" +msgstr "|PyMuPDF| 메시지" #: ../../app3.rst:305 85b5e6f89d3649809ada540c8eea82a1 msgid "|PyMuPDF| has a Message system for showing text diagnostics." -msgstr "" +msgstr "|PyMuPDF| 는 텍스트 진단을 표시하기 위한 메시지 시스템을 가지고 있습니다." #: ../../app3.rst:307 4c84b6f861ea48f3a8e09715aebfc6d9 msgid "" "By default messages are written to `sys.stdout`. This can be controlled " "in two ways:" -msgstr "" +msgstr "기본적으로 메시지는 `sys.stdout` 에 기록됩니다. 이것은 두 가지 방법으로 제어할 수 있습니다:" #: ../../app3.rst:311 74ccaa7010d84feaaff8d9a38c69b5f1 msgid "Set environment variable `PYMUPDF_MESSAGE` before |PyMuPDF| is imported." -msgstr "" +msgstr "|PyMuPDF| 를 가져오기 전에 환경 변수 `PYMUPDF_MESSAGE` 를 설정합니다." #: ../../app3.rst:314 2f88318d369944be868c62a39006cca7 msgid "Call `set_messages()`:" -msgstr "" +msgstr "`set_messages()` 를 호출합니다:" #: ../../app3.rst:318 e5c533c2a71c4b608f529bfb4df7afb2 msgid "|MuPDF| errors and warnings" -msgstr "" +msgstr "|MuPDF| 오류 및 경고" #: ../../app3.rst:320 1523d23bbbce45f1a25c851f5b69abf0 msgid "|MuPDF| generates text errors and warnings." -msgstr "" +msgstr "|MuPDF| 는 텍스트 오류 및 경고를 생성합니다." #: ../../app3.rst:323 adb68bfb91384894b21b746a73dd6bc0 msgid "" "These errors and warnings are appended to an internal list, accessible " "with `Tools.mupdf_warnings()`. Also see `Tools.reset_mupdf_warnings()`." -msgstr "" +msgstr "이러한 오류 및 경고는 내부 목록에 추가되며, `Tools.mupdf_warnings()` 로 액세스할 수 있습니다. `Tools.reset_mupdf_warnings()` 도 참조하세요." #: ../../app3.rst:327 79324fa6e32d42af95e9abf26233099a msgid "" "By default these errors and warnings are also sent to the |PyMuPDF| " "message system." -msgstr "" +msgstr "기본적으로 이러한 오류 및 경고는 |PyMuPDF| 메시지 시스템에도 전송됩니다." #: ../../app3.rst:330 a71ef1ec2b084888adf04787091192a1 msgid "" "This can be controlled with `mupdf_display_errors()` and " "`mupdf_display_warnings()`." -msgstr "" +msgstr "이것은 `mupdf_display_errors()` 및 `mupdf_display_warnings()` 로 제어할 수 있습니다." #: ../../app3.rst:334 83b10651533947bc9bd63e655367d81e msgid "" "These messages are prefixed with `MuPDF error:` and `MuPDF warning:` " "respectively." -msgstr "" +msgstr "이러한 메시지는 각각 `MuPDF error:` 및 `MuPDF warning:` 접두사가 붙습니다." #: ../../app3.rst:337 943f00a7c2a849f483525f7b3653f6a0 msgid "Some |MuPDF| errors may lead to Python exceptions." -msgstr "" +msgstr "일부 |MuPDF| 오류는 Python 예외를 유발할 수 있습니다." #: ../../app3.rst:339 0cdf1f5474fa4616a11df5f246a531a1 msgid "" @@ -611,15 +611,15 @@ msgid "" "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 "" +msgstr "**복구 가능한 오류** 에 대한 예제 출력입니다. 손상된 PDF를 열고 있지만 |MuPDF| 는 이를 복구할 수 있고 발생한 일에 대한 약간의 정보를 제공합니다. 그런 다음 문서를 나중에 증분 저장할 수 있는지 확인하는 방법을 설명합니다. 이 시점에서 :attr:`Document.is_dirty` 속성을 확인하면 `pymupdf.open` 중에 문서를 복구해야 했음을 나타냅니다:" #: ../../app3.rst:360 af0558fd6f8c4501a41d850a84d3da7b msgid "Example output for an **unrecoverable error**:" -msgstr "" +msgstr "**복구 불가능한 오류** 에 대한 예제 출력:" #: ../../app3.rst:378 01987f6b7c4e4b13a325bf16dc6d2fda msgid "Coordinates" -msgstr "" +msgstr "좌표" #: ../../app3.rst:381 cc111c4761774e13839c570b6a760b94 msgid "" @@ -628,7 +628,7 @@ msgid "" "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 "" +msgstr "이것은 이 문서에서 가장 자주 사용되는 용어 중 하나입니다. **좌표** 는 일반적으로 사각형의 모서리(:ref:`Rect`), :ref:`Point` 등과 같은 위치를 나타내는 숫자 쌍 `(x, y)` 를 의미합니다. 두 값은 일반적으로 float이지만, 정수만 허용하는 이미지와 같은 객체도 있습니다." #: ../../app3.rst:383 8e23a5ba1da047d88532eda8f671451a msgid "" @@ -636,7 +636,7 @@ msgid "" "*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 "" +msgstr "실제로 좌표의 위치를 *찾으려면*, ``x`` 와 ``y`` 의 *참조* 점도 알아야 합니다 -- 즉, 위치 `(0, 0)` 이 어디에 있는지 알아야 합니다. `(0, 0)` (\"원점\")이 알려지면 \"좌표계\"라고 말합니다." #: ../../app3.rst:385 5720add281a54277b7a0232978fa8662 msgid "" @@ -650,11 +650,11 @@ msgid "" "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 "" +msgstr "문서 처리에는 여러 좌표계가 존재합니다. 예를 들어, PDF 페이지와 그것으로부터 생성된 이미지의 좌표계는 **다릅니다**. 따라서 한 시스템에서 다른 시스템으로 좌표를 *변환* 하는 방법이 필요합니다(때로는 역으로도). 이것이 :ref:`Matrix` 의 작업입니다. 이것은 점이나 사각형과 \"곱할\" 수 있는 인수처럼 작동하여 다른 좌표계에서 해당 점/사각형을 제공하는 수학 함수입니다. 변환 행렬의 역행렬을 사용하여 변환을 되돌릴 수 있습니다. 예를 들어 3을 곱하는 것을 결과를 3으로 나누거나(또는 1/3을 곱함)하여 되돌릴 수 있는 것과 매우 유사합니다." #: ../../app3.rst:388 9bd43359dae34a3db3ed2502539abb9f msgid "Coordinates and Images" -msgstr "" +msgstr "좌표 및 이미지" #: ../../app3.rst:390 ef142876a50648b88ce6825a05daf149 msgid "" @@ -664,7 +664,7 @@ msgid "" "*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 "" +msgstr "이미지는 정수 좌표를 가진 좌표계를 가집니다. 원점 `(0, 0)` 은 왼쪽 위 점입니다. ``x`` 값은 `range(width)` 에 있어야 하고, ``y`` 값은 `range(height)` 에 있어야 합니다. 따라서 *아래로* 가면 ``y`` 값이 *증가* 합니다. 모든 이미지에 대해 **유한한 수** 의 좌표만 있습니다. 즉, `width * height` 입니다. 이미지의 위치는 \"픽셀\"이라고도 합니다." #: ../../app3.rst:392 a43cf286a2d14b4892269df18f857b1b msgid "" @@ -674,26 +674,26 @@ msgid "" "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 "" +msgstr "예를 들어 인쇄할 때 이미지가 **얼마나 큰지** (센티미터 또는 인치)는 추가 정보인 \"해상도\"에 따라 다릅니다. 이것은 **DPI** (인치당 도트 또는 인치당 픽셀)로 측정됩니다. 따라서 이미지의 인쇄 크기를 찾으려면 너비와 높이를 해당 DPI 값으로 나누어야 하며(너비와 높이에 대해 별도의 값이 있을 수 있음) 각각의 인치 수를 얻을 수 있습니다." #: ../../app3.rst:396 b694fe03ac784433945a778cd53034f2 msgid "Origin Point, Point Size and Y-Axis" -msgstr "" +msgstr "원점, 포인트 크기 및 Y축" #: ../../app3.rst:398 a92885d699744510b39176e360fb8a63 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 "" +msgstr "|PDF| 에서 페이지의 원점 `(0, 0)` 은 **왼쪽 아래 점** 에 있습니다. |MuPDF| 에서 페이지의 원점 `(0, 0)` 은 **왼쪽 위 점** 에 있습니다." #: ../../app3.rst:403 b0a22dfe25a8493dbcd9b65008507920 msgid "Coordinates are float numbers and measured in **points**, where:" -msgstr "" +msgstr "좌표는 float 숫자이며 **포인트** 단위로 측정됩니다. 여기서:" #: ../../app3.rst:405 68d51777bcaf4642b1031f9dc960cd29 msgid "**one point equals 1/72 inches**." -msgstr "" +msgstr "**1포인트는 1/72인치** 와 같습니다." #: ../../app3.rst:407 756d6701c9f747b9830a3c7d01111f53 msgid "" @@ -704,14 +704,14 @@ msgid "" "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 "" +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 50dac25ebb9848779eb3bff43cb168dc 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 "" +msgstr "이론적으로 |PDF| 페이지에는 **무한히 많은** 좌표 위치가 있습니다. 그러나 실제로는 합리적인 정밀도를 위해 최대 처음 5자리 소수점이면 충분합니다." #: ../../app3.rst:412 e630dd4abdb84c43b0315dfb4e77cef8 msgid "" @@ -722,7 +722,7 @@ msgid "" "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 "" +msgstr "|MuPDF| 에서는 여러 문서 형식이 지원됩니다 -- |PDF| 는 **12개 이상의 다른 형식** 중 하나일 뿐입니다. 이미지도 |MuPDF| 에서 문서로 지원됩니다(따라서 일반적으로 한 페이지를 가짐). 이것이 |MuPDF| 가 원점 `(0, 0)` 이 모든 문서 페이지의 **왼쪽 위** 점인 좌표계를 사용하는 이유 중 하나입니다. **y축은 아래를 가리킵니다**, 이미지와 마찬가지입니다. |MuPDF| 의 좌표는 어떤 경우든 |PDF| 와 마찬가지로 float입니다." #: ../../app3.rst:414 a69f66be61c5411c909b4daed6378f6c msgid "" @@ -734,11 +734,11 @@ msgid "" "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 "" +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 0358a41bcfde49298c244a781732a9cc msgid "Footnotes" -msgstr "" +msgstr "각주" #: ../../app3.rst:426 2a940ba3cc664855b3afbb56eaefdade msgid "" @@ -753,14 +753,14 @@ msgid "" "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 "" +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 12291c684340429ebe3dfc12d79126a2 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 "" +msgstr "대상 PDF가 새 것이 아니거나 비어 있지 않음: grafting은 문서를 열기 전에 대상 문서에 이미 존재했던 리소스(예: 이미지, 글꼴)를 확인하지 않습니다." #: ../../app3.rst:429 85b00d1ae84a4e159e1accdfa5034bdc msgid "" @@ -768,9 +768,9 @@ msgid "" "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 "" +msgstr "하나 이상의 소스 문서에 대해 :meth:`Page.show_pdf_page` 사용: 각 grafting은 여러 문서에 걸쳐서가 아니라 **하나의 소스** PDF 내에서만 발생합니다. 따라서 예를 들어 다른 소스 PDF의 페이지에 동일한 이미지가 존재하면, 가비지 수집까지 이것이 감지되지 않습니다." #: ../../footer.rst:46 2a972e62f98f45208da9b9eaf1158726 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/app4.mo b/docs/locales/ko/LC_MESSAGES/app4.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..1c044741c4214ff1c3489c746c4ae1ed962400df 100644 GIT binary patch literal 11698 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 diff --git a/docs/locales/ko/LC_MESSAGES/app4.po b/docs/locales/ko/LC_MESSAGES/app4.po index 8b8992c30..ca1545fbb 100644 --- a/docs/locales/ko/LC_MESSAGES/app4.po +++ b/docs/locales/ko/LC_MESSAGES/app4.po @@ -21,33 +21,33 @@ msgstr "" #: ../../header.rst:-1 613ca8dee3af4e18aee8824f32d62bd7 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 3fb1879bb92640d0b871ed41914b2b0d msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 5800ad4c0c8f4aea8589a92458f2afe9 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../app4.rst:14 452ac8cb00694e9abeae5f9e25ddebf6 msgid "Appendix 4: Performance Comparison Methodology" -msgstr "" +msgstr "부록 4: 성능 비교 방법론" #: ../../app4.rst:16 14ceae9e1c7f4b8f8a0319fbb991a23c msgid "" "This article documents the approach to measure :title:`PyMuPDF's` " "performance and the tools and example files used to do comparisons." -msgstr "" +msgstr "이 문서는 :title:`PyMuPDF's` 성능을 측정하는 접근 방식과 비교에 사용된 도구 및 예제 파일을 설명합니다." #: ../../app4.rst:18 707cf837e27a4490be01f4ff59f3d6e7 msgid "The following three sections deal with different performance aspects:" -msgstr "" +msgstr "다음 세 섹션은 다양한 성능 측면을 다룹니다:" #: ../../app4.rst:20 19bf7499dda54ae094b5f694a8ea950f msgid "" @@ -55,13 +55,13 @@ msgid "" " :title:`PDFs`, then writing them to an output file. Because the same " "basic activities are also used for joining (merging) :title:`PDFs`, the " "results also apply to these use cases." -msgstr "" +msgstr ":ref:`Document Copying` - 이것은 :title:`PDFs` 를 열고 파싱한 다음 출력 파일에 쓰는 것을 포함합니다. 동일한 기본 활동이 :title:`PDFs` 를 결합(병합)하는 데도 사용되므로, 결과는 이러한 사용 사례에도 적용됩니다." #: ../../app4.rst:21 8902b7d3bdf44cdeb0a02ebaeb788364 msgid "" ":ref:`Text Extraction` - This extracts plain text " "from :title:`PDFs` and writes it to an output text file." -msgstr "" +msgstr ":ref:`Text Extraction` - 이것은 :title:`PDFs` 에서 일반 텍스트를 추출하고 출력 텍스트 파일에 씁니다." #: ../../app4.rst:22 c9e28e548b684c15b6fc6c839fb268d0 msgid "" @@ -70,7 +70,7 @@ msgid "" "prerequisite for using a tool in :title:`Python GUI` scripts to scroll " "through documents. We have chosen a medium-quality (resolution 150 DPI) " "version." -msgstr "" +msgstr ":ref:`Page Rendering` - 이것은 |PDF| 페이지를 페이지와 동일하게 보이는 이미지 파일로 변환합니다. 이 기능은 :title:`Python GUI` 스크립트에서 문서를 스크롤하기 위해 도구를 사용하는 기본 전제 조건입니다. 중간 품질(해상도 150 DPI) 버전을 선택했습니다." #: ../../app4.rst:24 d8c56f0cbbb4415497587ade558105c9 msgid "" @@ -80,92 +80,92 @@ msgid "" "This cannot be avoided because tools other than |PyMuPDF| do not offer " "the option to e.g., separate the image **creation** step from the " "following step, which **writes** the image into a file." -msgstr "" +msgstr "모든 경우에 |PDF| 구조를 처리하는 실제 속도가 직접 측정되지 않는다는 점에 유의하세요: 대신 타이밍에는 운영 체제의 파일 시스템에 파일을 쓰는 데 걸리는 시간도 포함됩니다. |PyMuPDF| 이외의 도구는 예를 들어 이미지 **생성** 단계를 이미지를 파일에 **쓰는** 다음 단계와 분리하는 옵션을 제공하지 않기 때문에 이것을 피할 수 없습니다." #: ../../app4.rst:26 c95dca0ce6a24b9cbb4e54005da736be msgid "" "So all timings documented include a common, OS-oriented base effort. " "Therefore, performance **differences per tool are actually larger** than " "the numbers suggest." -msgstr "" +msgstr "따라서 문서화된 모든 타이밍에는 공통 OS 지향 기본 작업이 포함됩니다. 따라서 도구별 성능 **차이는 실제로 숫자가 시사하는 것보다 큽니다**." #: ../../app4.rst:33 5c8d1822086844e0b5b6e63e24468509 msgid "Files used" -msgstr "" +msgstr "사용된 파일" #: ../../app4.rst:35 2439752153d84180a23a0e99527d8073 msgid "" "A set of eight files is used for the performance testing. With each file " "we have the following information:" -msgstr "" +msgstr "성능 테스트에 8개의 파일 세트가 사용됩니다. 각 파일에 대해 다음 정보가 있습니다:" #: ../../app4.rst:37 b31835ad665241aebc8bce9496462a0b msgid "**Name** of the file and download **link**." -msgstr "" +msgstr "파일의 **이름** 및 다운로드 **링크**." #: ../../app4.rst:38 01b0b7ddaf6342b6acea40fc10548232 msgid "**Size** in bytes." -msgstr "" +msgstr "바이트 단위의 **크기**." #: ../../app4.rst:39 5cefe438dda843c68dd254d3911dbf09 msgid "Total number of **pages** in file." -msgstr "" +msgstr "파일의 총 **페이지** 수." #: ../../app4.rst:40 245d148da06d4becad20aec51e1fd3bf msgid "Total number of bookmarks (**Table of Contents** entries)." -msgstr "" +msgstr "책갈피(**목차** 항목)의 총 수." #: ../../app4.rst:41 ff1a2993e3254f7686a848f577c48582 msgid "Total number of **links**." -msgstr "" +msgstr "**링크** 의 총 수." #: ../../app4.rst:42 fb20f6986d82495e9890d8753eb1f276 msgid "**KB size** per page." -msgstr "" +msgstr "페이지당 **KB 크기**." #: ../../app4.rst:43 1224aaf0dfde40e1a5c3bc91ef4011ff msgid "" "**Textsize per page** is the amount text in the whole file in KB, divided" " by the number of pages." -msgstr "" +msgstr "**페이지당 텍스트 크기** 는 전체 파일의 텍스트 양(KB)을 페이지 수로 나눈 값입니다." #: ../../app4.rst:44 8ceb2129883142a09c9d4d383789ed99 msgid "Any **notes** to generally describe the type of file." -msgstr "" +msgstr "파일 유형을 일반적으로 설명하는 **참고 사항**." #: ../../app4.rst:50 ../../app4.rst:217 ../../app4.rst:295 ../../app4.rst:407 #: 1b162242a4a54f7dafcae32349b4ed33 930f7531af8b4c2db858b7c3c63f1c57 #: b459ef8255c34d8bb8f10527b5b13ae0 dd23f2e000014a6ebfbb0df71f4f4550 msgid "**Name**" -msgstr "" +msgstr "**이름**" #: ../../app4.rst:51 651fc5cd40134ce993378901eaed782d msgid "**Size (bytes)**" -msgstr "" +msgstr "**크기 (바이트)**" #: ../../app4.rst:52 830651a701b543dd92495f528872e442 msgid "**Pages**" -msgstr "" +msgstr "**페이지**" #: ../../app4.rst:53 ad04afd00ac744a8b7c099d48dcdc0c3 msgid "**TOC size**" -msgstr "" +msgstr "**목차 크기**" #: ../../app4.rst:54 4286cb4118494c3c97aa7190ce52bbe1 msgid "**Links**" -msgstr "" +msgstr "**링크**" #: ../../app4.rst:55 dfccc56073594677aaaf87774c57e911 msgid "**KB/page**" -msgstr "" +msgstr "**KB/페이지**" #: ../../app4.rst:56 85615f3120044a3d8f55f0e03fbe8400 msgid "**Textsize/page**" -msgstr "" +msgstr "**텍스트 크기/페이지**" #: ../../app4.rst:57 2ed30a8ee08e4381913a180905dc4905 msgid "**Notes**" -msgstr "" +msgstr "**참고 사항**" #: ../../app4.rst:58 81403b323ce2471990b6addcb9d327ed msgid "`adobe.pdf`" @@ -403,39 +403,39 @@ msgstr "" #: ../../app4.rst:121 513e58b0ccf547edaf2e1b8d4fc09391 msgid "single page, graphics oriented, large file size" -msgstr "" +msgstr "단일 페이지, 그래픽 지향, 큰 파일 크기" #: ../../app4.rst:127 b1d1466a4d4f46ee97f9c0c14866930d msgid "" "**adobe.pdf** and **pymupdf.pdf** are clearly text oriented, **artifex-" "website.pdf** and **sample-50-MB-pdf-file.pdf** are graphics oriented. " "Other files are a mix of both." -msgstr "" +msgstr "**adobe.pdf** 와 **pymupdf.pdf** 는 명확히 텍스트 지향적이며, **artifex-website.pdf** 와 **sample-50-MB-pdf-file.pdf** 는 그래픽 지향적입니다. 다른 파일들은 둘 다의 혼합입니다." #: ../../app4.rst:131 a46db6b46cbd476c9aa08e828b1899a9 msgid "Tools used" -msgstr "" +msgstr "사용된 도구" #: ../../app4.rst:133 eff071706abe45db98dc970ba599955e msgid "" "In each section, the same fixed set of |PDF| files is being processed by " "a set of tools. The set of tools used per performance aspect however " "varies, depending on the supported tool features." -msgstr "" +msgstr "각 섹션에서 동일한 고정된 |PDF| 파일 세트가 도구 세트에 의해 처리됩니다. 그러나 성능 측면별로 사용되는 도구 세트는 지원되는 도구 기능에 따라 다릅니다." #: ../../app4.rst:135 e7ff37e32cbd4cdc993c645e7658d227 msgid "" "All tools are either platform independent, or at least can run on both, " ":title:`Windows` and :title:`Unix` / :title:`Linux`." -msgstr "" +msgstr "모든 도구는 플랫폼 독립적이거나 최소한 :title:`Windows` 와 :title:`Unix` / :title:`Linux` 모두에서 실행할 수 있습니다." #: ../../app4.rst:141 7507beef7859479e94a8fa9cce614373 msgid "**Tool**" -msgstr "" +msgstr "**도구**" #: ../../app4.rst:142 7e5c5082ee244cc1850b389fa76d162b msgid "**Description**" -msgstr "" +msgstr "**설명**" #: ../../app4.rst:143 ../../app4.rst:172 ../../app4.rst:218 ../../app4.rst:296 #: ../../app4.rst:368 ../../app4.rst:408 51f2639233354454a2be6c8cf943caae @@ -443,69 +443,69 @@ msgstr "" #: cf82339face445409b1cb2230b1cf737 e2f4e337aa6f46ff9d1a57a84bd40231 #: ea0496359fd4419f88ac295b9d5a7c35 msgid "|PyMuPDF|" -msgstr "" +msgstr "|PyMuPDF|" #: ../../app4.rst:144 265dd2b9a51a4748ae710d0a7781b16c msgid "The tool of this manual." -msgstr "" +msgstr "이 매뉴얼의 도구." #: ../../app4.rst:145 0d7018f04c2d4b8b91e09d879a94c489 msgid "PDFrw_" -msgstr "" +msgstr "PDFrw_" #: ../../app4.rst:146 1871dfbb59ed44559c1143b8f664ab3b msgid "" "A pure :title:`Python` tool, being used by :title:`rst2pdf`, has " "interface to :title:`ReportLab`." -msgstr "" +msgstr ":title:`rst2pdf` 에서 사용되는 순수 :title:`Python` 도구로, :title:`ReportLab` 에 대한 인터페이스를 가집니다." #: ../../app4.rst:147 db3dc67db0384a4caf25ec3159cc9e8c msgid "PyPDF2_" -msgstr "" +msgstr "PyPDF2_" #: ../../app4.rst:148 f00f0472c11846dd8a6d1cb0ac0237bf msgid "A pure :title:`Python` tool with a large function set." -msgstr "" +msgstr "큰 함수 집합을 가진 순수 :title:`Python` 도구." #: ../../app4.rst:149 719bb221eb5b4d34a21a977bfddfa966 msgid "PDFMiner_" -msgstr "" +msgstr "PDFMiner_" #: ../../app4.rst:150 7c679bd2a294494c86c754ffaddb5cf3 msgid "A pure :title:`Python` to extract text and other data from |PDF|." -msgstr "" +msgstr "|PDF| 에서 텍스트 및 기타 데이터를 추출하는 순수 :title:`Python`." #: ../../app4.rst:151 ef3100ff8d5049009f9896ca197346c5 msgid "XPDF_" -msgstr "" +msgstr "XPDF_" #: ../../app4.rst:152 89c9c95eccee414e90d74c494ef8fa0c msgid "A command line utility with multiple functions." -msgstr "" +msgstr "여러 기능을 가진 명령줄 유틸리티." #: ../../app4.rst:153 3ac8573211c94c1996a3f39372a5c365 msgid "PikePDF_" -msgstr "" +msgstr "PikePDF_" #: ../../app4.rst:154 ad269cc30d2f43dbbd44e72f1cfa24e9 msgid "" "A :title:`Python` package similar to :title:`PDFrw`, but based on " ":title:`C++` library :title:`QPDF`." -msgstr "" +msgstr ":title:`PDFrw` 와 유사한 :title:`Python` 패키지이지만, :title:`C++` 라이브러리 :title:`QPDF` 를 기반으로 합니다." #: ../../app4.rst:155 f7a4dbe832784e9c80a9bec19efd26e4 msgid "PDF2JPG_" -msgstr "" +msgstr "PDF2JPG_" #: ../../app4.rst:156 2354f030ddfb48028e2dc5dcdca588bf msgid "" "A :title:`Python` package specialized on rendering |PDF| pages to " ":title:`JPG` images." -msgstr "" +msgstr "|PDF| 페이지를 :title:`JPG` 이미지로 렌더링하는 데 특화된 :title:`Python` 패키지." #: ../../app4.rst:164 20ec5781714e43979415d31bca6e4d91 msgid "Copying / Joining / Merging" -msgstr "" +msgstr "복사 / 결합 / 병합" #: ../../app4.rst:166 24e5ae35daf74ce5af40e0c2fc945067 msgid "" @@ -515,36 +515,36 @@ msgid "" "one go, front to end. :title:`PDFrw` too, has a *lazy* strategy for " "parsing, meaning it only parses those parts of a document that are " "required in any moment." -msgstr "" +msgstr "|PDF| 파일을 읽고 내용을 추가 처리하기 위해 파싱하는 속도는 얼마나 빠른가? 순수 파싱 성능은 직접 비교할 수 없습니다. 왜냐하면 배치 유틸리티는 항상 요청된 작업을 처음부터 끝까지 한 번에 완전히 실행하기 때문입니다. :title:`PDFrw` 도 *지연* 파싱 전략을 가지며, 이는 언제든지 필요한 문서 부분만 파싱한다는 의미입니다." #: ../../app4.rst:168 9030ee0b64da48c4b6ba3563a6fe7da8 msgid "" "To find an answer to the question, we therefore measure the time to copy " "a |PDF| file to an output file with each tool, and do nothing else." -msgstr "" +msgstr "이 질문에 대한 답을 찾기 위해, 각 도구로 |PDF| 파일을 출력 파일에 복사하는 데 걸리는 시간을 측정하고 다른 작업은 수행하지 않습니다." #: ../../app4.rst:170 ../../app4.rst:365 75c4e9d6b0f94276ad4a46e7ca064b4c #: d29245da53b44d4c931cdfd53a686bcb msgid "These are the :title:`Python` commands for how each tool is used:" -msgstr "" +msgstr "각 도구를 사용하는 방법에 대한 :title:`Python` 명령은 다음과 같습니다:" #: ../../app4.rst:180 40554a7aac2c4529a5cea2cb201adc33 msgid ":title:`PDFrw`" -msgstr "" +msgstr ":title:`PDFrw`" #: ../../app4.rst:190 2027a14c030c4dafa9b213b842921038 msgid ":title:`PikePDF`" -msgstr "" +msgstr ":title:`PikePDF`" #: ../../app4.rst:198 0554b1918f0442929d092d7d1aa8c6db msgid ":title:`PyPDF2`" -msgstr "" +msgstr ":title:`PyPDF2`" #: ../../app4.rst:210 ../../app4.rst:288 ../../app4.rst:399 #: 0cc77d5085aa42b092a9d28c9f9b93d1 2151ed94f39e42489d9407b0a8ac0ccb #: 8e952a6e6d1d46499282ea93f770529c msgid "**Observations**" -msgstr "" +msgstr "**관찰 결과**" #: ../../app4.rst:212 ../../app4.rst:290 ../../app4.rst:401 #: 190b33a2a1264d58900d557c11876da4 2995f439d6cb495da4b80e31d49c47a7 @@ -552,20 +552,20 @@ msgstr "" msgid "" "These are our run time findings in **seconds** along with a base rate " "summary compared to |PyMuPDF|:" -msgstr "" +msgstr "다음은 **초** 단위의 실행 시간 결과와 |PyMuPDF| 와 비교한 기준 비율 요약입니다:" #: ../../app4.rst:219 a51de26a6852481a8e70a53e96187379 msgid "**PDFrw**" -msgstr "" +msgstr "**PDFrw**" #: ../../app4.rst:220 933434ca403749c0a4f630ffec63fbf0 msgid "**PikePDF**" -msgstr "" +msgstr "**PikePDF**" #: ../../app4.rst:221 ../../app4.rst:298 93a77920ab2f426481a1d5037c17135f #: a5fda08d4d34464ba81569732331f63c msgid "**PyPDF2**" -msgstr "" +msgstr "**PyPDF2**" #: ../../app4.rst:222 ../../app4.rst:300 ../../app4.rst:411 #: 5544726c03fb43a2afaa6c61866bba6a 5ade818fb72c4831ad8691c9cf811c78 @@ -745,7 +745,7 @@ msgstr "" #: 147889494a0342d39c8d7bc589e777a1 9dde60202b154d62bb5dc5da1b8f3eb4 #: dcdc53ddede34633afbb78b8cb474780 msgid "**Total**" -msgstr "" +msgstr "**총계**" #: ../../app4.rst:263 482ff9ef77514db0a3105d43540c6a79 msgid "**3.05**" @@ -767,7 +767,7 @@ msgstr "" #: 39d408ac310b429a9f4630de549c0218 b1cedcb976d7467cb64b4a03e059059f #: d60f7ab07be042e9ac4f315656e9d80e msgid "**Rate compared to PyMuPDF**" -msgstr "" +msgstr "**PyMuPDF 와 비교한 비율**" #: ../../app4.rst:273 ../../app4.rst:351 ../../app4.rst:452 #: 5fe241f7da6f4f1287b2ef598e77e63a a1eabf390faf4118b9fbf1c23bcaa970 @@ -789,23 +789,23 @@ msgstr "" #: ../../app4.rst:283 1cd4fd60fed8493aa0180e6aced6f887 msgid "Text Extraction" -msgstr "" +msgstr "텍스트 추출" #: ../../app4.rst:285 43ec059052ef49239504e79c59d48792 msgid "" "The following table shows plain text extraction durations. All tools have" " been used with their most basic functionality - i.e. no layout re-" "arrangements, etc." -msgstr "" +msgstr "다음 표는 일반 텍스트 추출 기간을 보여줍니다. 모든 도구는 가장 기본적인 기능으로 사용되었습니다 -- 즉, 레이아웃 재배치 등이 없습니다." #: ../../app4.rst:297 ../../app4.rst:409 493d81649a04476aa7e157c8155e8816 #: c7a4bc884d3e4b39ab49157d277af5e6 msgid "**XPDF**" -msgstr "" +msgstr "**XPDF**" #: ../../app4.rst:299 55447e13f7cc43598fde158caf1adfbf msgid "**PDFMiner**" -msgstr "" +msgstr "**PDFMiner**" #: ../../app4.rst:301 71ff39c17b764e46a725f342a082f147 msgid "2.01" @@ -961,25 +961,25 @@ msgstr "" #: ../../app4.rst:360 00b592ac57f64130a8654c00830f154e msgid "Page Rendering" -msgstr "" +msgstr "페이지 렌더링" #: ../../app4.rst:362 f5119aaf183e4f4eb483e9c337c88488 msgid "" "We have tested rendering speed of |PyMuPDF| against :title:`pdf2jpg` and " ":title:`XPDF` at a resolution of 150 DPI," -msgstr "" +msgstr "150 DPI 해상도에서 :title:`pdf2jpg` 및 :title:`XPDF` 와 비교하여 |PyMuPDF| 의 렌더링 속도를 테스트했습니다," #: ../../app4.rst:382 02cf04dabcd44b9998f6e4e25bbca5ee msgid ":title:`XPDF`" -msgstr "" +msgstr ":title:`XPDF`" #: ../../app4.rst:389 90770272b10c416e84826a42e1c212cc msgid ":title:`PDF2JPG`" -msgstr "" +msgstr ":title:`PDF2JPG`" #: ../../app4.rst:410 c717d43cc70e48e98e87edcf403d8b03 msgid "**PDF2JPG**" -msgstr "" +msgstr "**PDF2JPG**" #: ../../app4.rst:412 da606418caee4a099a285d88fdee4bcb msgid "51.33" @@ -1099,5 +1099,5 @@ msgstr "" #: ../../footer.rst:46 6f6b539ff34a4640ab8af9e5deaeacb0 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/archive-class.mo b/docs/locales/ko/LC_MESSAGES/archive-class.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..3269971cea984c91702eeba4d5cbd57c17de90a8 100644 GIT binary patch literal 10390 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 diff --git a/docs/locales/ko/LC_MESSAGES/archive-class.po b/docs/locales/ko/LC_MESSAGES/archive-class.po index 547af409f..34d24fb44 100644 --- a/docs/locales/ko/LC_MESSAGES/archive-class.po +++ b/docs/locales/ko/LC_MESSAGES/archive-class.po @@ -21,27 +21,27 @@ msgstr "" #: ../../header.rst:-1 7172941a6af740c8a8c939eeb12aab6f msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 7f24f6f0cd5c48f7b5ef12886e7d3dc2 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 2ce7ac460eea4d7fa274674358f58cb3 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "|PDF| 텍스트 추출, |PDF| 이미지 추출, |PDF| 변환, |PDF| 테이블, |PDF| 분할, |PDF| 생성, Pyodide, PyScript" #: ../../archive-class.rst:7 4da66911f34043f4b535f63a47cba447 msgid "Archive" -msgstr "" +msgstr "Archive (아카이브)" #: ../../archive-class.rst:9 1dbbb103178b492a8c9bf5b05d021272 msgid "New in v1.21.0" -msgstr "" +msgstr "v1.21.0에서 새로 추가됨" #: ../../archive-class.rst:11 1e7ee6091313470abe0dcc5c8168a504 msgid "" @@ -49,81 +49,81 @@ msgid "" "files like ZIP and TAR archives. Archives allow accessing arbitrary " "collections of file folders, ZIP / TAR files and single binary data " "elements as if they all were part of one hierarchical tree of folders." -msgstr "" +msgstr "이 클래스는 ZIP 및 TAR 아카이브와 같은 파일 폴더 및 컨테이너 파일의 일반화를 나타냅니다. 아카이브는 파일 폴더, ZIP/TAR 파일 및 단일 바이너리 데이터 요소의 임의 컬렉션에 접근할 수 있게 하며, 모두 하나의 계층적 폴더 트리의 일부인 것처럼 처리합니다." #: ../../archive-class.rst:13 bc799244f4a54577b1ab6043ddcef969 msgid "" "In PyMuPDF, archives are currently only used by :ref:`Story` objects to " "specify where to look for fonts, images and other resources." -msgstr "" +msgstr "|PyMuPDF| 에서 아카이브는 현재 :ref:`Story` 객체에서만 사용되며, 글꼴, 이미지 및 기타 리소스를 찾을 위치를 지정합니다." #: ../../archive-class.rst:16 733307d2ac0c48d5943722db88b66ca3 msgid "**Method / Attribute**" -msgstr "" +msgstr "**메서드 / 속성**" #: ../../archive-class.rst:16 067a02c3d0eb402e87db2ab8a79cec6a msgid "**Short Description**" -msgstr "" +msgstr "**간략 설명**" #: ../../archive-class.rst:18 917e00b33c264053b763260480ae3cb0 msgid ":meth:`Archive.add`" -msgstr "" +msgstr ":meth:`Archive.add`" #: ../../archive-class.rst:18 5758685d282946d0b76452d8a3d35bf1 msgid "add new data to the archive" -msgstr "" +msgstr "아카이브에 새 데이터 추가" #: ../../archive-class.rst:19 96e83a97ca3a4e0d99f2eba9b8dd862c msgid ":meth:`Archive.has_entry`" -msgstr "" +msgstr ":meth:`Archive.has_entry`" #: ../../archive-class.rst:19 e29b1efc996f43298b3e2c9fd91522a4 msgid "check if given name is a member" -msgstr "" +msgstr "주어진 이름이 멤버인지 확인" #: ../../archive-class.rst:20 7e3fbbcec68b4db0b0e06433c33177c1 msgid ":meth:`Archive.read_entry`" -msgstr "" +msgstr ":meth:`Archive.read_entry`" #: ../../archive-class.rst:20 4cbe9ceb4c8744f69ad9da999cf33862 msgid "read the data given by the name" -msgstr "" +msgstr "이름으로 지정된 데이터 읽기" #: ../../archive-class.rst:21 40716b5223004d5ba100ffb57f39be5a msgid ":attr:`Archive.entry_list`" -msgstr "" +msgstr ":attr:`Archive.entry_list`" #: ../../archive-class.rst:21 c6a15b6d228b4c37a9d06697f7992694 msgid "list[dict] of archive items" -msgstr "" +msgstr "아카이브 항목의 list[dict]" #: ../../archive-class.rst:24 d96c6d9573704987968f177a3bf7a3ad msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../archive-class.rst:30 d4ac6bed829f43429a56efde53217fce msgid "Creates a new archive. Without parameters, an empty archive is created." -msgstr "" +msgstr "새 아카이브를 생성합니다. 매개변수가 없으면 빈 아카이브가 생성됩니다." #: ../../archive-class.rst:32 ce56c558cdfd467bb88c2e5a14edbc06 msgid "If provided, `content` may be one of the following:" -msgstr "" +msgstr "제공되는 경우 `content` 는 다음 중 하나일 수 있습니다:" #: ../../archive-class.rst:34 b4730a481ea84967b6cb58ae9fe5ba6e msgid "another Archive: the archive is being made a sub-archive of the new one." -msgstr "" +msgstr "다른 Archive: 아카이브가 새 아카이브의 하위 아카이브가 됩니다." #: ../../archive-class.rst:36 5b42f6018b314dbca0ec8d6039baf4d7 msgid "" "a string: this must be the name of a local folder or file. `pathlib.Path`" " objects are also supported." -msgstr "" +msgstr "문자열: 로컬 폴더 또는 파일의 이름이어야 합니다. `pathlib.Path` 객체도 지원됩니다." #: ../../archive-class.rst:38 619d605a712947c2a548c8e110f21c7d msgid "" "A **folder** will be converted to a sub-archive, so its files (and any " "sub-folders) can be accessed by their names." -msgstr "" +msgstr "**폴더** 는 하위 아카이브로 변환되므로 파일(및 모든 하위 폴더)을 이름으로 접근할 수 있습니다." #: ../../archive-class.rst:39 4cd647737643458d9e392abbb2da302c msgid "" @@ -131,13 +131,13 @@ msgid "" "`bytes` object) be treated as a single-member sub-archive. In this case, " "the `path` parameter is **mandatory** and should be the member name under" " which this item can be found / retrieved." -msgstr "" +msgstr "**파일** 은 `\"rb\"` 모드로 읽히며 이 바이너리 데이터(`bytes` 객체)는 단일 멤버 하위 아카이브로 처리됩니다. 이 경우 `path` 매개변수는 **필수** 이며 이 항목을 찾거나 검색할 수 있는 멤버 이름이어야 합니다." #: ../../archive-class.rst:41 6b1e54d53ee048bebe0aa7b13aa24963 msgid "" "a `zipfile.ZipFile` or `tarfile.TarFile` object: Will be added as a sub-" "archive." -msgstr "" +msgstr "`zipfile.ZipFile` 또는 `tarfile.TarFile` 객체: 하위 아카이브로 추가됩니다." #: ../../archive-class.rst:43 3e15f440e05843dc80023b21dca6c101 msgid "" @@ -145,7 +145,7 @@ msgid "" "add a single-member sub-archive. In this case, the `path` parameter is " "**mandatory** and should be the member name under which this item can be " "found / retrieved." -msgstr "" +msgstr "Python 바이너리 객체(`bytes`, `bytearray`, `io.BytesIO`): 단일 멤버 하위 아카이브를 추가합니다. 이 경우 `path` 매개변수는 **필수** 이며 이 항목을 찾거나 검색할 수 있는 멤버 이름이어야 합니다." #: ../../archive-class.rst:45 0d17f917bfaf4703827752f14540c1b0 msgid "" @@ -153,23 +153,23 @@ msgid "" "the member name ``name``. ``data`` may be a Python binary object or a " "local file name (in which case its binary file content is used). Use this" " format if you need to specify `path`." -msgstr "" +msgstr "튜플 `(data, name)`: 멤버 이름 ``name`` 을 가진 단일 멤버 하위 아카이브를 추가합니다. ``data`` 는 Python 바이너리 객체이거나 로컬 파일 이름일 수 있습니다(이 경우 바이너리 파일 내용이 사용됨). `path` 를 지정해야 하는 경우 이 형식을 사용하세요." #: ../../archive-class.rst:47 1597cdc3f8254638bf2cdf9bc2309574 msgid "" "a Python sequence: This is a convenience format to specify any " "combination of the above." -msgstr "" +msgstr "Python 시퀀스: 위 항목의 임의 조합을 지정하는 편의 형식입니다." #: ../../archive-class.rst:49 4988de212ed54833a49be91d2d82d21d msgid "If provided, `path` must be a string." -msgstr "" +msgstr "제공되는 경우 `path` 는 문자열이어야 합니다." #: ../../archive-class.rst:51 f90f1ba75dbd4b94be663d3d1a03ce47 msgid "" "If `content` is either binary data or a file name, this parameter is " "mandatory and must be the name under which the data can be found." -msgstr "" +msgstr "`content` 가 바이너리 데이터이거나 파일 이름인 경우 이 매개변수는 필수이며 데이터를 찾을 수 있는 이름이어야 합니다." #: ../../archive-class.rst:53 2b3e0332d6b34ab1ad0dd16b095eadfe msgid "" @@ -181,7 +181,7 @@ msgid "" "members of a ZIP sub-archive, their names must be prefixed with " "`\"path/\"`. The main purpose of this parameter probably is to " "differentiate between duplicate names." -msgstr "" +msgstr "그렇지 않으면 이 매개변수는 선택 사항입니다. 폴더 이름이나 마운트 포인트를 시뮬레이션하는 데 사용할 수 있으며, 이 하위 아카이브의 요소를 찾을 수 있습니다. 예를 들어 이 사양 `Archive((data, \"name\"), \"path\")` 는 `data` 가 요소 이름 `\"path/name\"` 을 사용하여 찾을 수 있음을 의미합니다. 다른 하위 아카이브도 마찬가지입니다: ZIP 하위 아카이브의 멤버를 검색하려면 이름에 `\"path/\"` 접두사가 있어야 합니다. 이 매개변수의 주요 목적은 아마도 중복 이름을 구분하는 것입니다." #: ../../archive-class.rst:55 5faa270a9a8e4b1e9cb54ca0b81bec9e msgid "" @@ -190,77 +190,77 @@ msgid "" "appending more data to an archive (see :meth:`Archive.add`) no check for " "duplicates will be made. Use the `path` parameter to prevent this from " "happening." -msgstr "" +msgstr "아카이브에 중복 항목 이름이 존재하는 경우 항상 해당 이름의 마지막 항목이 찾아지거나 검색됩니다. 아카이브 생성 중 또는 아카이브에 더 많은 데이터를 추가하는 동안(:meth:`Archive.add` 참조) 중복 확인이 수행되지 않습니다. 이를 방지하려면 `path` 매개변수를 사용하세요." #: ../../archive-class.rst:59 8f8691f33cb24edf8cf015488e88618a msgid "" "Append a sub-archive. The meaning of the parameters are exactly the same " "as explained above. Of course, parameter `content` is not optional here." -msgstr "" +msgstr "하위 아카이브를 추가합니다. 매개변수의 의미는 위에서 설명한 것과 정확히 같습니다. 물론 여기서는 `content` 매개변수가 선택 사항이 아닙니다." #: ../../archive-class.rst:63 d7d9c4ee5eb44c0b95fe42f32102c97a msgid "Checks whether an entry exists in any of the sub-archives." -msgstr "" +msgstr "항목이 하위 아카이브 중 하나에 존재하는지 확인합니다." #: ../../archive-class.rst 5f8828ec2f374296878d56b8bda07845 #: 8a109a840a9f48f69f8ad6d589cd57ea msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../archive-class.rst:65 ../../archive-class.rst:73 #: 9a6f2dbd567f43d2bfe08e06091dcabb ed415071f9ec4041bffb1dcf6075f18d msgid "" "The fully qualified name of the entry. So must include any `path` prefix " "under which the entry's sub-archive has been added." -msgstr "" +msgstr "항목의 정규화된 이름. 항목의 하위 아카이브가 추가된 `path` 접두사를 포함해야 합니다." #: ../../archive-class.rst 77dc263426c34dc88d2d354f2137f0bd #: d7ec8d61f7784b09a3583b2731f89a03 msgid "Returns" -msgstr "" +msgstr "반환값" #: ../../archive-class.rst:67 82d8554eda284d14be8c15dcd79fb3ca msgid "`True` or `False`." -msgstr "" +msgstr "`True` 또는 `False`." #: ../../archive-class.rst:71 a873f11522bd47f09f770c162ec439ca msgid "Retrieve the data of an entry." -msgstr "" +msgstr "항목의 데이터를 검색합니다." #: ../../archive-class.rst:75 1dcd801a861448d2bc31a0ae9ab2b9ca msgid "" "The binary data (`bytes`) of the entry. If not found, an exception is " "raised." -msgstr "" +msgstr "항목의 바이너리 데이터(`bytes`). 찾을 수 없으면 예외가 발생합니다." #: ../../archive-class.rst:79 7e31c0d4b2874e7aa8dd5ae7daa91341 msgid "" "A list of the archive's sub-archives. Each list item is a dictionary with" " the following keys:" -msgstr "" +msgstr "아카이브의 하위 아카이브 목록. 각 목록 항목은 다음 키를 가진 딕셔너리입니다:" #: ../../archive-class.rst:81 dc6567d9e6a4485690cf0a5f6fb09b30 msgid "`entries` -- a list of (top-level) entry names in this sub-archive." -msgstr "" +msgstr "`entries` -- 이 하위 아카이브의 (최상위) 항목 이름 목록." #: ../../archive-class.rst:82 78d2dbe9caeb4e6b9ae6de4d14d95e52 msgid "" "`fmt` -- the format of the sub-archive. This is one of the strings " "\"dir\" (file folder), \"zip\" (ZIP archive), \"tar\" (TAR archive), or " "\"tree\" for single binary entries or file content." -msgstr "" +msgstr "`fmt` -- 하위 아카이브의 형식. 문자열 \"dir\"(파일 폴더), \"zip\"(ZIP 아카이브), \"tar\"(TAR 아카이브) 또는 단일 바이너리 항목이나 파일 내용의 경우 \"tree\" 중 하나입니다." #: ../../archive-class.rst:83 8934885694024d44ac1f04c95acb8fae msgid "" "`path` -- the value of the `path` parameter under which this sub-archive " "was added." -msgstr "" +msgstr "`path` -- 이 하위 아카이브가 추가된 `path` 매개변수의 값." #: ../../archive-class.rst:85 9bd80fbd40594e6da4b7541250d79442 msgid "**Example:**" -msgstr "" +msgstr "**예제:**" #: ../../footer.rst:46 23b6293c2dc24cbd87c6de2cd2f05c0c msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/changes.mo b/docs/locales/ko/LC_MESSAGES/changes.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..d94b51090aee65a161fbc9db05bc6f0ab2fcbd0c 100644 GIT binary patch literal 1266 zcmd5*&ubGw6kfF;K~v3AG7blquC+;_qJG+KKhzmW>)}%yu8PaS` zKx9pDniaZbPJl;7i&SHOu}hY@%D6quO4E$N?A{ltlA#Nsn_4ei;*9o>t5`Wb$B?e1 zvRp3-DN#|&UJ=~}3I$y&kP_p0ix;VxWtb)kmI;QQ;gnYZdB{;g0oxq5NKI-~Y#mEy zhb_TvzytJB+2|GqE8kTzO3fTtqQLkVxu zB$b-SR8uSC%_#7~8U`fIXwhR}HWphjbic*5d0)aPb83)fwAEI?EOkSBE;s|d$GO0a zPmQXP3;98Rz=t<1&>)hol(2|E&+n8Bs+%*AEl_SVF;^COGJTQfwVh|2M9eH+v#BXC zozaEw9y1w7Z_v1k0*f@m43Pc7DJ(G@zADZ@6*`+cZvCiJZ-aZf>z+0ypvSw-ug>ST z`)U0W@0_f6-tG^wI-A>GVtaQ$IH$GF-r*o}H=1tki#K|gX7FFuma6?htAbPC?aLi? zTCd@}-Rf+tkAZXCc54l{xev}x3-xtst)UAj(5*Empyva4pSkZ_?!gKkx= ma)`2>`iH^Ky@*0%lj9gexD0iTOcjibt&EK~?_rc= LWHrz;=3)Q z#26vLgd#?Ki6OBHAtllHPy7Mw^*=b*Ym3Hs$=tIud3K(e+4*&)b6dghBHC57l<)lU zE#mnS+S4YkBD!dsXe($P7Zjx*@fqS1w4Z1`U+qwo%ZOu$Hew2K8Sw|=1mf*Z{KdG? z^K3yGH>l$e2$tLLz*aBCK&oGr@RCh zha43Yu*`Oe)TBnq(NS7!mju@U6X>>UG=#y*H#)ga%^X;w$oLJ&S(-b?OyPu;Y!TI4 zesDpv{N{if1~j{Lz_meGu-Nn$!%Bu*kC-M%GDq$QqfoKppr1%MdMn%?nr61e1xY&v zJx9jef+?v$ENc0HV$OoUR@5hTm0>0rkeS7G8_Dg~3VbOMGF=~yx~8jHuL6Eia-NHq&C zzNiY1t+qq5jL!KH7)qr^4Lxk}!bm7%xSSef0-wWC!L%E$GaMO&;5ghf7)mG8iSza& z;hqp~hQPs+Y{^Cufp2xwHmGh6f>xy5VPe=7c`|U$^UKaNP7tPmD7?{;X=ngX( z$JyZEN-B)eS!O^q9O*}i_VU)3kLBKuw|3B2-}>q%9_wp0@J_b8ligtbyvnisQu978 z{S}o*OZC?~0i(XU;gf1xfh$kS_3i!U<&}z8{)*@SZLVC~YV4M*zJRk@wZ5_h^04NW zcfHCE$jvGyu9vHAY0T}FE8WnN_uf{$y_a644BjrP?!wv8J_^dU_pRlZmG6z>HsqT_ z`QgypTb1k2<@!Nb!EjT{FQUDeAitHp{qouA2KL;j;`1l@YQGuwrSP_VciKwx8$>m$ AVE_OC delta 60 vcmZqUT*0h!Pl#nI0}wC*u?!HafH+7%2gt4hO6mgX&HEV38CebVjJX&9)D{Mh diff --git a/docs/locales/ko/LC_MESSAGES/classes.po b/docs/locales/ko/LC_MESSAGES/classes.po index 7b10ca45e..a340657ba 100644 --- a/docs/locales/ko/LC_MESSAGES/classes.po +++ b/docs/locales/ko/LC_MESSAGES/classes.po @@ -21,25 +21,25 @@ msgstr "" #: ../../header.rst:-1 72d124a4df2940ae91c02b99f3c82423 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 0da5ffd890c841748068ca615eab3107 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 9d0127c5f1f14daa981562792c65c9b5 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../classes.rst:5 fe9040dd12d946768ce0d27a27fdaf3d msgid "Classes" -msgstr "" +msgstr "클래스" #: ../../footer.rst:46 8ffd075421f949e383a9682ed7ae841d msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/colors.mo b/docs/locales/ko/LC_MESSAGES/colors.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..0642de5080316b722e5d13af0b5a1910e627c5c9 100644 GIT binary patch literal 4739 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 delta 60 vcmZoxUBRq#Pl#nI0}wC*u?!HafH+7%2gt4hO6mgX%?2FhjI0KF##{^l)QJWm diff --git a/docs/locales/ko/LC_MESSAGES/colors.po b/docs/locales/ko/LC_MESSAGES/colors.po index 1fb25051c..a0742f59f 100644 --- a/docs/locales/ko/LC_MESSAGES/colors.po +++ b/docs/locales/ko/LC_MESSAGES/colors.po @@ -21,30 +21,30 @@ msgstr "" #: ../../header.rst:-1 f7f80c710949468b8bd435236ad8e2c4 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 128dbd8ce067437e9fa9367d9a81490c msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 fc29ad4440c04367a8583f77893f5da0 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../colors.rst:7 904c9bd5c37245ada62e1853d3d3ab41 msgid "Color Database" -msgstr "" +msgstr "색상 데이터베이스" #: ../../colors.rst:8 3a6a8c4737a04dff80244d2af0ec3eb5 msgid "" "Since the introduction of methods involving colors (like " ":meth:`Page.draw_circle`), a requirement may be to have access to " "predefined colors." -msgstr "" +msgstr ":meth:`Page.draw_circle` 과 같은 색상을 포함하는 메서드가 도입된 이후, 미리 정의된 색상에 액세스할 필요가 있을 수 있습니다." #: ../../colors.rst:10 413288a3680f4de18bf71a5e9d578ce4 msgid "" @@ -53,7 +53,7 @@ msgid "" "memorizable names. Among them are not only standard names like \"green\" " "or \"blue\", but also \"turquoise\", \"skyblue\", and 100 (not only 50 " "...) shades of \"gray\", etc." -msgstr "" +msgstr "훌륭한 GUI 패키지 `wxPython `_ 는 540개 이상의 미리 정의된 RGB 색상 데이터베이스를 가지고 있으며, 각각 기억하기 쉬운 이름이 부여되어 있습니다. 그 중에는 \"green\"이나 \"blue\"와 같은 표준 이름뿐만 아니라 \"turquoise\", \"skyblue\", 그리고 \"gray\"의 100가지(50가지뿐만 아니라...) 음영 등이 포함되어 있습니다." #: ../../colors.rst:12 14609f03f5aa4aaa8e49243c7e03e485 msgid "" @@ -62,21 +62,21 @@ msgid "" "float triples: for wxPython's *(\"WHITE\", 255, 255, 255)* we return *(1," " 1, 1)*, which can be directly used in *color* and *fill* parameters. We " "also accept any mixed case of \"wHiTe\" to find a color." -msgstr "" +msgstr "이 데이터베이스(튜플 목록)를 PyMuPDF로 복사하여 수정하고 색상을 PDF 호환 float 삼중값으로 사용할 수 있게 했습니다: wxPython의 *(\"WHITE\", 255, 255, 255)* 에 대해 *(1, 1, 1)* 을 반환하며, 이것은 *color* 및 *fill* 매개변수에서 직접 사용할 수 있습니다. 또한 색상을 찾기 위해 \"wHiTe\"와 같은 대소문자 혼합도 허용합니다." #: ../../colors.rst:15 9ad1f31ffff5428d982d997142d514ed msgid "Function *getColor()*" -msgstr "" +msgstr "함수 *getColor()*" #: ../../colors.rst:16 a622de02c9de4a36be638603c453810c msgid "" "As the color database may not be needed very often, one additional import" " statement seems acceptable to get access to it::" -msgstr "" +msgstr "색상 데이터베이스가 자주 필요하지 않을 수 있으므로, 액세스하기 위해 하나의 추가 import 문이 허용되는 것으로 보입니다::" #: ../../colors.rst:41 77d5cf06ffb64791bf093176968e3823 msgid "Printing the Color Database" -msgstr "" +msgstr "색상 데이터베이스 인쇄" #: ../../colors.rst:42 671f64b3cd454ac79241e57967a08885 msgid "" @@ -89,9 +89,9 @@ msgid "" "difference is sorting order: one takes the RGB values, the other one the " "Hue-Saturation-Values as sort criteria. This is a screen print of what " "these files look like." -msgstr "" +msgstr "실제로 사용 가능한 많은 색상이 어떻게 보이는지 확인하려면 examples 디렉토리의 `RGB로 인쇄 `_ 또는 `HSV로 인쇄 `_ 스크립트를 사용하세요. 이들은 이러한 모든 색상이 포함된 PDF를 생성합니다(이미 같은 디렉토리에 존재). 유일한 차이점은 정렬 순서입니다: 하나는 RGB 값을 사용하고 다른 하나는 색상-채도-값을 정렬 기준으로 사용합니다. 이것은 이러한 파일이 어떻게 보이는지에 대한 화면 인쇄입니다." #: ../../footer.rst:46 8a7d56a546234904856ce9f0b72c1614 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/colorspace.mo b/docs/locales/ko/LC_MESSAGES/colorspace.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..a27e2ac56bb055cf18d28fa04a9fc0ff31e04d03 100644 GIT binary patch literal 2818 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 delta 60 vcmX>vwt`vbo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%o0VA08CebVjJX&9;yngU diff --git a/docs/locales/ko/LC_MESSAGES/converting-files.po b/docs/locales/ko/LC_MESSAGES/converting-files.po index 7e8d183d8..790d4a12c 100644 --- a/docs/locales/ko/LC_MESSAGES/converting-files.po +++ b/docs/locales/ko/LC_MESSAGES/converting-files.po @@ -21,27 +21,27 @@ msgstr "" #: ../../header.rst:-1 f8990f687e0047c89745e6b15ef5f312 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 606c02d809cb449ab8e5df484cb2149f msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 90891c93f09445feb007b8f80d447d93 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../converting-files.rst:7 153e0c6c14bf4b8bac1dcdc565ac0f16 msgid "Converting Files" -msgstr "" +msgstr "파일 변환" #: ../../converting-files.rst:12 9b1bc6f3061c4fd9a084829ef7554c37 msgid "Files to PDF" -msgstr "" +msgstr "파일을 PDF로" #: ../../converting-files.rst:14 38d5a093dfc24e72b3627f1a2c952515 msgid "" @@ -49,52 +49,52 @@ msgid "" "converted to |PDF| by using the :meth:`Document.convert_to_pdf` method. " "This method returns a buffer of data which can then be utilized by " "|PyMuPDF| to create a new |PDF|." -msgstr "" +msgstr ":ref:`|PyMuPDF| 가 지원하는 문서 유형` 은 :meth:`Document.convert_to_pdf` 메서드를 사용하여 쉽게 |PDF| 로 변환할 수 있습니다. 이 메서드는 데이터 버퍼를 반환하며, 이를 |PyMuPDF| 에서 사용하여 새로운 |PDF| 를 생성할 수 있습니다." #: ../../converting-files.rst:18 ../../converting-files.rst:38 #: ../../converting-files.rst:62 ../../converting-files.rst:82 #: 2eff8f1c0f704e9d9e23a98078353847 7345723f19864e81be97447aab194cd9 #: c3ae18efff164928b70b884d3a47caac ecdbf8cbbb2d46bc9bf312b716b264af msgid "**Example**" -msgstr "" +msgstr "**예제**" #: ../../converting-files.rst:32 4e3eda1d4bff4593ae1f0333bcc47a5d msgid "PDF to SVG" -msgstr "" +msgstr "PDF를 SVG로" #: ../../converting-files.rst:34 d8f0e0e26f99486485d27038482b5558 msgid "" "Technically, as SVG files cannot be multipage, we must export each page " "as an SVG." -msgstr "" +msgstr "기술적으로 SVG 파일은 다중 페이지를 지원하지 않으므로 각 페이지를 SVG로 내보내야 합니다." #: ../../converting-files.rst:36 45efc8839a1b44e9a877335aa51df1b6 msgid "" "To get an SVG representation of a page use the :meth:`Page.get_svg_image`" " method." -msgstr "" +msgstr "페이지의 SVG 표현을 얻으려면 :meth:`Page.get_svg_image` 메서드를 사용하세요." #: ../../converting-files.rst:58 9249883d41654d3c8041c561743679c6 msgid "PDF to Markdown" -msgstr "" +msgstr "PDF를 Markdown으로" #: ../../converting-files.rst:60 9d35a0dc74c742419817cfab8ac5fbb6 msgid "" "By utlilizing the :doc:`PyMuPDF4LLM API ` we are able to" " convert PDF to a Markdown representation." -msgstr "" +msgstr ":doc:`PyMuPDF4LLM API ` 를 활용하여 PDF를 Markdown 표현으로 변환할 수 있습니다." #: ../../converting-files.rst:76 a8c608159d57471c89e55f3c44adafe2 msgid "PDF to DOCX" -msgstr "" +msgstr "PDF를 DOCX로" #: ../../converting-files.rst:78 443eb3ec0d3a4ba89f8e4361a7607e16 msgid "" "Use the pdf2docx_ library which uses |PyMuPDF| to provide document " "conversion from |PDF| to **DOCX** format." -msgstr "" +msgstr "|PyMuPDF| 를 사용하여 |PDF| 에서 **DOCX** 형식으로 문서 변환을 제공하는 pdf2docx_ 라이브러리를 사용하세요." #: ../../footer.rst:46 bf92de7cbdc140fba9255f9a43b9932a msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/coop_low.mo b/docs/locales/ko/LC_MESSAGES/coop_low.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..891cc5095b1a564f59591cd73a1030f13dcab6c7 100644 GIT binary patch literal 6673 zcmaJ_ZEqY`6&|2aa6yIgRs={#5v8{4-R4ChW!r?hjgz>t6Dx5kMTmO5JG(n%c4nEG zjkBeyoOn|?i9=lKjW_K&-KtI;SFYIDPH==H5K^Tg;3oj$3qm`y;!7*OAi;C)otfP@ zPNLW+bLZak`kd$7$=@EjudLwDxAF5W{M`2mero;k@%#aPn)vwxmRCNdDEC7iyH8O% zAzy|33giOh=ONc2V~~G@B*_0jJ_z~nrxoRC$WF*4qz?Hz$iF})AkTdUIw3!VoP_)V zj1>48^2?BWKC38rr5uKwfP4`Wf0e)D7wh{c641m_=2MR3-2HJqKxw+$Vc(~U&x0bzw;$U!9SH=E6+oo zfP4v(WNUd_b2QU+NHs|}UCqXVtEDJqB?~#cpuC#V;xwqaSu5pG+OjFH zAJ3_IO4^$0>Xz9gl+3DT2HRe?tQ;BGYdBp!gxK`-?Vg8`v_7g-=vQXaAQNRwa0;iA0bQG)LBJUYd!#E9RVbFkU4kuHkl$KTtMr#M> zWCwL7QmU&aMhrcpx&;7ZM7T7T)m<&-Vq9u*WGKl9*CC^?ELEBeRTnN7=8L z01r$K38X6r04Wib2knW&vl(oj#9wQ5C@jGd#j)R1_Rt8<8*>MFxEm{Ti z6d^m(!ysv`B&mjFW*j{ww8&zjC=%a2;y9zq(a;V^RN69-Ol}%0&pnse%my0LMA^_3 z$)Y&fts42PO1o)mH;pmSWDi4&>}m9rK#C|OqnEbte1vjZ&a#Wt2^=5Z{|wq4_Hz~* zE@|a*NI+6`v@U^^yyZChDBz4!+Hoye5OlyjNS!GykLDB}%UbV$zMmW`?T*30t|&*y zCbzE06<1Q`sYj$&rDLj55DmObv`5-dGY&#WUbr%j?iK_kIXz)p-cel2sYOPon#}6j zF?H17ZsJsMfzsS>qiXUf7nH+HX<#WsGDI6%QB*Ci9JE{Pkxm{rf+V}5spZ6#u;GvRUHNbFCUx#EsuLRGpu%}FuOx2>llWJV_I3MMM z8xqB}VV4dJ4-WLuk64ICf9}YkgOZ~H0z=VY8HMQX&K5G7QN#?u94>%b`MjF53b;!k zg^p|449ZTPpFJVB@JYzGS2QxiO9*_<*lIqjCqcQk4wh!zzkoR>)ZaE*WwN6= z$*idwjs*e~mk|*Xyly)#624(fP|$RnXfr|hdM>A>bf5=h$IP#qnBl>^mg9cs#{3{w zafgCo%Rb695e|q%`(zVYjKKRMSSgAi7-{X%N|c~2iemITv<007SSOEe0bwI@af8C3 z4gj7i*lalj4yK1@_E4~@rwrj1-T(wk@`OCvD%6*sbS9C9*^J>%TCa~=LZJpVDDfbJ=HhZ+duGh@7}$K`;Hvh zgRN$!0K_Kfs1-fLhBYF%ytN>4#RNU0;<`oK`je7?%yc;uT8O5e}0_2mGQ>%Ep$>V zW*J^%1qwFgfxQU=4V?-NaSou!f3x0m?;x9Hq;q-FTYw89-D2VFygxTZD2I1>O_+G2 z7G_{}x|JAjah3eaytiCx&dzh@Icvyd`Bt-x1CtdTn)J_H4>G0r)vyr$+?sej`x>Xc z6;ISeo~1<;@_LP@0oV$gOw2#5$xlu1iorsW1v%C<{ z|E;TxOU~|0-J3&t&d!5zAgYaeNqAMh#UDTSYBd?OXzMW3?HQ>CZh>v5Q0vBT*4W-I zfa6!fKv-=F=mfyA?%e={CQdXjE=m|P5Wse5LuS?x(-pB?S`)hkrv=^Sou5L(zz0DZ z?NDTc-q|Ib$Jjfg4T|z?=8%O{SY&<$O*g4cMpQcz2y8wfW9^6nID6c^3mvH2h+3U z*Gi3>Q%r(=Dxq7zFzKEXM`Eu%{~ zb3wqQyPK*1{QDS%{(Pwo4LsvH3wLcx=KF|VaI=acW&)Kc4|o79zM=m@Qrs4y z2kdzJcNZ7B)iCn1*cz6tiF(icZQSr8V|e8 G`TYMq%)FTZ delta 60 vcmbPevVvLXo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%oAY?e8CebVjJX&9-PQ(x diff --git a/docs/locales/ko/LC_MESSAGES/coop_low.po b/docs/locales/ko/LC_MESSAGES/coop_low.po index d85cce791..d8772b3de 100644 --- a/docs/locales/ko/LC_MESSAGES/coop_low.po +++ b/docs/locales/ko/LC_MESSAGES/coop_low.po @@ -21,37 +21,37 @@ msgstr "" #: ../../header.rst:-1 8d754aed1e2740038b917c525f18b9ca msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 48fc1e2d0d4044849ac51203907c3038 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 9455ddb086974d8fbdb10bf9926ee2c2 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../coop_low.rst:7 1424337399114434a5fcad7ec04fb525 msgid "Working together: DisplayList and TextPage" -msgstr "" +msgstr "함께 작업하기: DisplayList 및 TextPage" #: ../../coop_low.rst:8 a3db195fac9545f6bcdb871b180a3157 msgid "Here are some instructions on how to use these classes together." -msgstr "" +msgstr "이러한 클래스를 함께 사용하는 방법에 대한 지침입니다." #: ../../coop_low.rst:10 0151aabe7884411ab744c548ff37a84f msgid "" "In some situations, performance improvements may be achievable, when you " "fall back to the detail level explained here." -msgstr "" +msgstr "일부 상황에서는 여기서 설명하는 세부 수준으로 돌아가면 성능 개선을 달성할 수 있습니다." #: ../../coop_low.rst:13 54d7972a1340441eaea756f718523d0b msgid "Create a DisplayList" -msgstr "" +msgstr "DisplayList 생성" #: ../../coop_low.rst:14 c98d7572988c49e6a0b6a9e9719d1774 msgid "" @@ -62,78 +62,78 @@ msgid "" "levels), or if text search and text extraction should both be performed, " "overhead can be saved, if the display list is created only once and then " "used for all other tasks." -msgstr "" +msgstr ":ref:`DisplayList` 는 해석된 문서 페이지를 나타냅니다. 픽스맵 생성, 텍스트 추출 및 텍스트 검색 메서드는 모두 -- 배후에서 -- 페이지의 디스플레이 리스트를 사용하여 작업을 수행합니다. 페이지를 여러 번 렌더링해야 하거나(예: 확대/축소 수준 변경), 텍스트 검색과 텍스트 추출을 모두 수행해야 하는 경우, 디스플레이 리스트를 한 번만 생성한 다음 다른 모든 작업에 사용하면 오버헤드를 절약할 수 있습니다." #: ../../coop_low.rst:18 4e74ccb447ad4e808e44350168bf55d2 msgid "" "You can also create display lists for many pages \"on stack\" (in a " "list), may be during document open, during idling times, or you store it " "when a page is visited for the first time (e.g. in GUI scripts)." -msgstr "" +msgstr "여러 페이지에 대한 디스플레이 리스트를 \"스택에\"(리스트에) 생성할 수도 있습니다. 문서를 열 때, 유휴 시간 동안, 또는 페이지를 처음 방문할 때(예: GUI 스크립트) 저장할 수 있습니다." #: ../../coop_low.rst:20 12bb2e8c763e4ad3a237fd80266a2543 msgid "" "Note, that for everything what follows, only the display list is needed " "-- the corresponding :ref:`Page` object could have been deleted." -msgstr "" +msgstr "다음의 모든 작업에는 디스플레이 리스트만 필요합니다. 해당 :ref:`Page` 객체는 삭제되었을 수 있습니다." #: ../../coop_low.rst:23 686688813b8745b284b6d509397757da msgid "Generate Pixmap" -msgstr "" +msgstr "픽스맵 생성" #: ../../coop_low.rst:24 d5a176c44d9a4202a1247dbea491d65e msgid "" "The following creates a Pixmap from a :ref:`DisplayList`. Parameters are " "the same as for :meth:`Page.get_pixmap`." -msgstr "" +msgstr "다음은 :ref:`DisplayList` 에서 픽스맵을 생성합니다. 매개변수는 :meth:`Page.get_pixmap` 과 동일합니다." #: ../../coop_low.rst:28 141a5838b45c4b229d3aa4b5d32e29e6 #, python-format msgid "" "The execution time of this statement may be up to 50% shorter than that " "of :meth:`Page.get_pixmap`." -msgstr "" +msgstr "이 문의 실행 시간은 :meth:`Page.get_pixmap` 보다 최대 50% 짧을 수 있습니다." #: ../../coop_low.rst:31 23be506420454ef7b8ccdcabdadf9684 msgid "Perform Text Search" -msgstr "" +msgstr "텍스트 검색 수행" #: ../../coop_low.rst:32 304eb217224047588efee4d3a4959ad2 msgid "With the display list from above, we can also search for text." -msgstr "" +msgstr "위의 디스플레이 리스트를 사용하여 텍스트를 검색할 수도 있습니다." #: ../../coop_low.rst:34 6f3c8ea4c8134e719b9c2c789a52eaf5 msgid "For this we need to create a :ref:`TextPage`." -msgstr "" +msgstr "이를 위해 :ref:`TextPage` 를 생성해야 합니다." #: ../../coop_low.rst:42 702318fa16304e26a6dbff34f1f56e8c msgid "Extract Text" -msgstr "" +msgstr "텍스트 추출" #: ../../coop_low.rst:43 50018abeea15456b936054a8e8301808 msgid "" "With the same :ref:`TextPage` object from above, we can now immediately " "use any or all of the 5 text extraction methods." -msgstr "" +msgstr "위의 동일한 :ref:`TextPage` 객체를 사용하여 이제 5가지 텍스트 추출 메서드 중 하나 또는 모두를 즉시 사용할 수 있습니다." #: ../../coop_low.rst:45 01c692d0961a48d78607d7cdef1b8734 msgid "" "Above, we have created our text page without argument. This leads to a " "default argument of 3 (:data:`ligatures` and white-space are preserved), " "IAW images will **not** be extracted -- see below." -msgstr "" +msgstr "위에서 인수 없이 텍스트 페이지를 생성했습니다. 이것은 기본 인수 3(:data:`ligatures` 및 공백이 보존됨)으로 이어지며, 즉 이미지는 **추출되지 않습니다** -- 아래를 참조하세요." #: ../../coop_low.rst:54 15150223bde3445b8a3ddc5a334745ce msgid "Further Performance improvements" -msgstr "" +msgstr "추가 성능 개선" #: ../../coop_low.rst:56 815c6e2e62894b99850c2da374681e5c msgid "Pixmap" -msgstr "" +msgstr "픽스맵" #: ../../coop_low.rst:57 5fa23435785d41b3aa98150e549e6a24 msgid "As explained in the :ref:`Page` chapter:" -msgstr "" +msgstr ":ref:`Page` 장에서 설명한 대로:" #: ../../coop_low.rst:59 d7489842cfb34a66b6decf4e2c4626a6 #, python-format @@ -141,17 +141,17 @@ msgid "" "If you do not need transparency set *alpha = 0* when creating pixmaps. " "This will save 25% memory (if RGB, the most common case) and possibly 5% " "execution time (depending on the GUI software)." -msgstr "" +msgstr "투명도가 필요하지 않으면 픽스맵을 생성할 때 *alpha = 0* 을 설정하세요. 이것은 25%의 메모리를 절약하고(RGB인 경우, 가장 일반적인 경우) GUI 소프트웨어에 따라 실행 시간을 약 5% 절약할 수 있습니다." #: ../../coop_low.rst:62 85b6f710f9d440e6a4e7167325c704a1 msgid "TextPage" -msgstr "" +msgstr "TextPage" #: ../../coop_low.rst:63 eacc58b3ec3b4895b3defc1f4a0cff2b msgid "" "If you do not need images extracted alongside the text of a page, you can" " set the following option:" -msgstr "" +msgstr "페이지의 텍스트와 함께 이미지를 추출할 필요가 없으면 다음 옵션을 설정할 수 있습니다:" #: ../../coop_low.rst:68 494f5310e02d4bc18d9d3742d80c9a1d #, python-format @@ -159,13 +159,13 @@ msgid "" "This will save ca. 25% overall execution time for the HTML, XHTML and " "JSON text extractions and **hugely** reduce the amount of storage (both, " "memory and disk space) if the document is graphics oriented." -msgstr "" +msgstr "이것은 HTML, XHTML 및 JSON 텍스트 추출의 전체 실행 시간을 약 25% 절약하고, 문서가 그래픽 지향적인 경우 스토리지(메모리 및 디스크 공간 모두)의 양을 **대폭** 줄입니다." #: ../../coop_low.rst:70 c7b5ac2b784947f6a4bd325d1474f9b8 msgid "If you however do need images, use a value of 7 for flags:" -msgstr "" +msgstr "하지만 이미지가 필요한 경우 플래그에 7 값을 사용하세요:" #: ../../footer.rst:46 74ed18ccd6ca45b28e31f30369c051a8 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/device.mo b/docs/locales/ko/LC_MESSAGES/device.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..d995d99d170374dd4d17560b59353a14579d8f88 100644 GIT binary patch literal 3269 zcma)8&u<&Y72dY#FEv5a7CE&j9$cWc6zx_&kUFJ*AdE$)DkO`LnII{GhAVO?ZoS;y z?k;Vy@Ii_wz>(!vhDnIx19@R%BNO?0YXouSE~Omot0l9}uA5?2=2W&LISe zw=?@@-uJ%uy%|3J?sIhopKs&$1N>@oFz|W)ON#OW#xKDB1NQr{Ux)n&SRqH=_?(&<1}6a?^H+YF;#hWLy2U^$z-uF-o|skcfbwwV8W~q5U#8-uW_!ht>)Y2jIuEXUn7||E6(~ zQMO>}i{9xmxT*ji@C(?^vl1R zJD(bw(LG9Su?U+w!z*l0;LWkCa|S%O|&F#Mr6n8jRh1L7(P zdR0P%d7p@per#5Aaqr8zic&V6`b)EAh3#KiV3l z;P(ybb8lJt1nZAPt4^Y^B5wahY(0ht@zw^vUgP&xM6*hwwH4Iy-R0M=@@qR9CaPlp zpubC}y-Y#9D(=?cN1gpA;%+;>DJa|mp<4Bz-VoJ8xM>8SfEd&^c*>Ivv)cA%9p6>aFhL5I&xtxqtWoS-l%b<|IS%_8+Ko*bY{a?cSlNZb=>R z>up2{s_hsD0*PvKlzLdiM{TivBdq5ZAfVKrwm=?V|G0OF@#f@SPe4~8W}pp3U0{iKcrCb89$ zsWnl@uys=g-PjPUO@kb%3@FSw*vM zH#&bi93UWQRK@llO=9a%z>NoD4Mz*k44Kb>0>j*&)Oc-opc3-1*=>)0-UUap^rC$T z$qk$uQd=MHg~awFRd=GJg|~M2?!gzo@JQTQrcV2gtXQPU5cvCh;x0h;PAdEbi2q}E UPlf-x4N2_WfF>LK{f4Ie573T*kN^Mx delta 60 wcmX>qxq?~eo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%n^&`zGqM`!8FMiJ0Ojxo&j0`b diff --git a/docs/locales/ko/LC_MESSAGES/device.po b/docs/locales/ko/LC_MESSAGES/device.po index 7f8c86f1d..e89ca73e9 100644 --- a/docs/locales/ko/LC_MESSAGES/device.po +++ b/docs/locales/ko/LC_MESSAGES/device.po @@ -21,23 +21,23 @@ msgstr "" #: ../../header.rst:-1 db41752d7d77475b91dce6987192b03e msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 9d1395b42c0242c2937c063ec31289da msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 c674fa9ee73a4fcf888b701a69a14f4a msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../device.rst:7 d8f699f2197d4cccb1a32e36349536c8 msgid "Device" -msgstr "" +msgstr "Device (디바이스)" #: ../../device.rst:9 c03889a987f445ea84d79f3d5abfb84d msgid "" @@ -45,39 +45,39 @@ msgid "" "\"device\". Devices are the basis for everything that can be done with a " "page: rendering, text extraction and searching. The device type is " "determined by the selected construction method." -msgstr "" +msgstr "다양한 형식 핸들러(pdf, xps 등)는 페이지를 \"디바이스\"로 해석합니다. 디바이스는 페이지로 수행할 수 있는 모든 작업(렌더링, 텍스트 추출, 검색)의 기반입니다. 디바이스 유형은 선택한 생성 방법에 의해 결정됩니다." #: ../../device.rst:11 5997f573701045499919ec1f18ab7518 msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../device.rst:17 4b9fd079e127474e94506fe9eadb79d7 msgid "Constructor for either a pixel map or a display list device." -msgstr "" +msgstr "픽셀 맵 또는 디스플레이 리스트 디바이스의 생성자." #: ../../device.rst 3029384c54544ad783072064ea96675d #: ca7a504aacc440719aba0931b7724c60 msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../device.rst:19 9b095106055b4d568344ac7d142034f3 msgid "either a ``Pixmap`` or a ``DisplayList``." -msgstr "" +msgstr "``Pixmap`` 또는 ``DisplayList`` 중 하나." #: ../../device.rst:22 30003de713004e58977091af11644238 msgid "" "An optional `IRect` for ``Pixmap`` devices to restrict rendering to a " "certain area of the page. If the complete page is required, specify " "``None``. For display list devices, this parameter must be omitted." -msgstr "" +msgstr "``Pixmap`` 디바이스의 선택적 `IRect` 로, 페이지의 특정 영역으로 렌더링을 제한합니다. 전체 페이지가 필요한 경우 ``None`` 을 지정하세요. 디스플레이 리스트 디바이스의 경우 이 매개변수는 생략해야 합니다." #: ../../device.rst:27 5a3223623124424ba115721d21086469 msgid "Constructor for a text page device." -msgstr "" +msgstr "텍스트 페이지 디바이스의 생성자." #: ../../device.rst:29 8f77a7687a804d458ddb9a4be4624d77 msgid "``TextPage`` object" -msgstr "" +msgstr "``TextPage`` 객체" #: ../../device.rst:32 53c8b35c8b0e4e488b05cfbe1c988a0d msgid "" @@ -85,9 +85,9 @@ msgid "" "options can be coded into this parameter, see :ref:`TextPreserve`. To set" " these options use something like `flags=0 | TEXT_PRESERVE_LIGATURES | " "...`." -msgstr "" +msgstr "텍스트가 텍스트 페이지로 파싱되는 방식을 제어하는 플래그입니다. 현재 3가지 옵션을 이 매개변수에 코딩할 수 있으며, :ref:`TextPreserve` 를 참조하세요. 이러한 옵션을 설정하려면 `flags=0 | TEXT_PRESERVE_LIGATURES | ...` 와 같은 형식을 사용하세요." #: ../../footer.rst:46 233763b8ff7c42718f2a5b6285c3802f msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/displaylist.mo b/docs/locales/ko/LC_MESSAGES/displaylist.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..94e7c43bc86c06f474628262f37df0f4ac938bbb 100644 GIT binary patch literal 7377 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 diff --git a/docs/locales/ko/LC_MESSAGES/displaylist.po b/docs/locales/ko/LC_MESSAGES/displaylist.po index 60d4601cb..1de408312 100644 --- a/docs/locales/ko/LC_MESSAGES/displaylist.po +++ b/docs/locales/ko/LC_MESSAGES/displaylist.po @@ -21,121 +21,121 @@ msgstr "" #: ../../header.rst:-1 ff003cfb5c0b4ca9ba474a0f6e3841c2 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 c536d6f0052e4f9cbf11534486001461 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 2b6c43a92fad451db1603199ddd7c294 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../displaylist.rst:7 698bbcf656244694aa96f09767a54aa5 msgid "DisplayList" -msgstr "" +msgstr "DisplayList (디스플레이 리스트)" #: ../../displaylist.rst:9 2b6a249a9e6a46a482202e8b105e8ddc msgid "" "DisplayList is a list containing drawing commands (text, images, etc.). " "The intent is two-fold:" -msgstr "" +msgstr "DisplayList는 그리기 명령(텍스트, 이미지 등)을 포함하는 리스트입니다. 목적은 두 가지입니다:" #: ../../displaylist.rst:11 01de3b874c654c729617cd5a69c98a06 msgid "as a caching-mechanism to reduce parsing of a page" -msgstr "" +msgstr "페이지 파싱을 줄이기 위한 캐싱 메커니즘으로" #: ../../displaylist.rst:12 e47cc33899c24e9b8b48607d9cc55aca msgid "" "as a data structure in multi-threading setups, where one thread parses " "the page and another one renders pages. This aspect is currently not " "supported by PyMuPDF." -msgstr "" +msgstr "멀티스레딩 설정에서 데이터 구조로, 한 스레드는 페이지를 파싱하고 다른 스레드는 페이지를 렌더링합니다. 이 측면은 현재 PyMuPDF에서 지원되지 않습니다." #: ../../displaylist.rst:14 ff6ed96e5e434d9ab8b7c046b2b5b89e msgid "" "A display list is populated with objects from a page, usually by " "executing :meth:`Page.get_displaylist`. There also exists an independent " "constructor." -msgstr "" +msgstr "디스플레이 리스트는 일반적으로 :meth:`Page.get_displaylist` 를 실행하여 페이지의 객체로 채워집니다. 독립적인 생성자도 존재합니다." #: ../../displaylist.rst:16 66dc12118dd1430c91493428b6adb3ca msgid "" "\"Replay\" the list (once or many times) by invoking one of its methods " ":meth:`~DisplayList.run`, :meth:`~DisplayList.get_pixmap` or " ":meth:`~DisplayList.get_textpage`." -msgstr "" +msgstr "리스트를 \"재생\"하려면(한 번 또는 여러 번) 메서드 중 하나인 :meth:`~DisplayList.run`, :meth:`~DisplayList.get_pixmap` 또는 :meth:`~DisplayList.get_textpage` 를 호출하세요." #: ../../displaylist.rst:20 c6df8741dd9746c4849b6615f4787387 msgid "**Method**" -msgstr "" +msgstr "**메서드**" #: ../../displaylist.rst:20 7f551f0499df4df7ad355142c819deef msgid "**Short Description**" -msgstr "" +msgstr "**간략 설명**" #: ../../displaylist.rst:22 81094ba0fcee4f3dac4c1d13adccd9d9 msgid ":meth:`~DisplayList.run`" -msgstr "" +msgstr ":meth:`~DisplayList.run`" #: ../../displaylist.rst:22 790d819aba1b4a4e89cf7059456f3be1 msgid "Run a display list through a device." -msgstr "" +msgstr "디스플레이 리스트를 디바이스를 통해 실행합니다." #: ../../displaylist.rst:23 c12a3766ae42430fadfe30df077ebef7 msgid ":meth:`~DisplayList.get_pixmap`" -msgstr "" +msgstr ":meth:`~DisplayList.get_pixmap`" #: ../../displaylist.rst:23 a2c2be7f9085440cb858e4a52c0253c3 msgid "generate a pixmap" -msgstr "" +msgstr "픽스맵 생성" #: ../../displaylist.rst:24 2e841e7218aa459b955f952f63f85c7f msgid ":meth:`~DisplayList.get_textpage`" -msgstr "" +msgstr ":meth:`~DisplayList.get_textpage`" #: ../../displaylist.rst:24 4b5a1849844142eba8b0e00c4ea85c1b msgid "generate a text page" -msgstr "" +msgstr "텍스트 페이지 생성" #: ../../displaylist.rst:25 e7f6a71e64b144b2bb150227a7b7183b msgid ":attr:`~DisplayList.rect`" -msgstr "" +msgstr ":attr:`~DisplayList.rect`" #: ../../displaylist.rst:25 205d05395d674e39a9e4f0e958d3d06f msgid "mediabox of the display list" -msgstr "" +msgstr "디스플레이 리스트의 mediabox" #: ../../displaylist.rst:29 4a42cea626fe4460b70834ce0af2a4ef msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../displaylist.rst:35 9e9d57cb314843a081adb93c9240ac5f msgid "Create a new display list." -msgstr "" +msgstr "새 디스플레이 리스트를 생성합니다." #: ../../displaylist.rst 02a4c577c3194a778a9d75f67212861e #: 27616f064af541208365c4cf3260036b 27eb0863e4044881b0a7ef37d0114e28 #: d4d3d713dc85432f9ebc95eac1f51a09 msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../displaylist.rst:37 06aebf2ce5d941adbb8e7aa50ae0b2b8 msgid "The page's rectangle." -msgstr "" +msgstr "페이지의 사각형." #: ../../displaylist.rst 3e56029375ab4b639b13a2bd6b5dc316 #: a18c2d343b454f2bb564792a3fc55a17 d0a557e9eef6429c8aa58d2cbac510a6 msgid "Return type" -msgstr "" +msgstr "반환 유형" #: ../../displaylist.rst:40 b8ad61a1e5a44b7587e9e889a0f7b29a msgid "``DisplayList``" -msgstr "" +msgstr "``DisplayList``" #: ../../displaylist.rst:44 ce5a41193477481c88976a823b4ad9d6 msgid "" @@ -143,66 +143,66 @@ msgid "" "display list with its \"commands\" (i.e. text extraction or image " "creation). The display list can later be used to \"read\" a page many " "times without having to re-interpret it from the document file." -msgstr "" +msgstr "디스플레이 리스트를 디바이스를 통해 실행합니다. 디바이스는 디스플레이 리스트를 \"명령\"(즉, 텍스트 추출 또는 이미지 생성)으로 채웁니다. 디스플레이 리스트는 나중에 문서 파일에서 다시 해석할 필요 없이 페이지를 여러 번 \"읽는\" 데 사용할 수 있습니다." #: ../../displaylist.rst:46 2dc2aba3d46f4fc4a7820028e1a60253 msgid "" "You will most probably instead use one of the specialized run methods " "below -- :meth:`get_pixmap` or :meth:`get_textpage`." -msgstr "" +msgstr "아래의 특수화된 실행 메서드 중 하나를 사용하는 것이 좋습니다 -- :meth:`get_pixmap` 또는 :meth:`get_textpage`." #: ../../displaylist.rst:48 6e70c4b85f91448c9a7c98c37c0a0ae4 msgid "Device" -msgstr "" +msgstr "Device" #: ../../displaylist.rst:51 2f667d2e56bf4e01898f21ff9eb28571 msgid "Transformation matrix to apply to the display list contents." -msgstr "" +msgstr "디스플레이 리스트 콘텐츠에 적용할 변환 행렬." #: ../../displaylist.rst:54 b64884bb37bd4618a66990bf4733f646 msgid "" "Only the part visible within this area will be considered when the list " "is run through the device." -msgstr "" +msgstr "리스트가 디바이스를 통해 실행될 때 이 영역 내에서 보이는 부분만 고려됩니다." #: ../../displaylist.rst:65 ab527e51c453471f9f60eedf09b9d087 msgid "Run the display list through a draw device and return a pixmap." -msgstr "" +msgstr "디스플레이 리스트를 그리기 디바이스를 통해 실행하고 픽스맵을 반환합니다." #: ../../displaylist.rst:67 61769985d519468490018723da292d0a msgid "matrix to use. Default is the identity matrix." -msgstr "" +msgstr "사용할 행렬. 기본값은 항등 행렬입니다." #: ../../displaylist.rst:70 5932c2f43fdd4b4c8a0f5d2d7c994379 msgid "the desired colorspace. Default is RGB." -msgstr "" +msgstr "원하는 색 공간. 기본값은 RGB입니다." #: ../../displaylist.rst:73 fbab40e0ab2c491e9dfb956c94981baa msgid "determine whether or not (0, default) to include a transparency channel." -msgstr "" +msgstr "투명도 채널을 포함할지 여부를 결정합니다(0, 기본값은 포함하지 않음)." #: ../../displaylist.rst:75 466d20a9e3a74fb78536c5cce52c0423 msgid "" "restrict rendering to the intersection of this area with " ":attr:`DisplayList.rect`." -msgstr "" +msgstr ":attr:`DisplayList.rect` 와 이 영역의 교집합으로 렌더링을 제한합니다." #: ../../displaylist.rst:77 757d1f9a21b041c6ae4ed0b958ce457b msgid ":ref:`Pixmap`" -msgstr "" +msgstr ":ref:`Pixmap`" #: ../../displaylist.rst 65ed81ab27df4ce49e030837b6f76d44 #: bc2f03674971487f858250a2cbe58732 msgid "Returns" -msgstr "" +msgstr "반환값" #: ../../displaylist.rst:78 ea8ff1cc1cdf40caa3e75151ca6cb92c msgid "pixmap of the display list." -msgstr "" +msgstr "디스플레이 리스트의 픽스맵." #: ../../displaylist.rst:82 f854adb186fc469aa47d5bd62e907d4d msgid "Run the display list through a text device and return a text page." -msgstr "" +msgstr "디스플레이 리스트를 텍스트 디바이스를 통해 실행하고 텍스트 페이지를 반환합니다." #: ../../displaylist.rst:84 a9b235a2d522430c93c09a55cb019b92 msgid "" @@ -211,31 +211,31 @@ msgid "" " :data:`ligatures` are **passed through**, white spaces are **passed " "through** (not translated to spaces), and images are **not included**. " "See :ref:`TextPreserve`." -msgstr "" +msgstr "텍스트 페이지로 파싱되는 정보를 제어하는 플래그입니다. PyMuPDF의 기본값은 `3 = TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE` 입니다. 즉, :data:`ligatures` 는 **그대로 전달** 되고, 공백은 **그대로 전달** 되며(공백으로 변환되지 않음), 이미지는 **포함되지 않습니다**. :ref:`TextPreserve` 를 참조하세요." #: ../../displaylist.rst:86 daf0b2be9b6a4376b53e036006a9a7e3 msgid ":ref:`TextPage`" -msgstr "" +msgstr ":ref:`TextPage`" #: ../../displaylist.rst:87 4d6cd4f91f0e4964b02aad9a3db2ad8a msgid "text page of the display list." -msgstr "" +msgstr "디스플레이 리스트의 텍스트 페이지." #: ../../displaylist.rst:91 e4d71370db2d4368b08b17d8436d7747 msgid "" "Contains the display list's mediabox. This will equal the page's " "rectangle if it was created via :meth:`Page.get_displaylist`." -msgstr "" +msgstr "디스플레이 리스트의 mediabox를 포함합니다. :meth:`Page.get_displaylist` 를 통해 생성된 경우 페이지의 사각형과 같습니다." #: ../../displaylist.rst 0b6e65f6961f4c6b9882f9b9dfe93154 msgid "type" -msgstr "" +msgstr "유형" #: ../../displaylist.rst:93 f277dc21a3714454ae8f4cf4f1e5113d msgid ":ref:`Rect`" -msgstr "" +msgstr ":ref:`Rect`" #: ../../footer.rst:46 e683ef7401754f0d941d78c8c96788e0 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/document-writer-class.mo b/docs/locales/ko/LC_MESSAGES/document-writer-class.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..a4e5a6149fcadabcc80f23bf216c5114eb01edb0 100644 GIT binary patch literal 6176 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 delta 60 vcmZ2ru!33Vo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%n*+GZ8CebVjJX&9-#G?s diff --git a/docs/locales/ko/LC_MESSAGES/document-writer-class.po b/docs/locales/ko/LC_MESSAGES/document-writer-class.po index 0cb05948f..9828d8484 100644 --- a/docs/locales/ko/LC_MESSAGES/document-writer-class.po +++ b/docs/locales/ko/LC_MESSAGES/document-writer-class.po @@ -21,100 +21,100 @@ msgstr "" #: ../../header.rst:-1 b5b4277baa2f45589bb33213fe28d133 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 99651177bb7e45218e911de8509ad3d7 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 bfa8a6eb19134fd5a3ed2f7ff3e5a66b msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../document-writer-class.rst:7 9ec19dc1ee5e4333ada6ca4a81b20c76 msgid "DocumentWriter" -msgstr "" +msgstr "DocumentWriter" #: ../../document-writer-class.rst:9 a8428a7a09fa4d84ba14e57e1cd9933c msgid "|pdf_only_class|" -msgstr "" +msgstr "|pdf_only_class|" #: ../../document-writer-class.rst:12 fdd84ae0909a4d88bcdceeefa2b39965 msgid "New in v1.21.0" -msgstr "" +msgstr "v1.21.0의 새로운 기능" #: ../../document-writer-class.rst:14 2d81b86330d54196bb5037872069be5e msgid "" "This class represents a utility which can output various :ref:`document " "types supported by PyMuPDF`." -msgstr "" +msgstr "이 클래스는 |PyMuPDF| 가 :ref:`지원하는 다양한 문서 유형` 을 출력할 수 있는 유틸리티를 나타냅니다." #: ../../document-writer-class.rst:16 f752c28f5ed14d28b92bcff7e31a12f8 msgid "" "In |PyMuPDF| only used for outputting PDF documents whose pages are " "populated by :ref:`Story` DOMs." -msgstr "" +msgstr "|PyMuPDF| 에서는 :ref:`Story` DOM으로 페이지가 채워진 PDF 문서를 출력하는 데만 사용됩니다." #: ../../document-writer-class.rst:18 a51f0f40cbb0442f86dc705ad1fa8132 msgid "" "Using DocumentWriter_ also for other document types might happen in the " "future." -msgstr "" +msgstr "DocumentWriter_ 를 다른 문서 유형에도 사용하는 것은 향후 가능할 수 있습니다." #: ../../document-writer-class.rst:21 8c16e93aa1ce4c6e89c38ba3555943a2 msgid "**Method / Attribute**" -msgstr "" +msgstr "**메서드 / 속성**" #: ../../document-writer-class.rst:21 078570c061cc494ab88a122d6f975a13 msgid "**Short Description**" -msgstr "" +msgstr "**간단한 설명**" #: ../../document-writer-class.rst:23 e28aaeaab2de42e2be303102f8816b38 msgid ":meth:`DocumentWriter.begin_page`" -msgstr "" +msgstr ":meth:`DocumentWriter.begin_page`" #: ../../document-writer-class.rst:23 46462fa63c0f497ca2b40e3aa34b103a msgid "start a new output page" -msgstr "" +msgstr "새 출력 페이지 시작" #: ../../document-writer-class.rst:24 3fb4972774e64633aeb1fa920d332d0b msgid ":meth:`DocumentWriter.end_page`" -msgstr "" +msgstr ":meth:`DocumentWriter.end_page`" #: ../../document-writer-class.rst:24 deca462b344444baaba815c62c4ccf49 msgid "finish the current output page" -msgstr "" +msgstr "현재 출력 페이지 완료" #: ../../document-writer-class.rst:25 e80c1d8e184c453bbec00d4725057371 msgid ":meth:`DocumentWriter.close`" -msgstr "" +msgstr ":meth:`DocumentWriter.close`" #: ../../document-writer-class.rst:25 82b604112a0849018b6017d0b48a269a msgid "flush pending output and close the file" -msgstr "" +msgstr "대기 중인 출력을 플러시하고 파일 닫기" #: ../../document-writer-class.rst:28 77d9bb485f4345bc9066ac6cbf59d8a9 msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../document-writer-class.rst:34 ae20c5fbdb154f71a4aa713c0690c587 msgid "" "Create a document writer object, passing a Python file pointer or a file " "path. Options to use when saving the file may also be passed." -msgstr "" +msgstr "Python 파일 포인터 또는 파일 경로를 전달하여 문서 작성자 객체를 생성합니다. 파일을 저장할 때 사용할 옵션도 전달할 수 있습니다." #: ../../document-writer-class.rst:36 6124d2357c6a4781a34eddaaf0ca7dfa msgid "This class can also be used as a Python context manager." -msgstr "" +msgstr "이 클래스는 Python 컨텍스트 관리자로도 사용할 수 있습니다." #: ../../document-writer-class.rst d2e1469751bd4c2e8536b3688da9abc9 #: e1457a30002847edb1dba253d238fc76 msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../document-writer-class.rst:38 3fd7620d0e854ab3bc313135cc0b7a22 msgid "" @@ -123,13 +123,13 @@ msgid "" "document writer can create a PDF in memory. Subsequently, this PDF can be" " re-opened for input and be further manipulated. This technique is used " "by several example scripts in :ref:`Stories recipes`." -msgstr "" +msgstr "출력 파일. 이것은 문자열 파일 이름이거나 모든 Python 파일 포인터일 수 있습니다. .. note:: `io.BytesIO()` 객체를 파일 포인터로 사용하면 문서 작성자가 메모리에서 PDF를 생성할 수 있습니다. 그런 다음 이 PDF를 입력용으로 다시 열고 추가로 조작할 수 있습니다. 이 기술은 :ref:`Stories recipes` 의 여러 예제 스크립트에서 사용됩니다." #: ../../document-writer-class.rst:38 8206476585d647538a060a35c0be1961 msgid "" "the output file. This may be a string file name, or any Python file " "pointer." -msgstr "" +msgstr "출력 파일. 이것은 문자열 파일 이름이거나 모든 Python 파일 포인터일 수 있습니다." #: ../../document-writer-class.rst:40 5cc894a076804ce4bbaf88cd575d9067 msgid "" @@ -137,42 +137,42 @@ msgid "" "create a PDF in memory. Subsequently, this PDF can be re-opened for input" " and be further manipulated. This technique is used by several example " "scripts in :ref:`Stories recipes`." -msgstr "" +msgstr "`io.BytesIO()` 객체를 파일 포인터로 사용하면 문서 작성자가 메모리에서 PDF를 생성할 수 있습니다. 그런 다음 이 PDF를 입력용으로 다시 열고 추가로 조작할 수 있습니다. 이 기술은 :ref:`Stories recipes` 의 여러 예제 스크립트에서 사용됩니다." #: ../../document-writer-class.rst:42 8e2b505af0b34fec888ef183d42bc55a msgid "" "specify saving options for the output PDF. Typical are \"compress\" or " "\"clean\". More possible values may be taken from help output of the " "`mutool convert` CLI utility." -msgstr "" +msgstr "출력 PDF의 저장 옵션을 지정합니다. 일반적인 옵션은 \"compress\" 또는 \"clean\"입니다. 더 많은 가능한 값은 `mutool convert` CLI 유틸리티의 도움말 출력에서 가져올 수 있습니다." #: ../../document-writer-class.rst:46 f4aad7b430d043e1af763b51fe58f1be msgid "Start a new output page of a given dimension." -msgstr "" +msgstr "주어진 크기의 새 출력 페이지를 시작합니다." #: ../../document-writer-class.rst:48 d97df503773b4b5d804d95f381624a79 msgid "" "a rectangle specifying the page size. After this method, output " "operations may write content to the page." -msgstr "" +msgstr "페이지 크기를 지정하는 사각형. 이 메서드 후에 출력 작업이 페이지에 콘텐츠를 쓸 수 있습니다." #: ../../document-writer-class.rst:52 3357a3e14b5c4681a572cf35f2056a51 msgid "" "Finish a page. This flushes any pending data and appends the page to the " "output document." -msgstr "" +msgstr "페이지를 완료합니다. 이것은 대기 중인 모든 데이터를 플러시하고 페이지를 출력 문서에 추가합니다." #: ../../document-writer-class.rst:56 b42cc189417341c8939b89cb1ea93a07 msgid "" "Close the output file. This method is required for writing any pending " "data." -msgstr "" +msgstr "출력 파일을 닫습니다. 대기 중인 데이터를 쓰려면 이 메서드가 필요합니다." #: ../../document-writer-class.rst:58 f5b95d821dfe45629904bb96a9fb09e4 msgid "For usage examples consult the section of :ref:`Story`." -msgstr "" +msgstr "사용 예제는 :ref:`Story` 섹션을 참조하세요." #: ../../footer.rst:46 de69d88972544cf695683e1f78897d93 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/document.mo b/docs/locales/ko/LC_MESSAGES/document.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..61e793f32d642692274bb4e763edbdbf7bf676ae 100644 GIT binary patch literal 216722 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 z zqimG;f_bJHJ!8{maip3PEl1=8R62goNL<_nY*}8i&x6@%EFRmXWVoGal-w}=m1SkB zw#yKNB!_LlYI(-ouS5YvhvHOBHO$UdD6URybI&JK3aL~B*OO_yK4Rr|qO}+9-Uw$- z7%eIfE_t;{@(B^ceqHydcp_L7i5jY=*O!H;5z+tr=1q>^rI2_F?7}thw6ZzI|wZipHoD_@wBS{L5%D@Dy7D3<@{p z6AU2$-|{QZ4IAyk$T5f$k9CS~X=G4#HS@lBy!Vn|rEKM-O$VT%PKkdh<8~VY(8o#- zoAV|6@VdJ!v;F!0VPnq;E|Tnn3DR!;A$U(FhK_C_7o^WVsw>}HaoB?;qrDxjL*Nq; zJt;b?FBMtytj6MCy^8VyQH|?`N3@wlpN;yRdc*9+g!n+h$fTZ*A6|4_dUVPGUiv>& z5pwC88xl$!ik6#=PYC9+Jja(hj;fZ~cfQi_T`a}cJ(bJWf6%%WT=Il|Oi4cJtb^1P z?P5iYFDqyd8dCG}Nl}?{fg`oEFVLC-D5__FwH@eUb z3^hfy6pko4LO!143Gam8i9vYBn>)JBIj9OzVJKfoylZDX|8naVJMnMdkR3ZzWHkm7yK8~?A zij+_eRNQRl;&qC?4dZ*qHEvEb^zX0@%~W0Mt%is}55t$OF{)=Z4(nsc&e)a4>>Ib+ z)`w$Q`1UxSdNb#t?M3}n822K4j=c~XK7S&#isNpe0+(*F<8Wbyj5)@*NocFc3g^eB0i{jQOqV+fEGeW$n2_^k{prMz`*EZovS|V*x z=TSS1UT7nPV<{r4B}*P)5bBs`Xm{B$NiM)l;QA&Q+bXHyGIG=Fvj4q&%_6%`TyL5&s*axpYihYL}Uq!th^oQAsT&B*=%_*G+`;SLn<2= z1q8COL0W69nm*cMk*3DBT+GW-pLwl(>Ls#5ZC+RKWyO8E()dSfqxi*?Pd-sPp`iK4 zDB$?^yHd5A{28HSxQ+!^tj%sH@C!D22j(&hI-_@ZlB-~H*)dJ@EYskOwKO%tZ7fc% z!g1wCGLP5U$&A)ro+!C=bKf@vT5J>Fz8mH)t+Nx|AF=wP3 z30b@z*W*_^%FtZW%gdWoYIHw>)2cEqNFX6o$ts{BKVEQ3t_-9cTA6t{RV z>txG9l1XWwG;y3x9!OD*8&^YIvTmWOGnu!E1z--Rn5b*#(AoTjmyEAYV3+#4gU|f^nF=}QM57H7E+R6~BANp)&ej)RX)uzLqd^bVy$!0`7Yl`vO zp3+cJsJ!uO%zSRhx4`90?0e_8(~*Wa4;>Z>8A-=coXj57SuIRGnwh9kqa)k5G|Yk5 zQ<7O+dZ8nk7>{IR9z!G50R=%O{%j5n?^A7DNMRBIj3140@2RC|pZ4ABiSJ3tZpdlIIzL3p`#Ap}#<`A& zYOVlNOu;Epg@#f_28SxiztHB}hRiA2TkP8$e$w*cr_2I?PNAg+O|UD%1~krbTn;?p zhEa3v>@BIs1tY&7EFdMtK5{&^tdDmtXE9m-zzc3dBNAnZpfT#pIYtk~SY}7?uB68B zi10%5S?QLRW!ZA(Sk(56COXu?of_`gkL)$q#o|oH{CoFJ%910dIBX0IM@a05srhp7 zd(xO4Q5L^6!Eq#Pyo(kv)~7}ob8IGxul+HV3;UFbXDl{(^TVg%)p~ZX_i-?TpKB57 z&a$T(X*3PijwIISXP^YtKB_JG!CAw(b-}JOSEz;Xoa10`@iOScJKE#;qcy z0qP4YB=zX=M(S46xU=-3Ss9e$)nN0?^o}Y!Xu{L~gS~hEva-zXeb>+ZSG=h+#%8fX z-4N8SNM|D#!;T08uy+!VqgDwe5Q{2KRiTh{#y~B5qtIzR4T>$8a>w?PO`o8m!4vzO z|Kv8k&U=q z1Rj|}ReJo~??38QGbogU$^#sXB-e;D)&wQjoiEw+@OLJNXI-g$E)T3&j;Od-avOdM zRs_szc|Z{D-tX1KOd2$@_`ul#d(zrQ{5}9+S4xN9Yq}{K&m(}6!#qjxXC>SipDN!u z=S3gnl^Ixu6P%SqfQ+c=Hi?v^tra85g*ilF%I9WiX-01=0S0GZ*GZlE6*0IsKJo|( zOw>9b#NAC!8B@Q7TFBa)qSwtdJ9N=Tz3G=?^U<;E=n_?ai%i-^*7=&Nq>l{ik~EAC zDw;yy6-tq))BqNfVy}ANV5{za#$XCjeUojcZwhIm7A7TUHpibN9uoQB2`sA0yeDB9 zA0^d)u$MvKSIf5*=$lR%n$LQ}8CYGIU;Xo9SiNYrBwcoUF^B)0IA`^~8GEt(Lgpa6 zESM1S=8hzHB?>?~B%J*^*LIOkada~}^ z*RnI>{RVE9yG#SRu_x21!cH_|w8%GcKdjx5Q9}kl{f1)>9Y}+{jT(RG3#q;s4n{24 zu7lfMYK3&@MO}iV2ZtF8WnhyVAi$Z8!oq8j6%ReJ%>&U>+;X{&O?+R)D;9rQny_J& zDj7to!zZzl^%X2TVa5FrmRLxC~inlE0W;1>$A@RN}1jDxP zb#vh)UTHeRik(wU*lp4^{)L1a_%+DY`9LPwQuWk9ohuJ2-buESEVCQSl%1rp0Iw4~ ziQWOrLOgQ&p3X_!)o*L@fho30_27KnTRZr|CQR8rE}xaU_CiVTJwlbyT?P_Rj2M;^ z1s5zL<}ra00ZUTmz*x@7nt_oe#KecRtixFc9hfIQl>Ry5QMwu<9u4`1Dl6~Zu zG?Ow!9oD1)jfsEj(h@`gSHeJ6jIDK_TeLFDSf7mE$xu&y?1jc_4O>?6y)>r#-T`-j zCVcR8q^9CpjAp1-@Nv+`D+sg%_%P*V?`Af&mr3qn0AB<(QRtu~p2LKCbo?A;e9@Pv zqa9k8Xs0{e!mmW85Mhg$aL^=hvRNlY)`A4mi_NRj!jV-{`!l0t={y^Op#9sP77TcSPuwWL>Jh?jFsC!U8G{ z1xGW^Q~SzOc|6`iv7XNzc*hd$e-MhXS}LAz%a>j8N*d>qIC z66R1nR7UD&S1~h12C-R56tSr9Qd|XrfW#mH4oei`7|=h8!v&q;E3_KaueHXNbOP~; zqV)Eh_ZcOYf!({%6s9CQGRFv=HP_GTBSqO`296+2_dsib_cMyKsteXM$m6XoLIc8R zJh9uyCr~?L)J&dV5PDZJz#Fw!^ zBS08OC^|qy6co>zS((+6e$X#qoNOGudL7!u)32^X8izSS=DY7p6wFizY+ON}jRh<*r>D*Z`I<$~f^OHMKvnyq zzS)sdLMs|H5H_XI4J^v)Ng@iJaMdWeg;4=MId3>7mQxd{Od8ViSt0=-X1!t4rrOyt ziz*VEavY)sH!7O(5NoD6MI&`)%hYh@HVBr7juITP@4QSQlx2kh@U32}qsVo(xOy@A z(Srop1v#6+j4z!g0=dgyf(8+=U_7fcvX~wo6XCY&&hn1207KOzjs?O%kM7 zRGs3^fryavjQ_QxG~2OAN$1pQ>Ig2*YR^#v78DI3209gn~gIwViJk|hH{2dwv{GMa+YQf;e28>Qi?h7DboU17VA5yB&`z;L(xL$0N8 z=;A3r*An@T@p0lBD%M|=NebEvpp2L(QlPNax5uFFP}F%SiRJCUG8Qo}se6mIEa2;y zMZS}o>sJElCK!XEU?@%6#eEeg4Ql#Q=%W_ zdDWQ$xM?tqI&O`b2A5I?R}C%7US%xXsKVHga?Il~^rrTxAM1^JBIl-nY%HnP|22l0 zPr#oPD;!5C?hwbh(mML%$7s*VV$PkRM5Ov*iA>5ryKJ#|0HeF|{7Lx!$kKY0Ek7%< zW76NT`gn4yf)x-Q43XBKHOT_8{hH7p6Ez5$;S^s8Z~RwaN5~U(AS#ELNN!Fkkm$hy ziEWF*^(akIr&JcM=MdEK8_jZ4S60ugkezVU`U2VTTbd&LmXZ?kZ`FUuDI2!55DXYZ zuE}gB8<7I)k+eu8k$Wn_R}*k(K%y~5I~2QbDWRef#=jDoj;Vy-g>38g3L#ZqLoAJt zfgOW-Opu+VNuicVIwhE&tr%~0)5cDX#-F^JGi&` za6730?u608%~7Se#xB%pcIo(;6YZtrCs%eoCA0g}1Zgk9r7!Fn+ijiJ$F{244C0i* zp(M-c60sK6DEF*ZZm&M?+2#le=AN^Agttz_Q}3Li6alj63M7#obUJF*V8{jz66527 zUY0FG%u2{=)rSRA$hQRmaZi?(PcojmWpQ3{&ER~h^koO&mr#+WDz#P3M=f1RBCrEb z9QR{^EEf%i6J;R>_!y8&e;VI}i>T;8r`ciALdX>AseQ&Ziv^{?9$~W1!Jra^qC
anO_m{eA0mh0CsLV9_UWCAK} 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
Caip3`{4Nve%CUiq)Am$Ynu# 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 diff --git a/docs/locales/ko/LC_MESSAGES/document.po b/docs/locales/ko/LC_MESSAGES/document.po index 7ee50322f..294cbe18a 100644 --- a/docs/locales/ko/LC_MESSAGES/document.po +++ b/docs/locales/ko/LC_MESSAGES/document.po @@ -21,40 +21,40 @@ msgstr "" #: ../../header.rst:-1 43b4736175594b648a25f0be7fc42424 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 8a34ee99def04d0395e3977c82a70fb3 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 PDF(및 기타) 문서의 데이터 추출, 분석, 변환 및 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 bf3099d94f984c22b00ddb5b985eef67 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../document.rst:7 e9a8d6bb8a584459bedbb314700c7bc7 msgid "Document" -msgstr "" +msgstr "Document" #: ../../document.rst:11 3a88bb195d634bd1b5bd4e541a3d9a7e msgid "" "This class represents a document. It can be constructed from a file or " "from memory." -msgstr "" +msgstr "이 클래스는 문서를 나타냅니다. 파일 또는 메모리에서 생성할 수 있습니다." #: ../../document.rst:13 f093a1011e1247d4b515a122f0025bb6 msgid "" "There exists the alias *open* for this class, i.e. " "`pymupdf.Document(...)` and `pymupdf.open(...)` do exactly the same " "thing." -msgstr "" +msgstr "이 클래스에는 *open* 별칭이 있습니다. 즉, `pymupdf.Document(...)` 와 `pymupdf.open(...)` 는 정확히 동일한 작업을 수행합니다." #: ../../document.rst:15 77bb8938b5534efcb6b05b4559346d2f msgid "For details on **embedded files** refer to Appendix 3." -msgstr "" +msgstr "**임베디드 파일** 에 대한 자세한 내용은 부록 3을 참조하세요." #: ../../document.rst:19 ed504bde84854a89962d6285ce0c78ac msgid "" @@ -64,7 +64,7 @@ msgid "" " \"location\". The location is a tuple *(chapter, pno)* consisting of the" " chapter number and the page number **in that chapter**. Both numbers are" " zero-based." -msgstr "" +msgstr "v1.17.0부터 **EPUB 파일 전용** 새로운 페이지 주소 지정 메커니즘이 지원됩니다. 이 문서 타입은 내부적으로 장으로 구성되어 있어 페이지를 소위 \"location\" 으로 가장 효율적으로 찾을 수 있습니다. location은 장 번호와 **해당 장의** 페이지 번호로 구성된 튜플 *(chapter, pno)* 입니다. 두 숫자 모두 0부터 시작합니다." #: ../../document.rst:21 15f2eedab10243529b4aa77b9b0c2f8b msgid "" @@ -73,7 +73,7 @@ msgid "" " the page can be addressed. This may have a significant performance " "impact if the document is very large. Using the page's *(chapter, pno)* " "prevents this from happening." -msgstr "" +msgstr "여전히 (절대) 번호로 페이지를 찾을 수 있지만, 이렇게 하면 페이지를 주소 지정하기 전에 전체 EPUB 문서를 레이아웃해야 할 수 있습니다. 문서가 매우 큰 경우 성능에 상당한 영향을 줄 수 있습니다. 페이지의 *(chapter, pno)* 를 사용하면 이를 방지할 수 있습니다." #: ../../document.rst:23 a9abb22b0c094890a8af3b64d7d76262 msgid "" @@ -81,7 +81,7 @@ msgid "" " for **all file types** -- documents without this feature simply have " "just one chapter. :meth:`Document.load_page` and the equivalent index " "access now also support a *location* argument." -msgstr "" +msgstr "일관된 API를 유지하기 위해 |PyMuPDF| 는 **모든 파일 타입** 에 대해 페이지 *location* 구문을 지원합니다. 이 기능이 없는 문서는 단순히 하나의 장만 가집니다. :meth:`Document.load_page` 및 동등한 인덱스 액세스는 이제 *location* 인수도 지원합니다." #: ../../document.rst:25 9d716392e88a47ecaad2863ac6b61457 msgid "" @@ -89,1005 +89,1005 @@ msgid "" "locations, for determining the chapter count, the page count per chapter," " for computing the next and the previous locations, and the last page " "location of a document." -msgstr "" +msgstr "페이지 번호와 location 간 변환, 장 수 결정, 장당 페이지 수, 다음 및 이전 location 계산, 문서의 마지막 페이지 location을 위한 여러 메서드가 있습니다." #: ../../document.rst:28 add4a5f06f184d7ebc7b45e419cb3a63 msgid "**Method / Attribute**" -msgstr "" +msgstr "**메서드 / 속성**" #: ../../document.rst:28 5b71e73348ff43b28c42f734ed068fbd msgid "**Short Description**" -msgstr "" +msgstr "**간단한 설명**" #: ../../document.rst:30 58a8217257e948d98b9b26ab120c3aea msgid ":meth:`Document.add_layer`" -msgstr "" +msgstr ":meth:`Document.add_layer`" #: ../../document.rst:30 39da0dbb831848f1837f2799cac832e1 msgid "PDF only: make new optional content configuration" -msgstr "" +msgstr "PDF 전용: 새로운 선택적 콘텐츠 구성 만들기" #: ../../document.rst:31 d82b8d9a76b246c0a8be037689fbfa06 msgid ":meth:`Document.add_ocg`" -msgstr "" +msgstr ":meth:`Document.add_ocg`" #: ../../document.rst:31 e5ebdc27906c4b5c8896ae1c353b4787 msgid "PDF only: add new optional content group" -msgstr "" +msgstr "PDF 전용: 새로운 선택적 콘텐츠 그룹 추가" #: ../../document.rst:32 e8f6741a63574c62b27f98b22177e828 msgid ":meth:`Document.authenticate`" -msgstr "" +msgstr ":meth:`Document.authenticate`" #: ../../document.rst:32 defb0d7ebb00414b928eb0e592ae812e msgid "gain access to an encrypted document" -msgstr "" +msgstr "암호화된 문서에 액세스" #: ../../document.rst:33 b11af2c7c8694f3fa35bab1d987786a2 msgid ":meth:`Document.bake`" -msgstr "" +msgstr ":meth:`Document.bake`" #: ../../document.rst:33 cf7e8fd44e594a9c90ab7a1833253b0a msgid "PDF only: make annotations / fields permanent content" -msgstr "" +msgstr "PDF 전용: 주석/필드를 영구 콘텐츠로 만들기" #: ../../document.rst:34 20cad3262c664426bb762687b9c4bbd9 msgid ":meth:`Document.can_save_incrementally`" -msgstr "" +msgstr ":meth:`Document.can_save_incrementally`" #: ../../document.rst:34 7b023782514349ee95ef2e72917994c8 msgid "check if incremental save is possible" -msgstr "" +msgstr "증분 저장이 가능한지 확인" #: ../../document.rst:35 dc05c297ca0b4aefa1f1b7c427aa28c5 msgid ":meth:`Document.chapter_page_count`" -msgstr "" +msgstr ":meth:`Document.chapter_page_count`" #: ../../document.rst:35 4574736b834e4e998c95dfdb960afd78 msgid "number of pages in chapter" -msgstr "" +msgstr "장의 페이지 수" #: ../../document.rst:36 12d37dd646db4d7094ac889b471a0ef8 msgid ":meth:`Document.close`" -msgstr "" +msgstr ":meth:`Document.close`" #: ../../document.rst:36 4ce3e236e34a4972bcc35cabc61b8cb1 msgid "close the document" -msgstr "" +msgstr "문서 닫기" #: ../../document.rst:37 1ba7c8f336184fe5bc4a0d56e99b08ec msgid ":meth:`Document.convert_to_pdf`" -msgstr "" +msgstr ":meth:`Document.convert_to_pdf`" #: ../../document.rst:37 cc1e97d3992c4552aa43c0f0c4f6807b msgid "write a PDF version to memory" -msgstr "" +msgstr "메모리에 PDF 버전 쓰기" #: ../../document.rst:38 9d859e8c86fa4677925790093524225b msgid ":meth:`Document.copy_page`" -msgstr "" +msgstr ":meth:`Document.copy_page`" #: ../../document.rst:38 466c568ee935410294a9e211b1e10040 msgid "PDF only: copy a page reference" -msgstr "" +msgstr "PDF 전용: 페이지 참조 복사" #: ../../document.rst:39 3905e8ae3b06492b9fe02446094b4407 msgid ":meth:`Document.del_toc_item`" -msgstr "" +msgstr ":meth:`Document.del_toc_item`" #: ../../document.rst:39 9fe2cfba44bd4f73abd8e1af06023fc4 msgid "PDF only: remove a single TOC item" -msgstr "" +msgstr "PDF 전용: 단일 TOC 항목 제거" #: ../../document.rst:40 2e8f53ae81b44437bb7e36151dfdf856 msgid ":meth:`Document.delete_page`" -msgstr "" +msgstr ":meth:`Document.delete_page`" #: ../../document.rst:40 87da7bfbf0754384ad4bd489a1b62fb7 msgid "PDF only: delete a page" -msgstr "" +msgstr "PDF 전용: 페이지 삭제" #: ../../document.rst:41 ac488459c0594d6cb9b355f29f9f1434 msgid ":meth:`Document.delete_pages`" -msgstr "" +msgstr ":meth:`Document.delete_pages`" #: ../../document.rst:41 5ef25e49d8ed498fb185e70e5bbff4e3 msgid "PDF only: delete multiple pages" -msgstr "" +msgstr "PDF 전용: 여러 페이지 삭제" #: ../../document.rst:42 c2175653712c47fca1ee1cfaba870c91 msgid ":meth:`Document.embfile_add`" -msgstr "" +msgstr ":meth:`Document.embfile_add`" #: ../../document.rst:42 5fcdd01035ed45c189614dd16f46d767 msgid "PDF only: add a new embedded file from buffer" -msgstr "" +msgstr "PDF 전용: 버퍼에서 새 임베디드 파일 추가" #: ../../document.rst:43 95b5b715b6224242a7dfafbc0041b9bd msgid ":meth:`Document.embfile_count`" -msgstr "" +msgstr ":meth:`Document.embfile_count`" #: ../../document.rst:43 8f3b00e038294a4aa1b2634f512da7dc msgid "PDF only: number of embedded files" -msgstr "" +msgstr "PDF 전용: 임베디드 파일 수" #: ../../document.rst:44 d39ae28e4b06484dac1e6ba1528cce4c msgid ":meth:`Document.embfile_del`" -msgstr "" +msgstr ":meth:`Document.embfile_del`" #: ../../document.rst:44 7649e79372904462bbdd49f9ab148373 msgid "PDF only: delete an embedded file entry" -msgstr "" +msgstr "PDF 전용: 임베디드 파일 항목 삭제" #: ../../document.rst:45 964881d13cae457589969e927b3b7163 msgid ":meth:`Document.embfile_get`" -msgstr "" +msgstr ":meth:`Document.embfile_get`" #: ../../document.rst:45 93f0d4af7e2f49c08cd5565455a16206 msgid "PDF only: extract an embedded file buffer" -msgstr "" +msgstr "PDF 전용: 임베디드 파일 버퍼 추출" #: ../../document.rst:46 e82abf28eaa84b889bf8baed0b1f0132 msgid ":meth:`Document.embfile_info`" -msgstr "" +msgstr ":meth:`Document.embfile_info`" #: ../../document.rst:46 5d46af817ace455296fb97fec4708e1d msgid "PDF only: metadata of an embedded file" -msgstr "" +msgstr "PDF 전용: 임베디드 파일의 메타데이터" #: ../../document.rst:47 24b4158b60f6487290d8264abb16f507 msgid ":meth:`Document.embfile_names`" -msgstr "" +msgstr ":meth:`Document.embfile_names`" #: ../../document.rst:47 a79a87dd6905428b8c336bc3a5cbfe4c msgid "PDF only: list of embedded files" -msgstr "" +msgstr "PDF 전용: 임베디드 파일 목록" #: ../../document.rst:48 d1405add281648888c3aec36f1efa31e msgid ":meth:`Document.embfile_upd`" -msgstr "" +msgstr ":meth:`Document.embfile_upd`" #: ../../document.rst:48 3109aa1e33fe4baf82b62abfe73bf1c8 msgid "PDF only: change an embedded file" -msgstr "" +msgstr "PDF 전용: 임베디드 파일 변경" #: ../../document.rst:49 df47ab4f60c34106a30295d4248cecc3 msgid ":meth:`Document.extract_font`" -msgstr "" +msgstr ":meth:`Document.extract_font`" #: ../../document.rst:49 a57f7fb1ecec44c1bef98124eabe2af5 msgid "PDF only: extract a font by :data:`xref`" -msgstr "" +msgstr "PDF 전용: :data:`xref` 로 글꼴 추출" #: ../../document.rst:50 74fa6cb6cbf94754807bc74f0001e10c msgid ":meth:`Document.extract_image`" -msgstr "" +msgstr ":meth:`Document.extract_image`" #: ../../document.rst:50 ff6d3d0e82a64512ad8964b9c9a0628b msgid "PDF only: extract an embedded image by :data:`xref`" -msgstr "" +msgstr "PDF 전용: :data:`xref` 로 임베디드 이미지 추출" #: ../../document.rst:51 78f28501b7974812a1cd4f5830cd36dc msgid ":meth:`Document.ez_save`" -msgstr "" +msgstr ":meth:`Document.ez_save`" #: ../../document.rst:51 4a02f4a72a144d43b1754ec32416bb64 msgid "PDF only: :meth:`Document.save` with different defaults" -msgstr "" +msgstr "PDF 전용: 다른 기본값으로 :meth:`Document.save`" #: ../../document.rst:52 3154749d16cf48fe96a7f9c8425bfbf6 msgid ":meth:`Document.find_bookmark`" -msgstr "" +msgstr ":meth:`Document.find_bookmark`" #: ../../document.rst:52 143e38f832604238a5f900679410b485 msgid "retrieve page location after laid out document" -msgstr "" +msgstr "레이아웃된 문서 후 페이지 location 검색" #: ../../document.rst:53 b271556405414cbaa9d1b57ab58b468c msgid ":meth:`Document.fullcopy_page`" -msgstr "" +msgstr ":meth:`Document.fullcopy_page`" #: ../../document.rst:53 e7f3a9b06b2c485c9be33faed6e5fe7c msgid "PDF only: duplicate a page" -msgstr "" +msgstr "PDF 전용: 페이지 복제" #: ../../document.rst:54 7bbeb29bdb63453191c3222b3e097f13 msgid ":meth:`Document.get_layer`" -msgstr "" +msgstr ":meth:`Document.get_layer`" #: ../../document.rst:54 04bc7e5eed374ce89ccbc02847258286 msgid "PDF only: lists of OCGs in ON, OFF, RBGroups" -msgstr "" +msgstr "PDF 전용: ON, OFF, RBGroups의 OCG 목록" #: ../../document.rst:55 970f7427be2f4166889a754bf4d7c025 msgid ":meth:`Document.get_layers`" -msgstr "" +msgstr ":meth:`Document.get_layers`" #: ../../document.rst:55 5697cfd27e9d4b869c8dd5d641f0d33c msgid "PDF only: list of optional content configurations" -msgstr "" +msgstr "PDF 전용: 선택적 콘텐츠 구성 목록" #: ../../document.rst:56 78785446fbb14cc19554b28a594181f5 msgid ":meth:`Document.get_oc`" -msgstr "" +msgstr ":meth:`Document.get_oc`" #: ../../document.rst:56 2556f20aa201451e8bf65b2c20eada2f msgid "PDF only: get OCG /OCMD xref of image / form xobject" -msgstr "" +msgstr "PDF 전용: 이미지/폼 xobject의 OCG/OCMD xref 가져오기" #: ../../document.rst:57 258b50d4a33e45028451dc2a77148f6f msgid ":meth:`Document.get_ocgs`" -msgstr "" +msgstr ":meth:`Document.get_ocgs`" #: ../../document.rst:57 afcf637c1119411594869f521a33bd71 msgid "PDF only: info on all optional content groups" -msgstr "" +msgstr "PDF 전용: 모든 선택적 콘텐츠 그룹 정보" #: ../../document.rst:58 b9e9fda4a6094db0b0ae6679e3068cce msgid ":meth:`Document.get_ocmd`" -msgstr "" +msgstr ":meth:`Document.get_ocmd`" #: ../../document.rst:58 2f8facbc52ee427597b065b7b3e02635 msgid "PDF only: retrieve definition of an :data:`OCMD`" -msgstr "" +msgstr "PDF 전용: :data:`OCMD` 정의 검색" #: ../../document.rst:59 c07ac7981fea4d33bb0144049e3239ee msgid ":meth:`Document.get_page_fonts`" -msgstr "" +msgstr ":meth:`Document.get_page_fonts`" #: ../../document.rst:59 3236ca270e6648a08aba4bdba5284c5f msgid "PDF only: list of fonts referenced by a page" -msgstr "" +msgstr "PDF 전용: 페이지에서 참조하는 글꼴 목록" #: ../../document.rst:60 644a31787f044848869b3f02a9340f62 msgid ":meth:`Document.get_page_images`" -msgstr "" +msgstr ":meth:`Document.get_page_images`" #: ../../document.rst:60 6c413f170ae84b1d869a89042deb238e msgid "PDF only: list of images referenced by a page" -msgstr "" +msgstr "PDF 전용: 페이지에서 참조하는 이미지 목록" #: ../../document.rst:61 0bed94104d8144f38c441256e6514eb2 msgid ":meth:`Document.get_page_labels`" -msgstr "" +msgstr ":meth:`Document.get_page_labels`" #: ../../document.rst:61 41f65092ee164fc297f86373c5ab102b msgid "PDF only: list of page label definitions" -msgstr "" +msgstr "PDF 전용: 페이지 레이블 정의 목록" #: ../../document.rst:62 862369882af44617a8819906a976bc16 msgid ":meth:`Document.get_page_numbers`" -msgstr "" +msgstr ":meth:`Document.get_page_numbers`" #: ../../document.rst:62 8615e9cd79d941a78c49c2ce9ac0c575 msgid "PDF only: get page numbers having a given label" -msgstr "" +msgstr "PDF 전용: 주어진 레이블을 가진 페이지 번호 가져오기" #: ../../document.rst:63 dad59db4773e4ee9a396ad31b592ad81 msgid ":meth:`Document.get_page_pixmap`" -msgstr "" +msgstr ":meth:`Document.get_page_pixmap`" #: ../../document.rst:63 cbe4b263ffeb44519224759f35a7b530 msgid "create a pixmap of a page by page number" -msgstr "" +msgstr "페이지 번호로 페이지의 pixmap 생성" #: ../../document.rst:64 876f95670aed4e86bbdd960315d3bc1b msgid ":meth:`Document.get_page_text`" -msgstr "" +msgstr ":meth:`Document.get_page_text`" #: ../../document.rst:64 be31a13a38bd43c6913b7a80c953ee33 msgid "extract the text of a page by page number" -msgstr "" +msgstr "페이지 번호로 페이지의 텍스트 추출" #: ../../document.rst:65 978642d705ed459086758fef87cc6513 msgid ":meth:`Document.get_page_xobjects`" -msgstr "" +msgstr ":meth:`Document.get_page_xobjects`" #: ../../document.rst:65 9ce6ba28bcd84aa2a35ce24bb1699f48 msgid "PDF only: list of XObjects referenced by a page" -msgstr "" +msgstr "PDF 전용: 페이지에서 참조하는 XObject 목록" #: ../../document.rst:66 b597ff3290d34f83bf1b564ee7d148f8 msgid ":meth:`Document.get_sigflags`" -msgstr "" +msgstr ":meth:`Document.get_sigflags`" #: ../../document.rst:66 16ae9c3a7a1e428283fdbab18375d352 msgid "PDF only: determine signature state" -msgstr "" +msgstr "PDF 전용: 서명 상태 확인" #: ../../document.rst:67 87689643a05c46b4868a2969cda519ea msgid ":meth:`Document.get_toc`" -msgstr "" +msgstr ":meth:`Document.get_toc`" #: ../../document.rst:67 031806a18b7d4bc0a5ca012eda1b7dbb msgid "extract the table of contents" -msgstr "" +msgstr "목차 추출" #: ../../document.rst:68 5cfc41d652204ddc955125491bc8ba44 msgid ":meth:`Document.get_xml_metadata`" -msgstr "" +msgstr ":meth:`Document.get_xml_metadata`" #: ../../document.rst:68 08d4b18bcfad4ff28f56780ac161ad6d msgid "PDF only: read the XML metadata" -msgstr "" +msgstr "PDF 전용: XML 메타데이터 읽기" #: ../../document.rst:69 ff2b33d4bb2c42f4bb77426a3e22dbd7 msgid ":meth:`Document.has_annots`" -msgstr "" +msgstr ":meth:`Document.has_annots`" #: ../../document.rst:69 1e8a505220e24e65a8c808697aa64afa msgid "PDF only: check if PDF contains any annots" -msgstr "" +msgstr "PDF 전용: PDF에 주석이 있는지 확인" #: ../../document.rst:70 38f7a0c4a98d4ecb90798f4830568061 msgid ":meth:`Document.has_links`" -msgstr "" +msgstr ":meth:`Document.has_links`" #: ../../document.rst:70 948d1a0444544a568098d8f5abcbe626 msgid "PDF only: check if PDF contains any links" -msgstr "" +msgstr "PDF 전용: PDF에 링크가 있는지 확인" #: ../../document.rst:71 d1ce6cf6cce1457caabc424ad112e57e msgid ":meth:`Document.insert_page`" -msgstr "" +msgstr ":meth:`Document.insert_page`" #: ../../document.rst:71 fff75002fe13475b84fc3f18e1ff8ada msgid "PDF only: insert a new page" -msgstr "" +msgstr "PDF 전용: 새 페이지 삽입" #: ../../document.rst:72 cf8bb81eaa8a48ea9d5a1fbdc1a7ab5a msgid ":meth:`Document.insert_pdf`" -msgstr "" +msgstr ":meth:`Document.insert_pdf`" #: ../../document.rst:72 289d2e5d58fe42a1a42bcf72bf0d6ff8 msgid "PDF only: insert pages from another PDF" -msgstr "" +msgstr "PDF 전용: 다른 PDF에서 페이지 삽입" #: ../../document.rst:73 8cd752947d534369a28e538b9fb6853c msgid ":meth:`Document.insert_file`" -msgstr "" +msgstr ":meth:`Document.insert_file`" #: ../../document.rst:73 5cc1ad88bf844c96bf15f6586fd84cb8 msgid "PDF only: insert pages from arbitrary document" -msgstr "" +msgstr "PDF 전용: 임의 문서에서 페이지 삽입" #: ../../document.rst:74 8178801a98ca4bfca4dc9b6ad47ba89f msgid ":meth:`Document.journal_can_do`" -msgstr "" +msgstr ":meth:`Document.journal_can_do`" #: ../../document.rst:74 2c867cd421094f95bc050a133eafad70 msgid "PDF only: which journal actions are possible" -msgstr "" +msgstr "PDF 전용: 어떤 저널 작업이 가능한지" #: ../../document.rst:75 283b597442494a8ba9ae9b5bec8bd8fa msgid ":meth:`Document.journal_enable`" -msgstr "" +msgstr ":meth:`Document.journal_enable`" #: ../../document.rst:75 8416ce80179c432d8919be5ce1cb0af6 msgid "PDF only: enables journalling for the document" -msgstr "" +msgstr "PDF 전용: 문서에 대한 저널링 활성화" #: ../../document.rst:76 6b953871829946af9c2773facdc83609 msgid ":meth:`Document.journal_load`" -msgstr "" +msgstr ":meth:`Document.journal_load`" #: ../../document.rst:76 180edecda8984b7cb87a6274ea19f89a msgid "PDF only: load journal from a file" -msgstr "" +msgstr "PDF 전용: 파일에서 저널 로드" #: ../../document.rst:77 8391be9d1b0441a0910e17782c0b15ef msgid ":meth:`Document.journal_op_name`" -msgstr "" +msgstr ":meth:`Document.journal_op_name`" #: ../../document.rst:77 a817a795918345018097f192480ce45b msgid "PDF only: return name of a journalling step" -msgstr "" +msgstr "PDF 전용: 저널링 단계의 이름 반환" #: ../../document.rst:78 bdb35edbe9394a7fb719c39e4a98e434 msgid ":meth:`Document.journal_position`" -msgstr "" +msgstr ":meth:`Document.journal_position`" #: ../../document.rst:78 22c8acf5b55d4901a0706583047f98ac msgid "PDF only: return journalling status" -msgstr "" +msgstr "PDF 전용: 저널링 상태 반환" #: ../../document.rst:79 bfb92de11a49415b9a637a6bdd41a08a msgid ":meth:`Document.journal_redo`" -msgstr "" +msgstr ":meth:`Document.journal_redo`" #: ../../document.rst:79 941f312fd6dc434bb3e7bb22b43982f9 msgid "PDF only: redo current operation" -msgstr "" +msgstr "PDF 전용: 현재 작업 다시 실행" #: ../../document.rst:80 e39c415d7d064a2ebd5d1597dbd8837e msgid ":meth:`Document.journal_save`" -msgstr "" +msgstr ":meth:`Document.journal_save`" #: ../../document.rst:80 b584d240bee04b9d8dbaa84d5f8ace78 msgid "PDF only: save journal to a file" -msgstr "" +msgstr "PDF 전용: 파일에 저널 저장" #: ../../document.rst:81 377ee634b1b64808a581ac868f85eae3 msgid ":meth:`Document.journal_start_op`" -msgstr "" +msgstr ":meth:`Document.journal_start_op`" #: ../../document.rst:81 a0ca366002234f6886d132221ae925fc msgid "PDF only: start an \"operation\" giving it a name" -msgstr "" +msgstr "PDF 전용: 이름을 지정하여 \"작업\" 시작" #: ../../document.rst:82 10f762396c4f489d8414e1f85d21c394 msgid ":meth:`Document.journal_stop_op`" -msgstr "" +msgstr ":meth:`Document.journal_stop_op`" #: ../../document.rst:82 ba97728a122047fd83681c7e71538f60 msgid "PDF only: end current operation" -msgstr "" +msgstr "PDF 전용: 현재 작업 종료" #: ../../document.rst:83 84244b3958754e2f8e60e088d4e9eaf8 msgid ":meth:`Document.journal_undo`" -msgstr "" +msgstr ":meth:`Document.journal_undo`" #: ../../document.rst:83 ac3708bf674842c5802292badc7ce153 msgid "PDF only: undo current operation" -msgstr "" +msgstr "PDF 전용: 현재 작업 실행 취소" #: ../../document.rst:84 e59cb5b39d03491fb5bae5b59bbfcb28 msgid ":meth:`Document.layer_ui_configs`" -msgstr "" +msgstr ":meth:`Document.layer_ui_configs`" #: ../../document.rst:84 d9375c2112274868896c4d42fc331428 msgid "PDF only: list of optional content intents" -msgstr "" +msgstr "PDF 전용: 선택적 콘텐츠 의도 목록" #: ../../document.rst:85 407287d007564aa49ddd7d761d16a854 msgid ":meth:`Document.layout`" -msgstr "" +msgstr ":meth:`Document.layout`" #: ../../document.rst:85 24b905752b8f4103b44d7a072952a14d msgid "re-paginate the document (if supported)" -msgstr "" +msgstr "문서 재페이지화(지원되는 경우)" #: ../../document.rst:86 05540cbb5a6844d2b0066a9329eec704 msgid ":meth:`Document.load_page`" -msgstr "" +msgstr ":meth:`Document.load_page`" #: ../../document.rst:86 d027aa3f5e7f40449d955369ac59be65 msgid "read a page" -msgstr "" +msgstr "페이지 읽기" #: ../../document.rst:87 0f4a3571b20e46c8a8b0a056ca69d9c4 msgid ":meth:`Document.make_bookmark`" -msgstr "" +msgstr ":meth:`Document.make_bookmark`" #: ../../document.rst:87 3b3bccdfd1ea485b9725001d0321b5c5 msgid "create a page pointer in reflowable documents" -msgstr "" +msgstr "재배치 가능한 문서에서 페이지 포인터 생성" #: ../../document.rst:88 41b1ca13914b4f2c945a7fed504d9517 msgid ":meth:`Document.move_page`" -msgstr "" +msgstr ":meth:`Document.move_page`" #: ../../document.rst:88 00c89823b1274ff99f648f5b2c87ef02 msgid "PDF only: move a page to different location in doc" -msgstr "" +msgstr "PDF 전용: 문서 내 다른 위치로 페이지 이동" #: ../../document.rst:89 e84ed54f2d154b439faeaab883f5e93b msgid ":meth:`Document.need_appearances`" -msgstr "" +msgstr ":meth:`Document.need_appearances`" #: ../../document.rst:89 676fd03bdf7e409b984fe0faa6d88a76 msgid "PDF only: get/set `/NeedAppearances` property" -msgstr "" +msgstr "PDF 전용: `/NeedAppearances` 속성 가져오기/설정" #: ../../document.rst:90 669abfabfa6b490aae5c20a6028b2af7 msgid ":meth:`Document.new_page`" -msgstr "" +msgstr ":meth:`Document.new_page`" #: ../../document.rst:90 8535930473244385bd64d7584523da86 msgid "PDF only: insert a new empty page" -msgstr "" +msgstr "PDF 전용: 새 빈 페이지 삽입" #: ../../document.rst:91 8706fe76caf44c4a9380d5fc92e71903 msgid ":meth:`Document.next_location`" -msgstr "" +msgstr ":meth:`Document.next_location`" #: ../../document.rst:91 da98e11be3fc4193abf54b8f9d212634 msgid "return (chapter, pno) of following page" -msgstr "" +msgstr "다음 페이지의 (chapter, pno) 반환" #: ../../document.rst:92 22873ddadc3b468c8092ae45a23efe56 msgid ":meth:`Document.outline_xref`" -msgstr "" +msgstr ":meth:`Document.outline_xref`" #: ../../document.rst:92 939075b4724544878a76f87d8dd1283e msgid "PDF only: :data:`xref` a TOC item" -msgstr "" +msgstr "PDF 전용: TOC 항목의 :data:`xref`" #: ../../document.rst:93 6722c38d0d78497091278cbd1e7b0d6b msgid ":meth:`Document.page_cropbox`" -msgstr "" +msgstr ":meth:`Document.page_cropbox`" #: ../../document.rst:93 04b54737e5ca450ca0f3e1483639382d msgid "PDF only: the unrotated page rectangle" -msgstr "" +msgstr "PDF 전용: 회전되지 않은 페이지 사각형" #: ../../document.rst:94 af8716cd59ac46be87f21422bc3f8c5e msgid ":meth:`Document.page_xref`" -msgstr "" +msgstr ":meth:`Document.page_xref`" #: ../../document.rst:94 caf5f921388245b5b5f9b49940c056a7 msgid "PDF only: :data:`xref` of a page number" -msgstr "" +msgstr "PDF 전용: 페이지 번호의 :data:`xref`" #: ../../document.rst:95 571b7ea1b2ed4a0da1e2203deda7aa8d msgid ":meth:`Document.pages`" -msgstr "" +msgstr ":meth:`Document.pages`" #: ../../document.rst:95 278ecce412fc4bc58337a84b851ec028 msgid "iterator over a page range" -msgstr "" +msgstr "페이지 범위에 대한 반복자" #: ../../document.rst:96 b85d12a3953342a89d8ffe83eb92ebf9 msgid ":meth:`Document.pdf_catalog`" -msgstr "" +msgstr ":meth:`Document.pdf_catalog`" #: ../../document.rst:96 14e5593718754a4da76d72a4bd33e7bd msgid "PDF only: :data:`xref` of catalog (root)" -msgstr "" +msgstr "PDF 전용: 카탈로그(루트)의 :data:`xref`" #: ../../document.rst:97 c11a1743ca684d3ca89d53ff36f33438 msgid ":meth:`Document.pdf_trailer`" -msgstr "" +msgstr ":meth:`Document.pdf_trailer`" #: ../../document.rst:97 8108cc2e14de4c0c948f8ea439c4819c msgid "PDF only: trailer source" -msgstr "" +msgstr "PDF 전용: 트레일러 소스" #: ../../document.rst:98 b323bdef35c64155905c4cc4403eac19 msgid ":meth:`Document.prev_location`" -msgstr "" +msgstr ":meth:`Document.prev_location`" #: ../../document.rst:98 7617a1f4aac44dddbcc6f92b8d6c45c0 msgid "return (chapter, pno) of preceding page" -msgstr "" +msgstr "이전 페이지의 (chapter, pno) 반환" #: ../../document.rst:99 dedcbf0566f74df9aad30be8105ef527 msgid ":meth:`Document.rewrite_images`" -msgstr "" +msgstr ":meth:`Document.rewrite_images`" #: ../../document.rst:99 974b6b3159ed459e8e279788df4cced8 msgid "PDF only: rewrite / extra compression for images" -msgstr "" +msgstr "PDF 전용: 이미지 재작성/추가 압축" #: ../../document.rst:100 d2f820953f0446d8be040f143bfd61fb msgid ":meth:`Document.recolor`" -msgstr "" +msgstr ":meth:`Document.recolor`" #: ../../document.rst:100 feaa2f0d59f5474facff3305163251d5 msgid "PDF only: execute :meth:`Page.recolor` for all pages" -msgstr "" +msgstr "PDF 전용: 모든 페이지에 대해 :meth:`Page.recolor` 실행" #: ../../document.rst:101 51ab18b8dc104059b4b26a3cc37ee5a2 msgid ":meth:`Document.reload_page`" -msgstr "" +msgstr ":meth:`Document.reload_page`" #: ../../document.rst:101 82cadc34466a4036abf146722491a023 msgid "PDF only: provide a new copy of a page" -msgstr "" +msgstr "PDF 전용: 페이지의 새 복사본 제공" #: ../../document.rst:102 ba53f93a3acc4fbd883b60252e16bf2d msgid ":meth:`Document.resolve_names`" -msgstr "" +msgstr ":meth:`Document.resolve_names`" #: ../../document.rst:102 ea55d63d05fa4c9b897eac4f3ec3a2e4 msgid "PDF only: Convert destination names into a Python dict" -msgstr "" +msgstr "PDF 전용: 대상 이름을 Python dict로 변환" #: ../../document.rst:103 1f12d96d086840e0b6a9c584969fe937 msgid ":meth:`Document.save`" -msgstr "" +msgstr ":meth:`Document.save`" #: ../../document.rst:103 bcb05fe7cc084d47a2a47419224e8e50 msgid "PDF only: save the document" -msgstr "" +msgstr "PDF 전용: 문서 저장" #: ../../document.rst:104 c17d570731634e2899a9fef7b19f17b8 msgid ":meth:`Document.saveIncr`" -msgstr "" +msgstr ":meth:`Document.saveIncr`" #: ../../document.rst:104 c0269e939b344fd597a6956b62bbf2bb msgid "PDF only: save the document incrementally" -msgstr "" +msgstr "PDF 전용: 문서 증분 저장" #: ../../document.rst:105 96f92a2b46f64f5d93f97b5e38e2e0a7 msgid ":meth:`Document.scrub`" -msgstr "" +msgstr ":meth:`Document.scrub`" #: ../../document.rst:105 1ded1c45911c40bb88b0e8789286f7a1 msgid "PDF only: remove sensitive data" -msgstr "" +msgstr "PDF 전용: 민감한 데이터 제거" #: ../../document.rst:106 f6dacc40814f47b2a61ebd3fef801051 msgid ":meth:`Document.search_page_for`" -msgstr "" +msgstr ":meth:`Document.search_page_for`" #: ../../document.rst:106 f416a3e245d2413e9b92e1ac94a34eb9 msgid "search for a string on a page" -msgstr "" +msgstr "페이지에서 문자열 검색" #: ../../document.rst:107 5b7fa0d81fc6489fb3aa22c2f9532987 msgid ":meth:`Document.select`" -msgstr "" +msgstr ":meth:`Document.select`" #: ../../document.rst:107 1b7f3ad42e3748a9bc0b1c819ebfb37f msgid "PDF only: select a subset of pages" -msgstr "" +msgstr "PDF 전용: 페이지 하위 집합 선택" #: ../../document.rst:108 a1bef9a0f9aa4faf97bc5a4d7dd2c439 msgid ":meth:`Document.set_layer_ui_config`" -msgstr "" +msgstr ":meth:`Document.set_layer_ui_config`" #: ../../document.rst:108 4cabc4e8de1547b6933c5571b6715a17 msgid "PDF only: set OCG visibility temporarily" -msgstr "" +msgstr "PDF 전용: OCG 가시성 임시 설정" #: ../../document.rst:109 8f9c6e7f590c4b078b22910ae021833f msgid ":meth:`Document.set_layer`" -msgstr "" +msgstr ":meth:`Document.set_layer`" #: ../../document.rst:109 cccc69e7410e4bb695682ffd1ad32d9f msgid "PDF only: mass changing OCG states" -msgstr "" +msgstr "PDF 전용: OCG 상태 대량 변경" #: ../../document.rst:110 05d50371618b43b4aa923361a11eb0b5 msgid ":meth:`Document.set_markinfo`" -msgstr "" +msgstr ":meth:`Document.set_markinfo`" #: ../../document.rst:110 a7ac2c7a68e546a49bd24c64b96a58e6 msgid "PDF only: set the MarkInfo values" -msgstr "" +msgstr "PDF 전용: MarkInfo 값 설정" #: ../../document.rst:111 b936b94e1de847abaf79d0a2b034e2bc msgid ":meth:`Document.set_metadata`" -msgstr "" +msgstr ":meth:`Document.set_metadata`" #: ../../document.rst:111 ab7be95036d144ae96c077e8c019ae15 msgid "PDF only: set the metadata" -msgstr "" +msgstr "PDF 전용: 메타데이터 설정" #: ../../document.rst:112 e1375d72fe6846d9a08e10a4ee9927c7 msgid ":meth:`Document.set_oc`" -msgstr "" +msgstr ":meth:`Document.set_oc`" #: ../../document.rst:112 f3c50c202d7c4cdf837fb18d8b5c40cf msgid "PDF only: attach OCG/OCMD to image / form xobject" -msgstr "" +msgstr "PDF 전용: 이미지/폼 xobject에 OCG/OCMD 첨부" #: ../../document.rst:113 2fdc13211d934a72829f8f6851b833e5 msgid ":meth:`Document.set_ocmd`" -msgstr "" +msgstr ":meth:`Document.set_ocmd`" #: ../../document.rst:113 77f29139986644ce953f3f1afce1e36c msgid "PDF only: create or update an :data:`OCMD`" -msgstr "" +msgstr "PDF 전용: :data:`OCMD` 생성 또는 업데이트" #: ../../document.rst:114 56b1be1913b8456b8af7a92efb5bce6c msgid ":meth:`Document.set_page_labels`" -msgstr "" +msgstr ":meth:`Document.set_page_labels`" #: ../../document.rst:114 e2ee4ffee5244f369f11d507a9b056ac msgid "PDF only: add/update page label definitions" -msgstr "" +msgstr "PDF 전용: 페이지 레이블 정의 추가/업데이트" #: ../../document.rst:115 2a236deda376461d8e02dd777aa86a45 msgid ":meth:`Document.set_pagemode`" -msgstr "" +msgstr ":meth:`Document.set_pagemode`" #: ../../document.rst:115 11e3ef0ce8e7442c849b83550cdd06e9 msgid "PDF only: set the PageMode" -msgstr "" +msgstr "PDF 전용: PageMode 설정" #: ../../document.rst:116 32bd955e107e410b89537cae1c991d61 msgid ":meth:`Document.set_pagelayout`" -msgstr "" +msgstr ":meth:`Document.set_pagelayout`" #: ../../document.rst:116 4a6c5debab1643529562d2e5e7f9ec92 msgid "PDF only: set the PageLayout" -msgstr "" +msgstr "PDF 전용: PageLayout 설정" #: ../../document.rst:117 2144e914bdaf45a399949c3c3df56bb5 msgid ":meth:`Document.set_toc_item`" -msgstr "" +msgstr ":meth:`Document.set_toc_item`" #: ../../document.rst:117 c03b6a76e34d4c29b288cefc04600f0d msgid "PDF only: change a single TOC item" -msgstr "" +msgstr "PDF 전용: 단일 TOC 항목 변경" #: ../../document.rst:118 f8fd3e681d2e40dbbd45e3b30913de56 msgid ":meth:`Document.set_toc`" -msgstr "" +msgstr ":meth:`Document.set_toc`" #: ../../document.rst:118 c25e27e0effa448d8988947b633e20cb msgid "PDF only: set the table of contents (TOC)" -msgstr "" +msgstr "PDF 전용: 목차(TOC) 설정" #: ../../document.rst:119 a304c7f00f824dd88396f97ef442c347 msgid ":meth:`Document.set_xml_metadata`" -msgstr "" +msgstr ":meth:`Document.set_xml_metadata`" #: ../../document.rst:119 e2419cc26cce4233b4a8273cac482f57 msgid "PDF only: create or update document XML metadata" -msgstr "" +msgstr "PDF 전용: 문서 XML 메타데이터 생성 또는 업데이트" #: ../../document.rst:120 2e11620ea9d6476e9a56a93b2c3c2d5d msgid ":meth:`Document.subset_fonts`" -msgstr "" +msgstr ":meth:`Document.subset_fonts`" #: ../../document.rst:120 ae59a4fbc18b440eb2a7542d14a4c882 msgid "PDF only: create font subsets" -msgstr "" +msgstr "PDF 전용: 글꼴 하위 집합 생성" #: ../../document.rst:121 85fa8be173614f9395fad32a48d9021b msgid ":meth:`Document.switch_layer`" -msgstr "" +msgstr ":meth:`Document.switch_layer`" #: ../../document.rst:121 e2bf17afb8eb44fb8d394c7da1b04185 msgid "PDF only: activate OC configuration" -msgstr "" +msgstr "PDF 전용: OC 구성 활성화" #: ../../document.rst:122 7cf8c2ba034d430383e1bbf0dfe7f8e5 msgid ":meth:`Document.tobytes`" -msgstr "" +msgstr ":meth:`Document.tobytes`" #: ../../document.rst:122 96ef34ce12fa4117920b6d9a451bfec0 msgid "PDF only: writes document to memory" -msgstr "" +msgstr "PDF 전용: 메모리에 문서 쓰기" #: ../../document.rst:123 9c18cc7be02846ceabcc47cb305f4e32 msgid ":meth:`Document.xref_copy`" -msgstr "" +msgstr ":meth:`Document.xref_copy`" #: ../../document.rst:123 1d344c6f485149d08e8cbcb30f14bbfd msgid "PDF only: copy a PDF dictionary to another :data:`xref`" -msgstr "" +msgstr "PDF 전용: PDF 딕셔너리를 다른 :data:`xref` 로 복사" #: ../../document.rst:124 d40fcf719f7745d0988864bbd78a0702 msgid ":meth:`Document.xref_get_key`" -msgstr "" +msgstr ":meth:`Document.xref_get_key`" #: ../../document.rst:124 73c52ddd3eee43a0a4ee02fd0c0654c6 msgid "PDF only: get the value of a dictionary key" -msgstr "" +msgstr "PDF 전용: 딕셔너리 키의 값 가져오기" #: ../../document.rst:125 573343d13a364c9c8d257a1d98a89f3e msgid ":meth:`Document.xref_get_keys`" -msgstr "" +msgstr ":meth:`Document.xref_get_keys`" #: ../../document.rst:125 81c53f9f870f4f59a618391c6a2cb5c4 msgid "PDF only: list the keys of object at :data:`xref`" -msgstr "" +msgstr "PDF 전용: :data:`xref` 의 객체 키 목록" #: ../../document.rst:126 76398d72d880411cb46bd73eda703503 msgid ":meth:`Document.xref_object`" -msgstr "" +msgstr ":meth:`Document.xref_object`" #: ../../document.rst:126 53a6e32b9e6b411ebcf5c8e3f096bd6c msgid "PDF only: get the definition source of :data:`xref`" -msgstr "" +msgstr "PDF 전용: :data:`xref` 의 정의 소스 가져오기" #: ../../document.rst:127 e66235038073450c9f5a839095cac4c4 msgid ":meth:`Document.xref_set_key`" -msgstr "" +msgstr ":meth:`Document.xref_set_key`" #: ../../document.rst:127 8204850e62a846f88fbffa42e2637b9a msgid "PDF only: set the value of a dictionary key" -msgstr "" +msgstr "PDF 전용: 딕셔너리 키의 값 설정" #: ../../document.rst:128 fd30d01999014bbab567b38ddb4353f0 msgid ":meth:`Document.xref_stream_raw`" -msgstr "" +msgstr ":meth:`Document.xref_stream_raw`" #: ../../document.rst:128 99ccc2453ba946e7831daec6b7581cf6 msgid "PDF only: raw stream source at :data:`xref`" -msgstr "" +msgstr "PDF 전용: :data:`xref` 의 원시 스트림 소스" #: ../../document.rst:129 413b3807f32f45a580cca989305c9008 msgid ":meth:`Document.xref_xml_metadata`" -msgstr "" +msgstr ":meth:`Document.xref_xml_metadata`" #: ../../document.rst:129 fe64670c8c334c77b851161354240171 msgid "PDF only: :data:`xref` of XML metadata" -msgstr "" +msgstr "PDF 전용: XML 메타데이터의 :data:`xref`" #: ../../document.rst:130 9db7fc2a6be446c9a0d597777ccb3db5 msgid ":attr:`Document.chapter_count`" -msgstr "" +msgstr ":attr:`Document.chapter_count`" #: ../../document.rst:130 d81d64b31cb94d3caeca06bd43e1e31e msgid "number of chapters" -msgstr "" +msgstr "장 수" #: ../../document.rst:131 88fa80583a8148bdb519161be5facabe msgid ":attr:`Document.FormFonts`" -msgstr "" +msgstr ":attr:`Document.FormFonts`" #: ../../document.rst:131 822a58355d084a57bf43f78079ad7109 msgid "PDF only: list of global widget fonts" -msgstr "" +msgstr "PDF 전용: 전역 위젯 글꼴 목록" #: ../../document.rst:132 3187d844634044e2978d4d650d2b453e msgid ":attr:`Document.is_closed`" -msgstr "" +msgstr ":attr:`Document.is_closed`" #: ../../document.rst:132 58a7a1c8d488427daf9b1a3fd1b0baa1 msgid "has document been closed?" -msgstr "" +msgstr "문서가 닫혔나요?" #: ../../document.rst:133 c6f2bfcdd3db47b9ae0572f8c6b52068 msgid ":attr:`Document.is_dirty`" -msgstr "" +msgstr ":attr:`Document.is_dirty`" #: ../../document.rst:133 c18fd15219484228bbb05b979d2fe93a msgid "PDF only: has document been changed yet?" -msgstr "" +msgstr "PDF 전용: 문서가 변경되었나요?" #: ../../document.rst:134 c0b6d32bf1e4495dbf4add91153500f6 msgid ":attr:`Document.is_encrypted`" -msgstr "" +msgstr ":attr:`Document.is_encrypted`" #: ../../document.rst:134 8d7f114a51b14761b0bad0ab267c341c msgid "document (still) encrypted?" -msgstr "" +msgstr "문서가 (여전히) 암호화되어 있나요?" #: ../../document.rst:135 1d1dc29fc5324c8b9c4c46188293b390 msgid ":attr:`Document.is_fast_webaccess`" -msgstr "" +msgstr ":attr:`Document.is_fast_webaccess`" #: ../../document.rst:135 e076fbc4f4f4419f8dfdbbc78e750bc2 msgid "is PDF linearized?" -msgstr "" +msgstr "PDF가 선형화되었나요?" #: ../../document.rst:136 4c5d509be68646a2a5e6d9288e486e9d msgid ":attr:`Document.is_form_pdf`" -msgstr "" +msgstr ":attr:`Document.is_form_pdf`" #: ../../document.rst:136 7587e6c5fa74464484f04d42b82a8154 msgid "is this a Form PDF?" -msgstr "" +msgstr "이것이 Form PDF인가요?" #: ../../document.rst:137 fc1951f5f9b644eca1bf32692e0a1084 msgid ":attr:`Document.is_pdf`" -msgstr "" +msgstr ":attr:`Document.is_pdf`" #: ../../document.rst:137 6744e037129540b5a068f48e079dd435 msgid "is this a PDF?" -msgstr "" +msgstr "이것이 PDF인가요?" #: ../../document.rst:138 03fdede084af4116b4d1587c067ff1f9 msgid ":attr:`Document.is_reflowable`" -msgstr "" +msgstr ":attr:`Document.is_reflowable`" #: ../../document.rst:138 4a6c359253dd4c9690d177ea6a3b6683 msgid "is this a reflowable document?" -msgstr "" +msgstr "이것이 재배치 가능한 문서인가요?" #: ../../document.rst:139 26433c11990f4f1e902b967ec62f9520 msgid ":attr:`Document.is_repaired`" -msgstr "" +msgstr ":attr:`Document.is_repaired`" #: ../../document.rst:139 3c658c42265747b7b521caba0b46b998 msgid "PDF only: has this PDF been repaired during open?" -msgstr "" +msgstr "PDF 전용: 이 PDF가 열리는 동안 수리되었나요?" #: ../../document.rst:140 cb53e80ca0614de784a45e404b379a60 msgid ":attr:`Document.last_location`" -msgstr "" +msgstr ":attr:`Document.last_location`" #: ../../document.rst:140 b7ace66466d54470b61071e9bfce414a msgid "(chapter, pno) of last page" -msgstr "" +msgstr "마지막 페이지의 (chapter, pno)" #: ../../document.rst:141 d4fd8a51760b4c4a964822cf87c4fd5b msgid ":attr:`Document.metadata`" -msgstr "" +msgstr ":attr:`Document.metadata`" #: ../../document.rst:141 e49fe7d5415b4ea0aa5ff965dea0a4c2 msgid "metadata" -msgstr "" +msgstr "metadata" #: ../../document.rst:142 b1eb281747194e0c9dc37769e5a35996 msgid ":attr:`Document.markinfo`" -msgstr "" +msgstr ":attr:`Document.markinfo`" #: ../../document.rst:142 5c53ed8e5b3a43f790eb41430cf74c00 msgid "PDF MarkInfo value" -msgstr "" +msgstr "PDF MarkInfo 값" #: ../../document.rst:143 28f8419fd8854bc281aa1a7973a0d651 msgid ":attr:`Document.name`" -msgstr "" +msgstr ":attr:`Document.name`" #: ../../document.rst:143 c074932b6df14c2a9bbac171d00a72e1 msgid "filename of document" -msgstr "" +msgstr "문서의 파일 이름" #: ../../document.rst:144 c143ec8f77d7403ba2f5e950ada44f9f msgid ":attr:`Document.needs_pass`" -msgstr "" +msgstr ":attr:`Document.needs_pass`" #: ../../document.rst:144 3a653b354e264d5ab111c00c2150d5ce msgid "require password to access data?" -msgstr "" +msgstr "데이터 액세스에 비밀번호가 필요한가요?" #: ../../document.rst:145 57c337795d3b41af8567072e6b7cf577 msgid ":attr:`Document.outline`" -msgstr "" +msgstr ":attr:`Document.outline`" #: ../../document.rst:145 4c478e059e5b4ac0ac83ee75ae7da76b msgid "first `Outline` item" -msgstr "" +msgstr "첫 번째 `Outline` 항목" #: ../../document.rst:146 396a4b645ae04c80b5961baa2e075796 msgid ":attr:`Document.page_count`" -msgstr "" +msgstr ":attr:`Document.page_count`" #: ../../document.rst:146 67b13af7113547a8918fa5f210dcfaeb msgid "number of pages" -msgstr "" +msgstr "페이지 수" #: ../../document.rst:147 cd51b0df05524051bca654f008981df0 msgid ":attr:`Document.permissions`" -msgstr "" +msgstr ":attr:`Document.permissions`" #: ../../document.rst:147 f33c48f888124f82af9dc413e5f9a50e msgid "permissions to access the document" -msgstr "" +msgstr "문서 액세스 권한" #: ../../document.rst:148 0868038137794381a564152619e1814b msgid ":attr:`Document.pagemode`" -msgstr "" +msgstr ":attr:`Document.pagemode`" #: ../../document.rst:148 783f323a456349b186450d63549da121 msgid "PDF PageMode value" -msgstr "" +msgstr "PDF PageMode 값" #: ../../document.rst:149 032d2ee20d6542c4975ad6c7e2f75522 msgid ":attr:`Document.pagelayout`" -msgstr "" +msgstr ":attr:`Document.pagelayout`" #: ../../document.rst:149 d9816800d017496f8603c2fca0b2e1d0 msgid "PDF PageLayout value" -msgstr "" +msgstr "PDF PageLayout 값" #: ../../document.rst:150 cf17ce8d51c043f3a964384ca0a92c53 msgid ":attr:`Document.version_count`" -msgstr "" +msgstr ":attr:`Document.version_count`" #: ../../document.rst:150 646aa6db9c8b4351b27593bdfaf5f24c msgid "PDF count of versions" -msgstr "" +msgstr "PDF 버전 수" #: ../../document.rst:153 8f58511508294d49bd7a7f950c9bd7c9 msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../document.rst:174 b482340231f44738bb9cf3c571f4f7d5 msgid "Create a ``Document`` object." -msgstr "" +msgstr "``Document`` 객체를 생성합니다." #: ../../document.rst:176 1c55311b5fa64850a06598e2a8ce9a7c msgid "With default parameters, a **new empty PDF** document will be created." -msgstr "" +msgstr "기본 매개변수를 사용하면 **새 빈 PDF** 문서가 생성됩니다." #: ../../document.rst:177 22c55c2d255f491f89be960f4babb5e5 msgid "If ``stream`` is given, then the document is created from memory." -msgstr "" +msgstr "``stream`` 이 제공되면 문서가 메모리에서 생성됩니다." #: ../../document.rst:178 3a8f75233dd54040a52ad9ae44d26e74 msgid "" "If ``stream`` is `None`, then a document is created from the file given " "by ``filename``." -msgstr "" +msgstr "``stream`` 이 `None` 이면 ``filename`` 으로 지정된 파일에서 문서가 생성됩니다." #: ../../document.rst 00a908e8a7684c1db0a3b35d910dfc89 #: 035c82154d7945aeaedacdae5ef9e83e 0494f5c7dd3e4dbdad753d8fc418426a @@ -1128,7 +1128,7 @@ msgstr "" #: f9bc09fc5ea34227a7114500e5ce81a6 fa33f17ae9614356bbae44d1f3ec88ff #: fd852a1fe1934034b07fecc82f20016f msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../document.rst:180 58d96afc6c3f4041817e26ee41843ed2 msgid "" @@ -1137,7 +1137,7 @@ msgid "" "``filetype`` parameter is ignored, except when content inspection was " "unsuccessful. This is regularly the case for plain text types like " "\"txt\", \"html\", \"xml\" etc. with a wrong or missing file extension." -msgstr "" +msgstr "파일 경로를 포함하는 UTF-8 문자열 또는 ``pathlib.Path`` 객체. 문서 타입은 항상 파일 콘텐츠에서 결정됩니다. ``filetype`` 매개변수는 콘텐츠 검사가 실패한 경우를 제외하고 무시됩니다. 잘못되었거나 누락된 파일 확장자를 가진 \"txt\", \"html\", \"xml\" 등과 같은 일반 텍스트 타입의 경우가 일반적입니다." #: ../../document.rst:182 42a021002ca24463805b8c682c3ef247 msgid "" @@ -1145,7 +1145,7 @@ msgid "" "from the data content. The ``filetype`` parameter is ignored, except when" " content inspection was unsuccessful. This is regularly the case for " "plain text types like \"txt\", \"html\", \"xml\" etc." -msgstr "" +msgstr "파일 데이터를 포함하는 메모리 영역. 문서 타입은 항상 데이터 콘텐츠에서 감지됩니다. ``filetype`` 매개변수는 콘텐츠 검사가 실패한 경우를 제외하고 무시됩니다. \"txt\", \"html\", \"xml\" 등과 같은 일반 텍스트 타입의 경우가 일반적입니다." #: ../../document.rst:184 df0bacd926f548f7993192643669e3da msgid "" @@ -1154,7 +1154,7 @@ msgid "" " etc. cannot be disambiguated by their content. When such files are " "provided in memory or being provided with the wrong file extension, this " "parameter **must** be used." -msgstr "" +msgstr "문서 타입을 지정하는 문자열. 파일 콘텐츠 검사가 실패할 때만 필요합니다. \"txt\", \"html\", \"xml\" 등과 같은 텍스트 타입은 콘텐츠로 구분할 수 없습니다. 이러한 파일이 메모리에서 제공되거나 잘못된 파일 확장자로 제공되는 경우 이 매개변수를 **반드시** 사용해야 합니다." #: ../../document.rst:186 78759e58f1034e9b8808547679e5f0c7 msgid "" @@ -1164,57 +1164,57 @@ msgid "" " must be a non-empty, finite rectangle with top-left coordinates (0, 0). " "Together with parameter :data:`fontsize`, each page will be accordingly " "laid out and hence also determine the number of pages." -msgstr "" +msgstr "원하는 페이지 크기를 지정하는 사각형. 이 매개변수는 전자책이나 HTML과 같은 가변 페이지 레이아웃(\"재배치 가능한\" 문서)이 있는 문서에만 의미가 있으며, 그렇지 않으면 무시됩니다. 지정된 경우 왼쪽 위 좌표가 (0, 0)인 비어 있지 않은 유한 사각형이어야 합니다. :data:`fontsize` 매개변수와 함께 각 페이지가 그에 따라 레이아웃되므로 페이지 수도 결정됩니다." #: ../../document.rst:188 a39ff59bcd5b443e8be15251425208dd msgid "" "may used together with ``height`` as an alternative to ``rect`` to " "specify layout information." -msgstr "" +msgstr "레이아웃 정보를 지정하기 위해 ``height`` 와 함께 ``rect`` 의 대안으로 사용할 수 있습니다." #: ../../document.rst:190 5850f945318e4c5ba3ad88d7be9ed8f7 msgid "" "may used together with ``width`` as an alternative to ``rect`` to specify" " layout information." -msgstr "" +msgstr "레이아웃 정보를 지정하기 위해 ``width`` 와 함께 ``rect`` 의 대안으로 사용할 수 있습니다." #: ../../document.rst:192 a2fc132738884e6f835292f70dbf813b msgid "" "the default :data:`fontsize` for reflowable document types. This " "parameter is ignored if none of the parameters ``rect`` or ``width`` and " "``height`` are specified. Will be used to calculate the page layout." -msgstr "" +msgstr "재배치 가능한 문서 타입의 기본 :data:`fontsize`. ``rect`` 또는 ``width`` 및 ``height`` 매개변수가 지정되지 않은 경우 이 매개변수는 무시됩니다. 페이지 레이아웃을 계산하는 데 사용됩니다." #: ../../document.rst 31cdc47b32794a798531bbe848c5bda9 #: 8c8d6154dfd44d2ba07f8f96a6d9efca msgid "Raises" -msgstr "" +msgstr "발생" #: ../../document.rst:194 93b67db706e5441b96d643f164ce062f msgid "if the *type* of any parameter does not conform." -msgstr "" +msgstr "매개변수의 *타입* 이 적합하지 않은 경우." #: ../../document.rst:195 42762fcf592649558e1963103f6dc8a7 msgid "" "if the file / path cannot be found. Re-implemented as subclass of " "`RuntimeError`." -msgstr "" +msgstr "파일/경로를 찾을 수 없는 경우. `RuntimeError` 의 하위 클래스로 재구현됨." #: ../../document.rst:196 2057576b00c94522986d094e8c68c1df msgid "" "if the file / path is empty or the `bytes` object in memory has zero " "length. A subclass of `FileDataError` and `RuntimeError`." -msgstr "" +msgstr "파일/경로가 비어 있거나 메모리의 `bytes` 객체 길이가 0인 경우. `FileDataError` 및 `RuntimeError` 의 하위 클래스." #: ../../document.rst:197 7af323bd72ba4aeab2300ae9ce1c8deb msgid "if an unknown file type is explicitly specified." -msgstr "" +msgstr "알 수 없는 파일 타입이 명시적으로 지정된 경우." #: ../../document.rst:198 18d265e2b9244cc3abe76c5bbd2278b0 msgid "" "if the document has an invalid structure for the given type -- or is no " "file at all (but e.g. a folder). A subclass of `RuntimeError`." -msgstr "" +msgstr "문서가 주어진 타입에 대해 유효하지 않은 구조를 가지거나 파일이 아닌 경우(예: 폴더). `RuntimeError` 의 하위 클래스." #: ../../document.rst 047c76e2fca94ff59ddfc0ba555820e2 #: 05f5daa98f00493bbb7a374f27f0a4b2 0659f08fa83e47a5955522391fa15698 @@ -1240,7 +1240,7 @@ msgstr "" #: ec39975fff364d138618b3f0a03d7f7c f01df95655be4d7ba337b69dc87134d0 #: faa22c65030b43fabbb90aae7cc4bcbb fb61cf4fd04246d88877968bcd325279 msgid "Returns" -msgstr "" +msgstr "반환값" #: ../../document.rst:200 cf78e0bdd8b34963964a9914c2b152e3 msgid "" @@ -1252,7 +1252,7 @@ msgid "" "`print(pymupdf.TOOLS.mupdf_warnings())` (which will be emptied by this " "call, but you can also prevent this -- consult " ":meth:`Tools.mupdf_warnings`)." -msgstr "" +msgstr "문서 객체. 문서를 생성할 수 없으면 위 순서에서 예외가 발생합니다. |PyMuPDF| 전용 예외인 `FileNotFoundError`, `EmptyFileError` 및 `FileDataError` 는 `RuntimeError` 를 확인하면 가로채집니다. 문제가 있는 경우 내부 메시지 저장소에서 더 자세한 내용을 볼 수 있습니다: `print(pymupdf.TOOLS.mupdf_warnings())` (이 호출로 비워지지만, 이를 방지할 수도 있습니다. :meth:`Tools.mupdf_warnings` 참조)." #: ../../document.rst:200 a8c942677a9c4be198f8b855f9a7aa87 msgid "" @@ -1260,7 +1260,7 @@ msgid "" "raised in the above sequence. Note that PyMuPDF-specific exceptions, " "`FileNotFoundError`, `EmptyFileError` and `FileDataError` are intercepted" " if you check for `RuntimeError`." -msgstr "" +msgstr "문서 객체. 문서를 생성할 수 없으면 위 순서에서 예외가 발생합니다. |PyMuPDF| 전용 예외인 `FileNotFoundError`, `EmptyFileError` 및 `FileDataError` 는 `RuntimeError` 를 확인하면 가로채집니다." #: ../../document.rst:202 e37b3dcfa1ef4bb18a5147e0847b1947 msgid "" @@ -1268,37 +1268,37 @@ msgid "" "store: `print(pymupdf.TOOLS.mupdf_warnings())` (which will be emptied by " "this call, but you can also prevent this -- consult " ":meth:`Tools.mupdf_warnings`)." -msgstr "" +msgstr "문제가 있는 경우 내부 메시지 저장소에서 더 자세한 내용을 볼 수 있습니다: `print(pymupdf.TOOLS.mupdf_warnings())` (이 호출로 비워지지만, 이를 방지할 수도 있습니다. :meth:`Tools.mupdf_warnings` 참조)." #: ../../document.rst:204 2b66040c852944bf8054bbb5fc40f830 msgid "Overview of possible forms, note: `open` is a synonym of `Document`::" -msgstr "" +msgstr "가능한 형식 개요, 참고: `open` 은 `Document` 의 동의어입니다::" #: ../../document.rst:221 64bcc08b1e204f36b85a92e3bf4a7b7b msgid "" "Raster images with a wrong (but supported) file extension **are no " "problem**. MuPDF will determine the correct image type when file " "**content** is actually accessed and will process it without complaint." -msgstr "" +msgstr "잘못된(하지만 지원되는) 파일 확장자를 가진 래스터 이미지는 **문제가 되지 않습니다**. |MuPDF| 는 파일 **콘텐츠** 가 실제로 액세스될 때 올바른 이미지 타입을 결정하고 불만 없이 처리합니다." #: ../../document.rst:223 f9c50ee3ebf24470b38de4cdc1f54b1b msgid "" "The Document class can be also be used as a **context manager**. Exiting " "the content manager will close the document automatically." -msgstr "" +msgstr "Document 클래스는 **context manager** 로도 사용할 수 있습니다. 콘텐츠 관리자를 종료하면 문서가 자동으로 닫힙니다." #: ../../document.rst:239 ../../document.rst:249 ../../document.rst:309 #: ../../document.rst:355 1730d717878941ef892b30c483eca126 #: 483dca214c8e48079d2e4c46ba3235ca 4d05d842450e4edfae325ef65d2b7611 #: f30d1bf6555e43a49b37fc613c1508b0 msgid "New in v1.18.4" -msgstr "" +msgstr "v1.18.4에서 새로 추가됨" #: ../../document.rst:241 eba6c4b1e61146a6bb640a3f95719819 msgid "" "Return the cross reference number of an :data:`OCG` or :data:`OCMD` " "attached to an image or form xobject." -msgstr "" +msgstr "이미지 또는 폼 xobject에 첨부된 :data:`OCG` 또는 :data:`OCMD` 의 교차 참조 번호를 반환합니다." #: ../../document.rst:243 ad2e8305cca245ccbb0fb3c0b6258d90 msgid "" @@ -1306,7 +1306,7 @@ msgid "" "numbers are returned by :meth:`Document.get_page_images`, resp. " ":meth:`Document.get_page_xobjects`. For invalid numbers, an exception is " "raised." -msgstr "" +msgstr "이미지 또는 폼 xobject의 :data:`xref`. 유효한 교차 참조 번호는 :meth:`Document.get_page_images` 또는 :meth:`Document.get_page_xobjects` 에 의해 반환됩니다. 유효하지 않은 번호의 경우 예외가 발생합니다." #: ../../document.rst 0500953c20e7437cb07eb1e5b5ab6d95 #: 0a34e8c806934adbb39a562cec45ed00 0dbcdc6042ab41719e7bfb23d45e9498 @@ -1328,19 +1328,19 @@ msgstr "" #: f8a557a2ff2a48ecbece73e853f0a03b fc5ab7c5392b43dfb5212c6091f15304 #: fef16f5342014574b4c13ceed01202b0 msgid "Return type" -msgstr "" +msgstr "반환 타입" #: ../../document.rst:245 c041477b58714e209412601d6ad826df msgid "" "the cross reference number of an optional contents object or zero if " "there is none." -msgstr "" +msgstr "선택적 콘텐츠 객체의 교차 참조 번호 또는 없는 경우 0." #: ../../document.rst:251 c8de893dbc234e21bc29025c8fced233 msgid "" "If :data:`xref` represents an image or form xobject, set or remove the " "cross reference number *ocxref* of an optional contents object." -msgstr "" +msgstr ":data:`xref` 가 이미지 또는 form xobject를 나타내는 경우 선택적 콘텐츠 객체의 교차 참조 번호 *ocxref* 를 설정하거나 제거합니다." #: ../../document.rst:253 6267c33679a84edbad42cf549b96a4d7 msgid "" @@ -1348,14 +1348,14 @@ msgid "" "reference numbers are returned by :meth:`Document.get_page_images`, resp." " :meth:`Document.get_page_xobjects`. For invalid numbers, an exception is" " raised." -msgstr "" +msgstr "이미지 또는 form xobject의 :data:`xref` [#f5]_. 유효한 이러한 교차 참조 번호는 :meth:`Document.get_page_images`, 각각 :meth:`Document.get_page_xobjects` 에서 반환됩니다. 잘못된 번호의 경우 예외가 발생합니다." #: ../../document.rst:254 dafcd054da864b7bac355ee5b787c2db msgid "" "the :data:`xref` number of an :data:`OCG` / :data:`OCMD`. If not zero, an" " invalid reference raises an exception. If zero, any OC reference is " "removed." -msgstr "" +msgstr ":data:`OCG` / :data:`OCMD` 의 :data:`xref` 번호. 0이 아니면 유효하지 않은 참조가 예외를 발생시킵니다. 0이면 모든 OC 참조가 제거됩니다." #: ../../document.rst:259 ../../document.rst:269 ../../document.rst:280 #: ../../document.rst:292 ../../document.rst:366 ../../document.rst:378 @@ -1366,49 +1366,49 @@ msgstr "" #: d64e06f1af29426e832fa442c29fae08 e6c3241b846345b49e2c2654f71724b5 #: ec6c47d3bc2e4eeb91c14aba11424529 msgid "New in v1.18.3" -msgstr "" +msgstr "v1.18.3에서 새로 추가됨" #: ../../document.rst:261 4a50ac946de94468b0d17ce0c5cd0bfd msgid "" "Show optional layer configurations. There always is a standard one, which" " is not included in the response." -msgstr "" +msgstr "선택적 레이어 구성을 표시합니다. 항상 표준 구성이 있으며, 응답에 포함되지 않습니다." #: ../../document.rst:271 62a7c759e42d4b04873f1b12d3184db4 msgid "" "Add an optional content configuration. Layers serve as a collection of ON" " / OFF states for optional content groups and allow fast visibility " "switches between different views on the same document." -msgstr "" +msgstr "선택적 콘텐츠 구성을 추가합니다. 레이어는 선택적 콘텐츠 그룹의 ON/OFF 상태 모음 역할을 하며, 동일한 문서의 다른 보기 간 빠른 가시성 전환을 허용합니다." #: ../../document.rst:273 0407f1ddb2e2486d857a6ecfee7bdd01 msgid "arbitrary name." -msgstr "" +msgstr "임의의 이름." #: ../../document.rst:274 78e5e16c7cde40f587fa378470778e67 msgid "(optional) creating software." -msgstr "" +msgstr "(선택 사항) 생성 소프트웨어." #: ../../document.rst:275 141b82fff5454e1bb16c1ad6b039bbed msgid "" "a sequence of OCG :data:`xref` numbers which should be set to ON when " "this layer gets activated. All OCGs not listed here will be set to OFF." -msgstr "" +msgstr "이 레이어가 활성화될 때 ON으로 설정해야 하는 OCG :data:`xref` 번호 시퀀스. 여기에 나열되지 않은 모든 OCG는 OFF로 설정됩니다." #: ../../document.rst:282 f4c042d87e1840a2843af4d4117001eb msgid "" "Switch to a document view as defined by the optional layer's " "configuration number. This is temporary, except if established as " "default." -msgstr "" +msgstr "선택적 레이어의 구성 번호로 정의된 문서 보기로 전환합니다. 기본값으로 설정되지 않은 경우 임시입니다." #: ../../document.rst:284 c5e86d78dd054fe59d48bfdfd027505f msgid "config number as returned by :meth:`Document.layer_configs`." -msgstr "" +msgstr ":meth:`Document.layer_configs` 에서 반환된 구성 번호." #: ../../document.rst:285 12da226f47384fb9856ab8e3539b8f7f msgid "make this the default configuration." -msgstr "" +msgstr "이것을 기본 구성으로 만듭니다." #: ../../document.rst:287 a0359149d06f41c3a0c31aa7fd513161 msgid "" @@ -1416,33 +1416,33 @@ msgid "" " If ``as_default=True``, then additionally all layers, including the " "standard one, are merged and the result is written back to the standard " "layer, and **all optional layers are deleted**." -msgstr "" +msgstr "식별된 레이어에 정의된 대로 OCG의 ON/OFF 상태를 활성화합니다. ``as_default=True`` 이면 표준 레이어를 포함한 모든 레이어가 병합되고 결과가 표준 레이어에 다시 쓰여지며, **모든 선택적 레이어가 삭제됩니다**." #: ../../document.rst:294 019d0c5001d94da99732a3ea85edb766 msgid "" "Add an optional content group. An OCG is the most important unit of " "information to determine object visibility. For a PDF, in order to be " "regarded as having optional content, at least one OCG must exist." -msgstr "" +msgstr "선택적 콘텐츠 그룹을 추가합니다. OCG는 객체 가시성을 결정하는 가장 중요한 정보 단위입니다. PDF의 경우 선택적 콘텐츠를 가진 것으로 간주되려면 최소한 하나의 OCG가 있어야 합니다." #: ../../document.rst:296 df98d756b4024732b2403d8409bb80d0 msgid "arbitrary name. Will show up in supporting PDF viewers." -msgstr "" +msgstr "임의의 이름. 지원하는 PDF 뷰어에 표시됩니다." #: ../../document.rst:297 645459e390354faea10340dc61b7b599 msgid "layer configuration number. Default -1 is the standard configuration." -msgstr "" +msgstr "레이어 구성 번호. 기본값 -1은 표준 구성입니다." #: ../../document.rst:298 f6fa2faa541148c5accbe497d973571b msgid "standard visibility status for objects pointing to this OCG." -msgstr "" +msgstr "이 OCG를 가리키는 객체의 표준 가시성 상태." #: ../../document.rst:299 40453f0b3a0b40219a2f25b7ebc97193 msgid "" "a string or list of strings declaring the visibility intents. There are " "two PDF standard values to choose from: \"View\" and \"Design\". Default " "is \"View\". Correct **spelling is important**." -msgstr "" +msgstr "가시성 의도를 선언하는 문자열 또는 문자열 목록. 선택할 수 있는 두 가지 PDF 표준 값이 있습니다: \"View\" 와 \"Design\". 기본값은 \"View\" 입니다. 올바른 **철자가 중요합니다**." #: ../../document.rst:300 5c48545ceb124bb5a9377cf6d70d146f msgid "" @@ -1450,54 +1450,54 @@ msgid "" " `/Usage` key. There are two PDF standard values to choose from: " "\"Artwork\" and \"Technical\". Default is \"Artwork\". Please only change" " when required." -msgstr "" +msgstr "OCG 가시성에 영향을 미치는 또 다른 요소. 이것은 OCG의 `/Usage` 키의 일부가 됩니다. 선택할 수 있는 두 가지 PDF 표준 값이 있습니다: \"Artwork\" 와 \"Technical\". 기본값은 \"Artwork\" 입니다. 필요한 경우에만 변경하세요." #: ../../document.rst:302 747d12bc0ae0484c9865443714401394 msgid "" ":data:`xref` of the created OCG. Use as entry for `oc` parameter in " "supporting objects." -msgstr "" +msgstr "생성된 OCG의 :data:`xref`. 지원 객체의 `oc` 매개변수 항목으로 사용합니다." #: ../../document.rst:304 e6da50b60736424ab6212f1f73d1e613 msgid "" "Multiple OCGs with identical parameters may be created. This will not " "cause problems. Garbage option 3 of :meth:`Document.save` will get rid of" " any duplicates." -msgstr "" +msgstr "동일한 매개변수를 가진 여러 OCG가 생성될 수 있습니다. 이것은 문제를 일으키지 않습니다. :meth:`Document.save` 의 Garbage 옵션 3은 모든 중복을 제거합니다." #: ../../document.rst:311 af571053832447268949688f1f4dfb77 msgid "" "Create or update an :data:`OCMD`, **Optional Content Membership " "Dictionary.**" -msgstr "" +msgstr ":data:`OCMD`, **Optional Content Membership Dictionary** 를 생성하거나 업데이트합니다." #: ../../document.rst:313 176f6da4c473440c9136b9f539104722 msgid ":data:`xref` of the OCMD to be updated, or 0 for a new OCMD." -msgstr "" +msgstr "업데이트할 OCMD의 :data:`xref` 또는 새 OCMD의 경우 0." #: ../../document.rst:314 c62679a99da644e8b4803a0c9d329a9a msgid "a sequence of :data:`xref` numbers of existing :data:`OCG` PDF objects." -msgstr "" +msgstr "기존 :data:`OCG` PDF 객체의 :data:`xref` 번호 시퀀스." #: ../../document.rst:315 4b77e6d94ae7432085d1e1936f946ec6 msgid "" "one of \"AnyOn\" (default), \"AnyOff\", \"AllOn\", \"AllOff\" (mixed or " "lower case)." -msgstr "" +msgstr "\"AnyOn\" (기본값), \"AnyOff\", \"AllOn\", \"AllOff\" 중 하나(대소문자 혼합 또는 소문자)." #: ../../document.rst:316 52aa1d09e9274734ae9c2082f3543182 msgid "" "a \"visibility expression\". This is a list of arbitrarily nested other " "lists -- see explanation below. Use as an alternative to the combination " "*ocgs* / *policy* if you need to formulate more complex conditions." -msgstr "" +msgstr "\"가시성 표현식\". 이것은 임의로 중첩된 다른 목록의 목록입니다. 아래 설명을 참조하세요. 더 복잡한 조건을 공식화해야 하는 경우 *ocgs* / *policy* 조합의 대안으로 사용합니다." #: ../../document.rst:318 82c5e6b9f0df4f9e8364caf4e1030f20 msgid "" ":data:`xref` of the OCMD. Use as `oc=xref` parameter in supporting " "objects, and respectively in :meth:`Document.set_oc` or " ":meth:`Annot.set_oc`." -msgstr "" +msgstr "OCMD의 :data:`xref`. 지원 객체에서 `oc=xref` 매개변수로 사용하고, 각각 :meth:`Document.set_oc` 또는 :meth:`Annot.set_oc` 에서 사용합니다." #: ../../document.rst:322 ff4a88e9bc164073a711f1c9e12ff4e5 msgid "" @@ -1506,46 +1506,46 @@ msgid "" "evaluating the state of one or more OCGs via special forms of **boolean " "expressions.** If the expression evaluates to true, the OCMD state is ON " "and OFF for false." -msgstr "" +msgstr "OCG와 마찬가지로 OCMD는 ON 또는 OFF 가시성 상태를 가지며 OCG처럼 사용할 수 있습니다. OCG와 달리 OCMD 상태는 **부울 표현식** 의 특수 형식을 통해 하나 이상의 OCG 상태를 평가하여 결정됩니다. 표현식이 true로 평가되면 OCMD 상태는 ON이고, false이면 OFF입니다." #: ../../document.rst:324 7624a64d7d344afcb6b9c711969255fd msgid "There are two ways to formulate OCMD visibility:" -msgstr "" +msgstr "OCMD 가시성을 공식화하는 두 가지 방법이 있습니다:" #: ../../document.rst:326 f286a0292bdc4233bb5cae6692a86360 msgid "" "Use the combination of *ocgs* and *policy*: The *policy* value is " "interpreted as follows:" -msgstr "" +msgstr "*ocgs* 와 *policy* 조합 사용: *policy* 값은 다음과 같이 해석됩니다:" #: ../../document.rst:328 cd5febb83dd14249b5c74b772683ca78 msgid "AnyOn -- (default) true if at least one OCG is ON." -msgstr "" +msgstr "AnyOn -- (기본값) 최소한 하나의 OCG가 ON이면 true." #: ../../document.rst:329 d198b9b66f374b60b940b079312cd963 msgid "AnyOff -- true if at least one OCG is OFF." -msgstr "" +msgstr "AnyOff -- 최소한 하나의 OCG가 OFF이면 true." #: ../../document.rst:330 075a921c145249f5b1eca9f6602422ba msgid "AllOn -- true if all OCGs are ON." -msgstr "" +msgstr "AllOn -- 모든 OCG가 ON이면 true." #: ../../document.rst:331 fa6c2c43aba44d159e35b8f57e646e0c msgid "AllOff -- true if all OCGs are OFF." -msgstr "" +msgstr "AllOff -- 모든 OCG가 OFF이면 true." #: ../../document.rst:333 06df4aa95eb7403f92d354cdafc71cc9 msgid "" "Suppose you want two PDF objects be displayed exactly one at a time (if " "one is ON, then the other one must be OFF):" -msgstr "" +msgstr "두 개의 PDF 객체를 한 번에 정확히 하나씩만 표시하려는 경우(하나가 ON이면 다른 하나는 OFF여야 함):" #: ../../document.rst:335 65c7260ce3b54ff484d2f1642d17fc89 msgid "" "Solution: use an **OCG** for object 1 and an **OCMD** for object 2. " "Create the OCMD via `set_ocmd(ocgs=[xref], policy=\"AllOff\")`, with the " ":data:`xref` of the OCG." -msgstr "" +msgstr "해결책: 객체 1에 **OCG** 를 사용하고 객체 2에 **OCMD** 를 사용합니다. OCG의 :data:`xref` 로 `set_ocmd(ocgs=[xref], policy=\"AllOff\")` 를 통해 OCMD를 생성합니다." #: ../../document.rst:337 daf6a22c4b2a43d6a4bab99eff6c02c3 msgid "" @@ -1556,68 +1556,68 @@ msgid "" "must be the :data:`xref` number of an OCG. A list must again have at " "least two items starting with one of the boolean keywords. This syntax is" " a bit awkward, but quite powerful:" -msgstr "" +msgstr "**가시성 표현식** *ve* 사용: 이것은 두 개 이상의 항목 목록입니다. **첫 번째 항목** 은 논리 키워드입니다: **\"and\"**, **\"or\"**, 또는 **\"not\"** 중 하나. **두 번째** 및 모든 후속 항목은 정수 또는 다른 목록이어야 합니다. 정수는 OCG의 :data:`xref` 번호여야 합니다. 목록은 부울 키워드 중 하나로 시작하는 최소 두 개의 항목을 다시 가져야 합니다. 이 구문은 약간 어색하지만 매우 강력합니다:" #: ../../document.rst:339 3542e922141d45e9bcd5d64b3ad00ead msgid "Each list must start with a logical keyword." -msgstr "" +msgstr "각 목록은 논리 키워드로 시작해야 합니다." #: ../../document.rst:340 fa6c94f45a68492895b165d5688053b2 msgid "" "If the keyword is a **\"not\"**, then the list must have exactly two " "items. If it is **\"and\"** or **\"or\"**, any number of other items may " "follow." -msgstr "" +msgstr "키워드가 **\"not\"** 이면 목록은 정확히 두 개의 항목을 가져야 합니다. **\"and\"** 또는 **\"or\"** 이면 임의의 수의 다른 항목이 올 수 있습니다." #: ../../document.rst:341 2d88da6745cb40e5afe68d8a712a15df msgid "" "Items following the logical keyword may be either integers or again a " "list. An *integer* must be the xref of an OCG. A *list* must conform to " "the previous rules." -msgstr "" +msgstr "논리 키워드 다음의 항목은 정수이거나 다시 목록일 수 있습니다. *정수* 는 OCG의 xref여야 합니다. *목록* 은 이전 규칙을 준수해야 합니다." #: ../../document.rst:343 d786a59eab5449a5ad1c6130e01c2bca msgid "**Examples:**" -msgstr "" +msgstr "**예제:**" #: ../../document.rst:345 32e37d05f4b94a2c9f8a2241e144216c msgid "" "`set_ocmd(ve=[\"or\", 4, [\"not\", 5], [\"and\", 6, 7]])`. This delivers " "ON if the following is true: **\"4 is ON, or 5 is OFF, or 6 and 7 are " "both ON\"**." -msgstr "" +msgstr "`set_ocmd(ve=[\"or\", 4, [\"not\", 5], [\"and\", 6, 7]])`. 다음이 true이면 ON을 제공합니다: **\"4가 ON이거나, 5가 OFF이거나, 6과 7이 모두 ON\"**." #: ../../document.rst:346 8bff1ec6e8a545a19fcf60c341c39b3f msgid "" "`set_ocmd(ve=[\"not\", xref])`. This has the same effect as the OCMD " "example created under 1." -msgstr "" +msgstr "`set_ocmd(ve=[\"not\", xref])`. 이것은 1번에서 생성된 OCMD 예제와 동일한 효과를 가집니다." #: ../../document.rst:348 bb5ab99cc5154c058bd6c6c21d77efdb msgid "" "For more details and examples see page 224 of :ref:`AdobeManual`. Also do" " have a look at example scripts `here `_." -msgstr "" +msgstr "자세한 내용과 예제는 :ref:`AdobeManual` 의 224페이지를 참조하세요. 또한 예제 스크립트 ` 여기 `_ 도 확인하세요." #: ../../document.rst:350 710f05e9b696464fa3f0137f62c2204b msgid "" "Visibility expressions, `/VE`, are part of PDF specification version 1.6." " So not all PDF viewers / readers may already support this feature and " "hence will react in some standard way for those cases." -msgstr "" +msgstr "가시성 표현식 `/VE` 는 PDF 사양 버전 1.6의 일부입니다. 따라서 모든 PDF 뷰어/리더가 이 기능을 지원하지 않을 수 있으며, 따라서 이러한 경우 표준 방식으로 반응할 수 있습니다." #: ../../document.rst:357 fad572b38ee64c15b7ffc0ca037efa59 msgid "Retrieve the definition of an :data:`OCMD`." -msgstr "" +msgstr ":data:`OCMD` 의 정의를 검색합니다." #: ../../document.rst:359 3a57bb52cf234bbeaa0eef4f2d589d31 msgid "the :data:`xref` of the OCMD." -msgstr "" +msgstr "OCMD의 :data:`xref`." #: ../../document.rst:361 8beef4ef63b642df94ebb105bec160d8 msgid "a dictionary with the keys :data:`xref`, *ocgs*, *policy* and *ve*." -msgstr "" +msgstr ":data:`xref`, *ocgs*, *policy* 및 *ve* 키를 가진 딕셔너리." #: ../../document.rst:368 e2155a3ac05040b9add64191e6b9e0ff msgid "" @@ -1625,45 +1625,45 @@ msgid "" " This is a dictionary with lists of cross reference numbers for OCGs that" " occur in the arrays `/ON`, `/OFF` or in some radio button group " "(`/RBGroups`)." -msgstr "" +msgstr "지정된 구성에서 상태별 선택적 콘텐츠 그룹 목록. 이것은 `/ON`, `/OFF` 배열 또는 일부 라디오 버튼 그룹(`/RBGroups`)에 나타나는 OCG의 교차 참조 번호 목록을 가진 딕셔너리입니다." #: ../../document.rst:370 5c4df35639784744a466356b3362cbc6 msgid "the configuration layer (default is the standard config layer)." -msgstr "" +msgstr "구성 레이어(기본값은 표준 구성 레이어)." #: ../../document.rst:380 2f281f33088346b08c527ae42e6f1c4e msgid "Changed in v1.22.5: Support list of *locked* OCGs." -msgstr "" +msgstr "v1.22.5에서 변경됨: *잠긴* OCG 목록 지원." #: ../../document.rst:382 e1b37420106d4246a034d0a858461ca2 msgid "" "Mass status changes of optional content groups. **Permanently** sets the " "status of OCGs." -msgstr "" +msgstr "선택적 콘텐츠 그룹의 대량 상태 변경. OCG 상태를 **영구적으로** 설정합니다." #: ../../document.rst:384 a2e67c4937b043b797822f7cd599b808 msgid "desired configuration layer, choose -1 for the default one." -msgstr "" +msgstr "원하는 구성 레이어, 기본값의 경우 -1을 선택합니다." #: ../../document.rst:385 a5d626582a0c4adeac28522f8e23f533 msgid "" "list of :data:`xref` of OCGs to set ON. Replaces previous values. An " "empty list will cause no OCG being set to ON anymore. Should be specified" " if `basestate=\"ON\"` is used." -msgstr "" +msgstr "ON으로 설정할 OCG의 :data:`xref` 목록. 이전 값을 대체합니다. 빈 목록은 더 이상 OCG가 ON으로 설정되지 않도록 합니다. `basestate=\"ON\"` 이 사용되는 경우 지정해야 합니다." #: ../../document.rst:386 b105d154868648c0a78aa7ddeab0e341 msgid "" "list of :data:`xref` of OCGs to set OFF. Replaces previous values. An " "empty list will cause no OCG being set to OFF anymore. Should be " "specified if `basestate=\"OFF\"` is used." -msgstr "" +msgstr "OFF로 설정할 OCG의 :data:`xref` 목록. 이전 값을 대체합니다. 빈 목록은 더 이상 OCG가 OFF로 설정되지 않도록 합니다. `basestate=\"OFF\"` 가 사용되는 경우 지정해야 합니다." #: ../../document.rst:387 00ee5fd0e019474a870809b586d7a8dc msgid "" "state of OCGs that are not mentioned in *on* or *off*. Possible values " "are \"ON\", \"OFF\" or \"Unchanged\". Upper / lower case possible." -msgstr "" +msgstr "*on* 또는 *off* 에 언급되지 않은 OCG의 상태. 가능한 값은 \"ON\", \"OFF\" 또는 \"Unchanged\" 입니다. 대소문자 가능." #: ../../document.rst:388 00be43e01f734962a6706a02e112feb2 msgid "" @@ -1671,69 +1671,69 @@ msgid "" "two or more OCG xrefs. OCGs in the same sublist are handled like buttons " "in a radio button group: setting one to ON automatically sets all other " "group members to OFF." -msgstr "" +msgstr "목록의 목록. 이전 값을 대체합니다. 각 하위 목록은 두 개 이상의 OCG xref를 포함해야 합니다. 동일한 하위 목록의 OCG는 라디오 버튼 그룹의 버튼처럼 처리됩니다: 하나를 ON으로 설정하면 다른 모든 그룹 구성원이 자동으로 OFF로 설정됩니다." #: ../../document.rst:389 fa0a09aca08c40b1b90f36b23146c355 msgid "a list of OCG xref number that cannot be changed by the user interface." -msgstr "" +msgstr "사용자 인터페이스로 변경할 수 없는 OCG xref 번호 목록." #: ../../document.rst:391 e1c4e0490d9940e1883ad98f81859df8 msgid "Values `None` will not change the corresponding PDF array." -msgstr "" +msgstr "`None` 값은 해당 PDF 배열을 변경하지 않습니다." #: ../../document.rst:402 6b83e49681b24a10b144d4a9e4acc01d msgid "" "Details of all optional content groups. This is a dictionary of " "dictionaries like this (key is the OCG's :data:`xref`):" -msgstr "" +msgstr "모든 선택적 콘텐츠 그룹의 세부 정보. 이것은 다음과 같은 딕셔너리의 딕셔너리입니다(키는 OCG의 :data:`xref`):" #: ../../document.rst:420 36edc40743fe4afb943bac223003f082 msgid "" "Show the visibility status of optional content that is modifiable by the " "user interface of supporting PDF viewers." -msgstr "" +msgstr "지원하는 PDF 뷰어의 사용자 인터페이스로 수정 가능한 선택적 콘텐츠의 가시성 상태를 표시합니다." #: ../../document.rst:422 75b0b7f00565469eb5c15de91d146e92 msgid "" "Only reports items contained in the currently selected layer " "configuration." -msgstr "" +msgstr "현재 선택된 레이어 구성에 포함된 항목만 보고합니다." #: ../../document.rst:429 34d23ea600964ffa9e171337ddac9bef msgid "The meaning of the dictionary keys is as follows:" -msgstr "" +msgstr "딕셔너리 키의 의미는 다음과 같습니다:" #: ../../document.rst:425 a6f590d8251a4781a92016be8710b113 msgid "*depth:* item's nesting level in the `/Order` array" -msgstr "" +msgstr "*depth:* `/Order` 배열에서 항목의 중첩 수준" #: ../../document.rst:426 f6a9c537d38e4cdb89490b8d63d75c4b msgid "*locked:* true if cannot be changed via user interfaces" -msgstr "" +msgstr "*locked:* 사용자 인터페이스를 통해 변경할 수 없으면 true" #: ../../document.rst:427 208b1ca352e74127bda9ca8a9983cbe6 msgid "*number:* running sequence number" -msgstr "" +msgstr "*number:* 실행 시퀀스 번호" #: ../../document.rst:428 ab611eafc0ae4bbfb5cfc33ec4c9f161 msgid "*on:* item state" -msgstr "" +msgstr "*on:* 항목 상태" #: ../../document.rst:429 6fd780d71a13487ca690fbfc3311d4bd msgid "*text:* text string or name field of the originating OCG" -msgstr "" +msgstr "*text:* 원본 OCG의 텍스트 문자열 또는 이름 필드" #: ../../document.rst:430 286752141da0452e9dff2a920379fecb msgid "" "*type:* one of \"label\" (set by a text string), \"checkbox\" (set by a " "single OCG) or \"radiobox\" (set by a set of connected OCGs)" -msgstr "" +msgstr "*type:* \"label\" (텍스트 문자열로 설정), \"checkbox\" (단일 OCG로 설정) 또는 \"radiobox\" (연결된 OCG 집합으로 설정) 중 하나" #: ../../document.rst:436 623754e00b3f43feaccf231803da154d msgid "" "Modify OC visibility status of content groups. This is analog to what " "supporting PDF viewers would offer." -msgstr "" +msgstr "콘텐츠 그룹의 OC 가시성 상태를 수정합니다. 이것은 지원하는 PDF 뷰어가 제공하는 것과 유사합니다." #: ../../document.rst:438 7a68db8cb2cb477680821155ce320684 msgid "" @@ -1742,23 +1742,23 @@ msgid "" "Instead, the current visibility is **temporarily** set using the user " "interface of some supporting PDF consumer software. The same type of " "functionality is offered by this method." -msgstr "" +msgstr "가시성은 OCG와 함께 저장되는 속성이 **아닙니다**. PDF 문서에 반드시 존재하는 정보도 아닙니다. 대신, 현재 가시성은 일부 지원하는 PDF 소비자 소프트웨어의 사용자 인터페이스를 사용하여 **임시로** 설정됩니다. 이 메서드는 동일한 유형의 기능을 제공합니다." #: ../../document.rst:440 81a92011a9ea497fb7600465d2f7249c msgid "To make **permanent** changes, use :meth:`Document.set_layer`." -msgstr "" +msgstr "**영구적인** 변경을 하려면 :meth:`Document.set_layer` 를 사용하세요." #: ../../document.rst:442 995bfe639a02475fbeeb37b8f6e73e95 msgid "" "either the sequence number of the item in list " ":meth:`Document.layer_configs` or the \"text\" of one of these items." -msgstr "" +msgstr ":meth:`Document.layer_configs` 목록의 항목 시퀀스 번호 또는 이러한 항목 중 하나의 \"text\"." #: ../../document.rst:443 775f2c9f68934b7098b0531a61f3e3a1 msgid "" "`PDF_OC_ON` = set on (default), `PDF_OC_TOGGLE` = toggle on/off, " "`PDF_OC_OFF` = set off." -msgstr "" +msgstr "`PDF_OC_ON` = 켜기(기본값), `PDF_OC_TOGGLE` = 켜기/끄기 전환, `PDF_OC_OFF` = 끄기." #: ../../document.rst:448 27be24636736454f8669d2bf32f5850e msgid "" @@ -1767,11 +1767,11 @@ msgid "" "have different privileges, and hence different passwords may exist for " "these authorization levels. The method will automatically establish the " "appropriate (owner or user) access rights for the provided password." -msgstr "" +msgstr "문자열 *password* 로 문서를 복호화합니다. 성공하면 문서 데이터에 액세스할 수 있습니다. PDF 문서의 경우 \"owner\" 와 \"user\" 는 다른 권한을 가지므로 이러한 권한 수준에 대해 다른 비밀번호가 존재할 수 있습니다. 이 메서드는 제공된 비밀번호에 대해 적절한(owner 또는 user) 액세스 권한을 자동으로 설정합니다." #: ../../document.rst:450 85327273191345d7a0064b7bfa2198b3 msgid "owner or user password." -msgstr "" +msgstr "owner 또는 user 비밀번호." #: ../../document.rst:453 9c5364f7fc154375a06079af2df92681 msgid "" @@ -1793,7 +1793,7 @@ msgid "" "`PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE`, etc. are set " "off! It is your responsibility building a legally compliant application " "where applicable." -msgstr "" +msgstr "성공하면 양수 값, 그렇지 않으면 0(문자열이 두 비밀번호와 일치하지 않음). 양수이면 표시기 :attr:`Document.is_encrypted` 가 ``False`` 로 설정됩니다. **양수** 반환 코드는 다음 정보 세부 사항을 포함합니다: * 1 => 인증되었지만 PDF에 owner 또는 user 비밀번호가 없습니다. * 2 => **user** 비밀번호로 인증되었습니다. * 4 => **owner** 비밀번호로 인증되었습니다. * 6 => 인증되었고 두 비밀번호가 동일합니다. 아마도 드문 상황입니다. .. note:: 문서는 owner로 보호될 수 있지만 user 비밀번호로는 보호되지 **않을** 수 있습니다. `doc.authenticate(\"\") == 2` 를 통해 이 상황을 감지합니다. 이것은 인증 없이 문서를 열고 읽을 수 있게 하지만, :attr:`Document.permissions` 값에 따라 다른 작업이 금지될 수 있습니다. |PyMuPDF| (|MuPDF| 와 마찬가지로) 이 경우 **이러한 제한을 무시합니다**. 따라서 -- 모든 PDF 뷰어와 달리 -- 예를 들어 해당 권한 플래그 `PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE` 등이 꺼져 있어도 텍스트를 추출하고 콘텐츠를 추가하거나 수정할 수 있습니다! 해당되는 경우 법적으로 준수하는 애플리케이션을 구축하는 것은 귀하의 책임입니다." #: ../../document.rst:453 08583032eafa41b7ac9b194f3bda03fa msgid "" @@ -1801,25 +1801,25 @@ msgid "" " either password). If positive, the indicator " ":attr:`Document.is_encrypted` is set to ``False``. **Positive** return " "codes carry the following information detail:" -msgstr "" +msgstr "성공하면 양수 값, 그렇지 않으면 0(문자열이 두 비밀번호와 일치하지 않음). 양수이면 표시기 :attr:`Document.is_encrypted` 가 ``False`` 로 설정됩니다. **양수** 반환 코드는 다음 정보 세부 사항을 포함합니다:" #: ../../document.rst:455 91f0bb6a692a4682a4c34c71ee148f1e msgid "1 => authenticated, but the PDF has neither owner nor user passwords." -msgstr "" +msgstr "1 => 인증되었지만 PDF에 owner 또는 user 비밀번호가 없습니다." #: ../../document.rst:456 ba4f57095e824261b0a64d65bc13465d msgid "2 => authenticated with the **user** password." -msgstr "" +msgstr "2 => **user** 비밀번호로 인증되었습니다." #: ../../document.rst:457 bfb7a0beede248c8a99fea4df83c1674 msgid "4 => authenticated with the **owner** password." -msgstr "" +msgstr "4 => **owner** 비밀번호로 인증되었습니다." #: ../../document.rst:458 b8eaae626e8f42f29a0612cb9c166585 msgid "" "6 => authenticated and both passwords are equal -- probably a rare " "situation." -msgstr "" +msgstr "6 => 인증되었고 두 비밀번호가 동일합니다. 아마도 드문 상황입니다." #: ../../document.rst:462 73fc6cf7a70b4ed7b17c292f3bc63fa7 msgid "" @@ -1833,38 +1833,38 @@ msgid "" "permission flags `PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE`," " etc. are set off! It is your responsibility building a legally compliant" " application where applicable." -msgstr "" +msgstr "문서는 owner로 보호될 수 있지만 user 비밀번호로는 보호되지 **않을** 수 있습니다. `doc.authenticate(\"\") == 2` 를 통해 이 상황을 감지합니다. 이것은 인증 없이 문서를 열고 읽을 수 있게 하지만, :attr:`Document.permissions` 값에 따라 다른 작업이 금지될 수 있습니다. |PyMuPDF| (|MuPDF| 와 마찬가지로) 이 경우 **이러한 제한을 무시합니다**. 따라서 -- 모든 PDF 뷰어와 달리 -- 예를 들어 해당 권한 플래그 `PDF_PERM_COPY`, `PDF_PERM_MODIFY`, `PDF_PERM_ANNOTATE` 등이 꺼져 있어도 텍스트를 추출하고 콘텐츠를 추가하거나 수정할 수 있습니다! 해당되는 경우 법적으로 준수하는 애플리케이션을 구축하는 것은 귀하의 책임입니다." #: ../../document.rst:466 119ec5a546d0492cbc3d44a94c5c6e67 msgid "New in v 1.18.6" -msgstr "" +msgstr "v 1.18.6에서 새로 추가됨" #: ../../document.rst:468 71cef20992634be89bc64e392ac17031 msgid "" "PDF only: Return a list of page numbers that have the specified label -- " "note that labels may not be unique in a PDF. This implies a sequential " "search through **all page numbers** to compare their labels." -msgstr "" +msgstr "PDF 전용: 지정된 레이블을 가진 페이지 번호 목록을 반환합니다. 레이블이 PDF에서 고유하지 않을 수 있습니다. 이것은 레이블을 비교하기 위해 **모든 페이지 번호** 를 순차적으로 검색하는 것을 의미합니다." #: ../../document.rst:470 a2a599a9359442d8b21007f88a6371db msgid "Implementation detail -- pages are **not loaded** for this purpose." -msgstr "" +msgstr "구현 세부 사항 -- 이 목적을 위해 페이지는 **로드되지 않습니다**." #: ../../document.rst:472 946caeaeaaec48838a6a321dc1963727 msgid "the label to look for, e.g. \"vii\" (Roman number 7)." -msgstr "" +msgstr "찾을 레이블, 예: \"vii\" (로마 숫자 7)." #: ../../document.rst:473 76acb3f67de149159a5b95ff30cb08b6 msgid "" "stop after first hit. Useful e.g. if labelling is known to be unique, or " "there are many pages, etc. The default will check every page number." -msgstr "" +msgstr "첫 번째 일치 후 중지. 레이블링이 고유한 것으로 알려져 있거나 페이지가 많은 경우 등에 유용합니다. 기본값은 모든 페이지 번호를 확인합니다." #: ../../document.rst:475 9adccc3fc8054990ad6014e9041d93de msgid "" "list of page numbers that have this label. Empty if none found, no labels" " defined, etc." -msgstr "" +msgstr "이 레이블을 가진 페이지 번호 목록. 찾을 수 없거나 레이블이 정의되지 않은 경우 비어 있습니다." #: ../../document.rst:480 ../../document.rst:843 ../../document.rst:864 #: ../../document.rst:1897 ../../document.rst:1921 @@ -1872,25 +1872,25 @@ msgstr "" #: 3450b554a2e0411eacdd819c036cccc2 80adb24663644aa28fa9a11528256936 #: 92afdec41f4a4a328c24a25cbcd0b7a6 msgid "New in v1.18.7" -msgstr "" +msgstr "v1.18.7에서 새로 추가됨" #: ../../document.rst:482 743daa378cfe4792ad9fa83a2909eb8d msgid "" "PDF only: Extract the list of page label definitions. Typically used for " "modifications before feeding it into :meth:`Document.set_page_labels`." -msgstr "" +msgstr "PDF 전용: 페이지 레이블 정의 목록을 추출합니다. 일반적으로 :meth:`Document.set_page_labels` 에 전달하기 전에 수정하는 데 사용됩니다." #: ../../document.rst:484 0f5d97b8193a461b8fe7e04b712adae9 msgid "a list of dictionaries as defined in :meth:`Document.set_page_labels`." -msgstr "" +msgstr ":meth:`Document.set_page_labels` 에 정의된 대로 딕셔너리 목록." #: ../../document.rst:488 244cbe336b1e4cddb8491c05e5ec5b15 msgid "New in v1.18.6" -msgstr "" +msgstr "v1.18.6에서 새로 추가됨" #: ../../document.rst:490 470a1bc4f0404283b7358f77bc840a9d msgid "PDF only: Add or update the page label definitions of the PDF." -msgstr "" +msgstr "PDF 전용: PDF의 페이지 레이블 정의를 추가하거나 업데이트합니다." #: ../../document.rst:492 d0c5ec05dc0f4ba5a381635a4cf3c93b msgid "" @@ -1911,7 +1911,7 @@ msgid "" "receive the same label consisting of the `prefix` value. If prefix is " "also omitted, then the label will be \"\". - `firstpagenum`: (int) start " "numbering with this value. Default is 1, smaller values are ignored." -msgstr "" +msgstr "딕셔너리 목록. 각 딕셔너리는 레이블 빌딩 규칙과 0 기반 \"시작\" 페이지 번호를 정의합니다. 해당 시작 페이지는 레이블 정의가 유효한 첫 번째 페이지입니다. 각 딕셔너리는 최대 4개의 항목을 가지며 `{'startpage': int, 'prefix': str, 'style': str, 'firstpagenum': int}` 와 같이 보이며 다음 항목을 가집니다. - `startpage`: (int) 레이블 규칙을 적용할 첫 번째 페이지 번호(0 기반). 이 키는 **반드시 있어야 합니다**. 규칙은 문서 끝까지 또는 다음 더 큰 페이지 번호를 가진 규칙으로 대체될 때까지 모든 후속 페이지에 적용됩니다. - `prefix`: (str) 레이블을 시작하는 임의의 문자열, 예: \"A-\". 기본값은 \"\" 입니다. - `style`: (str) 번호 매기기 스타일. 사용 가능한 것은 \"D\" (십진수), \"r\"/\"R\" (로마 숫자, 소문자/대문자), \"a\"/\"A\" (소문자/대문자 알파벳 번호 매기기: \"a\" 부터 \"z\" 까지, 그 다음 \"aa\" 부터 \"zz\" 까지 등). 기본값은 \"\" 입니다. \"\" 이면 번호 매기기가 수행되지 않고 해당 범위의 페이지는 `prefix` 값으로 구성된 동일한 레이블을 받습니다. prefix도 생략되면 레이블은 \"\" 가 됩니다. - `firstpagenum`: (int) 이 값으로 번호 매기기를 시작합니다. 기본값은 1이며, 더 작은 값은 무시됩니다." #: ../../document.rst:492 0fab77fbe73e4149aa809d1d7d83d4ce msgid "" @@ -1920,7 +1920,7 @@ msgid "" "the label definition is valid. Each dictionary has up to 4 items and " "looks like `{'startpage': int, 'prefix': str, 'style': str, " "'firstpagenum': int}` and has the following items." -msgstr "" +msgstr "딕셔너리 목록. 각 딕셔너리는 레이블 빌딩 규칙과 0 기반 \"시작\" 페이지 번호를 정의합니다. 해당 시작 페이지는 레이블 정의가 유효한 첫 번째 페이지입니다. 각 딕셔너리는 최대 4개의 항목을 가지며 `{'startpage': int, 'prefix': str, 'style': str, 'firstpagenum': int}` 와 같이 보이며 다음 항목을 가집니다." #: ../../document.rst:494 7eeface47e22458b9ccd093d60a289a2 msgid "" @@ -1928,13 +1928,13 @@ msgid "" "rule. This key **must be present**. The rule is applied to all subsequent" " pages until either end of document or superseded by the rule with the " "next larger page number." -msgstr "" +msgstr "`startpage`: (int) 레이블 규칙을 적용할 첫 번째 페이지 번호(0 기반). 이 키는 **반드시 있어야 합니다**. 규칙은 문서 끝까지 또는 다음 더 큰 페이지 번호를 가진 규칙으로 대체될 때까지 모든 후속 페이지에 적용됩니다." #: ../../document.rst:495 74fd610222f54117be5ff8aa62d5e852 msgid "" "`prefix`: (str) an arbitrary string to start the label with, e.g. \"A-\"." " Default is \"\"." -msgstr "" +msgstr "`prefix`: (str) 레이블을 시작하는 임의의 문자열, 예: \"A-\". 기본값은 \"\" 입니다." #: ../../document.rst:496 27261aba29414162837b13ebf37bfbb9 msgid "" @@ -1945,93 +1945,93 @@ msgid "" "place and the pages in that range will receive the same label consisting " "of the `prefix` value. If prefix is also omitted, then the label will be " "\"\"." -msgstr "" +msgstr "`style`: (str) 번호 매기기 스타일. 사용 가능한 것은 \"D\" (십진수), \"r\"/\"R\" (로마 숫자, 소문자/대문자), \"a\"/\"A\" (소문자/대문자 알파벳 번호 매기기: \"a\" 부터 \"z\" 까지, 그 다음 \"aa\" 부터 \"zz\" 까지 등). 기본값은 \"\" 입니다. \"\" 이면 번호 매기기가 수행되지 않고 해당 범위의 페이지는 `prefix` 값으로 구성된 동일한 레이블을 받습니다. prefix도 생략되면 레이블은 \"\" 가 됩니다." #: ../../document.rst:497 3ceaa9f717194b72bdd2f7f205217200 msgid "" "`firstpagenum`: (int) start numbering with this value. Default is 1, " "smaller values are ignored." -msgstr "" +msgstr "`firstpagenum`: (int) 이 값으로 번호 매기기를 시작합니다. 기본값은 1이며, 더 작은 값은 무시됩니다." #: ../../document.rst:499 2afd6593eaf0423e8afcd6635c826754 msgid "For example::" -msgstr "" +msgstr "예를 들어::" #: ../../document.rst:504 040ded0fb2be4e5cbeadc76208560d19 msgid "" "will generate the labels \"A-10\", \"A-11\", \"A-12\", \"A-13\", \"1\", " "\"2\", \"3\", ... for pages 6, 7 and so on until end of document. Pages 0" " through 5 will have the label \"\"." -msgstr "" +msgstr "페이지 6, 7 등 문서 끝까지 \"A-10\", \"A-11\", \"A-12\", \"A-13\", \"1\", \"2\", \"3\", ... 레이블을 생성합니다. 페이지 0부터 5까지는 레이블이 \"\" 입니다." #: ../../document.rst:509 ../../document.rst:523 #: 0aa8b9c83c1b41719f9cbd43feabcdf8 846b39d637a5466f8c256fcfce4f4571 msgid "New in v.1.17.3" -msgstr "" +msgstr "v.1.17.3에서 새로 추가됨" #: ../../document.rst:511 12e98a99804a4723ac02582721c5a896 msgid "" "Return a page pointer in a reflowable document. After re-layouting the " "document, the result of this method can be used to find the new location " "of the page." -msgstr "" +msgstr "재배치 가능한 문서에서 페이지 포인터를 반환합니다. 문서를 다시 레이아웃한 후 이 메서드의 결과를 사용하여 페이지의 새 위치를 찾을 수 있습니다." #: ../../document.rst:513 c31102cafa52492ca638735d028e8d7f msgid "Do not confuse with items of a table of contents, TOC." -msgstr "" +msgstr "목차(TOC) 항목과 혼동하지 마세요." #: ../../document.rst:515 9ffd70204ee543ffa134b90dad39f75a msgid "page location. Must be a valid *(chapter, pno)*." -msgstr "" +msgstr "페이지 location. 유효한 *(chapter, pno)* 여야 합니다." #: ../../document.rst:518 c028fcff4f6a4c409c5bd4f2c7094af3 msgid "" "a long integer in pointer format. To be used for finding the new location" " of the page after re-layouting the document. Do not touch or re-assign." -msgstr "" +msgstr "포인터 형식의 긴 정수. 문서를 다시 레이아웃한 후 페이지의 새 위치를 찾는 데 사용됩니다. 건드리거나 재할당하지 마세요." #: ../../document.rst:525 aae59f9b08ae4ed7b02b7f7a2dd7a991 msgid "Return the new page location after re-layouting the document." -msgstr "" +msgstr "문서를 다시 레이아웃한 후 새 페이지 location을 반환합니다." #: ../../document.rst:527 a8da17fc210f4a43a9d2b4ceb3185c5f msgid "created by :meth:`Document.make_bookmark`." -msgstr "" +msgstr ":meth:`Document.make_bookmark` 에 의해 생성됨." #: ../../document.rst:530 1d07a10894004002a21058fdfeac44af msgid "the new (chapter, pno) of the page." -msgstr "" +msgstr "페이지의 새 (chapter, pno)." #: ../../document.rst:535 ../../document.rst:547 ../../document.rst:558 #: 61c1413e338345c9ab33c2b1c5f9decc 6a5cad42e88f4f499c7181e080b1f971 #: 946e1b36b28b4432a39b16f8c68d62e0 msgid "New in v.1.17.0" -msgstr "" +msgstr "v.1.17.0에서 새로 추가됨" #: ../../document.rst:537 c8b174e76e7b434db43abd0893095ba8 msgid "Return the number of pages of a chapter." -msgstr "" +msgstr "장의 페이지 수를 반환합니다." #: ../../document.rst:539 967dfc416734482196f7a8ffa7d45bd4 msgid "the 0-based chapter number." -msgstr "" +msgstr "0 기반 장 번호." #: ../../document.rst:542 2a83ec2d4ea54b1897eeb50f82566adc msgid "" "number of pages in chapter. Relevant only for document types with chapter" " support (EPUB currently)." -msgstr "" +msgstr "장의 페이지 수. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련됩니다." #: ../../document.rst:549 162f24578e6749c8ada15b85d4be6bea msgid "Return the location of the following page." -msgstr "" +msgstr "다음 페이지의 location을 반환합니다." #: ../../document.rst:551 ../../document.rst:562 #: 76dcbeac58be4a63aa5feb22ccbcc31e b635038017484753aa510b172311664a msgid "" "the current page id. This must be a tuple *(chapter, pno)* identifying an" " existing page." -msgstr "" +msgstr "현재 페이지 id. 이것은 기존 페이지를 식별하는 튜플 *(chapter, pno)* 여야 합니다." #: ../../document.rst:553 077a38466aeb4464b21c75847fc03419 msgid "" @@ -2039,11 +2039,11 @@ msgid "" "*(chapter + 1, 0)*, **or** the empty tuple *()* if the argument was the " "last page. Relevant only for document types with chapter support (EPUB " "currently)." -msgstr "" +msgstr "다음 페이지의 튜플, 즉 *(chapter, pno + 1)* 또는 *(chapter + 1, 0)*, **또는** 인수가 마지막 페이지인 경우 빈 튜플 *()*. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련됩니다." #: ../../document.rst:560 540ac91bacd24f2184f90373daac0a7e msgid "Return the locator of the preceding page." -msgstr "" +msgstr "이전 페이지의 위치 지정자를 반환합니다." #: ../../document.rst:564 bec578e6b61c4cc9b0f254bbcb0f48b7 msgid "" @@ -2051,7 +2051,7 @@ msgid "" "last page of the preceding chapter, **or** the empty tuple *()* if the " "argument was the first page. Relevant only for document types with " "chapter support (EPUB currently)." -msgstr "" +msgstr "이전 페이지의 튜플, 즉 *(chapter, pno - 1)* 또는 이전 장의 마지막 페이지, **또는** 인수가 첫 번째 페이지인 경우 빈 튜플 *()*. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련됩니다." #: ../../document.rst:569 68dfefa5502f425289fc497e0d9c6238 msgid "" @@ -2060,13 +2060,13 @@ msgid "" "chapter number and relative page number, instead of the absolute page " "number. This should **significantly speed up access** for large " "documents." -msgstr "" +msgstr "v1.17.0에서 변경됨: 소위 \"장 구조\" (EPUB 등)를 지원하는 문서 타입의 경우, 절대 페이지 번호 대신 장 번호와 상대 페이지 번호의 조합을 통해 페이지를 로드할 수도 있습니다. 이것은 큰 문서에 대해 **액세스를 크게 향상시켜야** 합니다." #: ../../document.rst:571 e7a2e814cced49258d2f9b21245d2ce6 msgid "" "Create a :ref:`Page` object for further processing (like rendering, text " "searching, etc.)." -msgstr "" +msgstr "추가 처리(렌더링, 텍스트 검색 등)를 위한 :ref:`Page` 객체를 생성합니다." #: ../../document.rst:573 ac4b297778cb465a83c732f4f6565380 msgid "" @@ -2081,11 +2081,11 @@ msgid "" "0-based. Using this notation, :attr:`Page.number` will equal the given " "tuple. Relevant only for document types with chapter support (EPUB " "currently)." -msgstr "" +msgstr "*(v1.17.0에서 변경됨)* 0 기반 페이지 번호 또는 튜플 *(chapter, pno)*. **정수** 의 경우 `-∞ < page_id < page_count` 가 허용됩니다. page_id가 음수이면 :attr:`page_count` 가 추가됩니다. 예를 들어: 마지막 페이지를 로드하려면 *doc.load_page(-1)* 를 사용할 수 있습니다. 그 후 page.number = doc.page_count - 1 입니다. 튜플의 경우 *chapter* 는 :attr:`Document.chapter_count` 범위에 있어야 하고, *pno* 는 해당 장의 :meth:`Document.chapter_page_count` 범위에 있어야 합니다. 두 값 모두 0 기반입니다. 이 표기법을 사용하면 :attr:`Page.number` 가 주어진 튜플과 같습니다. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련됩니다." #: ../../document.rst:573 b9bae2aee5bb433692e4d9ced23afc6b msgid "*(Changed in v1.17.0)*" -msgstr "" +msgstr "*(v1.17.0에서 변경됨)*" #: ../../document.rst:575 17221ad920ec4edda2e3f56e1ee986a5 msgid "" @@ -2094,7 +2094,7 @@ msgid "" " is negative, :attr:`page_count` will be added to it. For example: to " "load the last page, you can use *doc.load_page(-1)*. After this you have " "page.number = doc.page_count - 1." -msgstr "" +msgstr "0 기반 페이지 번호 또는 튜플 *(chapter, pno)*. **정수** 의 경우 `-∞ < page_id < page_count` 가 허용됩니다. page_id가 음수이면 :attr:`page_count` 가 추가됩니다. 예를 들어: 마지막 페이지를 로드하려면 *doc.load_page(-1)* 를 사용할 수 있습니다. 그 후 page.number = doc.page_count - 1 입니다." #: ../../document.rst:577 039ea62786ac4483a2ff851942f8e61e msgid "" @@ -2103,19 +2103,19 @@ msgid "" "chapter. Both values are 0-based. Using this notation, " ":attr:`Page.number` will equal the given tuple. Relevant only for " "document types with chapter support (EPUB currently)." -msgstr "" +msgstr "튜플의 경우 *chapter* 는 :attr:`Document.chapter_count` 범위에 있어야 하고, *pno* 는 해당 장의 :meth:`Document.chapter_page_count` 범위에 있어야 합니다. 두 값 모두 0 기반입니다. 이 표기법을 사용하면 :attr:`Page.number` 가 주어진 튜플과 같습니다. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련됩니다." #: ../../document.rst:579 ../../document.rst:683 ../../document.rst:1452 #: 0006a5a1428c489b85ee1ef72f368b66 1abd4533c839432f8b762c82cf15dc63 #: 78a10b5d4c74403ab6e8fb90b05f6cc0 msgid ":ref:`Page`" -msgstr "" +msgstr ":ref:`Page`" #: ../../document.rst:583 d4516954d08e43daae3d737a83243151 msgid "" "Documents also follow the Python sequence protocol with page numbers as " "indices: *doc.load_page(n) == doc[n]*." -msgstr "" +msgstr "문서는 페이지 번호를 인덱스로 사용하는 Python 시퀀스 프로토콜도 따릅니다: *doc.load_page(n) == doc[n]*." #: ../../document.rst:585 caf16253efc94349815ad78668652297 msgid "" @@ -2123,14 +2123,14 @@ msgid "" "...\"* and *\"for page in reversed(doc): ...\"* will successively yield " "the document's pages. Refer to :meth:`Document.pages` which allows " "processing pages as with slicing." -msgstr "" +msgstr "**절대 페이지 번호** 에만 해당하는 경우, *\"for page in doc: ...\"* 및 *\"for page in reversed(doc): ...\"* 와 같은 표현식이 문서의 페이지를 순차적으로 생성합니다. 슬라이싱과 같이 페이지를 처리할 수 있는 :meth:`Document.pages` 를 참조하세요." #: ../../document.rst:587 4eec9f75b1a648e5954520327f163582 msgid "" "You can also use index notation with the new chapter-based page " "identification: use *page = doc[(5, 2)]* to load the third page of the " "sixth chapter." -msgstr "" +msgstr "새로운 장 기반 페이지 식별과 함께 인덱스 표기법을 사용할 수도 있습니다: *page = doc[(5, 2)]* 를 사용하여 여섯 번째 장의 세 번째 페이지를 로드합니다." #: ../../document.rst:589 d88b05b23ebe48cdbc81a8716291829e msgid "" @@ -2138,14 +2138,14 @@ msgid "" " structure (like PDFs), :attr:`Document.chapter_count` is 1, and pages " "can also be loaded via tuples *(0, pno)*. See this [#f3]_ footnote for " "comments on performance improvements." -msgstr "" +msgstr "일관된 API를 유지하기 위해 장 구조를 지원하지 않는 문서 타입(예: PDF)의 경우 :attr:`Document.chapter_count` 는 1이며, 튜플 *(0, pno)* 를 통해 페이지를 로드할 수도 있습니다. 성능 개선에 대한 설명은 이 [#f3]_ 각주를 참조하세요." #: ../../document.rst:594 5877b0a8ee034827a6486e55a27c1721 msgid "" "PDF only: Walk through all images and rewrite them according to the " "specified parameters. This is useful for reducing file size, changing " "image formats, or converting color spaces." -msgstr "" +msgstr "PDF 전용: 모든 이미지를 순회하고 지정된 매개변수에 따라 다시 작성합니다. 파일 크기 줄이기, 이미지 형식 변경 또는 색상 공간 변환에 유용합니다." #: ../../document.rst:596 1894640743d14d81939992952b89a89f msgid "" @@ -2153,62 +2153,62 @@ msgid "" "reducing the file size of the PDF. When setting quality and the dpi " "parameters to positive values and accepting defaults for the rest, the " "following will happen:" -msgstr "" +msgstr "일반적인 사용법은 PDF 파일 크기를 크게 줄이기 위한 이미지의 추가 압축입니다. quality 및 dpi 매개변수를 양수 값으로 설정하고 나머지는 기본값을 사용하면 다음이 발생합니다:" #: ../../document.rst:598 3a74a4a4263048e1bfc0579a97bb35b8 msgid "" "Lossy and lossless images will be rewritten as JPEG images " "(FZ_RECOMPRESS_JPEG) as far as technically possible." -msgstr "" +msgstr "손실 및 무손실 이미지는 기술적으로 가능한 한 JPEG 이미지(FZ_RECOMPRESS_JPEG)로 다시 작성됩니다." #: ../../document.rst:600 01a553ed3bbe401db8ad3152294f8695 msgid "" "Bitonal (monochrome) images will be rewritten in FAX format " "(FZ_RECOMPRESS_FAX)." -msgstr "" +msgstr "이진(단색) 이미지는 FAX 형식(FZ_RECOMPRESS_FAX)으로 다시 작성됩니다." #: ../../document.rst:602 38e8687fa2994142bc5da75bec6d83e2 msgid "Subsampling method is **FZ_SUBSAMPLE_AVERAGE** (see below)." -msgstr "" +msgstr "서브샘플링 방법은 **FZ_SUBSAMPLE_AVERAGE** 입니다(아래 참조)." #: ../../document.rst:604 79b3413d2429401d99ae3a43030056f6 msgid "" "target DPI value for the resampled images. Ignored if `dpi_threshold` is " "`None`, otherwise must be less than `dpi_threshold` and positive." -msgstr "" +msgstr "리샘플링된 이미지의 대상 DPI 값. `dpi_threshold` 가 `None` 이면 무시되고, 그렇지 않으면 `dpi_threshold` 보다 작고 양수여야 합니다." #: ../../document.rst:606 41d9689ed361448fbcb5a13023c76806 msgid "" "If None (the default) no resampling takes place. Otherwise images with a " "DPI value larger than this will be resampled to `dpi_target` (which must " "be less than `dpi_threshold`)." -msgstr "" +msgstr "None(기본값)이면 리샘플링이 수행되지 않습니다. 그렇지 않으면 이보다 큰 DPI 값을 가진 이미지가 `dpi_target` (이것은 `dpi_threshold` 보다 작아야 함)로 리샘플링됩니다." #: ../../document.rst:608 29da9ea4d0af4d69a22f61ffa363e949 msgid "" "desired target JPEG quality, a value between 0 and 100. 0 means no " "quality change, 100 means best quality." -msgstr "" +msgstr "원하는 대상 JPEG 품질, 0과 100 사이의 값. 0은 품질 변경 없음, 100은 최고 품질을 의미합니다." #: ../../document.rst:610 1aa75d1dd8f3426d8dcb2ebb3b2e4c90 msgid "include lossy image types (e.g. JPEG)." -msgstr "" +msgstr "손실 이미지 타입 포함(예: JPEG)." #: ../../document.rst:612 9697131e0d414bb4933c23e702734b4d msgid "include lossless image types (e.g. PNG)." -msgstr "" +msgstr "무손실 이미지 타입 포함(예: PNG)." #: ../../document.rst:614 0c8117c9cafd459880a5aec4cc9d974d msgid "include black-and-white images (e.g. FAX)." -msgstr "" +msgstr "흑백 이미지 포함(예: FAX)." #: ../../document.rst:616 21bb122962844205b76401ccbbb01a30 msgid "include colored images." -msgstr "" +msgstr "컬러 이미지 포함." #: ../../document.rst:618 2eb49df120b7429296a9281ccd362ad8 msgid "include grayscale images." -msgstr "" +msgstr "그레이스케일 이미지 포함." #: ../../document.rst:620 b54e5d5881bd40679b8c78f0b46f72ec msgid "" @@ -2216,7 +2216,7 @@ msgid "" ":meth:`Document.recolor` before all image processing. Please note that " "this will also change text and vector graphics to grayscale -- not just " "the images." -msgstr "" +msgstr "True이면 모든 이미지 처리 전에 :meth:`Document.recolor` 를 실행하여 PDF가 그레이스케일로 변환됩니다. 이것은 이미지뿐만 아니라 텍스트와 벡터 그래픽도 그레이스케일로 변경합니다." #: ../../document.rst:622 3afbe56d4eae4bf291351d87ea284a07 msgid "" @@ -2226,7 +2226,7 @@ msgid "" "Then attributes of this object can be set to achieve fine-grained " "control. Following are the adjustable attributes of the ``options`` " "object and their default (do nothing) values." -msgstr "" +msgstr "이 매개변수는 전문 사용자를 위한 것입니다. ``set_to_gray`` 를 제외하고 다른 모든 매개변수는 무시됩니다. 다음 방법으로 준비된 객체여야 합니다: ``options = pymupdf.mupdf.PdfImageRewriterOptions()``. 그런 다음 이 객체의 속성을 설정하여 세밀한 제어를 달성할 수 있습니다. 다음은 ``options`` 객체의 조정 가능한 속성과 기본값(아무 작업도 하지 않음)입니다." #: ../../document.rst:652 226b700f0609456da42369d0a574ec09 msgid "" @@ -2236,13 +2236,13 @@ msgid "" "(5)**. Value FZ_RECOMPRESS_NEVER will skip this image type altogether and" " FZ_RECOMPRESS_SAME will not change the type. The other values will " "execute type conversions (as far as technically possible)." -msgstr "" +msgstr "``*_recompress_method`` 속성은 **FZ_RECOMPRESS_NEVER (0), FZ_RECOMPRESS_SAME (1), FZ_RECOMPRESS_LOSSLESS (2), FZ_RECOMPRESS_JPEG (3), FZ_RECOMPRESS_J2K (4), FZ_RECOMPRESS_FAX (5)** 중 하나일 수 있습니다. 값 FZ_RECOMPRESS_NEVER는 이 이미지 타입을 완전히 건너뛰고 FZ_RECOMPRESS_SAME는 타입을 변경하지 않습니다. 다른 값은 타입 변환을 실행합니다(기술적으로 가능한 한)." #: ../../document.rst:654 28345897c04e47cb8bd7b419a399e52e msgid "" "The ``*_quality`` values are strings of integers from \"0\" to \"100\" or" " ``None``." -msgstr "" +msgstr "``*_quality`` 값은 \"0\" 부터 \"100\" 까지의 정수 문자열 또는 ``None`` 입니다." #: ../../document.rst:656 431fb82d92d144e39a7eb33de4cee3d5 msgid "" @@ -2251,7 +2251,7 @@ msgid "" "derived from its neighboring pixels during subsampling. For some " "background see `this Wikipedia article about bicubic interpolation " "`_." -msgstr "" +msgstr "``*_subsample_method`` 속성은 **FZ_SUBSAMPLE_AVERAGE (0)** 또는 **FZ_SUBSAMPLE_BICUBIC (1)** 이며, 서브샘플링 중 픽셀 값이 인접 픽셀에서 파생되는 방식을 나타냅니다. 배경 정보는 ` 이 Wikipedia 기사 about bicubic interpolation `_ 를 참조하세요." #: ../../document.rst:658 a5582d3eeef04969839b567872912234 msgid "" @@ -2259,282 +2259,92 @@ msgid "" "which have a lower DPI. Participating images will be subsampled to the " "DPI values given by the ``*_subsample_to`` values. Values of 0 mean that " "no subsampling will take place." -msgstr "" +msgstr "속성 ``*_subsample_threshold`` 는 더 낮은 DPI를 가진 이미지를 서브샘플링에서 제외합니다. 참여하는 이미지는 ``*_subsample_to`` 값으로 주어진 DPI 값으로 서브샘플링됩니다. 0 값은 서브샘플링이 수행되지 않음을 의미합니다." #: ../../document.rst:660 c5e4028872844f00bd7eb9ce4c910e75 msgid "" "The ``*_subsample_threshold`` values should be chosen notably larger than" " the ``*_subsample_to`` values to ensure that there are enough size " "savings. After all, every subsampling inevitably incurs quality losses." -msgstr "" +msgstr "``*_subsample_threshold`` 값은 충분한 크기 절감을 보장하기 위해 ``*_subsample_to`` 값보다 상당히 크게 선택해야 합니다. 결국 모든 서브샘플링은 불가피하게 품질 손실을 초래합니다." #: ../../document.rst:662 4021cd52c00c475ca2229590caeff58a msgid "An example for a good choice is ``threshold=100`` and ``to=72``." -msgstr "" +msgstr "좋은 선택의 예는 ``threshold=100`` 및 ``to=72`` 입니다." #: ../../document.rst:667 62fadb98a46e4b6ab9224f097849e731 msgid "" "PDF only: Change the color component counts for all object types text, " "images and vector graphics for all pages." -msgstr "" - -#: ../../document.rst:669 fac366c35c4f430489dc4d0814e4349d -msgid "" -"desired color space indicated by the number of color components: 1 = " -"DeviceGRAY, 3 = DeviceRGB, 4 = DeviceCMYK." -msgstr "" - -#: ../../document.rst:671 baaefdcc658142cfb2d0d72964381651 -msgid "" -"The typical use case is 1 (DeviceGRAY) which converts the PDF to " -"grayscale." -msgstr "" - -#: ../../document.rst:676 b3feb6280dce4bb68a6d09f67ad179e5 -msgid "New in v1.16.10" -msgstr "" - -#: ../../document.rst:678 e20ca78781fd4ff7a8ed580599a1ec63 -msgid "" -"PDF only: Provide a new copy of a page after finishing and updating all " -"pending changes." -msgstr "" - -#: ../../document.rst:680 d63490fa56354fc49d5d536ea547ebe1 -msgid "page object." -msgstr "" - -#: ../../document.rst:685 f33b5c1ccafd4b1c975285d4daf5b37d -msgid "" -"a new copy of the same page. All pending updates (e.g. to annotations or " -"widgets) will be finalized and a fresh copy of the page will be loaded. " -".. note:: In a typical use case, a page :ref:`Pixmap` should be taken " -"after annotations / widgets have been added or changed. To force all " -"those changes being reflected in the page structure, this method re-" -"instates a fresh copy while keeping the object hierarchy \"document -> " -"page -> annotations/widgets\" intact." -msgstr "" - -#: ../../document.rst:685 5e83a01c5a4f43609931c09d2cd5bf4e -msgid "" -"a new copy of the same page. All pending updates (e.g. to annotations or " -"widgets) will be finalized and a fresh copy of the page will be loaded." -msgstr "" +msgstr "PDF 전용: 모든 페이지의 모든 객체 타입 텍스트, 이미지 및 벡터 그래픽의 색상 구성 요소 수를 변경합니다." -#: ../../document.rst:687 aa9f1f86225a4ad39148e534ef4be453 +#: ../../document.rst:755 a7bd93c5ab5640fd8a828ca438a31865 msgid "" -"In a typical use case, a page :ref:`Pixmap` should be taken after " -"annotations / widgets have been added or changed. To force all those " -"changes being reflected in the page structure, this method re-instates a " -"fresh copy while keeping the object hierarchy \"document -> page -> " -"annotations/widgets\" intact." -msgstr "" +"a generator iterator over the document's pages. Some examples: * " +"\"doc.pages()\" emits all pages. * \"doc.pages(4, 9, 2)\" emits pages 4, " +"6, 8. * \"doc.pages(0, None, 2)\" emits all pages with even numbers. * " +"\"doc.pages(-2)\" emits the last two pages. * \"doc.pages(-1, -1)\" emits" +" all pages in reversed order. * \"doc.pages(-1, -10)\" always emits 10 " +"pages in reversed order, starting with the last page -- **repeatedly** if" +" the document has less than 10 pages. So for a 4-page document the " +"following page numbers are emitted: 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, " +"3." +msgstr "마지막 페이지부터 시작하여 역순으로 페이지 -- 문서가 10페이지 미만이면 **반복적으로**. 따라서 4페이지 문서의 경우 다음 페이지 번호가 생성됩니다: 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3." -#: ../../document.rst:692 e255e70994eb4eea840af29512883ee8 -msgid "PDF only: Convert destination names into a Python dict." -msgstr "" +#: ../../document.rst:755 cc92b04eb37d4654ac39f335cb55af6e +msgid "a generator iterator over the document's pages. Some examples:" +msgstr "문서의 페이지에 대한 생성기 반복자. 몇 가지 예:" -#: ../../document.rst:694 e3317825d1b84d09a0976e4563a7d1e8 -msgid "" -"A dictionary with the following layout: * *key*: (str) the name. * " -"*value*: (dict) with the following layout: * \"page\": target page " -"number (0-based). If no page number found -1. * \"to\": (x, y) target" -" point on page. Currently in PDF coordinates, i.e. point (0,0) is " -"the bottom-left of the page. * \"zoom\": (float) the zoom factor." -" * \"dest\": (str) only present if the target location on the page " -"has not been provided as \"/XYZ\" or if no page number was found. " -"Examples:: { '__bookmark_1': {'page': 0, 'to': (0.0, 541.0)," -" 'zoom': 0.0}, '__bookmark_2': {'page': 0, 'to': (0.0, 481.45), " -"'zoom': 0.0}, } or:: { " -"'21154a7c20684ceb91f9c9adc3b677c40': {'page': -1, 'dest': '/XYZ 15.75 " -"1486 0'}, ... }" -msgstr "" +#: ../../document.rst:757 2aee4283e6af403382105fb2889ef17e +msgid "\"doc.pages()\" emits all pages." +msgstr "\"doc.pages()\" 는 모든 페이지를 생성합니다." -#: ../../document.rst:695 d974d89343f748ec8a5cc27429f3e94d -msgid "A dictionary with the following layout:" -msgstr "" +#: ../../document.rst:758 56483ad2fcb04e8ab0aec6fd11cb6e1f +msgid "\"doc.pages(4, 9, 2)\" emits pages 4, 6, 8." +msgstr "\"doc.pages(4, 9, 2)\" 는 페이지 4, 6, 8을 생성합니다." -#: ../../document.rst:697 f4ac483d1fc042b18a323b154eb5a4f2 -msgid "*key*: (str) the name." -msgstr "" +#: ../../document.rst:759 5cd6a791eadb403db8d65526627bdb2d +msgid "\"doc.pages(0, None, 2)\" emits all pages with even numbers." +msgstr "\"doc.pages(0, None, 2)\" 는 짝수 번호의 모든 페이지를 생성합니다." -#: ../../document.rst:703 333b90d0cade45ef8d3c12111bba5ae8 -msgid "*value*: (dict) with the following layout:" -msgstr "" +#: ../../document.rst:760 20d5d59f55454cbf886fcc21995dad97 +msgid "\"doc.pages(-2)\" emits the last two pages." +msgstr "\"doc.pages(-2)\" 는 마지막 두 페이지를 생성합니다." -#: ../../document.rst:699 1299456f72ed4127a7574602814bfe6f -msgid "\"page\": target page number (0-based). If no page number found -1." -msgstr "" +#: ../../document.rst:761 591d03692b724c96b7a6d853e1e12b95 +msgid "\"doc.pages(-1, -1)\" emits all pages in reversed order." +msgstr "\"doc.pages(-1, -1)\" 는 모든 페이지를 역순으로 생성합니다." -#: ../../document.rst:700 7e4c618113094b25b9edc3ad8396e7bf +#: ../../document.rst:762 630fb05a54d244e7b9f565ba6c0792b3 msgid "" -"\"to\": (x, y) target point on page. Currently in PDF coordinates, i.e. " -"point (0,0) is the bottom-left of the page." -msgstr "" - -#: ../../document.rst:702 cfa4c5d417154aa5a6c373ee783adb27 -msgid "\"zoom\": (float) the zoom factor." -msgstr "" +"\"doc.pages(-1, -10)\" always emits 10 pages in reversed order, starting " +"with the last page -- **repeatedly** if the document has less than 10 " +"pages. So for a 4-page document the following page numbers are emitted: " +"3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3." +msgstr "\"doc.pages(-1, -10)\" 는 항상 마지막 페이지부터 시작하여 역순으로 10페이지를 생성합니다. 문서가 10페이지 미만이면 **반복적으로** 생성합니다. 따라서 4페이지 문서의 경우 다음 페이지 번호가 생성됩니다: 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3." -#: ../../document.rst:703 37cf95d00aae40aaba647f6bc7c9e566 +#: ../../document.rst:771 0fa355e484264f9abb37a38413d80d59 msgid "" -"\"dest\": (str) only present if the target location on the page has not " -"been provided as \"/XYZ\" or if no page number was found." -msgstr "" +"Create a PDF version of the current document and write it to memory. " +"**All document types** are supported. The parameters have the same " +"meaning as in :meth:`insert_pdf`. In essence, you can restrict the " +"conversion to a page subset, specify page rotation, and revert page " +"sequence." +msgstr "현재 문서의 PDF 버전을 생성하고 메모리에 씁니다. **모든 문서 타입** 이 지원됩니다. 매개변수는 :meth:`insert_pdf` 와 동일한 의미를 가집니다. 본질적으로 페이지 하위 집합으로 변환을 제한하고, 페이지 회전을 지정하고, 페이지 순서를 되돌릴 수 있습니다." -#: ../../document.rst:705 4171adc015d64c7c9d92bebe575448f8 -msgid "Examples::" -msgstr "" +#: ../../document.rst:773 f660af86d92b44218c359971345422f9 +msgid "first page to copy (0-based). Default is first page." +msgstr "복사할 첫 번째 페이지(0 기반). 기본값은 첫 번째 페이지입니다." -#: ../../document.rst:712 d7fb5dcb203748afb273aac0c2a9a100 -msgid "or::" -msgstr "" +#: ../../document.rst:775 3d05e54e25ec4883ba7e2f21584ced49 +msgid "last page to copy (0-based). Default is last page." +msgstr "복사할 마지막 페이지(0 기반). 기본값은 마지막 페이지입니다." -#: ../../document.rst:719 a874c7048ebb4429a74d36e9cd9d1ca5 +#: ../../document.rst:777 e908fe6a3ae046c19144a9205411192b msgid "" -"All names found in the catalog under keys \"/Dests\" and \"/Names/Dests\"" -" are included." -msgstr "" - -#: ../../document.rst:722 51b104ce68654b67ab928f76dddb73f1 -msgid "New in v1.23.6" -msgstr "" - -#: ../../document.rst:727 ../../document.rst:737 ../../document.rst:1166 -#: ../../document.rst:1176 ../../document.rst:1188 -#: 00ae9907f6a54b55baab674cf76aed28 2415dd9f180a4b7382a3d9297719fed0 -#: 27ca4d25a0534901a9ec78d94dced53f a3a52436d0f141078ff75591bac0f5bf -#: d5f1f55ab01a49bca5f15494ce1880e5 -msgid "New in v1.17.7" -msgstr "" - -#: ../../document.rst:729 abe5b967ce1c41568bb16dd577d6a71e -msgid "" -"PDF only: Return the unrotated page rectangle -- **without loading the " -"page** (via :meth:`Document.load_page`). This is meant for internal " -"purpose requiring best possible performance." -msgstr "" - -#: ../../document.rst:731 ../../document.rst:741 -#: 87245fe71e5749bbb5fdd8323971d38a 9aa5f7f4352646a6874011b4413b9eb2 -msgid "0-based page number." -msgstr "" - -#: ../../document.rst:733 8ae5e02a100d4c57be33964251202070 -msgid ":ref:`Rect` of the page like :meth:`Page.rect`, but ignoring any rotation." -msgstr "" - -#: ../../document.rst:739 afe91f4bac4e4f20b4d11da8c7b6a121 -msgid "" -"PDF only: Return the :data:`xref` of the page -- **without loading the " -"page** (via :meth:`Document.load_page`). This is meant for internal " -"purpose requiring best possible performance." -msgstr "" - -#: ../../document.rst:743 e13e841034c54a368597cae910b0bd41 -msgid ":data:`xref` of the page like :attr:`Page.xref`." -msgstr "" - -#: ../../document.rst:747 9212f6c6b841428ea6bd7592d5586fb1 -msgid "New in v1.16.4" -msgstr "" - -#: ../../document.rst:749 17449b4eba2f4041965b2d8d7fb19b83 -msgid "" -"A generator for a range of pages. Parameters have the same meaning as in " -"the built-in function *range()*. Intended for expressions of the form " -"*\"for page in doc.pages(start, stop, step): ...\"*." -msgstr "" - -#: ../../document.rst:751 775c0864ae46420c9c3f515b377a7e2e -msgid "" -"start iteration with this page number. Default is zero, allowed values " -"are `-∞ < start < page_count`. While this is negative, :attr:`page_count`" -" is added **before** starting the iteration." -msgstr "" - -#: ../../document.rst:752 99edc914fc1f455b97fabaf836e1ebbf -msgid "" -"stop iteration at this page number. Default is :attr:`page_count`, " -"possible are `-∞ < stop <= page_count`. Larger values are **silently " -"replaced** by the default. Negative values will cyclically emit the pages" -" in reversed order. As with the built-in *range()*, this is the first " -"page **not** returned." -msgstr "" - -#: ../../document.rst:753 94a16241b73e479a8fb39b6e7ecdf23b -msgid "" -"stepping value. Defaults are 1 if start < stop and -1 if start > stop. " -"Zero is not allowed." -msgstr "" - -#: ../../document.rst:755 a7bd93c5ab5640fd8a828ca438a31865 -msgid "" -"a generator iterator over the document's pages. Some examples: * " -"\"doc.pages()\" emits all pages. * \"doc.pages(4, 9, 2)\" emits pages 4, " -"6, 8. * \"doc.pages(0, None, 2)\" emits all pages with even numbers. * " -"\"doc.pages(-2)\" emits the last two pages. * \"doc.pages(-1, -1)\" emits" -" all pages in reversed order. * \"doc.pages(-1, -10)\" always emits 10 " -"pages in reversed order, starting with the last page -- **repeatedly** if" -" the document has less than 10 pages. So for a 4-page document the " -"following page numbers are emitted: 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, " -"3." -msgstr "" - -#: ../../document.rst:755 cc92b04eb37d4654ac39f335cb55af6e -msgid "a generator iterator over the document's pages. Some examples:" -msgstr "" - -#: ../../document.rst:757 2aee4283e6af403382105fb2889ef17e -msgid "\"doc.pages()\" emits all pages." -msgstr "" - -#: ../../document.rst:758 56483ad2fcb04e8ab0aec6fd11cb6e1f -msgid "\"doc.pages(4, 9, 2)\" emits pages 4, 6, 8." -msgstr "" - -#: ../../document.rst:759 5cd6a791eadb403db8d65526627bdb2d -msgid "\"doc.pages(0, None, 2)\" emits all pages with even numbers." -msgstr "" - -#: ../../document.rst:760 20d5d59f55454cbf886fcc21995dad97 -msgid "\"doc.pages(-2)\" emits the last two pages." -msgstr "" - -#: ../../document.rst:761 591d03692b724c96b7a6d853e1e12b95 -msgid "\"doc.pages(-1, -1)\" emits all pages in reversed order." -msgstr "" - -#: ../../document.rst:762 630fb05a54d244e7b9f565ba6c0792b3 -msgid "" -"\"doc.pages(-1, -10)\" always emits 10 pages in reversed order, starting " -"with the last page -- **repeatedly** if the document has less than 10 " -"pages. So for a 4-page document the following page numbers are emitted: " -"3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3." -msgstr "" - -#: ../../document.rst:771 0fa355e484264f9abb37a38413d80d59 -msgid "" -"Create a PDF version of the current document and write it to memory. " -"**All document types** are supported. The parameters have the same " -"meaning as in :meth:`insert_pdf`. In essence, you can restrict the " -"conversion to a page subset, specify page rotation, and revert page " -"sequence." -msgstr "" - -#: ../../document.rst:773 f660af86d92b44218c359971345422f9 -msgid "first page to copy (0-based). Default is first page." -msgstr "" - -#: ../../document.rst:775 3d05e54e25ec4883ba7e2f21584ced49 -msgid "last page to copy (0-based). Default is last page." -msgstr "" - -#: ../../document.rst:777 e908fe6a3ae046c19144a9205411192b -msgid "" -"rotation angle. Default is 0 (no rotation). Should be *n * 90* with an " -"integer n (not checked)." -msgstr "" +"rotation angle. Default is 0 (no rotation). Should be *n * 90* with an " +"integer n (not checked)." +msgstr "회전 각도. 기본값은 0(회전 없음). 정수 n(확인되지 않음)을 사용한 *n * 90* 이어야 합니다." #: ../../document.rst:780 85de97fa9e5449bc9293fe03eef6116f msgid "" @@ -2562,13 +2372,13 @@ msgid "" "internally using `tobytes(garbage=4, deflate=True)`. See :meth:`tobytes`." " You can output it directly to disk or open it as a PDF. Here are some " "examples::" -msgstr "" +msgstr "PDF 파일 이미지를 포함하는 Python *bytes* 객체. 내부적으로 `tobytes(garbage=4, deflate=True)` 를 사용하여 생성됩니다. :meth:`tobytes` 를 참조하세요. 디스크에 직접 출력하거나 PDF로 열 수 있습니다. 다음은 몇 가지 예제입니다::" #: ../../document.rst:806 d8485f88d433407bb0cd60e194f20727 msgid "" "The method uses the same logic as the *mutool convert* CLI. This works " "very well in most cases -- however, beware of the following limitations." -msgstr "" +msgstr "이 메서드는 *mutool convert* CLI와 동일한 로직을 사용합니다. 대부분의 경우 매우 잘 작동하지만, 다음 제한 사항에 주의하세요." #: ../../document.rst:808 357cacd34cd642f39b1da1f75056dc90 msgid "" @@ -2576,34 +2386,34 @@ msgid "" "ignored. If you need that (like for a watermark), use " ":meth:`Page.insert_image` instead. Otherwise, this method is recommended " "for its much better performance." -msgstr "" +msgstr "이미지 파일: 완벽하며 문제가 감지되지 않았습니다. 그러나 이미지 투명도는 무시됩니다. 그것이 필요한 경우(워터마크 등) 대신 :meth:`Page.insert_image` 를 사용하세요. 그렇지 않으면 훨씬 더 나은 성능을 위해 이 메서드를 권장합니다." #: ../../document.rst:809 06b36e92e8d645b7bc68371b93dbc572 msgid "" "XPS: appearance very good. Links work fine, outlines (bookmarks) are " "lost, but can easily be recovered [#f2]_." -msgstr "" +msgstr "XPS: 외관이 매우 좋습니다. 링크는 잘 작동하며, 개요(북마크)는 손실되지만 쉽게 복구할 수 있습니다 [#f2]_." #: ../../document.rst:810 8d7b046661b24660b15edfc764b15786 msgid "EPUB, CBZ, FB2: similar to XPS." -msgstr "" +msgstr "EPUB, CBZ, FB2: XPS와 유사합니다." #: ../../document.rst:811 78e1835be7ce41eaa08865503b86c38c msgid "" "SVG: medium. Roughly comparable to `svglib " "`_." -msgstr "" +msgstr "SVG: 중간. `svglib `_ 와 대략 비슷합니다." #: ../../document.rst:815 55fb4e92b6f84d06b5b5c8aec273b3e2 msgid "Creates a table of contents (TOC) out of the document's outline chain." -msgstr "" +msgstr "문서의 개요 체인에서 목차(TOC)를 생성합니다." #: ../../document.rst:817 3c16d727444c4c31980289c39d4e07b3 msgid "" "Indicates whether a simple or a detailed TOC is required. If ``False``, " "each item of the list also contains a dictionary with :ref:`linkDest` " "details for each outline entry." -msgstr "" +msgstr "간단한 TOC 또는 상세한 TOC가 필요한지 나타냅니다. ``False`` 이면 목록의 각 항목에는 각 개요 항목에 대한 :ref:`linkDest` 세부 정보를 가진 딕셔너리도 포함됩니다." #: ../../document.rst:821 e45ac6b1b63f4d28b26628339a2251b7 msgid "" @@ -2625,93 +2435,104 @@ msgid "" "collapse: true if sub-items are folded, or omitted. PDF only. - " "nameddest: target name if kind=4. PDF only. (New in 1.23.7.)" msgstr "" +"리스트의 리스트. 각 항목은 *[lvl, title, page, dest]* 형식을 가집니다. 항목의 의미는 다음과 같습니다: * *lvl* -- 계층 수준 " +"(양수 *int*). 첫 번째 항목은 항상 1입니다. 연속된 항목은 **같거나**, 1씩 **증가**하거나, 임의의 수만큼 **감소**합니다. * " +"*title* -- 제목(*str*) * *page* -- 1 기반 소스 페이지 번호(*int*). " +"대상이 없거나 문서 외부이면 `-1`. * *dest* -- (*dict*) *simple=False* 인 경우에만 포함됩니다. TOC 항목의 세부 정보는 다음과 같습니다: " +"- kind: 대상 종류, :ref:`linkDest Kinds` 참조. - file: kind가 :data:`LINK_GOTOR` 또는 :data:`LINK_LAUNCH` 인 경우 파일명. - page: 대상 " +"페이지, 0 기반, :data:`LINK_GOTOR` 또는 :data:`LINK_GOTO` 전용. - to: " +"대상 페이지의 위치(:ref:`Point`). - zoom: (float) 대상 페이지의 확대/축소 인수. - xref: 항목의 :data:`xref` (PDF가 없으면 0). - color:" +" PDF RGB 형식 `(red, green, blue)` 의 항목 색상, 또는 생략됨(PDF가 없으면 항상 생략됨). - bold: 굵은 항목 텍스트이거나 생략된 경우 true. PDF " +"전용. - italic: 기울임꼴 항목 텍스트이거나 생략된 경우 true. PDF 전용. - " +"collapse: 하위 항목이 접혀 있거나 생략된 경우 true. PDF 전용. - " +"nameddest: kind=4인 경우 대상 이름. PDF 전용. (1.23.7에서 새로 추가됨.)" #: ../../document.rst:821 1f4b3e4744174653ae693109208dc49e msgid "" "a list of lists. Each entry has the form *[lvl, title, page, dest]*. Its " "entries have the following meanings:" -msgstr "" +msgstr "목록의 목록. 각 항목은 *[lvl, title, page, dest]* 형식을 가집니다. 항목의 의미는 다음과 같습니다:" #: ../../document.rst:823 e192fb552d1c4616a8fb7a8144812e58 msgid "" "*lvl* -- hierarchy level (positive *int*). The first entry is always 1. " "Entries in a row are either **equal**, **increase** by 1, or **decrease**" " by any number." -msgstr "" +msgstr "*lvl* -- 계층 수준(양수 *int*). 첫 번째 항목은 항상 1입니다. 연속된 항목은 **같거나**, 1씩 **증가** 하거나, 임의의 수만큼 **감소** 합니다." #: ../../document.rst:824 29ecc17d35fa4115831c070fb3dc3da6 msgid "*title* -- title (*str*)" -msgstr "" +msgstr "*title* -- 제목 (*str*)" #: ../../document.rst:825 b5a9d59ce8954429a123261cd1e5e2ce msgid "" "*page* -- 1-based source page number (*int*). `-1` if no destination or " "outside document." -msgstr "" +msgstr "*page* -- 1 기반 소스 페이지 번호 (*int*). 대상이 없거나 문서 외부인 경우 `-1`." #: ../../document.rst:826 1ed7122c8921425fa82f34ab81b0e14a msgid "" "*dest* -- (*dict*) included only if *simple=False*. Contains details of " "the TOC item as follows:" -msgstr "" +msgstr "*dest* -- (*dict*) *simple=False* 인 경우에만 포함됩니다. TOC 항목의 세부 정보를 다음과 같이 포함합니다:" #: ../../document.rst:828 18fd10a0fe68426b8268f99befab8ea5 msgid "kind: destination kind, see :ref:`linkDest Kinds`." -msgstr "" +msgstr "kind: 대상 종류, :ref:`linkDest Kinds` 를 참조하세요." #: ../../document.rst:829 aeeca928a4f149d4b22d0f844cb317ce msgid "file: filename if kind is :data:`LINK_GOTOR` or :data:`LINK_LAUNCH`." -msgstr "" +msgstr "file: kind가 :data:`LINK_GOTOR` 또는 :data:`LINK_LAUNCH` 인 경우 파일 이름." #: ../../document.rst:830 21331bc906fb47aa9693dfe714690418 msgid "page: target page, 0-based, :data:`LINK_GOTOR` or :data:`LINK_GOTO` only." -msgstr "" +msgstr "page: 대상 페이지, 0 기반, :data:`LINK_GOTOR` 또는 :data:`LINK_GOTO` 전용." #: ../../document.rst:831 129a6492e95f4d6b9235c8566486f1cd msgid "to: position on target page (:ref:`Point`)." -msgstr "" +msgstr "to: 대상 페이지의 위치 (:ref:`Point`)." #: ../../document.rst:832 1760adf4a8fe4f5d916c06a0718c0b3c msgid "zoom: (float) zoom factor on target page." -msgstr "" +msgstr "zoom: (float) 대상 페이지의 확대/축소 배율." #: ../../document.rst:833 b72db90d2fd5463883c5566c8d708676 msgid "xref: :data:`xref` of the item (0 if no PDF)." -msgstr "" +msgstr "xref: 항목의 :data:`xref` (PDF가 없으면 0)." #: ../../document.rst:834 ef52959e5a364bbdbede8eba835399d0 msgid "" "color: item color in PDF RGB format `(red, green, blue)`, or omitted " "(always omitted if no PDF)." -msgstr "" +msgstr "color: PDF RGB 형식 `(red, green, blue)` 의 항목 색상, 또는 생략됨(PDF가 없으면 항상 생략됨)." #: ../../document.rst:835 c6abd3655b1041c49d660425bdda3b9d msgid "bold: true if bold item text or omitted. PDF only." -msgstr "" +msgstr "bold: 굵은 항목 텍스트이면 true 또는 생략됨. PDF 전용." #: ../../document.rst:836 790bd5ed794d4267aa960bc8d4ea5458 msgid "italic: true if italic item text, or omitted. PDF only." -msgstr "" +msgstr "italic: 기울임꼴 항목 텍스트이면 true 또는 생략됨. PDF 전용." #: ../../document.rst:837 7a972813f0bc46f2aec437108637c21c msgid "collapse: true if sub-items are folded, or omitted. PDF only." -msgstr "" +msgstr "collapse: 하위 항목이 접혀 있으면 true 또는 생략됨. PDF 전용." #: ../../document.rst:838 0a4c3b65b69e40f2bc742b0f74fa774e msgid "nameddest: target name if kind=4. PDF only. (New in 1.23.7.)" -msgstr "" +msgstr "nameddest: kind=4인 경우 대상 이름. PDF 전용. (1.23.7에서 새로 추가됨.)" #: ../../document.rst:845 a5836c5cdff0458b8bee0e893e323504 msgid "" "PDF only: Return the PDF dictionary keys of the :data:`dictionary` object" " provided by its xref number." -msgstr "" +msgstr "PDF 전용: xref 번호로 제공된 :data:`dictionary` 객체의 PDF 딕셔너리 키를 반환합니다." #: ../../document.rst:847 05b0b53203ac4aa9b0d24d401d355137 msgid "" "the :data:`xref`. *(Changed in v1.18.10)* Use `-1` to access the special " "dictionary \"PDF trailer\"." -msgstr "" +msgstr ":data:`xref`. *(v1.18.10에서 변경됨)* 특수 딕셔너리 \"PDF trailer\" 에 액세스하려면 `-1` 을 사용하세요." #: ../../document.rst:849 608982aaeb9c4e0483f619e22304399f msgid "" @@ -2727,25 +2548,25 @@ msgstr "" #: ../../document.rst:849 df215624f145490e82a53931b1a144ba msgid "a tuple of dictionary keys present in object :data:`xref`. Examples:" -msgstr "" +msgstr "객체 :data:`xref` 에 있는 딕셔너리 키의 튜플. 예:" #: ../../document.rst:866 6575211909ea416eb59abe9e9d74b18a msgid "" "PDF only: Return type and value of a PDF dictionary key of a " ":data:`dictionary` object given by its xref." -msgstr "" +msgstr "PDF 전용: xref로 제공된 :data:`dictionary` 객체의 PDF 딕셔너리 키의 타입과 값을 반환합니다." #: ../../document.rst:868 e72020a16f2c46d9b9c110390a8ef3b8 msgid "" "the :data:`xref`. *Changed in v1.18.10:* Use `-1` to access the special " "dictionary \"PDF trailer\"." -msgstr "" +msgstr ":data:`xref`. *v1.18.10에서 변경됨:* 특수 딕셔너리 \"PDF trailer\" 에 액세스하려면 `-1` 을 사용하세요." #: ../../document.rst:870 15710a8605c242738c9d34bc9295c2a8 msgid "" "the desired PDF key. Must **exactly** match (case-sensitive) one of the " "keys contained in :meth:`Document.xref_get_keys`." -msgstr "" +msgstr "원하는 PDF 키. :meth:`Document.xref_get_keys` 에 포함된 키 중 하나와 **정확히** 일치해야 합니다(대소문자 구분)." #: ../../document.rst:874 1d8b5b14cc604c8097524b1e8ce3bd1a msgid "" @@ -2756,35 +2577,35 @@ msgid "" "following example -- and (almost always) a faithful reflection of what is" " stored in the PDF. In most cases, the format of the value string also " "gives a clue about the key type:" -msgstr "" +msgstr "문자열의 튜플 (type, value), 여기서 type은 \"xref\", \"array\", \"dict\", \"int\", \"float\", \"null\", \"bool\", \"name\", \"string\" 또는 \"unknown\" (발생하지 않아야 함) 중 하나입니다. \"type\" 과 무관하게 키의 값은 **항상** 문자열로 포맷됩니다. 다음 예를 참조하세요. 그리고 (거의 항상) PDF에 저장된 내용의 충실한 반영입니다. 대부분의 경우 값 문자열의 형식은 키 타입에 대한 힌트도 제공합니다:" #: ../../document.rst:876 f3a754b526724add862cf709d3e6a80f msgid "A \"name\" always starts with a \"/\" slash." -msgstr "" +msgstr "\"name\" 은 항상 \"/\" 슬래시로 시작합니다." #: ../../document.rst:877 156bcb3e4be0431a950ef8733fb4726f msgid "An \"xref\" always ends with \" 0 R\"." -msgstr "" +msgstr "\"xref\" 는 항상 \" 0 R\" 로 끝납니다." #: ../../document.rst:878 028b075a7b6743b4992177c05b64dd3c msgid "An \"array\" is always enclosed in \"[...]\" brackets." -msgstr "" +msgstr "\"array\" 는 항상 \"[...]\" 대괄호로 둘러싸여 있습니다." #: ../../document.rst:879 498042f7ba7941f489e490897176da71 msgid "A \"dict\" is always enclosed in \"<<...>>\" brackets." -msgstr "" +msgstr "\"dict\" 는 항상 \"<<...>>\" 괄호로 둘러싸여 있습니다." #: ../../document.rst:880 9a602b09b09445b8ab3a85710d4daff4 msgid "" "A \"bool\", resp. \"null\" always equal either \"true\", \"false\", resp." " \"null\"." -msgstr "" +msgstr "\"bool\" 또는 \"null\" 은 항상 \"true\", \"false\" 또는 \"null\" 과 같습니다." #: ../../document.rst:881 3599f60a08a442d2a3fe36a99d5cbfbe msgid "" "\"float\" and \"int\" are represented by their string format -- and are " "thus not always distinguishable." -msgstr "" +msgstr "\"float\" 와 \"int\" 는 문자열 형식으로 표현되므로 항상 구별할 수 있는 것은 아닙니다." #: ../../document.rst:882 178b674795594e1d8c179336c614b1c2 msgid "" @@ -2792,21 +2613,21 @@ msgid "" " stored in the PDF. For example, the PDF key \"Author\" may have a value " "of \"\" in the " "file, but the method will return `('string', 'Jorj X. McKie')`." -msgstr "" +msgstr "\"string\" 은 UTF-8로 변환되므로 PDF에 저장된 내용과 다를 수 있습니다. 예를 들어, PDF 키 \"Author\" 는 파일에서 \"\" 값을 가질 수 있지만, 이 메서드는 `('string', 'Jorj X. McKie')` 를 반환합니다." #: ../../document.rst:911 5ec6251f88fd4c9a8f9aa0c0de4ef793 msgid "New in v1.18.7, changed in v 1.18.13" -msgstr "" +msgstr "v1.18.7에서 새로 추가됨, v 1.18.13에서 변경됨" #: ../../document.rst:912 277a8925b1254249865a344d4e15ce92 msgid "Changed in v1.19.4: remove a key \"physically\" if set to \"null\"." -msgstr "" +msgstr "v1.19.4에서 변경됨: \"null\" 로 설정된 경우 키를 \"물리적으로\" 제거합니다." #: ../../document.rst:914 3800031db9924e0b93e21a204f5abfd2 msgid "" "PDF only: Set (add, update, delete) the value of a PDF key for the " ":data:`dictionary` object given by its xref." -msgstr "" +msgstr "PDF 전용: xref로 제공된 :data:`dictionary` 객체에 대한 PDF 키의 값을 설정(추가, 업데이트, 삭제)합니다." #: ../../document.rst:916 87400e3bfd904856bd104cdc238c25ef msgid "" @@ -2814,13 +2635,13 @@ msgid "" "is a high risk to render (parts of) the PDF unusable. Please do consult " ":ref:`AdobeManual` about object specification formats (page 18) and the " "structure of special dictionary types like page objects." -msgstr "" +msgstr "이것은 전문가용 함수입니다: 무엇을 하고 있는지 모르는 경우 PDF의 (일부)를 사용할 수 없게 만들 위험이 높습니다. 객체 사양 형식(18페이지) 및 페이지 객체와 같은 특수 딕셔너리 타입의 구조에 대해 :ref:`AdobeManual` 을 참조하세요." #: ../../document.rst:918 249156cd0aa4484c824c8bd971c5f55d msgid "" "the :data:`xref`. *Changed in v1.18.13:* To update the PDF trailer, " "specify -1." -msgstr "" +msgstr ":data:`xref`. *v1.18.13에서 변경됨:* PDF 트레일러를 업데이트하려면 -1을 지정하세요." #: ../../document.rst:919 defb25fd803549ecbd76352234501833 msgid "" @@ -2829,7 +2650,7 @@ msgid "" "overwritten) -- or new. It is possible to use PDF path notation like " "`\"Resources/ExtGState\"` -- which sets the value for key " "`\"/ExtGState\"` as a sub-object of `\"/Resources\"`." -msgstr "" +msgstr "원하는 PDF 키(앞의 \"/\" 없음). 비어 있지 않아야 합니다. 객체에 이미 있는(덮어쓰기됨) 유효한 PDF 키 또는 새 키. `\"Resources/ExtGState\"` 와 같은 PDF 경로 표기법을 사용할 수 있습니다. 이것은 `\"/Resources\"` 의 하위 객체로 `\"/ExtGState\"` 키의 값을 설정합니다." #: ../../document.rst:920 90eda3333fa54a88ba8598e27bdc720a msgid "" @@ -2838,14 +2659,14 @@ msgid "" "is some syntax checking, but **no type checking** and no checking if it " "makes sense PDF-wise, i.e. **no semantics checking**. Upper / lower case " "is important!" -msgstr "" +msgstr "키의 값. 비어 있지 않은 문자열이어야 하며, 원하는 PDF 객체 타입에 따라 다음 규칙을 준수해야 합니다. 일부 구문 검사가 있지만 **타입 검사는 없으며** PDF 관점에서 의미가 있는지 확인하지 않습니다. 즉, **의미론 검사는 없습니다**. 대소문자가 중요합니다!" #: ../../document.rst:922 a7fd503efdb34cf08f1886ee7162fb2f msgid "" "*:data:`xref`* -- must be provided as `\"nnn 0 R\"` with a valid " ":data:`xref` number nnn of the PDF. The suffix \"`0 R`\" is required to " "be recognizable as an xref by PDF applications." -msgstr "" +msgstr "*:data:`xref`* -- PDF의 유효한 :data:`xref` 번호 nnn을 사용하여 `\"nnn 0 R\"` 로 제공해야 합니다. PDF 애플리케이션에서 xref로 인식할 수 있도록 접미사 \"`0 R`\" 이 필요합니다." #: ../../document.rst:923 80568ddddb28424aafbeb4bfb8629262 msgid "" @@ -2855,24 +2676,24 @@ msgid "" " removing the key. Array items may be any PDF objects, like dictionaries," " xrefs, other arrays, etc. Like in Python, array items may be of " "different types." -msgstr "" +msgstr "**array** -- `\"[a b c d e f]\"` 와 같은 문자열. 대괄호가 필요합니다. 배열 항목은 최소한 하나의 공백으로 구분되어야 합니다(Python처럼 쉼표가 아님). 빈 배열 `\"[]\"` 가 가능하며 키 제거와 *동등* 합니다. 배열 항목은 딕셔너리, xref, 다른 배열 등과 같은 모든 PDF 객체일 수 있습니다. Python처럼 배열 항목은 다른 타입일 수 있습니다." #: ../../document.rst:924 8776c9b8b4a24c0591f8ceec49ed2dca msgid "" "**dict** -- a string like `\"<< ... >>\"`. The brackets are required and " "must enclose a valid PDF dictionary definition. The empty dictionary " "`\"<<>>\"` is possible and *equivalent* to removing the key." -msgstr "" +msgstr "**dict** -- `\"<< ... >>\"` 와 같은 문자열. 괄호가 필요하며 유효한 PDF 딕셔너리 정의를 포함해야 합니다. 빈 딕셔너리 `\"<<>>\"` 가 가능하며 키 제거와 *동등* 합니다." #: ../../document.rst:925 e8b31a1d2c3a4878a02465e970ff484d msgid "**int** -- an integer formatted **as a string**." -msgstr "" +msgstr "**int** -- **문자열로** 포맷된 정수." #: ../../document.rst:926 4efb1d2d1f8248bd9c93bdbed526f048 msgid "" "**float** -- a float formatted **as a string**. Scientific notation (with" " exponents) is **not allowed by PDF**." -msgstr "" +msgstr "**float** -- **문자열로** 포맷된 부동소수점. 과학적 표기법(지수 포함)은 **PDF에서 허용되지 않습니다**." #: ../../document.rst:927 28ad2273e2b04ec1a4e28b1e8627be22 msgid "" @@ -2881,24 +2702,24 @@ msgid "" "removed, resp. removed on saves with garbage collection. *Changed in " "v1.19.4:* If the key is no path hierarchy (i.e. contains no slash \"/\")," " then it will be completely removed." -msgstr "" +msgstr "**null** -- 문자열 `\"null\"`. 이것은 Python의 `None` 과 동등한 PDF이며 키를 무시하게 만듭니다. 그러나 반드시 제거되는 것은 아니며, 가비지 수집과 함께 저장 시 제거됩니다. *v1.19.4에서 변경됨:* 키가 경로 계층이 아닌 경우(즉, 슬래시 \"/\" 가 없음), 완전히 제거됩니다." #: ../../document.rst:928 adabb0e0f0ed4a6681b1296c1502547a msgid "**bool** -- one of the strings `\"true\"` or `\"false\"`." -msgstr "" +msgstr "**bool** -- 문자열 `\"true\"` 또는 `\"false\"` 중 하나." #: ../../document.rst:929 1594ca312d7f48acbc4d82268247f9ee msgid "" "**name** -- a valid PDF name with a leading slash like this: " "`\"/PageLayout\"`. See page 16 of the :ref:`AdobeManual`." -msgstr "" +msgstr "**name** -- 앞에 슬래시가 있는 유효한 PDF 이름, 예: `\"/PageLayout\"`. :ref:`AdobeManual` 의 16페이지를 참조하세요." #: ../../document.rst:930 28a5e09473bf4296a58a3ec3460e12be msgid "" "**string** -- a valid PDF string. **All PDF strings must be enclosed by " "brackets**. Denote the empty string as `\"()\"`. Depending on its " "content, the possible brackets are" -msgstr "" +msgstr "**string** -- 유효한 PDF 문자열. **모든 PDF 문자열은 괄호로 둘러싸여야 합니다**. 빈 문자열은 `\"()\"` 로 표시합니다. 콘텐츠에 따라 가능한 괄호는" #: ../../document.rst:932 bf4426b2937d496185dc5ca3086d1560 msgid "" @@ -2906,56 +2727,56 @@ msgid "" "escaped and non-ASCII characters must be provided as 3-digit backslash-" "escaped octals -- including leading zeros. Example: 12 = 0x0C must be " "encoded as `\\014`." -msgstr "" +msgstr "ASCII 전용 텍스트의 경우 \"(...)\". 예약된 PDF 문자는 백슬래시 이스케이프되어야 하며, 비ASCII 문자는 앞의 0을 포함하여 3자리 백슬래시 이스케이프된 8진수로 제공되어야 합니다. 예: 12 = 0x0C는 `\\014` 로 인코딩되어야 합니다." #: ../../document.rst:933 b3138023eeab42d8976d82ae328a48e7 msgid "" "\"<...>\" for hex-encoded text. Every character must be represented by " "two hex-digits (lower or upper case)." -msgstr "" +msgstr "16진수 인코딩된 텍스트의 경우 \"<...>\". 모든 문자는 두 자리 16진수(소문자 또는 대문자)로 표현되어야 합니다." #: ../../document.rst:935 04514ffed9104a3f82cba27d60dae539 msgid "" "If in doubt, we **strongly recommend** to use :meth:`get_pdf_str`! This " "function automatically generates the right brackets, escapes, and overall" " format. It will for example do conversions like these:" -msgstr "" +msgstr "의심스러운 경우 :meth:`get_pdf_str` 사용을 **강력히 권장** 합니다! 이 함수는 올바른 괄호, 이스케이프 및 전체 형식을 자동으로 생성합니다. 예를 들어 다음과 같은 변환을 수행합니다:" #: ../../document.rst:947 e157d6a6ebb44a58a5382b3125619640 msgid "" "Creates a pixmap from page *pno* (zero-based). Invokes " ":meth:`Page.get_pixmap`." -msgstr "" +msgstr "페이지 *pno* (0 기반)에서 pixmap을 생성합니다. :meth:`Page.get_pixmap` 을 호출합니다." #: ../../document.rst:949 bb646c2e759e4d2bbee44f4ad97ec08e msgid "All parameters except `pno` are *keyword-only.*" -msgstr "" +msgstr "`pno` 를 제외한 모든 매개변수는 *키워드 전용* 입니다." #: ../../document.rst:951 663b27e190f34a04a42b233cf48b0d2d msgid "page number, 0-based in `-∞ < pno < page_count`." -msgstr "" +msgstr "페이지 번호, `-∞ < pno < page_count` 에서 0 기반." #: ../../document.rst:953 83e16eb54fbc471cbb9c5e21748734af msgid ":ref:`Pixmap`" -msgstr "" +msgstr ":ref:`Pixmap`" #: ../../document.rst:957 4aaceb696b71426cac76aa4f65fadab7 msgid "New in v1.16.13" -msgstr "" +msgstr "v1.16.13에서 새로 추가됨" #: ../../document.rst:958 b4622be6eecf433d824b4e0092311b23 msgid "Changed in v1.18.11" -msgstr "" +msgstr "v1.18.11에서 변경됨" #: ../../document.rst:960 a50d47a57f9a458cbdb6f4c19c9ecc2f msgid "PDF only: Return a list of all XObjects referenced by a page." -msgstr "" +msgstr "PDF 전용: 페이지에서 참조하는 모든 XObject 목록을 반환합니다." #: ../../document.rst:962 ../../document.rst:977 ../../document.rst:1004 #: b512284cd0944db08267225142b30973 b7a9d1c1640a44e49194253e80f28940 #: bcc36ae910474f22b80c5aeb1e3cd296 msgid "page number, 0-based, `-∞ < pno < page_count`." -msgstr "" +msgstr "페이지 번호, 0 기반, `-∞ < pno < page_count`." #: ../../document.rst:965 c4fd71139bd44bb8ada4e97a475737cd msgid "" @@ -2971,7 +2792,7 @@ msgid "" "actual, non-rotated page coordinates, multiply with the page's " "transformation matrix :attr:`Page.transformation_matrix`. *Changed in " "v.18.11:* the bbox is now formatted as :ref:`Rect`." -msgstr "" +msgstr "(이미지가 아닌) XObject 목록. 이러한 객체는 일반적으로 다른 PDF에서 *임베디드된* (복사되지 않은) 페이지를 나타냅니다. 예를 들어, :meth:`Page.show_pdf_page` 는 이 타입의 객체를 생성합니다. 이 목록의 항목은 다음 레이아웃을 가집니다: `(xref, name, invoker, bbox)`, 여기서 * *:data:`xref`* (*int*)는 XObject의 :data:`xref` 입니다. * **name** (*str*)는 XObject를 참조하는 심볼릭 이름입니다. * **invoker** (*int*)는 호출하는 XObject의 :data:`xref` 이거나 페이지가 직접 호출하는 경우 0입니다. * **bbox** (:ref:`Rect`)는 페이지에서 XObject 위치의 경계 상자입니다. **변환되지 않은 좌표** 에 있습니다. 실제, 비회전 페이지 좌표를 얻으려면 페이지의 변환 행렬 :attr:`Page.transformation_matrix` 와 곱하세요. *v.18.11에서 변경됨:* bbox는 이제 :ref:`Rect` 로 포맷됩니다." #: ../../document.rst:965 21d6f7f8ef56493e8984e44eec7d841b msgid "" @@ -2979,21 +2800,21 @@ msgid "" "*embedded* (not copied) from other PDFs. For example, " ":meth:`Page.show_pdf_page` will create this type of object. An item of " "this list has the following layout: `(xref, name, invoker, bbox)`, where" -msgstr "" +msgstr "(이미지가 아닌) XObject 목록. 이러한 객체는 일반적으로 다른 PDF에서 *임베디드된* (복사되지 않은) 페이지를 나타냅니다. 예를 들어, :meth:`Page.show_pdf_page` 는 이 타입의 객체를 생성합니다. 이 목록의 항목은 다음 레이아웃을 가집니다: `(xref, name, invoker, bbox)`, 여기서" #: ../../document.rst:967 d6f78447afef45d7a168cf13ab89fbcc msgid "*:data:`xref`* (*int*) is the XObject's :data:`xref`." -msgstr "" +msgstr "*:data:`xref`* (*int*)는 XObject의 :data:`xref` 입니다." #: ../../document.rst:968 2f42c8f85790488dbce62e7093baa9c5 msgid "**name** (*str*) is the symbolic name to reference the XObject." -msgstr "" +msgstr "**name** (*str*)는 XObject를 참조하는 심볼릭 이름입니다." #: ../../document.rst:969 2355cf43667b42aaae40b91b5a5937b9 msgid "" "**invoker** (*int*) the :data:`xref` of the invoking XObject or zero if " "the page directly invokes it." -msgstr "" +msgstr "**invoker** (*int*)는 호출하는 XObject의 :data:`xref` 이거나 페이지가 직접 호출하는 경우 0입니다." #: ../../document.rst:970 ce656f07b3d3474ba08d6e123b8117c4 msgid "" @@ -3002,19 +2823,19 @@ msgid "" "coordinates, multiply with the page's transformation matrix " ":attr:`Page.transformation_matrix`. *Changed in v.18.11:* the bbox is now" " formatted as :ref:`Rect`." -msgstr "" +msgstr "**bbox** (:ref:`Rect`)는 페이지에서 XObject 위치의 경계 상자입니다. **변환되지 않은 좌표** 에 있습니다. 실제, 비회전 페이지 좌표를 얻으려면 페이지의 변환 행렬 :attr:`Page.transformation_matrix` 와 곱하세요. *v.18.11에서 변경됨:* bbox는 이제 :ref:`Rect` 로 포맷됩니다." #: ../../document.rst:975 6fe8a93907b94d18969a4b9ab14c4359 msgid "" "PDF only: Return a list of all images (directly or indirectly) referenced" " by the page." -msgstr "" +msgstr "PDF 전용: 페이지에서 참조하는 모든 이미지(직접 또는 간접) 목록을 반환합니다." #: ../../document.rst:978 9f4e6fd3f1e04b22a5a95840ab1550ff msgid "" "whether to also include the referencer's :data:`xref` (which is zero if " "this is the page)." -msgstr "" +msgstr "참조자의 :data:`xref` 도 포함할지 여부(페이지인 경우 0)." #: ../../document.rst:982 4efb3fbf341f42098699c1b7689ee45c msgid "" @@ -3031,63 +2852,63 @@ msgid "" "(*str*) is the decode filter of the image (:ref:`AdobeManual`, pp. 22)." " * ``referencer`` (*int*) the :data:`xref` of the referencer. Zero if " "directly referenced by the page. Only present if *full=True*." -msgstr "" +msgstr "이 페이지에서 **참조하는** 이미지 목록. 각 항목은 다음과 같습니다: `(xref, smask, width, height, bpc, colorspace, alt_colorspace, name, filter, referencer)` * ``xref`` (*int*)는 이미지 객체 번호입니다 * ``smask`` (*int*)는 소프트 마스크 이미지의 객체 번호입니다 * ``width`` (*int*)는 이미지 너비입니다 * ``height`` (*int*)는 이미지 높이입니다 * ``bpc`` (*int*)는 구성 요소당 비트 수를 나타냅니다(일반적으로 8) * ``colorspace`` (*str*)는 색상 공간을 명명하는 문자열(예: **DeviceRGB**) * ``alt_colorspace`` (*str*)는 **colorspace** 값에 따라 대체 색상 공간입니다 * ``name`` (*str*)는 이미지가 참조되는 심볼릭 이름입니다 * ``filter`` (*str*)는 이미지의 디코드 필터입니다(:ref:`AdobeManual`, 22페이지). * ``referencer`` (*int*)는 참조자의 :data:`xref` 입니다. 페이지에서 직접 참조하는 경우 0입니다. *full=True* 인 경우에만 존재합니다." #: ../../document.rst:982 8f9928f663504d3d9168282aed83e5cc msgid "a list of images **referenced** by this page. Each item looks like:" -msgstr "" +msgstr "이 페이지에서 **참조하는** 이미지 목록. 각 항목은 다음과 같습니다:" #: ../../document.rst:984 00f4ef107d1c4db385603c6339a76099 msgid "" "`(xref, smask, width, height, bpc, colorspace, alt_colorspace, name, " "filter, referencer)`" -msgstr "" +msgstr "`(xref, smask, width, height, bpc, colorspace, alt_colorspace, name, filter, referencer)`" #: ../../document.rst:986 3d896dcb29714890a22bfb1f0ffc4a34 msgid "``xref`` (*int*) is the image object number" -msgstr "" +msgstr "``xref`` (*int*)는 이미지 객체 번호입니다" #: ../../document.rst:987 9acc8321d4094ed1b2397b95f2886d22 msgid "``smask`` (*int*) is the object number of its soft-mask image" -msgstr "" +msgstr "``smask`` (*int*)는 소프트 마스크 이미지의 객체 번호입니다" #: ../../document.rst:988 0f53d4a9d9074947a83aab2d9a176cb1 msgid "``width`` (*int*) is the image width" -msgstr "" +msgstr "``width`` (*int*)는 이미지 너비입니다" #: ../../document.rst:989 35c2acc0727549249953c971d8917290 msgid "``height`` (*int*) is the image height" -msgstr "" +msgstr "``height`` (*int*)는 이미지 높이입니다" #: ../../document.rst:990 7413ba2b65df40ec96a73858402002a4 msgid "``bpc`` (*int*) denotes the number of bits per component (normally 8)" -msgstr "" +msgstr "``bpc`` (*int*)는 구성 요소당 비트 수를 나타냅니다(일반적으로 8)" #: ../../document.rst:991 b43082aeae534bf3af1fdd913d40e5b1 msgid "``colorspace`` (*str*) a string naming the colorspace (like **DeviceRGB**)" -msgstr "" +msgstr "``colorspace`` (*str*)는 색상 공간을 명명하는 문자열(예: **DeviceRGB**)" #: ../../document.rst:992 029549b0601a446da7e5e1b15bdc3f5d msgid "" "``alt_colorspace`` (*str*) is any alternate colorspace depending on the " "value of **colorspace**" -msgstr "" +msgstr "``alt_colorspace`` (*str*)는 **colorspace** 값에 따라 대체 색상 공간입니다" #: ../../document.rst:993 e2137f9fc6d845d4b63d058fc6cd19d3 msgid "``name`` (*str*) is the symbolic name by which the image is referenced" -msgstr "" +msgstr "``name`` (*str*)는 이미지가 참조되는 심볼릭 이름입니다" #: ../../document.rst:994 6676261a491d4bc4b0e9543f4d842080 msgid "" "``filter`` (*str*) is the decode filter of the image (:ref:`AdobeManual`," " pp. 22)." -msgstr "" +msgstr "``filter`` (*str*)는 이미지의 디코드 필터입니다(:ref:`AdobeManual`, 22페이지)." #: ../../document.rst:995 d92b9e1700fd4c62854642a1f6dde89c msgid "" "``referencer`` (*int*) the :data:`xref` of the referencer. Zero if " "directly referenced by the page. Only present if *full=True*." -msgstr "" +msgstr "``referencer`` (*int*)는 참조자의 :data:`xref` 입니다. 페이지에서 직접 참조하는 경우 0입니다. *full=True* 인 경우에만 존재합니다." #: ../../document.rst:997 c07f09a4315a4410bcdfa4e0e35c5613 msgid "" @@ -3097,13 +2918,13 @@ msgid "" ":data:`contents`, where all the actual image display commands are " "defined. To get this information, please use :meth:`Page.get_image_info`." " Also have a look at the discussion in section :ref:`textpagedict`." -msgstr "" +msgstr "일반적으로 이것은 **실제로 표시되는** 이미지 목록이 아닙니다. 이 메서드는 임베디드된 이미지에 대한 참조를 수집하기 위해 여러 PDF 객체만 파싱합니다. 실제 이미지 표시 명령이 정의된 페이지의 :data:`contents` 를 분석하지 않습니다. 이 정보를 얻으려면 :meth:`Page.get_image_info` 를 사용하세요. 또한 :ref:`textpagedict` 섹션의 논의를 참조하세요." #: ../../document.rst:1002 50688d36bbf24221a9c4c9d2d3383083 msgid "" "PDF only: Return a list of all fonts (directly or indirectly) referenced " "by the page object definition." -msgstr "" +msgstr "PDF 전용: 페이지 객체 정의에서 참조하는 모든 폰트(직접 또는 간접) 목록을 반환합니다." #: ../../document.rst:1005 0f887570532b4208be1fe1b83d43adbc msgid "" @@ -3112,7 +2933,7 @@ msgid "" " whether the page directly references the font. In this case the last " "entry is 0. If the font is referenced by an `/XObject` of the page, you " "will find its :data:`xref` here." -msgstr "" +msgstr "참조자의 :data:`xref` 도 포함할지 여부. ``True`` 인 경우 반환된 항목이 한 항목 더 깁니다. 페이지가 폰트를 직접 참조하는지 알아야 하는 경우 이 옵션을 사용하세요. 이 경우 마지막 항목은 0입니다. 폰트가 페이지의 `/XObject` 에 의해 참조되는 경우 여기서 :data:`xref` 를 찾을 수 있습니다." #: ../../document.rst:1009 b483bbc3f4c244c6acc8c409b25f1dd5 msgid "" @@ -3129,71 +2950,71 @@ msgid "" "(*int* optional) the :data:`xref` of the referencer. Zero if directly " "referenced by the page, otherwise the xref of an XObject. Only present if" " *full=True*." -msgstr "" +msgstr "페이지 객체 정의에서 참조하는 폰트 목록. 각 항목은 다음과 같습니다: `(xref, ext, type, basefont, name, encoding, referencer)` * ``xref`` (*int*)는 폰트 객체 번호입니다(PDF가 내장 폰트 중 하나를 직접 사용하는 경우 0일 수 있음) * ``ext`` (*str*)는 폰트 파일 확장자입니다(예: \"ttf\", :ref:`FontExtensions` 참조) * ``type`` (*str*)는 폰트 타입입니다(예: \"Type1\" 또는 \"TrueType\" 등) * ``basefont`` (*str*)는 기본 폰트 이름입니다, * ``name`` (*str*)는 폰트가 참조되는 심볼릭 이름입니다 * ``encoding`` (*str*)는 내장 인코딩과 다른 경우 폰트의 문자 인코딩입니다(:ref:`AdobeManual`, 254페이지): * ``referencer`` (*int* 선택적)는 참조자의 :data:`xref` 입니다. 페이지에서 직접 참조하는 경우 0이고, 그렇지 않으면 XObject의 xref입니다. *full=True* 인 경우에만 존재합니다." #: ../../document.rst:1009 58bcdadb2ba8444d931f586e64adae5e msgid "" "a list of fonts referenced by the object definition of the page. Each " "entry looks like:" -msgstr "" +msgstr "페이지 객체 정의에서 참조하는 폰트 목록. 각 항목은 다음과 같습니다:" #: ../../document.rst:1011 4a04236fee1f48d1a11fcb7b3892c541 msgid "`(xref, ext, type, basefont, name, encoding, referencer)`" -msgstr "" +msgstr "`(xref, ext, type, basefont, name, encoding, referencer)`" #: ../../document.rst:1013 82b62283f3904f859c1cfc7fd913aa3a msgid "" "``xref`` (*int*) is the font object number (may be zero if the PDF uses " "one of the builtin fonts directly)" -msgstr "" +msgstr "``xref`` (*int*)는 폰트 객체 번호입니다(PDF가 내장 폰트 중 하나를 직접 사용하는 경우 0일 수 있음)" #: ../../document.rst:1014 b281d41a2a104abc96fb433a1ccf6917 msgid "" "``ext`` (*str*) font file extension (e.g. \"ttf\", see " ":ref:`FontExtensions`)" -msgstr "" +msgstr "``ext`` (*str*)는 폰트 파일 확장자입니다(예: \"ttf\", :ref:`FontExtensions` 참조)" #: ../../document.rst:1015 a3da8b4719364cddb5b13b0530926e71 msgid "``type`` (*str*) is the font type (like \"Type1\" or \"TrueType\" etc.)" -msgstr "" +msgstr "``type`` (*str*)는 폰트 타입입니다(예: \"Type1\" 또는 \"TrueType\" 등)" #: ../../document.rst:1016 a967a9a698a54fc6b11d779661ce60f1 msgid "``basefont`` (*str*) is the base font name," -msgstr "" +msgstr "``basefont`` (*str*)는 기본 폰트 이름입니다," #: ../../document.rst:1017 614bd868a5294452b00f8986ef84424a msgid "``name`` (*str*) is the symbolic name, by which the font is referenced" -msgstr "" +msgstr "``name`` (*str*)는 폰트가 참조되는 심볼릭 이름입니다" #: ../../document.rst:1018 76630068ae7f4e588fb71e0a5e8fda81 msgid "" "``encoding`` (*str*) the font's character encoding if different from its " "built-in encoding (:ref:`AdobeManual`, p. 254):" -msgstr "" +msgstr "``encoding`` (*str*)는 내장 인코딩과 다른 경우 폰트의 문자 인코딩입니다(:ref:`AdobeManual`, 254페이지):" #: ../../document.rst:1019 d9bbbba29f0d49179ac6534d71492729 msgid "" "``referencer`` (*int* optional) the :data:`xref` of the referencer. Zero " "if directly referenced by the page, otherwise the xref of an XObject. " "Only present if *full=True*." -msgstr "" +msgstr "``referencer`` (*int* 선택적)는 참조자의 :data:`xref` 입니다. 페이지에서 직접 참조하는 경우 0이고, 그렇지 않으면 XObject의 xref입니다. *full=True* 인 경우에만 존재합니다." #: ../../document.rst:1021 0754eb9f62d34168ad17f5bc693e308d msgid "Example::" -msgstr "" +msgstr "예제::" #: ../../document.rst:1034 bf4929ce53d44735a61082c4227b290d msgid "" "This list has no duplicate entries: the combination of :data:`xref`, " "*name* and *referencer* is unique." -msgstr "" +msgstr "이 목록에는 중복 항목이 없습니다: :data:`xref`, *name* 및 *referencer* 의 조합이 고유합니다." #: ../../document.rst:1035 1b9423c83bd84bdfbc55c57f23bc2164 msgid "" "In general, this is a true superset of the fonts actually in use by this " "page. The PDF creator may e.g. have specified some global list, of which " "each page make only partial use." -msgstr "" +msgstr "일반적으로 이것은 이 페이지에서 실제로 사용 중인 폰트의 진정한 상위 집합입니다. PDF 작성자는 예를 들어 각 페이지가 부분적으로만 사용하는 전역 목록을 지정했을 수 있습니다." #: ../../document.rst:1036 9b8712ad035b4ee5af594a3e164f7d0b msgid "" @@ -3201,13 +3022,13 @@ msgid "" ":meth:`Page.get_text` (respectively :ref:`TextPage` methods) need not " "(exactly) equal the base font name shown here. Reasons for any " "differences include:" -msgstr "" +msgstr ":meth:`Page.get_text` (각각 :ref:`TextPage` 메서드)의 일부 변형에서 반환하는 폰트 이름이 여기에 표시된 기본 폰트 이름과 (정확히) 같을 필요는 없습니다. 차이점의 이유는 다음과 같습니다:" #: ../../document.rst:1038 9e3187a8049f43a8ab6ba7659956a13b msgid "" "This method always shows any subset prefixes (the pattern ``ABCDEF+``), " "whereas text extractions do not do this by default." -msgstr "" +msgstr "이 메서드는 항상 모든 서브셋 접두사(패턴 ``ABCDEF+``)를 표시하지만, 텍스트 추출은 기본적으로 이를 수행하지 않습니다." #: ../../document.rst:1039 0abee5e9efcf4f259b19dbbf3c112ac9 msgid "" @@ -3215,28 +3036,28 @@ msgid "" "a length cap of 31 bytes and generally interrogates the font file binary " "to access the name. Method ``get_page_fonts()`` however looks at the PDF " "definition source." -msgstr "" +msgstr "텍스트 추출은 기본 라이브러리를 사용하여 폰트 이름에 액세스하며, 길이 제한이 31바이트이고 일반적으로 폰트 파일 바이너리를 조회하여 이름에 액세스합니다. 그러나 ``get_page_fonts()`` 메서드는 PDF 정의 소스를 살펴봅니다." #: ../../document.rst:1040 ceff7473261d4ef0af2e8cd13f8a1f2b msgid "" "Text extractions work for all supported document types in exactly the " "same way -- not just for PDFs. Consequently they do not contain PDF-" "specifics." -msgstr "" +msgstr "텍스트 추출은 PDF뿐만 아니라 지원되는 모든 문서 타입에 대해 정확히 동일한 방식으로 작동합니다. 결과적으로 PDF 특정 사항을 포함하지 않습니다." #: ../../document.rst:1044 b8db4c274c904f3e8d043eaf8c4fa329 msgid "" "Extracts the text of a page given its page number *pno* (zero-based). " "Invokes :meth:`Page.get_text`." -msgstr "" +msgstr "페이지 번호 *pno* (0 기반)가 주어진 페이지의 텍스트를 추출합니다. :meth:`Page.get_text` 를 호출합니다." #: ../../document.rst:1046 ab0bf8a80bdf468dae5fcab8e58d513e msgid "page number, 0-based, any value `-∞ < pno < page_count`." -msgstr "" +msgstr "페이지 번호, 0 기반, `-∞ < pno < page_count` 범위의 모든 값." #: ../../document.rst:1048 27bf81508d0b4d2c934168e49148ac1b msgid "For other parameter refer to the page method." -msgstr "" +msgstr "다른 매개변수는 페이지 메서드를 참조하세요." #: ../../document.rst:1060 881bca230ae54f04b7233142e165e1fc msgid "" @@ -3244,23 +3065,23 @@ msgid "" "and fontsize. This only affects some document types like e-books and " "HTML. Ignored if not supported. Supported documents have ``True`` in " "property :attr:`is_reflowable`." -msgstr "" +msgstr "주어진 페이지 크기와 폰트 크기를 기반으로 문서를 다시 페이지화(\"리플로우\")합니다. 이것은 전자책 및 HTML과 같은 일부 문서 타입에만 영향을 줍니다. 지원되지 않으면 무시됩니다. 지원되는 문서는 속성 :attr:`is_reflowable` 에 ``True`` 가 있습니다." #: ../../document.rst:1062 b4368178fd834f7cba473e3683f57587 msgid "desired page size. Must be finite, not empty and start at point (0, 0)." -msgstr "" +msgstr "원하는 페이지 크기. 유한하고 비어 있지 않으며 점 (0, 0)에서 시작해야 합니다." #: ../../document.rst:1063 ff2a60554e4c4e2a812c93fbdb80be62 msgid "use it together with ``height`` as alternative to ``rect``." -msgstr "" +msgstr "``rect`` 의 대안으로 ``height`` 와 함께 사용합니다." #: ../../document.rst:1064 0ba8b89ec07f4191990fb69a81e9d18e msgid "use it together with ``width`` as alternative to ``rect``." -msgstr "" +msgstr "``rect`` 의 대안으로 ``width`` 와 함께 사용합니다." #: ../../document.rst:1065 9073142bb51c42689875626b7abe5c25 msgid "the desired default fontsize." -msgstr "" +msgstr "원하는 기본 폰트 크기." #: ../../document.rst:1069 a01cabf5e69f408980b2a61a12447312 msgid "" @@ -3268,7 +3089,7 @@ msgid "" "the list. Empty sequences or elements outside `range(doc.page_count)` " "will cause a *ValueError*. For more details see remarks at the bottom or " "this chapter." -msgstr "" +msgstr "PDF 전용: 목록에 있는 번호의 페이지만 유지합니다. 빈 시퀀스 또는 `range(doc.page_count)` 범위를 벗어난 요소는 *ValueError* 를 발생시킵니다. 자세한 내용은 이 장 하단의 설명을 참조하세요." #: ../../document.rst:1071 b811b2733b5a4543a065fd5bef0c2d19 msgid "" @@ -3277,20 +3098,20 @@ msgid "" "become unavailable until the document is reopened. **Page numbers can " "occur multiple times and in any order:** the resulting document will " "reflect the sequence exactly as specified." -msgstr "" +msgstr "포함할 페이지 번호(0 기반)의 시퀀스(:ref:`SequenceTypes` 참조). 시퀀스에 없는 페이지는 삭제(메모리에서)되며 문서를 다시 열 때까지 사용할 수 없게 됩니다. **페이지 번호는 여러 번 발생할 수 있으며 어떤 순서로든 가능합니다:** 결과 문서는 지정된 대로 시퀀스를 정확히 반영합니다." #: ../../document.rst:1075 a0e792f0e7504785a8c3f46ae77381a0 msgid "" "Page numbers in the sequence need not be unique nor be in any particular " "order. This makes the method a versatile utility to e.g. select only the " "even or the odd pages or meeting some other criteria and so forth." -msgstr "" +msgstr "시퀀스의 페이지 번호는 고유할 필요도 없고 특정 순서일 필요도 없습니다. 이것은 예를 들어 짝수 페이지만 선택하거나 홀수 페이지만 선택하거나 다른 기준을 충족하는 등 다양한 유틸리티로 메서드를 만듭니다." #: ../../document.rst:1077 a835fa5157904b5ab455cb2eb91f202c msgid "" "On a technical level, the method will always create a new " ":data:`pagetree`." -msgstr "" +msgstr "기술적 수준에서 이 메서드는 항상 새로운 :data:`pagetree` 를 생성합니다." #: ../../document.rst:1079 ccc5be5dc4ae4ec0b2ef3ca6f735a437 msgid "" @@ -3298,13 +3119,13 @@ msgid "" ":meth:`move_page`, :meth:`delete_page` are easier to use. In fact, they " "are also **much faster** -- by at least one order of magnitude when the " "document has many pages." -msgstr "" +msgstr "몇 페이지만 다룰 때는 :meth:`copy_page`, :meth:`move_page`, :meth:`delete_page` 메서드가 더 쉽게 사용할 수 있습니다. 실제로 문서에 많은 페이지가 있을 때 최소한 한 자릿수 이상 **훨씬 빠릅니다**." #: ../../document.rst:1084 6ea57c9287dc40f394387af6be79301e msgid "" "PDF only: Sets or updates the metadata of the document as specified in " "*m*, a Python dictionary." -msgstr "" +msgstr "PDF 전용: Python 딕셔너리인 *m* 에 지정된 대로 문서의 메타데이터를 설정하거나 업데이트합니다." #: ../../document.rst:1086 8f5fd7f7e37241278a248b6dfdf47633 msgid "" @@ -3316,31 +3137,31 @@ msgid "" "selectively change only some values, modify a copy of *doc.metadata* and " "use it as the argument. Arbitrary unicode values are possible if " "specified as UTF-8-encoded." -msgstr "" +msgstr "*metadata* (아래 참조)와 동일한 키를 가진 딕셔너리. 모든 키는 선택적입니다. PDF의 형식과 암호화 방법은 설정하거나 변경할 수 없으며 무시됩니다. 값에 데이터가 포함되지 않아야 하는 경우 해당 키를 지정하지 않거나 값을 `None` 으로 설정하세요. *{}* 를 사용하면 모든 메타데이터 정보가 문자열 *\"none\"* 으로 지워집니다. 일부 값만 선택적으로 변경하려면 *doc.metadata* 의 복사본을 수정하고 인수로 사용하세요. UTF-8로 인코딩된 것으로 지정하면 임의의 유니코드 값이 가능합니다." #: ../../document.rst:1088 378dd664bfff4b00a333924796f6afa1 msgid "" "*(Changed in v1.18.4)* Empty values or \"none\" are no longer written, " "but completely omitted." -msgstr "" +msgstr "*(v1.18.4에서 변경됨)* 빈 값 또는 \"none\" 은 더 이상 작성되지 않고 완전히 생략됩니다." #: ../../document.rst:1092 7defc5da9e384a81910c8e57c5c08c9b msgid "PDF only: Get the document XML metadata." -msgstr "" +msgstr "PDF 전용: 문서 XML 메타데이터를 가져옵니다." #: ../../document.rst:1095 022fd903a25f47d892ec5c148aa9731c msgid "XML metadata of the document. Empty string if not present or not a PDF." -msgstr "" +msgstr "문서의 XML 메타데이터. 없거나 PDF가 아닌 경우 빈 문자열." #: ../../document.rst:1099 3bc746006bd14cad95bbd71e15614ea4 msgid "PDF only: Sets or updates XML metadata of the document." -msgstr "" +msgstr "PDF 전용: 문서의 XML 메타데이터를 설정하거나 업데이트합니다." #: ../../document.rst:1101 815c87ed354f45afb5034d3fa4df2b7a msgid "" "the new XML metadata. Should be XML syntax, however no checking is done " "by this method and any string is accepted." -msgstr "" +msgstr "새 XML 메타데이터. XML 구문이어야 하지만 이 메서드는 검사를 수행하지 않으며 모든 문자열이 허용됩니다." #: ../../document.rst:1106 ../../document.rst:1115 ../../document.rst:1124 #: ../../document.rst:2062 ../../document.rst:2070 ../../document.rst:2078 @@ -3350,32 +3171,32 @@ msgstr "" #: d481448871f2481096ebf5ba1c5cd890 e1271d18b89947ae8490b4cecbcc4277 #: e7a671ebea5446029fd0019bf910f05a fc68fc012f1e4cbcbcf1e4f9c9adbca6 msgid "New in v1.22.2" -msgstr "" +msgstr "v1.22.2에서 새로 추가됨" #: ../../document.rst:1108 6095a410473445d68dd1082d0e3598f9 msgid "PDF only: Set the `/PageLayout`." -msgstr "" +msgstr "PDF 전용: `/PageLayout` 을 설정합니다." #: ../../document.rst:1110 b8d4a1a8ad4c46a6bb4dc931bfb281a2 msgid "" "one of the strings \"SinglePage\", \"OneColumn\", \"TwoColumnLeft\", " "\"TwoColumnRight\", \"TwoPageLeft\", \"TwoPageRight\". Lower case is " "supported." -msgstr "" +msgstr "문자열 \"SinglePage\", \"OneColumn\", \"TwoColumnLeft\", \"TwoColumnRight\", \"TwoPageLeft\", \"TwoPageRight\" 중 하나. 소문자가 지원됩니다." #: ../../document.rst:1117 83135c81dcbb41e49d6872b76d675476 msgid "PDF only: Set the `/PageMode`." -msgstr "" +msgstr "PDF 전용: `/PageMode` 를 설정합니다." #: ../../document.rst:1119 361f59248bed437f82de57b9c0cff394 msgid "" "one of the strings \"UseNone\", \"UseOutlines\", \"UseThumbs\", " "\"FullScreen\", \"UseOC\", \"UseAttachments\". Lower case is supported." -msgstr "" +msgstr "문자열 \"UseNone\", \"UseOutlines\", \"UseThumbs\", \"FullScreen\", \"UseOC\", \"UseAttachments\" 중 하나. 소문자가 지원됩니다." #: ../../document.rst:1126 484c93332c134d25b3c8e46c7153b12a msgid "PDF only: Set the `/MarkInfo` values." -msgstr "" +msgstr "PDF 전용: `/MarkInfo` 값을 설정합니다." #: ../../document.rst:1128 a217e06c6a7c47e1a6fe64aeadf09de5 msgid "" @@ -3384,7 +3205,7 @@ msgid "" "the usage of Tagged PDF conventions. For details please see the `PDF " "specifications `_." -msgstr "" +msgstr "다음과 같은 딕셔너리: `{\"Marked\": False, \"UserProperties\": False, \"Suspects\": False}`. 이 딕셔너리는 Tagged PDF 규칙 사용에 대한 정보를 포함합니다. 자세한 내용은 `PDF 사양 `_ 을 참조하세요." #: ../../document.rst:1133 1a3785bb335b40d5b5f05f19d59dc55f msgid "" @@ -3395,15 +3216,15 @@ msgid "" " output-oriented methods, changes become permanent only via :meth:`save` " "(incremental save supported). Internally, this method consists of the " "following two steps. For a demonstration see example below." -msgstr "" +msgstr "PDF 전용: **현재 개요** 트리(목차)를 인수로 제공된 것으로 완전히 교체합니다. 성공적으로 실행한 후 새 개요 트리는 :meth:`Document.get_toc` 또는 :attr:`Document.outline` 을 통해 평소와 같이 액세스할 수 있습니다. 다른 출력 지향 메서드와 마찬가지로 변경 사항은 :meth:`save` 를 통해서만 영구적으로 적용됩니다(증분 저장 지원). 내부적으로 이 메서드는 다음 두 단계로 구성됩니다. 데모는 아래 예제를 참조하세요." #: ../../document.rst:1135 fab5fac64dd3452580cdcccdd7303f00 msgid "Step 1 deletes all existing bookmarks." -msgstr "" +msgstr "1단계는 기존 북마크를 모두 삭제합니다." #: ../../document.rst:1137 3e9734d29cee4dd182cbcc2cfd77a07c msgid "Step 2 creates a new TOC from the entries contained in *toc*." -msgstr "" +msgstr "2단계는 *toc* 에 포함된 항목에서 새 TOC를 생성합니다." #: ../../document.rst:1139 1e6897bee93b42f48e1da50ac920665c msgid "" @@ -3423,7 +3244,7 @@ msgid "" "dictionary (like the one given as output by `get_toc(False)`) for a " "detailed control of the bookmark's properties, see " ":meth:`Document.get_toc` for a description." -msgstr "" +msgstr "새 목차를 구성할 **모든 북마크 항목** 이 포함된 리스트/튜플. :meth:`get_toc` 의 출력 변형이 허용됩니다. 목차를 완전히 제거하려면 빈 시퀀스 또는 None을 지정하세요. 각 항목은 다음 형식의 리스트여야 합니다. * [lvl, title, page [, dest]] 여기서 - **lvl** 은 항목의 계층 수준(int > 0)이며, 첫 번째 항목의 경우 **반드시 1**이어야 하고 이전 항목보다 최대 1만큼 클 수 있습니다. - **title** (str)는 표시할 제목입니다. UTF-8로 인코딩된 것으로 가정됩니다(멀티바이트 코드 포인트에만 해당). - **page** (int)는 대상 페이지 번호입니다 **(주의: 1 기반)**. 양수인 경우 유효한 범위에 있어야 합니다. 대상이 없거나 대상이 외부인 경우 -1로 설정하세요. - **dest** (선택적)는 딕셔너리 또는 숫자입니다. 숫자인 경우 이 항목이 페이지에서 가리켜야 하는 원하는 높이(포인트)로 해석됩니다. 북마크 속성을 세부적으로 제어하려면 딕셔너리를 사용하세요(`get_toc(False)` 의 출력과 같은 형식). 설명은 :meth:`Document.get_toc` 를 참조하세요." #: ../../document.rst:1141 fe3a1323fbad4254982338ebfe8c989f msgid "" @@ -3431,30 +3252,30 @@ msgid "" "table of contents. Output variants of :meth:`get_toc` are acceptable. To " "completely remove the table of contents specify an empty sequence or " "None. Each item must be a list with the following format." -msgstr "" +msgstr "새 목차를 구성할 **모든 북마크 항목**이 포함된 리스트/튜플. :meth:`get_toc` 의 출력 변형이 허용됩니다. 목차를 완전히 제거하려면 빈 시퀀스 또는 None을 지정하세요. 각 항목은 다음 형식의 리스트여야 합니다." #: ../../document.rst:1143 85509f224b1249c4b5b63690222e9eb0 msgid "[lvl, title, page [, dest]] where" -msgstr "" +msgstr "[lvl, title, page [, dest]] 여기서" #: ../../document.rst:1145 690744393f344093958f9ddfa8f135c0 msgid "" "**lvl** is the hierarchy level (int > 0) of the item, which **must be 1**" " for the first item and at most 1 larger than the previous one." -msgstr "" +msgstr "**lvl** 은 항목의 계층 수준(int > 0)이며, 첫 번째 항목의 경우 **반드시 1** 이어야 하고 이전 항목보다 최대 1만큼 클 수 있습니다." #: ../../document.rst:1147 0e0033a874d3456abc5787e7192d318d msgid "" "**title** (str) is the title to be displayed. It is assumed to be " "UTF-8-encoded (relevant for multibyte code points only)." -msgstr "" +msgstr "**title** (str)는 표시할 제목입니다. UTF-8로 인코딩된 것으로 가정됩니다(멀티바이트 코드 포인트에만 해당)." #: ../../document.rst:1149 4803db27502949be9cae49f68a00c3c4 msgid "" "**page** (int) is the target page number **(attention: 1-based)**. Must " "be in valid range if positive. Set it to -1 if there is no target, or the" " target is external." -msgstr "" +msgstr "**page** (int)는 대상 페이지 번호입니다 **(주의: 1 기반)**. 양수인 경우 유효한 범위에 있어야 합니다. 대상이 없거나 대상이 외부인 경우 -1로 설정하세요." #: ../../document.rst:1151 de6ec335a2dc463b9619f7d960d55fd8 msgid "" @@ -3463,7 +3284,7 @@ msgid "" "on the page. Use a dictionary (like the one given as output by " "`get_toc(False)`) for a detailed control of the bookmark's properties, " "see :meth:`Document.get_toc` for a description." -msgstr "" +msgstr "**dest** (선택적)는 딕셔너리 또는 숫자입니다. 숫자인 경우 이 항목이 페이지에서 가리켜야 하는 원하는 높이(포인트)로 해석됩니다. 북마크 속성을 세부적으로 제어하려면 딕셔너리를 사용하세요(`get_toc(False)` 의 출력과 같은 형식). 설명은 :meth:`Document.get_toc` 를 참조하세요." #: ../../document.rst:1153 4b2509feab4d42c1896479cb753f319a msgid "" @@ -3471,11 +3292,11 @@ msgid "" "entries should initially show up collapsed. The default 1 will hence only" " display level 1, higher levels must be unfolded using the PDF viewer. To" " unfold everything, specify either a large integer, 0 or None." -msgstr "" +msgstr "*(v1.16.9에서 새로 추가됨)* 개요 항목이 처음에 접힌 상태로 표시되어야 하는 계층 수준을 제어합니다. 기본값 1은 따라서 레벨 1만 표시하며, 더 높은 레벨은 PDF 뷰어를 사용하여 펼쳐야 합니다. 모든 것을 펼치려면 큰 정수, 0 또는 None을 지정하세요." #: ../../document.rst:1156 2e9ef17d9ad7433caf717d11a0bef04d msgid "the number of inserted, resp. deleted items." -msgstr "" +msgstr "삽입된 항목 수, 각각 삭제된 항목 수." #: ../../document.rst:1158 cc6b2a61bf8745ad9a685a8bdb934307 msgid "" @@ -3484,27 +3305,27 @@ msgid "" "are now transformed with `page.cropbox` and `page.rotation_matrix`). So " "for example `set_toc(get_toc())` now gives unchanged destination 'to' " "coordinates." -msgstr "" +msgstr "v1.23.8에서 변경됨: 대상 'to' 좌표는 이제 `get_toc()` 에서 반환하는 것과 동일한 좌표계에 있어야 합니다(내부적으로 `page.cropbox` 와 `page.rotation_matrix` 로 변환됨). 예를 들어 `set_toc(get_toc())` 는 이제 변경되지 않은 대상 'to' 좌표를 제공합니다." #: ../../document.rst:1168 69ead51269304dd6b951d0f68345cb21 msgid "" "PDF only: Return the :data:`xref` of the outline item. This is mainly " "used for internal purposes." -msgstr "" +msgstr "PDF 전용: 개요 항목의 :data:`xref` 를 반환합니다. 주로 내부 목적으로 사용됩니다." #: ../../document.rst:1170 ac5515f1060a4f2f8cfea8c5de047f36 msgid "index of the item in list :meth:`Document.get_toc`." -msgstr "" +msgstr ":meth:`Document.get_toc` 리스트의 항목 인덱스." #: ../../document.rst:1172 968f01ffca3d4358afb5662a933cd835 msgid ":data:`xref`." -msgstr "" +msgstr ":data:`xref`." #: ../../document.rst:1177 34e33888ad8a4b238bbf919bd98c86cd msgid "" "Changed in v1.18.14: no longer remove the item's text, but show it " "grayed-out." -msgstr "" +msgstr "v1.18.14에서 변경됨: 항목의 텍스트를 더 이상 제거하지 않고 회색으로 표시합니다." #: ../../document.rst:1179 dd42c42f2ed74d9f9c635912f3d908da msgid "" @@ -3512,46 +3333,46 @@ msgid "" "**disables** the respective item, but leaves the overall TOC structure " "intact. Physically, the item still exists in the TOC tree, but is shown " "grayed-out and will no longer point to any destination." -msgstr "" +msgstr "PDF 전용: 이 TOC 항목을 제거합니다. 이것은 해당 항목을 **비활성화** 하지만 전체 TOC 구조는 그대로 유지하는 고속 메서드입니다. 물리적으로 항목은 여전히 TOC 트리에 존재하지만 회색으로 표시되며 더 이상 어떤 대상도 가리키지 않습니다." #: ../../document.rst:1181 14518935bf6542a1909828b5acc5bb9d msgid "" "This also implies that you can reassign the item to a new destination " "using :meth:`Document.set_toc_item`, when required." -msgstr "" +msgstr "이것은 필요할 때 :meth:`Document.set_toc_item` 을 사용하여 항목을 새 대상에 재할당할 수 있음을 의미합니다." #: ../../document.rst:1183 22d9b55991c34bb6b5b50464e9d3ede0 msgid "the index of the item in list :meth:`Document.get_toc`." -msgstr "" +msgstr ":meth:`Document.get_toc` 리스트의 항목 인덱스." #: ../../document.rst:1189 f97ad420e8f2448d89a3942f5f4ecdde msgid "Changed in v1.18.6" -msgstr "" +msgstr "v1.18.6에서 변경됨" #: ../../document.rst:1191 f37714c941aa4caab4557723d10633c7 msgid "" "PDF only: Changes the TOC item identified by its index. Change the item " "**title**, **destination**, **appearance** (color, bold, italic) or " "collapsing sub-items -- or to remove the item altogether." -msgstr "" +msgstr "PDF 전용: 인덱스로 식별된 TOC 항목을 변경합니다. 항목의 **제목**, **대상**, **모양** (색상, 굵게, 기울임꼴) 또는 하위 항목 접기 -- 또는 항목을 완전히 제거합니다." #: ../../document.rst:1193 28fc5be05b3a4afa92b7a5f95bbf478b msgid "" "Use this method if you need specific changes for selected entries only " "and want to avoid replacing the complete TOC. This is beneficial " "especially when dealing with large table of contents." -msgstr "" +msgstr "선택한 항목에 대해서만 특정 변경이 필요하고 전체 TOC를 교체하는 것을 피하려는 경우 이 메서드를 사용하세요. 특히 큰 목차를 다룰 때 유용합니다." #: ../../document.rst:1195 288fc512c31544d3be554d8f5cce5cb9 msgid "the index of the entry in the list created by :meth:`Document.get_toc`." -msgstr "" +msgstr ":meth:`Document.get_toc` 로 생성된 리스트의 항목 인덱스." #: ../../document.rst:1196 a16b6cc4ad6a49e496bc2541ff752cfd msgid "" "the new destination. A dictionary like the last entry of an item in " "`doc.get_toc(False)`. Using this as a template is recommended. When " "given, **all other parameters are ignored** -- except title." -msgstr "" +msgstr "새 대상. `doc.get_toc(False)` 의 항목 마지막 항목과 같은 딕셔너리. 이것을 템플릿으로 사용하는 것이 권장됩니다. 제공되면 **다른 모든 매개변수는 무시됩니다** -- 제목 제외." #: ../../document.rst:1197 8d519eb7f6f84aa586f6894b855ec1b4 msgid "" @@ -3561,71 +3382,71 @@ msgid "" "modified and the remaining parameters are ignored. All other values will " "lead to making a new destination dictionary using the subsequent " "arguments." -msgstr "" +msgstr "링크 종류, :ref:`linkDest Kinds` 참조. :data:`LINK_NONE` 인 경우 나머지 모든 매개변수가 무시되고 TOC 항목이 제거됩니다 -- :meth:`Document.del_toc_item` 과 동일. None인 경우 제목만 수정되고 나머지 매개변수는 무시됩니다. 다른 모든 값은 후속 인수를 사용하여 새 대상 딕셔너리를 만듭니다." #: ../../document.rst:1198 23d121f44ba448deb820d78571787db2 msgid "" "the 1-based page number, i.e. a value 1 <= pno <= doc.page_count. " "Required for LINK_GOTO." -msgstr "" +msgstr "1 기반 페이지 번호, 즉 값 1 <= pno <= doc.page_count. LINK_GOTO에 필요합니다." #: ../../document.rst:1199 32c7c87f9e8e403ab8146f49e7a37529 msgid "the URL text. Required for LINK_URI." -msgstr "" +msgstr "URL 텍스트. LINK_URI에 필요합니다." #: ../../document.rst:1200 43fcbce5ce9847278bc2628a403f4e40 msgid "the desired new title. None if no change." -msgstr "" +msgstr "원하는 새 제목. 변경 없으면 None." #: ../../document.rst:1201 6840fbdc207c43779b48e2f8df7435b6 msgid "" "(optional) points to a coordinate on the target page. Relevant for " "LINK_GOTO. If omitted, a point near the page's top is chosen." -msgstr "" +msgstr "(선택적) 대상 페이지의 좌표를 가리킵니다. LINK_GOTO와 관련이 있습니다. 생략하면 페이지 상단 근처의 점이 선택됩니다." #: ../../document.rst:1202 7c940e27b57c48529e5d3e8ff0325a69 msgid "required for LINK_GOTOR and LINK_LAUNCH." -msgstr "" +msgstr "LINK_GOTOR 및 LINK_LAUNCH에 필요합니다." #: ../../document.rst:1203 132587a96eb44d79895a5275d7a58ec9 msgid "use this zoom factor when showing the target page." -msgstr "" +msgstr "대상 페이지를 표시할 때 이 확대/축소 비율을 사용합니다." #: ../../document.rst:1205 51f0afa8fe36446da6457ee40177e6ac msgid "**Example use:** Change the TOC of the SWIG manual to achieve this:" -msgstr "" +msgstr "**사용 예:** SWIG 매뉴얼의 TOC를 변경하여 다음을 달성합니다:" #: ../../document.rst:1207 89691e2e24d042b7afaa252f2404e728 msgid "" "Collapse everything below top level and show the chapter on Python " "support in red, bold and italic::" -msgstr "" +msgstr "최상위 레벨 아래의 모든 항목을 접고 Python 지원 장을 빨간색, 굵게, 기울임꼴로 표시합니다::" #: ../../document.rst:1224 cb071d795eef4051859facdf9c2c7f83 msgid "" "In the previous example, we have changed only 42 of the 1240 TOC items of" " the file." -msgstr "" +msgstr "이전 예제에서 파일의 1240개 TOC 항목 중 42개만 변경했습니다." #: ../../document.rst:1228 4b6c6cb7b0cd41fe85e5ecb9dfbff8ec msgid "" "PDF only: Convert annotations and / or widgets to become permanent parts " "of the pages. The PDF **will be changed** by this method. If `widgets` is" " `True`, the document will also no longer be a \"Form PDF\"." -msgstr "" +msgstr "PDF 전용: 주석 및/또는 위젯을 페이지의 영구 부분으로 변환합니다. 이 메서드로 PDF가 **변경됩니다**. `widgets` 가 `True` 인 경우 문서는 더 이상 \"Form PDF\"가 아닙니다." #: ../../document.rst:1230 b1618c1259c44d298694a1fdd071bea7 msgid "" "All pages will look the same, but will no longer have annotations, " "respectively fields. The visible parts will be converted to standard " "text, vector graphics or images as required." -msgstr "" +msgstr "모든 페이지는 동일하게 보이지만 더 이상 주석 또는 필드를 갖지 않습니다. 표시되는 부분은 필요에 따라 표준 텍스트, 벡터 그래픽 또는 이미지로 변환됩니다." #: ../../document.rst:1232 4e629c4362f5458dacd2bb2f00dc9a42 msgid "" "The method may thus be a viable **alternative for PDF-to-PDF " "conversions** using :meth:`Document.convert_to_pdf`." -msgstr "" +msgstr "따라서 이 메서드는 :meth:`Document.convert_to_pdf` 를 사용한 **PDF-to-PDF 변환의 대안** 이 될 수 있습니다." #: ../../document.rst:1234 eac5b3e2fdae4934a3324c3826cb5be0 msgid "" @@ -3635,120 +3456,120 @@ msgid "" "widgets with this method, all this underlying information (attached " "files, comments, associated PopUp annotations, etc.) will be lost and be " "removed on next garbage collection." -msgstr "" +msgstr "주석은 복잡한 객체이며 시각적 모양 \"아래\"에 더 많은 데이터가 포함될 수 있습니다. 예는 \"Text\" 및 \"FileAttachment\" 주석입니다. 이 메서드로 주석/위젯을 \"구워 넣을\" 때 모든 기본 정보(첨부 파일, 주석, 관련 PopUp 주석 등)가 손실되고 다음 가비지 수집 시 제거됩니다." #: ../../document.rst:1236 8a23bab53bf14c8aa574e2e600474bcd msgid "" "Use this feature for instance for :meth:`Page.show_pdf_page` (which " "supports neither annotations nor widgets) when the source pages should " "look exactly the same in the target." -msgstr "" +msgstr "소스 페이지가 대상에서 정확히 동일하게 보여야 할 때 예를 들어 :meth:`Page.show_pdf_page` (주석도 위젯도 지원하지 않음)에 이 기능을 사용하세요." #: ../../document.rst:1239 a39cbfa8407c4df6af1eb80d30cb91ff msgid "convert annotations." -msgstr "" +msgstr "주석을 변환합니다." #: ../../document.rst:1240 45f21baaa61b4e06b77104c6c6735089 msgid "" "convert fields / widgets. After execution, the document will no longer be" " a \"Form PDF\"." -msgstr "" +msgstr "필드/위젯을 변환합니다. 실행 후 문서는 더 이상 \"Form PDF\"가 아닙니다." #: ../../document.rst:1245 6cddb53c70e64e57b442090c1f2207d2 msgid "New in v1.16.0" -msgstr "" +msgstr "v1.16.0에서 새로 추가됨" #: ../../document.rst:1247 fa1fdbe516594d0d98a0d538a5555317 msgid "" "Check whether the document can be saved incrementally. Use it to choose " "the right option without encountering exceptions." -msgstr "" +msgstr "문서를 증분 저장할 수 있는지 확인합니다. 예외 없이 올바른 옵션을 선택하는 데 사용하세요." #: ../../document.rst:1251 34130af2a2be4418bd86e36c3ebe8d5a msgid "New in v1.16.14" -msgstr "" +msgstr "v1.16.14에서 새로 추가됨" #: ../../document.rst:1253 d9e7b0b6be0e4bb98d2275cf4c18136d msgid "" "PDF only: Remove potentially sensitive data from the PDF. This function " "is inspired by the similar \"Sanitize\" function in Adobe Acrobat " "products. The process is configurable by a number of options." -msgstr "" +msgstr "PDF 전용: PDF에서 잠재적으로 민감한 데이터를 제거합니다. 이 함수는 Adobe Acrobat 제품의 유사한 \"Sanitize\" 함수에서 영감을 받았습니다. 프로세스는 여러 옵션으로 구성할 수 있습니다." #: ../../document.rst:1255 122850b369374792b6f0ff12b94fc87b msgid "Search for 'FileAttachment' annotations and remove the file content." -msgstr "" +msgstr "'FileAttachment' 주석을 검색하고 파일 콘텐츠를 제거합니다." #: ../../document.rst:1256 e8f4d3ec34634deeb615c44f546d61d3 msgid "" "Remove any comments from page painting sources. If this option is set to " "``False``, then this is also done for *hidden_text* and *redactions*." -msgstr "" +msgstr "페이지 그리기 소스에서 모든 주석을 제거합니다. 이 옵션이 ``False`` 로 설정되면 *hidden_text* 및 *redactions* 에 대해서도 수행됩니다." #: ../../document.rst:1257 6919e0d4f13c46b1ade6ed30abaf7ef7 msgid "Remove embedded files." -msgstr "" +msgstr "임베디드 파일을 제거합니다." #: ../../document.rst:1258 7e5564f6654a4449bb1bad2f78316f86 msgid "Remove OCRed text and invisible text [#f7]_." -msgstr "" +msgstr "OCR된 텍스트와 보이지 않는 텍스트를 제거합니다 [#f7]_." #: ../../document.rst:1259 fd5111edbec040ae8e77d30b21c503a4 msgid "Remove JavaScript sources." -msgstr "" +msgstr "JavaScript 소스를 제거합니다." #: ../../document.rst:1260 7054ef539ad641c2bf57e166ebbd4952 msgid "Remove PDF standard metadata." -msgstr "" +msgstr "PDF 표준 메타데이터를 제거합니다." #: ../../document.rst:1261 8f65baf5ab154d0b992eefec509ce93e msgid "Apply redaction annotations." -msgstr "" +msgstr "수정 주석을 적용합니다." #: ../../document.rst:1262 f7f0f74a02e9491988b1dc2a0587aaae msgid "" "how to handle images if applying redactions. One of 0 (ignore), 1 (blank " "out overlaps) or 2 (remove)." -msgstr "" +msgstr "수정을 적용할 때 이미지를 처리하는 방법. 0(무시), 1(겹침을 비움) 또는 2(제거) 중 하나." #: ../../document.rst:1263 a65be763835e4d588b701873d968784e msgid "Remove all links." -msgstr "" +msgstr "모든 링크를 제거합니다." #: ../../document.rst:1264 9931675e2d0040f7a193eb79f2ee2884 msgid "Reset all form fields to their defaults." -msgstr "" +msgstr "모든 양식 필드를 기본값으로 재설정합니다." #: ../../document.rst:1265 5f0d45da4d9f4c71b72ef46e91b342fd msgid "Remove all responses from all annotations." -msgstr "" +msgstr "모든 주석에서 모든 응답을 제거합니다." #: ../../document.rst:1266 3253836eaaec4b2ca87df3b3b95f015a msgid "Remove thumbnail images from pages." -msgstr "" +msgstr "페이지에서 썸네일 이미지를 제거합니다." #: ../../document.rst:1267 73179141037a4f01b4e064b767ebb9a8 msgid "Remove XML metadata." -msgstr "" +msgstr "XML 메타데이터를 제거합니다." #: ../../document.rst:1272 ../../document.rst:1349 #: 46784658632a419388980eb13c1041a1 da6e920ba12d438988b9655f9fac67c5 msgid "Changed in v1.18.7" -msgstr "" +msgstr "v1.18.7에서 변경됨" #: ../../document.rst:1273 ../../document.rst:1350 #: 12262e65b5664f109f47051864977083 56c375b6fe6a4791bf227b919ad7e097 msgid "Changed in v1.19.0" -msgstr "" +msgstr "v1.19.0에서 변경됨" #: ../../document.rst:1274 ../../document.rst:1351 #: 5260dc902fd9499b8410a0aaa18efdd9 b9acb7ade9fc4b05939e79ad1d0d7a94 msgid "Changed in v1.24.1" -msgstr "" +msgstr "v1.24.1에서 변경됨" #: ../../document.rst:1276 bc516f2e012c4878bd37006c7e9e88b0 msgid "PDF only: Saves the document in its **current state**." -msgstr "" +msgstr "PDF 전용: 문서를 **현재 상태** 로 저장합니다." #: ../../document.rst:1278 ce7de6ce58a34138ace194aa363ea3c0 msgid "" @@ -3756,7 +3577,7 @@ msgid "" "must have been created before via `open(...)` or `io.BytesIO()`. Choosing" " `io.BytesIO()` is similar to :meth:`Document.tobytes` below, which " "equals the `getvalue()` output of an internally created `io.BytesIO()`." -msgstr "" +msgstr "저장할 파일 경로, `pathlib.Path` 또는 파일 객체. 파일 객체는 `open(...)` 또는 `io.BytesIO()` 를 통해 미리 생성되어야 합니다. `io.BytesIO()` 를 선택하는 것은 아래 :meth:`Document.tobytes` 와 유사하며, 내부적으로 생성된 `io.BytesIO()` 의 `getvalue()` 출력과 같습니다." #: ../../document.rst:1280 aa801ed2c60e4edc9a6b9a636ce2c7ce msgid "" @@ -3765,54 +3586,54 @@ msgid "" "compact the :data:`xref` table. * 3 = in addition to 2, merge duplicate " "objects. * 4 = in addition to 3, check :data:`stream` objects for " "duplication. This may be slow because such data are typically large." -msgstr "" +msgstr "가비지 수집을 수행합니다. 양수 값은 \"incremental\"을 제외합니다. * 0 = 없음 * 1 = 사용되지 않는(참조되지 않은) 객체를 제거합니다. * 2 = 1에 추가하여 :data:`xref` 테이블을 압축합니다. * 3 = 2에 추가하여 중복 객체를 병합합니다. * 4 = 3에 추가하여 :data:`stream` 객체의 중복을 확인합니다. 이러한 데이터는 일반적으로 크기 때문에 느릴 수 있습니다." #: ../../document.rst:1280 98a9fdc676634ec3b02acc9b22deea8a msgid "Do garbage collection. Positive values exclude \"incremental\"." -msgstr "" +msgstr "가비지 수집을 수행합니다. 양수 값은 \"incremental\"을 제외합니다." #: ../../document.rst:1282 ../../document.rst:1300 #: 01264ad0b1f348908fb979dacacd82dd a59c0bd122c043e99f85c56dbb619e23 msgid "0 = none" -msgstr "" +msgstr "0 = 없음" #: ../../document.rst:1283 c584c994c62c47b6bb2d9c9eec495a25 msgid "1 = remove unused (unreferenced) objects." -msgstr "" +msgstr "1 = 사용되지 않는(참조되지 않은) 객체를 제거합니다." #: ../../document.rst:1284 90892bbc3ba948e49451a75bd88e5ec1 msgid "2 = in addition to 1, compact the :data:`xref` table." -msgstr "" +msgstr "2 = 1에 추가하여 :data:`xref` 테이블을 압축합니다." #: ../../document.rst:1285 441ba00255e545c58a3c0873eb9b5b75 msgid "3 = in addition to 2, merge duplicate objects." -msgstr "" +msgstr "3 = 2에 추가하여 중복 객체를 병합합니다." #: ../../document.rst:1286 da68f0ef05be4518b693fe96dcf63799 msgid "" "4 = in addition to 3, check :data:`stream` objects for duplication. This " "may be slow because such data are typically large." -msgstr "" +msgstr "4 = 3에 추가하여 :data:`stream` 객체의 중복을 확인합니다. 이러한 데이터는 일반적으로 크기 때문에 느릴 수 있습니다." #: ../../document.rst:1288 87ab7b3d94364600a46fd3583338cf33 msgid "" "Clean and sanitize content streams [#f1]_. Corresponds to \"mutool clean " "-sc\"." -msgstr "" +msgstr "콘텐츠 스트림을 정리하고 정화합니다 [#f1]_. \"mutool clean -sc\" 에 해당합니다." #: ../../document.rst:1290 307368cf4bae4dd3a31a1c6dba695999 msgid "Deflate (compress) uncompressed streams." -msgstr "" +msgstr "압축되지 않은 스트림을 Deflate(압축)합니다." #: ../../document.rst:1291 074aa683f32949a09fd3b5218932b9d2 msgid "*(new in v1.18.3)* Deflate (compress) uncompressed image streams [#f4]_." -msgstr "" +msgstr "*(v1.18.3에서 새로 추가됨)* 압축되지 않은 이미지 스트림을 Deflate(압축)합니다 [#f4]_." #: ../../document.rst:1292 f47d59f8289a4a0b8f6227e131941c9e msgid "" "*(new in v1.18.3)* Deflate (compress) uncompressed fontfile streams " "[#f4]_." -msgstr "" +msgstr "*(v1.18.3에서 새로 추가됨)* 압축되지 않은 폰트 파일 스트림을 Deflate(압축)합니다 [#f4]_." #: ../../document.rst:1294 98dd2b4baaf142159a443d2deb715b9b msgid "" @@ -3822,82 +3643,82 @@ msgid "" "repaired and also in some other cases. To be sure, check " ":meth:`Document.can_save_incrementally`. If this is false, saving to a " "new file is required." -msgstr "" +msgstr "PDF에 변경 사항만 저장합니다. \"garbage\" 및 \"linear\"를 제외합니다. *outfile* 이 문자열이거나 `pathlib.Path` 이고 :attr:`Document.name` 과 같을 때만 사용할 수 있습니다. 복호화되거나 복구된 파일 및 일부 다른 경우에는 사용할 수 없습니다. 확인하려면 :meth:`Document.can_save_incrementally` 를 확인하세요. 이것이 false이면 새 파일로 저장해야 합니다." #: ../../document.rst:1296 b7d42cf66e264b78b3aaa3cee4468fa6 msgid "convert binary data to ASCII." -msgstr "" +msgstr "바이너리 데이터를 ASCII로 변환합니다." #: ../../document.rst:1298 005ca024523d404887a1514b77c99675 msgid "" "Decompress objects. Generates versions that can be better read by some " "other programs and will lead to larger files. * 0 = none * 1 = images * " "2 = fonts * 255 = all" -msgstr "" +msgstr "객체를 압축 해제합니다. 일부 다른 프로그램에서 더 잘 읽을 수 있는 버전을 생성하며 더 큰 파일로 이어집니다. * 0 = 없음 * 1 = 이미지 * 2 = 폰트 * 255 = 모두" #: ../../document.rst:1298 2bb773df27374e8880b5a9762601b294 msgid "" "Decompress objects. Generates versions that can be better read by some " "other programs and will lead to larger files." -msgstr "" +msgstr "객체를 압축 해제합니다. 일부 다른 프로그램에서 더 잘 읽을 수 있는 버전을 생성하며 더 큰 파일로 이어집니다." #: ../../document.rst:1301 4c34dc68468f45819bd8a5140a26fc7d msgid "1 = images" -msgstr "" +msgstr "1 = 이미지" #: ../../document.rst:1302 9b54dc5c6dee40a8ac7fda271235a869 msgid "2 = fonts" -msgstr "" +msgstr "2 = 폰트" #: ../../document.rst:1303 7559171a73a04f818f09a84c49f541b8 msgid "255 = all" -msgstr "" +msgstr "255 = 모두" #: ../../document.rst:1305 4b275a55b310440cbc6bed0da1fcc137 msgid "" "Save a linearised version of the document. This option creates a file " "format for improved performance for Internet access. Excludes " "\"incremental\" and \"use_objstms\"." -msgstr "" +msgstr "문서의 선형화된 버전을 저장합니다. 이 옵션은 인터넷 액세스를 위한 향상된 성능을 위한 파일 형식을 생성합니다. \"incremental\" 및 \"use_objstms\"를 제외합니다." #: ../../document.rst:1307 8d34e1be34a6456583de08a964b06ffe msgid "" "Prettify the document source for better readability. PDF objects will be " "reformatted to look like the default output of " ":meth:`Document.xref_object`." -msgstr "" +msgstr "가독성을 높이기 위해 문서 소스를 예쁘게 만듭니다. PDF 객체는 :meth:`Document.xref_object` 의 기본 출력처럼 보이도록 재포맷됩니다." #: ../../document.rst:1309 6c8fa6521582483489eafa899e3a7b5e msgid "" "Suppress the update of the file's `/ID` field. If the file happens to " "have no such field at all, also suppress creation of a new one. Default " "is `False`, so every save will lead to an updated file identification." -msgstr "" +msgstr "파일의 `/ID` 필드 업데이트를 억제합니다. 파일에 해당 필드가 전혀 없는 경우 새 필드 생성도 억제합니다. 기본값은 `False` 이므로 모든 저장은 업데이트된 파일 식별로 이어집니다." #: ../../document.rst:1311 2abbbdfe20de45a989cb6206cb2a676c msgid "" "*(new in v1.16.0)* Set the desired permission levels. See " ":ref:`PermissionCodes` for possible values. Default is granting all." -msgstr "" +msgstr "*(v1.16.0에서 새로 추가됨)* 원하는 권한 수준을 설정합니다. 가능한 값은 :ref:`PermissionCodes` 를 참조하세요. 기본값은 모든 권한을 부여하는 것입니다." #: ../../document.rst:1313 8026bd5ba1c04716af36a27cfb56c0f3 msgid "" "*(new in v1.16.0)* set the desired encryption method. See " ":ref:`EncryptionMethods` for possible values." -msgstr "" +msgstr "*(v1.16.0에서 새로 추가됨)* 원하는 암호화 방법을 설정합니다. 가능한 값은 :ref:`EncryptionMethods` 를 참조하세요." #: ../../document.rst:1315 973dde478560485086c44526497bacd5 msgid "" "*(new in v1.16.0)* set the document's owner password. *(Changed in " "v1.18.3)* If not provided, the user password is taken if provided. The " "string length must not exceed 40 characters." -msgstr "" +msgstr "*(v1.16.0에서 새로 추가됨)* 문서의 소유자 비밀번호를 설정합니다. *(v1.18.3에서 변경됨)* 제공되지 않으면 사용자 비밀번호가 제공된 경우 사용됩니다. 문자열 길이는 40자를 초과할 수 없습니다." #: ../../document.rst:1317 3c2c2b927a9448bfb0a16d0db2c915e4 msgid "" "*(new in v1.16.0)* set the document's user password. The string length " "must not exceed 40 characters." -msgstr "" +msgstr "*(v1.16.0에서 새로 추가됨)* 문서의 사용자 비밀번호를 설정합니다. 문자열 길이는 40자를 초과할 수 없습니다." #: ../../document.rst:1319 7fee682328a94e6288a75978a7630ce1 msgid "" @@ -3906,18 +3727,18 @@ msgid "" ":data:`stream` data. Depending on the `deflate` parameter value, the " "converted object definitions will be compressed -- which can lead to very" " significant file size reductions." -msgstr "" +msgstr "*(v1.24.0에서 새로 추가됨)* 적격 PDF 객체 정의를 다른 객체의 :data:`stream` 데이터에 저장된 정보로 변환하는 압축 옵션. `deflate` 매개변수 값에 따라 변환된 객체 정의가 압축됩니다 -- 이는 매우 큰 파일 크기 감소로 이어질 수 있습니다." #: ../../document.rst:1321 8ffaa1fceb4f4e34a5b8891e046c1ee3 msgid "" "The method does not check, whether a file of that name already exists, " "will hence not ask for confirmation, and overwrite the file. It is your " "responsibility as a programmer to handle this." -msgstr "" +msgstr "이 메서드는 해당 이름의 파일이 이미 존재하는지 확인하지 않으므로 확인을 요청하지 않고 파일을 덮어씁니다. 프로그래머로서 이를 처리하는 것은 귀하의 책임입니다." #: ../../document.rst:1325 be3ee913b5004b3d9517106841ba688a msgid "**File size reduction**" -msgstr "" +msgstr "**파일 크기 감소**" #: ../../document.rst:1327 1bf790168b284a5d9aaaf7d91cc13bbc msgid "" @@ -3927,7 +3748,7 @@ msgid "" "\"lossless\" file size reduction. There is a convenience version of this " "method with these values set by default, :meth:`Document.ez_save` -- " "please see below." -msgstr "" +msgstr "1. `garbage=3|4, deflate=True, use_objstms=True|1` 와 같은 저장 옵션을 사용하세요. 기본값 `expand=False|0, clean=False|0, incremental=False|0, linear=False|0` 는 건드리지 마세요. 이것은 \"무손실\" 파일 크기 감소입니다. 이러한 값이 기본적으로 설정된 이 메서드의 편의 버전인 :meth:`Document.ez_save` 가 있습니다 -- 아래를 참조하세요." #: ../../document.rst:1330 3d1ee9059bd24a83a6aaae8687200458 msgid "" @@ -3936,156 +3757,11 @@ msgid "" " grayscale versions (c) reduce image resolutions. Find examples in the " "`PyMuPDF Utilities \"replace-image\" folder `_." -msgstr "" +msgstr "\"손실\" 파일 크기 감소는 본질적으로 이미지와 관련하여 무언가를 포기해야 합니다. 예: (a) 모든 이미지 제거 (b) 이미지를 그레이스케일 버전으로 교체 (c) 이미지 해상도 감소. 예제는 `PyMuPDF Utilities \"replace-image\" 폴더 `_ 에서 찾을 수 있습니다." #: ../../document.rst:1334 805878d8902f44539b76f7fba424c58d msgid "New in v1.18.11" -msgstr "" - -#: ../../document.rst:1336 fb2bc3ab13bc4cbdb9cdeedc4a300457 -msgid "" -"PDF only: The same as :meth:`Document.save` but with changed defaults " -"`deflate=True, garbage=3, use_objstms=1`." -msgstr "" - -#: ../../document.rst:1340 4ca43c0eb0764d4d86c7783d00292313 -msgid "" -"PDF only: saves the document incrementally. This is a convenience " -"abbreviation for ``doc.save(doc.name, incremental=True, " -"encryption=PDF_ENCRYPT_KEEP)``." -msgstr "" - -#: ../../document.rst:1344 3722cd78e2724185aa38db282136d51f -msgid "" -"Saving incrementally may be required if the document contains verified " -"signatures which would be invalidated by saving to a new file." -msgstr "" - -#: ../../document.rst:1353 abab584e13af432a87536b0dd1525b25 -msgid "" -"PDF only: Writes the **current content of the document** to a bytes " -"object instead of to a file. Obviously, you should be wary about memory " -"requirements. The meanings of the parameters exactly equal those in " -":meth:`save`. Chapter :ref:`FAQ` contains an example for using this " -"method as a pre-processor to `pdfrw " -"`_." -msgstr "" - -#: ../../document.rst:1355 0d08d4531d0547afa8dd2711eb5fb49a -msgid "*(Changed in v1.16.0)* for extended encryption support." -msgstr "" - -#: ../../document.rst:1358 6de0cf28802e42058ca66973d5ee0b8c -msgid "a bytes object containing the complete document." -msgstr "" - -#: ../../document.rst:1362 0274353b276b45c697447eefc6c5af10 -msgid "" -"Search for \"text\" on page number \"pno\". Works exactly like the " -"corresponding :meth:`Page.search_for`. Any integer `-∞ < pno < " -"page_count` is acceptable." -msgstr "" - -#: ../../document.rst:1380 8f33a8224c6b4cd698ee597a13d325b1 -msgid "" -"PDF only: Copy the page range **[from_page, to_page]** (including both) " -"of PDF document *docsrc* into the current one. Inserts will start with " -"page number *start_at*. Value -1 indicates default values. All pages thus" -" copied will be rotated as specified. Links, annotations and widgets can " -"be excluded in the target, see below. All page numbers are 0-based." -msgstr "" - -#: ../../document.rst:1382 5c1428d40caa43a5a10f4b77f20b3e69 -msgid "" -"An opened PDF *Document* which must not be the current document. However," -" it may refer to the same underlying file." -msgstr "" - -#: ../../document.rst:1385 07b6f53e82724a5ab67dd0b79067fa1e -msgid "First page number in *docsrc*. Default is zero." -msgstr "" - -#: ../../document.rst:1387 fea37107f5404d54996345114e37441b -msgid "Last page number in *docsrc* to copy. Defaults to last page." -msgstr "" - -#: ../../document.rst:1389 524d0fb0b9814e21962ad50b5f471743 -msgid "" -"First copied page, will become page number *start_at* in the target. " -"Default -1 appends the page range to the end. If zero, the page range " -"will be inserted before current first page." -msgstr "" - -#: ../../document.rst:1391 4c91282a041f4252be3ddf0b31888ef6 -msgid "" -"All copied pages will be rotated by the provided value (degrees, integer " -"multiple of 90)." -msgstr "" - -#: ../../document.rst:1393 d336910ac6904a34ad264c74f9a12eb0 -msgid "" -"Choose whether (internal and external) links should be included in the " -"copy. Default is `True`. *Named* links (:data:`LINK_NAMED`) and internal " -"links to outside the copied page range are **always excluded**." -msgstr "" - -#: ../../document.rst:1395 a02aff5f97f748429af6f525e52152d3 -msgid "choose whether annotations should be included in the copy." -msgstr "" - -#: ../../document.rst:1397 b94bf24da9974674ace2e3acc4991939 -msgid "" -"choose whether annotations should be included in the copy. If `True` and " -"at least one of the source pages contains form fields, the target PDF " -"will be turned into a Form PDF (if not already being one)." -msgstr "" - -#: ../../document.rst:1399 291ec7b0d4b64883aba67c7050c566bf -msgid "" -"*(New in version 1.25.5)* Choose how to handle duplicate root field names" -" in the source pages. This parameter is ignored if `widgets=False`. " -"Default is ``False`` which will add unifying strings to the name of those" -" source root fields which have a duplicate in the target. For instance, " -"if \"name\" already occurs in the target, the source widget's name will " -"be changed to \"name [text]\" with a suitably chosen string \"text\". If" -" ``True``, root fields with duplicate names in source and target will be " -"converted to so-called \"Kids\" of a \"Parent\" object (which lists all " -"kid widgets in a PDF array). This will effectively turn those kids into " -"instances of the \"same\" widget: if e.g. one of the kids is changed, " -"then all its instances will automatically inherit this change -- no " -"matter on which page they happen to be displayed." -msgstr "" - -#: ../../document.rst:1399 78659c3b81a3457a9ea0a009a43d5632 -msgid "" -"*(New in version 1.25.5)* Choose how to handle duplicate root field names" -" in the source pages. This parameter is ignored if `widgets=False`." -msgstr "" - -#: ../../document.rst:1401 690ea9568fba4c748332acfea9bf268d -msgid "" -"Default is ``False`` which will add unifying strings to the name of those" -" source root fields which have a duplicate in the target. For instance, " -"if \"name\" already occurs in the target, the source widget's name will " -"be changed to \"name [text]\" with a suitably chosen string \"text\"." -msgstr "" - -#: ../../document.rst:1403 207b76f69b4b43b8abf32aaed907a586 -msgid "" -"If ``True``, root fields with duplicate names in source and target will " -"be converted to so-called \"Kids\" of a \"Parent\" object (which lists " -"all kid widgets in a PDF array). This will effectively turn those kids " -"into instances of the \"same\" widget: if e.g. one of the kids is " -"changed, then all its instances will automatically inherit this change --" -" no matter on which page they happen to be displayed." -msgstr "" - -#: ../../document.rst:1405 8d9fefec8ad44d23b3c63e2ae6a7a00f -msgid "" -"*(new in v1.17.7)* specify an interval size greater zero to see progress " -"messages on `sys.stdout`. After each interval, a message like `Inserted " -"30 of 47 pages.` will be printed." -msgstr "" +msgstr "v1.18.11에서 새로 추가됨" #: ../../document.rst:1407 d77922d1b37a405687f51453c41a5a42 msgid "" @@ -4093,7 +3769,7 @@ msgid "" "should be **dropped** after this method, default ``True``. Set it to 0 " "except for the last one of multiple insertions from the same source PDF. " "This saves target file size and speeds up execution considerably." -msgstr "" +msgstr "*(v1.18.0에서 새로 추가됨)* 이미 복사된 객체 목록을 이 메서드 후에 **삭제** 할지 제어합니다. 기본값 ``True``. 동일한 소스 PDF에서 여러 삽입의 마지막 항목을 제외하고는 0으로 설정하세요. 이것은 대상 파일 크기를 절약하고 실행 속도를 크게 향상시킵니다." #: ../../document.rst:1411 56b4354a86094489a6bf9bde208dc994 msgid "" @@ -4101,13 +3777,13 @@ msgid "" "documents is therefore mostly ignored. Examples include Optional Content," " Embedded Files, `StructureElem`, table of contents, page labels, " "metadata, named destinations (and other named entries) and some more." -msgstr "" +msgstr "이것은 페이지 기반 메서드입니다. 따라서 소스 문서의 문서 수준 정보는 대부분 무시됩니다. 예로는 Optional Content, Embedded Files, `StructureElem`, 목차, 페이지 레이블, 메타데이터, 명명된 대상(및 기타 명명된 항목) 등이 있습니다." #: ../../document.rst:1413 5a07fe3f9eea4d2fae962abdd3b1a7ff msgid "" "If `from_page > to_page`, pages will be **copied in reverse order**. If " "`0 <= from_page == to_page`, then one page will be copied." -msgstr "" +msgstr "`from_page > to_page` 인 경우 페이지는 **역순으로 복사됩니다**. `0 <= from_page == to_page` 인 경우 한 페이지가 복사됩니다." #: ../../document.rst:1415 dc1395aabeda4fbcabbf2f13c6749c77 msgid "" @@ -4117,11 +3793,11 @@ msgid "" "/PyMuPDF-Utilities/blob/master/examples/join-documents/join.py>`_ in the " "*examples* directory: it can join PDF documents and at the same time " "piece together respective parts of the tables of contents." -msgstr "" +msgstr "`docsrc` TOC 항목은 **복사되지 않습니다**. 그러나 결과 문서에 대한 목차를 복구하는 것은 쉽습니다. 아래 예제와 *examples* 디렉토리의 프로그램 `join.py `_ 을 참조하세요: PDF 문서를 결합하고 동시에 목차의 해당 부분을 함께 구성할 수 있습니다." #: ../../document.rst:1432 45174efe8b574e39bd0fee7fda1c588a msgid "New in v1.22.0" -msgstr "" +msgstr "v1.22.0에서 새로 추가됨" #: ../../document.rst:1434 cd44330e994a49b99c61e25595eb7c0b msgid "" @@ -4130,31 +3806,31 @@ msgid "" ":meth:`Document.insert_pdf`. Parameters are the same as for that method. " "Among other things, this features an easy way to append images as full " "pages to an output PDF." -msgstr "" +msgstr "PDF 전용: 임의의 지원되는 문서를 현재 PDF에 추가합니다. \"infile\" 을 문서로 열고 PDF로 변환한 다음 :meth:`Document.insert_pdf` 를 호출합니다. 매개변수는 해당 메서드와 동일합니다. 특히 이것은 이미지를 전체 페이지로 출력 PDF에 추가하는 쉬운 방법을 제공합니다." #: ../../document.rst:1436 e33a6fdc9cda41afbf2acefddf2174a3 msgid "" "the input document to insert. May be a filename specification as is valid" " for creating a :ref:`Document` or a :ref:`Pixmap`." -msgstr "" +msgstr "삽입할 입력 문서. :ref:`Document` 또는 :ref:`Pixmap` 생성에 유효한 파일명 지정일 수 있습니다." #: ../../document.rst:1445 43f27667e5fa455e8b6be14bbed94320 msgid "PDF only: Insert an empty page." -msgstr "" +msgstr "PDF 전용: 빈 페이지를 삽입합니다." #: ../../document.rst:1447 760c94fa936d413985a6348d9a97a2fa msgid "" "page number index (zero-indexed) at which to insert page. Special values " "-1 and *doc.page_count* insert **after** the last page." -msgstr "" +msgstr "페이지를 삽입할 페이지 번호 인덱스(0 기반). 특수 값 -1 및 *doc.page_count* 는 마지막 페이지 **뒤에** 삽입합니다." #: ../../document.rst:1449 9c2a0e62a39a43d19cf8bc37207291e7 msgid "page width." -msgstr "" +msgstr "페이지 너비." #: ../../document.rst:1450 4a2e0f95cd75496fb7ca0aa473e0434a msgid "page height." -msgstr "" +msgstr "페이지 높이." #: ../../document.rst:1453 0bd2d3396b664c20a387f310baf3c618 msgid "" @@ -4162,111 +3838,111 @@ msgid "" "the inserted one will have changed after method execution. For the same " "reason, **all existing page objects will be invalidated.** Using them " "will lead to exceptions." -msgstr "" +msgstr "생성된 페이지 객체. 삽입된 페이지 이후의 페이지 번호는 메서드 실행 후 변경됩니다. 같은 이유로 **모든 기존 페이지 객체가 무효화됩니다.** 사용하면 예외가 발생합니다." #: ../../document.rst:1465 e582e4a0e898429a8087c9237aea9caf msgid "" "PDF only: Insert a new page and insert some text. Convenience function " "which combines :meth:`Document.new_page` and (parts of) " ":meth:`Page.insert_text`." -msgstr "" +msgstr "PDF 전용: 새 페이지를 삽입하고 일부 텍스트를 삽입합니다. :meth:`Document.new_page` 와 :meth:`Page.insert_text` (일부)를 결합한 편의 함수입니다." #: ../../document.rst:1467 05fc5d62cf1442ef87870b03bf4656e6 msgid "" "page number index (zero-indexed) at which to insert page. Special values " "-1 and `doc.page_count` insert **after** the last page. Changed in " "v1.14.12 This is now a positional parameter" -msgstr "" +msgstr "페이지를 삽입할 페이지 번호 인덱스(0 기반). 특수 값 -1 및 `doc.page_count` 는 마지막 페이지 **뒤에** 삽입합니다. v1.14.12에서 변경됨 이것은 이제 위치 매개변수입니다" #: ../../document.rst:1467 93c42f35dfc74d969baf39f16e854b2c msgid "" "page number index (zero-indexed) at which to insert page. Special values " "-1 and `doc.page_count` insert **after** the last page." -msgstr "" +msgstr "페이지를 삽입할 페이지 번호 인덱스(0 기반). 특수 값 -1 및 `doc.page_count` 는 마지막 페이지 **뒤에** 삽입합니다." #: ../../document.rst:1470 b97cd8599f7b49db97a3779b3b40e27a msgid "Changed in v1.14.12" -msgstr "" +msgstr "v1.14.12에서 변경됨" #: ../../document.rst:1470 f6d15d624bcd4485930085e83cc129ac msgid "This is now a positional parameter" -msgstr "" +msgstr "이것은 이제 위치 매개변수입니다" #: ../../document.rst:1472 cf6bb035b54e4fcdad814450ae34dcef msgid "For the other parameters, please consult the aforementioned methods." -msgstr "" +msgstr "다른 매개변수는 위에서 언급한 메서드를 참조하세요." #: ../../document.rst:1475 62dbaf5e5aea49478a003ee16008856d msgid "" "the result of :meth:`Page.insert_text` (number of successfully inserted " "lines)." -msgstr "" +msgstr ":meth:`Page.insert_text` 의 결과(성공적으로 삽입된 줄 수)." #: ../../document.rst:1479 587c560e526a416f9adba46d934431cd msgid "" "PDF only: Delete a page given by its 0-based number in `-∞ < pno < " "page_count`." -msgstr "" +msgstr "PDF 전용: `-∞ < pno < page_count` 범위의 0 기반 번호로 지정된 페이지를 삭제합니다." #: ../../document.rst:1481 ../../document.rst:1488 #: 2de6c5ed33694928b05b3af60acc735b 5e0e19b1164a4922a5c4de39dadf8d94 msgid "Changed in v1.18.14: support Python's `del` statement." -msgstr "" +msgstr "v1.18.14에서 변경됨: Python의 `del` 문 지원." #: ../../document.rst:1483 b53db2a971f54e8fa8fe54fc059f0ece msgid "" "the page to be deleted. Negative number count backwards from the end of " "the document (like with indices). Default is the last page." -msgstr "" +msgstr "삭제할 페이지. 음수는 문서 끝에서 역순으로 계산합니다(인덱스와 같이). 기본값은 마지막 페이지입니다." #: ../../document.rst:1487 f663c7417d0c4717918bc0edbdaa19f6 msgid "Changed in v1.18.13: more flexibility specifying pages to delete." -msgstr "" +msgstr "v1.18.13에서 변경됨: 삭제할 페이지 지정의 유연성 향상." #: ../../document.rst:1490 5a7de5dc80b84affad561bc4fedaf80b msgid "PDF only: Delete multiple pages given as 0-based numbers." -msgstr "" +msgstr "PDF 전용: 0 기반 번호로 지정된 여러 페이지를 삭제합니다." #: ../../document.rst:1494 875c5dde7ff14ca9aa7522c71259f94c msgid "" "**Format 1:** Use keywords. Represents the old format. A contiguous range" " of pages is removed." -msgstr "" +msgstr "**형식 1:** 키워드를 사용합니다. 이전 형식을 나타냅니다. 연속된 페이지 범위가 제거됩니다." #: ../../document.rst:1493 6b7772a6ff3f4a2db6d2dcb99fded671 msgid "\"from_page\": first page to delete. Zero if omitted." -msgstr "" +msgstr "\"from_page\": 삭제할 첫 페이지. 생략하면 0입니다." #: ../../document.rst:1494 0e5c6f821d7044d5ac7c0e6f5ed7f64b msgid "" "\"to_page\": last page to delete. Last page in document if omitted. Must " "not be less then \"from_page\"." -msgstr "" +msgstr "\"to_page\": 삭제할 마지막 페이지. 생략하면 문서의 마지막 페이지입니다. \"from_page\" 보다 작아서는 안 됩니다." #: ../../document.rst:1496 e8904441ed83424eb87fa87a6a684b2a msgid "" "**Format 2:** Two page numbers as positional parameters. Handled like " "Format 1." -msgstr "" +msgstr "**형식 2:** 위치 매개변수로 두 페이지 번호. 형식 1과 같이 처리됩니다." #: ../../document.rst:1498 163ec2bcd7934971b9000245d8e3d209 msgid "" "**Format 3:** One positional integer parameter. Equivalent to " ":meth:`Page.delete_page`." -msgstr "" +msgstr "**형식 3:** 하나의 위치 정수 매개변수. :meth:`Page.delete_page` 와 동일합니다." #: ../../document.rst:1500 ac9b0d2bb525429d8ac5afe495854517 msgid "" "**Format 4:** One positional parameter of type *list*, *tuple* or " "*range()* of page numbers. The items of this sequence may be in any order" " and may contain duplicates." -msgstr "" +msgstr "**형식 4:** *list*, *tuple* 또는 *range()* 타입의 페이지 번호 하나의 위치 매개변수. 이 시퀀스의 항목은 어떤 순서든 될 수 있으며 중복을 포함할 수 있습니다." #: ../../document.rst:1502 2e8e4f3f1ff24632b93215697d0a2594 msgid "" "**Format 5:** *(New in v1.18.14)* Using the Python `del` statement and " "index / slice notation is now possible." -msgstr "" +msgstr "**형식 5:** *(v1.18.14에서 새로 추가됨)* Python `del` 문과 인덱스/슬라이스 표기법을 사용할 수 있습니다." #: ../../document.rst:1506 be52d2bac85f42c8a561522fc5dc7694 msgid "" @@ -4276,272 +3952,77 @@ msgid "" "\"Deactivation\" here means, that the bookmark will point to nowhere and " "the title will be shown grayed-out by supporting PDF viewers. The overall" " TOC structure is left intact." -msgstr "" +msgstr "*(v1.14.17에서 변경됨, v1.17.7에서 최적화됨)* 유효한 PDF 구조를 유지하기 위해 이 메서드와 :meth:`delete_page` 는 삭제된 페이지를 가리키는 목차 항목도 비활성화합니다. 여기서 \"비활성화\"는 북마크가 아무 곳도 가리키지 않고 제목이 지원 PDF 뷰어에서 회색으로 표시됨을 의미합니다. 전체 TOC 구조는 그대로 유지됩니다." #: ../../document.rst:1508 2ea9db623ee644ce851f517b21468bbc msgid "" "It will also remove any **links on remaining pages** which point to a " "deleted one. This action may have an extended response time for documents" " with many pages." -msgstr "" +msgstr "삭제된 페이지를 가리키는 **남은 페이지의 모든 링크** 도 제거합니다. 이 작업은 많은 페이지가 있는 문서에서 응답 시간이 길어질 수 있습니다." #: ../../document.rst:1510 9e268616509345318e19407e7f4fce54 msgid "Following examples will all delete pages 500 through 519:" -msgstr "" +msgstr "다음 예제는 모두 페이지 500부터 519까지 삭제합니다:" #: ../../document.rst:1512 8554875e1e58416180c485b06d4698b6 msgid "`doc.delete_pages(500, 519)`" -msgstr "" +msgstr "`doc.delete_pages(500, 519)`" #: ../../document.rst:1513 1c822f9af13441608441afe5bf0640dd msgid "`doc.delete_pages(from_page=500, to_page=519)`" -msgstr "" +msgstr "`doc.delete_pages(from_page=500, to_page=519)`" #: ../../document.rst:1514 e46ee2d732134660b9a9f857991dabce msgid "`doc.delete_pages((500, 501, 502, ... , 519))`" -msgstr "" +msgstr "`doc.delete_pages((500, 501, 502, ... , 519))`" #: ../../document.rst:1515 b30e293c5c9640ba9f5d8f3875607c97 msgid "`doc.delete_pages(range(500, 520))`" -msgstr "" +msgstr "`doc.delete_pages(range(500, 520))`" #: ../../document.rst:1516 1e369b51a48c4110bfb776a7c91dac36 msgid "`del doc[500:520]`" -msgstr "" +msgstr "`del doc[500:520]`" #: ../../document.rst:1517 33382327b14c40309cb885c892db74dc msgid "`del doc[(500, 501, 502, ... , 519)]`" -msgstr "" - -#: ../../document.rst:1518 835883ce222348f1939be4af90e88154 -msgid "`del doc[range(500, 520)]`" -msgstr "" - -#: ../../document.rst:1520 65e4760990f848c7a684989dd067afbd -msgid "" -"For the :ref:`AdobeManual` the above takes about 0.6 seconds, because the" -" remaining 1290 pages must be cleaned from invalid links." -msgstr "" - -#: ../../document.rst:1522 7af3a67223f04f44835189f49959825d -msgid "" -"In general, the performance of this method is dependent on the number of " -"remaining pages -- **not** on the number of deleted pages: in the above " -"example, **deleting all pages except** those 20, will need much less " -"time." -msgstr "" - -#: ../../document.rst:1527 652ee83c146f452098f4379a8c73047a -msgid "PDF only: Copy a page reference within the document." -msgstr "" - -#: ../../document.rst:1529 ac1cce6e9936446eb35a3ffe8ca915d1 -msgid "the page to be copied. Must be in range `0 <= pno < page_count`." -msgstr "" - -#: ../../document.rst:1531 ../../document.rst:1543 -#: c41b90dc8ef640408f1a617a2e0fc519 ca3166610784468cbc085259ba27a3ea -msgid "" -"the page number in front of which to copy. The default inserts **after** " -"the last page." -msgstr "" - -#: ../../document.rst:1533 8468fc8b63444047b7a1fe75547cd1fd -msgid "" -"Only a new **reference** to the page object will be created -- not a new " -"page object, all copied pages will have identical attribute values, " -"including the :attr:`Page.xref`. This implies that any changes to one of " -"these copies will appear on all of them." -msgstr "" - -#: ../../document.rst:1537 d97170af740a4e5fbd5d5be2e8c4c008 -msgid "New in v1.14.17" -msgstr "" - -#: ../../document.rst:1539 e5bfe27961644509afa6eb237a7aaa90 -msgid "PDF only: Make a full copy (duplicate) of a page." -msgstr "" +msgstr "`del doc[(500, 501, 502, ... , 519)]`" -#: ../../document.rst:1541 bb27bf35370f4350896c2af762ffb1bc -msgid "the page to be duplicated. Must be in range `0 <= pno < page_count`." -msgstr "" - -#: ../../document.rst:1547 f703ba87ea974305a4c30425ca1ff9b9 -msgid "" -"In contrast to :meth:`copy_page`, this method creates a new page object " -"(with a new :data:`xref`), which can be changed independently from the " -"original." -msgstr "" - -#: ../../document.rst:1549 07e3b642c6b94e9e8f52daa72f74a907 -msgid "" -"Any Popup and \"IRT\" (\"in response to\") annotations are **not copied**" -" to avoid potentially incorrect situations." -msgstr "" - -#: ../../document.rst:1553 43ec556cbc38492c8049b8372e53daac -msgid "PDF only: Move (copy and then delete original) a page within the document." -msgstr "" - -#: ../../document.rst:1555 b044a8f7a7af40788e9d81537eb619ad -msgid "the page to be moved. Must be in range `0 <= pno < page_count`." -msgstr "" - -#: ../../document.rst:1557 946f21ee475c42878bf3b1dae84f7d69 -msgid "" -"the page number in front of which to insert the moved page. The default " -"moves **after** the last page." -msgstr "" - -#: ../../document.rst:1562 e8d7a9d259534c618a11baa88ffeb3fc -msgid "New in v1.17.4" -msgstr "" - -#: ../../document.rst:1564 8b3171a1d9a142c9a9c030fe8d31c8d2 -msgid "" -"PDF only: Get or set the */NeedAppearances* property of Form PDFs. Quote:" -" *\"(Optional) A flag specifying whether to construct appearance streams " -"and appearance dictionaries for all widget annotations in the document " -"... Default value: false.\"* This may help controlling the behavior of " -"some readers / viewers." -msgstr "" - -#: ../../document.rst:1566 21bdc7002b114b8794f1a0a9c6ee76a5 -msgid "" -"set the property to this value. If omitted or `None`, inquire the current" -" value." -msgstr "" - -#: ../../document.rst:1569 78f9700e38dd443e9f73a91fda3dc450 -msgid "" -"* None: not a Form PDF, or property not defined. * True / False: the " -"value of the property (either just set or existing for inquiries). Has no" -" effect if no Form PDF." -msgstr "" - -#: ../../document.rst:1570 c0025670860c42d5bd1c8f5c34a6dad6 -msgid "None: not a Form PDF, or property not defined." -msgstr "" - -#: ../../document.rst:1571 eb06f30be4434520bda89c558742261d -msgid "" -"True / False: the value of the property (either just set or existing for " -"inquiries). Has no effect if no Form PDF." -msgstr "" - -#: ../../document.rst:1577 75e79125f8c7472cb0a19ed8e1458e1a -msgid "" -"PDF only: Return whether the document contains signature fields. This is " -"an optional PDF property: if not present (return value -1), no " -"conclusions can be drawn -- the PDF creator may just not have bothered " -"using it." -msgstr "" - -#: ../../document.rst:1580 9a14234501f54034bb1bf739d64a15fa -msgid "" -"* -1: not a Form PDF / no signature fields recorded / no *SigFlags* " -"found. * 1: at least one signature field exists. * 3: contains " -"signatures that may be invalidated if the file is saved (written) in a " -"way that alters its previous contents, as opposed to an incremental " -"update." -msgstr "" - -#: ../../document.rst:1581 9bad9283ef584aa2b078c83f7d777b63 -msgid "-1: not a Form PDF / no signature fields recorded / no *SigFlags* found." -msgstr "" - -#: ../../document.rst:1582 deabde5552354d23bc0241dce237b354 -msgid "1: at least one signature field exists." -msgstr "" - -#: ../../document.rst:1583 af34d2d341994de4b3f79434d0d6027a -msgid "" -"3: contains signatures that may be invalidated if the file is saved " -"(written) in a way that alters its previous contents, as opposed to an " -"incremental update." -msgstr "" - -#: ../../document.rst:1592 04fdb7d7d7c84095a3494d40af0b5926 -msgid "" -"Changed in v1.14.16: The sequence of positional parameters \"name\" and " -"\"buffer\" has been changed to comply with the call pattern of other " -"functions." -msgstr "" - -#: ../../document.rst:1594 fcd3db75809240cc8f190dd9a00289d2 -msgid "" -"PDF only: Embed a new file. All string parameters except the name may be " -"unicode (in previous versions, only ASCII worked correctly). File " -"contents will be compressed (where beneficial)." -msgstr "" - -#: ../../document.rst:1596 2cea88e56a044b0c8bad08e9a205ccde -msgid "entry identifier, **must not already exist**." -msgstr "" - -#: ../../document.rst:1597 b4cb313585c3435fa169abd1fa4d1619 -msgid "" -"file contents. *(Changed in v1.14.13)* *io.BytesIO* is now also " -"supported." -msgstr "" - -#: ../../document.rst:1597 4280d1c050654a94a34238d69e159094 -msgid "file contents." -msgstr "" - -#: ../../document.rst:1599 ../../document.rst:1673 -#: 31a1f516458f40c39c3f700e4ef89de4 b0eb6859ed644497bc3e05f9f73434b3 -msgid "*(Changed in v1.14.13)* *io.BytesIO* is now also supported." -msgstr "" - -#: ../../document.rst:1601 ac97d3204a544f86b77d976c92acbf7b -msgid "optional filename. Documentation only, will be set to *name* if `None`." -msgstr "" - -#: ../../document.rst:1602 a5690203a4ba480eb382e82deceb9895 -msgid "" -"optional unicode filename. Documentation only, will be set to *filename* " -"if `None`." -msgstr "" - -#: ../../document.rst:1603 6d4f198ba29348218b4fe50cccdefa1f -msgid "optional description. Documentation only, will be set to *name* if `None`." -msgstr "" +#: ../../document.rst:1518 835883ce222348f1939be4af90e88154 +msgid "`del doc[range(500, 520)]`" +msgstr "`del doc[range(500, 520)]`" -#: ../../document.rst:1606 7b71f66a34ea47e9a71e7fe5e7d64fa0 +#: ../../document.rst:1520 65e4760990f848c7a684989dd067afbd msgid "" -"*(Changed in v1.18.13)* The method now returns the :data:`xref` of the " -"inserted file. In addition, the file object now will be automatically " -"given the PDF keys `/CreationDate` and `/ModDate` based on the current " -"date-time." -msgstr "" +"For the :ref:`AdobeManual` the above takes about 0.6 seconds, because the" +" remaining 1290 pages must be cleaned from invalid links." +msgstr ":ref:`AdobeManual` 의 경우 위 작업은 약 0.6초가 걸립니다. 남은 1290페이지에서 잘못된 링크를 정리해야 하기 때문입니다." -#: ../../document.rst:1611 207a6bc78c654390b4b1f2cf463dd50f +#: ../../document.rst:1522 7af3a67223f04f44835189f49959825d msgid "" -"Changed in v1.14.16: This is now a method. In previous versions, this was" -" a property." -msgstr "" - -#: ../../document.rst:1613 0cb7ff09b67448ac9cd78cb7b0b7efb7 -msgid "PDF only: Return the number of embedded files." -msgstr "" +"In general, the performance of this method is dependent on the number of " +"remaining pages -- **not** on the number of deleted pages: in the above " +"example, **deleting all pages except** those 20, will need much less " +"time." +msgstr "일반적으로 이 메서드의 성능은 삭제된 페이지 수가 아니라 **남은 페이지 수** 에 따라 달라집니다: 위 예제에서 **그 20개를 제외한 모든 페이지를 삭제** 하면 훨씬 적은 시간이 필요합니다." #: ../../document.rst:1617 005666a2614842c9b4353f5f802b6c55 msgid "" "PDF only: Retrieve the content of embedded file by its entry number or " "name. If the document is not a PDF, or entry cannot be found, an " "exception is raised." -msgstr "" +msgstr "PDF 전용: 항목 번호 또는 이름으로 임베디드 파일의 콘텐츠를 검색합니다. 문서가 PDF가 아니거나 항목을 찾을 수 없으면 예외가 발생합니다." #: ../../document.rst:1619 ../../document.rst:1639 ../../document.rst:1670 #: 869875aa0dfe44808e52deebefea1de1 b13cd4114f2545a9be72cfc74d7c87be #: bf32473089a3483e8ddc9dac22d37916 msgid "index or name of entry. An integer must be in `range(embfile_count())`." -msgstr "" +msgstr "항목의 인덱스 또는 이름. 정수는 `range(embfile_count())` 에 있어야 합니다." #: ../../document.rst:1625 e338d280c75b4573b622feabbe710c57 msgid "Changed in v1.14.16: Items can now be deleted by index, too." -msgstr "" +msgstr "v1.14.16에서 변경됨: 항목을 인덱스로도 삭제할 수 있습니다." #: ../../document.rst:1627 333fc09a48dc4e96be1d0d96576eccba msgid "" @@ -4549,28 +4030,28 @@ msgid "" "deletion of the embedded file content (and file space regain) will occur " "only when the document is saved to a new file with a suitable garbage " "option." -msgstr "" +msgstr "PDF 전용: `/EmbeddedFiles` 에서 항목을 제거합니다. 항상 그렇듯이 임베디드 파일 콘텐츠의 물리적 삭제(및 파일 공간 회수)는 적절한 가비지 옵션으로 문서를 새 파일로 저장할 때만 발생합니다." #: ../../document.rst:1629 eee9b150efa74ebb95b8d065ce663d9e msgid "index or name of entry." -msgstr "" +msgstr "항목의 인덱스 또는 이름." #: ../../document.rst:1631 8c4ab8c1f77e4c2985abe3c93f92b10d msgid "" "When specifying an entry name, this function will only **delete the first" " item** with that name. Be aware that PDFs not created with PyMuPDF may " "contain duplicate names. So you may want to take appropriate precautions." -msgstr "" +msgstr "항목 이름을 지정할 때 이 함수는 해당 이름을 가진 **첫 번째 항목만 삭제** 합니다. PyMuPDF로 생성되지 않은 PDF에는 중복 이름이 포함될 수 있습니다. 따라서 적절한 예방 조치를 취하는 것이 좋습니다." #: ../../document.rst:1635 ce3e3fdc43df49f29497bf219a55ffb7 msgid "Changed in v1.18.13" -msgstr "" +msgstr "v1.18.13에서 변경됨" #: ../../document.rst:1637 66294342e3bd417fa3d25391a8d4394d msgid "" "PDF only: Retrieve information of an embedded file given by its number or" " by its name." -msgstr "" +msgstr "PDF 전용: 번호 또는 이름으로 지정된 임베디드 파일의 정보를 검색합니다." #: ../../document.rst:1642 d938771d7b2e410ebbe66f3bffdc3111 msgid "" @@ -4585,102 +4066,102 @@ msgid "" "(*str*) a hashcode of the stored file content as a hexadecimal string. " "Should be MD5 according to PDF specifications, but be prepared to see " "other hashing algorithms." -msgstr "" +msgstr "다음 키를 가진 딕셔너리: * ``name`` -- (*str*) 이 항목이 저장되는 이름 * ``filename`` -- (*str*) 파일명 * ``ufilename`` -- (*unicode*) 파일명 * ``description`` -- (*str*) 설명 * ``size`` -- (*int*) 원본 파일 크기 * ``length`` -- (*int*) 압축된 파일 길이 * ``creationDate`` -- (*str*) PDF 형식의 항목 생성 날짜-시간 * ``modDate`` -- (*str*) PDF 형식의 마지막 변경 날짜-시간 * ``collection`` -- (*int*) 관련 PDF 포트폴리오 항목이 있으면 :data:`xref`, 그렇지 않으면 0. * ``checksum`` -- (*str*) 저장된 파일 콘텐츠의 해시코드를 16진수 문자열로. PDF 사양에 따르면 MD5여야 하지만 다른 해싱 알고리즘을 볼 수 있도록 준비하세요." #: ../../document.rst:1642 ab305172c9934b6d9c00eb5ed6e4649a msgid "a dictionary with the following keys:" -msgstr "" +msgstr "다음 키를 가진 딕셔너리:" #: ../../document.rst:1644 b7a076e5859b4bcab80e34541859d7ca msgid "``name`` -- (*str*) name under which this entry is stored" -msgstr "" +msgstr "``name`` -- (*str*) 이 항목이 저장되는 이름" #: ../../document.rst:1645 121172b7332143a8b549ef30f4bd5bb1 msgid "``filename`` -- (*str*) filename" -msgstr "" +msgstr "``filename`` -- (*str*) 파일명" #: ../../document.rst:1646 89fd41822ad34573a7b952b2fd4303ac msgid "``ufilename`` -- (*unicode*) filename" -msgstr "" +msgstr "``ufilename`` -- (*unicode*) 파일명" #: ../../document.rst:1647 437589e818d74dc3aa02750c07e6aff9 msgid "``description`` -- (*str*) description" -msgstr "" +msgstr "``description`` -- (*str*) 설명" #: ../../document.rst:1648 8bf22226e6b946ba8904a12c9047c6db msgid "``size`` -- (*int*) original file size" -msgstr "" +msgstr "``size`` -- (*int*) 원본 파일 크기" #: ../../document.rst:1649 aac50a010de4434abbf736335b328344 msgid "``length`` -- (*int*) compressed file length" -msgstr "" +msgstr "``length`` -- (*int*) 압축된 파일 길이" #: ../../document.rst:1650 e79e7816a4a14e959f1d7ae2ce4e4ee3 msgid "``creationDate`` -- (*str*) date-time of item creation in PDF format" -msgstr "" +msgstr "``creationDate`` -- (*str*) PDF 형식의 항목 생성 날짜-시간" #: ../../document.rst:1651 d29662d08223403686e394f5d5d4de79 msgid "``modDate`` -- (*str*) date-time of last change in PDF format" -msgstr "" +msgstr "``modDate`` -- (*str*) PDF 형식의 마지막 변경 날짜-시간" #: ../../document.rst:1652 69752e18d0a54012a9dbebd7a2a8eded msgid "" "``collection`` -- (*int*) :data:`xref` of the associated PDF portfolio " "item if any, else zero." -msgstr "" +msgstr "``collection`` -- (*int*) 관련 PDF 포트폴리오 항목이 있으면 :data:`xref`, 그렇지 않으면 0." #: ../../document.rst:1653 870473bef4414d4a9f160c797a395163 msgid "" "``checksum`` -- (*str*) a hashcode of the stored file content as a " "hexadecimal string. Should be MD5 according to PDF specifications, but be" " prepared to see other hashing algorithms." -msgstr "" +msgstr "``checksum`` -- (*str*) 저장된 파일 콘텐츠의 해시코드를 16진수 문자열로. PDF 사양에 따르면 MD5여야 하지만 다른 해싱 알고리즘을 볼 수 있도록 준비하세요." #: ../../document.rst:1657 b293ff432c4943c7b13c527f6ae85be2 msgid "" "PDF only: Return a list of embedded file names. The sequence of the names" " equals the physical sequence in the document." -msgstr "" +msgstr "PDF 전용: 임베디드 파일 이름 목록을 반환합니다. 이름의 순서는 문서의 물리적 순서와 같습니다." #: ../../document.rst:1668 40d7ae2aac41481b8256423dedbe2570 msgid "" "PDF only: Change an embedded file given its entry number or name. All " "parameters are optional. Letting them default leads to a no-operation." -msgstr "" +msgstr "PDF 전용: 항목 번호 또는 이름으로 지정된 임베디드 파일을 변경합니다. 모든 매개변수는 선택적입니다. 기본값으로 두면 작업이 수행되지 않습니다." #: ../../document.rst:1671 f59d2798159c472e8b861edc7cafc49e msgid "" "the new file content. *(Changed in v1.14.13)* *io.BytesIO* is now also " "supported." -msgstr "" +msgstr "새 파일 콘텐츠. *(v1.14.13에서 변경됨)* *io.BytesIO* 도 이제 지원됩니다." #: ../../document.rst:1671 cb03da4bee5c476891ce54c568329d5b msgid "the new file content." -msgstr "" +msgstr "새 파일 콘텐츠." #: ../../document.rst:1675 5b7dac2348554f989d99d3971995632c msgid "the new filename." -msgstr "" +msgstr "새 파일명." #: ../../document.rst:1676 cf4779ea31f6485baa24ba26f618ee73 msgid "the new unicode filename." -msgstr "" +msgstr "새 유니코드 파일명." #: ../../document.rst:1677 0c0c1f586af547b3806f6c000e271d90 msgid "the new description." -msgstr "" +msgstr "새 설명." #: ../../document.rst:1679 0588e113557544cfa618e9fa05550f26 msgid "" "*(Changed in v1.18.13)* The method now returns the :data:`xref` of the " "file object." -msgstr "" +msgstr "*(v1.18.13에서 변경됨)* 이 메서드는 이제 파일 객체의 :data:`xref` 를 반환합니다." #: ../../document.rst:1682 caacf7f8451042be88437cdd7ebf80f6 msgid "" "xref of the file object. Automatically, its `/ModDate` PDF key will be " "updated with the current date-time." -msgstr "" +msgstr "파일 객체의 xref. 자동으로 `/ModDate` PDF 키가 현재 날짜-시간으로 업데이트됩니다." #: ../../document.rst:1687 c1612e02ab6e4aaa90882747a1695057 msgid "" @@ -4688,7 +4169,7 @@ msgid "" "created from a file, also closes *filename* (releasing control to the " "OS). Explicitly closing a document is equivalent to deleting it, `del " "doc`, or assigning it to something else like `doc = None`." -msgstr "" +msgstr "문서와 관련된 객체 및 공간 할당을 해제합니다. 파일에서 생성된 경우 *filename* 도 닫습니다(OS에 제어권 해제). 문서를 명시적으로 닫는 것은 삭제하는 것, `del doc`, 또는 `doc = None` 과 같이 다른 것으로 할당하는 것과 동일합니다." #: ../../document.rst:1691 ../../document.rst:1705 ../../document.rst:1712 #: ../../document.rst:1719 ../../document.rst:1730 ../../document.rst:1739 @@ -4697,74 +4178,74 @@ msgstr "" #: 90fec84dc6174a0e8a82750746e35157 c721b36a29cf4051bbf9e0ca82266951 #: c9d56f09885c4db3afad4b92d4bb30c5 d854778651b548139937059eb60c11db msgid "New in v1.16.8" -msgstr "" +msgstr "v1.16.8에서 새로 추가됨" #: ../../document.rst:1692 a23659b9ffbc469f9b1e6aeaf63329c8 msgid "Changed in v1.18.10" -msgstr "" +msgstr "v1.18.10에서 변경됨" #: ../../document.rst:1694 8ef598a908184a068d803110e0727a3e msgid "PDF only: Return the definition source of a PDF object." -msgstr "" +msgstr "PDF 전용: PDF 객체의 정의 소스를 반환합니다." #: ../../document.rst:1696 2f3c19c00a5c4c33880871794c2207c2 msgid "" "the object's :data:`xref`. *Changed in v1.18.10:* A value of `-1` returns" " the PDF trailer source." -msgstr "" +msgstr "객체의 :data:`xref`. *v1.18.10에서 변경됨:* `-1` 값은 PDF 트레일러 소스를 반환합니다." #: ../../document.rst:1697 d7825dd896e841a4946cd46633cc1cba msgid "whether to generate a compact output with no line breaks or spaces." -msgstr "" +msgstr "줄 바꿈이나 공백 없이 압축된 출력을 생성할지 여부." #: ../../document.rst:1698 4a2d6a2741b84dbbabd0ae4824b249b6 msgid "whether to ASCII-encode binary data." -msgstr "" +msgstr "바이너리 데이터를 ASCII로 인코딩할지 여부." #: ../../document.rst:1701 d289d49008164203be7390dad133165b msgid "The object definition source." -msgstr "" +msgstr "객체 정의 소스." #: ../../document.rst:1707 33f4eb609f2e4a31bcedf6bbb15f807b msgid "" "PDF only: Return the :data:`xref` number of the PDF catalog (or root) " "object. Use that number with :meth:`Document.xref_object` to see its " "source." -msgstr "" +msgstr "PDF 전용: PDF 카탈로그(또는 루트) 객체의 :data:`xref` 번호를 반환합니다. 해당 번호를 :meth:`Document.xref_object` 와 함께 사용하여 소스를 확인하세요." #: ../../document.rst:1714 25deae598bf0499b83ce312067283693 msgid "" "PDF only: Return the trailer source of the PDF, which is usually located" " at the PDF file's end. This is :meth:`Document.xref_object` with an " ":data:`xref` argument of -1." -msgstr "" +msgstr "PDF 전용: PDF의 트레일러 소스를 반환합니다. 일반적으로 PDF 파일의 끝에 있습니다. 이것은 :data:`xref` 인수가 -1인 :meth:`Document.xref_object` 입니다." #: ../../document.rst:1721 e4cb3087b0c64d3eb47f44d544152d83 msgid "" "PDF only: Return the **decompressed** contents of the :data:`xref` stream" " object." -msgstr "" +msgstr "PDF 전용: :data:`xref` 스트림 객체의 **압축 해제된** 콘텐츠를 반환합니다." #: ../../document.rst:1723 ../../document.rst:1743 ../../document.rst:1762 #: bd1262c85c614c2d81fa5f15f512c739 e80e7230a803497aa97d368a20d6e190 #: f5b32eb85c0e4db8be3bb7ba4cea4d21 msgid ":data:`xref` number." -msgstr "" +msgstr ":data:`xref` 번호." #: ../../document.rst:1726 c2333be86e844fc98605aa5bf81d198f msgid "the (decompressed) stream of the object." -msgstr "" +msgstr "객체의 (압축 해제된) 스트림." #: ../../document.rst:1732 283d3fc3dd6540698765de3addb1126c msgid "" "PDF only: Return the **unmodified** (esp. **not decompressed**) contents " "of the :data:`xref` stream object. Otherwise equal to " ":meth:`Document.xref_stream`." -msgstr "" +msgstr "PDF 전용: :data:`xref` 스트림 객체의 **수정되지 않은** (특히 **압축 해제되지 않은**) 콘텐츠를 반환합니다. 그렇지 않으면 :meth:`Document.xref_stream` 과 동일합니다." #: ../../document.rst:1735 462546377c3c4cd4b1472360c095b7c1 msgid "the (original, unmodified) stream of the object." -msgstr "" +msgstr "객체의 (원본, 수정되지 않은) 스트림." #: ../../document.rst:1741 0b9b082e450d41eb9b314d3946b524a8 msgid "" @@ -4772,36 +4253,36 @@ msgid "" "string. The xref may also be new, in which case this instruction " "completes the object definition. If a page object is also given, its " "links and annotations will be reloaded afterwards." -msgstr "" +msgstr "PDF 전용: :data:`xref` 의 객체 정의를 제공된 문자열로 교체합니다. xref는 새 것일 수도 있으며, 이 경우 이 지시문이 객체 정의를 완료합니다. 페이지 객체도 제공되면 링크와 주석이 이후에 다시 로드됩니다." #: ../../document.rst:1745 8933f62dde2645e88c680302e0737fdd msgid "a string containing a valid PDF object definition." -msgstr "" +msgstr "유효한 PDF 객체 정의를 포함하는 문자열." #: ../../document.rst:1747 a2630fd6e0d64414b7ad457df37269b0 msgid "" "a page object. If provided, indicates, that annotations of this page " "should be refreshed (reloaded) to reflect changes incurred with links and" " / or annotations." -msgstr "" +msgstr "페이지 객체. 제공되면 이 페이지의 주석이 링크 및/또는 주석으로 인한 변경 사항을 반영하도록 새로고침(다시 로드)되어야 함을 나타냅니다." #: ../../document.rst:1751 6e2ff3cc8ba1477faddb0b4a8c62a0c1 msgid "zero if successful, otherwise an exception will be raised." -msgstr "" +msgstr "성공하면 0, 그렇지 않으면 예외가 발생합니다." #: ../../document.rst:1756 59e3f67362e24cab9751cfb4f80bdaee msgid "New in v.1.16.8" -msgstr "" +msgstr "v.1.16.8에서 새로 추가됨" #: ../../document.rst:1757 e613c9bdf9154e69bfdb4290b3db58b3 msgid "Changed in v1.19.2: added parameter \"compress\"" -msgstr "" +msgstr "v1.19.2에서 변경됨: 매개변수 \"compress\" 추가" #: ../../document.rst:1758 b5a2a17e15894322882de2242d8fd8d7 msgid "" "Changed in v1.19.6: deprecated parameter \"new\". Now confirms that the " "object is a PDF dictionary object." -msgstr "" +msgstr "v1.19.6에서 변경됨: 매개변수 \"new\" 사용 중단. 이제 객체가 PDF 딕셔너리 객체임을 확인합니다." #: ../../document.rst:1760 be549db0daac4457bfaa4bd7267ba26b msgid "" @@ -4809,32 +4290,32 @@ msgid "" " a PDF dictionary. If the object is no :data:`stream`, it will be turned " "into one. The function automatically performs a compress operation " "(\"deflate\") where beneficial." -msgstr "" +msgstr ":data:`xref` 로 식별된 객체의 스트림을 교체합니다. 이것은 PDF 딕셔너리여야 합니다. 객체가 :data:`stream` 이 아니면 하나로 변환됩니다. 함수는 유익한 경우 자동으로 압축 작업(\"deflate\")을 수행합니다." #: ../../document.rst:1764 10fe63cbe0d341f3a69640433bd62174 msgid "" "the new content of the stream. *(Changed in v1.14.13:)* *io.BytesIO* " "objects are now also supported." -msgstr "" +msgstr "스트림의 새 콘텐츠. *(v1.14.13에서 변경됨:)* *io.BytesIO* 객체도 이제 지원됩니다." #: ../../document.rst:1764 af4a5ac5fb2a4e098c781ed0b4edc120 msgid "the new content of the stream." -msgstr "" +msgstr "스트림의 새 콘텐츠." #: ../../document.rst:1766 8f1f5a91c7ab489dbcf4485406b77160 msgid "*(Changed in v1.14.13:)* *io.BytesIO* objects are now also supported." -msgstr "" +msgstr "*(v1.14.13에서 변경됨:)* *io.BytesIO* 객체도 이제 지원됩니다." #: ../../document.rst:1768 15ae756f4ecb41b288efbd1eb2c46b65 msgid "*deprecated* and ignored. Will be removed some time after v1.20.0." -msgstr "" +msgstr "*사용 중단됨* 및 무시됨. v1.20.0 이후 어느 시점에 제거됩니다." #: ../../document.rst:1769 937c966669724ea086fc25ab2b60cdac msgid "" "whether to compress the inserted stream. If `True` (default), the stream " "will be inserted using `/FlateDecode` compression (if beneficial), " "otherwise the stream will inserted as is." -msgstr "" +msgstr "삽입된 스트림을 압축할지 여부. `True` (기본값)인 경우 스트림은 `/FlateDecode` 압축을 사용하여 삽입됩니다(유익한 경우). 그렇지 않으면 스트림이 있는 그대로 삽입됩니다." #: ../../document.rst:1771 52d2cd2519ce458b821f982d7560f805 msgid "" @@ -4842,21 +4323,21 @@ msgid "" "dictionary ``<<>>`` is accepted. So if you just created the xref and want" " to give it a stream, first execute `doc.update_object(xref, \"<<>>\")`, " "and then insert the stream data with this method." -msgstr "" +msgstr ":data:`xref` 가 PDF :data:`dict` 를 나타내지 않는 경우. 빈 딕셔너리 ``<<>>`` 가 허용됩니다. 따라서 xref를 방금 생성했고 스트림을 제공하려면 먼저 `doc.update_object(xref, \"<<>>\")` 를 실행한 다음 이 메서드로 스트림 데이터를 삽입하세요." #: ../../document.rst:1773 cb6a6dc6a8254e4c8bb0f9c0590b4a57 msgid "" "The method is primarily (but not exclusively) intended to manipulate " "streams containing PDF operator syntax (see pp. 643 of the " ":ref:`AdobeManual`) as it is the case for e.g. page content streams." -msgstr "" +msgstr "이 메서드는 주로(하지만 독점적으로는 아님) PDF 연산자 구문을 포함하는 스트림을 조작하기 위한 것입니다(예: 페이지 콘텐츠 스트림의 경우 :ref:`AdobeManual` 643페이지 참조)." #: ../../document.rst:1775 e6f22217dcf04f5ca0789618ccc4b6a1 msgid "" "If you update a contents stream, consider using save parameter " "*clean=True* to ensure consistency between PDF operator source and the " "object structure." -msgstr "" +msgstr "콘텐츠 스트림을 업데이트하는 경우 PDF 연산자 소스와 객체 구조 간의 일관성을 보장하기 위해 저장 매개변수 *clean=True* 를 사용하는 것을 고려하세요." #: ../../document.rst:1777 9175289674fe42d58a6b6abdb5e16e51 msgid "" @@ -4866,42 +4347,42 @@ msgid "" "the page. But the page's :data:`resources` object would still show the " "image as being referenced by the page. This save option will clean up any" " such mismatches." -msgstr "" +msgstr "예: 특정 이미지가 더 이상 페이지에 나타나지 않기를 원한다고 가정합니다. 이것은 콘텐츠 소스에서 해당 참조를 삭제하여 달성할 수 있습니다 -- 실제로: 페이지를 다시 로드한 후 이미지는 사라집니다. 하지만 페이지의 :data:`resources` 객체는 여전히 이미지가 페이지에서 참조되는 것으로 표시됩니다. 이 저장 옵션은 이러한 불일치를 정리합니다." #: ../../document.rst:1782 d9275845ca0549f9810fe1c459229023 msgid "New in v1.19.5" -msgstr "" +msgstr "v1.19.5에서 새로 추가됨" #: ../../document.rst:1784 1978f66df0e74a988b853cc4459b38d0 msgid "" "PDF Only: Make ``target`` xref an exact copy of ``source``. If ``source``" " is a :data:`stream`, then this data is also copied." -msgstr "" +msgstr "PDF 전용: ``target`` xref를 ``source`` 의 정확한 복사본으로 만듭니다. ``source`` 가 :data:`stream` 인 경우 이 데이터도 복사됩니다." #: ../../document.rst:1786 ede3e57cd1a54c4dae2acc826a5ca8bf msgid "the source :data:`xref`. It must be an existing **dictionary** object." -msgstr "" +msgstr "소스 :data:`xref`. 기존 **딕셔너리** 객체여야 합니다." #: ../../document.rst:1787 a114c0a1e048457db2694da7e1b8a322 msgid "" "the target xref. Must be an existing **dictionary** object. If the xref " "has just been created, make sure to initialize it as a PDF dictionary " "with the minimum specification ``<<>>``." -msgstr "" +msgstr "대상 xref. 기존 **딕셔너리** 객체여야 합니다. xref가 방금 생성된 경우 최소 사양 ``<<>>`` 로 PDF 딕셔너리로 초기화해야 합니다." #: ../../document.rst:1788 59c3eb8299844c509459fa4e5a6ff3b1 msgid "" "an optional list of top-level keys in ``target``, that should not be " "removed in preparation of the copy process." -msgstr "" +msgstr "복사 프로세스 준비에서 제거되지 않아야 하는 ``target`` 의 최상위 키 선택적 목록." #: ../../document.rst:1792 1447fd7c08ef42a7ae90572fa47e3c80 msgid "This method has much in common with Python's *dict* method `copy()`." -msgstr "" +msgstr "이 메서드는 Python의 *dict* 메서드 `copy()` 와 많은 공통점이 있습니다." #: ../../document.rst:1793 c332b30c15b841de889aa5834596e374 msgid "Both xref numbers must represent existing dictionaries." -msgstr "" +msgstr "두 xref 번호 모두 기존 딕셔너리를 나타내야 합니다." #: ../../document.rst:1794 c4b2efbb94164cf0bb995217e6390c71 msgid "" @@ -4909,13 +4390,13 @@ msgid "" "deleted. You can specify exceptions from this in the ``keep`` list. If " "*source* however has a same-named key, its value will still replace the " "target." -msgstr "" +msgstr "*source* 에서 데이터가 복사되기 전에 모든 *target* 딕셔너리 키가 삭제됩니다. ``keep`` 목록에서 예외를 지정할 수 있습니다. 그러나 *source* 에 동일한 이름의 키가 있으면 해당 값이 여전히 대상을 교체합니다." #: ../../document.rst:1795 a83d35411e754766978f64291fb8cb50 msgid "" "If ``source`` is a :data:`stream` object, then these data will also be " "copied over, and ``target`` will be converted to a stream object." -msgstr "" +msgstr "``source`` 가 :data:`stream` 객체인 경우 이 데이터도 복사되고 ``target`` 은 스트림 객체로 변환됩니다." #: ../../document.rst:1796 344e7a4ddcfb4ab89dcfcc2862bc8f8d msgid "" @@ -4923,7 +4404,7 @@ msgid "" "using redaction annotations. Example scripts can be seen `in this PyMuPDF" " Utilities example `_." -msgstr "" +msgstr "일반적인 사용 사례는 수정 주석을 사용하지 않고 기존 이미지를 교체하거나 제거하는 것입니다. 예제 스크립트는 `이 PyMuPDF Utilities 예제 `_ 에서 볼 수 있습니다." #: ../../document.rst:1800 bb36292ec69e4f9b98c4ec88541612f9 msgid "" @@ -4932,14 +4413,14 @@ msgid "" "as input for PIL, :ref:`Pixmap` creation, etc. This method avoids using " "pixmaps wherever possible to present the image in its original format " "(e.g. as JPEG)." -msgstr "" +msgstr "PDF 전용: 문서에 저장된 이미지의 데이터 및 메타 정보를 추출합니다. 출력은 이미지 파일로 저장하거나 PIL, :ref:`Pixmap` 생성 등의 입력으로 직접 사용할 수 있습니다. 이 메서드는 가능한 한 pixmap 사용을 피하여 원본 형식(예: JPEG)으로 이미지를 표시합니다." #: ../../document.rst:1802 78f689ab3d4340b284a59caa46718c80 msgid "" ":data:`xref` of an image object. If this is not in `range(1, " "doc.xref_length())`, or the object is no image or other errors occur, " "`None` is returned and no exception is raised." -msgstr "" +msgstr "이미지 객체의 :data:`xref`. 이것이 `range(1, doc.xref_length())` 에 없거나 객체가 이미지가 아니거나 다른 오류가 발생하면 `None` 이 반환되고 예외가 발생하지 않습니다." #: ../../document.rst:1805 6f94452f16664114839249285cdf2d94 msgid "" @@ -4952,215 +4433,23 @@ msgid "" "also see :data:`resolution`. * *yres* (*int*) resolution in y direction. " "Please also see :data:`resolution`. * *image* (*bytes*) image data, " "usable as image file content" -msgstr "" +msgstr "다음 키를 가진 딕셔너리 * *ext* (*str*) 이미지 타입(예: *'jpeg'*), 이미지 파일 확장자로 사용 가능 * *smask* (*int*) 스텐실(/SMask) 이미지의 :data:`xref` 번호 또는 0 * ``width`` (*int*) 이미지 너비 * ``height`` (*int*) 이미지 높이 * *colorspace* (*int*) 이미지의 *colorspace.n* 번호. * *cs-name* (*str*) 이미지의 *colorspace.name*. * *xres* (*int*) x 방향 해상도. :data:`resolution` 도 참조하세요. * *yres* (*int*) y 방향 해상도. :data:`resolution` 도 참조하세요. * *image* (*bytes*) 이미지 데이터, 이미지 파일 콘텐츠로 사용 가능" #: ../../document.rst:1805 d87f3e046f2f4b23bc0807e8168812e2 msgid "a dictionary with the following keys" -msgstr "" +msgstr "다음 키를 가진 딕셔너리" #: ../../document.rst:1807 ba7ba718761e492e8f662d09ddc95835 msgid "*ext* (*str*) image type (e.g. *'jpeg'*), usable as image file extension" -msgstr "" +msgstr "*ext* (*str*) 이미지 타입(예: *'jpeg'*), 이미지 파일 확장자로 사용 가능" #: ../../document.rst:1808 9522a445d9c2447e81797f1553daa0ed msgid "*smask* (*int*) :data:`xref` number of a stencil (/SMask) image or zero" -msgstr "" +msgstr "*smask* (*int*) 스텐실(/SMask) 이미지의 :data:`xref` 번호 또는 0" #: ../../document.rst:1809 07061033da1b4b1888cc6d96246e3731 msgid "``width`` (*int*) image width" -msgstr "" - -#: ../../document.rst:1810 7a2ee3334e0b43b799cce3fa8a5067cf -msgid "``height`` (*int*) image height" -msgstr "" - -#: ../../document.rst:1811 674a1227dfb24764810f8a3c8e1d5115 -msgid "*colorspace* (*int*) the image's *colorspace.n* number." -msgstr "" - -#: ../../document.rst:1812 87b5931935934adaac549c6c0d2dae5c -msgid "*cs-name* (*str*) the image's *colorspace.name*." -msgstr "" - -#: ../../document.rst:1813 d1cdc8cf4e38466bad4393a9edda8188 -msgid "" -"*xres* (*int*) resolution in x direction. Please also see " -":data:`resolution`." -msgstr "" - -#: ../../document.rst:1814 41f36105a6ef458ca0d0efda56b787f7 -msgid "" -"*yres* (*int*) resolution in y direction. Please also see " -":data:`resolution`." -msgstr "" - -#: ../../document.rst:1815 3b09fc2f822e4a66bcf89f5064888d20 -msgid "*image* (*bytes*) image data, usable as image file content" -msgstr "" - -#: ../../document.rst:1827 a2ca74b0d3fb44a6af4caf922486b13a -msgid "" -"There is a functional overlap with *pix = pymupdf.Pixmap(doc, xref)*, " -"followed by a *pix.tobytes()*. Main differences are that extract_image, " -"**(1)** does not always deliver PNG image formats, **(2)** is **very** " -"much faster with non-PNG images, **(3)** usually results in much less " -"disk storage for extracted images, **(4)** returns `None` in error cases " -"(generates no exception). Look at the following example images within the" -" same PDF." -msgstr "" - -#: ../../document.rst:1829 ebb9a040a28642529996bc8a3d5e3341 -msgid "xref 1268 is a PNG -- Comparable execution time and identical output::" -msgstr "" - -#: ../../document.rst:1841 b4ad30db2af64226b788bc78cdbf2620 -msgid "" -"xref 1186 is a JPEG -- :meth:`Document.extract_image` is **many times " -"faster** and produces a **much smaller** output (2.48 MB vs. 0.35 MB)::" -msgstr "" - -#: ../../document.rst:1856 f238369b37934968ae4ada422517679c -msgid "Changed in v1.19.4: return a dictionary if `named == True`." -msgstr "" - -#: ../../document.rst:1858 63b965c660cb48f599a8e3ef61279d03 -msgid "" -"PDF Only: Return an embedded font file's data and appropriate file " -"extension. This can be used to store the font as an external file. The " -"method does not throw exceptions (other than via checking for PDF and " -"valid :data:`xref`)." -msgstr "" - -#: ../../document.rst:1860 5868fff7a5c1434d8331e423b2da5b01 -msgid "PDF object number of the font to extract." -msgstr "" - -#: ../../document.rst:1861 e93cee0f89174e4bac856b0c26d404a5 -msgid "" -"only return font information, not the buffer. To be used for information-" -"only purposes, avoids allocation of large buffer areas." -msgstr "" - -#: ../../document.rst:1862 fa79f073e29f4634a730854470e90a80 -msgid "" -"If true, a dictionary with the following keys is returned: 'name' (font " -"base name), 'ext' (font file extension), 'type' (font type), 'content' " -"(font file content)." -msgstr "" - -#: ../../document.rst:1865 ab89baff11f24d95bf92e569980f0cfe -msgid "" -"a tuple `(basename, ext, type, content)`, where *ext* is a 3-byte " -"suggested file extension (*str*), *basename* is the font's name (*str*), " -"*type* is the font's type (e.g. \"Type1\") and *content* is a bytes " -"object containing the font file's content (or *b\"\"*). For possible " -"extension values and their meaning see :ref:`FontExtensions`. Return " -"details on error: * `(\"\", \"\", \"\", b\"\")` -- invalid xref or xref " -"is not a (valid) font object. * `(basename, \"n/a\", \"Type1\", b\"\")` " -"-- *basename* is not embedded and thus cannot be extracted. This is the " -"case for e.g. the :ref:`Base-14-Fonts` and Type 3 fonts." -msgstr "" - -#: ../../document.rst:1865 3b2b1686981b408f9b4ca383fc8e0886 -msgid "" -"a tuple `(basename, ext, type, content)`, where *ext* is a 3-byte " -"suggested file extension (*str*), *basename* is the font's name (*str*), " -"*type* is the font's type (e.g. \"Type1\") and *content* is a bytes " -"object containing the font file's content (or *b\"\"*). For possible " -"extension values and their meaning see :ref:`FontExtensions`. Return " -"details on error:" -msgstr "" - -#: ../../document.rst:1867 481c41a571e542b7a7aa786175062a42 -msgid "" -"`(\"\", \"\", \"\", b\"\")` -- invalid xref or xref is not a (valid) font" -" object." -msgstr "" - -#: ../../document.rst:1868 cb4b7c40a27e4f8d8952d515656acd8b -msgid "" -"`(basename, \"n/a\", \"Type1\", b\"\")` -- *basename* is not embedded and" -" thus cannot be extracted. This is the case for e.g. the " -":ref:`Base-14-Fonts` and Type 3 fonts." -msgstr "" - -#: ../../document.rst:1870 41ac3a9a578a46a889335bb7b87bcaf6 -msgid "Example:" -msgstr "" - -#: ../../document.rst:1879 02cfca352adb406f958c62b5d22f6565 -msgid "" -"The basename is returned unchanged from the PDF. So it may contain " -"characters (such as blanks) which may disqualify it as a filename for " -"your operating system. Take appropriate action." -msgstr "" - -#: ../../document.rst:1882 986fdf8314ca4329828c2ddb689dc2cd -msgid "" -"The returned *basename* in general is **not** the original file name, but" -" it probably has some similarity." -msgstr "" - -#: ../../document.rst:1883 1a93938a9e004ef4a3f2d30cbd5711b6 -msgid "" -"If parameter `named == True`, a dictionary with the following keys is " -"returned: `{'name': 'T1', 'ext': 'n/a', 'type': 'Type3', 'content': " -"b''}`." -msgstr "" - -#: ../../document.rst:1890 bf48f5599c0b4eba92b57c5c2878337f -msgid "PDF only: Return the :data:`xref` of the document's XML metadata." -msgstr "" - -#: ../../document.rst:1899 b15d00f9e287463e9d85fb59c132c2fb -msgid "" -"PDF only: Check whether there are links, resp. annotations anywhere in " -"the document." -msgstr "" - -#: ../../document.rst:1901 a8ad087d8d95460885065c1393b39d3c -msgid "" -"``True`` / ``False``. As opposed to fields, which are also stored in a " -"central place of a PDF document, the existence of links / annotations can" -" only be detected by parsing each page. These methods are tuned to do " -"this efficiently and will immediately return, if the answer is ``True`` " -"for a page. For PDFs with many thousand pages however, an answer may take" -" some time [#f6]_ if no link, resp. no annotation is found." -msgstr "" - -#: ../../document.rst:1906 e21fcef1343540d1a708042f4c0792a7 -msgid "" -"PDF only: Investigate eligible fonts for their use by text in the " -"document. If a font is supported and a size reduction is possible, that " -"font is replaced by a version with a subset of its characters." -msgstr "" - -#: ../../document.rst:1908 09503144287d4b18848ae8923ddfa67b -msgid "Use this method immediately before saving the document." -msgstr "" - -#: ../../document.rst:1910 539a01e1c805488b9294c170eac3feac -msgid "" -"write various progress information to sysout. This currently only has an " -"effect if `fallback` is `True`." -msgstr "" - -#: ../../document.rst:1911 8981e0208a9f4e28b42ee5f66a328834 -msgid "" -"if `True` use the deprecated algorithm that makes use of package " -"`fontTools `_ (which hence must be " -"installed). If using the recommended value `False` (default), MuPDF's " -"native function is used -- which is **very much faster** and can subset a" -" broader range of font types. Package fontTools is not required then." -msgstr "" - -#: ../../document.rst:1913 a15a1047f45b4352a716896e69d6a301 -msgid "" -"The greatest benefit can be achieved when creating new PDFs using large " -"fonts like is typical for Asian scripts. When using the :ref:`Story` " -"class or method :meth:`Page.insert_htmlbox`, multiple fonts may " -"automatically be included -- without the programmer becoming aware of it." -msgstr "" +msgstr "``width`` (*int*) 이미지 너비" #: ../../document.rst:1915 7fadfbd8f00548ec9586225f78483b9b msgid "" @@ -5169,7 +4458,7 @@ msgid "" " this method can easily reduce the embedded font binaries by two orders " "of magnitude -- from several megabytes down to a low two-digit kilobyte " "amount." -msgstr "" +msgstr "이러한 모든 경우에서 실제로 사용되는 유니코드 집합은 사용된 폰트에서 사용 가능한 글리프 수에 비해 대부분 매우 작습니다. 이 메서드를 사용하면 임베디드 폰트 바이너리를 두 자릿수로 쉽게 줄일 수 있습니다 -- 수 메가바이트에서 낮은 두 자릿수 킬로바이트 양으로." #: ../../document.rst:1917 866600d061f646dbb57bf75dabe4392e msgid "" @@ -5177,23 +4466,23 @@ msgid "" "PDF objects (\"ghosts\"). Therefore, make sure to compress and garbage-" "collect when saving the file. We recommend to use " ":meth:`Document.ez_save`." -msgstr "" +msgstr "폰트 서브셋을 만들면 많은 수의 큰, 이제 사용되지 않는 PDF 객체(\"고스트\")가 남습니다. 따라서 파일을 저장할 때 압축 및 가비지 수집을 수행하세요. :meth:`Document.ez_save` 사용을 권장합니다." #: ../../document.rst:1919 024990b74b30463dbc350e966d4356da msgid "|history_begin|" -msgstr "" +msgstr "|history_begin|" #: ../../document.rst:1922 513bd76513be4e288a19f6b96bbaa3ef msgid "Changed in v1.18.9" -msgstr "" +msgstr "v1.18.9에서 변경됨" #: ../../document.rst:1923 c85bdf00338b456db45d324b6c867387 msgid "Changed in v1.24.2 use native function of MuPDF." -msgstr "" +msgstr "v1.24.2에서 변경됨: MuPDF의 네이티브 함수 사용." #: ../../document.rst:1925 3535b4d59fd44f9a83c2e71b62145fcd msgid "|history_end|" -msgstr "" +msgstr "|history_end|" #: ../../document.rst:1930 ../../document.rst:1936 ../../document.rst:1943 #: ../../document.rst:1950 ../../document.rst:1959 ../../document.rst:1966 @@ -5206,33 +4495,33 @@ msgstr "" #: da2ebdf8956f483cb5f692d348eb4f5e dd484398c14a4d69b0296188557677a0 #: e1bd5bb69f054b608a0564f9de3951e3 msgid "New in v1.19.0" -msgstr "" +msgstr "v1.19.0에서 새로 추가됨" #: ../../document.rst:1932 e3b3225611884f5f8a13d93a5fa8fed2 msgid "" "PDF only: Enable journalling. Use this before you start logging " "operations." -msgstr "" +msgstr "PDF 전용: 저널링을 활성화합니다. 로깅 작업을 시작하기 전에 이것을 사용하세요." #: ../../document.rst:1938 8249cad73bec4dd3811b53fedbf3851b msgid "" "PDF only: Start journalling an *\"operation\"* identified by a string " "\"name\". Updates will fail for a journal-enabled PDF, if no operation " "has been started." -msgstr "" +msgstr "PDF 전용: 문자열 \"name\" 으로 식별되는 *\"작업\"* 의 저널링을 시작합니다. 작업이 시작되지 않으면 저널이 활성화된 PDF에 대한 업데이트가 실패합니다." #: ../../document.rst:1945 704071b7f7704603a6810cce4ef29486 msgid "" "PDF only: Stop the current operation. The updates between start and stop " "of an operation belong to the same unit of work and will be undone / " "redone together." -msgstr "" +msgstr "PDF 전용: 현재 작업을 중지합니다. 작업의 시작과 중지 사이의 업데이트는 동일한 작업 단위에 속하며 함께 실행 취소/다시 실행됩니다." #: ../../document.rst:1952 8856cfd27a08421e8a3a415ac03757b5 msgid "" "PDF only: Return the numbers of the current operation and the total " "operation count." -msgstr "" +msgstr "PDF 전용: 현재 작업 번호와 총 작업 수를 반환합니다." #: ../../document.rst:1954 7aef4dabfe7f42ee8e132777108552c3 msgid "" @@ -5243,57 +4532,57 @@ msgid "" "automatically remove all journal entries after the current one and the " "new update will become the new last entry in the journal. The updates " "corresponding to the removed journal entries will be permanently lost." -msgstr "" +msgstr "현재 작업 번호와 저널의 총 작업 수를 포함하는 튜플 `(step, steps)`. **step** 이 0이면 저널의 맨 위에 있습니다. **step** 이 **steps** 와 같으면 맨 아래에 있습니다. 실행 취소 또는 다시 실행 이외의 것으로 PDF를 업데이트하면 현재 항목 이후의 모든 저널 항목이 자동으로 제거되고 새 업데이트가 저널의 새 마지막 항목이 됩니다. 제거된 저널 항목에 해당하는 업데이트는 영구적으로 손실됩니다." #: ../../document.rst:1961 5804540e567442e986c965d58055649e msgid "PDF only: Return the name of operation number *step.*" -msgstr "" +msgstr "PDF 전용: 작업 번호 *step.* 의 이름을 반환합니다." #: ../../document.rst:1968 f0a5f14026814bc0838219dad0e6c78d msgid "" "PDF only: Show whether forward (\"redo\") and / or backward (\"undo\") " "executions are possible from the current journal position." -msgstr "" +msgstr "PDF 전용: 현재 저널 위치에서 앞으로(\"redo\") 및/또는 뒤로(\"undo\") 실행이 가능한지 표시합니다." #: ../../document.rst:1970 5066e32c51d74905ac1aaf5bb22faf52 msgid "" "a dictionary `{\"undo\": bool, \"redo\": bool}`. The respective method is" " available if its value is `True`." -msgstr "" +msgstr "딕셔너리 `{\"undo\": bool, \"redo\": bool}`. 해당 메서드는 값이 `True` 인 경우 사용할 수 있습니다." #: ../../document.rst:1977 bca8256424854422903812de1880cf69 msgid "" "PDF only: Revert (undo) the current step in the journal. This moves " "towards the journal's top." -msgstr "" +msgstr "PDF 전용: 저널의 현재 단계를 되돌립니다(실행 취소). 이것은 저널의 맨 위로 이동합니다." #: ../../document.rst:1984 c840e9624cdb422484fa864d8235880f msgid "" "PDF only: Re-apply (redo) the current step in the journal. This moves " "towards the journal's bottom." -msgstr "" +msgstr "PDF 전용: 저널의 현재 단계를 다시 적용합니다(다시 실행). 이것은 저널의 맨 아래로 이동합니다." #: ../../document.rst:1991 58b8caa5be0c42e4ad1af76dfb16eb62 msgid "PDF only: Save the journal to a file." -msgstr "" +msgstr "PDF 전용: 저널을 파일로 저장합니다." #: ../../document.rst:1993 64c4bc40fb8f405e9953e7eb030677d4 msgid "" "either a filename as string or a file object opened as \"wb\" (or an " "`io.BytesIO()` object)." -msgstr "" +msgstr "문자열로 된 파일명 또는 \"wb\" 로 열린 파일 객체(또는 `io.BytesIO()` 객체)." #: ../../document.rst:2000 b77b3dcb8b40499faf7067ff14e0ac3d msgid "" "PDF only: Load journal from a file. Enables journalling for the document." " If journalling is already enabled, an exception is raised." -msgstr "" +msgstr "PDF 전용: 파일에서 저널을 로드합니다. 문서에 대한 저널링을 활성화합니다. 저널링이 이미 활성화된 경우 예외가 발생합니다." #: ../../document.rst:2002 4961c34dc2e34a79bc11de4657129a91 msgid "" "the filename (str) of the journal or a file object opened as \"rb\" (or " "an `io.BytesIO()` object)." -msgstr "" +msgstr "저널의 파일명(str) 또는 \"rb\" 로 열린 파일 객체(또는 `io.BytesIO()` 객체)." #: ../../document.rst:2009 b7d0c0f588064a908bf9eb652ed74157 msgid "" @@ -5301,14 +4590,14 @@ msgid "" "with a special, incremental-save format compatible with journalling -- " "therefore no save options are available. Saving a snapshot is not " "possible for new documents." -msgstr "" +msgstr "PDF 전용: 문서의 \"스냅샷\"을 저장합니다. 이것은 저널링과 호환되는 특수한 증분 저장 형식의 PDF 문서입니다 -- 따라서 저장 옵션을 사용할 수 없습니다. 새 문서의 경우 스냅샷 저장이 불가능합니다." #: ../../document.rst:2011 2545bccc73fa4299b3e544581d325b2d msgid "" "This is a normal PDF document with no usage restrictions whatsoever. If " "it is not being changed in any way, it can be used together with its " "journal to undo / redo operations or continue updating." -msgstr "" +msgstr "이것은 사용 제한이 전혀 없는 일반 PDF 문서입니다. 어떤 방식으로도 변경되지 않는 경우 저널과 함께 사용하여 작업을 실행 취소/다시 실행하거나 업데이트를 계속할 수 있습니다." #: ../../document.rst:2016 e424a27e6b2643928977f3d6aa555cb3 msgid "" @@ -5316,7 +4605,7 @@ msgid "" "be used as a starting point to walk through all outline items. Accessing " "this property for encrypted, not authenticated documents will raise an " "*AttributeError*." -msgstr "" +msgstr "문서의 첫 번째 :ref:`Outline` 항목(또는 `None`)을 포함합니다. 모든 개요 항목을 순회하는 시작점으로 사용할 수 있습니다. 암호화되었지만 인증되지 않은 문서에 대해 이 속성에 액세스하면 *AttributeError* 가 발생합니다." #: ../../document.rst 1602273cc936401281de518030afe066 #: 16f29bf99132426f87c8a1a3a19e00e2 28f47def4ae34ebba8d1b7ed547bef39 @@ -5330,11 +4619,11 @@ msgstr "" #: c4a68e2e7f19437b8849a9ffe38fbf3b cda3e67477524036890a97e0103ac73b #: ce0880d44e354062a461cde8ea9b8ecc f50c8eac8d5b46b989ee843ce5e55e52 msgid "type" -msgstr "" +msgstr "타입" #: ../../document.rst:2018 09f8caef7fbd48cd82a0924621d2a9e0 msgid ":ref:`Outline`" -msgstr "" +msgstr ":ref:`Outline`" #: ../../document.rst:2022 f6902ea6d7c74e0e9df77ba8f44bc184 msgid "" @@ -5344,7 +4633,7 @@ msgid "" ":meth:`Document.load_page`) and their dependent objects will no longer be" " usable. For reference purposes, :attr:`Document.name` still exists and " "will contain the filename of the original document (if applicable)." -msgstr "" +msgstr "문서가 여전히 열려 있으면 ``False``. 닫히면 대부분의 다른 속성과 메서드가 삭제/비활성화됩니다. 또한 이 문서를 참조하는 :ref:`Page` 객체(즉, :meth:`Document.load_page` 로 생성된)와 종속 객체는 더 이상 사용할 수 없습니다. 참조 목적으로 :attr:`Document.name` 은 여전히 존재하며 원본 문서의 파일명을 포함합니다(해당하는 경우)." #: ../../document.rst:2024 ../../document.rst:2030 ../../document.rst:2036 #: ../../document.rst:2050 ../../document.rst:2058 ../../document.rst:2066 @@ -5354,42 +4643,42 @@ msgstr "" #: 7e8cf3312cff4ac48dce16a36311f52a aa51fa3df40249eaa4a1e1a0d5310e13 #: d9e029f9473442ebbb79145d3e00c7d3 f2ab1deb6ba9463aaa494cc84adb11ea msgid "bool" -msgstr "" +msgstr "bool" #: ../../document.rst:2028 be46ed59c726495784dfc24c6c0e257d msgid "" "``True`` if this is a PDF document and contains unsaved changes, else " "``False``." -msgstr "" +msgstr "이것이 PDF 문서이고 저장되지 않은 변경 사항이 포함되어 있으면 ``True``, 그렇지 않으면 ``False``." #: ../../document.rst:2034 b53c8bd571224a64808858ec1262f49c msgid "``True`` if this is a PDF document, else ``False``." -msgstr "" +msgstr "이것이 PDF 문서이면 ``True``, 그렇지 않으면 ``False``." #: ../../document.rst:2040 5b077860c7f84173a695652fa22ede87 msgid "" "``False`` if this is not a PDF or has no form fields, otherwise the " "number of root form fields (fields with no ancestors)." -msgstr "" +msgstr "이것이 PDF가 아니거나 양식 필드가 없으면 ``False``, 그렇지 않으면 루트 양식 필드 수(조상이 없는 필드)." #: ../../document.rst:2042 c94346686fa04426a6f4827511abb382 msgid "*(Changed in v1.16.4)* Returns the total number of (root) form fields." -msgstr "" +msgstr "*(v1.16.4에서 변경됨)* (루트) 양식 필드의 총 수를 반환합니다." #: ../../document.rst:2044 64d2a67af100488b8d2efa6e1883d02a msgid "bool,int" -msgstr "" +msgstr "bool,int" #: ../../document.rst:2048 c2a8e91d886f4dd39afa57c9e57ace12 msgid "" "``True`` if document has a variable page layout (like e-books or HTML). " "In this case you can set the desired page dimensions during document " "creation (open) or via method :meth:`layout`." -msgstr "" +msgstr "문서에 가변 페이지 레이아웃(예: 전자책 또는 HTML)이 있으면 ``True``. 이 경우 문서 생성(열기) 중 또는 메서드 :meth:`layout` 을 통해 원하는 페이지 크기를 설정할 수 있습니다." #: ../../document.rst:2054 097934b832ba49788816a0be330fcc4d msgid "New in v1.18.2" -msgstr "" +msgstr "v1.18.2에서 새로 추가됨" #: ../../document.rst:2056 a3953a101b3d436c889b977615129521 msgid "" @@ -5397,46 +4686,46 @@ msgid "" " issues). Always ``False`` for non-PDF documents. If true, more details " "have been stored in `TOOLS.mupdf_warnings()`, and " ":meth:`Document.can_save_incrementally` will return ``False``." -msgstr "" +msgstr "PDF가 열기 중에 복구되었으면(주요 구조 문제로 인해) ``True``. 비PDF 문서의 경우 항상 ``False``. true인 경우 `TOOLS.mupdf_warnings()` 에 더 자세한 정보가 저장되며 :meth:`Document.can_save_incrementally` 는 ``False`` 를 반환합니다." #: ../../document.rst:2064 2cce725fd9f3422f8aecbdee94679aea msgid "``True`` if PDF is in linearized format. ``False`` for non-PDF documents." -msgstr "" +msgstr "PDF가 선형화 형식이면 ``True``. 비PDF 문서의 경우 ``False``." #: ../../document.rst:2072 f3bed56567f343e7be019a7113151958 msgid "" "A dictionary indicating the `/MarkInfo` value. If not specified, the " "empty dictionary is returned. If not a PDF, `None` is returned." -msgstr "" +msgstr "`/MarkInfo` 값을 나타내는 딕셔너리. 지정되지 않으면 빈 딕셔너리가 반환됩니다. PDF가 아니면 `None` 이 반환됩니다." #: ../../document.rst:2074 ../../document.rst:2138 #: 4fac34bbddf141cc9db4746145385918 c43c67dc2942407d8e9945f28ce574e8 msgid "dict" -msgstr "" +msgstr "dict" #: ../../document.rst:2080 3c2381448f9746669bed68baf5d9bb53 msgid "" "A string containing the `/PageMode` value. If not specified, the default " "\"UseNone\" is returned. If not a PDF, `None` is returned." -msgstr "" +msgstr "`/PageMode` 값을 포함하는 문자열. 지정되지 않으면 기본값 \"UseNone\" 이 반환됩니다. PDF가 아니면 `None` 이 반환됩니다." #: ../../document.rst:2082 ../../document.rst:2090 ../../document.rst:2144 #: 3be5c37120cd4a79b8474f458308b81a 531912d21abf43ce967a311e2f37dbb5 #: 68eeac57aeee49e799a0fb10f3ff10db msgid "str" -msgstr "" +msgstr "str" #: ../../document.rst:2088 94d13e47f92c425ca9ceffd8061d5b3c msgid "" "A string containing the `/PageLayout` value. If not specified, the " "default \"SinglePage\" is returned. If not a PDF, `None` is returned." -msgstr "" +msgstr "`/PageLayout` 값을 포함하는 문자열. 지정되지 않으면 기본값 \"SinglePage\" 가 반환됩니다. PDF가 아니면 `None` 이 반환됩니다." #: ../../document.rst:2096 376302c8e2864821a4ed3203d7970057 msgid "" "An integer counting the number of versions present in the document. Zero " "if not a PDF, otherwise the number of incremental saves plus one." -msgstr "" +msgstr "문서에 있는 버전 수를 계산하는 정수. PDF가 아니면 0, 그렇지 않으면 증분 저장 수에 1을 더한 값." #: ../../document.rst:2098 ../../document.rst:2118 ../../document.rst:2150 #: ../../document.rst:2158 ../../document.rst:2166 @@ -5444,27 +4733,27 @@ msgstr "" #: 6dc1779125fa4a5e89941961eedf2852 c694fc32adcc41ba87ad799a94b4e7e4 #: e3e8e1e7807b4796bdf0baacbe43920e msgid "int" -msgstr "" +msgstr "int" #: ../../document.rst:2102 15c8db41a1944a7bbc1153ac5f6933af msgid "" "Indicates whether the document is password-protected against access. This" " indicator remains unchanged -- **even after the document has been " "authenticated**. Precludes incremental saves if true." -msgstr "" +msgstr "문서가 액세스에 대해 비밀번호로 보호되는지 여부를 나타냅니다. 이 표시기는 변경되지 않습니다 -- **문서가 인증된 후에도**. true이면 증분 저장을 제외합니다." #: ../../document.rst:2108 cfd83d7fc9914f1ea0b309e4421dafc9 msgid "" "This indicator initially equals :attr:`Document.needs_pass`. After " "successful authentication, it is set to ``False`` to reflect the " "situation." -msgstr "" +msgstr "이 표시기는 처음에 :attr:`Document.needs_pass` 와 같습니다. 성공적인 인증 후 상황을 반영하도록 ``False`` 로 설정됩니다." #: ../../document.rst:2114 9694db51001240f19eb22fb0d5f7c271 msgid "" "Changed in v1.16.0: This is now an integer comprised of bit indicators. " "Was a dictionary previously." -msgstr "" +msgstr "v1.16.0에서 변경됨: 이것은 이제 비트 표시기로 구성된 정수입니다. 이전에는 딕셔너리였습니다." #: ../../document.rst:2116 1db1f23f8ebc4475b568658aa43f199a msgid "" @@ -5472,7 +4761,7 @@ msgid "" "containing bool values in respective bit positions. For example, if " "*doc.permissions & pymupdf.PDF_PERM_MODIFY > 0*, you may change the " "document. See :ref:`PermissionCodes` for details." -msgstr "" +msgstr "문서 액세스 권한을 포함합니다. 이것은 각 비트 위치에 bool 값을 포함하는 정수입니다. 예를 들어 *doc.permissions & pymupdf.PDF_PERM_MODIFY > 0* 이면 문서를 변경할 수 있습니다. 자세한 내용은 :ref:`PermissionCodes` 를 참조하세요." #: ../../document.rst:2122 7962fdc44f174396b7e69eae4e54c130 msgid "" @@ -5481,7 +4770,7 @@ msgid "" "*encryption*, *title*, *author*, *subject*, *keywords*, *creator*, " "*producer*, *creationDate*, *modDate*, *trapped*. All item values are " "strings or `None`." -msgstr "" +msgstr "Python 딕셔너리 또는 `None` (만약 *is_encrypted=True* 및 *needPass=True* 인 경우)로 문서의 메타 데이터를 포함합니다. 키는 *format*, *encryption*, *title*, *author*, *subject*, *keywords*, *creator*, *producer*, *creationDate*, *modDate*, *trapped* 입니다. 모든 항목 값은 문자열 또는 `None` 입니다." #: ../../document.rst:2124 6cfc801351f94f7b861f48bb410d28c7 msgid "" @@ -5489,11 +4778,11 @@ msgid "" "correspond in an obvious way to the PDF keys */Creator*, */Producer*, " "*/CreationDate*, */ModDate*, */Title*, */Author*, */Subject*, */Trapped* " "and */Keywords* respectively." -msgstr "" +msgstr "*format* 및 *encryption* 을 제외하고, PDF 문서의 경우 키 이름은 PDF 키 */Creator*, */Producer*, */CreationDate*, */ModDate*, */Title*, */Author*, */Subject*, */Trapped* 및 */Keywords* 와 각각 명확하게 대응합니다." #: ../../document.rst:2126 f20bf71e53de47268b103331add7edf9 msgid "*format* contains the document format (e.g. 'PDF-1.6', 'XPS', 'EPUB')." -msgstr "" +msgstr "*format* 는 문서 형식을 포함합니다(예: 'PDF-1.6', 'XPS', 'EPUB')." #: ../../document.rst:2128 3efef9d77a4c425db7765bd868246cfe msgid "" @@ -5502,75 +4791,75 @@ msgid "" "encryption method may be specified **even if** *needs_pass=False*. In " "such cases not all permissions will probably have been granted. Check " ":attr:`Document.permissions` for details." -msgstr "" +msgstr "*encryption* 는 `None` (암호화 없음) 또는 암호화 방법을 명명하는 문자열(예: *'Standard V4 R4 128-bit RC4'*)을 포함합니다. *needs_pass=False* 인 경우에도 암호화 방법이 지정될 수 있습니다. 이러한 경우 모든 권한이 부여되지 않았을 수 있습니다. 자세한 내용은 :attr:`Document.permissions` 를 확인하세요." #: ../../document.rst:2130 9d90a31d5dc443e499dc24e80ac6a7fd msgid "" "If the date fields contain valid data (which need not be the case at " "all!), they are strings in the PDF-specific timestamp format " "\"D:\", where" -msgstr "" +msgstr "날짜 필드에 유효한 데이터가 포함되어 있으면(항상 그런 것은 아님!), PDF 특정 타임스탬프 형식 \"D:\" 의 문자열입니다. 여기서" #: ../../document.rst:2132 20a10dd0049e479fb79845780b64734a msgid "" " is the 12 character ISO timestamp *YYYYMMDDhhmmss* (*YYYY* - year, " "*MM* - month, *DD* - day, *hh* - hour, *mm* - minute, *ss* - second), and" -msgstr "" +msgstr " 는 12자 ISO 타임스탬프 *YYYYMMDDhhmmss* (*YYYY* - 연도, *MM* - 월, *DD* - 일, *hh* - 시, *mm* - 분, *ss* - 초)이며," #: ../../document.rst:2134 5da96c47c93747d58f34b49ac5ef58cd msgid "" " is a time zone value (time interval relative to GMT) containing a " "sign ('+' or '-'), the hour (*hh*), and the minute (*'mm'*, note the " "apostrophes!)." -msgstr "" +msgstr " 는 부호('+' 또는 '-'), 시간(*hh*), 분(*'mm'*, 아포스트로피 주의!)을 포함하는 시간대 값(GMT 기준 시간 간격)입니다." #: ../../document.rst:2136 22d1786adac24570a27a1aae46488101 msgid "" "A Paraguayan value might hence look like *D:20150415131602-04'00'*, which" " corresponds to the timestamp April 15, 2015, at 1:16:02 pm local time " "Asuncion." -msgstr "" +msgstr "파라과이 값은 따라서 *D:20150415131602-04'00'* 와 같이 보일 수 있으며, 이것은 2015년 4월 15일 오후 1:16:02 아순시온 현지 시간의 타임스탬프에 해당합니다." #: ../../document.rst:2142 b0cf324cb8914ca695f619ae42bd9652 msgid "" "Contains the *filename* or *filetype* value with which *Document* was " "created." -msgstr "" +msgstr "*Document* 가 생성된 *filename* 또는 *filetype* 값을 포함합니다." #: ../../document.rst:2148 7f4ed0f5c41e456189313cbfc5952e49 msgid "" "Contains the number of pages of the document. May return 0 for documents " "with no pages. Function `len(doc)` will also deliver this result." -msgstr "" +msgstr "문서의 페이지 수를 포함합니다. 페이지가 없는 문서의 경우 0을 반환할 수 있습니다. 함수 `len(doc)` 도 이 결과를 제공합니다." #: ../../document.rst:2154 ../../document.rst:2162 #: 73610f94f5a34127a2dda3a113913b25 c06566f44d3f4e20a91862264e4a1c99 msgid "New in v1.17.0" -msgstr "" +msgstr "v1.17.0에서 새로 추가됨" #: ../../document.rst:2156 8cf8164c876c405e800d30202732e6f6 msgid "" "Contains the number of chapters in the document. Always at least 1. " "Relevant only for document types with chapter support (EPUB currently). " "Other documents will return 1." -msgstr "" +msgstr "문서의 장 수를 포함합니다. 항상 최소 1입니다. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련이 있습니다. 다른 문서는 1을 반환합니다." #: ../../document.rst:2164 e5dfbd74ae114264bf5b918a7e215bda msgid "" "Contains (chapter, pno) of the document's last page. Relevant only for " "document types with chapter support (EPUB currently). Other documents " "will return `(0, page_count - 1)` and `(0, -1)` if it has no pages." -msgstr "" +msgstr "문서의 마지막 페이지의 (chapter, pno)를 포함합니다. 장 지원이 있는 문서 타입(현재 EPUB)에만 관련이 있습니다. 다른 문서는 `(0, page_count - 1)` 을 반환하고 페이지가 없으면 `(0, -1)` 을 반환합니다." #: ../../document.rst:2170 6161488e20a3440a8af171ec632bfd3e msgid "" "A list of form field font names defined in the */AcroForm* object. `None`" " if not a PDF." -msgstr "" +msgstr "*/AcroForm* 객체에 정의된 양식 필드 폰트 이름 목록. PDF가 아니면 `None`." #: ../../document.rst:2172 ef0288df376442b1b18ffdc60b13aad3 msgid "list" -msgstr "" +msgstr "list" #: ../../document.rst:2174 3cddcafda79b4acfa4346bad9396da59 msgid "" @@ -5582,11 +4871,11 @@ msgid "" "counts, tables of content and the like. Remember to keep such variables " "up to date or delete orphaned objects. Also refer to " ":ref:`ReferenialIntegrity`." -msgstr "" +msgstr "PDF 구조를 변경하는 메서드(:meth:`insert_pdf`, :meth:`select`, :meth:`copy_page`, :meth:`delete_page` 등)의 경우 프로그램의 객체나 속성이 무효화되거나 고아가 되었을 수 있습니다. 예는 :ref:`Page` 객체와 그 자식(링크, 주석, 위젯), 이전 페이지 수를 보유하는 변수, 목차 등입니다. 이러한 변수를 최신 상태로 유지하거나 고아 객체를 삭제하세요. 또한 :ref:`ReferenialIntegrity` 를 참조하세요." #: ../../document.rst:2177 a2398cf6ad98476d944c903b70fee21b msgid ":meth:`set_metadata` Example" -msgstr "" +msgstr ":meth:`set_metadata` 예제" #: ../../document.rst:2178 ddf7de671f964452acd94d777e10a07d msgid "" @@ -5595,11 +4884,11 @@ msgid "" "*garbage > 0*. Only then the old */Info* object will also be physically " "removed from the file. In this case, you may also want to clear any XML " "metadata inserted by several PDF editors:" -msgstr "" +msgstr "메타데이터 정보를 지웁니다. 개인정보/데이터 보호 우려로 이 작업을 수행하는 경우 *garbage > 0* 로 문서를 새 파일로 저장하세요. 그때만 이전 */Info* 객체도 파일에서 물리적으로 제거됩니다. 이 경우 여러 PDF 편집기에서 삽입한 XML 메타데이터도 지우는 것이 좋습니다:" #: ../../document.rst:2196 642d2b67cd2f40c088b9ab627d5bcce7 msgid ":meth:`set_toc` Demonstration" -msgstr "" +msgstr ":meth:`set_toc` 데모" #: ../../document.rst:2197 23344c44c0964dfd87e2ed6368dfe5f2 msgid "" @@ -5608,15 +4897,15 @@ msgid "" "Utilities/blob/master/examples/import-toc/import.py>`_ and `export.py " "`_ in the examples directory." -msgstr "" +msgstr "이것은 목차를 수정하거나 추가하는 방법을 보여줍니다. 예제 디렉토리의 `import.py `_ 및 `export.py `_ 도 참조하세요." #: ../../document.rst:2217 c5bd350315cb42bb9d44f2ed5f142cf7 msgid ":meth:`insert_pdf` Examples" -msgstr "" +msgstr ":meth:`insert_pdf` 예제" #: ../../document.rst:2218 37f35aaa221e450b9c7923b3fb645393 msgid "**(1) Concatenate two documents including their TOCs:**" -msgstr "" +msgstr "**(1) TOC를 포함하여 두 문서를 연결합니다:**" #: ../../document.rst:2230 19d9ac4c4ce54408a9ff1fc42b2ec3ab msgid "" @@ -5627,27 +4916,27 @@ msgid "" "script `join.py `_ of the examples " "directory." -msgstr "" +msgstr "명백히, 더 일반적인 상황에서도 유사한 방법을 찾을 수 있습니다. 연속된 계층 수준이 1보다 많이 증가하지 않도록 하세요. *toc2* 세그먼트 앞뒤에 더미 북마크를 삽입하면 이러한 경우를 해결할 수 있습니다. 바로 사용할 수 있는 GUI(wxPython) 솔루션은 예제 디렉토리의 스크립트 `join.py `_ 에서 찾을 수 있습니다." #: ../../document.rst:2232 ec37bfa672424492b706bb55ae38792d msgid "**(2) More examples:**" -msgstr "" +msgstr "**(2) 추가 예제:**" #: ../../document.rst:2244 daa47d21176046b3b8cdcc9a15eff373 msgid "Other Examples" -msgstr "" +msgstr "기타 예제" #: ../../document.rst:2245 25b5f7ff173e4cbb974822ddf15bda53 msgid "**Extract all page-referenced images of a PDF into separate PNG files**::" -msgstr "" +msgstr "**PDF의 모든 페이지 참조 이미지를 별도의 PNG 파일로 추출합니다**::" #: ../../document.rst:2260 9dcc333da1824dcb84886586cf37039d msgid "**Rotate all pages of a PDF:**" -msgstr "" +msgstr "**PDF의 모든 페이지를 회전합니다:**" #: ../../document.rst:2265 00e524b709ed425197a1390a21596acd msgid "Footnotes" -msgstr "" +msgstr "각주" #: ../../document.rst:2266 a15a2e8120a74e39a05d411ee7c1c7d1 msgid "" @@ -5655,7 +4944,7 @@ msgid "" " on a page. PDF uses a specialized mini language similar to PostScript to" " do this (pp. 643 in :ref:`AdobeManual`), which gets interpreted when a " "page is loaded." -msgstr "" +msgstr "콘텐츠 스트림은 페이지에서 무엇(예: 텍스트 또는 이미지)이 어디에 어떻게 나타나는지 설명합니다. PDF는 이를 위해 PostScript와 유사한 특수 미니 언어를 사용합니다(:ref:`AdobeManual` 643페이지). 페이지가 로드될 때 해석됩니다." #: ../../document.rst:2268 ca3b618244bb41b19d1e10271e0d41c1 msgid "" @@ -5664,7 +4953,7 @@ msgid "" "copy this information over to the output PDF. See demo `convert.py " "`_." -msgstr "" +msgstr "그러나 :meth:`Document.get_toc` 및 :meth:`Page.get_links` (모든 문서 타입에서 사용 가능)를 사용하여 이 정보를 출력 PDF로 복사할 수 있습니다. 데모 `convert.py `_ 를 참조하세요." #: ../../document.rst:2270 6f0e49f40f3b42b282cf974f985eacf7 msgid "" @@ -5675,18 +4964,18 @@ msgid "" ":meth:`Document.next_location`, :meth:`Document.prev_location` and " ":attr:`Document.last_location` for maintaining a high level of coding " "efficiency." -msgstr "" +msgstr "적용 가능한(EPUB) 문서 타입의 경우 절대 번호를 통해 페이지를 로드하면 페이지에 액세스하기 전에 문서의 큰 부분이 레이아웃될 수 있습니다. 이 성능 영향을 피하려면 장 기반 액세스를 선호하세요. 높은 수준의 코딩 효율성을 유지하기 위해 편의 메서드 및 속성 :meth:`Document.next_location`, :meth:`Document.prev_location` 및 :attr:`Document.last_location` 을 사용하세요." #: ../../document.rst:2272 7e142ce80a5a4b0a88149a89bca628b3 msgid "" "These parameters cause separate handling of stream categories: use it " "together with `expand` to restrict decompression to streams other than " "images / fontfiles." -msgstr "" +msgstr "이 매개변수는 스트림 카테고리의 별도 처리를 유발합니다: 이미지/폰트 파일이 아닌 스트림으로 압축 해제를 제한하려면 `expand` 와 함께 사용하세요." #: ../../document.rst:2274 03c1d89d03c1475593eabb3e4292b9a3 msgid "Examples for \"Form XObjects\" are created by :meth:`Page.show_pdf_page`." -msgstr "" +msgstr "\"Form XObjects\" 예제는 :meth:`Page.show_pdf_page` 로 생성됩니다." #: ../../document.rst:2276 7a2f02a6696b4fbe97fb5959655cf631 msgid "" @@ -5698,7 +4987,7 @@ msgid "" "pages) -- both have no annotations -- the method needs about 11 ms for " "the answer ``False``. So response times will probably become significant " "only well beyond this order of magnitude." -msgstr "" +msgstr "``False`` 의 경우 **전체 문서** 를 스캔해야 합니다. 두 메서드 모두 **페이지를 로드하지 않고** 객체 정의만 스캔합니다. 이것은 애플리케이션 수준 루프(총 응답 시간이 모든 페이지를 로드하는 시간과 거의 같음)보다 최소 10배 빠릅니다. :ref:`AdobeManual` (756페이지) 및 Pandas 문서(3070페이지 이상)의 경우 -- 둘 다 주석이 없음 -- 메서드는 답변 ``False`` 에 대해 약 11ms가 필요합니다. 따라서 응답 시간은 이 자릿수를 훨씬 넘어서야만 중요해질 것입니다." #: ../../document.rst:2278 877071710b344f2f93ce93231f4a36a5 msgid "" @@ -5706,9 +4995,9 @@ msgid "" " text covered by some image on top of it, then this is undetectable and " "the respective text is **not** removed. Similar is true for white text on" " white background, and so on." -msgstr "" +msgstr "이것은 특정 조건에서만 작동합니다. 예를 들어, 일부 이미지로 덮인 일반 텍스트가 있으면 이것은 감지할 수 없으며 해당 텍스트는 **제거되지 않습니다**. 흰색 배경의 흰색 텍스트 등도 마찬가지입니다." #: ../../footer.rst:46 1a755c93e67b4ba193138e8e29cfc599 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/faq.mo b/docs/locales/ko/LC_MESSAGES/faq.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..88b2cd306b1f8a965c4ac51a3f2605a6f5ef83f3 100644 GIT binary patch literal 1475 zcmZWo-)|d55I$%T!n`3~Ks*c)AW(WHc2rVbeyDD2Q%iR3ItHmcb#q?Z2ba6k-nzsn z4}myRl%xWLErntSqZX1>Mwk{wuE>9aRNixY{{T8Rm#Gep15DyS%5GP-hq_1$T zBEEzEQ{0q8yl^o%=O*Io=-)!L5DmmP5&uQ}8u35GG~(Jz_@gjdQEnHhs#(-lphT8+ z3T6csO@mW|+jHSxrTpT;Z7Bh&sq0kbnrV1hEZ7H{0Tb8FFXfUs0Tq+25bgogZOy1c zp^>W>lIf_FU|g%vRVkggDPaIgbd^JDl{4ZWcnQ223bB&J6JDS zy2d$H3fx6TiN_DUhFR9i)LSg6OtZLD&?&Jg*pw<#NDDL@2-LJ{O|~fW$r~!gExd+3 z>e@0Rtl@W4CY%6L9@8ZT(HpjgG}JLYcn?;Hp;>j^C*g_Yb@e_m%3$&uWgkG6A zwo$26!|EeH*r1wTqd;^W!j5gITfj|N3;ngIRAA=kcnfl-EPoovq99{mW{5@OA4O*( zMQWLh%Q?HMmE~*os*RVUK%|f_$s>j2B;izn_*DF|9E-{E%MhPdrl%*T@WVv8NbhK# z>vyDRoLot-Ub=fT>YP5C>aMf9MaAyLne^KXA8)AdXw&xDyP5=>FyWF%$>u&qSTa>+X+xL591z>m?0a zf$JP2$6mO3qbr(!;`+H6LP{PzucyIK{4#Lcd!jiM_gdqT^4NKg-Whxgr^A7}v5uUF zqS^8LygR^}ZgVhZg=IyvdkIF&@JzA){W;N2ANP=pv;FI6DxL0$&wJPTx$peeKPMH2 n!&)AR@x*}hs405Q(dXYGY2o@ delta 60 vcmX@iy@FZio)F7a1|VPrVi_P-0dbIk4v<|1l+*>%o0FKz8CebVjJX&9-$@2@ diff --git a/docs/locales/ko/LC_MESSAGES/faq.po b/docs/locales/ko/LC_MESSAGES/faq.po index 5c2254055..7d222e109 100644 --- a/docs/locales/ko/LC_MESSAGES/faq.po +++ b/docs/locales/ko/LC_MESSAGES/faq.po @@ -21,37 +21,37 @@ msgstr "" #: ../../header.rst:-1 26b7c00502e4429388cabf9a042f5238 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 7a2feb7c7c9a4331ab92ee52778c6ed3 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 6f902b541af847b1b3f894dde5be9209 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../faq.rst:7 6ac2612360e64fa9b4c17369cb8c60f3 msgid "FAQ" -msgstr "" +msgstr "자주 묻는 질문" #: ../../faq.rst:9 dcceb2d26f344dca90e1cf158b5648f4 -msgid "A collection of recipes in “How-To” format for using PyMuPDF." -msgstr "" +msgid "A collection of recipes in "How-To" format for using PyMuPDF." +msgstr "PyMuPDF 사용을 위한 "사용 방법" 형식의 레시피 모음입니다." #: ../../faq.rst:12 5c72bd18a4a24c00a6a60585bc9f17d3 msgid "Please see:" -msgstr "" +msgstr "다음을 참조하세요:" #: ../../faq.rst:14 9b73bbc3abad40ddbe598984f532aa9d msgid ":ref:`Recipes: Table of Contents`" -msgstr "" +msgstr ":ref:`레시피: 목차`" #: ../../footer.rst:46 c31113147f904375bfc8ba0a1e1c1959 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/font.mo b/docs/locales/ko/LC_MESSAGES/font.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..411851fa114f509e24ffbb97e86b04b899fef290 100644 GIT binary patch literal 27875 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, " "there are also new \"reserved\" fontnames available, which are listed in " ":attr:`fitz_fonts` and in the table further down." -msgstr "" +msgstr ":ref:`Base-14-Fonts` 또는 CJK 글꼴 이름 중 하나. (올바른 철자를 주의하세요) \"Arial\", \"Times\", \"Times Roman\"과 같은 몇 가지 다른 이름도 가능합니다. *(v1.17.5에서 변경됨)* `pymupdf-fonts `_ 를 설치한 경우, :attr:`fitz_fonts` 및 아래 표에 나열된 새로운 \"예약된\" 글꼴 이름도 사용할 수 있습니다." #: ../../font.rst:62 4f54e9a21f4e4cdd94eb896e84a11207 msgid "" "one of the :ref:`Base-14-Fonts` or CJK fontnames. Also possible are a " "select few other names like (watch the correct spelling): \"Arial\", " "\"Times\", \"Times Roman\"." -msgstr "" +msgstr ":ref:`Base-14-Fonts` 또는 CJK 글꼴 이름 중 하나. (올바른 철자를 주의하세요) \"Arial\", \"Times\", \"Times Roman\"과 같은 몇 가지 다른 이름도 가능합니다." #: ../../font.rst:64 33128ec921644adcb669eed87f58d1ad msgid "*(Changed in v1.17.5)*" -msgstr "" +msgstr "*(v1.17.5에서 변경됨)*" #: ../../font.rst:66 2580ac163f6d40a6a97df2667e044b70 msgid "" "If you have installed `pymupdf-fonts `_, there are also new \"reserved\" fontnames available, which are" " listed in :attr:`fitz_fonts` and in the table further down." -msgstr "" +msgstr "`pymupdf-fonts `_ 를 설치한 경우, :attr:`fitz_fonts` 및 아래 표에 나열된 새로운 \"예약된\" 글꼴 이름도 사용할 수 있습니다." #: ../../font.rst:68 0115b8805a994350b1e9b88652d9c671 msgid "the filename of a fontfile somewhere on your system [#f1]_." -msgstr "" +msgstr "시스템 어딘가에 있는 글꼴 파일의 파일 이름 [#f1]_." #: ../../font.rst:69 855671c475ce4d4a95574d50da436fa8 msgid "a fontfile loaded in memory [#f1]_." -msgstr "" +msgstr "메모리에 로드된 글꼴 파일 [#f1]_." #: ../../font.rst:70 b4cd7e175eb14d658f5faa379b3ef701 msgid "" "the number of a UCDN script. Currently supported in PyMuPDF are numbers " "24, and 32 through 35." -msgstr "" +msgstr "UCDN 스크립트 번호. 현재 |PyMuPDF| 에서 지원되는 번호는 24, 32부터 35까지입니다." #: ../../font.rst:71 d5a5fc15ea7c4e1b8d26964a61b402e8 msgid "" @@ -287,23 +287,23 @@ msgid "" "(simplified Chinese), \"ja\" (Japanese) and \"ko\" (Korean). Otherwise, " "all ISO 639 codes from the subsets 1, 2, 3 and 5 are also possible, but " "are currently documentary only." -msgstr "" +msgstr "\"zh-Hant\"(번체 중국어), \"zh-Hans\"(간체 중국어), \"ja\"(일본어), \"ko\"(한국어) 값 중 하나. 그렇지 않으면 하위 집합 1, 2, 3 및 5의 모든 ISO 639 코드도 가능하지만 현재는 문서화만 되어 있습니다." #: ../../font.rst:72 5b0e786be58c4a09a48eacc61882197e msgid "an alternative selector for one of the CJK fonts." -msgstr "" +msgstr "CJK 글꼴 중 하나에 대한 대체 선택자." #: ../../font.rst:73 6af1f2fb252e4071bab746f2ad57c01d msgid "look for a bold font." -msgstr "" +msgstr "굵은 글꼴을 찾습니다." #: ../../font.rst:74 6f2bffef2aa94c92b00fa9cf6d97a283 msgid "look for an italic font." -msgstr "" +msgstr "이탤릭 글꼴을 찾습니다." #: ../../font.rst:75 23ca0f2751ed4b2f834236f7e744dd36 msgid "look for a serifed font." -msgstr "" +msgstr "세리프 글꼴을 찾습니다." #: ../../font.rst 1d22b29a05e741f387368f96870d4c1b #: 1e8b6f0bc4da4c4db71fcd4ce33f7f4d 1ebfff0006a54633b2e48a4cf728c55b @@ -311,7 +311,7 @@ msgstr "" #: 3b8e58b5a2034fddbba0b9f34d785351 425ebf256d4842928912c98469178b2e #: 455992af6eea4168919f71ca6e0a63e9 7512b5e1267b491c80d9886fcb846c91 msgid "Returns" -msgstr "" +msgstr "Returns" #: ../../font.rst:77 d564d7e503224782b914ea4c4d4bd55b msgid "" @@ -332,66 +332,66 @@ msgstr "" msgid "" "a |MuPDF| font if successful. This is the overall sequence of checks to " "determine an appropriate font:" -msgstr "" +msgstr "성공하면 |MuPDF| 글꼴. 적절한 글꼴을 결정하기 위한 전체 확인 순서는 다음과 같습니다:" #: ../../font.rst:80 580ec24b97e749299e613764ef3403c6 msgid "Argument" -msgstr "" +msgstr "Argument" #: ../../font.rst:80 c41ca6b5584649b586f676f06f22549b msgid "Action" -msgstr "" +msgstr "Action" #: ../../font.rst:82 98333181f4584c9c8bca13c85c415262 msgid "fontfile?" -msgstr "" +msgstr "fontfile?" #: ../../font.rst:82 73d6da924f634bc7b6e4fe044072fe6d msgid "Create font from file, exception if failure." -msgstr "" +msgstr "파일에서 글꼴 생성, 실패 시 예외 발생." #: ../../font.rst:83 130073b0bea44ffc890479cdb5f5340d msgid "fontbuffer?" -msgstr "" +msgstr "fontbuffer?" #: ../../font.rst:83 a74986c74e6843eea78fcc35d447c3a2 msgid "Create font from buffer, exception if failure." -msgstr "" +msgstr "버퍼에서 글꼴 생성, 실패 시 예외 발생." #: ../../font.rst:84 29919d8588f5493dafda4cfe7f0555b1 msgid "ordering>=0" -msgstr "" +msgstr "ordering>=0" #: ../../font.rst:84 3f0b6b784f1742238213e67a82078abf msgid "Create universal font, always succeeds." -msgstr "" +msgstr "범용 글꼴 생성, 항상 성공." #: ../../font.rst:85 fe70636ee76b429da54199e913507119 msgid "fontname?" -msgstr "" +msgstr "fontname?" #: ../../font.rst:85 a411aeb787b5416f854bb729f143e0b6 msgid "" "Create a Base-14 font, universal font, or font provided by `pymupdf-fonts" " `_. See table below." -msgstr "" +msgstr "Base-14 글꼴, 범용 글꼴 또는 `pymupdf-fonts `_ 에서 제공하는 글꼴을 생성합니다. 아래 표를 참조하세요." #: ../../font.rst:92 d6d370d9961e418c8c6a25a191d46651 msgid "" "With the usual reserved names \"helv\", \"tiro\", etc., you will create " "fonts with the expected names \"Helvetica\", \"Times-Roman\" and so on. " "**However**, and in contrast to :meth:`Page.insert_font` and friends," -msgstr "" +msgstr "일반적인 예약된 이름 \"helv\", \"tiro\" 등을 사용하면 예상되는 이름 \"Helvetica\", \"Times-Roman\" 등의 글꼴이 생성됩니다. **그러나** :meth:`Page.insert_font` 및 유사한 메서드와 달리," #: ../../font.rst:94 31fed8debc7c42ca9166ee0b1ef74c98 msgid "a font file will **always** be embedded in your PDF," -msgstr "" +msgstr "글꼴 파일이 **항상** PDF에 임베드됩니다," #: ../../font.rst:95 9b3d8892b4424474889b2416ef13836b msgid "" "Greek and Cyrillic characters are supported without needing the " "*encoding* parameter." -msgstr "" +msgstr "그리스 문자 및 키릴 문자는 *encoding* 매개변수 없이 지원됩니다." #: ../../font.rst:97 c07988cc48644ac8846d43cf555ae595 msgid "" @@ -400,7 +400,7 @@ msgid "" " **\"Droid Sans Fallback Regular\"**. This font supports **all Chinese, " "Japanese, Korean and Latin characters**, including Greek and Cyrillic. " "This is a sans-serif font." -msgstr "" +msgstr "*ordering >= 0* 또는 글꼴 이름 \"cjk\", \"china-t\", \"china-s\", \"japan\" 또는 \"korea\"를 사용하면 **항상 동일한 \"범용\"** 글꼴 **\"Droid Sans Fallback Regular\"** 이 생성됩니다. 이 글꼴은 그리스 문자 및 키릴 문자를 포함하여 **모든 중국어, 일본어, 한국어 및 라틴 문자** 를 지원합니다. 이것은 산세리프 글꼴입니다." #: ../../font.rst:99 6db4519008e44ee682c2a27e4d316f4b msgid "" @@ -409,7 +409,7 @@ msgid "" "relatively large and adds about 1.65 MB (compressed) to your PDF file " "size. If you do not need CJK support, stick with specifying \"helv\", " "\"tiro\" etc., and you will get away with about 35 KB compressed." -msgstr "" +msgstr "실제로 **\"Droid Sans Fallback Regular\"** 외에 다른 산세리프 글꼴이 필요한 경우는 거의 없습니다. **다만** 이 글꼴 파일은 상대적으로 크며 PDF 파일 크기에 약 1.65 MB(압축됨)를 추가합니다. CJK 지원이 필요하지 않다면 \"helv\", \"tiro\" 등을 지정하고 약 35 KB(압축됨)로 처리할 수 있습니다." #: ../../font.rst:101 79c699cd0e0a44828e95752e5f6f2ebe msgid "" @@ -418,7 +418,7 @@ msgid "" "significantly (by a factor of up to three) speeds up execution: MuPDF " "will always find any character in this single font and never needs to " "check fallbacks." -msgstr "" +msgstr "CJK와 라틴 텍스트가 혼합되어 있다는 것을 **알고** 있다면, `Font(\"cjk\")` 를 사용하는 것을 고려하세요. 이것은 모든 것을 지원하며 실행 속도를 크게(최대 3배까지) 향상시킵니다: MuPDF는 항상 이 단일 글꼴에서 모든 문자를 찾을 수 있으며 대체 글꼴을 확인할 필요가 없습니다." #: ../../font.rst:103 71613c830de34e6f9ecdf39faec59a38 msgid "" @@ -426,7 +426,7 @@ msgid "" "to also write CJK characters: MuPDF detects this situation and silently " "falls back to the universal font (which will then of course also be " "embedded in your PDF)." -msgstr "" +msgstr "그러나 다른 글꼴을 사용하는 경우에도 CJK 문자를 자동으로 쓸 수 있습니다: MuPDF는 이 상황을 감지하고 자동으로 범용 글꼴로 대체합니다(그러면 물론 PDF에도 임베드됩니다)." #: ../../font.rst:105 f904db70b3d246e1b10894809cb39326 msgid "" @@ -440,44 +440,44 @@ msgid "" "Sans Fallback\" size (compressed 400 KB vs. 1.65 MB) -- **and** it " "provides the weights bold, italic, bold-italic -- which the universal " "font doesn't." -msgstr "" +msgstr "*(v1.17.5의 새로운 기능)* 선택적으로, `pymupdf-fonts `_ (`pip install pymupdf-fonts`)를 설치하면 일부 새로운 \"예약된\" 글꼴 이름 코드를 사용할 수 있습니다. **\"Fira Mono\"**는 고정폭 산세리프 글꼴 세트이고 **FiraGO**는 모든 라틴 문자(키릴 문자 및 그리스 문자 포함)와 태국어, 아랍어, 히브리어 및 데바나가리어를 지원하는 또 다른 비세리프 \"범용\" 글꼴 세트입니다 -- 하지만 CJK 언어는 지원하지 않습니다. FiraGO 글꼴의 크기는 \"Droid Sans Fallback\" 크기의 1/4에 불과합니다(압축 시 400 KB vs. 1.65 MB) -- **그리고** 굵게, 이탤릭, 굵은 이탤릭 가중치를 제공합니다 -- 범용 글꼴은 제공하지 않습니다." #: ../../font.rst:107 51115005ef5b45048d055b7507f8bde1 msgid "" "**\"Space Mono\"** is another nice and small mono-spaced font from Google" " Fonts, which supports Latin Extended characters and comes with all 4 " "important weights." -msgstr "" +msgstr "**\"Space Mono\"** 는 Google Fonts의 또 다른 좋고 작은 고정폭 글꼴로, Latin Extended 문자를 지원하며 모든 4가지 중요한 가중치를 제공합니다." #: ../../font.rst:109 96727739a91940c6a331ed087081f309 msgid "" "The following table maps a fontname code to the corresponding font. For " "the current content of the package please see its documentation:" -msgstr "" +msgstr "다음 표는 글꼴 이름 코드를 해당 글꼴에 매핑합니다. 패키지의 현재 내용은 해당 문서를 참조하세요:" #: ../../font.rst:112 1a8503b417cf4c8fada552e8610a6e75 msgid "Code" -msgstr "" +msgstr "Code" #: ../../font.rst:112 2d8f3f6732334560b3d503193be52bed msgid "Fontname" -msgstr "" +msgstr "Fontname" #: ../../font.rst:112 c74b2b12e6aa454b8f2dbb4143ffd7bf msgid "New in" -msgstr "" +msgstr "New in" #: ../../font.rst:112 09250ac84f2f444481bee3de0bd29007 msgid "Comment" -msgstr "" +msgstr "Comment" #: ../../font.rst:114 3092d884950f4b6eb710a9de0dd03966 msgid "figo" -msgstr "" +msgstr "figo" #: ../../font.rst:114 660c171a6c564814aecb4286056ec31a msgid "FiraGO Regular" -msgstr "" +msgstr "FiraGO Regular" #: ../../font.rst:114 ../../font.rst:115 ../../font.rst:116 ../../font.rst:117 #: ../../font.rst:118 ../../font.rst:119 3e80c8fdb0dd48d780069b2449ee507f @@ -485,222 +485,222 @@ msgstr "" #: 794afaec71784e91b7e817f22ead4ffe baa94f214aea4d77a1a5fad071d449f1 #: ed541c0c11684da3bebb342489caa3cb msgid "v1.0.0" -msgstr "" +msgstr "v1.0.0" #: ../../font.rst:114 aababde120ff4dbcbe21832121ff155b msgid "narrower than Helvetica" -msgstr "" +msgstr "Helvetica보다 좁음" #: ../../font.rst:115 01a9c98efef34d0aba6ba3fa0d37813b msgid "figbo" -msgstr "" +msgstr "figbo" #: ../../font.rst:115 b83719e8b5724cd69e516c29b9367ebb msgid "FiraGO Bold" -msgstr "" +msgstr "FiraGO Bold" #: ../../font.rst:116 4bbe563434c7425796dc77766d23c9c8 msgid "figit" -msgstr "" +msgstr "figit" #: ../../font.rst:116 480523c94e564e26be18e84adb38e861 msgid "FiraGO Italic" -msgstr "" +msgstr "FiraGO Italic" #: ../../font.rst:117 1e31c41d5df44c4fb09a83fdbd89e06d msgid "figbi" -msgstr "" +msgstr "figbi" #: ../../font.rst:117 0e71b818d3cd4256a6f49c7416f6b1ca msgid "FiraGO Bold Italic" -msgstr "" +msgstr "FiraGO Bold Italic" #: ../../font.rst:118 7137d532bea243b482a7189e3a3286f8 msgid "fimo" -msgstr "" +msgstr "fimo" #: ../../font.rst:118 d52c3785bf6c4c6c9fa414b6953b3c21 msgid "Fira Mono Regular" -msgstr "" +msgstr "Fira Mono Regular" #: ../../font.rst:119 a6bb6a057367406e8c6451c50221bd10 msgid "fimbo" -msgstr "" +msgstr "fimbo" #: ../../font.rst:119 a9be831c53d643c381182387817e7347 msgid "Fira Mono Bold" -msgstr "" +msgstr "Fira Mono Bold" #: ../../font.rst:120 2ff90048652c45d8ad808bd8e873a930 msgid "spacemo" -msgstr "" +msgstr "spacemo" #: ../../font.rst:120 10b17a9bdac441b2a4af57265d22e503 msgid "Space Mono Regular" -msgstr "" +msgstr "Space Mono Regular" #: ../../font.rst:120 ../../font.rst:121 ../../font.rst:122 ../../font.rst:123 #: 71f76d3cde6b47a3b8a7a0a571913454 74e5c245413f43a1b0bcd54884d11f9b #: 811a2ce8ecf443c3b7c4a0009f550f69 ad9d314c839645d1b264c21f9d500a5d msgid "v1.0.1" -msgstr "" +msgstr "v1.0.1" #: ../../font.rst:121 cc6628c7c246454785eae18aa76df135 msgid "spacembo" -msgstr "" +msgstr "spacembo" #: ../../font.rst:121 899d31ca415d4d60a771344775afb052 msgid "Space Mono Bold" -msgstr "" +msgstr "Space Mono Bold" #: ../../font.rst:122 0fa8a8df23aa46a18ebc85a45faef555 msgid "spacemit" -msgstr "" +msgstr "spacemit" #: ../../font.rst:122 121e740c51fa4e13b45b780076fdc770 msgid "Space Mono Italic" -msgstr "" +msgstr "Space Mono Italic" #: ../../font.rst:123 8c761931925c4c9080802855c8de2158 msgid "spacembi" -msgstr "" +msgstr "spacembi" #: ../../font.rst:123 c294981796074117b39f66e1d0fc697f msgid "Space Mono Bold-Italic" -msgstr "" +msgstr "Space Mono Bold-Italic" #: ../../font.rst:124 fb3d22993d774962addb0d5e18962566 msgid "math" -msgstr "" +msgstr "math" #: ../../font.rst:124 d72ffadba17c47d98e45bad69d43f48a msgid "Noto Sans Math Regular" -msgstr "" +msgstr "Noto Sans Math Regular" #: ../../font.rst:124 ../../font.rst:125 ../../font.rst:126 ../../font.rst:127 #: 4a51871589de44a49f3d817a3e4641ca a1e187ea3001421b848c3e15b2da294f #: c7f9419b4b474f9990c0e7b2548b89bd f44b20960c864e1a812db6b82ccc7b01 msgid "v1.0.2" -msgstr "" +msgstr "v1.0.2" #: ../../font.rst:124 3527017ccae847e198b6aa3fd407bf86 msgid "math symbols" -msgstr "" +msgstr "수학 기호" #: ../../font.rst:125 f0c044192be8422bbb062dcfe3fa3867 msgid "music" -msgstr "" +msgstr "music" #: ../../font.rst:125 5091921f86b8478b884595a229b30799 msgid "Noto Music Regular" -msgstr "" +msgstr "Noto Music Regular" #: ../../font.rst:125 0cfb05fc68a6412895e997a6f27ab557 msgid "musical symbols" -msgstr "" +msgstr "음악 기호" #: ../../font.rst:126 198d0ac76851400696fd7bfe7e9c60b3 msgid "symbol1" -msgstr "" +msgstr "symbol1" #: ../../font.rst:126 8bf74ea20b3d41c081691ba396ba7ec2 msgid "Noto Sans Symbols Regular" -msgstr "" +msgstr "Noto Sans Symbols Regular" #: ../../font.rst:126 96ef9a86cd4c4af9ad70de3493072981 msgid "replacement for \"symb\"" -msgstr "" +msgstr "\"symb\"의 대체" #: ../../font.rst:127 4eae35b6626f44edb67bbd03f28f00d6 msgid "symbol2" -msgstr "" +msgstr "symbol2" #: ../../font.rst:127 b1fdca63e3d74dd29efec985e0b244dc msgid "Noto Sans Symbols2 Regular" -msgstr "" +msgstr "Noto Sans Symbols2 Regular" #: ../../font.rst:127 0bd6d32f20eb48dd988041621b3d5200 msgid "extended symbol set" -msgstr "" +msgstr "확장 기호 세트" #: ../../font.rst:128 aa751e08f13849d1a55e72c6aebf8f49 msgid "notos" -msgstr "" +msgstr "notos" #: ../../font.rst:128 89dea662c0eb4c7eb232a7fdba6ebc9a msgid "Noto Sans Regular" -msgstr "" +msgstr "Noto Sans Regular" #: ../../font.rst:128 ../../font.rst:129 ../../font.rst:130 ../../font.rst:131 #: 459d3d0e43ff4bf5aa61c68e8e685e29 67cb7c095cf74781840d29e84aa0034b #: 91a98cec9643445d9d588f6c148714f4 d8bd23d980b1436583464316e47308db msgid "v1.0.3" -msgstr "" +msgstr "v1.0.3" #: ../../font.rst:128 6b98b595462b4d478057da307cdea30a msgid "alternative to Helvetica" -msgstr "" +msgstr "Helvetica의 대체" #: ../../font.rst:129 691a807af162494ab0b5af4186c9110c msgid "notosit" -msgstr "" +msgstr "notosit" #: ../../font.rst:129 24201a800ba0419c9bee4bf90edf8825 msgid "Noto Sans Italic" -msgstr "" +msgstr "Noto Sans Italic" #: ../../font.rst:130 4dd91c5ba63544bba1ceb32e1fdefd55 msgid "notosbo" -msgstr "" +msgstr "notosbo" #: ../../font.rst:130 ff244216f5904a4697fcab3f6d021a6a msgid "Noto Sans Bold" -msgstr "" +msgstr "Noto Sans Bold" #: ../../font.rst:131 aa8c2e1781f54593b3331c086c19b814 msgid "notosbi" -msgstr "" +msgstr "notosbi" #: ../../font.rst:131 6857edcacab24c27817264bb11d9bdad msgid "Noto Sans BoldItalic" -msgstr "" +msgstr "Noto Sans BoldItalic" #: ../../font.rst:141 2a37a1a4a1aa4945b8df8dbf7e64e154 msgid "" "Check whether the unicode ``chr`` exists in the font or (option) some " "fallback font. May be used to check whether any \"TOFU\" symbols will " "appear on output." -msgstr "" +msgstr "유니코드 ``chr`` 가 글꼴 또는 (선택적으로) 일부 대체 글꼴에 존재하는지 확인합니다. 출력에 \"TOFU\" 기호가 나타날지 확인하는 데 사용할 수 있습니다." #: ../../font.rst:143 009b9aeb3f9944d596e9f49f9899c324 msgid "the unicode of the character (i.e. ``ord()``)." -msgstr "" +msgstr "문자의 유니코드(즉, ``ord()``)." #: ../../font.rst:144 a8641b2b63ec4b07875c388e202271b9 msgid "the language -- currently unused." -msgstr "" +msgstr "언어 -- 현재 사용되지 않음." #: ../../font.rst:145 1bf9dc08f5954b5f965c6b5ea1570763 msgid "the UCDN script number." -msgstr "" +msgstr "UCDN 스크립트 번호." #: ../../font.rst:146 c652199037ea41779589cd7c702796e7 msgid "" "*(new in v1.17.5)* perform an extended search in fallback fonts or " "restrict to current font (default)." -msgstr "" +msgstr "*(v1.17.5의 새로운 기능)* 대체 글꼴에서 확장 검색을 수행하거나 현재 글꼴로 제한합니다(기본값)." #: ../../font.rst:147 97e5feeeb43a4af0bb9163c00cad3e2b msgid "*(changed in 1.17.7)* the glyph number. Zero indicates no glyph found." -msgstr "" +msgstr "*(1.17.7에서 변경됨)* 글리프 번호. 0은 글리프를 찾지 못했음을 나타냅니다." #: ../../font.rst:151 fed10a374e2445d1be29d1f78a496de5 msgid "New in v1.17.5" -msgstr "" +msgstr "v1.17.5에서 새로 추가됨" #: ../../font.rst:153 290f44f3033a469e89d5444b5d3ec4f9 msgid "Return an array of unicodes supported by this font." -msgstr "" +msgstr "이 글꼴이 지원하는 유니코드 배열을 반환합니다." #: ../../font.rst:155 ab16e827b27d4022b45b4c90a328da02 #, python-format @@ -723,18 +723,18 @@ msgid "" "I.e. ``chr()`` of every item in this array has a glyph in the font " "without using fallbacks. This is an example display of the supported " "glyphs:" -msgstr "" +msgstr "길이가 최대 :attr:`Font.glyph_count` 인 ``array.array`` [#f2]_. 즉, 이 배열의 모든 항목의 ``chr()`` 는 대체 글꼴을 사용하지 않고 글꼴에 글리프를 가집니다. 지원되는 글리프의 예제 표시는 다음과 같습니다:" #: ../../font.rst:183 c5ad65fa71a74dd9a63ab09809f0f9cf msgid "" "This method only returns meaningful data for fonts having a CMAP " "(character map, charmap, the `/ToUnicode` PDF key). Otherwise, this array" " will have length 1 and contain zero only." -msgstr "" +msgstr "이 메서드는 CMAP(문자 맵, charmap, `/ToUnicode` PDF 키)가 있는 글꼴에 대해서만 의미 있는 데이터를 반환합니다. 그렇지 않으면 이 배열의 길이는 1이고 0만 포함합니다." #: ../../font.rst:192 af8b042889b54a38b2a5ddd689449328 msgid "Calculate the \"width\" of the character's glyph (visual representation)." -msgstr "" +msgstr "문자 글리프의 \"너비\"를 계산합니다(시각적 표현)." #: ../../font.rst:194 c1f6c6b34907404e97ad72617e0fc346 msgid "" @@ -742,29 +742,29 @@ msgid "" "itself. Again, this should normally work even if a character is not " "supported by that font, because fallback fonts will be checked where " "necessary." -msgstr "" +msgstr "문자의 유니코드 번호. 문자 자체가 아닌 ``ord()`` 를 사용하세요. 다시 말하지만, 글꼴이 문자를 지원하지 않더라도 일반적으로 작동해야 합니다. 필요한 경우 대체 글꼴이 확인되기 때문입니다." #: ../../font.rst:195 e838a07682d84a869e2fa1cc89abf58a msgid "write mode, ``0`` = horizontal, ``1`` = vertical." -msgstr "" +msgstr "쓰기 모드, ``0`` = 가로, ``1`` = 세로." #: ../../font.rst:197 2dc7e2ceacbb4ef690b919a430d04d1b msgid "The other parameters are not in use currently." -msgstr "" +msgstr "다른 매개변수는 현재 사용되지 않습니다." #: ../../font.rst:199 e8423a5397284db1919f456052773ded msgid "a float representing the glyph's width relative to **fontsize 1**." -msgstr "" +msgstr "**fontsize 1** 에 상대적인 글리프 너비를 나타내는 float." #: ../../font.rst:203 47dc9dab1b4c4cb8b9e6a069008d81b1 msgid "" "Return the unicode value for a given glyph name. Use it in conjunction " "with `chr()` if you want to output e.g. a certain symbol." -msgstr "" +msgstr "주어진 글리프 이름에 대한 유니코드 값을 반환합니다. 예를 들어 특정 기호를 출력하려면 `chr()` 와 함께 사용하세요." #: ../../font.rst:205 749831c099134aa7bf7ffe282b0836b5 msgid "The name of the glyph." -msgstr "" +msgstr "글리프의 이름." #: ../../font.rst:207 377293d9901943dbb4c7c31c7985c7d9 msgid "" @@ -785,29 +785,29 @@ msgid "" "List `_ publication for a list of glyph names " "and their unicode numbers. Example:" -msgstr "" +msgstr "유니코드 정수, 또는 이름을 알 수 없는 경우 65533 = 0xFFFD. 예: `font.glyph_name_to_unicode(\"Sigma\") = 931`, `font.glyph_name_to_unicode(\"sigma\") = 963`. 글리프 이름과 유니코드 번호 목록은 `Adobe Glyph List `_ 출판물을 참조하세요. 예:" #: ../../font.rst:219 ceed99f4b1f641ae9879e4ef9b43cfcf msgid "The glyph rectangle relative to :data:`fontsize` 1." -msgstr "" +msgstr ":data:`fontsize` 1에 상대적인 글리프 사각형." #: ../../font.rst:221 9803fc558ea94924824b3c6f36f33ce5 msgid "``ord()`` of the character." -msgstr "" +msgstr "문자의 ``ord()``." #: ../../font.rst:223 cae0a18260bf47dcb9d033363ab5176b msgid "a :ref:`Rect`." -msgstr "" +msgstr ":ref:`Rect`." #: ../../font.rst:228 c530486f148348589a870c1a6fad982d msgid "Show the name of the character's glyph." -msgstr "" +msgstr "문자 글리프의 이름을 표시합니다." #: ../../font.rst:230 b33374c8c5234c618bbb03b5c25bd99b msgid "" "the unicode number of the character. Use ``ord()``, not the character " "itself." -msgstr "" +msgstr "문자의 유니코드 번호. 문자 자체가 아닌 ``ord()`` 를 사용하세요." #: ../../font.rst:232 39265ca9c3774508a81f7b6c33627e8d msgid "" @@ -824,7 +824,7 @@ msgstr "" msgid "" "a string representing the glyph's name. E.g. `font.glyph_name(ord(\"#\"))" " = \"numbersign\"`. For an invalid code \".notfound\" is returned." -msgstr "" +msgstr "글리프 이름을 나타내는 문자열. 예: `font.glyph_name(ord(\"#\")) = \"numbersign\"`. 잘못된 코드의 경우 \".notfound\"가 반환됩니다." #: ../../font.rst:234 20712f7e063243888f6395b18c3acae8 msgid "" @@ -832,27 +832,27 @@ msgid "" " no longer depend on a font and instead retrieve information from the " "**Adobe Glyph List**. Also available as `pymupdf.unicode_to_glyph_name()`" " and resp. `pymupdf.glyph_name_to_unicode()`." -msgstr "" +msgstr "*(v1.18.0에서 변경됨)* 이 메서드와 :meth:`Font.glyph_name_to_unicode` 는 더 이상 글꼴에 의존하지 않으며 대신 **Adobe Glyph List** 에서 정보를 검색합니다. `pymupdf.unicode_to_glyph_name()` 및 각각 `pymupdf.glyph_name_to_unicode()` 로도 사용할 수 있습니다." #: ../../font.rst:241 38b6209e6a4344a8b3be848dc476755c msgid "Calculate the length in points of a unicode string." -msgstr "" +msgstr "유니코드 문자열의 포인트 단위 길이를 계산합니다." #: ../../font.rst:243 142ac4b87bb644ffa8514275b3e51007 msgid "" "There is a functional overlap with :meth:`get_text_length` for Base-14 " "fonts only." -msgstr "" +msgstr "Base-14 글꼴에 대해서만 :meth:`get_text_length` 와 기능적 중복이 있습니다." #: ../../font.rst:245 ../../font.rst:269 7c8abec195d7425ab74856419d327b59 #: f31ddd69af474ca98115ec49230627cf msgid "a text string, UTF-8 encoded." -msgstr "" +msgstr "UTF-8로 인코딩된 텍스트 문자열." #: ../../font.rst:247 ../../font.rst:271 280e2e6390a84299b1eb50742751cc45 #: 5880b72ffefe4073a534b44ef82aa00b msgid "the :data:`fontsize`." -msgstr "" +msgstr ":data:`fontsize`." #: ../../font.rst 24af9fb41f6d40be800f9d6a56909af0 #: 375fd3e160764b6f97a1b86fc740fe8a 465db7792c4b472f806017a0d364f367 @@ -861,7 +861,7 @@ msgstr "" #: b579c7fff96e4c608f8eb22666e2666d d2e13bff74024b768ddd4405202d6cab #: d3196a22363c47ecb37dd5972f00334e msgid "Return type" -msgstr "" +msgstr "Return type" #: ../../font.rst:251 ec7a7979f9e7418fbdceaeee4f29b39d msgid "" @@ -884,7 +884,7 @@ msgid "" "the length of the string in points when stored in the PDF. If a character" " is not contained in the font, it will automatically be looked up in a " "fallback font." -msgstr "" +msgstr "PDF에 저장될 때 포인트 단위의 문자열 길이. 글꼴에 문자가 포함되어 있지 않으면 자동으로 대체 글꼴에서 찾습니다." #: ../../font.rst:253 57ccdf4bd0474e3280e1cdda9d041027 msgid "" @@ -892,15 +892,15 @@ msgid "" ":meth:`Font.glyph_advance`. For performance reasons, it has been " "rewritten in C for v1.18.14. To compute the width of a single character, " "you can now use either of the following without performance penalty:" -msgstr "" +msgstr "이 메서드는 원래 :meth:`Font.glyph_advance` 호출을 기반으로 Python에서 구현되었습니다. 성능상의 이유로 v1.18.14에서 C로 다시 작성되었습니다. 단일 문자의 너비를 계산하려면 성능 저하 없이 다음 중 하나를 사용할 수 있습니다:" #: ../../font.rst:255 b485562f46994ef3a76ed0ba8f486f14 msgid "`font.glyph_advance(ord(\"Ä\")) * fontsize`" -msgstr "" +msgstr "`font.glyph_advance(ord(\"Ä\")) * fontsize`" #: ../../font.rst:256 7b3106bb9bf0498198809c557ab60339 msgid "`font.text_length(\"Ä\", fontsize=fontsize)`" -msgstr "" +msgstr "`font.text_length(\"Ä\", fontsize=fontsize)`" #: ../../font.rst:258 3724b3d50f664946b0d42d8fab2f84f6 msgid "" @@ -908,15 +908,15 @@ msgid "" "advantage compared to the previous implementation: instead of about 0.5 " "microseconds for each character, only 12.5 nanoseconds are required for " "the second and subsequent ones." -msgstr "" +msgstr "다중 문자 문자열의 경우, 이 메서드는 이전 구현과 비교하여 큰 성능 이점을 제공합니다: 각 문자에 대해 약 0.5 마이크로초 대신 두 번째 및 이후 문자에는 12.5 나노초만 필요합니다." #: ../../font.rst:265 aafd060e84e541abbe7b30af94aa8ded msgid "*New in v1.18.14*" -msgstr "" +msgstr "*v1.18.14에서 새로 추가됨*" #: ../../font.rst:267 7decb74d1d39477b9462d29370e42a35 msgid "Sequence of character lengths in points of a unicode string." -msgstr "" +msgstr "유니코드 문자열의 포인트 단위 문자 길이 시퀀스." #: ../../font.rst:275 76401a090dc249fcab049f83b6f83cee msgid "" @@ -942,42 +942,42 @@ msgid "" "characters. This is a high speed method, used e.g. in " ":meth:`TextWriter.fill_textbox`. The following is true (allowing rounding" " errors): `font.text_length(text) == sum(font.char_lengths(text))`." -msgstr "" +msgstr "PDF에 저장될 때 문자열 문자의 포인트 단위 길이. :meth:`Font.text_length` 를 단일 문자로 분해한 것처럼 작동합니다. 이것은 고속 메서드이며 예를 들어 :meth:`TextWriter.fill_textbox` 에서 사용됩니다. 다음이 참입니다(반올림 오류 허용): `font.text_length(text) == sum(font.char_lengths(text))`." #: ../../font.rst:297 d80b29e9dd8c454da9c51b26d9cad2fe msgid "New in v1.17.6" -msgstr "" +msgstr "v1.17.6에서 새로 추가됨" #: ../../font.rst:299 30834747dcfd4dc48a79f57ad356cdd3 msgid "Copy of the binary font file content." -msgstr "" +msgstr "바이너리 글꼴 파일 내용의 복사본." #: ../../font.rst:305 71cd13ec6bab4c46bb9c7dbb8108fb63 msgid "" "A dictionary with various font properties, each represented as bools. " "Example for Helvetica::" -msgstr "" +msgstr "각각 bool로 표현되는 다양한 글꼴 속성의 딕셔너리. Helvetica의 예::" #: ../../font.rst:325 dbe85241cd3a4910a0da84236fc69d03 msgid "Name of the font. May be \"\" or \"(null)\"." -msgstr "" +msgstr "글꼴 이름. \"\" 또는 \"(null)\"일 수 있습니다." #: ../../font.rst:329 190864bf642d4836b3e8ed0493dc4672 msgid "The font bbox. This is the maximum of its glyph bboxes." -msgstr "" +msgstr "글꼴 bbox. 이것은 글리프 bbox의 최대값입니다." #: ../../font.rst:331 33b968a3b28241e9a604dd232bd3bf7c msgid ":ref:`Rect`" -msgstr "" +msgstr ":ref:`Rect`" #: ../../font.rst:337 38e95b49eec642f784ca39d58b0b40df msgid "The number of glyphs defined in the font." -msgstr "" +msgstr "글꼴에 정의된 글리프 수." #: ../../font.rst:341 ../../font.rst:349 aa9a0f03418b4adba2109af305a941e1 #: b18be968a53743bdb4bdab316af4c374 msgid "New in v1.18.0" -msgstr "" +msgstr "v1.18.0에서 새로 추가됨" #: ../../font.rst:343 d3c64bfaff7540aa857c6dcc2fc2b0a0 msgid "" @@ -986,7 +986,7 @@ msgid "" "Please note that there is a difference to the strict definition: our " "value includes everything above the baseline -- not just the height " "difference between upper case \"A\" and and lower case \"a\"." -msgstr "" +msgstr "글꼴의 상승부 값, 자세한 내용은 `ascender typography `_ 를 참조하세요. 엄격한 정의와 차이가 있음을 참고하세요: 우리의 값은 기준선 위의 모든 것을 포함합니다 -- 대문자 \"A\"와 소문자 \"a\" 사이의 높이 차이만이 아닙니다." #: ../../font.rst:351 7fba1bd77fd74cc1abdb335fe3269fbc msgid "" @@ -997,32 +997,32 @@ msgid "" "`ascender - descender` is the total height, that every glyph of the font " "fits into. This is true at least for most fonts -- as always, there are " "exceptions, especially for calligraphic fonts, etc." -msgstr "" +msgstr "글꼴의 하강부 값, 자세한 내용은 `descender typography `_ 를 참조하세요. 이 값은 항상 음수이며 일부 글리프가 기준선 아래로 내려가는 부분입니다. 예를 들어 \"g\" 또는 \"y\". 결과적으로 `ascender - descender` 값은 글꼴의 모든 글리프가 들어맞는 전체 높이입니다. 이것은 적어도 대부분의 글꼴에 대해 참입니다 -- 항상 그렇듯이 예외가 있으며, 특히 필기체 글꼴 등에 해당합니다." #: ../../font.rst:363 4ffede0fc21c4b5fa0f667a903b92e93 msgid "" "A number of attributes with obvious meanings. Reflect some values of the " ":attr:`Font.flags` dictionary." -msgstr "" +msgstr "명확한 의미를 가진 여러 속성. :attr:`Font.flags` 딕셔너리의 일부 값을 반영합니다." #: ../../font.rst:368 4bd92baafe77479faa63b31082e0c69a msgid "Footnotes" -msgstr "" +msgstr "Footnotes" #: ../../font.rst:369 d66637c72e2b45aea7edd3cb116ec328 msgid "" "MuPDF does not support all fontfiles with this feature and will raise " "exceptions like *\"mupdf: FT_New_Memory_Face((null)): unknown file " "format\"*, if it encounters issues." -msgstr "" +msgstr "MuPDF는 이 기능을 가진 모든 글꼴 파일을 지원하지 않으며 문제가 발생하면 *\"mupdf: FT_New_Memory_Face((null)): unknown file format\"* 과 같은 예외를 발생시킵니다." #: ../../font.rst:371 7213fcc59c214e508d3da6221ec0d21a msgid "" "The built-in Python module `array` has been chosen for its speed and low " "memory requirement." -msgstr "" +msgstr "내장 Python 모듈 `array` 는 속도와 낮은 메모리 요구 사항 때문에 선택되었습니다." #: ../../footer.rst:46 3dc04747492b4b4bac6e2c6af8d83002 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version|까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/footer.mo b/docs/locales/ko/LC_MESSAGES/footer.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..b2524770818bb302f685f798fff6b6bd90f4e16a 100644 GIT binary patch delta 213 zcmZ3%yq%@~o)F7a1|VPpVi_RT0dbIk4UlaP#I`_O#mK-=3Z&hD_yds55R#EutdNqQ zT$-DjSCUwgnV+YSoL`n&RIHGglcNA)0ELPbN(&T9@)c^J{2D!mfTH}Y)Z`Lf&ymN&eaJ4501suiy%FMtZa VncJf9x_im%#XDbjcK{iB3;?~LOx^$h delta 59 ucmdnavVvLXo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%8%xR=Sq=1zxflS}5(aJn diff --git a/docs/locales/ko/LC_MESSAGES/footer.po b/docs/locales/ko/LC_MESSAGES/footer.po index 5d313ca02..90de7ead4 100644 --- a/docs/locales/ko/LC_MESSAGES/footer.po +++ b/docs/locales/ko/LC_MESSAGES/footer.po @@ -21,5 +21,5 @@ msgstr "" #: ../../footer.rst:46 6174f91a653847f0bf61a4cba1c92a19 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/functions.mo b/docs/locales/ko/LC_MESSAGES/functions.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..bc332e7b2b422eda5cddc8dab68b603b7ab2ec08 100644 GIT binary patch literal 79893 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." -msgstr "" +msgstr "|PyMuPDF| 메시지의 대상을 파일 디스크립터, 파일, 기존 스트림 또는 `Python의 로깅 시스템 `_ 로 설정합니다." #: ../../functions.rst:113 7ca7d103b38f48e6807607f1b5fb4e04 msgid "Usually one would only set one arg, or one or more `pylogging*` args." -msgstr "" +msgstr "일반적으로 하나의 인수만 설정하거나 하나 이상의 `pylogging*` 인수를 설정합니다." #: ../../functions.rst:115 d3110ebcfa014f9a9e9dffbfb07b8429 msgid "" "A text specification of destination; for details see description of " "environmental variable `PYMUPDF_MESSAGE`." -msgstr "" +msgstr "대상의 텍스트 사양. 자세한 내용은 환경 변수 `PYMUPDF_MESSAGE` 의 설명을 참조하세요." #: ../../functions.rst:118 f2568fbdee6a469e86d30e697b54e228 msgid "Write to file descriptor." -msgstr "" +msgstr "파일 디스크립터에 쓰기." #: ../../functions.rst:120 3005a922a0bd4a02926e0a5b40014183 msgid "" "Write to existing stream, which must have methods `.write(text)` and " "`.flush()`." -msgstr "" +msgstr "기존 스트림에 쓰기. `.write(text)` 및 `.flush()` 메서드가 있어야 합니다." #: ../../functions.rst:123 7bae0338bdf7484c9e843251d5c4268e msgid "Write to a file." -msgstr "" +msgstr "파일에 쓰기." #: ../../functions.rst:125 629d6fa80e1140f48a18cd82a8d2631d msgid "Append to a file." -msgstr "" +msgstr "파일에 추가." #: ../../functions.rst:127 af3dad1d6ce942b8bc8207879fb6e153 msgid "Write to Python's `logging` system." -msgstr "" +msgstr "Python의 `logging` 시스템에 쓰기." #: ../../functions.rst:129 edef27de299d43b580f0142468f71ade msgid "Write to Python's `logging` system using specified Logger." -msgstr "" +msgstr "지정된 Logger를 사용하여 Python의 `logging` 시스템에 쓰기." #: ../../functions.rst:131 97f0f14a9c6543069de109bdaa320698 msgid "Write to Python's `logging` system using specified level." -msgstr "" +msgstr "지정된 레벨을 사용하여 Python의 `logging` 시스템에 쓰기." #: ../../functions.rst:133 54a6240e34794f1d8f029e59eef09948 msgid "" "Write to Python's `logging` system using specified logger name. Only used" " if `pylogging_logger` is ``None``. Default is `pymupdf`." -msgstr "" - -#: ../../functions.rst:137 7fc3645c02074a4aa4ff724cf1ab0856 -msgid "" -"If any `pylogging*` arg is not ``None``, we write to `Python's logging " -"system `_." -msgstr "" - -#: ../../functions.rst:144 ../../functions.rst:156 ../../functions.rst:270 -#: 70ea9f075bbc45bc9f22e2b8a925f0c2 d9fd6097dd8642d681771c59c34ec163 -#: e3bdeda869f54aae9ed48140bfa9aa51 -msgid "*New in v1.17.4*" -msgstr "" - -#: ../../functions.rst:146 0aa93594a530468e84df8471d05d150d -msgid "" -"Convenience function returning a PDF color triple (red, green, blue) for " -"a given sRGB color integer as it occurs in :meth:`Page.get_text` " -"dictionaries \"dict\" and \"rawdict\"." -msgstr "" - -#: ../../functions.rst:148 ../../functions.rst:160 -#: 864b3d47658d4c118df2f33b9208300f 8b645478645441eebd77be6157685571 -msgid "" -"an integer of format RRGGBB, where each color component is an integer in " -"range(255)." -msgstr "" - -#: ../../functions.rst:150 87564fe0c411497099602ced50913c18 -msgid "" -"a tuple (red, green, blue) with float items in interval *0 <= item <= 1* " -"representing the same color. Example `sRGB_to_pdf(0xff0000) = (1, 0, 0)` " -"(red)." -msgstr "" - -#: ../../functions.rst:158 33afb580cfbe4b5fb5fed85569086eeb -msgid "" -"Convenience function returning a color (red, green, blue) for a given " -"*sRGB* color integer." -msgstr "" - -#: ../../functions.rst:162 99b662fe46f9469682b0a7ec89eed460 -msgid "" -"a tuple (red, green, blue) with integer items in `range(256)` " -"representing the same color. Example `sRGB_to_pdf(0xff0000) = (255, 0, " -"0)` (red)." -msgstr "" - -#: ../../functions.rst:168 ../../functions.rst:183 ../../functions.rst:198 -#: ../../functions.rst:211 79490e25884e4b379b80f56b00625d5c -#: 8802b9dd8e1644918618883055d9afaf 8d692f79ec3d47b5a19c94c7e7f90981 -#: cc00fcf3f3834541862d9a786318f32f -msgid "*New in v1.18.0*" -msgstr "" - -#: ../../functions.rst:170 5ba3d698e66646eeba96e992e95fc235 -msgid "" -"Return the unicode number of a glyph name based on the **Adobe Glyph " -"List**." -msgstr "" - -#: ../../functions.rst:172 bdb4dabbf07a42e1b2aaa60fafc3f6a5 -msgid "" -"the name of some glyph. The function is based on the `Adobe Glyph List " -"`_." -msgstr "" - -#: ../../functions.rst:175 7f83c8a40f1f4f5182386d25b2900e70 -msgid "the unicode. Invalid ``name`` entries return `0xfffd (65533)`." -msgstr "" - -#: ../../functions.rst:177 ../../functions.rst:205 ../../functions.rst:218 -#: 06e18a271eb844ff8ee1fc0870be4fb8 d7d9853398734fcbb59570519db66ef3 -#: e5f542bf904c4baf92ddadf03e7802e6 -msgid "" -"A similar functionality is provided by package `fontTools " -"`_ in its *agl* sub-package." -msgstr "" - -#: ../../functions.rst:185 9c9f41d26b6f44d5a0675c56c191b7b5 -msgid "" -"Return the glyph name of a unicode number, based on the **Adobe Glyph " -"List**." -msgstr "" - -#: ../../functions.rst:187 3efb1935917c44828cdb74dd8e802d39 -#: a7cc8fab866e446fb5d9bd91531a6e33 -msgid "" -"the unicode given by e.g. `ord(\"ß\")`. The function is based on the " -"`Adobe Glyph List `_." -msgstr "" +msgstr "지정된 로거 이름을 사용하여 Python의 `logging` 시스템에 쓰기. `pylogging_logger` 가 ``None`` 인 경우에만 사용됩니다. 기본값은 `pymupdf` 입니다." #: ../../functions.rst:190 5176a1a461ef43a1bfbefacc552c8a8b msgid "" "the glyph name. E.g. `pymupdf.unicode_to_glyph_name(ord(\"Ä\"))` returns " "`'Adieresis'`." -msgstr "" +msgstr "글리프 이름. 예: `pymupdf.unicode_to_glyph_name(ord(\"Ä\"))` 는 `'Adieresis'` 를 반환합니다." #: ../../functions.rst:192 2d968ce1f4004533b122972fdbbabdf7 msgid "" "A similar functionality is provided by package `fontTools " "`_: in its *agl* sub-package." -msgstr "" +msgstr "유사한 기능은 패키지 `fontTools `_ 의 *agl* 하위 패키지에서 제공됩니다." #: ../../functions.rst:200 cdc27cc2524340f49b6cc45e587c802c msgid "Return a list of glyph names defined in the **Adobe Glyph List**." -msgstr "" +msgstr "**Adobe Glyph List** 에 정의된 글리프 이름 목록을 반환합니다." #: ../../functions.rst:203 2fd087c0315e407ea96067edc1c4393c msgid "list of strings." -msgstr "" +msgstr "문자열 목록." #: ../../functions.rst:213 a02dfb86773a455382f6a6c0268d3499 msgid "" "Return a list of unicodes for there exists a glyph name in the **Adobe " "Glyph List**." -msgstr "" +msgstr "**Adobe Glyph List** 에 글리프 이름이 존재하는 유니코드 목록을 반환합니다." #: ../../functions.rst:216 b7378500b7af448d86db01202a45986c msgid "list of integers." -msgstr "" +msgstr "정수 목록." #: ../../functions.rst:224 44322f42c7554831ac045bccb97dbc3c msgid "*New in v1.21.0*" -msgstr "" +msgstr "*v1.21.0의 새로운 기능*" #: ../../functions.rst:226 24ae3761fb07422393846de0c9c3fa88 msgid "**Utility function for use with \"Story\" applications.**" -msgstr "" +msgstr "**\"Story\" 애플리케이션에서 사용하기 위한 유틸리티 함수.**" #: ../../functions.rst:228 fd42be5d92474036bd944ca8660478de msgid "" "Create CSS `@font-face` items for the given fontcode in pymupdf-fonts. " "Creates a CSS font-family for all fonts starting with string " "\"fontcode\"." -msgstr "" +msgstr "pymupdf-fonts에서 주어진 fontcode에 대한 CSS `@font-face` 항목을 생성합니다. 문자열 \"fontcode\"로 시작하는 모든 글꼴에 대한 CSS font-family를 생성합니다." #: ../../functions.rst:230 a814b536199949e891f96f03e13d68a2 msgid "" @@ -819,27 +727,27 @@ msgid "" "where the suffix \"sf\" is one of \"\" (empty), \"it\"/\"i\", " "\"bo\"/\"b\" or \"bi\". These suffixes thus represent the regular, " "italic, bold or bold-italic variants of that font." -msgstr "" +msgstr "패키지 pymupdf-fonts의 글꼴 명명 규칙은 \"fontcode\"이며, 여기서 접미사 \"sf\"는 \"\"(비어 있음), \"it\"/\"i\", \"bo\"/\"b\" 또는 \"bi\" 중 하나입니다. 이러한 접미사는 따라서 해당 글꼴의 일반, 기울임꼴, 굵게 또는 굵은 기울임꼴 변형을 나타냅니다." #: ../../functions.rst:232 ee523a99cc234e859fb1a6cabd4448c4 msgid "For example, font code \"notos\" refers to fonts" -msgstr "" +msgstr "예를 들어, 글꼴 코드 \"notos\"는 다음 글꼴을 나타냅니다" #: ../../functions.rst:234 1624cd3ce5cb41d68b00cfbdefbab550 msgid "\"notos\" - \"Noto Sans Regular\"" -msgstr "" +msgstr "\"notos\" - \"Noto Sans Regular\"" #: ../../functions.rst:235 b5bfb596ccb74dcf835b39d8f7d13881 msgid "\"notosit\" - \"Noto Sans Italic\"" -msgstr "" +msgstr "\"notosit\" - \"Noto Sans Italic\"" #: ../../functions.rst:236 f4b764ed2d584d8893bf0b2de910b9cf msgid "\"notosbo\" - \"Noto Sans Bold\"" -msgstr "" +msgstr "\"notosbo\" - \"Noto Sans Bold\"" #: ../../functions.rst:237 a8b2daa11b7845f3bed1ce18440ef016 msgid "\"notosbi\" - \"Noto Sans Bold Italic\"" -msgstr "" +msgstr "\"notosbi\" - \"Noto Sans Bold Italic\"" #: ../../functions.rst:239 cb8e8390629f4d188e7e1dbc5af60b03 msgid "" @@ -847,14 +755,14 @@ msgid "" "collectively assigns the `font-family` name \"notos\" to them (or the " "\"name\" value if provided). Associated font buffers are placed / added " "to the provided archive." -msgstr "" +msgstr "함수는 (최대) 4개의 CSS `@font-face` 정의를 생성하고 `font-family` 이름 \"notos\"(또는 제공된 경우 \"name\" 값)를 집합적으로 할당합니다. 연결된 글꼴 버퍼는 제공된 아카이브에 배치/추가됩니다." #: ../../functions.rst:241 b1578620590c4d49a662b6873f7c33e7 msgid "" "To use the font in the Python API for :ref:`Story`, execute " "`.set_font(fontcode)` (or \"name\" if given). The correct font weight or " "style will automatically be selected as required." -msgstr "" +msgstr ":ref:`Story` 의 Python API에서 글꼴을 사용하려면 `.set_font(fontcode)` (또는 주어진 경우 \"name\")를 실행하세요. 올바른 글꼴 두께 또는 스타일이 필요에 따라 자동으로 선택됩니다." #: ../../functions.rst:243 5c4c7320f1f8400e924e56c72a17c2c3 msgid "" @@ -862,44 +770,44 @@ msgid "" "with the above \"notos\", execute the following. Whenever \"sans-serif\" " "is used (whether explicitly or implicitly), the Noto Sans fonts will be " "selected." -msgstr "" +msgstr "예를 들어 위의 \"notos\"로 \"sans-serif\" HTML 표준(즉, Helvetica)을 대체하려면 다음을 실행하세요. \"sans-serif\"가 사용될 때마다(명시적으로든 암시적으로든) Noto Sans 글꼴이 선택됩니다." #: ../../functions.rst:245 3ab4384a20d149669910ef03ad792c3a msgid "" "`CSS = pymupdf.css_for_pymupdf_font(\"notos\", name=\"sans-serif\", " "archive=...)`" -msgstr "" +msgstr "`CSS = pymupdf.css_for_pymupdf_font(\"notos\", name=\"sans-serif\", archive=...)`" #: ../../functions.rst:247 3206db2b9e4548d9873d135de0833c62 msgid "Expects and returns the CSS source, with the new CSS definitions appended." -msgstr "" +msgstr "CSS 소스를 받아서 새로운 CSS 정의가 추가된 CSS 소스를 반환합니다." #: ../../functions.rst:249 a2d622ad8ee347cdbf24cf65b46dd835 msgid "" "one of the font codes present in package `pymupdf-fonts " "`_ (usually) representing the " "regular version of the font family." -msgstr "" +msgstr "패키지 `pymupdf-fonts `_ 에 있는 글꼴 코드 중 하나(일반적으로 글꼴 패밀리의 일반 버전을 나타냄)." #: ../../functions.rst:250 3e43aa6f3cb7415c856593e0c2009f4d msgid "" "any already existing CSS source, or `None`. The function will append its " "new definitions to this. This is the string that **must be used** as " "`user_css` when creating the :ref:`Story`." -msgstr "" +msgstr "기존 CSS 소스 또는 `None`. 함수는 새로운 정의를 여기에 추가합니다. 이것은 :ref:`Story` 를 생성할 때 `user_css` 로 **사용해야 하는** 문자열입니다." #: ../../functions.rst:251 96d99d7375ed4394a4e5ec1661857dde msgid "" ":ref:`Archive`, **mandatory**. All font binaries (i.e. up to four) found " "for \"fontcode\" will be added to the archive. This is the archive that " "**must be used** as `archive` when creating the :ref:`Story`." -msgstr "" +msgstr ":ref:`Archive`, **필수**. \"fontcode\"에 대해 찾은 모든 글꼴 바이너리(최대 4개)가 아카이브에 추가됩니다. 이것은 :ref:`Story` 를 생성할 때 `archive` 로 **사용해야 하는** 아카이브입니다." #: ../../functions.rst:252 efd7cc2ac7184a718e3bdc84648becc0 msgid "" "the name under which the \"fontcode\" fonts should be found. If omitted, " "\"fontcode\" will be used." -msgstr "" +msgstr "\"fontcode\" 글꼴을 찾을 이름. 생략하면 \"fontcode\"가 사용됩니다." #: ../../functions.rst:255 d17bb0f3f24845159c50104934ef2fc9 msgid "" @@ -915,13 +823,13 @@ msgid "" "'spacemit', 'spacemo', 'math', 'music', 'symbol1', 'symbol2', 'notosbo', " "'notosbi', 'notosit', 'notos', 'ubuntu', 'ubuntubo', 'ubuntubi', " "'ubuntuit', 'ubuntm', 'ubuntmbo', 'ubuntmbi', 'ubuntmit'])`." -msgstr "" +msgstr "fontcode의 각 글꼴 변형에 대한 `@font-face` 문이 추가된 수정된 CSS. \"fontcode\"와 연결된 Fontbuffers가 'archive'에 추가됩니다. 함수는 자동으로 최대 4개의 글꼴 변형을 찾습니다. 모든 pymupdf-fonts(수학이나 음악 등 특수 목적이 아닌 것)는 일반, 굵게, 기울임꼴 및 굵은 기울임꼴 변형을 가지고 있습니다. 현재 사용 가능한 글꼴 코드를 확인하려면 `pymupdf.fitz_fontdescriptors.keys()` 를 확인하세요. 이것은 `dict_keys(['cascadia', 'cascadiai', 'cascadiab', 'cascadiabi', 'figbo', 'figo', 'figbi', 'figit', 'fimbo', 'fimo', 'spacembo', 'spacembi', 'spacemit', 'spacemo', 'math', 'music', 'symbol1', 'symbol2', 'notosbo', 'notosbi', 'notosit', 'notos', 'ubuntu', 'ubuntubo', 'ubuntubi', 'ubuntuit', 'ubuntm', 'ubuntmbo', 'ubuntmbi', 'ubuntmit'])` 와 같은 것을 보여줍니다." #: ../../functions.rst:257 9c918c7741a8450fadc38bb8e6d8248e msgid "" "Here is a complete snippet for using the \"Noto Sans\" font instead of " "\"Helvetica\"::" -msgstr "" +msgstr "\"Helvetica\" 대신 \"Noto Sans\" 글꼴을 사용하는 완전한 코드 조각입니다::" #: ../../functions.rst:272 b6bf01dfadf043f89d73dc2362986d56 msgid "" @@ -929,48 +837,48 @@ msgid "" "size. Returns a list of `rows` lists, each containing `cols` :ref:`Rect` " "items. Each sub-rectangle can then be addressed by its row and column " "index." -msgstr "" +msgstr "사각형을 동일한 크기의 하위 사각형으로 분할하는 편의 함수. `rows` 리스트의 리스트를 반환하며, 각 리스트는 `cols` 개의 :ref:`Rect` 항목을 포함합니다. 각 하위 사각형은 행 및 열 인덱스로 주소를 지정할 수 있습니다." #: ../../functions.rst:274 2379b768d70b429e80b9ee76ff6affc6 msgid "the rectangle to split." -msgstr "" +msgstr "분할할 사각형." #: ../../functions.rst:275 bc2cff2237ae4cc2b772925cc341db0f msgid "the desired number of columns." -msgstr "" +msgstr "원하는 열 수." #: ../../functions.rst:276 bb04dcac38e94e4ea02e6ce480164b8f msgid "the desired number of rows." -msgstr "" +msgstr "원하는 행 수." #: ../../functions.rst:277 afead5470e7e4b4ba96f6b47fa94c27f msgid "" "a list of :ref:`Rect` objects of equal size, whose union equals *rect*. " "Here is the layout of a 3x4 table created by `cell = " "pymupdf.make_table(rect, cols=4, rows=3)`:" -msgstr "" +msgstr "동일한 크기의 :ref:`Rect` 객체 리스트. 이들의 합집합은 *rect* 와 같습니다. `cell = pymupdf.make_table(rect, cols=4, rows=3)` 로 생성된 3x4 테이블의 레이아웃은 다음과 같습니다:" #: ../../functions.rst:287 3cf17d4592c24625a3c0f8b4ccf257b9 msgid "New in version 1.16.2)*" -msgstr "" +msgstr "*버전 1.16.2의 새로운 기능*" #: ../../functions.rst:289 3de02919aba44c58882ea49db6a70ca4 msgid "" "Return a matrix which maps the line from p1 to p2 to the x-axis such that" " p1 will become (0,0) and p2 a point with the same distance to (0,0)." -msgstr "" +msgstr "p1에서 p2로의 선을 x축에 매핑하는 행렬을 반환합니다. p1은 (0,0)이 되고 p2는 (0,0)까지의 동일한 거리를 가진 점이 됩니다." #: ../../functions.rst:291 d5051adab1c74eff8ca8bbcac46881e6 msgid "starting point of the line." -msgstr "" +msgstr "선의 시작점." #: ../../functions.rst:292 0739796326eb427b8251e930406ec398 msgid "end point of the line." -msgstr "" +msgstr "선의 끝점." #: ../../functions.rst:294 b3f32ee30e7e408ea53d346c946793b4 msgid ":ref:`Matrix`" -msgstr "" +msgstr ":ref:`Matrix`" #: ../../functions.rst:295 80f96c88c5c54adb87efd7e63247f4cf msgid "" @@ -981,163 +889,163 @@ msgid "" "-5.960464477539063e-08) >>> # distance of the resulting points >>> " "abs(p2 * m - p1 * m) 5.0 .. image:: images/img-planish.png " ":scale: 40" -msgstr "" +msgstr "회전과 이동을 결합한 행렬:: >>> p1 = pymupdf.Point(1, 1) >>> p2 = pymupdf.Point(4, 5) >>> abs(p2 - p1) # 점 사이의 거리 5.0 >>> m = pymupdf.planish_line(p1, p2) >>> p1 * m Point(0.0, 0.0) >>> p2 * m Point(5.0, -5.960464477539063e-08) >>> # 결과 점 사이의 거리 >>> abs(p2 * m - p1 * m) 5.0 .. image:: images/img-planish.png :scale: 40" #: ../../functions.rst:295 85ea149f226e4e2ca4d42190a34693e5 msgid "a matrix which combines a rotation and a translation::" -msgstr "" +msgstr "회전과 이동을 결합한 행렬::" #: ../../functions.rst:319 d7085018534f47e2b428476e6d18257b msgid "" "A dictionary of pre-defines paper formats. Used as basis for " ":meth:`paper_size`." -msgstr "" +msgstr "사전 정의된 용지 형식의 딕셔너리. :meth:`paper_size` 의 기반으로 사용됩니다." #: ../../functions.rst:325 1100f2cd223244e098a59cab294695cd msgid "New in v1.17.5" -msgstr "" +msgstr "*v1.17.5의 새로운 기능*" #: ../../functions.rst:327 611b74fc7f2f49e7be426fe3db89be8f msgid "" "A dictionary of usable fonts from repository `pymupdf-fonts " "`_. Items are keyed by their " "reserved fontname and provide information like this::" -msgstr "" +msgstr "저장소 `pymupdf-fonts `_ 에서 사용 가능한 글꼴의 딕셔너리. 항목은 예약된 글꼴 이름으로 키가 지정되며 다음과 같은 정보를 제공합니다::" #: ../../functions.rst:343 43582b0da1f84beba44a5e36e2cdd048 msgid "If `pymupdf-fonts` is not installed, the dictionary is empty." -msgstr "" +msgstr "`pymupdf-fonts` 가 설치되지 않은 경우 딕셔너리는 비어 있습니다." #: ../../functions.rst:345 5c5c8927cd35468f8b40e91051754525 msgid "" "The dictionary keys can be used to define a :ref:`Font` via e.g. `font = " "pymupdf.Font(\"fimo\")` -- just like you can do it with the builtin fonts" " \"Helvetica\" and friends." -msgstr "" +msgstr "딕셔너리 키는 예를 들어 `font = pymupdf.Font(\"fimo\")` 를 통해 :ref:`Font` 를 정의하는 데 사용할 수 있습니다 -- 내장 글꼴 \"Helvetica\" 등과 동일하게 사용할 수 있습니다." #: ../../functions.rst:351 829280be90364ab59d34ab8bcb9ee3a5 msgid "" "If in `os.environ` when |PyMuPDF| is imported, sets destination of " "|PyMuPDF| messages. Otherwise messages are sent to `sys.stdout`." -msgstr "" +msgstr "|PyMuPDF| 가 가져올 때 `os.environ` 에 있으면 |PyMuPDF| 메시지의 대상을 설정합니다. 그렇지 않으면 메시지는 `sys.stdout` 으로 전송됩니다." #: ../../functions.rst:355 2a7234b598ca4be78a6ed7fd2cd0e68b msgid "" "If the value starts with `fd:`, the remaining text should be an integer " "file descriptor to which messages are written." -msgstr "" +msgstr "값이 `fd:` 로 시작하면 나머지 텍스트는 메시지가 기록되는 정수 파일 디스크립터여야 합니다." #: ../../functions.rst:358 52dfedc05920490596eb9bb364ca70ad msgid "For example `PYMUPDF_MESSAGE=fd:2` will send messages to stderr." -msgstr "" +msgstr "예를 들어 `PYMUPDF_MESSAGE=fd:2` 는 메시지를 stderr로 보냅니다." #: ../../functions.rst:360 c2c608b9dd754c2095660836dded1873 msgid "" "If the value starts with `path:`, the remaining text is the path of a " "file to which messages are written. If the file already exists, it is " "truncated." -msgstr "" +msgstr "값이 `path:` 로 시작하면 나머지 텍스트는 메시지가 기록되는 파일의 경로입니다. 파일이 이미 존재하면 잘립니다." #: ../../functions.rst:364 f8a67537ff5540058906057a31801f10 msgid "" "If the value starts with `path+:`, the remaining text is the path of file" " to which messages are written. If the file already exists, we append " "output." -msgstr "" +msgstr "값이 `path+:` 로 시작하면 나머지 텍스트는 메시지가 기록되는 파일의 경로입니다. 파일이 이미 존재하면 출력을 추가합니다." #: ../../functions.rst:369 a97a4cc6ac8941099d31bee564b661d6 msgid "" "If the value starts with `logging:`, messages are written to `Python's " "logging system `_. The " "remaining text can contain comma-separated name=value items:" -msgstr "" +msgstr "값이 `logging:` 로 시작하면 메시지는 `Python의 로깅 시스템 `_ 에 기록됩니다. 나머지 텍스트는 쉼표로 구분된 name=value 항목을 포함할 수 있습니다:" #: ../../functions.rst:373 85f8ee63e7c242de87aa78d6da95ec89 msgid "`level=` sets the logging level." -msgstr "" +msgstr "`level=` 는 로깅 레벨을 설정합니다." #: ../../functions.rst:374 ced54a7765f14a2c90cc9b941ac3cdaf msgid "`name=` sets the logger name (default is `pymupdf`)." -msgstr "" +msgstr "`name=` 는 로거 이름을 설정합니다(기본값은 `pymupdf`)." #: ../../functions.rst:376 79d9e976d47c48d2b2f5d924b71d2bdd msgid "Other items are ignored." -msgstr "" +msgstr "다른 항목은 무시됩니다." #: ../../functions.rst:378 e6049a9e63db495e951e0a96d3dbe162 msgid "Other prefixes will cause an error." -msgstr "" +msgstr "다른 접두사는 오류를 발생시킵니다." #: ../../functions.rst:380 cea43b4378c542439ade76acf38cef95 msgid "Also see `set_messages()`." -msgstr "" +msgstr "`set_messages()` 도 참조하세요." #: ../../functions.rst:387 d33f434c014340318a8b4f2408cf37ee msgid "New in v1.19.6" -msgstr "" +msgstr "*v1.19.6의 새로운 기능*" #: ../../functions.rst:389 2d49cc1b71804cc6add57d8ac8aeeb40 msgid "" "Contains about 500 RGB colors in PDF format with the color name as key. " "To see what is there, you can obviously look at " "`pymupdf.pdfcolor.keys()`." -msgstr "" +msgstr "색상 이름을 키로 하는 PDF 형식의 약 500개의 RGB 색상을 포함합니다. 내용을 확인하려면 `pymupdf.pdfcolor.keys()` 를 확인할 수 있습니다." #: ../../functions.rst:391 210b4f32e51c447c920aa1e17090177d msgid "Examples:" -msgstr "" +msgstr "예제:" #: ../../functions.rst:393 78b6aa54c3d8499c933344b9d67aa935 msgid "`pymupdf.pdfcolor[\"red\"] = (1.0, 0.0, 0.0)`" -msgstr "" +msgstr "`pymupdf.pdfcolor[\"red\"] = (1.0, 0.0, 0.0)`" #: ../../functions.rst:394 25976b6b069c4a278c407ca0a6e0dd34 msgid "" "`pymupdf.pdfcolor[\"skyblue\"] = (0.5294117647058824, 0.807843137254902, " "0.9215686274509803)`" -msgstr "" +msgstr "`pymupdf.pdfcolor[\"skyblue\"] = (0.5294117647058824, 0.807843137254902, 0.9215686274509803)`" #: ../../functions.rst:395 036d984bb9494bfb970022074689d37d msgid "" "`pymupdf.pdfcolor[\"wheat\"] = (0.9607843137254902, 0.8705882352941177, " "0.7019607843137254)`" -msgstr "" +msgstr "`pymupdf.pdfcolor[\"wheat\"] = (0.9607843137254902, 0.8705882352941177, 0.7019607843137254)`" #: ../../functions.rst:401 8e917a8067e94f15b90b52ee3016acc1 msgid "" "Convenience function to return the current local timestamp in PDF " "compatible format, e.g. *D:20170501121525-04'00'* for local datetime May " "1, 2017, 12:15:25 in a timezone 4 hours westward of the UTC meridian." -msgstr "" +msgstr "현재 로컬 타임스탬프를 PDF 호환 형식으로 반환하는 편의 함수. 예: UTC 자오선에서 서쪽으로 4시간 떨어진 시간대의 2017년 5월 1일 12:15:25 로컬 날짜/시간에 대한 *D:20170501121525-04'00'*." #: ../../functions.rst:404 f9d2422e60aa4b95b2387399f8819412 msgid "current local PDF timestamp." -msgstr "" +msgstr "현재 로컬 PDF 타임스탬프." #: ../../functions.rst:410 7c48f1b5388547b9847fe88c7fbcd18a msgid "New in version 1.14.7" -msgstr "" +msgstr "*버전 1.14.7의 새로운 기능*" #: ../../functions.rst:412 64c91a6941404cf293748277c1e40776 msgid "" "Calculate the length of text on output with a given **builtin** font, " ":data:`fontsize` and encoding." -msgstr "" +msgstr "주어진 **내장** 글꼴, :data:`fontsize` 및 인코딩으로 출력 시 텍스트 길이를 계산합니다." #: ../../functions.rst:414 1b351f62d3ce47ba820d95770c3b7ccf msgid "the text string." -msgstr "" +msgstr "텍스트 문자열." #: ../../functions.rst:415 7a65fc2611854e61ae76f3d30079961a msgid "" "the font name. Must be one of either the :ref:`Base-14-Fonts` or the CJK " "fonts, identified by their \"reserved\" fontnames (see table in " ":meth:`Page.insert_font`)." -msgstr "" +msgstr "글꼴 이름. :ref:`Base-14-Fonts` 또는 \"예약된\" 글꼴 이름으로 식별되는 CJK 글꼴 중 하나여야 합니다(:meth:`Page.insert_font` 의 표 참조)." #: ../../functions.rst:416 932954ed0adf44ef9900d8f882a388e7 msgid "the :data:`fontsize`." -msgstr "" +msgstr ":data:`fontsize`." #: ../../functions.rst:417 d499111356cf4e9081c8c3c2912a57bd msgid "" @@ -1145,26 +1053,26 @@ msgid "" "(Russian) are available. Relevant for Base-14 fonts \"Helvetica\", " "\"Courier\" and \"Times\" and their variants only. Make sure to use the " "same value as in the corresponding text insertion." -msgstr "" +msgstr "사용할 인코딩. 0 = Latin 외에 1 = Greek 및 2 = Cyrillic(러시아어)을 사용할 수 있습니다. Base-14 글꼴 \"Helvetica\", \"Courier\" 및 \"Times\"와 그 변형에만 관련됩니다. 해당 텍스트 삽입에서와 동일한 값을 사용해야 합니다." #: ../../functions.rst:419 9120edd3ebae44b4acc13d6f9de3fc03 msgid "" "the length in points the string will have (e.g. when used in " ":meth:`Page.insert_text`)." -msgstr "" +msgstr "문자열이 가질 포인트 단위의 길이(예: :meth:`Page.insert_text` 에서 사용할 때)." #: ../../functions.rst:421 79cef2d8477740418dbe285f8a7e7d06 msgid "" "This function will only do the calculation -- it won't insert font nor " "text." -msgstr "" +msgstr "이 함수는 계산만 수행합니다 -- 글꼴이나 텍스트를 삽입하지 않습니다." #: ../../functions.rst:423 00b63292efa741d3a51b9a25802baf30 msgid "" "The :ref:`Font` class offers a similar method, :meth:`Font.text_length`, " "which supports Base-14 fonts and any font with a character map (CMap, " "Type 0 fonts)." -msgstr "" +msgstr ":ref:`Font` 클래스는 유사한 메서드 :meth:`Font.text_length` 를 제공하며, Base-14 글꼴과 문자 맵(CMap, Type 0 글꼴)이 있는 모든 글꼴을 지원합니다." #: ../../functions.rst:425 cfcfc76eb218486fa8b032c6c50ab81e msgid "" @@ -1176,7 +1084,7 @@ msgid "" "pymupdf.get_text_length(text)*. So either (1) do the same, or (2) use " "something like *pymupdf.get_text_length(text + \"'\")* for your " "calculation." -msgstr "" +msgstr "이 함수를 사용하여 (:ref:`Page` 또는 :ref:`Shape`) *insert_textbox* 메서드에 필요한 사각형 너비를 결정하는 경우, 이들은 **문자 단위** 로 계산한다는 점에 유의하세요. 반올림 효과로 인해 대부분 약간 더 큰 숫자가 됩니다: *sum([pymupdf.get_text_length(c) for c in text]) > pymupdf.get_text_length(text)*. 따라서 (1) 동일하게 수행하거나 (2) 계산에 *pymupdf.get_text_length(text + \"'\")* 와 같은 것을 사용하세요." #: ../../functions.rst:431 763b708ba6ae4ddab04cf7af4a0c1d41 msgid "" @@ -1186,43 +1094,43 @@ msgid "" " it will return the string enclosed in (round) brackets, replacing any " "characters outside the ASCII range with some special code. Also, every " "\"(\", \")\" or backslash is escaped with a backslash." -msgstr "" +msgstr "PDF 호환 문자열 생성: 텍스트에 코드 포인트 *ord(c) > 255* 가 포함되어 있으면 BOM이 있는 UTF-16BE로 변환되어 ** 와 같이 \"<>\" 괄호로 둘러싸인 16진수 문자 문자열이 됩니다. 그렇지 않으면 (둥근) 괄호로 둘러싸인 문자열을 반환하며, ASCII 범위 밖의 모든 문자를 특수 코드로 대체합니다. 또한 모든 \"(\", \")\" 또는 백슬래시는 백슬래시로 이스케이프됩니다." #: ../../functions.rst:433 c2b249b32f5f45e889b055dec35c3b1c msgid "the object to convert" -msgstr "" +msgstr "변환할 객체" #: ../../functions.rst:436 1acb62d7d240428ab032edcf601996ca msgid "PDF-compatible string enclosed in either *()* or *<>*." -msgstr "" +msgstr "*()* 또는 *<>* 로 둘러싸인 PDF 호환 문자열." #: ../../functions.rst:442 702d8585021a43eba297b69d4836db1d msgid "New in v1.16.7" -msgstr "" +msgstr "*v1.16.7의 새로운 기능*" #: ../../functions.rst:443 d731f027bad84dc4a0c0fa97dddbc2ba msgid "" "Changed in v1.19.5: also return natural image orientation extracted from " "EXIF data if present." -msgstr "" +msgstr "v1.19.5에서 변경됨: EXIF 데이터가 있으면 추출된 자연 이미지 방향도 반환합니다." #: ../../functions.rst:444 27b180112c374ac4a920954d1634ef4d msgid "" "Changed in v1.22.5: always return `None` in error cases instead of an " "empty dictionary." -msgstr "" +msgstr "v1.22.5에서 변경됨: 오류 경우 빈 딕셔너리 대신 항상 `None` 을 반환합니다." #: ../../functions.rst:446 9803cc75c9f044399d2dda1e316afe12 msgid "" "Show important properties of an image provided as a memory area. Its main" " purpose is to avoid using other Python packages just to determine them." -msgstr "" +msgstr "메모리 영역으로 제공된 이미지의 중요한 속성을 표시합니다. 주요 목적은 이를 결정하기 위해 다른 Python 패키지를 사용하는 것을 피하는 것입니다." #: ../../functions.rst:448 fdf0ee2300ce40418b494c923b925202 msgid "" "either an image in memory or an **opened** file. An image in memory may " "be any of the formats `bytes`, `bytearray` or `io.BytesIO`." -msgstr "" +msgstr "메모리의 이미지 또는 **열린** 파일. 메모리의 이미지는 `bytes`, `bytearray` 또는 `io.BytesIO` 형식 중 하나일 수 있습니다." #: ../../functions.rst:451 fe8ea596a2524046aa4127a94283a123 msgid "" @@ -1253,55 +1161,71 @@ msgid "" "returned by the image blocks of :meth:`Page.get_text` using \"dict\" or " "\"rawdict\" options are also supported." msgstr "" +"예외는 발생하지 않습니다. 오류가 발생하면 `None` 이 반환됩니다. 그렇지 않으면 다음 항목이 있습니다:: In [2]: " +"pymupdf.image_profile(open(\"nur-ruhig.jpg\", \"rb\").read()) Out[2]:" +" {'width': 439, 'height': 501, 'orientation': 0, # 자연 방향 (EXIF에서) 'transform': (1.0, 0.0, 0.0, 1.0, 0.0, 0.0), " +"# 방향 행렬 'xres': 96, 'yres': 96, 'colorspace': 3," +" 'bpc': 8, 'ext': 'jpeg', 'cs-name': 'DeviceRGB'} `orientation` 에 인코딩된 **Exif** 정보 및 이에 해당하는 `transform` 행렬과의 관계는 다음과 같습니다(MuPDF 문서에서 인용, *ccw* = 반시계 방향): 0. 정의되지 않음 1. 0도 반시계 방향 회전. (Exif = 1) 2. 90도 반시계 방향 회전. (Exif = 8)" +" 3. 180도 반시계 방향 회전. (Exif = 3) 4. 270도 반시계 방향 회전." +" (Exif = 6) 5. X축으로 뒤집기. (Exif = 2) 6. X축으로 뒤집은 후 90도 반시계 방향 회전." +" (Exif = 5) 7. X축으로 뒤집은 후 180도 반시계 방향 회전." +" (Exif = 4) 8. X축으로 뒤집은 후 270도 반시계 방향 회전." +" (Exif = 7) .. note:: * 일부 \"특수\" 이미지(FAX 인코딩, " +"RAW 형식 등)의 경우 이 메서드는 작동하지 않습니다. 그러나 PyMuPDF에서 " +":meth:`Document.extract_image` 를 사용하거나 `Pixmap(doc, xref)` 를 통해 픽스맵을 생성하는 등으로 이러한 이미지를 계속 작업할 수 있습니다." +" 이러한 메서드는 결과를 반환하기 전에 특수 이미지를 자동으로 PNG 형식으로 변환합니다." +" * PDF에 포함된 이미지의 속성은 :data:`xref` 를 통해 가져올 수도 있습니다. 이 경우 원시 스트림을 추출해야 합니다: " +"`pymupdf.image_profile(doc.xref_stream_raw(xref))`." +" * \"dict\" 또는 \"rawdict\" 옵션을 사용하는 :meth:`Page.get_text` 의 이미지 블록으로 반환된 이미지도 지원됩니다." #: ../../functions.rst:452 6c919d4bab45428dbd8afb4362c1639b msgid "" "No exception is ever raised. In case of an error, `None` is returned. " "Otherwise, there are the following items::" -msgstr "" +msgstr "예외는 발생하지 않습니다. 오류가 발생하면 `None` 이 반환됩니다. 그렇지 않으면 다음 항목이 있습니다::" #: ../../functions.rst:467 b9c14ed655074650822790e551f4ca7d msgid "" "There is the following relation to **Exif** information encoded in " "`orientation`, and correspondingly in the `transform` matrix-like (quoted" " from MuPDF documentation, *ccw* = counter-clockwise):" -msgstr "" +msgstr "`orientation` 에 인코딩된 **Exif** 정보 및 이에 해당하는 `transform` 행렬과의 관계는 다음과 같습니다(MuPDF 문서에서 인용, *ccw* = 반시계 방향):" #: ../../functions.rst:469 19e611ede392404ba77fd6f75497a37d msgid "Undefined" -msgstr "" +msgstr "정의되지 않음" #: ../../functions.rst:470 32314d4117e54bddb20d74a136422abf msgid "0 degree ccw rotation. (Exif = 1)" -msgstr "" +msgstr "0도 반시계 방향 회전. (Exif = 1)" #: ../../functions.rst:471 781696a0f9f242fe89d413224e12432e msgid "90 degree ccw rotation. (Exif = 8)" -msgstr "" +msgstr "90도 반시계 방향 회전. (Exif = 8)" #: ../../functions.rst:472 589888419f494f768f3287b5f5fa3e86 msgid "180 degree ccw rotation. (Exif = 3)" -msgstr "" +msgstr "180도 반시계 방향 회전. (Exif = 3)" #: ../../functions.rst:473 f01ff82a9eed4b9f844b157ad3881ef5 msgid "270 degree ccw rotation. (Exif = 6)" -msgstr "" +msgstr "270도 반시계 방향 회전. (Exif = 6)" #: ../../functions.rst:474 0446ad252a924396aaeed11ed1109b46 msgid "flip on X. (Exif = 2)" -msgstr "" +msgstr "X축으로 뒤집기. (Exif = 2)" #: ../../functions.rst:475 26416c1428b9417cb36e3f04129eb26b msgid "flip on X, then rotate ccw by 90 degrees. (Exif = 5)" -msgstr "" +msgstr "X축으로 뒤집은 후 90도 반시계 방향 회전. (Exif = 5)" #: ../../functions.rst:476 7bf8066761234bc9b89b24615ac9ff55 msgid "flip on X, then rotate ccw by 180 degrees. (Exif = 4)" -msgstr "" +msgstr "X축으로 뒤집은 후 180도 반시계 방향 회전. (Exif = 4)" #: ../../functions.rst:477 e588846b59874666b6702e6ff455f044 msgid "flip on X, then rotate ccw by 270 degrees. (Exif = 7)" -msgstr "" +msgstr "X축으로 뒤집은 후 270도 반시계 방향 회전. (Exif = 7)" #: ../../functions.rst:482 b2e5bec7f40640858d351ef7a4d13151 msgid "" @@ -1310,41 +1234,41 @@ msgid "" " PyMuPDF, e.g. by using :meth:`Document.extract_image` or create pixmaps " "via `Pixmap(doc, xref)`. These methods will automatically convert exotic " "images to the PNG format before returning results." -msgstr "" +msgstr "일부 \"특수\" 이미지(FAX 인코딩, RAW 형식 등)의 경우 이 메서드는 작동하지 않습니다. 그러나 PyMuPDF에서 :meth:`Document.extract_image` 를 사용하거나 `Pixmap(doc, xref)` 를 통해 픽스맵을 생성하는 등으로 이러한 이미지를 계속 작업할 수 있습니다. 이러한 메서드는 결과를 반환하기 전에 특수 이미지를 자동으로 PNG 형식으로 변환합니다." #: ../../functions.rst:483 60dfbff3781a411aa5ac084ed06bc481 msgid "" "You can also get the properties of images embedded in a PDF, via their " ":data:`xref`. In this case make sure to extract the raw stream: " "`pymupdf.image_profile(doc.xref_stream_raw(xref))`." -msgstr "" +msgstr "PDF에 포함된 이미지의 속성은 :data:`xref` 를 통해 가져올 수도 있습니다. 이 경우 원시 스트림을 추출해야 합니다: `pymupdf.image_profile(doc.xref_stream_raw(xref))`." #: ../../functions.rst:484 68c194bfed0d449c9f716b2f8c1e9a6d msgid "" "Images as returned by the image blocks of :meth:`Page.get_text` using " "\"dict\" or \"rawdict\" options are also supported." -msgstr "" +msgstr "\"dict\" 또는 \"rawdict\" 옵션을 사용하는 :meth:`Page.get_text` 의 이미지 블록으로 반환된 이미지도 지원됩니다." #: ../../functions.rst:491 841e72c301064b7d8cd16a7659df3715 msgid "" "Return the header string required to make a valid document out of page " "text outputs." -msgstr "" +msgstr "페이지 텍스트 출력으로 유효한 문서를 만들기 위해 필요한 헤더 문자열을 반환합니다." #: ../../functions.rst:493 ../../functions.rst:505 #: 98ab75da842e44f0aba2173690b17420 be09e3df54dd47cc9a0f9dad37daf7ba msgid "type of document. Use the same as the output parameter of *get_text()*." -msgstr "" +msgstr "문서 타입. *get_text()* 의 출력 매개변수와 동일하게 사용하세요." #: ../../functions.rst:495 91d48bdf66814693aa7ac8c87d1d2704 msgid "optional arbitrary name to use in output types \"json\" and \"xml\"." -msgstr "" +msgstr "출력 타입 \"json\" 및 \"xml\"에서 사용할 선택적 임의 이름." #: ../../functions.rst:503 8f75e703912b484cad9c58f9ef286a30 msgid "" "Return the trailer string required to make a valid document out of page " "text outputs. See :meth:`Page.get_text` for an example." -msgstr "" +msgstr "페이지 텍스트 출력으로 유효한 문서를 만들기 위해 필요한 트레일러 문자열을 반환합니다. 예제는 :meth:`Page.get_text` 를 참조하세요." #: ../../functions.rst:513 7bf3dbf728174900a685386f86d7b613 msgid "" @@ -1355,7 +1279,7 @@ msgid "" "may override what you store in the conventional dictionary. This method " "deletes any such reference, and the corresponding PDF object will be " "deleted during next garbage collection of the file." -msgstr "" +msgstr "PDF에서 XML 기반 메타데이터를 포함하는 객체를 삭제합니다. (Py-) MuPDF는 XML 기반 메타데이터를 지원하지 않습니다. 기존 메타데이터 딕셔너리가 독점적으로 사용되도록 하려면 이것을 사용하세요. 많은 타사 PDF 프로그램이 자체 메타데이터를 XML 형식으로 삽입하므로 기존 딕셔너리에 저장한 내용을 덮어쓸 수 있습니다. 이 메서드는 이러한 참조를 삭제하며, 해당 PDF 객체는 다음 파일 가비지 수집 중에 삭제됩니다." #: ../../functions.rst:519 62c4ccaa8b8c436c990340d78e6341c0 msgid "" @@ -1363,35 +1287,35 @@ msgid "" "refer to :meth:`Document.del_xml_metadata`. You can use it to retrieve " "the content via :meth:`Document.xref_stream` and then work with it using " "some XML software." -msgstr "" +msgstr "PDF의 XML 기반 메타데이터 :data:`xref` 가 있으면 반환합니다 -- :meth:`Document.del_xml_metadata` 도 참조하세요. :meth:`Document.xref_stream` 을 통해 콘텐츠를 검색한 다음 일부 XML 소프트웨어를 사용하여 작업할 수 있습니다." #: ../../functions.rst:522 28fca2e874754c1b8e1f76de939f070b msgid ":data:`xref` of PDF file level XML metadata -- or 0 if none exists." -msgstr "" +msgstr "PDF 파일 레벨 XML 메타데이터의 :data:`xref` -- 없으면 0." #: ../../functions.rst:528 bb22cba4009542cf9cbe10b1bdf7d0a0 msgid "Run a page through a device." -msgstr "" +msgstr "디바이스를 통해 페이지 실행." #: ../../functions.rst:530 b59467cb760a428cb9a1ad3ddc2372f5 msgid "Device, obtained from one of the :ref:`Device` constructors." -msgstr "" +msgstr "디바이스, :ref:`Device` 생성자 중 하나에서 얻음." #: ../../functions.rst:533 764e316039514bc2b1c84a2a3613584f msgid "" "Transformation to apply to the page. Set it to :ref:`Identity` if no " "transformation is desired." -msgstr "" +msgstr "페이지에 적용할 변환. 변환이 필요 없으면 :ref:`Identity` 로 설정하세요." #: ../../functions.rst:540 132d218ecda54d83a572eccb181b290d msgid "New in v1.19.0" -msgstr "" +msgstr "*v1.19.0의 새로운 기능*" #: ../../functions.rst:541 eb0d8183af6d46dcaa937647ed837885 msgid "" "Changed in v1.22.0: optionally also return the OCG name applicable to the" " boundary box." -msgstr "" +msgstr "v1.22.0에서 변경됨: 선택적으로 경계 상자에 적용 가능한 OCG 이름도 반환합니다." #: ../../functions.rst:543 2b307ac70a2c47239fe84735d4ea5dcc msgid "" @@ -1412,7 +1336,7 @@ msgid "" "hidden. So this list can be used to detect such situations. An item's " "index in this list equals the value of a `\"seqno\"` in dictionaries as " "returned by :meth:`Page.get_drawings` and :meth:`Page.get_texttrace`." -msgstr "" +msgstr "텍스트, 이미지 또는 그리기 객체를 둘러싸는 사각형 목록. 각 항목은 `(type, (x0, y0, x1, y1))` 튜플이며, 두 번째 튜플은 사각형 좌표로 구성되고 *type* 은 다음 값 중 하나입니다. `layers=True` 인 경우 OCG 이름 또는 `None` 을 포함하는 세 번째 항목이 있습니다: `(type, (x0, y0, x1, y1), None)`. * `\"fill-text\"` -- 일반 텍스트(문자 경계 없이 그려짐) * `\"stroke-text\"` -- 문자 경계만 표시하는 텍스트 * `\"ignore-text\"` -- 표시되지 않아야 하는 텍스트(예: OCR 텍스트 레이어에서 사용) * `\"fill-path\"` -- 채우기 색상으로 그리기(경계 없음) * `\"stroke-path\"` -- 경계로 그리기(채우기 색상 없음) * `\"fill-image\"` -- 이미지 표시 * `\"fill-shade\"` -- 음영 표시 항목 시퀀스는 페이지의 모양을 구축하기 위해 **이러한 명령이 실행되는 순서**를 나타냅니다. 따라서 항목의 bbox가 이전 항목과 교차하거나 포함하는 경우 이전 항목이 (부분적으로) 덮이거나 숨겨질 수 있습니다. 따라서 이 목록을 사용하여 이러한 상황을 감지할 수 있습니다. 이 목록의 항목 인덱스는 :meth:`Page.get_drawings` 및 :meth:`Page.get_texttrace` 에서 반환된 딕셔너리의 `\"seqno\"` 값과 같습니다." #: ../../functions.rst:543 1b114fa4f3f64d72bd937199e3a3d2f7 msgid "" @@ -1421,37 +1345,37 @@ msgid "" "consists of rectangle coordinates, and *type* is one of the following " "values. If `layers=True`, there is a third item containing the OCG name " "or `None`: `(type, (x0, y0, x1, y1), None)`." -msgstr "" +msgstr "텍스트, 이미지 또는 그리기 객체를 둘러싸는 사각형 목록. 각 항목은 `(type, (x0, y0, x1, y1))` 튜플이며, 두 번째 튜플은 사각형 좌표로 구성되고 *type* 은 다음 값 중 하나입니다. `layers=True` 인 경우 OCG 이름 또는 `None` 을 포함하는 세 번째 항목이 있습니다: `(type, (x0, y0, x1, y1), None)`." #: ../../functions.rst:545 abf0c36f44e04ee8a5a2afa7b724f5a1 msgid "`\"fill-text\"` -- normal text (painted without character borders)" -msgstr "" +msgstr "`\"fill-text\"` -- 일반 텍스트(문자 경계 없이 그려짐)" #: ../../functions.rst:546 37dd54d3f17044c6b337bff4655966a0 msgid "`\"stroke-text\"` -- text showing character borders only" -msgstr "" +msgstr "`\"stroke-text\"` -- 문자 경계만 표시하는 텍스트" #: ../../functions.rst:547 849119a86cd44565a26d3541b70c0516 msgid "" "`\"ignore-text\"` -- text that should not be displayed (e.g. as used by " "OCR text layers)" -msgstr "" +msgstr "`\"ignore-text\"` -- 표시되지 않아야 하는 텍스트(예: OCR 텍스트 레이어에서 사용)" #: ../../functions.rst:548 aec96117beef420c82608445b9e8819a msgid "`\"fill-path\"` -- drawing with fill color (and no border)" -msgstr "" +msgstr "`\"fill-path\"` -- 채우기 색상으로 그리기(경계 없음)" #: ../../functions.rst:549 b1d6ad4002a641048ce03e94bd21d5bb msgid "`\"stroke-path\"` -- drawing with border (and no fill color)" -msgstr "" +msgstr "`\"stroke-path\"` -- 경계로 그리기(채우기 색상 없음)" #: ../../functions.rst:550 b0e26ed279dc4820a41a7f8a4e615183 msgid "`\"fill-image\"` -- displays an image" -msgstr "" +msgstr "`\"fill-image\"` -- 이미지 표시" #: ../../functions.rst:551 7ad6ff9b7faf470cbe306351c31df8ec msgid "`\"fill-shade\"` -- display a shading" -msgstr "" +msgstr "`\"fill-shade\"` -- 음영 표시" #: ../../functions.rst:553 218f82ee4e624649b8e8a57969e46706 msgid "" @@ -1459,89 +1383,89 @@ msgid "" "executed** to build the page's appearance. Therefore, if an item's bbox " "intersects or contains that of a previous item, then the previous item " "may be (partially) covered / hidden." -msgstr "" +msgstr "항목 시퀀스는 페이지의 모양을 구축하기 위해 **이러한 명령이 실행되는 순서** 를 나타냅니다. 따라서 항목의 bbox가 이전 항목과 교차하거나 포함하는 경우 이전 항목이 (부분적으로) 덮이거나 숨겨질 수 있습니다." #: ../../functions.rst:556 5593f221ed344831866cbd474df50bc3 msgid "" "So this list can be used to detect such situations. An item's index in " "this list equals the value of a `\"seqno\"` in dictionaries as returned " "by :meth:`Page.get_drawings` and :meth:`Page.get_texttrace`." -msgstr "" +msgstr "따라서 이 목록을 사용하여 이러한 상황을 감지할 수 있습니다. 이 목록의 항목 인덱스는 :meth:`Page.get_drawings` 및 :meth:`Page.get_texttrace` 에서 반환된 딕셔너리의 `\"seqno\"` 값과 같습니다." #: ../../functions.rst:563 1b4ab5c71554402a9c63ee38f27e71cb msgid "New in v1.18.16" -msgstr "" +msgstr "*v1.18.16의 새로운 기능*" #: ../../functions.rst:564 83fdfa37d163451e9ff96def5e0de5c0 msgid "Changed in v1.19.0: added key \"seqno\"." -msgstr "" +msgstr "v1.19.0에서 변경됨: 키 \"seqno\" 추가." #: ../../functions.rst:565 916f4cdfdeda417abeea07844d42deca msgid "" "Changed in v1.19.1: stroke and fill colors now always are either RGB or " "GRAY" -msgstr "" +msgstr "v1.19.1에서 변경됨: 스트로크 및 채우기 색상이 이제 항상 RGB 또는 GRAY입니다" #: ../../functions.rst:566 8c99ffdc891844ad872fd6def677e08b msgid "" "Changed in v1.19.3: span and character bboxes are now also correct if " "`dir != (1, 0)`." -msgstr "" +msgstr "v1.19.3에서 변경됨: `dir != (1, 0)` 인 경우에도 스팬 및 문자 bbox가 이제 올바릅니다." #: ../../functions.rst:567 03678344ac2e4f0ba4e15f06b3b558d0 msgid "Changed in v1.22.0: add new dictionary key \"layer\"." -msgstr "" +msgstr "v1.22.0에서 변경됨: 새로운 딕셔너리 키 \"layer\" 추가." #: ../../functions.rst:570 6d08591e52224bc08f77d6dcb26d9a04 msgid "" "Return low-level text information of the page. The method is available " "for **all** document types. The result is a list of Python dictionaries " "with the following content::" -msgstr "" +msgstr "페이지의 저수준 텍스트 정보를 반환합니다. 이 메서드는 **모든** 문서 타입에서 사용할 수 있습니다. 결과는 다음 내용을 가진 Python 딕셔너리 목록입니다::" #: ../../functions.rst:606 cc0d6a11bdbc410cb9411001f8e05eee msgid "Details:" -msgstr "" +msgstr "세부사항:" #: ../../functions.rst:608 11f8d880efa247139f7f83220839a83a msgid "" "Information above tagged with \"(1)\" has the same meaning and value as " "explained in :ref:`TextPage`." -msgstr "" +msgstr "\"(1)\"로 태그된 위의 정보는 :ref:`TextPage` 에서 설명한 것과 동일한 의미와 값을 가집니다." #: ../../functions.rst:610 4d9d835859f449e0a40b7667d81451a8 msgid "" "Please note that the font ``flags`` value will never contain a " "*superscript* flag bit: the detection of superscripts is done within " "MuPDF :ref:`TextPage` code -- it is not a property of any font." -msgstr "" +msgstr "글꼴 ``flags`` 값에는 *위첨자* 플래그 비트가 포함되지 않습니다: 위첨자 감지는 MuPDF :ref:`TextPage` 코드 내에서 수행됩니다 -- 이것은 어떤 글꼴의 속성도 아닙니다." #: ../../functions.rst:611 d9f311aa264940be9b1fd7dc476446f3 msgid "" "Also note, that the text *color* is encoded as the usual tuple of floats " "0 <= f <= 1 -- not in sRGB format. Depending on `span[\"type\"]`, " "interpret this as fill color or stroke color." -msgstr "" +msgstr "텍스트 *color* 는 일반적인 float 튜플 0 <= f <= 1로 인코딩됩니다 -- sRGB 형식이 아닙니다. `span[\"type\"]` 에 따라 이를 채우기 색상 또는 스트로크 색상으로 해석하세요." #: ../../functions.rst:613 c32efb528d114e888542af9a76a9477a msgid "There are 3 text span types:" -msgstr "" +msgstr "3가지 텍스트 스팬 타입이 있습니다:" #: ../../functions.rst:615 ea8c6854860c4abc84f35271f246cf6f msgid "" "0: Filled text -- equivalent to PDF text rendering mode 0 (`0 Tr`, the " "default in PDF), only each character's \"inside\" is shown." -msgstr "" +msgstr "0: 채워진 텍스트 -- PDF 텍스트 렌더링 모드 0(`0 Tr`, PDF의 기본값)과 동일하며, 각 문자의 \"내부\"만 표시됩니다." #: ../../functions.rst:616 8c5b60838d0043ad832b76f6964725ec msgid "" "1: Stroked text -- equivalent to `1 Tr`, only the character borders are " "shown." -msgstr "" +msgstr "1: 스트로크 텍스트 -- `1 Tr` 와 동일하며, 문자 경계만 표시됩니다." #: ../../functions.rst:617 aad83dab705242819a32cf3d87f3fcd2 msgid "3: Ignored text -- equivalent to `3 Tr` (hidden text)." -msgstr "" +msgstr "3: 무시된 텍스트 -- `3 Tr`(숨겨진 텍스트)와 동일합니다." #: ../../functions.rst:619 95d1e914c8254b37a6c64251be78ac76 #, python-format @@ -1556,31 +1480,31 @@ msgid "" "identical in every aspect, except for their types, which are 0, resp 1. " "It is your responsibility to handle this type of situation - in " ":meth:`Page.get_text`, MuPDF is doing this for you." -msgstr "" +msgstr "이 맥락에서 선 너비는 `span[\"type\"] != 0` 처리에만 중요합니다: 문자 경계선의 두께를 결정합니다. 이 값은 텍스트 데이터와 함께 전혀 제공되지 않을 수 있습니다. 이 경우 :data:`fontsize` 의 5% 값(`span[\"size\"] * 0,05`)이 생성됩니다. 종종 PDF의 \"인위적인\" 굵은 텍스트는 `2 Tr` 로 생성됩니다. 이 경우에 해당하는 스팬 타입은 없습니다. 대신 해당 텍스트는 두 개의 연속된 스팬으로 표현됩니다 -- 타입이 각각 0과 1인 것을 제외하고 모든 면에서 동일합니다. 이러한 상황을 처리하는 것은 사용자의 책임입니다 - :meth:`Page.get_text` 에서는 MuPDF가 이를 수행합니다." #: ../../functions.rst:620 606f56ad2fa34ddb82e2171ac68c7ae0 msgid "" "For data compactness, the character's unicode is provided here. Use " "built-in function `chr()` for the character itself." -msgstr "" +msgstr "데이터 압축을 위해 여기에 문자의 유니코드가 제공됩니다. 문자 자체는 내장 함수 `chr()` 을 사용하세요." #: ../../functions.rst:621 eafb5c8d2c0a47fe87b904f337b62657 msgid "" "The alpha / opacity value of the span's text, `0 <= opacity <= 1`, 0 is " "invisible text, 1 (100%) is intransparent. Depending on `span[\"type\"]`," " interpret this value as *fill* opacity or, resp. *stroke* opacity." -msgstr "" +msgstr "스팬 텍스트의 알파/불투명도 값, `0 <= opacity <= 1`, 0은 보이지 않는 텍스트, 1(100%)은 불투명합니다. `span[\"type\"]` 에 따라 이 값을 *fill* 불투명도 또는 *stroke* 불투명도로 해석하세요." #: ../../functions.rst:622 eb23d9902fba49d087006466112feef8 msgid "" "*(Changed in v1.19.0)* This value is equal or close to `char[\"bbox\"]` " "of \"rawdict\". In particular, the bbox **height** value is always " "computed as if **\"small glyph heights\"** had been requested." -msgstr "" +msgstr "*(v1.19.0에서 변경됨)* 이 값은 \"rawdict\"의 `char[\"bbox\"]` 와 같거나 가깝습니다. 특히 bbox **height** 값은 항상 **\"small glyph heights\"** 가 요청된 것처럼 계산됩니다." #: ../../functions.rst:623 3ef916cf4c6d4625b153f657810bcaac msgid "*(New in v1.19.0)* This is the union of all character bboxes." -msgstr "" +msgstr "*(v1.19.0의 새로운 기능)* 이것은 모든 문자 bbox의 합집합입니다." #: ../../functions.rst:624 b64b0fd0a2f8435aada9591350d3276e msgid "" @@ -1591,43 +1515,43 @@ msgid "" " (parts of) this text span, one may assume that such an object hides the " "resp. text. Different text spans have identical sequence numbers if they " "were created in one go." -msgstr "" +msgstr "*(v1.19.0의 새로운 기능)* 페이지의 모양을 구축하는 명령을 열거합니다. 텍스트가 \"나중에\" 그려지거나 어떤 객체 *위에* 그려진 객체에 의해 효과적으로 숨겨지는지 확인하는 데 사용할 수 있습니다. 따라서 더 높은 시퀀스 번호를 가진 그리기 또는 이미지가 있고, 그 bbox가 이 텍스트 스팬의 (일부)와 겹치는 경우, 그러한 객체가 해당 텍스트를 숨긴다고 가정할 수 있습니다. 다른 텍스트 스팬은 한 번에 생성된 경우 동일한 시퀀스 번호를 가집니다." #: ../../functions.rst:625 4e53fc30ab4b434a8dd462b37df55b15 msgid "" "*(New in v1.22.0)* The name of the Optional Content Group (OCG) if " "applicable or `None`." -msgstr "" +msgstr "*(v1.22.0의 새로운 기능)* 해당하는 경우 Optional Content Group (OCG)의 이름 또는 `None`." #: ../../functions.rst:627 18fcebc358184f629a5dac8dd24f561d msgid "" "Here is a list of similarities and differences of `page.get_texttrace()` " "compared to `page.get_text(\"rawdict\")`:" -msgstr "" +msgstr "`page.get_text(\"rawdict\")` 와 비교한 `page.get_texttrace()` 의 유사점과 차이점 목록입니다:" #: ../../functions.rst:629 10242bfca81e4c638b761ecd11ecc22b msgid "" "The method is up to **twice as fast,** compared to \"rawdict\" " "extraction. Depends on the amount of text." -msgstr "" +msgstr "이 메서드는 \"rawdict\" 추출과 비교하여 **최대 2배 빠릅니다**. 텍스트 양에 따라 다릅니다." #: ../../functions.rst:630 563d2bcc5e534c8aa65c037cb918a041 msgid "" "The returned data is very **much smaller in size** -- although it " "provides more information." -msgstr "" +msgstr "반환된 데이터는 **크기가 훨씬 작습니다** -- 더 많은 정보를 제공하지만." #: ../../functions.rst:631 22d9ce68958844f9b04f8ce7c51e84a7 msgid "" "Additional types of text **invisibility can be detected**: opacity = 0 or" " type > 1 or overlapping bbox of an object with a higher sequence number." -msgstr "" +msgstr "추가 유형의 텍스트 **보이지 않음을 감지할 수 있습니다**: opacity = 0 또는 type > 1 또는 더 높은 시퀀스 번호를 가진 객체의 겹치는 bbox." #: ../../functions.rst:632 b7e1c0e67b62467e9bdadba9d42d6c6b msgid "" "If MuPDF returns unicode 0xFFFD (65533) for unrecognized characters, you " "may still be able to deduct desired information from the glyph id." -msgstr "" +msgstr "MuPDF가 인식되지 않은 문자에 대해 유니코드 0xFFFD(65533)를 반환하는 경우, 글리프 id에서 원하는 정보를 추론할 수 있을 수 있습니다." #: ../../functions.rst:633 b1f31df6bda84153ace8673ae63e9996 msgid "" @@ -1637,7 +1561,7 @@ msgid "" "doing your own computations here, the width of a space character is " "given. This value is derived from the font where possible. Otherwise the " "value of a fallback font is taken." -msgstr "" +msgstr "`span[\"chars\"]` 는 **공백을 포함하지 않습니다**, **문서 작성자가 명시적으로 코딩한 경우를 제외하고**. :meth:`Page.get_text` 메서드에서 발생하는 것처럼 **절대 생성되지 않습니다**. 여기서 자체 계산을 수행하는 데 도움이 되도록 공백 문자의 너비가 제공됩니다. 이 값은 가능한 경우 글꼴에서 파생됩니다. 그렇지 않으면 대체 글꼴의 값이 사용됩니다." #: ../../functions.rst:634 c94dc74956874bfa8ac4c59d48c0cc87 msgid "" @@ -1650,11 +1574,11 @@ msgid "" "span characters are sorted in any particular order -- you must make sense" " of the info yourself, taking `span[\"dir\"]`, `span[\"wmode\"]`, etc. " "into account." -msgstr "" +msgstr ":ref:`TextPage` 에서 발생하는 것처럼 텍스트를 구성하려는 시도가 없습니다(블록, 라인, 스팬 및 문자의 계층 구조). 문자는 단순히 순차적으로 하나씩 추출되어 스팬에 배치됩니다. 스팬의 특성이 변경될 때마다 새로운 스팬이 시작됩니다. 따라서 동일한 스팬에서 다른 `origin.y` 값을 가진 문자를 찾을 수 있습니다(이는 다른 라인에 나타날 것임을 의미). 스팬 문자가 특정 순서로 정렬되어 있다고 가정할 수 없습니다 -- `span[\"dir\"]`, `span[\"wmode\"]` 등을 고려하여 정보를 직접 이해해야 합니다." #: ../../functions.rst:652 7acddc7741614360bf17d5596c8cc5ab msgid "Ligatures are represented like this:" -msgstr "" +msgstr "합자는 다음과 같이 표현됩니다:" #: ../../functions.rst:636 e72abf836baf467c93105d9dde8d8035 msgid "" @@ -1662,48 +1586,48 @@ msgid "" "\"st\", \"ffi\", and \"ffl\" (only the first 3 are mostly ever used). If " "the page contains e.g. ligature \"fi\", you will find the following two " "character items subsequent to each other::" -msgstr "" +msgstr "MuPDF는 다음 합자를 처리합니다: \"fi\", \"ff\", \"fl\", \"ft\", \"st\", \"ffi\", \"ffl\" (처음 3개만 주로 사용됨). 페이지에 예를 들어 합자 \"fi\"가 포함되어 있으면 다음 두 문자 항목이 서로 연속으로 나타납니다::" #: ../../functions.rst:641 d46f58a609804bea982da0876d2ba90f msgid "" "This means that the bbox of the first ligature character is the area " "containing the complete, compound glyph. Subsequent ligature components " "are recognizable by their glyph value -1 and a bbox of width zero." -msgstr "" +msgstr "이것은 첫 번째 합자 문자의 bbox가 완전한 복합 글리프를 포함하는 영역임을 의미합니다. 후속 합자 구성 요소는 글리프 값 -1과 너비가 0인 bbox로 인식할 수 있습니다." #: ../../functions.rst:642 5f6b5b48f4684036ad328bffca38325a msgid "" "You may want to replace those 2 or 3 char tuples by one, that represents " "the ligature itself. Use the following mapping of ligatures to unicodes:" -msgstr "" +msgstr "2개 또는 3개의 문자 튜플을 합자 자체를 나타내는 하나로 대체할 수 있습니다. 다음 합자-유니코드 매핑을 사용하세요:" #: ../../functions.rst:644 889bc72258b64c39bbba09ab96188589 msgid "`\"ff\" -> 0xFB00`" -msgstr "" +msgstr "`\"ff\" -> 0xFB00`" #: ../../functions.rst:645 950a98981e9b4f3cad52eca1073f9df2 msgid "`\"fi\" -> 0xFB01`" -msgstr "" +msgstr "`\"fi\" -> 0xFB01`" #: ../../functions.rst:646 897debd680f84f00b2b72a621eb0ef78 msgid "`\"fl\" -> 0xFB02`" -msgstr "" +msgstr "`\"fl\" -> 0xFB02`" #: ../../functions.rst:647 06805958e3a24f58ba7fe31f2c71b37c msgid "`\"ffi\" -> 0xFB03`" -msgstr "" +msgstr "`\"ffi\" -> 0xFB03`" #: ../../functions.rst:648 108d095c0546443c9aed1a351b544e51 msgid "`\"ffl\" -> 0xFB04`" -msgstr "" +msgstr "`\"ffl\" -> 0xFB04`" #: ../../functions.rst:649 685cc70784514cb8b5c01b88bff6ab68 msgid "`\"ft\" -> 0xFB05`" -msgstr "" +msgstr "`\"ft\" -> 0xFB05`" #: ../../functions.rst:650 0b2c082689e24ccca607cf35dac9ca2f msgid "`\"st\" -> 0xFB06`" -msgstr "" +msgstr "`\"st\" -> 0xFB06`" #: ../../functions.rst:652 3916ffdd9f474f4a8021e3466c4251ec msgid "" @@ -1711,7 +1635,7 @@ msgid "" "single one: `(0xFB01, glyph, (x, y), (x0, y0, x1, y1))` (there is usually" " no need to lookup the correct glyph id for 0xFB01 in the resp. font, but" " you may execute `font.has_glyph(0xFB01)` and use its return value)." -msgstr "" +msgstr "따라서 위의 두 예제 튜플을 다음 단일 튜플로 대체할 수 있습니다: `(0xFB01, glyph, (x, y), (x0, y0, x1, y1))` (일반적으로 해당 글꼴에서 0xFB01에 대한 올바른 글리프 id를 조회할 필요는 없지만, `font.has_glyph(0xFB01)` 을 실행하고 반환 값을 사용할 수 있습니다)." #: ../../functions.rst:654 57e26aabbddd4a9f9a02d4b02c1ef955 msgid "" @@ -1721,30 +1645,30 @@ msgid "" ":meth:`recover_char_quad` or :meth:`recover_span_quad` as explained in " ":ref:`textpagedict`. Use either `None` or `span[\"dir\"]` for the writing" " direction." -msgstr "" +msgstr "**v1.19.3에서 변경됨:** 다른 텍스트 추출 메서드와 유사하게, 문자 및 스팬 bbox는 문자 쿼드를 둘러쌉니다. 쿼드를 복구하려면 :ref:`textpagedict` 에서 설명한 것과 동일한 메서드 :meth:`recover_quad`, :meth:`recover_char_quad` 또는 :meth:`recover_span_quad` 를 따르세요. 쓰기 방향에는 `None` 또는 `span[\"dir\"]` 을 사용하세요." #: ../../functions.rst:656 c735d25ff37c439293d1c84142159a58 msgid "" "**Changed in v1.21.1:** If applicable, the name of the OCG is shown in " "`\"layer\"`." -msgstr "" +msgstr "**v1.21.1에서 변경됨:** 해당하는 경우 OCG의 이름이 `\"layer\"` 에 표시됩니다." #: ../../functions.rst:662 73cb0ecbc9904cfd9eedd2cf201a34ac msgid "" "Ensures that the page's so-called graphics state is balanced and new " "content can be inserted correctly." -msgstr "" +msgstr "페이지의 소위 그래픽 상태가 균형을 이루고 새 콘텐츠가 올바르게 삽입될 수 있도록 합니다." #: ../../functions.rst:664 2fce8c9f6cfc4f5580d8dbfbdac54581 msgid "" "In versions 1.24.1+ of PyMuPDF the method was improved and is being " "executed automatically as required, so you should no longer need to " "concern yourself with it." -msgstr "" +msgstr "PyMuPDF 버전 1.24.1+에서 이 메서드가 개선되어 필요에 따라 자동으로 실행되므로 더 이상 신경 쓸 필요가 없습니다." #: ../../functions.rst:666 6ca70959e73644b19510f3250902df9a msgid "We discourage using :meth:`Page.clean_contents` to achieve this." -msgstr "" +msgstr "이를 달성하기 위해 :meth:`Page.clean_contents` 사용을 권장하지 않습니다." #: ../../functions.rst:672 fbfdfc139dba4d859c7e23c259a08157 msgid "" @@ -1753,23 +1677,23 @@ msgid "" "inserted (only relevant in `overlay=True` mode). In newer versions " "(1.24.1+), this check and corresponding adjustments are automatically " "executed -- you therefore should not be concerned about this anymore." -msgstr "" +msgstr "페이지의 소위 그래픽 상태가 균형을 이루는지 나타냅니다. `False` 인 경우 새 콘텐츠가 삽입되면 :meth:`Page.wrap_contents` 를 실행해야 합니다(`overlay=True` 모드에서만 관련됨). 최신 버전(1.24.1+)에서는 이 확인 및 해당 조정이 자동으로 실행됩니다 -- 따라서 더 이상 신경 쓸 필요가 없습니다." #: ../../functions.rst:680 de1474a27a3c4f17a4b06482b9593875 msgid "" "Deprecated wrapper for :meth:`TextPage.extractBLOCKS`. Use " ":meth:`Page.get_text` with the \"blocks\" option instead." -msgstr "" +msgstr ":meth:`TextPage.extractBLOCKS` 의 더 이상 사용되지 않는 래퍼. 대신 \"blocks\" 옵션을 사용하는 :meth:`Page.get_text` 를 사용하세요." #: ../../functions.rst:688 88b9617fbc71462e867dbd12dd918d79 msgid "" "Deprecated wrapper for :meth:`TextPage.extractWORDS`. Use " ":meth:`Page.get_text` with the \"words\" option instead." -msgstr "" +msgstr ":meth:`TextPage.extractWORDS` 의 더 이상 사용되지 않는 래퍼. 대신 \"words\" 옵션을 사용하는 :meth:`Page.get_text` 를 사용하세요." #: ../../functions.rst:696 e63d78e973014b5da39d398c04e37cd0 msgid "Run a page through a list device and return its display list." -msgstr "" +msgstr "리스트 디바이스를 통해 페이지를 실행하고 디스플레이 리스트를 반환합니다." #: ../../functions.rst:698 18c7a9bcd3614b61abe4ffa70c25080c msgid ":ref:`DisplayList`" @@ -1777,7 +1701,7 @@ msgstr "" #: ../../functions.rst:699 95ce406969764ffea7a51bd7cb001954 msgid "the display list of the page." -msgstr "" +msgstr "페이지의 디스플레이 리스트." #: ../../functions.rst:705 2f7950caaff2497e85a41efaf8b7ab40 msgid "" @@ -1788,18 +1712,18 @@ msgid "" ":meth:`Document.xref_stream` using an item of this list. Method " ":meth:`Page.read_contents` in contrast walks through this list and " "concatenates the corresponding sources into one `bytes` object." -msgstr "" +msgstr "PDF 전용: 페이지의 :data:`contents` 객체의 :data:`xref` 목록을 검색합니다. 비어 있거나 여러 정수를 포함할 수 있습니다. 페이지가 정리된 경우(:meth:`Page.clean_contents`) 항목은 하나 이하입니다. 각 `/Contents` 객체의 \"source\"는 이 목록의 항목을 사용하여 :meth:`Document.xref_stream` 으로 개별적으로 읽을 수 있습니다. 반면 :meth:`Page.read_contents` 메서드는 이 목록을 순회하고 해당 소스를 하나의 `bytes` 객체로 연결합니다." #: ../../functions.rst:713 0e0e858c5fb34899bf5b31067d9f6cf0 msgid "" "PDF only: Let the page's `/Contents` key point to this xref. Any " "previously used contents objects will be ignored and can be removed via " "garbage collection." -msgstr "" +msgstr "PDF 전용: 페이지의 `/Contents` 키가 이 xref를 가리키도록 합니다. 이전에 사용된 모든 콘텐츠 객체는 무시되며 가비지 수집을 통해 제거할 수 있습니다." #: ../../functions.rst:719 5d1261cb25b84350a7512c2587a9a33e msgid "Changed in v1.17.6" -msgstr "" +msgstr "v1.17.6에서 변경됨" #: ../../functions.rst:721 246c4ca104b04817bab2b24be75d9bcb msgid "" @@ -1809,13 +1733,13 @@ msgid "" "Discrepancies between :data:`contents` and :data:`resources` objects will" " also be corrected if sanitize is true. See :meth:`Page.get_contents` for" " more details." -msgstr "" +msgstr "PDF 전용: 이 페이지와 연결된 모든 :data:`contents` 객체를 정리하고 연결합니다. \"정리\"에는 구문 수정, 표준화 및 콘텐츠 스트림의 \"예쁘게 인쇄\"가 포함됩니다. sanitize가 true이면 :data:`contents` 와 :data:`resources` 객체 간의 불일치도 수정됩니다. 자세한 내용은 :meth:`Page.get_contents` 를 참조하세요." #: ../../functions.rst:723 301ef7e95bd144f8b88b541724fc0d58 msgid "" "Changed in version 1.16.0 Annotations are no longer implicitly cleaned by" " this method. Use :meth:`Annot.clean_contents` separately." -msgstr "" +msgstr "버전 1.16.0에서 변경됨: 주석은 이 메서드에 의해 더 이상 암시적으로 정리되지 않습니다. :meth:`Annot.clean_contents` 를 별도로 사용하세요." #: ../../functions.rst:725 fb9142fcb2a94012a3fdd682a262552a msgid "" @@ -1823,7 +1747,7 @@ msgid "" "actual use in the contents object is snychronized. For example, if a font" " is not actually used for any text of the page, then it will be deleted " "from the `/Resources/Font` object." -msgstr "" +msgstr "*(v1.17.6의 새로운 기능)* true이면 리소스와 콘텐츠 객체에서의 실제 사용 간의 동기화가 이루어집니다. 예를 들어, 글꼴이 페이지의 어떤 텍스트에도 실제로 사용되지 않으면 `/Resources/Font` 객체에서 삭제됩니다." #: ../../functions.rst:727 fc916fcfc1a14c108f31a9985fbb06f9 msgid "" @@ -1832,13 +1756,13 @@ msgid "" "with the **incremental save** option. Also note that the resulting " "singleton new */Contents* object is **uncompressed**. So you should save " "to a **new file** using options *\"deflate=True, garbage=3\"*." -msgstr "" +msgstr "이것은 대량의 새 데이터를 생성하고 이전 데이터를 사용하지 않게 만들 수 있는 복잡한 함수입니다. **증분 저장** 옵션과 함께 사용하는 것은 **권장되지 않습니다**. 또한 결과 단일 */Contents* 객체는 **압축되지 않습니다**. 따라서 *\"deflate=True, garbage=3\"* 옵션을 사용하여 **새 파일** 에 저장해야 합니다." #: ../../functions.rst:729 ee091ea4bbad4137bdf94b65bf7e1505 msgid "" "Do not any longer use this method to ensure correct insertions on PDF " "pages. Since PyMuPDF version 1.24.2 this is taken care of automatically." -msgstr "" +msgstr "PDF 페이지에 올바른 삽입을 보장하기 위해 이 메서드를 더 이상 사용하지 마세요. PyMuPDF 버전 1.24.2부터는 이것이 자동으로 처리됩니다." #: ../../functions.rst:735 da8e22bf756d4516a6435fef2ee406ef msgid "" @@ -1847,14 +1771,14 @@ msgid "" "modifying them. Use this method whenever you need to parse this source in" " its entirety without having to bother how many separate contents objects" " exist." -msgstr "" +msgstr "*버전 1.17.0의 새로운 기능.* 페이지와 연결된 모든 :data:`contents` 객체의 연결을 반환합니다 -- 정리하거나 수정하지 않고. 별도의 콘텐츠 객체가 몇 개나 있는지 신경 쓸 필요 없이 전체 소스를 구문 분석해야 할 때마다 이 메서드를 사용하세요." #: ../../functions.rst:744 0ea4768fd42d4fcdb406a86bb35b0b3c msgid "" "Clean the :data:`contents` streams associated with the annotation. This " "is the same type of action which :meth:`Page.clean_contents` performs -- " "just restricted to this annotation." -msgstr "" +msgstr "주석과 연결된 :data:`contents` 스트림을 정리합니다. 이것은 :meth:`Page.clean_contents` 가 수행하는 것과 동일한 작업입니다 -- 단지 이 주석으로 제한됩니다." #: ../../functions.rst:751 c48de20f6397476e88558a5f14a2c96c msgid "" @@ -1863,14 +1787,14 @@ msgid "" "reference number :data:`xref`. This function is called automatically from" " :meth:`Page.insert_text` and :meth:`Page.insert_textbox`. So you should " "rarely need to do this yourself." -msgstr "" +msgstr "문서에 있는 글꼴에 대한 문자 글리프 및 너비 목록을 반환합니다. 글꼴은 PDF 교차 참조 번호 :data:`xref` 로 지정해야 합니다. 이 함수는 :meth:`Page.insert_text` 및 :meth:`Page.insert_textbox` 에서 자동으로 호출됩니다. 따라서 직접 수행할 필요는 거의 없습니다." #: ../../functions.rst:753 005b7266f7284e90bab8b77be14c642e msgid "" "cross reference number of a font embedded in the PDF. To find a font " ":data:`xref`, use e.g. *doc.get_page_fonts(pno)* of page number *pno* and" " take the first entry of one of the returned list entries." -msgstr "" +msgstr "PDF에 포함된 글꼴의 교차 참조 번호. 글꼴 :data:`xref` 를 찾으려면 예를 들어 페이지 번호 *pno* 의 *doc.get_page_fonts(pno)* 를 사용하고 반환된 목록 항목 중 하나의 첫 번째 항목을 가져옵니다." #: ../../functions.rst:755 c40931be83a048c2b0e4d6547935db08 msgid "" @@ -1878,7 +1802,7 @@ msgid "" " all fonts that only support 1-byte characters, so-called \"simple " "fonts\" (checked by this method). All :ref:`Base-14-Fonts` are simple " "fonts." -msgstr "" +msgstr "반환된 항목 수를 제한합니다. 256의 기본값은 1바이트 문자만 지원하는 소위 \"simple fonts\"(이 메서드로 확인됨)에 대해 적용됩니다. 모든 :ref:`Base-14-Fonts` 는 simple fonts입니다." #: ../../functions.rst:758 c0afe718bd2442b18653b0b77f36b88c msgid "" @@ -1888,38 +1812,38 @@ msgid "" " actual width for some :data:`fontsize` can be calculated as *w * " "fontsize*. For simple fonts, the *g* entry can always be safely ignored. " "In all other cases *g* is the basis for graphically representing *c*." -msgstr "" +msgstr "*limit* 튜플 목록. 각 문자 *c* 는 *ord(c)* 인덱스를 가진 이 목록에 *(g, w)* 항목을 가집니다. 튜플의 항목 *g* (정수)는 문자의 글리프 id이고, float *w* 는 정규화된 너비입니다. 일부 :data:`fontsize` 에 대한 실제 너비는 *w * fontsize* 로 계산할 수 있습니다. simple fonts의 경우 *g* 항목은 항상 안전하게 무시할 수 있습니다. 다른 모든 경우 *g* 는 *c* 를 그래픽으로 표현하는 기반입니다." #: ../../functions.rst:760 d14f388f645f450e95a675c15496f9d0 msgid "This function calculates the pixel width of a string called *text*::" -msgstr "" +msgstr "이 함수는 *text* 라는 문자열의 픽셀 너비를 계산합니다::" #: ../../functions.rst:772 8580164da36b4e0c9468ee8d665d36ac msgid "New in version 1.14.14" -msgstr "" +msgstr "*버전 1.14.14의 새로운 기능*" #: ../../functions.rst:774 e5ce7ef74ebc4d4f8905c40e607a49ce msgid "" "PDF only: Check whether the object represented by :data:`xref` is a " ":data:`stream` type. Return is ``False`` if not a PDF or if the number is" " outside the valid xref range." -msgstr "" +msgstr "PDF 전용: :data:`xref` 로 표현된 객체가 :data:`stream` 타입인지 확인합니다. PDF가 아니거나 숫자가 유효한 xref 범위를 벗어나면 ``False`` 를 반환합니다." #: ../../functions.rst:776 2cbd0ce6bddd4eb7894ddab3fda4d4c8 msgid ":data:`xref` number." -msgstr "" +msgstr ":data:`xref` 번호." #: ../../functions.rst:778 9a6d0c88e56045e394739af6408a6b4e msgid "" "``True`` if the object definition is followed by data wrapped in keyword " "pair *stream*, *endstream*." -msgstr "" +msgstr "객체 정의 뒤에 키워드 쌍 *stream*, *endstream* 으로 둘러싸인 데이터가 오면 ``True``." #: ../../functions.rst:784 5b978581dd6b490e8af4afbf4586ca56 msgid "" "Increase the :data:`xref` by one entry and return that number. This can " "then be used to insert a new object." -msgstr "" +msgstr ":data:`xref` 를 하나의 항목만큼 증가시키고 해당 번호를 반환합니다. 이것은 새 객체를 삽입하는 데 사용할 수 있습니다." #: ../../functions.rst:786 948cbb06043d486e90adbfb3b3275fa8 msgid "" @@ -1928,131 +1852,131 @@ msgid "" "point, there will not yet exist a PDF object associated with it. To " "create an (empty) object with this number use `doc.update_xref(xref, " "\"<<>>\")`." -msgstr "" +msgstr "int :returns: 새 :data:`xref` 항목의 번호. PDF의 교차 참조 테이블에만 새 항목이 생성됩니다. 이 시점에는 아직 연결된 PDF 객체가 존재하지 않습니다. 이 번호로 (빈) 객체를 생성하려면 `doc.update_xref(xref, \"<<>>\")` 를 사용하세요." #: ../../functions.rst:793 e932ac5caa9f4c298a13a6d379dd7a51 msgid "Return length of :data:`xref` table." -msgstr "" +msgstr ":data:`xref` 테이블의 길이를 반환합니다." #: ../../functions.rst:796 f840df5df4b545b1bbf730bf184c5803 msgid "the number of entries in the :data:`xref` table." -msgstr "" +msgstr ":data:`xref` 테이블의 항목 수." #: ../../functions.rst:802 b5d9bd2f14554b25bbb8fb9470c51da6 msgid "" "Compute the quadrilateral of a text span extracted via options \"dict\" " "or \"rawdict\" of :meth:`Page.get_text`." -msgstr "" +msgstr ":meth:`Page.get_text` 의 \"dict\" 또는 \"rawdict\" 옵션을 통해 추출된 텍스트 스팬의 사각형을 계산합니다." #: ../../functions.rst:804 91a864a4261a4b1abf61f04339ba4ede msgid "" "`line[\"dir\"]` of the owning line. Use `None` for a span from " ":meth:`Page.get_texttrace`." -msgstr "" +msgstr "소유 라인의 `line[\"dir\"]`. :meth:`Page.get_texttrace` 에서 가져온 스팬의 경우 `None` 을 사용하세요." #: ../../functions.rst:805 ../../functions.rst:815 ../../functions.rst:826 #: 7033d11e092540f4ba156c04a297c691 74f50cf2036e4339af0cf16e7378d340 #: 994444b97874454798b14763f2d63fca msgid "the span." -msgstr "" +msgstr "스팬." #: ../../functions.rst:806 ddc5c01bb3e44f12bf7284bf4fe74e81 msgid "" "the :ref:`Quad` of the span, usable for text marker annotations " "('Highlight', etc.)." -msgstr "" +msgstr "스팬의 :ref:`Quad`, 텍스트 마커 주석('Highlight' 등)에 사용 가능." #: ../../functions.rst:812 f9901afa0a67408ebc90c04e01c93f8a msgid "" "Compute the quadrilateral of a text character extracted via option " "\"rawdict\" of :meth:`Page.get_text`." -msgstr "" +msgstr ":meth:`Page.get_text` 의 \"rawdict\" 옵션을 통해 추출된 텍스트 문자의 사각형을 계산합니다." #: ../../functions.rst:814 ../../functions.rst:825 #: 67860855da1c47c8828ebecc90f766d6 7da81809c8ba42679d5e884d49b6878f msgid "" "`line[\"dir\"]` of the owning line. Use `None` for a span from " ":meth:`Page.get_texttrace`." -msgstr "" +msgstr "소유 라인의 `line[\"dir\"]`. :meth:`Page.get_texttrace` 에서 가져온 스팬의 경우 `None` 을 사용하세요." #: ../../functions.rst:816 131dbbd284734ed089c4778deb4dd003 msgid "the character." -msgstr "" +msgstr "문자." #: ../../functions.rst:817 f88cafc7c32a4d6fad1b6135cd5cc40f msgid "" "the :ref:`Quad` of the character, usable for text marker annotations " "('Highlight', etc.)." -msgstr "" +msgstr "문자의 :ref:`Quad`, 텍스트 마커 주석('Highlight' 등)에 사용 가능." #: ../../functions.rst:823 d59e0653bc4246c7a9357ca70c5860b0 msgid "" "Compute the quadrilateral of a subset of characters of a span extracted " "via option \"rawdict\" of :meth:`Page.get_text`." -msgstr "" +msgstr ":meth:`Page.get_text` 의 \"rawdict\" 옵션을 통해 추출된 스팬의 문자 하위 집합의 사각형을 계산합니다." #: ../../functions.rst:827 dadf644469074a32aa88fc7fdcf7698b msgid "" "the characters to consider. If given, the selected extraction option must" " be \"rawdict\"." -msgstr "" +msgstr "고려할 문자. 주어진 경우 선택된 추출 옵션은 \"rawdict\"여야 합니다." #: ../../functions.rst:828 dfa12d94ceb3431eb63330adacb7bfe9 msgid "" "the :ref:`Quad` of the selected characters, usable for text marker " "annotations ('Highlight', etc.)." -msgstr "" +msgstr "선택된 문자의 :ref:`Quad`, 텍스트 마커 주석('Highlight' 등)에 사용 가능." #: ../../functions.rst:834 6aa28bd6817943bfbb2746f7a6243580 msgid "" "Compute the quadrilateral of a subset of spans of a text line extracted " "via options \"dict\" or \"rawdict\" of :meth:`Page.get_text`." -msgstr "" +msgstr ":meth:`Page.get_text` 의 \"dict\" 또는 \"rawdict\" 옵션을 통해 추출된 텍스트 라인의 스팬 하위 집합의 사각형을 계산합니다." #: ../../functions.rst:836 78daeef8140c41a8a9c0b8b6c4532d1b msgid "the line." -msgstr "" +msgstr "라인." #: ../../functions.rst:837 e903ee7d5d594fc1811c896806a6bb8e msgid "" "a sub-list of `line[\"spans\"]`. If omitted, the full line quad will be " "returned." -msgstr "" +msgstr "`line[\"spans\"]` 의 하위 목록. 생략하면 전체 라인 쿼드가 반환됩니다." #: ../../functions.rst:838 4d44abbf27ac4dd98103b18718b1b07a msgid "" "the :ref:`Quad` of the selected line spans, usable for text marker " "annotations ('Highlight', etc.)." -msgstr "" +msgstr "선택된 라인 스팬의 :ref:`Quad`, 텍스트 마커 주석('Highlight' 등)에 사용 가능." #: ../../functions.rst:844 4afcc06f3e38430bafe222f1079b22a0 msgid "Detect Tesseract language support folder." -msgstr "" +msgstr "Tesseract 언어 지원 폴더 감지." #: ../../functions.rst:846 cab287431498493d97889bd9dc044f9d msgid "" "This function is used to enable OCR via Tesseract even if the language " "support folder is not specified directly or in environment variable " "TESSDATA_PREFIX." -msgstr "" +msgstr "이 함수는 언어 지원 폴더가 직접 또는 환경 변수 TESSDATA_PREFIX에 지정되지 않은 경우에도 Tesseract를 통해 OCR을 활성화하는 데 사용됩니다." #: ../../functions.rst:850 9ae2a9e271bd4bee918746c9384d309b msgid "If is set we return it directly." -msgstr "" +msgstr "가 설정되어 있으면 직접 반환합니다." #: ../../functions.rst:852 ff58521ec09244cf9af0e5556f7a846f msgid "Otherwise we return `os.environ['TESSDATA_PREFIX']` if set." -msgstr "" +msgstr "그렇지 않으면 설정된 경우 `os.environ['TESSDATA_PREFIX']` 를 반환합니다." #: ../../functions.rst:854 e6350e60bfa84e9e9bc83ba51e45b115 msgid "" "Otherwise we search for a Tesseract installation and return its language " "support folder." -msgstr "" +msgstr "그렇지 않으면 Tesseract 설치를 검색하고 언어 지원 폴더를 반환합니다." #: ../../functions.rst:857 0e05c86bfe6f46f1b4451934cd24174b msgid "Otherwise we raise an exception." -msgstr "" +msgstr "그렇지 않으면 예외를 발생시킵니다." #: ../../functions.rst:867 ec04b5d7ae7c4b2698bdbf79b6fee421 msgid "" @@ -2060,7 +1984,7 @@ msgid "" "-2147483648.0, 2147483520.0, 2147483520.0)`, resp. the :ref:`IRect` and " ":ref:`Quad` counterparts. It is the largest possible rectangle: all valid" " rectangles are contained in it." -msgstr "" +msgstr "(유일한) 무한 사각형 `Rect(-2147483648.0, -2147483648.0, 2147483520.0, 2147483520.0)` 또는 이에 해당하는 :ref:`IRect` 및 :ref:`Quad` 를 반환합니다. 이것은 가능한 가장 큰 사각형입니다: 모든 유효한 사각형이 포함됩니다." #: ../../functions.rst:877 0089e42de5e24fdc9314358b9f612356 msgid "" @@ -2070,22 +1994,22 @@ msgid "" "rectangle. It will e.g. be used to indicate empty bboxes in " "`page.get_text(\"dict\")` dictionaries. There are however infinitely many" " empty or invalid rectangles." -msgstr "" +msgstr "\"표준\" 빈 및 유효하지 않은 사각형 `Rect(2147483520.0, 2147483520.0, -2147483648.0, -2147483648.0)` 또는 이에 해당하는 쿼드를 반환합니다. 왼쪽 위 및 오른쪽 아래 점 값이 무한 사각형과 비교하여 반대입니다. 예를 들어 `page.get_text(\"dict\")` 딕셔너리에서 빈 bbox를 나타내는 데 사용됩니다. 그러나 무한히 많은 빈 또는 유효하지 않은 사각형이 있습니다." #: ../../functions.rst:883 fea470f568524b038bb0e30aed353ec9 msgid "" "Returns a dict mapping lower-case color name to `(red, green, blue)` " "tuple, and `red`, `green`, `blue` are floats in range 0..1." -msgstr "" +msgstr "소문자 색상 이름을 `(red, green, blue)` 튜플에 매핑하는 딕셔너리를 반환하며, `red`, `green`, `blue` 는 0..1 범위의 float입니다." #: ../../functions.rst:888 c23cf90537d54067a5727d87647c89d2 msgid "" "Returns a list of `(colorname, red, green, blue)` tuples, where " "`colorname` is upper case and `red`, `green`, `blue` are integers in " "range 0..255." -msgstr "" +msgstr "`(colorname, red, green, blue)` 튜플 목록을 반환하며, 여기서 `colorname` 은 대문자이고 `red`, `green`, `blue` 는 0..255 범위의 정수입니다." #: ../../footer.rst:46 e369c07a6dfc4a3d9e7f48a78f52b9bf msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version|까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/glossary.mo b/docs/locales/ko/LC_MESSAGES/glossary.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..608196b6224798d42befce91bd5ddfa20b15fb27 100644 GIT binary patch literal 27780 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

sO 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\"* are used to enclose object definitions." -msgstr "" +msgstr "*Contents*, *Type*, *MediaBox* 등은 **키** 이고, *40 0 R*, *Page*, *[0 0 595.32 841.92]* 등은 각각의 **값** 입니다. 문자열 *\"<<\"* 및 *\">>\"* 는 객체 정의를 묶는 데 사용됩니다." #: ../../glossary.rst:104 b635f1dd09be42db81dc681669f2d25d msgid "" @@ -239,13 +239,13 @@ msgid "" "*Resources* has an object as its value, which in turn is a dictionary " "with keys like *ExtGState* (with the value *<>*, which is " "another dictionary), etc." -msgstr "" +msgstr "이 예제는 **중첩된** dictionary 값의 구문도 보여줍니다: *Resources* 는 그 값으로 객체를 가지며, 이 객체는 *ExtGState*(값은 *<>* 로, 또 다른 dictionary)와 같은 키를 가진 dictionary입니다." #: ../../glossary.rst:108 acf84ed282d0488ca9ec42cb7a8b05cd msgid "" "A PDF page is a :data:`dictionary` object which defines one page in a " "PDF, see :ref:`AdobeManual` p. 71." -msgstr "" +msgstr "PDF 페이지는 PDF의 한 페이지를 정의하는 :data:`dictionary` 객체입니다. :ref:`AdobeManual` p. 71을 참조하세요." #: ../../glossary.rst:112 2e0101c6f2df4a99a2a341fe77b08849 msgid "" @@ -255,7 +255,7 @@ msgid "" " quickly open a document containing thousands of pages. The tree contains" " nodes of two types: intermediate nodes, called page tree nodes, and leaf" " nodes, called page objects. (:ref:`AdobeManual` p. 75)." -msgstr "" +msgstr "문서의 페이지는 페이지 트리라고 하는 구조를 통해 액세스되며, 이는 문서의 페이지 순서를 정의합니다. 트리 구조를 사용하면 제한된 메모리만 사용하여 수천 페이지를 포함하는 문서를 빠르게 열 수 있습니다. 트리에는 두 가지 유형의 노드가 포함됩니다: 중간 노드(페이지 트리 노드라고 함)와 리프 노드(페이지 객체라고 함). (:ref:`AdobeManual` p. 75)." #: ../../glossary.rst:114 4d06cfcc4e614225ae5861c899219585 msgid "" @@ -264,7 +264,7 @@ msgid "" "(\"page trees\") for faster access to any single page. In relation to the" " total number of pages, this can reduce the average page access time by " "page number from a linear to some logarithmic order of magnitude." -msgstr "" +msgstr "모든 페이지 참조를 하나의 배열에 나열하는 것이 가능하지만, 많은 페이지가 있는 PDF는 단일 페이지에 더 빠르게 액세스하기 위해 *균형 트리* 구조(\"페이지 트리\")를 사용하여 생성되는 경우가 많습니다. 전체 페이지 수와 관련하여, 이를 통해 페이지 번호별 평균 페이지 액세스 시간을 선형에서 대수적 크기 순서로 줄일 수 있습니다." #: ../../glossary.rst:116 01db9b917bcc4cb89215ac102dda29c9 msgid "" @@ -272,7 +272,7 @@ msgid "" "independently from what may or may not be present in the document file. " "This array is indexed by page number and therefore much faster than even " "the access via a perfectly balanced page tree." -msgstr "" +msgstr "빠른 페이지 액세스를 위해 MuPDF는 문서 파일에 있을 수도 있고 없을 수도 있는 것과 독립적으로 메모리에서 자체 배열을 사용할 수 있습니다. 이 배열은 페이지 번호로 인덱싱되므로 완벽하게 균형 잡힌 페이지 트리를 통한 액세스보다 훨씬 빠릅니다." #: ../../glossary.rst:120 387b50e08c0a4411b5174a213523a1c0 msgid "" @@ -287,7 +287,7 @@ msgid "" " a label. This label is then called *indirect* object. PyMuPDF supports " "retrieving definitions of indirect objects via their cross reference " "number via :meth:`Document.xref_object`." -msgstr "" +msgstr "Python과 유사하게, PDF는 *object* 개념을 지원하며, 8가지 기본 유형이 있습니다: 불리언 값(\"true\" 또는 \"false\"), 정수 및 실수, 문자열(**항상** 괄호로 묶임 -- \"()\" 또는 16진수를 나타내는 \"<>\"), 이름(항상 \"/\"로 시작해야 함, 예: `/Contents`), 배열(괄호 \"[]\"로 묶임), dictionary(괄호 \"<<>>\"로 묶임), 스트림(키워드 \"stream\" / \"endstream\"로 묶임), null 객체(\"null\") (:ref:`AdobeManual` p. 13). 객체는 레이블을 할당하여 식별 가능하게 만들 수 있습니다. 이 레이블은 *indirect* 객체라고 합니다. PyMuPDF는 :meth:`Document.xref_object` 를 통해 교차 참조 번호로 indirect 객체의 정의를 검색하는 것을 지원합니다." #: ../../glossary.rst:124 06fab8191ebd49d98a31a5d42c048ce5 msgid "" @@ -300,21 +300,21 @@ msgid "" "descriptions, are represented as streams.\" \"A stream consists of a " ":data:`dictionary` followed by zero or more bytes bracketed between the " "keywords *stream* and *endstream*\"::" -msgstr "" +msgstr "Python *bytes* 와 유사한 바이트 시퀀스가 뒤따르는 PDF :data:`dictionary` :data:`object` 유형입니다. \"그러나 PDF 애플리케이션은 스트림을 점진적으로 읽을 수 있지만 문자열은 전체를 읽어야 합니다. 또한 스트림은 무제한 길이일 수 있지만 문자열은 구현 제한이 적용됩니다. 이러한 이유로 이미지 및 페이지 설명과 같이 잠재적으로 많은 양의 데이터를 가진 객체는 스트림으로 표현됩니다.\" \"스트림은 키워드 *stream* 과 *endstream* 사이에 괄호로 묶인 0개 이상의 바이트가 뒤따르는 :data:`dictionary` 로 구성됩니다\"::" #: ../../glossary.rst:135 8dc0a34bf972472abef68fc3fe378101 msgid "" "See :ref:`AdobeManual` p. 19. PyMuPDF supports retrieving stream content " "via :meth:`Document.xref_stream`. Use :meth:`Document.is_stream` to " "determine whether an object is of stream type." -msgstr "" +msgstr ":ref:`AdobeManual` p. 19를 참조하세요. PyMuPDF는 :meth:`Document.xref_stream` 을 통해 스트림 콘텐츠를 검색하는 것을 지원합니다. 객체가 스트림 유형인지 확인하려면 :meth:`Document.is_stream` 을 사용하세요." #: ../../glossary.rst:139 d4686fb4f3814da3a119b81f119de382 msgid "" "A mathematical notion meaning a vector of norm (\"length\") 1 -- usually " "the Euclidean norm is implied. In PyMuPDF, this term is restricted to " ":ref:`Point` objects, see :attr:`Point.unit`." -msgstr "" +msgstr "노름(\"길이\")이 1인 벡터를 의미하는 수학적 개념입니다 -- 일반적으로 유클리드 노름을 의미합니다. PyMuPDF에서 이 용어는 :ref:`Point` 객체로 제한됩니다. :attr:`Point.unit` 을 참조하세요." #: ../../glossary.rst:143 e286649e7ce1436db8fbb7e65637ba3a msgid "" @@ -327,13 +327,13 @@ msgid "" "PyMuPDF classes have an :data:`xref` attribute (which is zero for non-" "PDFs), and one can find out the total number of objects in a PDF via " ":meth:`Document.xref_length` *- 1*." -msgstr "" +msgstr "교차 참조 번호의 약어: PDF의 객체에 대한 고유한 정수 식별자입니다. 각 PDF에는 빠른 조회를 위해 각 객체의 상대 위치를 저장하는 교차 참조 테이블이 있습니다(물리적으로 여러 개의 별도 세그먼트로 구성될 수 있음). 교차 참조 테이블은 기존 객체 수보다 하나 더 긴 항목을 가집니다: 항목 0은 예약되어 있으며 어떤 방식으로도 사용해서는 안 됩니다. 많은 PyMuPDF 클래스에는 :data:`xref` 속성이 있습니다(비PDF의 경우 0). :meth:`Document.xref_length` *- 1* 을 통해 PDF의 객체 총 수를 확인할 수 있습니다." #: ../../glossary.rst:148 6aa968ee6fb249d1bc62117c164aba0c msgid "" "When referring to font size this metric is measured in points where 1 " "inch = 72 points." -msgstr "" +msgstr "글꼴 크기를 나타낼 때 이 측정값은 포인트로 측정되며, 1인치 = 72포인트입니다." #: ../../glossary.rst:152 8c31d4e0a1d44b928122302b18a161d4 msgid "" @@ -345,7 +345,7 @@ msgid "" "in the input (like non-positive values or values exceeding 4800), it will" " use \"sane\" defaults instead. The usual default value is 96, but it may" " also be 72 in some cases (e.g. for JPX images)." -msgstr "" +msgstr "이미지 및 :ref:`Pixmap` 객체는 각 방향(수평 및 수직)에서 \"인치당 도트 수\"인 dpi로 제공되는 해상도 정보를 포함할 수 있습니다. MuPDF가 파일 또는 PDF 객체에서 이미지를 읽을 때 이 정보를 구문 분석하여 각각 :attr:`Pixmap.xres`, :attr:`Pixmap.yres` 에 넣습니다. 입력에서 의미 있는 정보를 찾지 못하면(양수가 아닌 값 또는 4800을 초과하는 값 등) 대신 \"적절한\" 기본값을 사용합니다. 일반적인 기본값은 96이지만 일부 경우(예: JPX 이미지)에는 72일 수도 있습니다." #: ../../glossary.rst:156 3e01cf857dca416c8faa34ba7d94265e msgid "" @@ -356,7 +356,7 @@ msgid "" "required, an array listing all optional content groups, (2) `/D`, " "required, the default optional content configuration dictionary (OCCD), " "(3) `/Configs`, optional, an array of alternative OCCDs." -msgstr "" +msgstr "선택적 콘텐츠 속성 dictionary - PDF :data:`catalog` 의 하위 :data:`dictionary`. 선택적 콘텐츠 정보를 저장하는 중앙 위치이며, 키 `/OCProperties` 로 식별됩니다. 이 dictionary에는 두 개의 필수 항목과 하나의 선택적 항목이 있습니다: (1) `/OCGs`, 필수, 모든 선택적 콘텐츠 그룹을 나열하는 배열, (2) `/D`, 필수, 기본 선택적 콘텐츠 구성 dictionary(OCCD), (3) `/Configs`, 선택, 대체 OCCD 배열." #: ../../glossary.rst:161 428928e7e81c403491625f300bc7e77c msgid "" @@ -368,7 +368,7 @@ msgid "" "is always activated. Viewer should offer a way to switch between the " "`/D`, or one of the optional configurations contained in array " "`/Configs`." -msgstr "" +msgstr "선택적 콘텐츠 구성 dictionary - PDF :data:`OCPD` 내부의 PDF :data:`dictionary`. OCG의 ON/OFF 상태 설정과 PDF 뷰어 프로그램에 표시되는 방식을 저장합니다. 구성을 선택하는 것은 일시적인 대량 표시 상태 변경을 빠르게 달성하는 방법입니다. PDF를 연 후 :data:`OCPD` 의 `/D` 구성이 항상 활성화됩니다. 뷰어는 `/D` 또는 배열 `/Configs` 에 포함된 선택적 구성 중 하나 사이를 전환하는 방법을 제공해야 합니다." #: ../../glossary.rst:166 01fc3682e86d471d815772b433b66de6 msgid "" @@ -378,7 +378,7 @@ msgid "" "can simultaneously be shown or hidden by setting their OCG to ON or OFF. " "This can be achieved via the user interface provided by many PDF viewers " "(Adobe Acrobat), or programmatically." -msgstr "" +msgstr "선택적 콘텐츠 그룹 -- 이미지 또는 주석과 같은 다른 PDF 객체의 표시를 제어하는 데 사용되는 :data:`dictionary` 객체. 정의된 페이지와 무관하게 동일한 OCG를 가진 객체는 OCG를 ON 또는 OFF로 설정하여 동시에 표시하거나 숨길 수 있습니다. 이는 많은 PDF 뷰어(Adobe Acrobat)가 제공하는 사용자 인터페이스를 통해 또는 프로그래밍 방식으로 달성할 수 있습니다." #: ../../glossary.rst:170 63d877bcd5ef46dbb557f06da22dff6e msgid "" @@ -387,7 +387,7 @@ msgid "" "visibility of an OCMD is **computed:** it is a logical expression, which " "uses the state of one or more OCGs to produce a boolean value. The " "expression's result is interpreted as ON (true) or OFF (false)." -msgstr "" +msgstr "선택적 콘텐츠 멤버십 dictionary -- :data:`OCG` 처럼 사용할 수 있는 :data:`dictionary` 객체: 표시 상태가 있습니다. OCMD의 표시는 **계산됩니다:** 하나 이상의 OCG 상태를 사용하여 불리언 값을 생성하는 논리식입니다. 식의 결과는 ON(true) 또는 OFF(false)로 해석됩니다." #: ../../glossary.rst:174 7685086584e0476aa01c94592195fd87 msgid "" @@ -397,9 +397,9 @@ msgid "" "text extractions, there is the option to either return the corresponding " "unicode unchanged, or split ligatures up into their constituent parts: " "\"fi\" ==> \"f\" + \"i\", etc." -msgstr "" +msgstr "일부 빈번한 문자 조합은 더 고급 글꼴에서 자체 특수 글리프로 표현됩니다. 일반적인 예는 \"fi\", \"fl\", \"ffi\", \"ffl\"입니다. 이러한 복합체를 *ligature* 라고 합니다. PyMuPDF 텍스트 추출에서는 해당 유니코드를 변경하지 않고 반환하거나 ligature를 구성 요소로 분할하는 옵션이 있습니다: \"fi\" ==> \"f\" + \"i\" 등." #: ../../footer.rst:46 55f27ea4f801402884fd2fc89352730f msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/header-404.mo b/docs/locales/ko/LC_MESSAGES/header-404.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..ece8a2c356c8b900b5c3ee70e0a9c35c02423a75 100644 GIT binary patch delta 620 zcmZWl&r2IY6kdOT(4%J$?^G1h;LS@fVk>wMgm|>*xI0M(HnYp@M6+HJ$p%VPM2Mh} zRSVjB2z12~_RxRBi-jIMIzaKRW7wrSuU9^QUyyk^uMOrgfzAVBjtx5P=lY*F% zIXnkxa;aV+CHgMC;P5RfykXfY*|e#beJQv$laldL7A^=%p8NTZ#Vm?xzhDaHN@K-e zuBI%^0|I4MDt~gRC_17-xJj{0mYod_Hro_L_<#>!5lH}r4n-19Y~N$ZZ4NcTN5Bru zt=a=-aEgOjrU|#ek!31oz;euLg>vcTZ*tos^|}1)hd0YeS_is)nY3fj{f_Q;vsrZb zNBxfVug06Kx@{z%o8uVE8CebVjJX&9;$#MV diff --git a/docs/locales/ko/LC_MESSAGES/header-404.po b/docs/locales/ko/LC_MESSAGES/header-404.po index 5958421b3..69acadcad 100644 --- a/docs/locales/ko/LC_MESSAGES/header-404.po +++ b/docs/locales/ko/LC_MESSAGES/header-404.po @@ -21,17 +21,17 @@ msgstr "" #: ../../header-404.rst:-1 eeba22b6b6f24accb7aaaf2ca8de91f4 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header-404.rst:-1 32c66b9fa56c4fa3b5b6abcd9f3abcfc msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header-404.rst:-1 6b881eb1ccc64d55990a936130aecf2d msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" diff --git a/docs/locales/ko/LC_MESSAGES/header.mo b/docs/locales/ko/LC_MESSAGES/header.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..ece8a2c356c8b900b5c3ee70e0a9c35c02423a75 100644 GIT binary patch delta 620 zcmZWl&r2IY6kdOT(4%J$?^G1h;LS@fVk>wMgm|>*xI0M(HnYp@M6+HJ$p%VPM2Mh} zRSVjB2z12~_RxRBi-jIMIzaKRW7wrSuU9^QUyyk^uMOrgfzAVBjtx5P=lY*F% zIXnkxa;aV+CHgMC;P5RfykXfY*|e#beJQv$laldL7A^=%p8NTZ#Vm?xzhDaHN@K-e zuBI%^0|I4MDt~gRC_17-xJj{0mYod_Hro_L_<#>!5lH}r4n-19Y~N$ZZ4NcTN5Bru zt=a=-aEgOjrU|#ek!31oz;euLg>vcTZ*tos^|}1)hd0YeS_is)nY3fj{f_Q;vsrZb zNBxfVug06Kx@{z%o8uVE8CebVjJX&9;$#MV diff --git a/docs/locales/ko/LC_MESSAGES/header.po b/docs/locales/ko/LC_MESSAGES/header.po index ca4c3e10b..ea2e1f72a 100644 --- a/docs/locales/ko/LC_MESSAGES/header.po +++ b/docs/locales/ko/LC_MESSAGES/header.po @@ -21,17 +21,17 @@ msgstr "" #: ../../header.rst:-1 2f3a42d58aed4c8d919199a1628e46e5 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 8c5d0e6b475d4acbbd44f0169353b949 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 8a0b412ed68e4084a844b1d3978b547f msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" diff --git a/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.mo b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..a069fd8b5b0167fb7bf04bc37019ff6447fd8840 100644 GIT binary patch literal 10236 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 delta 60 wcmez4zk*rko)F7a1|VPrVi_P-0dbIk4v<|1l+*>%n->X}GqM`!8FMiJ0RL(SK>z>% diff --git a/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po index f391026a3..18e76fb1c 100644 --- a/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po +++ b/docs/locales/ko/LC_MESSAGES/how-to-open-a-file.po @@ -21,72 +21,72 @@ msgstr "" #: ../../header.rst:-1 21b5c4028adc463abcc84975940e6301 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 ee82d615395c4e24b8b07395ed871d70 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 1d5b2478c53f433882bce199582d444d msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../how-to-open-a-file.rst:7 5ea3d22849e641d897ccb82f8a12500f msgid "Opening Files" -msgstr "" +msgstr "파일 열기" #: ../../how-to-open-a-file.rst:16 395abd8299ba47be838498d680488494 msgid "Supported File Types" -msgstr "" +msgstr "지원되는 파일 유형" #: ../../how-to-open-a-file.rst:21 cb3463a996b24a14a008c2fc0ad2b685 msgid "PyMuPDF" -msgstr "" +msgstr "PyMuPDF" #: ../../how-to-open-a-file.rst:23 036ac377808741358875a6692e0b2d95 msgid "|PyMuPDF| can open files other than just |PDF|." -msgstr "" +msgstr "|PyMuPDF| 는 |PDF| 외의 파일도 열 수 있습니다." #: ../../how-to-open-a-file.rst:25 ../../how-to-open-a-file.rst:38 #: 1a17fc4b2c2e43a9a47e3a2a1ed82bd4 40ef4134dff248bc8869aed36fd176fc msgid "The following file types are supported:" -msgstr "" +msgstr "다음 파일 유형이 지원됩니다:" #: ../../how-to-open-a-file.rst:34 fa9ae965eea142478505848892067bb0 msgid "PyMuPDF Pro" -msgstr "" +msgstr "PyMuPDF Pro" #: ../../how-to-open-a-file.rst:36 c4725d269a0e41b0867c5b6b16b8960b msgid "|PyMuPDF Pro| can open Office files." -msgstr "" +msgstr "|PyMuPDF Pro| 는 Office 파일을 열 수 있습니다." #: ../../how-to-open-a-file.rst:43 d91d49bc138843188ab0077259cd82ae msgid "**DOC/DOCX**" -msgstr "" +msgstr "**DOC/DOCX**" #: ../../how-to-open-a-file.rst:44 6ff3d492743f45da9b9967b7ac205f1c msgid "**XLS/XLSX**" -msgstr "" +msgstr "**XLS/XLSX**" #: ../../how-to-open-a-file.rst:45 4c317c161ef64bebb742fc17e8e5c6d3 msgid "**PPT/PPTX**" -msgstr "" +msgstr "**PPT/PPTX**" #: ../../how-to-open-a-file.rst:46 dfd0df787a6d4a8bada3b55675495889 msgid "**HWP/HWPX**" -msgstr "" +msgstr "**HWP/HWPX**" #: ../../how-to-open-a-file.rst:63 61701c1d1007436987106ec058719b82 msgid "How to Open a File" -msgstr "" +msgstr "파일을 여는 방법" #: ../../how-to-open-a-file.rst:65 9dd2157acd454f2ea9e62168276399c2 msgid "To open a file, do the following:" -msgstr "" +msgstr "파일을 열려면 다음을 수행하세요:" #: ../../how-to-open-a-file.rst:72 284b59b0b7ca41789da44c7d61f81fc7 msgid "" @@ -94,31 +94,31 @@ msgid "" "pymupdf.Document(\"a.pdf\")` does exactly the same. So, `open` is just a " "convenient alias and you can find its full API documented in that " "chapter." -msgstr "" +msgstr "위 코드는 :ref:`Document` 를 생성합니다. `doc = pymupdf.Document(\"a.pdf\")` 명령도 동일하게 작동합니다. 따라서 `open` 은 편의를 위한 별칭이며, 해당 장에서 전체 API 문서를 확인할 수 있습니다." #: ../../how-to-open-a-file.rst:76 1a5ad0264ff94231899c2caafe461a22 msgid "" "File Recognizer: Opening with :index:`a Wrong File Extension `" -msgstr "" +msgstr "파일 인식기: 잘못된 파일 확장자로 열기" #: ../../how-to-open-a-file.rst:78 90b4fc7ee95f43f49a70a15c890eb8b8 msgid "" "If you have a document with a wrong file extension for its type, do not " "worry: it will still be opened correctly, thanks to the integrated file " "\"content recognizer\"." -msgstr "" +msgstr "파일 유형과 다른 확장자를 가진 문서가 있어도 걱정하지 마세요: 통합된 파일 \"콘텐츠 인식기\" 덕분에 여전히 올바르게 열립니다." #: ../../how-to-open-a-file.rst:80 792fc8fc530d4591b0673684e9d0b274 msgid "" "This component looks at the actual data in the file using a number of " "heuristics -- independent of the file extension. This of course is also " "true for file names **without** an extension." -msgstr "" +msgstr "이 구성 요소는 파일 확장자와 무관하게 여러 휴리스틱을 사용하여 파일의 실제 데이터를 확인합니다. 확장자가 **없는** 파일 이름에도 마찬가지입니다." #: ../../how-to-open-a-file.rst:82 8eec48ad8d35400f93aa9ef384f1baee msgid "Here is a list of details about how the file content recognizer works:" -msgstr "" +msgstr "파일 콘텐츠 인식기의 작동 방식에 대한 세부사항은 다음과 같습니다:" #: ../../how-to-open-a-file.rst:84 999889fc95024292bbe0dc81938a321a msgid "" @@ -129,7 +129,7 @@ msgid "" "resides in memory, the ``filetype`` must be used. File formats that can " "successfully be recognized will be opened even without or wrong " "extensions, and the ``filetype`` paraneter will be ignored." -msgstr "" +msgstr "파일 이름에서 열 때, 콘텐츠 검사를 통해 파일 형식을 결정할 수 없는 경우 ``filetype`` 매개변수를 사용하세요. 예를 들어 모든 텍스트 파일(\"txt\", \"html\", \"xml\" 또는 소스 파일)이 이에 해당합니다. 파일 확장자가 없거나 잘못되었거나 파일이 메모리에 있는 경우 ``filetype`` 을 사용해야 합니다. 성공적으로 인식할 수 있는 파일 형식은 확장자가 없거나 잘못되어도 열리며, ``filetype`` 매개변수는 무시됩니다." #: ../../how-to-open-a-file.rst:86 1ac5dd5257eb4ed280e6ec3ed082da31 msgid "" @@ -139,27 +139,27 @@ msgid "" "parameter continue to play a role and are used to create a \"Tex\" / " "\"HTML\" / ... document. Correspondingly, text files with other / no " "extensions, can successfully be opened using ``filetype``." -msgstr "" +msgstr "텍스트 콘텐츠 기반 파일은 명확하게 인식 가능한 내부 구조를 포함하지 않습니다. 소스 파일(Python, C 등)뿐만 아니라 HTML, XML 등도 마찬가지입니다. 이 경우 파일 확장자와 ``filetype`` 매개변수가 계속 역할을 하며 \"Tex\" / \"HTML\" / ... 문서를 만드는 데 사용됩니다. 따라서 다른 확장자 또는 확장자가 없는 텍스트 파일은 ``filetype`` 을 사용하여 성공적으로 열 수 있습니다." #: ../../how-to-open-a-file.rst:92 b9b6d23c55ea4547afea0a22f2d79c6d msgid "Opening Remote Files" -msgstr "" +msgstr "원격 파일 열기" #: ../../how-to-open-a-file.rst:95 3b43bf59bfc148328c683743eac1329f msgid "" "For remote files on a server (i.e. non-local files), you will need to " "*stream* the file data to |PyMuPDF|." -msgstr "" +msgstr "서버의 원격 파일(즉, 로컬이 아닌 파일)의 경우, 파일 데이터를 |PyMuPDF| 로 *스트리밍* 해야 합니다." #: ../../how-to-open-a-file.rst:97 34b7bf2e937a4250810966ed193bdfc8 msgid "" "For example use the `requests " "`_ library as follows:" -msgstr "" +msgstr "예를 들어 `requests `_ 라이브러리를 다음과 같이 사용하세요:" #: ../../how-to-open-a-file.rst:110 f259d8091f7242e7bdd2c51ebdd3f925 msgid "Opening Files from Cloud Services" -msgstr "" +msgstr "클라우드 서비스에서 파일 열기" #: ../../how-to-open-a-file.rst:112 21d40cb6351a4c69bc14196e1eb014ea msgid "" @@ -167,11 +167,11 @@ msgid "" " please see these `Cloud Interactions code snippets " "`_." -msgstr "" +msgstr "일반적인 클라우드 서비스에 저장된 파일을 다루는 추가 예제는 `Cloud Interactions 코드 스니펫 `_ 을 참조하세요." #: ../../how-to-open-a-file.rst:120 de92d6a4c46143de86751bded4adc336 msgid "Opening Django Files" -msgstr "" +msgstr "Django 파일 열기" #: ../../how-to-open-a-file.rst:122 2a24401c8daf4ec1967ffd20ab41ce1c msgid "" @@ -182,17 +182,17 @@ msgid "" "filesystemstorage-class>`_, but the `django-storages `_ library provides a number" " of other storage backends." -msgstr "" +msgstr "Django는 파일을 저장하기 위해 `File Storage API `_ 를 구현합니다. 기본값은 `FileSystemStorage `_ 이지만, `django-storages `_ 라이브러리는 여러 다른 스토리지 백엔드를 제공합니다." #: ../../how-to-open-a-file.rst:124 ce91bc54879b4e0caad6216633c87800 msgid "" "You can open the file, move the contents into memory, then pass the " "contents to |PyMuPDF| as a stream." -msgstr "" +msgstr "파일을 열고, 콘텐츠를 메모리로 이동한 다음, 콘텐츠를 스트림으로 |PyMuPDF| 에 전달할 수 있습니다." #: ../../how-to-open-a-file.rst:139 619bd327f13f4ed1a9204d62ce0a0e40 msgid "Please note that if the file you open is large, you may run out of memory." -msgstr "" +msgstr "열려는 파일이 큰 경우 메모리가 부족할 수 있습니다." #: ../../how-to-open-a-file.rst:141 e974ef8989724d7ca39ae4e2f528060d msgid "" @@ -200,18 +200,18 @@ msgid "" "backends in different environments. If you're only using the " "`FileSystemStorage`, you can simply use the `obj.file.name` to open the " "file directly with |PyMuPDF| as shown in an earlier example." -msgstr "" +msgstr "File Storage API는 다른 환경에서 다른 스토리지 백엔드를 사용하는 경우 잘 작동합니다. `FileSystemStorage` 만 사용하는 경우, 이전 예제에서와 같이 `obj.file.name` 을 사용하여 |PyMuPDF| 로 파일을 직접 열 수 있습니다." #: ../../how-to-open-a-file.rst:149 11fadcb68ef146fc93ca9f4473e140a5 msgid "Opening Files as Text" -msgstr "" +msgstr "파일을 텍스트로 열기" #: ../../how-to-open-a-file.rst:152 79658fdcc60c4f62821491708e3874a6 msgid "" "|PyMuPDF| has the capability to open any plain text file as a document. " "In order to do this you should provide the `filetype` parameter for the " "`pymupdf.open` function as `\"txt\"`." -msgstr "" +msgstr "|PyMuPDF| 는 모든 일반 텍스트 파일을 문서로 열 수 있는 기능이 있습니다. 이를 수행하려면 `pymupdf.open` 함수의 `filetype` 매개변수를 `\"txt\"` 로 제공해야 합니다." #: ../../how-to-open-a-file.rst:159 d72a0b8f986843488dfc6ddc257e4f45 msgid "" @@ -220,36 +220,36 @@ msgid "" "extracting and page rendering. Obviously, once you have rendered your " "`txt` content, then saving as |PDF| or merging with other |PDF| files is " "no problem." -msgstr "" +msgstr "이렇게 하면 다양한 파일 유형을 열고 텍스트 검색, 텍스트 추출 및 페이지 렌더링과 같은 일반적인 **비PDF** 특정 기능을 수행할 수 있습니다. `txt` 콘텐츠를 렌더링한 후에는 |PDF| 로 저장하거나 다른 |PDF| 파일과 병합하는 것도 문제없습니다." #: ../../how-to-open-a-file.rst:163 25cb1a49799b43669b7c520e52fc2e46 msgid "Examples" -msgstr "" +msgstr "예제" #: ../../how-to-open-a-file.rst:167 df4ce47e55a94298b344689b280a64df msgid "Opening a `C#` file" -msgstr "" +msgstr "`C#` 파일 열기" #: ../../how-to-open-a-file.rst:176 2f20ca6b671845fca3ae2bceeb25eebd msgid "Opening an ``XML`` file" -msgstr "" +msgstr "``XML`` 파일 열기" #: ../../how-to-open-a-file.rst:184 1c25e62b57d843c9b5b8122f59295144 msgid "Opening a `JSON` file" -msgstr "" +msgstr "`JSON` 파일 열기" #: ../../how-to-open-a-file.rst:191 687e69a017bb48b682d8b720ad323f52 msgid "And so on!" -msgstr "" +msgstr "등등!" #: ../../how-to-open-a-file.rst:193 f6ae4e85cdb1469bbf04502e1bb02ccd msgid "" "As you can imagine many text based file formats can be *very simply " "opened* and *interpreted* by |PyMuPDF|. This can make data analysis and " "extraction for a wide range of previously unavailable files possible." -msgstr "" +msgstr "상상할 수 있듯이 많은 텍스트 기반 파일 형식은 |PyMuPDF| 로 *매우 간단하게 열고* *해석할* 수 있습니다. 이를 통해 이전에 사용할 수 없었던 광범위한 파일에 대한 데이터 분석 및 추출이 가능해집니다." #: ../../footer.rst:46 6894d49c24fc4cfa8f9d99a9257edfdf msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/identity.mo b/docs/locales/ko/LC_MESSAGES/identity.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..7fee39f7782580b4e7d926b8844e0dc8c2958437 100644 GIT binary patch literal 2111 zcma)6-)|E~5WfDPw0`Vcr9MpaP=U$0Ne~S(KSUr-8!0AH;#O*(So_xYmGhl@w+C^{ zLm*B?lORCYB_NvyHI$|@YJd<03HlfGZ)l}HX3y_^?6-H9gtkJe<<;!$&dz-E&D{L{ z_Ulazzqhd7#WIxg!moqc`VH$>tgo>aUWwl9eO1$Z=oaKGh1>(h+X*1BH=RIQ+`?K(JMQ?WsqQJIaMuI;3*mvRAyf2 zRM}CoTC4a~qnL`&?d$KQzVIJ!_9s*SN~Yl0o?y1F``?;^psBnv5Qo5e6l$xVU$e9 z(UM6rW3IOYAS*^dh8T8xRv%1nd7 zuo}Ij4o54j#Q$@8%CS)x4>gOdatf;#?Wd}iDHMW8J%v0~DWKIH1CZ5bs^FScp-t4X zz6uhyNZBlv^|&dRUEnYS9X45J-eqo$P%JW-U<8;u5Sh)anr9+3iV{Pj_d$qlR(&h# z0c5U%>{B#5=p}bQ8BW0uQ%`BRGNNzm(Sw4cJcSjEU3%nKRcl^|^$RI&!gW-!^-)9r zG@>F6#8E!|seunugNaFAbzGrmy^?9@C;gJA=bSVpCdPC6HY@rtijby(zJWt}f4@F( zhz1U(4<0Io0^c*m2V| z^2yj3ogT_&=x8Q8G&*)-Xn1%sGc|P_rgq6kMbmWF*-`WyXBBlqN5{raSZ2y`OUDxv zmhUo4A5q_En(S(*ddK>Y;6qY3$NG*WvZL9|ZuJhx~d)jx<3FP}AX zzCl5=E<5WK+_@gyoRe4U6kJ~Fe)ny+xfI-=!R@><`sX+b?##)B%W`2QMO#lgva=bq z*9mXrawllR!R-c)BM0*SA_WU8!E%e_olhs|yT^++~hc&QWIUX|BYx4n0l zn!!RlXwUqQp@R&zQSFSMFu&Q0$OvKO>KgUPjmyB%LtAU@;L-Z-6OxTJ*?tz(f%E5| z5U z6x>}?B&qIcA!>`jE&_s|?Xjk+qrff7?>q9x&Ti>69LKQ~h@Fu`@=+bd+IqT(oI?~* SVWZ=)=N4Av4^QJ})BXnipk2iP delta 60 wcmdllu!33Vo)F7a1|VPrVi_P-0dbIk4v<|1l+*>%o98l@GqM`!8FMiJ0O8jLumAu6 diff --git a/docs/locales/ko/LC_MESSAGES/identity.po b/docs/locales/ko/LC_MESSAGES/identity.po index 5df896c76..f66545b10 100644 --- a/docs/locales/ko/LC_MESSAGES/identity.po +++ b/docs/locales/ko/LC_MESSAGES/identity.po @@ -21,44 +21,44 @@ msgstr "" #: ../../header.rst:-1 74c1aedfabcd4a5c96f4c2597285c328 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 6b94c7df538e4108a3a5ad33241349ec msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 23ee2c9ef17542ffbf5210e348e9de6a msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../identity.rst:7 ec6871dd23a6408aba45460204127d54 msgid "Identity" -msgstr "" +msgstr "Identity" #: ../../identity.rst:9 776ab5a8eb3b4fd5ac5d1b88b17d507a msgid "" "Identity is a :ref:`Matrix` that performs no action -- to be used " "whenever the syntax requires a matrix, but no actual transformation " "should take place. It has the form *pymupdf.Matrix(1, 0, 0, 1, 0, 0)*." -msgstr "" +msgstr "Identity는 아무 작업도 수행하지 않는 :ref:`Matrix` 입니다. 구문이 행렬을 요구하지만 실제 변환이 필요하지 않을 때 사용됩니다. 형식은 *pymupdf.Matrix(1, 0, 0, 1, 0, 0)* 입니다." #: ../../identity.rst:11 2260793ef04b4f739e2e3ba60744f1c2 msgid "" "Identity is a constant, an \"immutable\" object. So, all of its matrix " "properties are read-only and its methods are disabled." -msgstr "" +msgstr "Identity는 상수이며 \"불변\" 객체입니다. 따라서 모든 행렬 속성은 읽기 전용이고 메서드는 비활성화됩니다." #: ../../identity.rst:13 66677799dfa547a68a4f708a29d071a0 msgid "" "If you need a **mutable** identity matrix as a starting point, use one of" " the following statements::" -msgstr "" +msgstr "시작점으로 **변경 가능한** 항등 행렬이 필요하면 다음 문 중 하나를 사용하세요::" #: ../../footer.rst:46 62e975eb99a4452285d40da0e91fc76e msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/index.mo b/docs/locales/ko/LC_MESSAGES/index.mo index 6768f65965b3ce15da8690b4052fc49c88448d36..b14f7f2227366eb8fc6cd3efaabc27eddf1f6894 100644 GIT binary patch delta 764 zcmZ{gO=}ZD7{@2wR%xgRTGT_4IeD=LL8SFk2sO1msKHjj<2Icn3(aoWY&4ZZQj>@z z5v)n@En6!@r4VszO4x&6z%L;Po-(svpkDk>H@GTgT z#lq1AdWXfC$@CZ_;bkMAwMf{sv^dL=dE+6q40>5snKwukal zq07O8ZH42C_YM(HYJI15xT<*E5pQ-VcXs&KCha=~Vej#Ji}YQ`D;5sc_R7yhrR`N* zDtZmkYx!eK-4|DUD*P4Y-GcY}m9Oy1HDS-}akt^$d9UO(w+GopTaent>;HJ OTOa)CI_)-;dx1YZ!ueVN delta 163 zcmaFJ|BAEzo)F7a1|VPsVi_QI0dbH(4v=jQ#JNB$0>n#!xEqLf0dWfuyD>5_Q~~j6 zAa(=snHd-~fOIdAo(`n90qNO5+K&ZDgk)qEE2QKnm*%GCl_ZvA=I2e;U{c#0$ux(F a#X!%PYqBbv2YW!JZ)t#w+vaYzFh&4GLmXlN diff --git a/docs/locales/ko/LC_MESSAGES/index.po b/docs/locales/ko/LC_MESSAGES/index.po index 8a1777a15..901afd577 100644 --- a/docs/locales/ko/LC_MESSAGES/index.po +++ b/docs/locales/ko/LC_MESSAGES/index.po @@ -21,43 +21,43 @@ msgstr "" #: ../../index.rst:39 952c2d69888a45e9b0da6e043ddab148 msgid "About" -msgstr "" +msgstr "소개" #: ../../index.rst:50 83a8e5dd2a9b4d099b68e52044113c27 msgid "User Guide" -msgstr "" +msgstr "사용자 가이드" #: ../../index.rst:62 d17242cca69d431c8485f8ab5b729f2e msgid "How to Guide" -msgstr "" +msgstr "사용 방법 가이드" #: ../../index.rst:69 7466b8745c424beaac09483b379e1f16 msgid "API Reference" -msgstr "" +msgstr "API 참조" #: ../../index.rst:82 b24fcc31226540bc96465c601658ca98 msgid "Other" -msgstr "" +msgstr "기타" #: ../../header.rst:-1 43d585d8a38b489ca647a0f6d7ee01dd msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 6af6f9115aea4bcba5a905e65f50def7 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 d0fa97b60e13424eb62997400c445a63 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../index.rst:20 3275915a8da84e58bd47e046c54375d2 msgid "Welcome to |PyMuPDF|" -msgstr "PyMuPDF에 오신 것을 환영합니다" +msgstr "|PyMuPDF| 에 오신 것을 환영합니다" #: ../../index.rst:22 443397ce6ddd47f5b1d2c0008cd4b639 msgid "" diff --git a/docs/locales/ko/LC_MESSAGES/installation.mo b/docs/locales/ko/LC_MESSAGES/installation.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..14aa4dc0e8f423e42f4e5bcf0103f0b30eb27025 100644 GIT binary patch literal 22186 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 delta 76 zcmZ3rmT?8M&OITPsSH5C2*ff#tODX70UaQ_3Mi=yq$js(g>V__8ks5>8Cw|}Z+@&L M$;fJ;XUxR_0F#*t(f|Me diff --git a/docs/locales/ko/LC_MESSAGES/installation.po b/docs/locales/ko/LC_MESSAGES/installation.po index 025673e24..d33874405 100644 --- a/docs/locales/ko/LC_MESSAGES/installation.po +++ b/docs/locales/ko/LC_MESSAGES/installation.po @@ -21,109 +21,109 @@ msgstr "" #: ../../header.rst:-1 96029ef0e2b04d549d1dd8636b516591 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 2e20adf971da4adf8ade567b89099694 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 e225975277fd4141bab6dfb2babcab67 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../installation.rst:6 ../../installation.rst:31 #: 0e5b938092394f76bb79bd60b8b7bcc8 362130f7ee184277a844a2094e73b166 msgid "Installation" -msgstr "" +msgstr "설치" #: ../../installation.rst:9 5756ccf1a8cf47d489d528757b4ff1ed msgid "Requirements" -msgstr "" +msgstr "요구사항" #: ../../installation.rst:11 59418d8369d141eb9ff64af78a5cd0d1 msgid "" "All the examples below assume that you are running inside a Python " "virtual environment. See: https://docs.python.org/3/library/venv.html for" " details. We also assume that `pip` is up to date." -msgstr "" +msgstr "아래의 모든 예제는 Python 가상 환경 내에서 실행 중이라고 가정합니다. 자세한 내용은 https://docs.python.org/3/library/venv.html 을 참조하세요. 또한 `pip` 가 최신 버전이라고 가정합니다." #: ../../installation.rst:15 c0c567ab87e545dcb02f98a499237cac msgid "For example:" -msgstr "" +msgstr "예를 들어:" #: ../../installation.rst:17 3566b454695c4d74836795503dc32f88 msgid "Windows::" -msgstr "" +msgstr "Windows::" #: ../../installation.rst:23 30d9561c3bbd45f79998c3672a481495 msgid "Linux, MacOS::" -msgstr "" +msgstr "Linux, MacOS::" #: ../../installation.rst:33 a214d3639973479385b1f7fb97f49eb2 msgid "|PyMuPDF| should be installed using pip with::" -msgstr "" +msgstr "|PyMuPDF| 는 다음 명령으로 pip를 사용하여 설치해야 합니다::" #: ../../installation.rst:37 ea5698bf08544d95ab4dfd879681ba77 msgid "" "This will install from a Python wheel if one is available for your " "platform." -msgstr "" +msgstr "플랫폼에 사용 가능한 Python wheel이 있으면 이를 사용하여 설치됩니다." #: ../../installation.rst:41 41710c287f054c699809c8bb0c6be619 msgid "Installation when a suitable wheel is not available" -msgstr "" +msgstr "적합한 wheel 파일을 사용할 수 없는 경우의 설치" #: ../../installation.rst:43 edcf8eac64af49bb9cbe25cbe7de7c5a msgid "" "If a suitable Python wheel is not available, pip will automatically build" " from source using a Python sdist." -msgstr "" +msgstr "적합한 Python wheel 파일을 사용할 수 없는 경우, pip는 Python sdist를 사용하여 소스에서 자동으로 빌드합니다." #: ../../installation.rst:46 10c33b59ba9e4c868ae010f2a7028814 msgid "**This requires C/C++ development tools to be installed**:" -msgstr "" +msgstr "**이를 위해서는 C/C++ 개발 도구가 설치되어 있어야 합니다**:" #: ../../installation.rst:48 5ad6beabf5d6474dab9c471133784cb8 msgid "On Windows:" -msgstr "" +msgstr "Windows에서:" #: ../../installation.rst:51 c850480032484111ad409c8a6d7cc794 msgid "" "Install Visual Studio 2019. If not installed in a standard location, set " "environmental variable `PYMUPDF_SETUP_DEVENV` to the location of the " "`devenv.com` binary." -msgstr "" +msgstr "Visual Studio 2019를 설치하세요. 표준 위치에 설치되지 않은 경우, 환경 변수 `PYMUPDF_SETUP_DEVENV` 를 `devenv.com` 바이너리의 위치로 설정하세요." #: ../../installation.rst:56 65947958187d45018d139034858bc083 msgid "" "Having other installed versions of Visual Studio, for example Visual " "Studio 2022, can cause problems because one can end up with MuPDF and " "PyMuPDF code being compiled with different compiler versions." -msgstr "" +msgstr "Visual Studio 2022와 같은 다른 버전의 Visual Studio가 설치되어 있으면, MuPDF와 PyMuPDF 코드가 서로 다른 컴파일러 버전으로 컴파일될 수 있어 문제가 발생할 수 있습니다." #: ../../installation.rst:60 9e448ffec0c64a40968de3839f6b2855 msgid "The build will automatically download and build MuPDF." -msgstr "" +msgstr "빌드는 자동으로 MuPDF를 다운로드하고 빌드합니다." #: ../../installation.rst:66 9ea3e134885d4f05a4c3e2a4f5bc1095 msgid "Problems after installation" -msgstr "" +msgstr "설치 후 문제" #: ../../installation.rst:68 ../../installation.rst:117 #: 0d4df66268c544a69e1dba24527b39dc da5b4f00d11844939c6ba2c50436cde5 msgid "On Windows, Python error::" -msgstr "" +msgstr "Windows에서 Python 오류::" #: ../../installation.rst:72 05623aa04f7948f1928a5424140c8d9d msgid "" "This has been occasionally seen if `MSVCP140.dll` is missing, and appears" " to be caused by a bug in some versions (2015-2017) of `Microsoft Visual " "C++ Redistributables`." -msgstr "" +msgstr "`MSVCP140.dll` 이 누락된 경우 가끔 발생하며, 일부 버전(2015-2017)의 `Microsoft Visual C++ 재배포 가능 패키지` 의 버그로 인한 것으로 보입니다." #: ../../installation.rst:76 9472b21821c84665a04e27961520861f msgid "" @@ -131,22 +131,22 @@ msgid "" "find instructions for how to reinstall it. For example " "https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist has " "permalinks to the latest supported versions." -msgstr "" +msgstr "https://msdn.com 에서 `MSVCP140.dll` 을 검색하여 재설치 방법을 찾는 것이 좋습니다. 예를 들어 https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist 에는 지원되는 최신 버전에 대한 영구 링크가 있습니다." #: ../../installation.rst:81 3007dd23091741939a53721b7d628b74 msgid "See https://github.com/pymupdf/PyMuPDF/issues/2678 for more details." -msgstr "" +msgstr "자세한 내용은 https://github.com/pymupdf/PyMuPDF/issues/2678 을 참조하세요." #: ../../installation.rst:84 c9a39b500d3d45a1b18d1c3f00c2982e msgid "Python error::" -msgstr "" +msgstr "Python 오류::" #: ../../installation.rst:88 53589cbbfa6944378c7034ed948fa3b4 msgid "" "This can happen if PyMuPDF's legacy name `fitz` is used (for example " "`import fitz` instead of `import pymupdf`), and an unrelated Python " "package called `fitz` (https://pypi.org/project/fitz/) is installed." -msgstr "" +msgstr "PyMuPDF의 레거시 이름 `fitz` 를 사용하는 경우(예: `import pymupdf` 대신 `import fitz`) 및 관련 없는 Python 패키지 `fitz`(https://pypi.org/project/fitz/) 가 설치된 경우 발생할 수 있습니다." #: ../../installation.rst:92 f32677d324ec471f8b25f4becffc62f5 msgid "" @@ -154,99 +154,99 @@ msgid "" "is from 2017), but unfortunately it does not seem possible to remove it " "from pypi.org. It does not even work on its own, as well as breaking the " "use of PyMuPDF's legacy name." -msgstr "" +msgstr "fitz 패키지는 더 이상 유지 관리되지 않는 것으로 보입니다(최신 릴리스는 2017년). 불행히도 pypi.org에서 제거하는 것은 불가능해 보입니다. 자체적으로도 작동하지 않으며 PyMuPDF의 레거시 이름 사용도 방해합니다." #: ../../installation.rst:97 31c58415e64d4285b88f8e33a6d97802 msgid "There are a few ways to avoid this problem:" -msgstr "" +msgstr "이 문제를 피하는 몇 가지 방법이 있습니다:" #: ../../installation.rst:100 3f88b66501a544699823982b2254031f msgid "" "Use `import pymupdf` instead of `import fitz`, and update one's code to " "match." -msgstr "" +msgstr "`import fitz` 대신 `import pymupdf` 를 사용하고 코드를 업데이트하세요." #: ../../installation.rst:103 eb2fe6e966f44853b6678fc67361a0c0 msgid "Or uninstall the `fitz` package and reinstall PyMuPDF::" -msgstr "" +msgstr "또는 `fitz` 패키지를 제거하고 PyMuPDF를 재설치하세요::" #: ../../installation.rst:108 f733312e30d5442d8681d28dfc2e0418 msgid "Or use `import pymupdf as fitz`. However this has not been well tested." -msgstr "" +msgstr "또는 `import pymupdf as fitz` 를 사용하세요. 다만 이 방법은 충분히 테스트되지 않았습니다." #: ../../installation.rst:110 d2942ed579c547888ca1290602ed28cc msgid "With Jupyter labs on Apple Silicon (arm64), Python error::" -msgstr "" +msgstr "Apple Silicon(arm64)의 Jupyter labs에서 Python 오류::" #: ../../installation.rst:114 3dedae1d6af9447eb2192ed96052aa90 msgid "" "This appears to be a problem in Jupyter labs; see: " "https://github.com/pymupdf/PyMuPDF/issues/3643#issuecomment-2210588778." -msgstr "" +msgstr "이는 Jupyter labs의 문제로 보입니다. 자세한 내용은 https://github.com/pymupdf/PyMuPDF/issues/3643#issuecomment-2210588778 을 참조하세요." #: ../../installation.rst:121 7bd3b3ebec5f4f07900684f56429ad36 msgid "" "This was reported 2025-03-26 in " "https://github.com/pymupdf/PyMuPDF/issues/4405." -msgstr "" +msgstr "이 문제는 2025-03-26에 https://github.com/pymupdf/PyMuPDF/issues/4405 에서 보고되었습니다." #: ../../installation.rst:123 b6139c99d78e45a6a9105ecc8404f710 msgid "The fix appears to be to install the latest `VC_redist.x64.exe`." -msgstr "" +msgstr "해결 방법은 최신 `VC_redist.x64.exe` 를 설치하는 것으로 보입니다." #: ../../installation.rst:127 bccf958282944bd4ac99d1ccf70707d4 msgid "Notes" -msgstr "" +msgstr "참고사항" #: ../../installation.rst:130 61583f96dcfd4261a2c77d364470a2ac msgid "Wheels are available for the following platforms:" -msgstr "" +msgstr "다음 플랫폼에 대해 wheel 파일을 사용할 수 있습니다:" #: ../../installation.rst:132 182364ca9ac94666825e7076e6d26a82 msgid "Windows 32-bit Intel." -msgstr "" +msgstr "Windows 32비트 Intel." #: ../../installation.rst:133 005535b4e858480eb22fb9ed70cd49fe msgid "Windows 64-bit Intel." -msgstr "" +msgstr "Windows 64비트 Intel." #: ../../installation.rst:134 7687fad16e9e41379221c5187c01a9f6 msgid "Linux 64-bit Intel." -msgstr "" +msgstr "Linux 64비트 Intel." #: ../../installation.rst:135 e8bae64d60a44c078ddab450469e771d msgid "Linux 64-bit ARM." -msgstr "" +msgstr "Linux 64비트 ARM." #: ../../installation.rst:136 2064ef5679e64d3db0b45c1dfbdff952 msgid "MacOS 64-bit Intel." -msgstr "" +msgstr "MacOS 64비트 Intel." #: ../../installation.rst:137 2190d152d5d0476b86a7e483d9bf4e00 msgid "MacOS 64-bit ARM." -msgstr "" +msgstr "MacOS 64비트 ARM." #: ../../installation.rst:139 5ba4832bb0ca40c3a6f960f5b5665e84 msgid "Details:" -msgstr "" +msgstr "세부사항:" #: ../../installation.rst:141 41c9bfb953b447c484a012628de54f36 msgid "We release a single wheel for each of the above platforms." -msgstr "" +msgstr "위 플랫폼 각각에 대해 단일 wheel 파일을 릴리스합니다." #: ../../installation.rst:144 8cf71ef8029a4d07ada650d699bfd1fc msgid "" "Each wheel uses the Python Stable ABI of the current oldest supported " "Python version (currently 3.10), and so works with all later Python " "versions, including new Python releases." -msgstr "" +msgstr "각 wheel은 현재 지원되는 가장 오래된 Python 버전(현재 3.10)의 Python Stable ABI를 사용하므로, 새로운 Python 릴리스를 포함한 모든 이후 Python 버전에서 작동합니다." #: ../../installation.rst:149 85f0cb2340464eacb0b93de71ce3a42b msgid "" "Wheels are tested on all Python versions currently marked as " "\"Supported\" on https://devguide.python.org/versions/, currently " "|python_versions|." -msgstr "" +msgstr "Wheel은 https://devguide.python.org/versions/ 에서 현재 \"지원됨\"으로 표시된 모든 Python 버전에서 테스트되며, 현재 |python_versions| 입니다." #: ../../installation.rst:153 b10deebc967f4ab8bdb0f24ad98ed832 msgid "" @@ -254,7 +254,7 @@ msgid "" "`_ on Windows. Instead install Python using the " "Windows installer from the python.org website, see: " "http://www.python.org/downloads" -msgstr "" +msgstr "Windows에서 `Chocolatey `_ 로 설치한 Python에는 wheel 파일을 사용할 수 없습니다. 대신 python.org 웹사이트의 Windows 설치 프로그램을 사용하여 Python을 설치하세요. 자세한 내용은 http://www.python.org/downloads 를 참조하세요." #: ../../installation.rst:159 624bcf09993d4be0ae0f8a75b8353859 msgid "" @@ -262,31 +262,31 @@ msgid "" "`_ (For example `Alpine Linux " "`_ on aarch64), and building from source is " "known to fail." -msgstr "" +msgstr "`Musl libc `_ 를 사용하는 Linux-aarch64(예: aarch64의 `Alpine Linux `_)에는 wheel 파일을 사용할 수 없으며, 소스에서 빌드하는 것은 실패하는 것으로 알려져 있습니다." #: ../../installation.rst:164 efeb850ab27c435e9bdc7b4bfcce4292 msgid "" "There are no **mandatory** external dependencies. However, some optional " "feature are available only if additional components are installed:" -msgstr "" +msgstr "**필수** 외부 종속성은 없습니다. 다만 일부 선택적 기능은 추가 구성 요소가 설치된 경우에만 사용할 수 있습니다:" #: ../../installation.rst:166 112f6dc0117840bb96de1ccb40383a6e msgid "" "`Pillow `_ is required for " ":meth:`Pixmap.pil_save` and :meth:`Pixmap.pil_tobytes`." -msgstr "" +msgstr "`Pillow `_ 는 :meth:`Pixmap.pil_save` 및 :meth:`Pixmap.pil_tobytes` 에 필요합니다." #: ../../installation.rst:167 1ee77df6b8b94e6798a002846af1766e msgid "" "`fontTools `_ is required for " ":meth:`Document.subset_fonts`." -msgstr "" +msgstr "`fontTools `_ 는 :meth:`Document.subset_fonts` 에 필요합니다." #: ../../installation.rst:168 28cbd6c15f344131b911099e680559b0 msgid "" "`pymupdf-fonts `_ is a " "collection of nice fonts to be used for text output methods." -msgstr "" +msgstr "`pymupdf-fonts `_ 는 텍스트 출력 방법에 사용할 수 있는 좋은 글꼴 모음입니다." #: ../../installation.rst:170 4e52c3cf248c4abcb79594a420fd423f msgid "" @@ -295,128 +295,128 @@ msgid "" "separate software, not a Python package. To enable OCR functions in " "PyMuPDF, Tesseract must be installed and the `tessdata` folder name " "specified; see below." -msgstr "" +msgstr "이미지 및 문서 페이지의 광학 문자 인식을 위한 `Tesseract-OCR `_ 입니다. Tesseract는 별도의 소프트웨어이며 Python 패키지가 아닙니다. PyMuPDF에서 OCR 기능을 사용하려면 Tesseract를 설치하고 `tessdata` 폴더 이름을 지정해야 합니다. 아래를 참조하세요." #: ../../installation.rst:176 c26a998174ff490b98bd7883858b8b37 msgid "" "You can install these additional components at any time -- before or " "after installing PyMuPDF. PyMuPDF will detect their presence during " "import or when the respective functions are being used." -msgstr "" +msgstr "이러한 추가 구성 요소는 언제든지 설치할 수 있습니다 -- PyMuPDF 설치 전후 모두 가능합니다. PyMuPDF는 가져오기 중 또는 해당 함수가 사용될 때 이들의 존재를 감지합니다." #: ../../installation.rst:180 06f197dc89334f00b8fde2aa343e6a2f msgid "Build and install from a local PyMuPDF source tree" -msgstr "" +msgstr "로컬 PyMuPDF 소스 트리에서 빌드 및 설치" #: ../../installation.rst:182 a5b05e1ca807403ba4f04f8b040f4089 msgid "Initial setup:" -msgstr "" +msgstr "초기 설정:" #: ../../installation.rst:184 6544cbacb1694401940667fbf45ebbe0 msgid "Install C/C++ development tools as described above." -msgstr "" +msgstr "위에 설명된 대로 C/C++ 개발 도구를 설치하세요." #: ../../installation.rst:185 0645317ab66746168a76c49a26e93d39 msgid "Enter a Python venv and update pip, as described above." -msgstr "" +msgstr "위에 설명된 대로 Python venv에 들어가서 pip를 업데이트하세요." #: ../../installation.rst:187 82271eef944e4faf817e14c489cd2c16 msgid "Get a PyMuPDF source tree:" -msgstr "" +msgstr "PyMuPDF 소스 트리 가져오기:" #: ../../installation.rst:189 3c67a60c157048679a1dafd0e6abe5fb msgid "Clone the PyMuPDF git repository::" -msgstr "" +msgstr "PyMuPDF git 저장소 복제::" #: ../../installation.rst:194 7b0c1e0a13d44979ab25c04feb345ad1 msgid "" "Or download and extract a `.zip` or `.tar.gz` source release from " "https://github.com/pymupdf/PyMuPDF/releases." -msgstr "" +msgstr "또는 https://github.com/pymupdf/PyMuPDF/releases 에서 `.zip` 또는 `.tar.gz` 소스 릴리스를 다운로드하고 압축을 풀 수 있습니다." #: ../../installation.rst:197 9edcc8838b654d3a9e1882ee8edefa4c msgid "Then one can build PyMuPDF in two ways:" -msgstr "" +msgstr "그런 다음 PyMuPDF를 두 가지 방법으로 빌드할 수 있습니다:" #: ../../installation.rst:199 575e45b815c94f7cad04f1b45e7c3d7f msgid "Build and install PyMuPDF with default MuPDF version::" -msgstr "" +msgstr "기본 MuPDF 버전으로 PyMuPDF 빌드 및 설치::" #: ../../installation.rst:203 bb7099833f204ff3829afd0cd54324cf msgid "" "This will automatically download a specific hard-coded MuPDF source " "release, and build it into PyMuPDF." -msgstr "" +msgstr "이렇게 하면 특정 하드코딩된 MuPDF 소스 릴리스를 자동으로 다운로드하여 PyMuPDF에 빌드합니다." #: ../../installation.rst:206 86e76ec90c1c4d7a89dcb112d69ccbba msgid "Or build and install PyMuPDF using a local MuPDF source tree:" -msgstr "" +msgstr "또는 로컬 MuPDF 소스 트리를 사용하여 PyMuPDF 빌드 및 설치:" #: ../../installation.rst:208 b9853c693d1f49358428f38af93edc33 msgid "Clone the MuPDF git repository::" -msgstr "" +msgstr "MuPDF git 저장소 복제::" #: ../../installation.rst:213 854b5ebfeb9847efb51d37d0f3e4c259 msgid "" "Build PyMuPDF, specifying the location of the local MuPDF tree with the " "environmental variables `PYMUPDF_SETUP_MUPDF_BUILD`::" -msgstr "" +msgstr "환경 변수 `PYMUPDF_SETUP_MUPDF_BUILD` 를 사용하여 로컬 MuPDF 트리의 위치를 지정하여 PyMuPDF 빌드::" #: ../../installation.rst:218 24b5cda1241e4f36b5aaf31c8df91447 msgid "" "Also, one can build for different Python versions in the same PyMuPDF " "tree:" -msgstr "" +msgstr "또한 동일한 PyMuPDF 트리에서 다른 Python 버전용으로 빌드할 수 있습니다:" #: ../../installation.rst:221 fc0b1a2699064aaaa377451775502e20 msgid "" "PyMuPDF will build for the version of Python that is being used to run " "`pip`. To run `pip` with a specific Python version, use `python -m pip` " "instead of `pip`." -msgstr "" +msgstr "PyMuPDF는 `pip` 를 실행하는 데 사용되는 Python 버전에 대해 빌드됩니다. 특정 Python 버전으로 `pip` 를 실행하려면 `pip` 대신 `python -m pip` 를 사용하세요." #: ../../installation.rst:225 dd80aa73dedb4313a237f8c77a2d783d msgid "So for example on Windows one can build different versions with::" -msgstr "" +msgstr "예를 들어 Windows에서 다음과 같이 다른 버전을 빌드할 수 있습니다::" #: ../../installation.rst:229 4fbc355486c04e7fb88bcdd8ffae7059 msgid "or::" -msgstr "" +msgstr "또는::" #: ../../installation.rst:235 207c24c76f364447839aefe03523527b msgid "Running tests" -msgstr "" +msgstr "테스트 실행" #: ../../installation.rst:237 052b595cbe1448d79c441e326e94f9d7 msgid "" "Having a PyMuPDF tree available allows one to run PyMuPDF's `pytest` test" " suite::" -msgstr "" +msgstr "PyMuPDF 트리를 사용할 수 있으면 PyMuPDF의 `pytest` 테스트 스위트를 실행할 수 있습니다::" #: ../../installation.rst:246 795e4545d04f4e04baa8a0527281f16e msgid "Notes about using a non-default MuPDF" -msgstr "" +msgstr "기본값이 아닌 MuPDF 사용에 대한 참고사항" #: ../../installation.rst:248 9a130c5a8a0946668b8885f28af8aa04 msgid "" "Using a non-default build of MuPDF by setting environmental variable " "`PYMUPDF_SETUP_MUPDF_BUILD` can cause various things to go wrong and so " "is not generally supported:" -msgstr "" +msgstr "환경 변수 `PYMUPDF_SETUP_MUPDF_BUILD` 를 설정하여 기본값이 아닌 MuPDF 빌드를 사용하면 다양한 문제가 발생할 수 있으므로 일반적으로 지원되지 않습니다:" #: ../../installation.rst:252 79b112fde2cc4475bbef94325d535a3d msgid "" "If MuPDF's major version number differs from what PyMuPDF uses by " "default, PyMuPDF can fail to build, because MuPDF's API can change " "between major versions." -msgstr "" +msgstr "MuPDF의 주 버전 번호가 PyMuPDF가 기본적으로 사용하는 것과 다르면, MuPDF의 API가 주 버전 간에 변경될 수 있으므로 PyMuPDF 빌드가 실패할 수 있습니다." #: ../../installation.rst:256 26963aaabb354a0fb893981e3cd6b8d0 msgid "" "Runtime behaviour of PyMuPDF can change because MuPDF's runtime behaviour" " changes between different minor releases. This can also break some " "PyMuPDF tests." -msgstr "" +msgstr "PyMuPDF의 런타임 동작은 MuPDF의 런타임 동작이 다른 부 버전 간에 변경되기 때문에 변경될 수 있습니다. 이로 인해 일부 PyMuPDF 테스트가 실패할 수도 있습니다." #: ../../installation.rst:260 cf6ea4f83bfa409381276082a6a8bdf9 msgid "" @@ -425,143 +425,143 @@ msgid "" "possible that `tests/test_textbox.py:test_textbox3()` will fail. One can " "skip this particular test by adding `-k 'not test_textbox3'` to the " "`pytest` command line." -msgstr "" +msgstr "MuPDF가 PyMuPDF의 사용자 정의 구성 대신 기본 구성을 사용하여 빌드된 경우(예: MuPDF가 시스템 설치인 경우), `tests/test_textbox.py:test_textbox3()` 가 실패할 수 있습니다. `pytest` 명령줄에 `-k 'not test_textbox3'` 를 추가하여 이 특정 테스트를 건너뛸 수 있습니다." #: ../../installation.rst:268 700f4d8e58e84935b6c6975860df3b8f msgid "Official PyMuPDF Linux wheels may not install on older Linux systems" -msgstr "" +msgstr "공식 PyMuPDF Linux wheel 파일이 오래된 Linux 시스템에 설치되지 않을 수 있음" #: ../../installation.rst:270 b47547ab827c4869a01099c6505cf69a msgid "Releases of PyMuPDF are incompatible with older Linux systems." -msgstr "" +msgstr "PyMuPDF 릴리스는 오래된 Linux 시스템과 호환되지 않습니다." #: ../../installation.rst:272 808eb6388cc546d782e08fad72571c1d msgid "" "For example as of 2025-09-03, `pip install pymupdf` does not work on some" " AWS Lambda systems - see " "https://github.com/pymupdf/PyMuPDF/discussions/4631." -msgstr "" +msgstr "예를 들어 2025-09-03 기준으로, 일부 AWS Lambda 시스템에서는 `pip install pymupdf` 가 작동하지 않습니다. 자세한 내용은 https://github.com/pymupdf/PyMuPDF/discussions/4631 을 참조하세요." #: ../../installation.rst:275 debea54d4d7a43c2878628b326c0c3f0 msgid "" "This is because official PyMuPDF Linux wheels are built with a version of" " glibc determined by the current Python manylinux environment. These " "wheels are incompatible with Linux systems that have an older glibc." -msgstr "" +msgstr "이는 공식 PyMuPDF Linux wheel 파일이 현재 Python manylinux 환경에 의해 결정된 glibc 버전으로 빌드되기 때문입니다. 이러한 wheel 파일은 오래된 glibc를 가진 Linux 시스템과 호환되지 않습니다." #: ../../installation.rst:279 bf75483c6b084df08b1cc5bd8206d1bf msgid "" "The official Python manylinux environment is updated periodically to use " "newer glibc versions, so new releases of PyMuPDF become increasingly " "incompatible with older Linux systems." -msgstr "" +msgstr "공식 Python manylinux 환경은 최신 glibc 버전을 사용하도록 주기적으로 업데이트되므로, PyMuPDF의 새 릴리스는 오래된 Linux 시스템과 점점 더 호환되지 않게 됩니다." #: ../../installation.rst:283 91117ed642e046819ecc665f9b6c9b50 msgid "" "There is nothing that can be done about this, other than updating older " "Linux systems, or building PyMuPDF locally from source." -msgstr "" +msgstr "오래된 Linux 시스템을 업데이트하거나 소스에서 로컬로 PyMuPDF를 빌드하는 것 외에는 이에 대해 할 수 있는 일이 없습니다." #: ../../installation.rst:286 e7b222da2a044c2fa1eedf9c819d97ca msgid "" "For more details, please see: `Python Packaging Authority " "`_." -msgstr "" +msgstr "자세한 내용은 `Python Packaging Authority `_ 를 참조하세요." #: ../../installation.rst:290 4adbb8931dfd4590a44a57ffb3936e97 msgid "Packaging" -msgstr "" +msgstr "패키징" #: ../../installation.rst:292 53c33343b4c24290ad643762f5bbb050 msgid "See :doc:`packaging`." -msgstr "" +msgstr ":doc:`packaging` 을 참조하세요." #: ../../installation.rst:296 477e709115dd4d119aea37fb3a68a54b msgid "Using with Pyodide" -msgstr "" +msgstr "Pyodide와 함께 사용" #: ../../installation.rst:298 28b8424d39f448fd863709fd16271d9a msgid "See :doc:`pyodide`." -msgstr "" +msgstr ":doc:`pyodide` 를 참조하세요." #: ../../installation.rst:304 05d1ad76d8ff49d8b8be1c318e026ccb msgid "Enabling Integrated OCR Support" -msgstr "" +msgstr "통합 OCR 지원 활성화" #: ../../installation.rst:306 1088128a9ea343a09d2433086fcee140 msgid "" "If you do not intend to use this feature, skip this step. Otherwise, it " "is required for both installation paths: **from wheels and from " "sources.**" -msgstr "" +msgstr "이 기능을 사용하지 않으려면 이 단계를 건너뛰세요. 그렇지 않으면 두 설치 경로 모두에 필요합니다: **wheel 파일에서 및 소스에서.**" #: ../../installation.rst:308 18290d46b0854568b242288afd51a0da msgid "" "PyMuPDF will already contain all the logic to support OCR functions. But " "it additionally does need `Tesseract’s language support data " "`_." -msgstr "" +msgstr "PyMuPDF에는 이미 OCR 기능을 지원하는 모든 로직이 포함되어 있습니다. 하지만 추가로 `Tesseract의 언어 지원 데이터 `_ 가 필요합니다." #: ../../installation.rst:310 0cbfeba7ee2e4382baa33ea4562e36c3 msgid "" "If not specified explicitly, PyMuPDF will attempt to find the installed " "Tesseract's tessdata, but this should probably not be relied upon." -msgstr "" +msgstr "명시적으로 지정하지 않으면 PyMuPDF는 설치된 Tesseract의 tessdata를 찾으려고 시도하지만, 이에 의존하지 않는 것이 좋습니다." #: ../../installation.rst:313 340c284211c64d04a0a7705bbaed97a1 msgid "" "Otherwise PyMuPDF requires that Tesseract's language support folder is " "specified explicitly either in PyMuPDF OCR functions' `tessdata` " "arguments or `os.environ[\"TESSDATA_PREFIX\"]`." -msgstr "" +msgstr "그렇지 않으면 PyMuPDF는 Tesseract의 언어 지원 폴더가 PyMuPDF OCR 함수의 `tessdata` 인수 또는 `os.environ[\"TESSDATA_PREFIX\"]` 에 명시적으로 지정되어야 합니다." #: ../../installation.rst:317 4050e5d26f8d4fcebd4429bf4468f2c1 msgid "So for a working OCR functionality, make sure to complete this checklist:" -msgstr "" +msgstr "따라서 OCR 기능이 작동하려면 다음 체크리스트를 완료해야 합니다:" #: ../../installation.rst:319 ae04b692262d427da4c557773bbb6331 msgid "" "Locate Tesseract's language support folder. Typically you will find it " "here:" -msgstr "" +msgstr "Tesseract의 언어 지원 폴더를 찾으세요. 일반적으로 다음 위치에 있습니다:" #: ../../installation.rst:321 518b279edc7f426199e22b43bb47488e msgid "Windows: `C:/Program Files/Tesseract-OCR/tessdata`" -msgstr "" +msgstr "Windows: `C:/Program Files/Tesseract-OCR/tessdata`" #: ../../installation.rst:322 2829c0e448b44e639344346371835824 msgid "Unix systems: `/usr/share/tesseract-ocr/4.00/tessdata`" -msgstr "" +msgstr "Unix 시스템: `/usr/share/tesseract-ocr/4.00/tessdata`" #: ../../installation.rst:324 d8669511863246a096ce609ebddc096b msgid "Specify the language support folder when calling PyMuPDF OCR functions:" -msgstr "" +msgstr "PyMuPDF OCR 함수를 호출할 때 언어 지원 폴더를 지정하세요:" #: ../../installation.rst:326 2defdb35431444ab8cb2a6832cb3cc88 msgid "Set the `tessdata` argument." -msgstr "" +msgstr "`tessdata` 인수를 설정하세요." #: ../../installation.rst:327 eda39b64a6ca464d8c23f1eeec197a8f msgid "Or set `os.environ[\"TESSDATA_PREFIX\"]` from within Python." -msgstr "" +msgstr "또는 Python 내에서 `os.environ[\"TESSDATA_PREFIX\"]` 를 설정하세요." #: ../../installation.rst:328 d711c5765afc4c0cafadc80892c613e9 msgid "" "Or set environment variable `TESSDATA_PREFIX` before running Python, for " "example:" -msgstr "" +msgstr "또는 Python을 실행하기 전에 환경 변수 `TESSDATA_PREFIX` 를 설정하세요. 예:" #: ../../installation.rst:330 adb02ed301f749c0b70fa768f6279980 msgid "" "Windows: `setx TESSDATA_PREFIX \"C:/Program Files/Tesseract-" "OCR/tessdata\"`" -msgstr "" +msgstr "Windows: `setx TESSDATA_PREFIX \"C:/Program Files/Tesseract-OCR/tessdata\"`" #: ../../installation.rst:331 a7d44e96bab64a1492085fe6649aa5ba msgid "" "Unix systems: `declare -x TESSDATA_PREFIX=/usr/share/tesseract-" "ocr/4.00/tessdata`" -msgstr "" +msgstr "Unix 시스템: `declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/4.00/tessdata`" #: ../../installation.rst:336 a123b1fc6a474985b09b2e4de3759541 msgid "" @@ -571,5 +571,5 @@ msgstr "" #: ../../footer.rst:48 04ec8ea4e7e743ab9f77de31a752358a msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/irect.mo b/docs/locales/ko/LC_MESSAGES/irect.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..e4cb03203d94b80969d45603333b7203ea1ce6c4 100644 GIT binary patch literal 13379 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 diff --git a/docs/locales/ko/LC_MESSAGES/irect.po b/docs/locales/ko/LC_MESSAGES/irect.po index 87b0cc247..aad80574d 100644 --- a/docs/locales/ko/LC_MESSAGES/irect.po +++ b/docs/locales/ko/LC_MESSAGES/irect.po @@ -21,23 +21,23 @@ msgstr "" #: ../../header.rst:-1 fba66bf65f8244c99a76005b4aa13c77 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 c942dc1ee97843a1823121e8c22c5942 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 8e36a463460e419f9787f96dfe806717 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../irect.rst:7 5159d7062cad401c98bbfc419330c03c msgid "IRect" -msgstr "" +msgstr "IRect" #: ../../irect.rst:9 da2f82891e674e9a99975f0e1c77534a msgid "" @@ -48,242 +48,242 @@ msgid "" "apply to this class. Methods and attributes have the same names, and in " "many cases are implemented by re-using the respective :ref:`Rect` " "counterparts." -msgstr "" +msgstr "IRect는 :ref:`Rect` 와 매우 유사한 사각형 경계 상자입니다. 단, 모든 모서리 좌표가 정수라는 점이 다릅니다. IRect는 픽셀 영역을 지정하는 데 사용됩니다(예: 렌더링 중 이미지 데이터를 받기 위해). 그 외에도 사각형의 빈 상태 및 유효성에 대한 고려 사항도 이 클래스에 적용됩니다. 메서드와 속성은 동일한 이름을 가지며, 많은 경우 해당 :ref:`Rect` 대응 항목을 재사용하여 구현됩니다." #: ../../irect.rst:12 a2319632991b4392b7ea2363ed3ce3ca msgid "**Attribute / Method**" -msgstr "" +msgstr "**속성 / 메서드**" #: ../../irect.rst:12 985bc4b51a2844cc8c87af7ba3568037 msgid "**Short Description**" -msgstr "" +msgstr "**간단한 설명**" #: ../../irect.rst:14 312b0f5bcbbd40a2bd8e8e1e19229048 msgid ":meth:`IRect.contains`" -msgstr "" +msgstr ":meth:`IRect.contains`" #: ../../irect.rst:14 1ccbbb3d38b14035b18375fea8176585 msgid "checks containment of another object" -msgstr "" +msgstr "다른 객체의 포함 여부 확인" #: ../../irect.rst:15 48378afa42394efc9fdbf9eb14494570 msgid ":meth:`IRect.get_area`" -msgstr "" +msgstr ":meth:`IRect.get_area`" #: ../../irect.rst:15 7c5d16bc4f66409496a2544313c511e1 msgid "calculate rectangle area" -msgstr "" +msgstr "사각형 영역 계산" #: ../../irect.rst:16 f0ccc3542ac74ea990d056a328e04a38 msgid ":meth:`IRect.intersect`" -msgstr "" +msgstr ":meth:`IRect.intersect`" #: ../../irect.rst:16 1dc1ecaee3494262a0fe5f21fa1f14d9 msgid "common part with another rectangle" -msgstr "" +msgstr "다른 사각형과의 공통 부분" #: ../../irect.rst:17 dcc6834c254f4196bae3b0d0fab4ceb1 msgid ":meth:`IRect.intersects`" -msgstr "" +msgstr ":meth:`IRect.intersects`" #: ../../irect.rst:17 4fa770702f6f48ddab2468a3aa6c9af1 msgid "checks for non-empty intersection" -msgstr "" +msgstr "비어 있지 않은 교집합 확인" #: ../../irect.rst:18 1475b0caba85400c836e2e24795f6c17 msgid ":meth:`IRect.morph`" -msgstr "" +msgstr ":meth:`IRect.morph`" #: ../../irect.rst:18 185917170ebf4403aecdb06acfbbdb30 msgid "transform with a point and a matrix" -msgstr "" +msgstr "점과 행렬로 변환" #: ../../irect.rst:19 f89cd99364a04f8ead7c40c76d334821 msgid ":meth:`IRect.torect`" -msgstr "" +msgstr ":meth:`IRect.torect`" #: ../../irect.rst:19 b73013e1bd9c44e28fb742260bdf0272 msgid "matrix that transforms to another rectangle" -msgstr "" +msgstr "다른 사각형으로 변환하는 행렬" #: ../../irect.rst:20 15c7541278e84bb8ab6442f22f75170c msgid ":meth:`IRect.norm`" -msgstr "" +msgstr ":meth:`IRect.norm`" #: ../../irect.rst:20 5344860eef7b4ebca725b7087c5ba8b1 msgid "the Euclidean norm" -msgstr "" +msgstr "유클리드 노름" #: ../../irect.rst:21 b4daf225e3034e7f9a2a7efdb849941e msgid ":meth:`IRect.normalize`" -msgstr "" +msgstr ":meth:`IRect.normalize`" #: ../../irect.rst:21 da5ac901945f432e951f9ccfbde9a1e3 msgid "makes a rectangle finite" -msgstr "" +msgstr "사각형을 유한하게 만듦" #: ../../irect.rst:22 b57e345172924c9f92f87bdeee2b8b3b msgid ":attr:`IRect.bottom_left`" -msgstr "" +msgstr ":attr:`IRect.bottom_left`" #: ../../irect.rst:22 8de2dbecf83540c2845f6fea2e7ecc7b msgid "bottom left point, synonym *bl*" -msgstr "" +msgstr "왼쪽 아래 점, 동의어 *bl*" #: ../../irect.rst:23 78ac63f7fbd94c12a1bb2853a704964d msgid ":attr:`IRect.bottom_right`" -msgstr "" +msgstr ":attr:`IRect.bottom_right`" #: ../../irect.rst:23 694a01dd73e044ebb482e19a2d477c0f msgid "bottom right point, synonym *br*" -msgstr "" +msgstr "오른쪽 아래 점, 동의어 *br*" #: ../../irect.rst:24 c996baab80024480b6fa888ba3dae48d msgid ":attr:`IRect.height`" -msgstr "" +msgstr ":attr:`IRect.height`" #: ../../irect.rst:24 5cfaf1765add470395b5f7e3f9f3af09 msgid "height of the rectangle" -msgstr "" +msgstr "사각형의 높이" #: ../../irect.rst:25 1b7c56522528489b89e2c3863d10335b msgid ":attr:`IRect.is_empty`" -msgstr "" +msgstr ":attr:`IRect.is_empty`" #: ../../irect.rst:25 0f3aefc4a2e247f4909ac53517ac039c msgid "whether rectangle is empty" -msgstr "" +msgstr "사각형이 비어 있는지 여부" #: ../../irect.rst:26 ebba20f4de03492090a9968e1e5dd412 msgid ":attr:`IRect.is_infinite`" -msgstr "" +msgstr ":attr:`IRect.is_infinite`" #: ../../irect.rst:26 9c334c81b9b8415ba1053a2528ecb6ff msgid "whether rectangle is infinite" -msgstr "" +msgstr "사각형이 무한한지 여부" #: ../../irect.rst:27 5001534eb64f471d85cc5b89d7d974a1 msgid ":attr:`IRect.rect`" -msgstr "" +msgstr ":attr:`IRect.rect`" #: ../../irect.rst:27 4b920cbbb5bd436ea5424583f46a971f msgid "the :ref:`Rect` equivalent" -msgstr "" +msgstr ":ref:`Rect` 와 동등한 것" #: ../../irect.rst:28 73d2bc3e97c64f5facee96dfcf12b95c msgid ":attr:`IRect.top_left`" -msgstr "" +msgstr ":attr:`IRect.top_left`" #: ../../irect.rst:28 5806b5f7f43040419aec40fe1ec99f9b msgid "top left point, synonym *tl*" -msgstr "" +msgstr "왼쪽 위 점, 동의어 *tl*" #: ../../irect.rst:29 856082fe624c4dd4b8eeb24285c1a347 msgid ":attr:`IRect.top_right`" -msgstr "" +msgstr ":attr:`IRect.top_right`" #: ../../irect.rst:29 0b985550b8ed4625a72796ab4c754952 msgid "top_right point, synonym *tr*" -msgstr "" +msgstr "오른쪽 위 점, 동의어 *tr*" #: ../../irect.rst:30 5cc9d50c8cec4d768741a74eca8abf0b msgid ":attr:`IRect.quad`" -msgstr "" +msgstr ":attr:`IRect.quad`" #: ../../irect.rst:30 d135c468e28048fc921fdfdf4bbb13cf msgid ":ref:`Quad` made from rectangle corners" -msgstr "" +msgstr "사각형 모서리로 만든 :ref:`Quad`" #: ../../irect.rst:31 022996f05c34445fa253e0e774b365a3 msgid ":attr:`IRect.width`" -msgstr "" +msgstr ":attr:`IRect.width`" #: ../../irect.rst:31 0b36bdc4d3bf46afab89889318dc863a msgid "width of the rectangle" -msgstr "" +msgstr "사각형의 너비" #: ../../irect.rst:32 521608cb542c4976ba07f2f56d904ace msgid ":attr:`IRect.x0`" -msgstr "" +msgstr ":attr:`IRect.x0`" #: ../../irect.rst:32 d0964024870440a58844774693381ec8 msgid "X-coordinate of the top left corner" -msgstr "" +msgstr "왼쪽 위 모서리의 X 좌표" #: ../../irect.rst:33 548e8fbd99a442b2b5a586073ff4f2ab msgid ":attr:`IRect.x1`" -msgstr "" +msgstr ":attr:`IRect.x1`" #: ../../irect.rst:33 30a1db52025e46e0be799ff23b4f2696 msgid "X-coordinate of the bottom right corner" -msgstr "" +msgstr "오른쪽 아래 모서리의 X 좌표" #: ../../irect.rst:34 f81b38bd9fde4f54bed975e459d7a9ac msgid ":attr:`IRect.y0`" -msgstr "" +msgstr ":attr:`IRect.y0`" #: ../../irect.rst:34 2b16ddf8934849fbaab256d3d54e4363 msgid "Y-coordinate of the top left corner" -msgstr "" +msgstr "왼쪽 위 모서리의 Y 좌표" #: ../../irect.rst:35 70d84d3ce7a34c4297a1e7700d3f7109 msgid ":attr:`IRect.y1`" -msgstr "" +msgstr ":attr:`IRect.y1`" #: ../../irect.rst:35 b3e0e713d8d046a8968b780c0340f966 msgid "Y-coordinate of the bottom right corner" -msgstr "" +msgstr "오른쪽 아래 모서리의 Y 좌표" #: ../../irect.rst:38 2edafd03825b4939bfe6472c41b08bcf msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../irect.rst:50 70995ff946be4d8d84849a0c0b6f16d3 msgid "" "Overloaded constructors. Also see examples below and those for the " ":ref:`Rect` class." -msgstr "" +msgstr "오버로드된 생성자. 아래 예제와 :ref:`Rect` 클래스의 예제도 참조하세요." #: ../../irect.rst:52 8f664a86d7374ec9bda83e6905b4e67b msgid "If another irect is specified, a **new copy** will be made." -msgstr "" +msgstr "다른 irect가 지정되면 **새 복사본** 이 만들어집니다." #: ../../irect.rst:54 6e6e21909c9c4ae3a9139bde73277f88 msgid "" "If sequence is specified, it must be a Python sequence type of 4 numbers " "(see :ref:`SequenceTypes`). Non-integer numbers will be truncated, non-" "numeric values will raise an exception." -msgstr "" +msgstr "sequence가 지정되면 4개의 숫자로 구성된 Python 시퀀스 유형이어야 합니다(:ref:`SequenceTypes` 참조). 정수가 아닌 숫자는 잘리고, 숫자가 아닌 값은 예외를 발생시킵니다." #: ../../irect.rst:56 f9a414d271ee415fb26b8f0b142958b7 msgid "The other parameters mean integer coordinates." -msgstr "" +msgstr "다른 매개변수는 정수 좌표를 의미합니다." #: ../../irect.rst:61 7c84bdc985c64c339d0548802f831996 msgid "" "Calculates the area of the rectangle and, with no parameter, equals " "*abs(IRect)*. Like an empty rectangle, the area of an infinite rectangle " "is also zero." -msgstr "" +msgstr "사각형의 영역을 계산하며, 매개변수 없이는 *abs(IRect)* 와 같습니다. 빈 사각형과 마찬가지로 무한 사각형의 영역도 0입니다." #: ../../irect.rst 18e4b1fb1da640de88306538351ca10b #: 218364ce30ff4c0a9be4541c11fe1e9f 394c5a21898045d19dc3fca6edc763a7 #: 489a707b54a24c2eb3edb81f8229ef4f 5b5047f52c7a458c90e239164e797307 #: 6408eafe7a4547e980f6763bd4b559e1 msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../irect.rst:63 63bea0a8781c48c49fac02eaeda867ce msgid "" "Specify required unit: respective squares of \"px\" (pixels, default), " "\"in\" (inches), \"cm\" (centimeters), or \"mm\" (millimeters)." -msgstr "" +msgstr "필요한 단위 지정: \"px\"(픽셀, 기본값), \"in\"(인치), \"cm\"(센티미터) 또는 \"mm\"(밀리미터)의 각각의 제곱." #: ../../irect.rst 0f9fbd309a584cab995697cae68f899d #: 7c2bab6d8e594a5589e33354d18a1796 ba5dbf6b9e214071aaec6e290fac295f #: e6ca9e94a86f416a922d607f4943a5a3 msgid "Return type" -msgstr "" +msgstr "반환 유형" #: ../../irect.rst:69 5dc2badf5382432fa2d57f3db0e32119 msgid "" @@ -292,11 +292,11 @@ msgid "" "rectangle is empty, the result is also empty. If either rectangle is " "infinite, the other one is taken as the result -- and hence also infinite" " if both rectangles were infinite." -msgstr "" +msgstr "현재 사각형과 *ir* 의 교집합(공통 사각형 영역)이 계산되어 현재 사각형을 대체합니다. 사각형 중 하나가 비어 있으면 결과도 비어 있습니다. 사각형 중 하나가 무한이면 다른 하나가 결과로 사용됩니다 -- 따라서 두 사각형이 모두 무한이면 결과도 무한입니다." #: ../../irect.rst:71 8af38038c172477b9e9af3e3b7862926 msgid "Second rectangle." -msgstr "" +msgstr "두 번째 사각형." #: ../../irect.rst:75 e7214be906944cddbd77c8aecdd86d95 msgid "" @@ -306,94 +306,94 @@ msgid "" "this is always ``False``, if *x* is not an empty rectangle and not a " "number. If *x* is a number, it will be checked to be one of the four " "components. *x in irect* and *irect.contains(x)* are equivalent." -msgstr "" +msgstr "*x* 가 사각형에 포함되어 있는지 확인합니다. 이것은 :data:`rect_like`, :data:`point_like` 또는 숫자일 수 있습니다. *x* 가 빈 사각형이면 이것은 항상 true입니다. 반대로, 사각형이 비어 있으면 이것은 항상 ``False`` 입니다. *x* 가 빈 사각형이 아니고 숫자가 아닌 경우. *x* 가 숫자이면 4개의 구성 요소 중 하나인지 확인됩니다. *x in irect* 와 *irect.contains(x)* 는 동일합니다." #: ../../irect.rst:77 7cc8752befc847a9885e54e61f00faee msgid "the object to check." -msgstr "" +msgstr "확인할 객체." #: ../../irect.rst:84 41a07fef21a04ff9b1f1c59de07d83d1 msgid "" "Checks whether the rectangle and the :data:`rect_like` \"r\" contain a " "common non-empty :ref:`IRect`. This will always be ``False`` if either is" " infinite or empty." -msgstr "" +msgstr "사각형과 :data:`rect_like` \"r\"이 공통의 비어 있지 않은 :ref:`IRect` 를 포함하는지 확인합니다. 둘 중 하나가 무한이거나 비어 있으면 이것은 항상 ``False`` 입니다." #: ../../irect.rst:86 aa8981e507b44374bd69c86ddf1f7541 msgid "the rectangle to check." -msgstr "" +msgstr "확인할 사각형." #: ../../irect.rst:92 e0237b4a333a4949bae56a33d349416d msgid "New in version 1.19.3" -msgstr "" +msgstr "버전 1.19.3에서 새로 추가됨" #: ../../irect.rst:94 a8f435e24dcb48e2bdbca8838eca5764 msgid "" "Compute the matrix which transforms this rectangle to a given one. See " ":meth:`Rect.torect`." -msgstr "" +msgstr "이 사각형을 주어진 사각형으로 변환하는 행렬을 계산합니다. :meth:`Rect.torect` 를 참조하세요." #: ../../irect.rst:96 d1c97833dc404dbf9a4af4245c9a4541 msgid "the target rectangle. Must not be empty or infinite." -msgstr "" +msgstr "대상 사각형. 비어 있거나 무한이 아니어야 합니다." #: ../../irect.rst:97 2f2d67d9571f465fa494157309add0d7 msgid ":ref:`Matrix`" -msgstr "" +msgstr ":ref:`Matrix`" #: ../../irect.rst 75c56c65e0e64566a450b019b0cac229 #: a68dd79a643440fbb2173c54bf9da905 msgid "Returns" -msgstr "" +msgstr "반환값" #: ../../irect.rst:98 c705e90002274a80b333b03348c54360 msgid "" "a matrix `mat` such that `self * mat = rect`. Can for example be used to " "transform between the page and the pixmap coordinates." -msgstr "" +msgstr "`self * mat = rect` 가 되는 행렬 `mat`. 예를 들어 페이지와 픽셀맵 좌표 간 변환에 사용할 수 있습니다." #: ../../irect.rst:103 287c04b5d7f141ccb8d6ad779ecaeb1e msgid "New in version 1.17.0" -msgstr "" +msgstr "버전 1.17.0에서 새로 추가됨" #: ../../irect.rst:105 e37ea5bfcc8d496abb5f6decf903b78d msgid "Return a new quad after applying a matrix to it using a fixed point." -msgstr "" +msgstr "고정점을 사용하여 행렬을 적용한 후 새 quad를 반환합니다." #: ../../irect.rst:107 05bbb73520154a3181137a24fec1c86f msgid "the fixed point." -msgstr "" +msgstr "고정점." #: ../../irect.rst:108 b34bf6b64a6543358399eee20fed216a msgid "the matrix." -msgstr "" +msgstr "행렬." #: ../../irect.rst:109 c69142f99a804255b75e2eaf0d41597a msgid "" "a new :ref:`Quad`. This a wrapper of the same-named quad method. If " "infinite, the infinite quad is returned." -msgstr "" +msgstr "새 :ref:`Quad`. 이것은 동일한 이름의 quad 메서드의 래퍼입니다. 무한이면 무한 quad가 반환됩니다." #: ../../irect.rst:113 1cacf407916d48f49e0c36e73c9d2795 msgid "New in version 1.16.0" -msgstr "" +msgstr "버전 1.16.0에서 새로 추가됨" #: ../../irect.rst:115 73cccdef3ba54c138d3c2949905823f1 msgid "" "Return the Euclidean norm of the rectangle treated as a vector of four " "numbers." -msgstr "" +msgstr "4개의 숫자 벡터로 처리된 사각형의 유클리드 노름을 반환합니다." #: ../../irect.rst:119 1e3b3df827f64cdaa8f3e30d20539c21 msgid "" "Make the rectangle finite. This is done by shuffling rectangle corners. " "After this, the bottom right corner will indeed be south-eastern to the " "top left one. See :ref:`Rect` for a more details." -msgstr "" +msgstr "사각형을 유한하게 만듭니다. 이것은 사각형 모서리를 재배치하여 수행됩니다. 이 작업 후, 오른쪽 아래 모서리는 실제로 왼쪽 위 모서리의 남동쪽이 됩니다. 자세한 내용은 :ref:`Rect` 를 참조하세요." #: ../../irect.rst:125 80fcd714078d4459b6446f7aa881ded8 msgid "Equals *Point(x0, y0)*." -msgstr "" +msgstr "*Point(x0, y0)* 와 같습니다." #: ../../irect.rst 1185a0d53778409b8eb3beb582b64888 #: 34743c436e9f444485fae4bae2ddb7f9 352aed9e86654ed0bfb3414c7c9f882a @@ -404,46 +404,46 @@ msgstr "" #: d95b0909ef3d4300a206cd4f2b8c8671 f6cdc81509354493aa34a01e5ebc06b4 #: f97ab05a65224ade959a073fae8e16c2 msgid "type" -msgstr "" +msgstr "유형" #: ../../irect.rst:127 ../../irect.rst:135 ../../irect.rst:143 #: ../../irect.rst:151 88e60a9d15ad4d409f7a85722cd1cb9c #: c7e32fdd1a374a44979cdc28e388d038 fb5fa1bba9ab48979d23d8dd6744ca12 #: fdc51db9a96f4153893929ddb8e95ee3 msgid ":ref:`Point`" -msgstr "" +msgstr ":ref:`Point`" #: ../../irect.rst:133 305506d4a8894b98b370bfdaf51af233 msgid "Equals *Point(x1, y0)*." -msgstr "" +msgstr "*Point(x1, y0)* 와 같습니다." #: ../../irect.rst:141 9af3c12519684f28bb4bc50d612e4372 msgid "Equals *Point(x0, y1)*." -msgstr "" +msgstr "*Point(x0, y1)* 와 같습니다." #: ../../irect.rst:149 ae11bdfc7226476aac26a17b08ad9204 msgid "Equals *Point(x1, y1)*." -msgstr "" +msgstr "*Point(x1, y1)* 와 같습니다." #: ../../irect.rst:155 6b6c7c24528e4d028bb599bcaba2d291 msgid "The :ref:`Rect` with the same coordinates as floats." -msgstr "" +msgstr "float와 동일한 좌표를 가진 :ref:`Rect`." #: ../../irect.rst:157 07b31a4170c647d1ae20c438ea29c332 msgid ":ref:`Rect`" -msgstr "" +msgstr ":ref:`Rect`" #: ../../irect.rst:161 6d942227a8804d80be71085d59471e1f msgid "The quadrilateral *Quad(irect.tl, irect.tr, irect.bl, irect.br)*." -msgstr "" +msgstr "사각형 *Quad(irect.tl, irect.tr, irect.bl, irect.br)*." #: ../../irect.rst:163 21c9866abaed4b9ea6806095673297f4 msgid ":ref:`Quad`" -msgstr "" +msgstr ":ref:`Quad`" #: ../../irect.rst:167 aa41fcfcf80642958f591e2014a05804 msgid "Contains the width of the bounding box. Equals *abs(x1 - x0)*." -msgstr "" +msgstr "경계 상자의 너비를 포함합니다. *abs(x1 - x0)* 와 같습니다." #: ../../irect.rst:169 ../../irect.rst:175 ../../irect.rst:181 #: ../../irect.rst:187 ../../irect.rst:193 ../../irect.rst:199 @@ -451,54 +451,54 @@ msgstr "" #: a72fd244eafd454380cfe3bc5def6325 f2ef5e017dda4f76ab39cff8b6079d88 #: fa70673340164af19d538be4a10b59ad fc10d7f00d79406db00d1066e4567571 msgid "int" -msgstr "" +msgstr "int" #: ../../irect.rst:173 e896ac73b5c64e75b7724b41502abd00 msgid "Contains the height of the bounding box. Equals *abs(y1 - y0)*." -msgstr "" +msgstr "경계 상자의 높이를 포함합니다. *abs(y1 - y0)* 와 같습니다." #: ../../irect.rst:179 29e02c90a309472484e82207f4e2bb94 msgid "X-coordinate of the left corners." -msgstr "" +msgstr "왼쪽 모서리의 X 좌표." #: ../../irect.rst:185 ec2198ff697e420d9c05f93f973367bb msgid "Y-coordinate of the top corners." -msgstr "" +msgstr "위쪽 모서리의 Y 좌표." #: ../../irect.rst:191 e02641fa0cb443a58d8b6f6d447edb7a msgid "X-coordinate of the right corners." -msgstr "" +msgstr "오른쪽 모서리의 X 좌표." #: ../../irect.rst:197 2e367ece51d84b1280d4ec05cc038c6a msgid "Y-coordinate of the bottom corners." -msgstr "" +msgstr "아래쪽 모서리의 Y 좌표." #: ../../irect.rst:203 900a2545643f4623905b338b7edefd8b msgid "``True`` if rectangle is infinite, ``False`` otherwise." -msgstr "" +msgstr "사각형이 무한이면 ``True``, 그렇지 않으면 ``False``." #: ../../irect.rst:205 ../../irect.rst:211 4c1a21a29dfe4414ad6992b3dcc0b117 #: aec6fc0ebb874b20bfb1a90a68a30dcc msgid "bool" -msgstr "" +msgstr "bool" #: ../../irect.rst:209 877573fb6317435ca1b1a73c24606949 msgid "``True`` if rectangle is empty, ``False`` otherwise." -msgstr "" +msgstr "사각형이 비어 있으면 ``True``, 그렇지 않으면 ``False``." #: ../../irect.rst:216 7cc608bcd141490a9f473438421895b4 msgid "" "This class adheres to the Python sequence protocol, so components can be " "accessed via their index, too. Also refer to :ref:`SequenceTypes`." -msgstr "" +msgstr "이 클래스는 Python 시퀀스 프로토콜을 따르므로 구성 요소는 인덱스를 통해 액세스할 수도 있습니다. :ref:`SequenceTypes` 도 참조하세요." #: ../../irect.rst:217 a3c01f53c9ef4d5eb1b84f26294b538b msgid "" "Rectangles can be used with arithmetic operators -- see chapter " ":ref:`Algebra`." -msgstr "" +msgstr "사각형은 산술 연산자와 함께 사용할 수 있습니다 -- :ref:`Algebra` 장을 참조하세요." #: ../../footer.rst:46 512cd6db01a142258a5b31acbcb8a187 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/link.mo b/docs/locales/ko/LC_MESSAGES/link.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..04d848e20205a3eb207c5dd876e058d9ee58244d 100644 GIT binary patch literal 13443 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 delta 60 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 diff --git a/docs/locales/ko/LC_MESSAGES/linkdest.po b/docs/locales/ko/LC_MESSAGES/linkdest.po index 1831aaeef..d12dcd75f 100644 --- a/docs/locales/ko/LC_MESSAGES/linkdest.po +++ b/docs/locales/ko/LC_MESSAGES/linkdest.po @@ -21,29 +21,29 @@ msgstr "" #: ../../header.rst:-1 d57c78d809254da4835f2c2e979be9bf msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 a9ed1908021a4b46ac047f81afa8fd03 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 c383513223a942bea5aee21e50d9b3c2 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../linkdest.rst:7 6f11bc05a63745008c94dda126160905 msgid "linkDest" -msgstr "" +msgstr "linkDest" #: ../../linkdest.rst:8 0b3bb1ecff3b4317aaaabd080edb44e8 msgid "" "Class representing the `dest` property of an outline entry or a link. " "Describes the destination to which such entries point." -msgstr "" +msgstr "개요 항목 또는 링크의 `dest` 속성을 나타내는 클래스입니다. 이러한 항목이 가리키는 대상을 설명합니다." #: ../../linkdest.rst:10 c02022acb8024740b76912d137b9899a msgid "" @@ -51,121 +51,121 @@ msgid "" "version 1.10.0. For backward compatibility, PyMuPDF is still maintaining " "it, although some of its attributes are no longer backed by data actually" " available via MuPDF." -msgstr "" +msgstr "MuPDF v1.9.0까지 이 클래스는 MuPDF 내부에 존재했으며 버전 1.10.0에서 제거되었습니다. 하위 호환성을 위해 PyMuPDF는 여전히 이를 유지하고 있지만, 일부 속성은 더 이상 MuPDF를 통해 실제로 사용 가능한 데이터로 지원되지 않습니다." #: ../../linkdest.rst:13 192d952a7df04c4cb3800c0c6f8b6f99 msgid "**Attribute**" -msgstr "" +msgstr "**속성**" #: ../../linkdest.rst:13 71e9a555483944ff92a77001b3d42f49 msgid "**Short Description**" -msgstr "" +msgstr "**간단한 설명**" #: ../../linkdest.rst:15 3ccecaa069ff4226b5794d23afcb6f38 msgid ":attr:`linkDest.dest`" -msgstr "" +msgstr ":attr:`linkDest.dest`" #: ../../linkdest.rst:15 b0182cc143894b7397921f5e6efe2ad8 msgid "destination" -msgstr "" +msgstr "대상" #: ../../linkdest.rst:16 94cfb537b2034d95b10812ca82ab0904 msgid ":attr:`linkDest.fileSpec`" -msgstr "" +msgstr ":attr:`linkDest.fileSpec`" #: ../../linkdest.rst:16 8c2d54d1045244c2b2c7be7fe3aff94d msgid "file specification (path, filename)" -msgstr "" +msgstr "파일 사양(경로, 파일명)" #: ../../linkdest.rst:17 c9d87d20c7e34bdcba3e15b52958cc2d msgid ":attr:`linkDest.flags`" -msgstr "" +msgstr ":attr:`linkDest.flags`" #: ../../linkdest.rst:17 8eab10462616444ca0c07141a25997d1 msgid "descriptive flags" -msgstr "" +msgstr "설명 플래그" #: ../../linkdest.rst:18 d3ee936fbf09442985e09022f97346a0 msgid ":attr:`linkDest.isMap`" -msgstr "" +msgstr ":attr:`linkDest.isMap`" #: ../../linkdest.rst:18 6b10fcc4b7024312b80879a046dde7a1 msgid "is this a MAP?" -msgstr "" +msgstr "이것이 MAP입니까?" #: ../../linkdest.rst:19 ebd316b494c341949404a1013a0c3716 msgid ":attr:`linkDest.isUri`" -msgstr "" +msgstr ":attr:`linkDest.isUri`" #: ../../linkdest.rst:19 a3d669f5e1b24a5f8817d790b4dfce24 msgid "is this a URI?" -msgstr "" +msgstr "이것이 URI입니까?" #: ../../linkdest.rst:20 5f79bf4078184f17aed9690ec43a9e28 msgid ":attr:`linkDest.kind`" -msgstr "" +msgstr ":attr:`linkDest.kind`" #: ../../linkdest.rst:20 da66f3a913634b5197318056882d489c msgid "kind of destination" -msgstr "" +msgstr "대상 유형" #: ../../linkdest.rst:21 a9f255b3361541bbbc58d4b524552874 msgid ":attr:`linkDest.lt`" -msgstr "" +msgstr ":attr:`linkDest.lt`" #: ../../linkdest.rst:21 8696049fe5f14b5e898e8894961de97a msgid "top left coordinates" -msgstr "" +msgstr "왼쪽 위 좌표" #: ../../linkdest.rst:22 e69848891b564b91b789e415193e2599 msgid ":attr:`linkDest.named`" -msgstr "" +msgstr ":attr:`linkDest.named`" #: ../../linkdest.rst:22 3e9e08f3e3f646e39ea6939d38f92ea7 msgid "name if named destination" -msgstr "" +msgstr "이름이 지정된 대상인 경우 이름" #: ../../linkdest.rst:23 e55ceb925d38472da5faac759c6c1f39 msgid ":attr:`linkDest.newWindow`" -msgstr "" +msgstr ":attr:`linkDest.newWindow`" #: ../../linkdest.rst:23 9da63baa93924bb3810f8b14cd3c6f08 msgid "name of new window" -msgstr "" +msgstr "새 창 이름" #: ../../linkdest.rst:24 3133f4f237c54427b5f38bb9e4ee0870 msgid ":attr:`linkDest.page`" -msgstr "" +msgstr ":attr:`linkDest.page`" #: ../../linkdest.rst:24 4e9fb63bb49e45838a66455c5ee65ae9 msgid "page number" -msgstr "" +msgstr "페이지 번호" #: ../../linkdest.rst:25 007c86d9023d40e5bb0e4e5b93d802dd msgid ":attr:`linkDest.rb`" -msgstr "" +msgstr ":attr:`linkDest.rb`" #: ../../linkdest.rst:25 6eeedea7ed6145018567f08541f89224 msgid "bottom right coordinates" -msgstr "" +msgstr "오른쪽 아래 좌표" #: ../../linkdest.rst:26 748aaf1c62434b01970667a3b3033d87 msgid ":attr:`linkDest.uri`" -msgstr "" +msgstr ":attr:`linkDest.uri`" #: ../../linkdest.rst:26 7ad45d4c5bba4618bf6a5964e2571854 msgid "URI" -msgstr "" +msgstr "URI" #: ../../linkdest.rst:29 fb8d1e50444c4cd08673dbee32636872 msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../linkdest.rst:35 899ccd076a8a486087261429c87c1e49 msgid "" "Target destination name if :attr:`linkDest.kind` is :data:`LINK_GOTOR` " "and :attr:`linkDest.page` is *-1*." -msgstr "" +msgstr ":attr:`linkDest.kind` 가 :data:`LINK_GOTOR` 이고 :attr:`linkDest.page` 가 *-1* 인 경우 대상 이름." #: ../../linkdest.rst 04ee6c88174848ac8bab86ad2416c0a3 #: 1464a774b9d54e0e990c6ebe2da4c6e8 473cf52ca9cf41cf99038dd29cc31c14 @@ -175,20 +175,20 @@ msgstr "" #: bb350508308a4d99acad49e328495653 e224131ce0fe4fd0a1df5250c0487ca4 #: e5f8f3174dfc4ff997a1743196c9e4d6 msgid "type" -msgstr "" +msgstr "유형" #: ../../linkdest.rst:37 ../../linkdest.rst:43 ../../linkdest.rst:79 #: ../../linkdest.rst:103 581dcd6df6224fbe8745cc8ab2b07a91 #: a81ed9ea22224e639705fc5e3839af2f d3182a558fb849428de433c60a1bdad7 #: f69f354db0e14b7ea4880f6b4e0aa8ff msgid "str" -msgstr "" +msgstr "str" #: ../../linkdest.rst:41 90baaf8b636c4ee591f82da46afacac7 msgid "" "Contains the filename and path this link points to, if " ":attr:`linkDest.kind` is :data:`LINK_GOTOR` or :data:`LINK_LAUNCH`." -msgstr "" +msgstr ":attr:`linkDest.kind` 가 :data:`LINK_GOTOR` 또는 :data:`LINK_LAUNCH` 인 경우 이 링크가 가리키는 파일명과 경로를 포함합니다." #: ../../linkdest.rst:47 ee1974ce6ace4936a3d8b8b75df71cb3 msgid "" @@ -197,58 +197,58 @@ msgid "" " such that e.g. :attr:`linkDest.lt` and :attr:`linkDest.rb` can be " "treated as defining a bounding box. But the flags indicate which of the " "values were actually specified, see :ref:`linkDest Flags`." -msgstr "" +msgstr "대상의 다양한 측면의 유효성과 의미를 설명하는 비트 필드입니다. 가능한 한 링크 대상은 예를 들어 :attr:`linkDest.lt` 와 :attr:`linkDest.rb` 가 경계 상자를 정의하는 것으로 처리될 수 있도록 구성됩니다. 하지만 플래그는 실제로 지정된 값들을 나타냅니다. :ref:`linkDest Flags` 를 참조하세요." #: ../../linkdest.rst:49 ../../linkdest.rst:67 ../../linkdest.rst:91 #: 3b848969f4524896b56f42ff138fb1c9 4f8b0dea71b94d5dbc70216822055473 #: bcc9a9fb3afa46a898733753cf361878 msgid "int" -msgstr "" +msgstr "int" #: ../../linkdest.rst:53 09670cfe131548ddaff754f8d49d8e50 msgid "" "This flag specifies whether to track the mouse position when the URI is " "resolved. Default value: False." -msgstr "" +msgstr "이 플래그는 URI가 해결될 때 마우스 위치를 추적할지 여부를 지정합니다. 기본값: False." #: ../../linkdest.rst:55 ../../linkdest.rst:61 ../../linkdest.rst:85 #: 0f0bd710715f40efbacc9b29ff09ea21 44063c7c188e4ce083c47c800c7fe09f #: 64522ffbee3a4d4a93db40e43a1b4f85 msgid "bool" -msgstr "" +msgstr "bool" #: ../../linkdest.rst:59 fbb535a20f504c3e943e5b5a817ff056 msgid "" "Specifies whether this destination is an internet resource (as opposed to" " e.g. a local file specification in URI format)." -msgstr "" +msgstr "이 대상이 인터넷 리소스인지 여부를 지정합니다(예: URI 형식의 로컬 파일 사양과 대조)." #: ../../linkdest.rst:65 ca4f535dd57b4577b7809ce0b0137464 msgid "" "Indicates the type of this destination, like a place in this document, a " "URI, a file launch, an action or a place in another file. Look at " ":ref:`linkDest Kinds` to see the names and numerical values." -msgstr "" +msgstr "이 문서 내의 위치, URI, 파일 실행, 작업 또는 다른 파일 내의 위치와 같은 이 대상의 유형을 나타냅니다. 이름과 숫자 값을 보려면 :ref:`linkDest Kinds` 를 참조하세요." #: ../../linkdest.rst:71 47371977bcbb41fca7f337d5784b6648 msgid "The top left :ref:`Point` of the destination." -msgstr "" +msgstr "대상의 왼쪽 위 :ref:`Point`." #: ../../linkdest.rst:73 ../../linkdest.rst:97 8e3bc240ba0743959b8cbaa03d0dcff8 #: c1283cb2f6344dc99b2a97cb147bba13 msgid ":ref:`Point`" -msgstr "" +msgstr ":ref:`Point`" #: ../../linkdest.rst:77 c723aab53cf843ebae6f749ce9ff4e59 msgid "" "This destination refers to some named action to perform (e.g. a " "javascript, see :ref:`AdobeManual`). Standard actions provided are " "*NextPage*, *PrevPage*, *FirstPage*, and *LastPage*." -msgstr "" +msgstr "이 대상은 수행할 이름이 지정된 작업(예: javascript, :ref:`AdobeManual` 참조)을 나타냅니다. 제공되는 표준 작업은 *NextPage*, *PrevPage*, *FirstPage*, *LastPage* 입니다." #: ../../linkdest.rst:83 1a909731575743f18e88a17658993f9c msgid "If true, the destination should be launched in a new window." -msgstr "" +msgstr "true이면 대상은 새 창에서 시작되어야 합니다." #: ../../linkdest.rst:89 09037d0a5d7f4c37a6408b92ec712af6 msgid "" @@ -257,17 +257,17 @@ msgid "" ":data:`LINK_GOTO`. May be *-1* if :attr:`linkDest.kind` is " ":data:`LINK_GOTOR`. In this case :attr:`linkDest.dest` contains the " "**name** of a destination in the target document." -msgstr "" +msgstr "이 대상이 가리키는 페이지 번호(이 문서 또는 대상 문서 내). :attr:`linkDest.kind` 가 :data:`LINK_GOTOR` 또는 :data:`LINK_GOTO` 인 경우에만 설정됩니다. :attr:`linkDest.kind` 가 :data:`LINK_GOTOR` 이면 *-1* 일 수 있습니다. 이 경우 :attr:`linkDest.dest` 에는 대상 문서의 대상 **이름** 이 포함됩니다." #: ../../linkdest.rst:95 c34d69f4dd99459b8b7b950ce4b817ef msgid "The bottom right :ref:`Point` of this destination." -msgstr "" +msgstr "이 대상의 오른쪽 아래 :ref:`Point`." #: ../../linkdest.rst:101 ab5be4b38a0d488996cc185c94c3339d msgid "The name of the URI this destination points to." -msgstr "" +msgstr "이 대상이 가리키는 URI의 이름." #: ../../footer.rst:46 fa618bdc623f48169996365910295fee msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/lowlevel.mo b/docs/locales/ko/LC_MESSAGES/lowlevel.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..1ba83c2dfcb52eae38e748bbfd80c7ed9830f04f 100644 GIT binary patch literal 1496 zcmZ`&-ESL35I>*@$uCHVM+EbPK<$~>p`^MrRo%n}OLk)=2NJxk&ujbOa(C?Qg&0-f zHjY%e2~9Hw2WoghIs8Xrdq9D(uhDj{2DXn>cSs0JW3j|Yu(Jy_I z(FJOAFRhfEub@O1sRf09VNS=GN@b=1I$h$BU*e2JMV$lbEH01+{f`&BS)|Ov(&H$d zR4wYo`n+qIoSSwdHm4aSvPZO9PR*=QsmvS9bh%P#m3;|fN?Mv`qp6$2GzU@^Vrlv5D34OoTR$OMhU@$s``xG+$iql>1bIf?r;pPN(5 zv+7I^KAP3a#j~HyUd^XU#N(>Yi0xs=4%49Uaj67XbLBi-%$IY;(&gOD%v^qc{t|}T z4If`rgD;$8L)9r+kRG^LDqXhBw8I*gQWeW*#8M0Rp*#(2H!{7c%p}C>)YxRITrB5L z+RvoNQu3eUms9nYiy$1|>OI%Ok3R`UlQ56+DWBKX3ny{1>^fy?-Zt=i*bNOXR85}x zklK_XH%MGdgDa$pUpJf1Od!PZOdUP>Bi!mi@ZdYqZ-clo5ceL5o%P`Ua}e8|aB~~P z)*$#{0O96CakD4xwjsR!EZFIZ?w$+^Zx8S!+dre=p%(|`*?BK**}KHyG5se4o2|e$9=JLNAx=*YLA}oCX6I=8uXt>#jPUa x!OsJ+vy#xNpgX~mMI6r%1W!6*w{vv3iakeFJboB_zni!v6h2Du)8Xive*hIxRB`|S delta 60 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 diff --git a/docs/locales/ko/LC_MESSAGES/matrix.po b/docs/locales/ko/LC_MESSAGES/matrix.po index 3d0994ef2..187b672f2 100644 --- a/docs/locales/ko/LC_MESSAGES/matrix.po +++ b/docs/locales/ko/LC_MESSAGES/matrix.po @@ -21,23 +21,23 @@ msgstr "" #: ../../header.rst:-1 22b6a2a0571c4176bce077c545c814b3 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 73c9619ac3ee44d084a65d56842dc380 msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 84065a34a4a14808906180f02e2efea2 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../matrix.rst:7 8a040befeffb44ac97583a22b00537bb msgid "Matrix" -msgstr "" +msgstr "Matrix" #: ../../matrix.rst:9 8eb69980d89943bb8e94c77820ab6263 msgid "" @@ -47,7 +47,7 @@ msgid "" "of a page in a variety of ways: (parts of) the page can be rotated, " "zoomed, flipped, sheared and shifted by setting some or all of just six " "float values." -msgstr "" +msgstr "Matrix는 MuPDF의 이미지 변환에 사용되는 행 우선 3x3 행렬입니다(:ref:`AdobeManual` 에 명시된 해당 개념을 준수). 행렬을 사용하면 페이지의 렌더링된 이미지를 다양한 방식으로 조작할 수 있습니다: 단 6개의 float 값 중 일부 또는 전체를 설정하여 페이지(의 일부)를 회전, 확대/축소, 뒤집기, 기울이기 및 이동할 수 있습니다." #: ../../matrix.rst:12 99311bf26c5b4fd5b0df9afed1d8ff5a msgid "" @@ -56,17 +56,17 @@ msgid "" "six elements are used for manipulations. These six elements are usually " "represented by `[a, b, c, d, e, f]`. Here is how they are positioned in " "the matrix:" -msgstr "" +msgstr "모든 점 또는 픽셀이 2차원 공간에 있으므로 해당 행렬의 한 열 벡터는 상수 단위 벡터이며, 나머지 6개 요소만 조작에 사용됩니다. 이 6개 요소는 일반적으로 `[a, b, c, d, e, f]` 로 표시됩니다. 행렬에서의 위치는 다음과 같습니다:" #: ../../matrix.rst:17 981036c6e6c24d00adc24601b311399b msgid "Please note:" -msgstr "" +msgstr "참고:" #: ../../matrix.rst:19 f1ae75aa82ce4a989a3afb538b648bd5 msgid "" "the below methods are just convenience functions -- everything they do, " "can also be achieved by directly manipulating the six numerical values" -msgstr "" +msgstr "아래 메서드는 편의 함수일 뿐입니다 -- 수행하는 모든 작업은 6개의 숫자 값을 직접 조작하여도 달성할 수 있습니다" #: ../../matrix.rst:20 26c41674818040ab9d706c72f62e5b31 msgid "" @@ -74,251 +74,251 @@ msgid "" "rotates **and** shears **and** scales **and** shifts, etc. in one go. If " "you however choose to do this, do have a look at the **remarks** further " "down or at the :ref:`AdobeManual`." -msgstr "" +msgstr "모든 조작을 결합할 수 있습니다 -- 한 번에 회전 **및** 기울이기 **및** 확대/축소 **및** 이동 등을 수행하는 행렬을 구성할 수 있습니다. 하지만 이렇게 하려면 아래의 **참고 사항** 또는 :ref:`AdobeManual` 을 참조하세요." #: ../../matrix.rst:23 afd4ea95b6d34a6e914cc64e20f4259b msgid "**Method / Attribute**" -msgstr "" +msgstr "**메서드 / 속성**" #: ../../matrix.rst:23 c34d2903bcee45ddb3cc5e621baefea0 msgid "**Description**" -msgstr "" +msgstr "**설명**" #: ../../matrix.rst:25 11abdcd6cd234d4fa95850fe12580df9 msgid ":meth:`Matrix.prerotate`" -msgstr "" +msgstr ":meth:`Matrix.prerotate`" #: ../../matrix.rst:25 80427e602a66422cac1da53c44af455f msgid "perform a rotation" -msgstr "" +msgstr "회전 수행" #: ../../matrix.rst:26 cad3e578828b433ba7ba0051be2032bf msgid ":meth:`Matrix.prescale`" -msgstr "" +msgstr ":meth:`Matrix.prescale`" #: ../../matrix.rst:26 a7e0bd6a201641fb912613e9f27fd76f msgid "perform a scaling" -msgstr "" +msgstr "확대/축소 수행" #: ../../matrix.rst:27 50c7f90d06004c62b19c6bff1b5a0ee9 msgid ":meth:`Matrix.preshear`" -msgstr "" +msgstr ":meth:`Matrix.preshear`" #: ../../matrix.rst:27 10745ab48ff842fa86f0dba65a8ac4c9 msgid "perform a shearing (skewing)" -msgstr "" +msgstr "기울이기(왜곡) 수행" #: ../../matrix.rst:28 b4c7cc3f2aff4f929fd556b21396c232 msgid ":meth:`Matrix.pretranslate`" -msgstr "" +msgstr ":meth:`Matrix.pretranslate`" #: ../../matrix.rst:28 cefba85880554c02abc66d69a6a32faf msgid "perform a translation (shifting)" -msgstr "" +msgstr "이동(시프트) 수행" #: ../../matrix.rst:29 b3b9abc777594cf8b33d5290836afe88 msgid ":meth:`Matrix.concat`" -msgstr "" +msgstr ":meth:`Matrix.concat`" #: ../../matrix.rst:29 fe1f3aa66e6042309e54265e9b99b18d msgid "perform a matrix multiplication" -msgstr "" +msgstr "행렬 곱셈 수행" #: ../../matrix.rst:30 fb89b2f56f6247ac8fc9b88f34f7e6c1 msgid ":meth:`Matrix.invert`" -msgstr "" +msgstr ":meth:`Matrix.invert`" #: ../../matrix.rst:30 4dab7517ebb647c78b179fbe83285a9f msgid "calculate the inverted matrix" -msgstr "" +msgstr "역행렬 계산" #: ../../matrix.rst:31 3f0c29fd96594bd7824f5d9ab40c0fd7 msgid ":meth:`Matrix.norm`" -msgstr "" +msgstr ":meth:`Matrix.norm`" #: ../../matrix.rst:31 bee6a79c30594e5a9982c37569a07722 msgid "the Euclidean norm" -msgstr "" +msgstr "유클리드 노름" #: ../../matrix.rst:32 b0e601bc11b94c5b978faf3969d20262 msgid ":attr:`Matrix.a`" -msgstr "" +msgstr ":attr:`Matrix.a`" #: ../../matrix.rst:32 7bd503f42cb2438da182834d71fb2dd4 msgid "zoom factor X direction" -msgstr "" +msgstr "X 방향 확대/축소 계수" #: ../../matrix.rst:33 b20b6e26dcf04b37bf9d3226d6b7720f msgid ":attr:`Matrix.b`" -msgstr "" +msgstr ":attr:`Matrix.b`" #: ../../matrix.rst:33 dc49e0f4424c40eaa3c9b116b0a0d20f msgid "shearing effect Y direction" -msgstr "" +msgstr "Y 방향 기울이기 효과" #: ../../matrix.rst:34 d2e19dfdd9104ec19d44f40c663bcc03 msgid ":attr:`Matrix.c`" -msgstr "" +msgstr ":attr:`Matrix.c`" #: ../../matrix.rst:34 0a2f7dcd0de34db7a4c69a001674c37a msgid "shearing effect X direction" -msgstr "" +msgstr "X 방향 기울이기 효과" #: ../../matrix.rst:35 c72a8985cba049b487c8ffebefcf9d99 msgid ":attr:`Matrix.d`" -msgstr "" +msgstr ":attr:`Matrix.d`" #: ../../matrix.rst:35 c1fe0a57201a4eb6ad2a830ae1b17b15 msgid "zoom factor Y direction" -msgstr "" +msgstr "Y 방향 확대/축소 계수" #: ../../matrix.rst:36 e471bd7cfd92424ab1e5f3e5059d4be9 msgid ":attr:`Matrix.e`" -msgstr "" +msgstr ":attr:`Matrix.e`" #: ../../matrix.rst:36 d19ab3110ade4ac3b17c845a8c80fb37 msgid "horizontal shift" -msgstr "" +msgstr "수평 이동" #: ../../matrix.rst:37 4a6eb68a255c4608873196c13298d411 msgid ":attr:`Matrix.f`" -msgstr "" +msgstr ":attr:`Matrix.f`" #: ../../matrix.rst:37 0f0db520282844e9869b27e82d6fba11 msgid "vertical shift" -msgstr "" +msgstr "수직 이동" #: ../../matrix.rst:38 e75c12f64eee44059ea4b0762741fdb1 msgid ":attr:`Matrix.is_rectilinear`" -msgstr "" +msgstr ":attr:`Matrix.is_rectilinear`" #: ../../matrix.rst:38 bc57693d7a8c445eb2a7717732d081b9 msgid "true if rect corners will remain rect corners" -msgstr "" +msgstr "사각형 모서리가 사각형 모서리로 유지되면 true" #: ../../matrix.rst:41 01aaa6a5cece41dd86f5e6c6f0d08b42 msgid "**Class API**" -msgstr "" +msgstr "**클래스 API**" #: ../../matrix.rst:59 56627216de1442368ffe90a40bd40b5a msgid "Overloaded constructors." -msgstr "" +msgstr "오버로드된 생성자." #: ../../matrix.rst:61 ab9ade436b794d9cb70e8ec07c59573e msgid "" "Without parameters, the zero matrix *Matrix(0.0, 0.0, 0.0, 0.0, 0.0, " "0.0)* will be created." -msgstr "" +msgstr "매개변수 없이 영 행렬 *Matrix(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)* 이 생성됩니다." #: ../../matrix.rst:63 0ff005031e87475e82c82f509a503432 msgid "" "*zoom-** and *shear-** specify zoom or shear values (float) and create a " "zoom or shear matrix, respectively." -msgstr "" +msgstr "*zoom-** 및 *shear-**는 확대/축소 또는 기울이기 값(float)을 지정하고 각각 확대/축소 또는 기울이기 행렬을 생성합니다." #: ../../matrix.rst:65 3772827e3c4e46efaa66e0541654fbde msgid "For \"matrix\" a **new copy** of another matrix will be made." -msgstr "" +msgstr "\"matrix\"의 경우 다른 행렬의 **새 복사본** 이 만들어집니다." #: ../../matrix.rst:67 e0de220e569d4fb192d61776da7cc98d msgid "" "Float value \"degree\" specifies the creation of a rotation matrix which " "rotates anti-clockwise." -msgstr "" +msgstr "Float 값 \"degree\"는 반시계 방향으로 회전하는 회전 행렬의 생성을 지정합니다." #: ../../matrix.rst:69 202fbb08a1534f9b873b978d1ee2f25e msgid "" "A \"sequence\" must be any Python sequence object with exactly 6 float " "entries (see :ref:`SequenceTypes`)." -msgstr "" +msgstr "\"sequence\"는 정확히 6개의 float 항목을 가진 모든 Python 시퀀스 객체여야 합니다(:ref:`SequenceTypes` 참조)." #: ../../matrix.rst:71 3290c36cfd044349b8b73b9a12b39105 msgid "" "*pymupdf.Matrix(1, 1)* and *pymupdf.Matrix(pymupdf.Identity)* create " "modifiable versions of the :ref:`Identity` matrix, which looks like *[1, " "0, 0, 1, 0, 0]*." -msgstr "" +msgstr "*pymupdf.Matrix(1, 1)* 및 *pymupdf.Matrix(pymupdf.Identity)* 는 *[1, 0, 0, 1, 0, 0]* 처럼 보이는 :ref:`Identity` 행렬의 수정 가능한 버전을 생성합니다." #: ../../matrix.rst:75 2d27925e056c4beab39284c17c097dc8 msgid "New in version 1.16.0" -msgstr "" +msgstr "버전 1.16.0에서 새로 추가됨" #: ../../matrix.rst:77 23099b3eeb904d19a2fca93ba4ff4ac2 msgid "Return the Euclidean norm of the matrix as a vector." -msgstr "" +msgstr "행렬의 유클리드 노름을 벡터로 반환합니다." #: ../../matrix.rst:81 cf82a48349524343a3a9fb35951b2482 msgid "" "Modify the matrix to perform a counter-clockwise rotation for positive " "*deg* degrees, else clockwise. The matrix elements of an identity matrix " "will change in the following way:" -msgstr "" +msgstr "행렬을 수정하여 양수 *deg* 도에 대해 반시계 방향 회전을 수행하고, 그렇지 않으면 시계 방향으로 회전합니다. 항등 행렬의 행렬 요소는 다음과 같이 변경됩니다:" #: ../../matrix.rst:83 a024346df65d49e7bcdef1a35d0f0ea9 msgid "*[1, 0, 0, 1, 0, 0] -> [cos(deg), sin(deg), -sin(deg), cos(deg), 0, 0]*." -msgstr "" +msgstr "*[1, 0, 0, 1, 0, 0] -> [cos(deg), sin(deg), -sin(deg), cos(deg), 0, 0]*." #: ../../matrix.rst 0e2caa4b969d4e8c883315663dfbb010 #: 2a76f7fdef494d7cb96fb9bcb0b288a0 44ed05851fab4cd4b3017cd0b82bc4f4 #: 797389fbee9c42f6a11d44d628804863 c8b2675c06ee43c4abcd46c105be0f19 #: e6e50d5d62724013ba993ce51b6e65a8 msgid "Parameters" -msgstr "" +msgstr "매개변수" #: ../../matrix.rst:85 34bf9b5e70b9486285ffd6799c5556ca msgid "" "The rotation angle in degrees (use conventional notation based on Pi = " "180 degrees)." -msgstr "" +msgstr "도 단위의 회전 각도(Pi = 180도를 기준으로 한 일반 표기법 사용)." #: ../../matrix.rst:89 94eb659613c24f939142b8fc6dd19ab4 msgid "" "Modify the matrix to scale by the zoom factors sx and sy. Has effects on " "attributes *a* thru *d* only: *[a, b, c, d, e, f] -> [a*sx, b*sx, c*sy, " "d*sy, e, f]*." -msgstr "" +msgstr "행렬을 수정하여 확대/축소 계수 sx 및 sy로 스케일링합니다. 속성 *a* 부터 *d* 에만 영향을 줍니다: *[a, b, c, d, e, f] -> [a*sx, b*sx, c*sy, d*sy, e, f]*." #: ../../matrix.rst:91 72c725939ccb4e8b90b12926ae88abec msgid "" "Zoom factor in X direction. For the effect see description of attribute " "*a*." -msgstr "" +msgstr "X 방향의 확대/축소 계수. 효과는 속성 *a* 의 설명을 참조하세요." #: ../../matrix.rst:93 2ef911aad48643e18db6f643f2613c9a msgid "" "Zoom factor in Y direction. For the effect see description of attribute " "*d*." -msgstr "" +msgstr "Y 방향의 확대/축소 계수. 효과는 속성 *d* 의 설명을 참조하세요." #: ../../matrix.rst:97 a47d6e8530894f2aac1846c0416c7f14 msgid "" "Modify the matrix to perform a shearing, i.e. transformation of " "rectangles into parallelograms (rhomboids). Has effects on attributes *a*" " thru *d* only: *[a, b, c, d, e, f] -> [c*sy, d*sy, a*sx, b*sx, e, f]*." -msgstr "" +msgstr "행렬을 수정하여 기울이기를 수행합니다. 즉, 사각형을 평행사변형(마름모)으로 변환합니다. 속성 *a* 부터 *d* 에만 영향을 줍니다: *[a, b, c, d, e, f] -> [c*sy, d*sy, a*sx, b*sx, e, f]*." #: ../../matrix.rst:99 7af0396c77db4280bd8b6ef9764cab2d msgid "Shearing effect in X direction. See attribute *c*." -msgstr "" +msgstr "X 방향의 기울이기 효과. 속성 *c* 를 참조하세요." #: ../../matrix.rst:101 5a8d7d2b58c348f0bf481d54d9ff5b01 msgid "Shearing effect in Y direction. See attribute *b*." -msgstr "" +msgstr "Y 방향의 기울이기 효과. 속성 *b* 를 참조하세요." #: ../../matrix.rst:105 152c5f45800e42b6a038fee68ba116d4 msgid "" "Modify the matrix to perform a shifting / translation operation along the" " x and / or y axis. Has effects on attributes *e* and *f* only: *[a, b, " "c, d, e, f] -> [a, b, c, d, tx*a + ty*c, tx*b + ty*d]*." -msgstr "" +msgstr "행렬을 수정하여 x 및/또는 y 축을 따라 이동/변환 작업을 수행합니다. 속성 *e* 및 *f* 에만 영향을 줍니다: *[a, b, c, d, e, f] -> [a, b, c, d, tx*a + ty*c, tx*b + ty*d]*." #: ../../matrix.rst:107 8b15e98fb7734d2fb7d3a90c734616fd msgid "Translation effect in X direction. See attribute *e*." -msgstr "" +msgstr "X 방향의 이동 효과. 속성 *e* 를 참조하세요." #: ../../matrix.rst:109 1ac03cdeaadf47039b40d141265dad51 msgid "Translation effect in Y direction. See attribute *f*." -msgstr "" +msgstr "Y 방향의 이동 효과. 속성 *f* 를 참조하세요." #: ../../matrix.rst:113 a7232949340949e6bee6b5a75b157849 msgid "" @@ -326,15 +326,15 @@ msgid "" "current matrix. Any of *m1* or *m2* may be the current matrix. Be aware " "that matrix multiplication is not commutative. So the sequence of *m1*, " "*m2* is important." -msgstr "" +msgstr "행렬 곱 *m1 * m2* 를 계산하고 결과를 현재 행렬에 저장합니다. *m1* 또는 *m2* 중 하나가 현재 행렬일 수 있습니다. 행렬 곱셈은 가환적이지 않습니다. 따라서 *m1*, *m2* 의 순서가 중요합니다." #: ../../matrix.rst:115 c868c7bce6e24c17aefb279a2b589bad msgid "First (left) matrix." -msgstr "" +msgstr "첫 번째(왼쪽) 행렬." #: ../../matrix.rst:118 6a23a720cc824c018154df578fbe2287 msgid "Second (right) matrix." -msgstr "" +msgstr "두 번째(오른쪽) 행렬." #: ../../matrix.rst:123 c1c62753df994db5a29eaf60b74d5311 msgid "" @@ -342,29 +342,29 @@ msgid "" "matrix. Returns *1* if *m* is not invertible (\"degenerate\"). In this " "case the current matrix **will not change**. Returns *0* if *m* is " "invertible, and the current matrix is replaced with the inverted *m*." -msgstr "" +msgstr "*m* 의 역행렬을 계산하고 결과를 현재 행렬에 저장합니다. *m* 이 역행렬이 없으면(\"degenerate\") *1* 을 반환합니다. 이 경우 현재 행렬은 **변경되지 않습니다**. *m* 이 역행렬이 있으면 *0* 을 반환하고 현재 행렬은 역행렬 *m* 으로 대체됩니다." #: ../../matrix.rst:125 6f3f8c966b71407b9e3b02488f7f4034 msgid "Matrix to be inverted. If not provided, the current matrix will be used." -msgstr "" +msgstr "역행렬을 계산할 행렬. 제공되지 않으면 현재 행렬이 사용됩니다." #: ../../matrix.rst e8077cac107d4551bdd9b1c1d14a4952 msgid "Return type" -msgstr "" +msgstr "반환 유형" #: ../../matrix.rst:132 db229e59a31b455b98ea5ccfa578122a msgid "" "Scaling in X-direction **(width)**. For example, a value of 0.5 performs " "a shrink of the **width** by a factor of 2. If a < 0, a left-right flip " "will (additionally) occur." -msgstr "" +msgstr "X 방향 **(너비)** 스케일링. 예를 들어, 0.5 값은 **너비** 를 2배로 축소합니다. a < 0이면 좌우 뒤집기가 (추가로) 발생합니다." #: ../../matrix.rst 6fcedf91827d4c289e6a645364d76ea6 #: 8654b40d08014804b0c0e8c304580291 96cbe6754a4b4f99bb7e0e80e180c0a6 #: afc20c369a9f4c739bc1f16197754859 c2c0c17a6a334d9daf1a246b0a95ca15 #: fab66c3105f3412b8e17b401ecfe57ab fceb1d67502e44b49baa260b088dd68f msgid "type" -msgstr "" +msgstr "유형" #: ../../matrix.rst:134 ../../matrix.rst:140 ../../matrix.rst:146 #: ../../matrix.rst:152 ../../matrix.rst:158 ../../matrix.rst:164 @@ -372,38 +372,38 @@ msgstr "" #: 5804209069a04b28ae858ceb0466f4d1 5b5b333b8cb346858ac4e11335709c2a #: 789de033d5c0443997dabc1c08157dbc 867fd680a9e9402583480286d03e27ca msgid "float" -msgstr "" +msgstr "float" #: ../../matrix.rst:138 c229f8ba4d804490b761e624fe313b6d msgid "" "Causes a shearing effect: each `Point(x, y)` will become `Point(x, y - " "b*x)`. Therefore, horizontal lines will be \"tilt\"." -msgstr "" +msgstr "기울이기 효과를 발생시킵니다: 각 `Point(x, y)` 는 `Point(x, y - b*x)` 가 됩니다. 따라서 수평선이 \"기울어집니다\"." #: ../../matrix.rst:144 7b98255d69974126bcf901feb1b268f6 msgid "" "Causes a shearing effect: each `Point(x, y)` will become `Point(x - c*y, " "y)`. Therefore, vertical lines will be \"tilt\"." -msgstr "" +msgstr "기울이기 효과를 발생시킵니다: 각 `Point(x, y)` 는 `Point(x - c*y, y)` 가 됩니다. 따라서 수직선이 \"기울어집니다\"." #: ../../matrix.rst:150 ac4f38489ad847b7827dcac0e26521a5 msgid "" "Scaling in Y-direction **(height)**. For example, a value of 1.5 performs" " a stretch of the **height** by 50%. If d < 0, an up-down flip will " "(additionally) occur." -msgstr "" +msgstr "Y 방향 **(높이)** 스케일링. 예를 들어, 1.5 값은 **높이** 를 50% 늘립니다. d < 0이면 상하 뒤집기가 (추가로) 발생합니다." #: ../../matrix.rst:156 9660c53c0df84ae99b72badb3989dddf msgid "" "Causes a horizontal shift effect: Each *Point(x, y)* will become *Point(x" " + e, y)*. Positive (negative) values of *e* will shift right (left)." -msgstr "" +msgstr "수평 이동 효과를 발생시킵니다: 각 *Point(x, y)* 는 *Point(x + e, y)* 가 됩니다. *e* 의 양수(음수) 값은 오른쪽(왼쪽)으로 이동합니다." #: ../../matrix.rst:162 96c71528239744f1b8cd967c2e46cb62 msgid "" "Causes a vertical shift effect: Each *Point(x, y)* will become *Point(x, " "y - f)*. Positive (negative) values of *f* will shift down (up)." -msgstr "" +msgstr "수직 이동 효과를 발생시킵니다: 각 *Point(x, y)* 는 *Point(x, y - f)* 가 됩니다. *f* 의 양수(음수) 값은 아래(위)로 이동합니다." #: ../../matrix.rst:168 fbbefd1680244e43b84002ed9a436dec msgid "" @@ -411,86 +411,86 @@ msgid "" "integer multiples of 90 degrees. Usually this is used to confirm that " "(axis-aligned) rectangles before the transformation are still axis-" "aligned rectangles afterwards." -msgstr "" +msgstr "직선형은 기울이기가 없고 모든 회전이 90도의 정수 배수임을 의미합니다. 일반적으로 이것은 변환 전의 (축 정렬) 사각형이 변환 후에도 여전히 축 정렬 사각형임을 확인하는 데 사용됩니다." #: ../../matrix.rst:170 36d4d94103214600af41eafe39212e90 msgid "bool" -msgstr "" +msgstr "bool" #: ../../matrix.rst:174 90ffe958045f48d090dba5ba44f73165 msgid "" "This class adheres to the Python sequence protocol, so components can be " "accessed via their index, too. Also refer to :ref:`SequenceTypes`." -msgstr "" +msgstr "이 클래스는 Python 시퀀스 프로토콜을 따르므로 구성 요소는 인덱스를 통해 액세스할 수도 있습니다. :ref:`SequenceTypes` 도 참조하세요." #: ../../matrix.rst:175 ae28f509b9434158ad3509b43fcadd26 msgid "" "Matrices can be used with arithmetic operators almost like ordinary " "numbers: they can be added, subtracted, multiplied or divided -- see " "chapter :ref:`Algebra`." -msgstr "" +msgstr "행렬은 일반 숫자처럼 산술 연산자와 함께 사용할 수 있습니다: 더하기, 빼기, 곱하기 또는 나누기를 할 수 있습니다 -- :ref:`Algebra` 장을 참조하세요." #: ../../matrix.rst:176 8bec4a086d304bbb9bfd022e4556dd29 msgid "" "Matrix multiplication is **not commutative** -- changing the sequence of " "the multiplicands will change the result in general. So it can quickly " "become unclear which result a transformation will yield." -msgstr "" +msgstr "행렬 곱셈은 **가환적이지 않습니다** -- 곱하는 순서를 변경하면 일반적으로 결과가 변경됩니다. 따라서 변환이 어떤 결과를 산출할지 빠르게 불명확해질 수 있습니다." #: ../../matrix.rst:180 281fd31e543c4617a40894e7ac37597e msgid "Examples" -msgstr "" +msgstr "예제" #: ../../matrix.rst:181 401084daabc9429b9009d38c9e0f2aec msgid "" "Here are examples that illustrate some of the achievable effects. All " "pictures show some text, inserted under control of some matrix and " "relative to a fixed reference point (the red dot)." -msgstr "" +msgstr "달성 가능한 효과 중 일부를 보여주는 예제입니다. 모든 그림은 일부 행렬의 제어 하에 삽입되고 고정된 참조점(빨간 점)을 기준으로 하는 일부 텍스트를 보여줍니다." #: ../../matrix.rst:183 ef95f7140bc84ceb80f3fe9cc5ffe0d2 msgid "The :ref:`Identity` matrix performs no operation." -msgstr "" +msgstr ":ref:`Identity` 행렬은 작업을 수행하지 않습니다." #: ../../matrix.rst:188 a80fc2a091374e8cb6815dfe8672bddd msgid "" "The scaling matrix `Matrix(2, 0.5)` stretches by a factor of 2 in " "horizontal, and shrinks by factor 0.5 in vertical direction." -msgstr "" +msgstr "스케일링 행렬 `Matrix(2, 0.5)` 는 수평으로 2배 늘리고 수직으로 0.5배 축소합니다." #: ../../matrix.rst:193 9699134c66a146af9068adb90948b8f2 msgid "" "Attributes :attr:`Matrix.e` and :attr:`Matrix.f` shift horizontally and, " "respectively vertically. In the following 10 to the right and 20 down." -msgstr "" +msgstr "속성 :attr:`Matrix.e` 및 :attr:`Matrix.f` 는 각각 수평 및 수직으로 이동합니다. 다음에서는 오른쪽으로 10, 아래로 20 이동합니다." #: ../../matrix.rst:198 168fe9a931a94651ac55f633dffbe987 msgid "A negative :attr:`Matrix.a` causes a left-right flip." -msgstr "" +msgstr "음수 :attr:`Matrix.a` 는 좌우 뒤집기를 발생시킵니다." #: ../../matrix.rst:203 f2cb4722af2e45f6ac67fda814935ea4 msgid "A negative :attr:`Matrix.d` causes an up-down flip." -msgstr "" +msgstr "음수 :attr:`Matrix.d` 는 상하 뒤집기를 발생시킵니다." #: ../../matrix.rst:208 28cc582a5ec24205816af0c892b692d1 msgid "Attribute :attr:`Matrix.b` tilts upwards / downwards along the x-axis." -msgstr "" +msgstr "속성 :attr:`Matrix.b` 는 x축을 따라 위/아래로 기울어집니다." #: ../../matrix.rst:213 a2b77644fc61456690d3603561dae948 msgid "Attribute :attr:`Matrix.c` tilts left / right along the y-axis." -msgstr "" +msgstr "속성 :attr:`Matrix.c` 는 y축을 따라 왼쪽/오른쪽으로 기울어집니다." #: ../../matrix.rst:218 bd842bfbd48b44509584185764d44373 msgid "" "Matrix `Matrix(beta)` performs counterclockwise rotations for positive " "angles `beta`." -msgstr "" +msgstr "행렬 `Matrix(beta)` 는 양수 각도 `beta` 에 대해 반시계 방향 회전을 수행합니다." #: ../../matrix.rst:223 ac0b2cc97b1347ab9f63fa8f97f50072 msgid "Show some effects on a rectangle::" -msgstr "" +msgstr "사각형에 대한 일부 효과 표시::" #: ../../footer.rst:46 2a49496b580540908297c502618954b2 msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/module.mo b/docs/locales/ko/LC_MESSAGES/module.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..68c698c4e32d99e2c9fae70c1b99811d45e6c150 100644 GIT binary patch literal 20523 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 로 standalone 모드에서 컴파일합니다. 이것은 모듈의 모든 기능을 가진 CLI 실행 파일을 제공하며, Python, |PyMuPDF| 또는 |MuPDF| 가 설치되지 않은 모든 호환 플랫폼에서 사용할 수 있습니다." #: ../../module.rst:59 621c5379e7d44e29a5ae735c58352834 msgid "Cleaning and Copying" -msgstr "" +msgstr "정리 및 복사" #: ../../module.rst:63 a41c329fb87940c482d0805086ecc3cf msgid "" @@ -135,42 +135,42 @@ msgid "" "You can use it also for encryption, decryption and creating sub " "documents. It is mostly similar to the MuPDF command line utility " "*\"mutool clean\"*::" -msgstr "" +msgstr "이 명령은 PDF를 최적화하고 결과를 새 파일에 저장합니다. 암호화, 복호화 및 하위 문서 생성에도 사용할 수 있습니다. 이것은 |MuPDF| 명령줄 유틸리티 *\"mutool clean\"* 과 대부분 유사합니다::" #: ../../module.rst:96 95c61ecff9474da7a32002be18ff00b3 msgid "" "If you specify \"-pages\", be aware that only page-related objects are " "copied, **no document-level items** like e.g. embedded files." -msgstr "" +msgstr "\"-pages\" 를 지정하면 페이지 관련 객체만 복사되며, 예를 들어 임베디드 파일과 같은 **문서 레벨 항목은 복사되지 않습니다**." #: ../../module.rst:98 958ae9bd4e2244ae9cbb5d24a62a8c94 msgid "Please consult :meth:`Document.save` for the parameter meanings." -msgstr "" +msgstr "매개변수 의미는 :meth:`Document.save` 를 참조하세요." #: ../../module.rst:102 5b59f04532e94259bf5b3ecd530ca408 msgid "Extracting Fonts and Images" -msgstr "" +msgstr "글꼴 및 이미지 추출" #: ../../module.rst:103 170896a4fb624362bfbd8172cf909da4 msgid "Extract fonts or images from selected PDF pages to a desired directory::" -msgstr "" +msgstr "선택한 PDF 페이지에서 글꼴 또는 이미지를 원하는 디렉토리로 추출합니다::" #: ../../module.rst:123 220fe33385e844f3928ec0625f051414 msgid "" "**Image filenames** are built according to the naming scheme: **\"img-" "xref.ext\"**, where \"ext\" is the extension associated with the image " "and \"xref\" the :data:`xref` of the image PDF object." -msgstr "" +msgstr "**이미지 파일명** 은 명명 체계에 따라 생성됩니다: **\"img-xref.ext\"**, 여기서 \"ext\" 는 이미지와 연결된 확장자이고 \"xref\" 는 이미지 PDF 객체의 :data:`xref` 입니다." #: ../../module.rst:125 d56994d8f2a8433280e4ef35819f2e7a msgid "" "**Font filenames** consist of the fontname and the associated extension. " "Any spaces in the fontname are replaced with hyphens \"-\"." -msgstr "" +msgstr "**글꼴 파일명** 은 글꼴 이름과 연결된 확장자로 구성됩니다. 글꼴 이름의 공백은 하이픈 \"-\" 로 대체됩니다." #: ../../module.rst:127 a8e1a30f5fde401d810825a6e3b01a09 msgid "The output directory must already exist." -msgstr "" +msgstr "출력 디렉토리는 이미 존재해야 합니다." #: ../../module.rst:129 f2bc1eaf74014a2c9c0473449a9e7b11 msgid "" @@ -178,176 +178,176 @@ msgid "" "equivalent** to and obsoletes `this script `_." -msgstr "" +msgstr "출력 디렉토리 생성 제외, 이 기능은 `이 스크립트 `_ 와 **기능적으로 동일** 하며 이를 대체합니다." #: ../../module.rst:133 b52a0c02382d4e9abbd491e7b26f50d8 msgid "Joining PDF Documents" -msgstr "" +msgstr "PDF 문서 결합" #: ../../module.rst:134 b52dba2292bb478f86d8bd2a68e72d49 msgid "To join several PDF files specify::" -msgstr "" +msgstr "여러 PDF 파일을 결합하려면 다음을 지정합니다::" #: ../../module.rst:153 e75a700cceee42eda662850bcb411254 msgid "" "Each input must be entered as **\"filename,password,pages\"**. Password " "and pages are optional." -msgstr "" +msgstr "각 입력은 **\"filename,password,pages\"** 형식으로 입력해야 합니다. 비밀번호와 페이지는 선택 사항입니다." #: ../../module.rst:154 5bbc4bbfbbe44ea29ce63dc28468ecde msgid "" "The password entry **is required** if the \"pages\" entry is used. If the" " PDF needs no password, specify two commas." -msgstr "" +msgstr "\"pages\" 항목을 사용하는 경우 비밀번호 항목이 **필수** 입니다. PDF에 비밀번호가 필요하지 않으면 두 개의 쉼표를 지정합니다." #: ../../module.rst:155 24124b66f3f9496c9cba03a6c3987619 msgid "" "The **\"pages\"** format is the same as explained at the top of this " "section." -msgstr "" +msgstr "**\"pages\"** 형식은 이 섹션 상단에서 설명한 것과 동일합니다." #: ../../module.rst:156 6c8cd3be3fd844a18d6859e34270344c msgid "" "Each input file is immediately closed after use. Therefore you can use " "one of them as output filename, and thus overwrite it." -msgstr "" +msgstr "각 입력 파일은 사용 후 즉시 닫힙니다. 따라서 그 중 하나를 출력 파일명으로 사용하여 덮어쓸 수 있습니다." #: ../../module.rst:159 62faf24e6a7143aca5c2f6d4d0a3bd13 msgid "Example: To join the following files" -msgstr "" +msgstr "예제: 다음 파일을 결합하려면" #: ../../module.rst:161 088838df3b2545f8801c172c3bc996f0 msgid "**file1.pdf:** all pages, back to front, no password" -msgstr "" +msgstr "**file1.pdf:** 모든 페이지, 뒤에서 앞으로, 비밀번호 없음" #: ../../module.rst:162 72f4cc0b55a64f16a43ce016fb9d46a0 msgid "**file2.pdf:** last page, first page, password: \"secret\"" -msgstr "" +msgstr "**file2.pdf:** 마지막 페이지, 첫 페이지, 비밀번호: \"secret\"" #: ../../module.rst:163 518dcf41451c4ab098ae80c98c705da7 msgid "**file3.pdf:** pages 5 to last, no password" -msgstr "" +msgstr "**file3.pdf:** 페이지 5부터 마지막까지, 비밀번호 없음" #: ../../module.rst:165 579e18430ffe47deaf32eb9b5bb856c7 msgid "and store the result as **output.pdf** enter this command:" -msgstr "" +msgstr "결과를 **output.pdf** 로 저장하려면 다음 명령을 입력합니다:" #: ../../module.rst:167 945d0c96b4b34fc782a86ae2fcf40aa5 msgid "" "``pymupdf join -o output.pdf file1.pdf,,N-1 file2.pdf,secret,N,1 " "file3.pdf,,5-N``" -msgstr "" +msgstr "``pymupdf join -o output.pdf file1.pdf,,N-1 file2.pdf,secret,N,1 file3.pdf,,5-N``" #: ../../module.rst:171 45664921245f42c09b294edb251048f5 msgid "Low Level Information" -msgstr "" +msgstr "저수준 정보" #: ../../module.rst:173 fdf3d7f12d914afe950de66d094693fa msgid "" "Display PDF internal information. Again, there are similarities to " "*\"mutool show\"*::" -msgstr "" +msgstr "PDF 내부 정보를 표시합니다. 다시 말하지만, *\"mutool show\"* 와 유사점이 있습니다::" #: ../../module.rst:194 ad5c07b578e24a87b4bdfa72f035288d msgid "Examples::" -msgstr "" +msgstr "예제::" #: ../../module.rst:243 a932285ed88f489cb35fb9fd00084410 msgid "Embedded Files Commands" -msgstr "" +msgstr "임베디드 파일 명령" #: ../../module.rst:245 22fe7451356d4b07a68f7b814a48f7db msgid "" "The following commands deal with embedded files -- which is a feature " "completely removed from MuPDF after v1.14, and hence from all its command" " line tools." -msgstr "" +msgstr "다음 명령은 임베디드 파일을 다룹니다 -- 이것은 v1.14 이후 |MuPDF| 에서 완전히 제거된 기능이며, 따라서 모든 명령줄 도구에서도 제거되었습니다." #: ../../module.rst:248 031889fce5ba40c8aa00dca7f543935f msgid "Information" -msgstr "" +msgstr "정보" #: ../../module.rst:250 923441e6e99c4679913ea9650bd321f3 msgid "Show the embedded file names (long or short format)::" -msgstr "" +msgstr "임베디드 파일 이름을 표시합니다(긴 형식 또는 짧은 형식)::" #: ../../module.rst:266 2938ace8fd974862bd2b852f6d01c1b5 msgid "Example::" -msgstr "" +msgstr "예제::" #: ../../module.rst:287 4b906057dfa84c65ba2f7b3875e76f45 msgid "Detailed output would look like this per entry::" -msgstr "" +msgstr "각 항목에 대한 상세 출력은 다음과 같습니다::" #: ../../module.rst:297 fa6b969dc09f4e7aa8ddad1a74b85f27 msgid "Extraction" -msgstr "" +msgstr "추출" #: ../../module.rst:299 b95b620ad9f548139f65380c81a609eb msgid "Extract an embedded file like this::" -msgstr "" +msgstr "다음과 같이 임베디드 파일을 추출합니다::" #: ../../module.rst:317 b425246653d244139ee6064fef0cce03 msgid "" "For details consult :meth:`Document.embfile_get`. Example (refer to " "previous section)::" -msgstr "" +msgstr "자세한 내용은 :meth:`Document.embfile_get` 을 참조하세요. 예제(이전 섹션 참조)::" #: ../../module.rst:323 beb7e7b57a2d40d7b80215a90a015016 msgid "Deletion" -msgstr "" +msgstr "삭제" #: ../../module.rst:324 a66d4e86731745edabc9c4f4e5e0bb9f msgid "Delete an embedded file like this::" -msgstr "" +msgstr "다음과 같이 임베디드 파일을 삭제합니다::" #: ../../module.rst:340 c7c9134eddaa4ad2b9672122f1aa8fe9 msgid "For details consult :meth:`Document.embfile_del`." -msgstr "" +msgstr "자세한 내용은 :meth:`Document.embfile_del` 을 참조하세요." #: ../../module.rst:343 8027d6ea455e4050ace1ead2c3a951fb msgid "Insertion" -msgstr "" +msgstr "삽입" #: ../../module.rst:344 05c0ffa1d1fd4495a04887a13fa6a0ff msgid "Add a new embedded file using this command::" -msgstr "" +msgstr "다음 명령을 사용하여 새 임베디드 파일을 추가합니다::" #: ../../module.rst:364 a3ce7e14c5a6493190e34f36253a7b11 msgid "" "*\"NAME\"* **must not** already exist in the PDF. For details consult " ":meth:`Document.embfile_add`." -msgstr "" +msgstr "*\"NAME\"* 은 PDF에 이미 존재해서는 **안 됩니다**. 자세한 내용은 :meth:`Document.embfile_add` 를 참조하세요." #: ../../module.rst:367 8b7188f7140248f2ace12ff2559a5810 msgid "Updates" -msgstr "" +msgstr "업데이트" #: ../../module.rst:368 bf7de82ffcc6488492d7f1ed813a78d7 msgid "Update an existing embedded file using this command::" -msgstr "" +msgstr "다음 명령을 사용하여 기존 임베디드 파일을 업데이트합니다::" #: ../../module.rst:393 dfb87b27e010457ea91a44ac1607508d msgid "" "Use this method to change meta-information of the file -- just omit the " "*\"PATH\"*. For details consult :meth:`Document.embfile_upd`." -msgstr "" +msgstr "이 메서드를 사용하여 파일의 메타 정보를 변경합니다 -- *\"PATH\"* 만 생략하면 됩니다. 자세한 내용은 :meth:`Document.embfile_upd` 를 참조하세요." #: ../../module.rst:397 9724107b71a3473586bf932f86556d37 msgid "Copying" -msgstr "" +msgstr "복사" #: ../../module.rst:398 320c9dfca9614ce1aad38deec15e2f14 msgid "Copy embedded files between PDFs::" -msgstr "" +msgstr "PDF 간에 임베디드 파일을 복사합니다::" #: ../../module.rst:422 4f474c3c92134dbf92a95d04287f6b7c msgid "Text Extraction" -msgstr "" +msgstr "텍스트 추출" #: ../../module.rst:423 10013955206643cdabf54b9427cf9162 msgid "New in v1.18.16" -msgstr "" +msgstr "v1.18.16의 새로운 기능" #: ../../module.rst:425 6175e1799fe14be7857049aacbf4f76e msgid "" @@ -355,28 +355,28 @@ msgid "" "documents` to a textfile. Currently, there are " "three output formatting modes available: simple, block sorting and " "reproduction of physical layout." -msgstr "" +msgstr "임의의 :ref:`지원 문서` 에서 텍스트 파일로 텍스트를 추출합니다. 현재 세 가지 출력 형식 모드가 사용 가능합니다: simple, block sorting 및 물리적 레이아웃 재현." #: ../../module.rst:427 104746a6d24348c085e4d1f05530f3c4 msgid "" "**Simple** text extraction reproduces all text as it appears in the " "document pages -- no effort is made to rearrange in any particular " "reading order." -msgstr "" +msgstr "**Simple** 텍스트 추출은 문서 페이지에 나타나는 대로 모든 텍스트를 재현합니다 -- 특정 읽기 순서로 재배열하려는 시도는 없습니다." #: ../../module.rst:428 46976f7ba91e4ed195d1d2970b450ce8 msgid "" "**Block sorting** sorts text blocks (as identified by MuPDF) by ascending" " vertical, then horizontal coordinates. This should be sufficient to " "establish a \"natural\" reading order for basic pages of text." -msgstr "" +msgstr "**Block sorting** 은 텍스트 블록(|MuPDF| 에 의해 식별됨)을 수직 좌표, 그 다음 수평 좌표의 오름차순으로 정렬합니다. 이것은 기본 텍스트 페이지에 대한 \"자연스러운\" 읽기 순서를 설정하는 데 충분해야 합니다." #: ../../module.rst:429 736d584551084ce0ae8db3ab132de413 msgid "" "**Layout** strives to reproduce the original appearance of the input " "pages. You can expect results like this (produced by the command `pymupdf" " gettext -pages 1 demo1.pdf`):" -msgstr "" +msgstr "**Layout** 은 입력 페이지의 원래 모양을 재현하려고 합니다. 다음과 같은 결과를 기대할 수 있습니다(`pymupdf gettext -pages 1 demo1.pdf` 명령으로 생성됨):" #: ../../module.rst:434 50eb59c01b5243e4a1beb240596e9fcf msgid "" @@ -384,58 +384,58 @@ msgid "" "`pdftotext` by XPDF software, http://www.foolabs.com/xpdf/ -- this is " "especially true for \"layout\" mode, which combines that tool's `-layout`" " and `-table` options." -msgstr "" +msgstr "\"gettext\" 명령은 XPDF 소프트웨어의 CLI 도구 `pdftotext` (http://www.foolabs.com/xpdf/)와 유사한 기능을 제공합니다 -- 이것은 특히 해당 도구의 `-layout` 및 `-table` 옵션을 결합하는 \"layout\" 모드에 해당합니다." #: ../../module.rst:438 49563f540be445d984dba68ffffbfe02 msgid "" "After each page of the output file, a formfeed character, `hex(12)` is " "written -- even if the input page has no text at all. This behavior can " "be controlled via options." -msgstr "" +msgstr "출력 파일의 각 페이지 후에 폼피드 문자 `hex(12)` 가 기록됩니다 -- 입력 페이지에 텍스트가 전혀 없는 경우에도 마찬가지입니다. 이 동작은 옵션을 통해 제어할 수 있습니다." #: ../../module.rst:440 647dbf1080904cb5b86c438feafcb584 msgid "" "For \"layout\" mode, **only horizontal, left-to-right, top-to bottom** " "text is supported, other text is ignored. In this mode, text is also " "ignored, if its :data:`fontsize` is too small." -msgstr "" +msgstr "\"layout\" 모드의 경우, **수평, 왼쪽에서 오른쪽으로, 위에서 아래로** 텍스트만 지원되며 다른 텍스트는 무시됩니다. 이 모드에서 텍스트의 :data:`fontsize` 가 너무 작으면 텍스트도 무시됩니다." #: ../../module.rst:442 baeab1e7bac9497995324b659ebebf03 msgid "" "\"Simple\" and \"blocks\" mode in contrast output **all text** for any " "text size or orientation." -msgstr "" +msgstr "대조적으로 \"Simple\" 및 \"blocks\" 모드는 모든 텍스트 크기나 방향에 대해 **모든 텍스트** 를 출력합니다." #: ../../module.rst:444 8617ac5a55024a57b4b1d70bdb264ced msgid "Command::" -msgstr "" +msgstr "명령::" #: ../../module.rst:472 f1019c52949f4174acd4b9381a394601 msgid "" "Command options may be abbreviated as long as no ambiguities are " "introduced. So the following do the same:" -msgstr "" +msgstr "명령 옵션은 모호함을 유발하지 않는 한 축약할 수 있습니다. 따라서 다음은 동일합니다:" #: ../../module.rst:474 d70e9f44b99141809981474f2ff8b052 msgid "" "`... -output text.txt -noligatures -noformfeed -convert-white -grid 3 " "-extra-spaces ...`" -msgstr "" +msgstr "`... -output text.txt -noligatures -noformfeed -convert-white -grid 3 -extra-spaces ...`" #: ../../module.rst:475 07cb51f3b38747abbb4010f810490249 msgid "`... -o text.txt -nol -nof -c -g 3 -e ...`" -msgstr "" +msgstr "`... -o text.txt -nol -nof -c -g 3 -e ...`" #: ../../module.rst:477 f16b9ac2c6c14bd5bb7fcea64f1fcd80 msgid "" "The output filename defaults to the input with its extension replaced by " "`.txt`. As with other commands, you can select page ranges **(caution: " "1-based!)** in `mutool` format, as indicated above." -msgstr "" +msgstr "출력 파일명은 기본적으로 입력 파일의 확장자가 `.txt` 로 대체된 것입니다. 다른 명령과 마찬가지로 위에서 표시한 대로 `mutool` 형식으로 페이지 범위를 선택할 수 있습니다 **(주의: 1부터 시작!)**." #: ../../module.rst:479 f23822348e0f44868acd1a434c638317 msgid "**mode:** (str) select a formatting mode -- default is \"layout\"." -msgstr "" +msgstr "**mode:** (str) 형식 모드를 선택합니다 -- 기본값은 \"layout\" 입니다." #: ../../module.rst:480 34f6f03b6b7c4d14b5b53d480ad19652 msgid "" @@ -444,7 +444,7 @@ msgid "" "advanced fonts: glyphs combining multiple characters like \"fi\") are " "split up into their components (i.e. \"f\", \"i\"). Default is passing " "them through." -msgstr "" +msgstr "**noligatures:** (bool) :data:`TEXT_PRESERVE_LIGATURES` 를 **사용하지 않는** 것에 해당합니다. 지정하면 합자(고급 글꼴에 있음: \"fi\" 와 같은 여러 문자를 결합하는 글리프)가 구성 요소(즉, \"f\", \"i\")로 분할됩니다. 기본값은 통과시킵니다." #: ../../module.rst:481 7ad52df691114a03bf07a72f2434d4a9 msgid "" @@ -452,24 +452,24 @@ msgid "" ":data:`TEXT_PRESERVE_WHITESPACE`. If specified, all white space " "characters (like tabs) are replaced with one or more spaces. Default is " "passing them through." -msgstr "" +msgstr "**convert-white:** :data:`TEXT_PRESERVE_WHITESPACE` 를 **사용하지 않는** 것에 해당합니다. 지정하면 모든 공백 문자(탭 등)가 하나 이상의 공백으로 대체됩니다. 기본값은 통과시킵니다." #: ../../module.rst:482 b925a23489d24b3396cf53888050c32d msgid "" "**extra-spaces:** (bool) corresponds to **not** " ":data:`TEXT_INHIBIT_SPACES`. If specified, large gaps between adjacent " "characters will be filled with one or more spaces. Default is off." -msgstr "" +msgstr "**extra-spaces:** (bool) :data:`TEXT_INHIBIT_SPACES` 를 **사용하지 않는** 것에 해당합니다. 지정하면 인접 문자 사이의 큰 간격이 하나 이상의 공백으로 채워집니다. 기본값은 꺼짐입니다." #: ../../module.rst:483 9d95e72389b3445ba510fb682107c642 msgid "" "**noformfeed:** (bool) instead of `hex(12)` (formfeed), write linebreaks" " ``\\n`` at end of output pages." -msgstr "" +msgstr "**noformfeed:** (bool) `hex(12)` (폼피드) 대신 출력 페이지 끝에 줄바꿈 ``\\n`` 을 씁니다." #: ../../module.rst:484 703f5774d5234679a03f67da753bc40a msgid "**skip-empty:** (bool) skip pages with no text." -msgstr "" +msgstr "**skip-empty:** (bool) 텍스트가 없는 페이지를 건너뜁니다." #: ../../module.rst:485 8f19a7610cc64fc88819c1b7fc295330 msgid "" @@ -482,15 +482,15 @@ msgid "" "output lines may be generated for some spans in the input line, just " "because they are coded in a different font with slightly deviating " "properties." -msgstr "" +msgstr "**grid:** 이 값(포인트 단위) 이하의 수직 좌표 차이를 가진 줄이 동일한 출력 줄로 병합됩니다. \"layout\" 모드에만 관련됩니다. **주의해서 사용하세요:** 대부분의 경우 3 또는 기본값 2가 적절합니다. **너무 크면**, 원본에서 *의도적으로* 다른 줄이 병합되어 왜곡되거나 불완전한 출력이 발생할 수 있습니다. **너무 낮으면**, 약간 다른 속성을 가진 다른 글꼴로 코딩되어 있기 때문에 입력 줄의 일부 범위에 대해 인공적인 별도 출력 줄이 생성될 수 있습니다." #: ../../module.rst:486 eac14db14ad14562a3b3b10a76827016 msgid "" "**fontsize:** include text with :data:`fontsize` larger than this value " "only (default 3). Only relevant for \"layout\" option." -msgstr "" +msgstr "**fontsize:** 이 값보다 큰 :data:`fontsize` 를 가진 텍스트만 포함합니다(기본값 3). \"layout\" 옵션에만 관련됩니다." #: ../../footer.rst:46 bf24bcacdf454aba8a6c79d83a00209b msgid "This documentation covers all versions up to |version|." -msgstr "" +msgstr "이 문서는 |version| 버전까지의 모든 버전을 다룹니다." diff --git a/docs/locales/ko/LC_MESSAGES/outline.mo b/docs/locales/ko/LC_MESSAGES/outline.mo index 17804c43c61fdbaf897cd8c6d9175d53032ed0c7..e0998da53c6ad03a567fc6c83079bf5080f03103 100644 GIT binary patch literal 6593 zcmds4TTmO<89r^3Hl_FUKE2GToM{C?vLTbYRW1!NIAsck8j_}+=~#<&1RKPzW_N{6 zng_7ulmM>D1jTYHh%&(j5;9S2?BIsHwGW-9Pi-GEnd$VQPuf)<`qroR`_I{32{7$@ z8Q{}do%5gn^8J_n>)m%08Gi1?-`DZye27+!pZ7k@*r%}kBk)VW4}f0;{uB5G;9Vb4 z_zmFKuY|AnjWOMuAH}vj1HmRAYYulDrRq zZNR?)pT<3(fKxw*^|NpS`LzTj`EUC8TOZ#Cl3)J;B)Khc7VV4pcoazb^Z`lF5g@j* zNg#gNdHfp&7J<{i8j$=t{#nM}0op)XABHkH;8EZVa2@z(=-GBRY{&ZF5Pk^Qj?140 z4g#M9{sH&{;5|^{I4}()zrGG!!TB4&0pKu{CqJxyMfqz3NcOw|{3h^sKo0ynko_YEGR}wbU_xjH?URylNzQ^FEN6<_V`e^^<|BfONiCb#9FgX_!BeL3RNhEYEcj{N z8EYI!Hv2chx-3V}h%>C$Nb4!hF)fmKy4gC-z%BWa80?}*+Ray<$!SI!H#Xa9kuoVW zo7Hl*`s%orwaE`;3Ut?vjA>11Qa8Couyd9m%}1vAVE1uu2`vr3+GfT%tyv<@d=@eK zau~7ZJ!c$CljgO{6TK4%_P(dbOk+}5Hk_b#4QnG=VXMzWxvcIuFjOs%;ZD*Bt0^;$ z_|bDpw%1bV(E*0#xIuBe+b3X>M{OavpQ^#rxG$ap)|=sm>F{LoglQmz?Ob<2S*U1B zLy4;y-LjofCEXDd0pA0CA;t+QtAjxxsFSx0o)#H0gQTR!H1d|PblcHW$RbJ^Vh711 zmw-bi&zU;%$1#6Xx^h>0EE!}Y-1v;*5UiYOw3KJFG!+jLJ(rAh)-M!xrbnbg|b2Mtcjuta==^^ zU1&}0pfnDYL&{5^`*m8N7Q;jcZaZY)r;QZURqYkvK!-A&N59p|n|;zIH@A}>8aEKq zbko(taK9?4d{VP0!Kety+7Rl&ov9p^KKe$S(I#>rawHxx(#ZUH1{xn4eC$-` zslF3GI@J-8JDXML&8%%;GIW0?~iqK#5(Wio%bc~yYJp3 z_`$~5NinHYi}&~aw5RK2tbZWZ-Nk=6km&Ed_h$nqdRqEW(PG1vX4vSqrj_8wAMfkq zC%XE3_=7$DUA=vebai*1>=_z*7+a0eJjzjmkDK8lHY~IWdcq&<>w6@t$4zVW;g-Q{ z-qNzM;}~b`1UGVWX+PBQ09PL$I`TkEe{X+J!~Bl;krqrP)I4ItaA$%$DBOp0Sxq+{ zkWJ7Q&O>=86Z>9cAE})YR;lrEy?-c zTRHE}&${!gaptbg)Mp^dmtEMsnQmBF^e$~RPH<8{dEQ$tVO4V9+$O=hOQ+gVyS~Hg z#r4`dC0@VyT&+4?FK&57dbXhyXw2?V&np*rty=b8TEb3Vzg+ZIuDFXO??wL%=?_~P zmU6H1e7!WSBsRVcMs>2?JzJ`un|9A`k&5-_%iesswq4z8PNnExmpiEIxmP#c3rnzZ zp}th8&ux3ZUMCeUEt0V?0NQVPg=Kfqw_*2WUq62Ve8n;D-CXi+mephqr@>7!EKN_{ z>(lkiCAFh|et|Y^FR7(_vrsQq{KMy#!E<~*Xs9RKq~_I&9M-{LpBoe*_d*qd>xF8l z5M)FDb{<^sy#j|k?=2(vW!zfkwd)mJ=+0dU-V5C29jV-c`|>8-({La2IjF)GbxVt+ zOT@i7thcu9a|#N);l8#(X8NQ!7i0miy^U}w9hQ+flw$s75O?ktoFTnaDM|*E zU=fdavn6mk!hM@P=&%BBS2yY}Uh&F1?ki=E40EsC=6=u{UaX(J;b$TDO0$xzFRX%T zxPQm3mb?mbeVdcY)pa?d%V@r~?!HjjYZCIXQt+-p?YV8DFWgM=dU=zg8L3~~gd{K^ zA}?90A}9#{joJ--U*Rx>dn>cvT%ZnX81GfeP#_xCf!4s>!2f$H2+A)NBd9|e1vQtU zRh%_EN)@42z3jowZe`ZJwl0mDU-gz3b{iEZ3u@QSsiRx&{H^8#YY6PLyY^fdr!9(p zpcKprLdy^XlKsCf^G&8CN5Pw4rfa=R&r%={5KKElo>RdJqPj}%um7rq4V3U8VZF2+ zJp#ALB%CiJ*)TxK^Rj}|{&2p>{sMwoyS0GBO%Yd*C40fDS8oLc{Ghi162IqlfbQ{M z1@LX{tt#>Wxv(VzRxWtAO2m)AjDQWQvPeZqo!Yf`y_c%(VRWW>$1clMo1xKvuM4=E z|8X+RKvkB5w}^&P_~c$KkO|}jaA^^3PHKp*wyS}}(F}_+UhuR^x1cSSEA$m2>iUew z*H;5x>`6I#3sC3C#(kQ1Mt2+8+VI4Ge*tMC;-3Bp+jhTONY<#vPPJThbxDA*HwU3v zbvI-LD5u@R+tjhpt*^JN6Zfx?G54OPZ_b%!*&OxYom-fvGd!`&+E*EoE`Xcj94?JH8@3y7+` ze!Zn!SGmj%Dl`7qdxN|;Lz$Y1Zd=is^JGiDou~%bJV)K6DMmV{dHf11Y0x=Uoc)7L h)m!FC?xGIwnTaroxs_F_)?f=27c~GiKaf)&`wtq8xRU?? delta 60 vcmX?Tyn%o4I()8CebVjJX&9{bnK^ULdwJgHedpiz+))+qvj@NTtb=X9VFv;E#Y`0=@|RF7PGb4}cee4*@>}+Q2*S@Sgt?csH&az>~mhz|R36{j4B7 z4D1FT1S-HU0%ocpBFq04aXY;?ERN z2Yv+n2zU84rr#8F8WCVz!CH`sB1CX))6(t1=U%k|nZ?UMwOgCbRS~FgxDo;RwBD zdlW6B+F3Hlw9`dBYpb%kH!dKYEF~Ya822J$DZ19q=w^QrzV5htNY^H0!wgrYC>-8? zl#;D-W0{`g-tQsO=~h8D_Oh&=0f&%QvVoZ3Lzpb4!gTON(U@2&mkj-9a>j~VdQkb51LX&?E~lun$R-u5z$A;&xfX+`ri@5nmkG&GcvchqG_jBP=$~9?*1HLhfgDRX6b0#(K&`_+WqM zBb^Tf5fHh7{5&yM;3lcMK2Bc2AIclb#^5!mGgHPL*+SJKQ?^OuRy0l@B3xV;!E;G9 zbzx*{B}S7QBn-vo3lb$PKZfgQ#!}>u$Q>bjMWXDurcY{AusK-3l$@6mdXk37Sv(z3 zC1{q(_{xG}Acc})m0M0$Adh%urBNAJ=ZR{LNMqj;-P1s_5Szte4x+2GG)*~ zM{ZSpl1(V4l2)KoW!jTi;wKWM@T#gHOIau!-^44VX#B;#sIpYC}kIW~|SN*z7Yf2gOsESuroRB~h_Ioxw772F+qZg3RhJ2sL` zjSh`@|M!me5A=15Y>!+l!EBGwd&#AeAx}_6WkDEKm%L8N^G41=1hTP=o((+=|K(e%JS=(bcWq2s}kTQMkZH>U1m>#dUl$aM}CTN3<$XHpm%eii`l`8I8yFquIVC@ zZ~CKQ{9%rGfUOefOpDv9KMmLyg4ye94P6&IbvYb>$; zZ0s4Y2PcAutSi3n(fEP3VY#FmR&3DBE7@4Doi}4CJ;B*|W_dxY)VpV+_u;ZFQuVQg5Y8qqa>-E+yF;n?8OSYHo&`e?q;8OT((ZRKK*wbqf@IoXIMHB<*8oM4Zo6|2n~(9p+Yz2yY!mC|Ty z`{G>(a6~we9_JcyoH;k=oY(8jSv|wt%CdX2mJp8ndD`{i=EkbCw&6BTxb^p(i+J&3 z-FwzUQpg$d|W`^|JH&3~Qc&Gnf7Ow>f<}h`@~n_eR~DU){xZ=MNhcGK3+#>#R*R&)2*aO+*fh zHWs`~=LUk-@LxW;=vLmw|2sxsZ`gHKSILCAdE_XJR5e1PsOdCBa^g`?Xf`KyfKrGE zb5=Is7)1rqf;G*`YG^MEax07NEU?+Vxauyw7Rm4CS_4)(vzGz}ITT=cH0S(w#d%}J zU78Na=1;!c=Ue8Un`h3;HTT@QGryCFXn%p?-)_kL*j=Iwj0A}i5T!1v&@WIjAfz ztex6CC3^Sinwz=(U}S~QW}jq+=Gx*_e&~w8$7#2A-JP!aiWRJ=ZN9yVd`E_B3Pm6) zJaFz3f(?a1ym?_V$d<;Nc z;S89;1q~KnTZeSlq2kTCx#p==wvGBY>lKuOuk^%iWYWEW;zIDDvsJE8o7YYT@u|)^ zjb*n16{h%39C-vCM zI};^1U`X@avU3{UheUSmx?6`O+hh^Rpm-rdmA5(l&&}{&8#bWUXF_n^O$hYDg41}l z`AP%I%Dwl^2;O3DZ6@*m{%CM+&hQ=q#-Cf?%VjI-J@NSUy8Hfuvv4IE1Luu((*Ieg zBn(HwF08}kVCL~sPOdqtSCG3A0{w$V3fLDXd<5) zflB(H8~E0usS5O|qsM`sZWVIV8kWL7w1qf$2hxDAfT!^l;8rg}@BY`X04_#|j#mj) zwBy!z=kXfViMz~!GN4J5vrDfzXU^YBI^L|@wv@thfHKq@oNn;8HbbRERo1A3tXmuo zzEK!gll2)gCi0O2i?}Yf=2prl*A%n>TTnGqM`!8FMiJ0Qcz!CjbBd diff --git a/docs/locales/ko/LC_MESSAGES/packaging.po b/docs/locales/ko/LC_MESSAGES/packaging.po index 43052af23..033a5eda2 100644 --- a/docs/locales/ko/LC_MESSAGES/packaging.po +++ b/docs/locales/ko/LC_MESSAGES/packaging.po @@ -21,182 +21,182 @@ msgstr "" #: ../../header.rst:-1 3c04d07515a94932a13a95ebeb03dd64 msgid "Artifex" -msgstr "" +msgstr "Artifex" #: ../../header.rst:-1 bfe728bc4ddc474bb035cd55e714eabf msgid "" "PyMuPDF is a high-performance Python library for data extraction, " "analysis, conversion & manipulation of PDF (and other) documents." -msgstr "" +msgstr "PyMuPDF는 PDF 및 기타 문서의 데이터 추출, 분석, 변환, 조작을 위한 고성능 Python 라이브러리입니다." #: ../../header.rst:-1 cdf2aaae85c74803bd7026f6e124be96 msgid "" "PDF Text Extraction, PDF Image Extraction, PDF Conversion, PDF Tables, " "PDF Splitting, PDF Creation, Pyodide, PyScript" -msgstr "" +msgstr "PDF 텍스트 추출, PDF 이미지 추출, PDF 변환, PDF 테이블, PDF 분할, PDF 생성, Pyodide, PyScript" #: ../../packaging.rst:5 348e8764195645e2bf7ae0ae58e6672e msgid "Packaging for Linux distributions" -msgstr "" +msgstr "Linux 배포판용 패키징" #: ../../packaging.rst:9 cb613445a87e445abba22e57ddb58ec7 msgid "Requirements" -msgstr "" +msgstr "요구사항" #: ../../packaging.rst:11 b36b1e7d3fc94b0d9d5c31f4cae79c63 msgid "Python" -msgstr "" +msgstr "Python" #: ../../packaging.rst:12 4edcec2efc2d4308ad735f013faa422e msgid "MuPDF checkout (including submodules)." -msgstr "" +msgstr "|MuPDF| 체크아웃(서브모듈 포함)." #: ../../packaging.rst:13 c463c998f736479f892c6b4c57f77d89 msgid "PyMuPDF checkout." -msgstr "" +msgstr "|PyMuPDF| 체크아웃." #: ../../packaging.rst:14 dbadca79b99f4a80ace5240c78bde785 msgid "System packages listed in `scripts/sysinstall.py:g_sys_packages`." -msgstr "" +msgstr "`scripts/sysinstall.py:g_sys_packages` 에 나열된 시스템 패키지." #: ../../packaging.rst:15 760e1814501643e8ba68b67bc653f179 msgid "Python packages listed in `pyproject.toml`." -msgstr "" +msgstr "`pyproject.toml` 에 나열된 Python 패키지." #: ../../packaging.rst:17 7b5ae3db64eb472daed8e6bad3fbf7ac msgid "Extra requirements for running tests:" -msgstr "" +msgstr "테스트 실행을 위한 추가 요구사항:" #: ../../packaging.rst:19 c7033e7fd7804ba48daa32be3ccdaa7b msgid "Python packages listed in `scripts/gh_release.py:test_packages`." -msgstr "" +msgstr "`scripts/gh_release.py:test_packages` 에 나열된 Python 패키지." #: ../../packaging.rst:23 d087313018614125b4e745ef56fc63d1 msgid "General steps" -msgstr "" +msgstr "일반적인 단계" #: ../../packaging.rst:25 ff845be31dc6431c907ec57f88327d5f msgid "Build and install MuPDF:" -msgstr "" +msgstr "|MuPDF| 빌드 및 설치:" #: ../../packaging.rst:27 22584c396cc342bfba772fe8c81ac949 msgid "Install required system packages." -msgstr "" +msgstr "필요한 시스템 패키지를 설치합니다." #: ../../packaging.rst:28 f7c3f08a80c141d49a7a07a13474c1bb msgid "" "Run `make install-shared-python` on MuPDF's `Makefile` with at least " "these make variables:" -msgstr "" +msgstr "|MuPDF| 의 `Makefile` 에서 최소한 다음 make 변수를 사용하여 `make install-shared-python` 을 실행합니다:" #: ../../packaging.rst:31 9d49af42c3a74272b78d5e68b8a53863 msgid "`DESTDIR` set to the install directory, e.g. `/`." -msgstr "" +msgstr "`DESTDIR` 를 설치 디렉토리로 설정합니다. 예: `/`." #: ../../packaging.rst:33 c80bf2b5d6aa48a3ab8da81dcde780cb msgid "" "`prefix` set to location relative to DESTDIR, such as `/usr/local` or " "`/usr`. Must start with `/`." -msgstr "" +msgstr "`prefix` 를 DESTDIR에 상대적인 위치로 설정합니다. 예: `/usr/local` 또는 `/usr`. `/` 로 시작해야 합니다." #: ../../packaging.rst:35 11c2299023db4fb19e56a64ef4be5424 msgid "`USE_SYSTEM_LIBS=yes`." -msgstr "" +msgstr "`USE_SYSTEM_LIBS=yes`." #: ../../packaging.rst:36 1384b7538ae5481a97b504d24690c056 msgid "`HAVE_LEPTONICA=yes`." -msgstr "" +msgstr "`HAVE_LEPTONICA=yes`." #: ../../packaging.rst:37 06ed0058c43d461db82d505a23ca7094 msgid "`HAVE_TESSERACT=yes`." -msgstr "" +msgstr "`HAVE_TESSERACT=yes`." #: ../../packaging.rst:39 b3644dcc2c5943bf888d7f8e9dc9edcc msgid "Build and install PyMuPDF:" -msgstr "" +msgstr "|PyMuPDF| 빌드 및 설치:" #: ../../packaging.rst:42 dcf39ffe359c4c03b4de4f59838ee0f0 msgid "" "Run `pip install ./PyMuPDF` or `pip wheel ./PyMuPDF` with at least these " "environment variables:" -msgstr "" +msgstr "최소한 다음 환경 변수를 사용하여 `pip install ./PyMuPDF` 또는 `pip wheel ./PyMuPDF` 를 실행합니다:" #: ../../packaging.rst:46 93b07ed437f44924bb31820bb149fa1f msgid "" "`PYMUPDF_SETUP_MUPDF_BUILD=` (empty string) to prevent download and build" " of hard-coded MuPDF release." -msgstr "" +msgstr "`PYMUPDF_SETUP_MUPDF_BUILD=` (빈 문자열)을 설정하여 하드코딩된 |MuPDF| 릴리스의 다운로드 및 빌드를 방지합니다." #: ../../packaging.rst:49 9ca48e9bfca64481b10e5c28ce400a6a msgid "" "`CFLAGS`, `CXXFLAGS` and `LDFLAGS` set to allow visibility of the " "installed MuPDF headers and shared libraries." -msgstr "" +msgstr "`CFLAGS`, `CXXFLAGS` 및 `LDFLAGS` 를 설정하여 설치된 |MuPDF| 헤더 및 공유 라이브러리의 가시성을 허용합니다." #: ../../packaging.rst:52 4361b9dfe3094baeaee44b1e98a85735 msgid "Run PyMuPDF tests:" -msgstr "" +msgstr "|PyMuPDF| 테스트 실행:" #: ../../packaging.rst:54 31da2ee092e74396895c9811cd72275d msgid "Ensure required Python packages are available." -msgstr "" +msgstr "필요한 Python 패키지를 사용할 수 있는지 확인합니다." #: ../../packaging.rst:56 027bc04d851d4711a60c825c34fd582c msgid "Run `pytest -k \"not test_color_count and not test_3050\" PyMuPDF`" -msgstr "" +msgstr "`pytest -k \"not test_color_count and not test_3050\" PyMuPDF` 를 실행합니다" #: ../../packaging.rst:58 c29cbb8f2791439fb47faf2ea2080ca8 msgid "" "Test `test_color_count` is known fail if MuPDF is not built with " "PyMuPDF's custom config.h." -msgstr "" +msgstr "`test_color_count` 테스트는 |MuPDF| 가 |PyMuPDF| 의 사용자 정의 config.h로 빌드되지 않은 경우 실패하는 것으로 알려져 있습니다." #: ../../packaging.rst:59 366f92e009ee412b9ee326e53365c80b msgid "" "Test `test_3050` is known to fail if MuPDF is built without its own " "third-party libraries." -msgstr "" +msgstr "`test_3050` 테스트는 |MuPDF| 가 자체 서드파티 라이브러리 없이 빌드된 경우 실패하는 것으로 알려져 있습니다." #: ../../packaging.rst:63 dc265d226e3549d395d1ee9b84d7e9b7 msgid "Use of scripts/sysinstall.py" -msgstr "" +msgstr "scripts/sysinstall.py 사용" #: ../../packaging.rst:65 c5ccd53c72ae43e2a8514ab3361d7530 msgid "" "`scripts/sysinstall.py` provides a useful example of build, install and " "test commands that are known to to work, because it is run regularly by " "Github action `.github/workflows/test_sysinstall.yml`." -msgstr "" +msgstr "`scripts/sysinstall.py` 는 GitHub 액션 `.github/workflows/test_sysinstall.yml` 에 의해 정기적으로 실행되기 때문에 작동하는 것으로 알려진 빌드, 설치 및 테스트 명령의 유용한 예제를 제공합니다." #: ../../packaging.rst:69 82d7e8c0cbc44e7ba2c922716b3572df msgid "Run with `-h` or look at the doc-string to see detailed usage information." -msgstr "" +msgstr "`-h` 옵션으로 실행하거나 doc-string을 확인하여 자세한 사용 정보를 확인하세요." #: ../../packaging.rst:70 3e72131ea5f546a3b3328a8e07d2f12c msgid "It uses Debian-style `apt` commands to install system packages." -msgstr "" +msgstr "시스템 패키지를 설치하는 데 Debian 스타일의 `apt` 명령을 사용합니다." #: ../../packaging.rst:71 d7d9461807534464806ed713797d4c4a msgid "By default it assumes local git checkouts `mupdf/` and `PyMuPDF/`." -msgstr "" +msgstr "기본적으로 로컬 git 체크아웃 `mupdf/` 및 `PyMuPDF/` 를 가정합니다." #: ../../packaging.rst:73 ef0294479d1943c0b9a9320a2d3a26d5 msgid "" "To run a full build, install and test for both a local fake root and the " "system root:" -msgstr "" +msgstr "로컬 가짜 루트와 시스템 루트 모두에 대해 전체 빌드, 설치 및 테스트를 실행하려면:" #: ../../packaging.rst:81 541b01cd5c274ffdb287b2e4615b1dcc msgid "To see what commands would be run without actually running them:" -msgstr "" +msgstr "실제로 실행하지 않고 실행될 명령을 보려면:" #: ../../packaging.rst:89 a1980a6d8b4e4ff483c5461aa5c7c9a2 msgid "See also" -msgstr "" +msgstr "참고" #: ../../packaging.rst:92 8dfdf3477c0c47799dc0f20fc9645ebe msgid "" "`setup.py`'s initial doc-comment has detailed information about the " "environment variables used when building PyMuPDF." -msgstr "" +msgstr "`setup.py` 의 초기 doc-comment에는 |PyMuPDF| 를 빌드할 때 사용되는 환경 변수에 대한 자세한 정보가 포함되어 있습니다." diff --git a/docs/locales/ko/LC_MESSAGES/page.mo b/docs/locales/ko/LC_MESSAGES/page.mo index 7eec4ca1a62cb4e8a9638cb85daba9c7ebcdddc5..94e53f9bc7f2b47ceb97ed166a6a9ea8edc29b38 100644 GIT binary patch literal 226318 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�g+-uV(g^lpdOSRyD!(EKqNCA=%T(73lh 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