diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/PyPDF2/generic/_outline.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/PyPDF2/generic/_outline.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/PyPDF2/generic/_outline.py b/.venv/lib/python3.12/site-packages/PyPDF2/generic/_outline.py new file mode 100644 index 00000000..c2e72c0a --- /dev/null +++ b/.venv/lib/python3.12/site-packages/PyPDF2/generic/_outline.py @@ -0,0 +1,35 @@ +from typing import Any, Union + +from .._utils import StreamType, deprecation_with_replacement +from ._base import NameObject +from ._data_structures import Destination + + +class OutlineItem(Destination): + def write_to_stream( + self, stream: StreamType, encryption_key: Union[None, str, bytes] + ) -> None: + stream.write(b"<<\n") + for key in [ + NameObject(x) + for x in ["/Title", "/Parent", "/First", "/Last", "/Next", "/Prev"] + if x in self + ]: + key.write_to_stream(stream, encryption_key) + stream.write(b" ") + value = self.raw_get(key) + value.write_to_stream(stream, encryption_key) + stream.write(b"\n") + key = NameObject("/Dest") + key.write_to_stream(stream, encryption_key) + stream.write(b" ") + value = self.dest_array + value.write_to_stream(stream, encryption_key) + stream.write(b"\n") + stream.write(b">>") + + +class Bookmark(OutlineItem): # pragma: no cover + def __init__(self, *args: Any, **kwargs: Any) -> None: + deprecation_with_replacement("Bookmark", "OutlineItem", "3.0.0") + super().__init__(*args, **kwargs) |