diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py b/.venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py new file mode 100644 index 00000000..70d8e666 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pypdf/_codecs/__init__.py @@ -0,0 +1,61 @@ +from typing import Dict, List + +from .adobe_glyphs import adobe_glyphs +from .pdfdoc import _pdfdoc_encoding +from .std import _std_encoding +from .symbol import _symbol_encoding +from .zapfding import _zapfding_encoding + + +def fill_from_encoding(enc: str) -> List[str]: + lst: List[str] = [] + for x in range(256): + try: + lst += (bytes((x,)).decode(enc),) + except Exception: + lst += (chr(x),) + return lst + + +def rev_encoding(enc: List[str]) -> Dict[str, int]: + rev: Dict[str, int] = {} + for i in range(256): + char = enc[i] + if char == "\u0000": + continue + assert char not in rev, f"{char} at {i} already at {rev[char]}" + rev[char] = i + return rev + + +_win_encoding = fill_from_encoding("cp1252") +_mac_encoding = fill_from_encoding("mac_roman") + + +_win_encoding_rev: Dict[str, int] = rev_encoding(_win_encoding) +_mac_encoding_rev: Dict[str, int] = rev_encoding(_mac_encoding) +_symbol_encoding_rev: Dict[str, int] = rev_encoding(_symbol_encoding) +_zapfding_encoding_rev: Dict[str, int] = rev_encoding(_zapfding_encoding) +_pdfdoc_encoding_rev: Dict[str, int] = rev_encoding(_pdfdoc_encoding) + + +charset_encoding: Dict[str, List[str]] = { + "/StandardCoding": _std_encoding, + "/WinAnsiEncoding": _win_encoding, + "/MacRomanEncoding": _mac_encoding, + "/PDFDocEncoding": _pdfdoc_encoding, + "/Symbol": _symbol_encoding, + "/ZapfDingbats": _zapfding_encoding, +} + +__all__ = [ + "adobe_glyphs", + "_std_encoding", + "_symbol_encoding", + "_zapfding_encoding", + "_pdfdoc_encoding", + "_pdfdoc_encoding_rev", + "_win_encoding", + "_mac_encoding", + "charset_encoding", +] |