ladybird/Meta
Matthew Olsson 8c745ad0d9 LibPDF: Parse page structures
This commit introduces the ability to parse the document catalog dict,
as well as the page tree and individual pages. Pages obviously aren't
fully parsed, as we won't care about most of the fields until we
start actually rendering PDFs.

One of the primary benefits of the PDF format is laziness. PDFs are
not meant to be parsed all at once, and the same is true for pages.
When a Document is constructed, it builds a map of page number to
object index, but it does not fetch and parse any of the pages. A page
is only parsed when a caller requests that particular page (and is
cached going forwards).

Additionally, this commit also adds an object_cast function which
logs bad casts if DEBUG_PDF is set. Additionally, utility functions
were added to ArrayObject and DictObject to get all types of objects
from the collections to avoid having to manually cast.
2021-05-10 10:32:39 +02:00
..
CMake LibPDF: Parse page structures 2021-05-10 10:32:39 +02:00
Lagom LibSQL: Add a syntax highlighter 2021-05-09 09:39:05 +02:00
Precompile Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ShellCompletions/zsh Meta: Add basic Zsh completions for serenity.sh 2021-04-22 09:55:48 +02:00
Websites Meta: Improve man.serenityos.org titles and link names 2021-05-07 22:28:33 +02:00
bochsrc Meta: move Kernel/.bochsrc => Meta/bochsrc 2020-07-01 12:53:39 +02:00
build-image-grub.sh Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
build-image-qemu.sh Meta: Always try genext2fs as fallback to build disk image 2021-05-09 15:34:12 +02:00
build-root-filesystem.sh Base: Make the /bin/TextEditor desktop shortcut say "Text Editor" :^) 2021-05-06 17:54:36 +02:00
check-ak-test-files.sh Meta + Lagom: Fix paths after movement of tests to Tests/ 2021-05-08 00:04:10 +01:00
check-debug-flags.sh Meta: Remove references to Userland/Libraries/LibELF/exec_elf.h 2021-04-19 09:19:31 +02:00
check-newlines-at-eof.py Meta: Remove AK/Tests from check-newlines-at-eof.py 2021-05-08 00:04:10 +01:00
check-style.sh Meta: Make copyright header check more strict 2021-04-29 00:59:26 +02:00
check-symbols.sh CI: Don't fail check-symbols if symbol is defiend somewhere else 2021-03-19 22:55:53 +01:00
check-syscall-lists.sh Meta: Check consistency of various syscall tables 2021-01-23 16:47:09 +01:00
debug-kernel.sh Meta: Add GDB pretty printers 2021-04-22 00:45:43 +02:00
generate-embedded-resource-assembly.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
grub-ebr.cfg Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +01:00
grub-gpt.cfg Kernel: Stop bootloader from setting video mode with Multiboot 2020-05-28 00:50:55 +02:00
grub-mbr.cfg Kernel: Stop bootloader from setting video mode with Multiboot 2020-05-28 00:50:55 +02:00
install-ports-tree.sh Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
lint-ci.sh Meta: pre-commit should run lint-ports.py only when Ports change 2021-04-30 21:24:22 +02:00
lint-clang-format.sh Meta: Remove references to Userland/Libraries/LibELF/exec_elf.h 2021-04-19 09:19:31 +02:00
lint-commit.sh Meta: Add a post-commit commit message linter hook 2021-05-02 16:28:01 +02:00
lint-executable-resources.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-ipc-ids.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-keymaps.py Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
lint-missing-resources.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-ports.py Meta: Fix error in lint-ports.py 2021-05-07 20:08:45 +01:00
lint-prettier.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-python.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-shell-scripts.sh Meta: Enable linting of shell scripts under Toolchain 2021-05-05 21:26:37 +02:00
notify_irc.py Meta: Use author username for pull request IRC notifications 2021-04-30 23:11:12 +02:00
refresh-serenity-qtcreator.sh Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
run.sh Meta: Ensure the tap device is removed before trying to create it again 2021-04-29 20:26:13 +02:00
screenshot-000ccc0.png Meta: Update ReadMe with a new screenshot. :^) 2019-02-12 15:47:37 +01:00
screenshot-0f85753.png Meta: Update the screenshot in the ReadMe :^) 2021-04-04 09:57:36 +02:00
screenshot-8ea4375.png Meta: Time for a new screenshot! :^) 2020-06-02 19:29:31 +02:00
screenshot-1133aca.png Meta: Time for a new screenshot (Quake edition) :^) 2019-11-06 21:51:33 +01:00
screenshot-9145a72.png Meta: Time for a new screnshot! :^) 2019-09-18 12:15:02 +02:00
screenshot-23263aa.png Meta: Update ReadMe with a new screenshot :^) 2019-02-27 13:17:43 +01:00
screenshot-191112e.png Meta: Time for a new screenshot to keep things fresh. :^) 2019-06-07 18:14:13 +02:00
screenshot-b5521e1.png Meta: Time for a new screenshot! :^) 2019-03-08 01:10:33 +01:00
screenshot-cdb82f6.png Meta: Tweak ReadMe and add a new screenshot. 2019-03-20 15:52:37 +01:00
screenshot-d727005.png Meta: Tweak ReadMe and add a new screenshot. 2019-04-30 15:27:35 +02:00
screenshot-ef9fbef.png Meta: Time for a new screenshot :^) 2019-04-06 01:31:12 +02:00
screenshot-f8fc892.png Add a little ReadMe. 2019-02-08 11:06:34 +01:00
serenity.sh Meta: Add GDB pretty printers 2021-04-22 00:45:43 +02:00
serenity_gdb.py Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
text-to-cpp-string.sh Meta: Use a bash shebang for text-to-cpp-string.sh 2021-01-22 18:41:08 +01:00
tweet-commits.js Meta: Add action to tweet each commit on push 2021-05-05 21:12:09 +02:00
write-only-on-difference.sh Build: Sprinkle some portability, fix on OpenBSD 2021-02-14 09:29:22 +01:00