From 005bdd210aaf132fa1cecb450a124978bb5aa2e3 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Mon, 2 Oct 2023 19:00:15 -0400 Subject: [PATCH] pdf: Add a --dump-outline flag --- Userland/Utilities/pdf.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Userland/Utilities/pdf.cpp b/Userland/Utilities/pdf.cpp index 577acd6074..545bdb0732 100644 --- a/Userland/Utilities/pdf.cpp +++ b/Userland/Utilities/pdf.cpp @@ -150,6 +150,9 @@ static PDF::PDFErrorOr pdf_main(Main::Arguments arguments) bool dump_contents = false; args_parser.add_option(dump_contents, "Dump page contents", "dump-contents", {}); + bool dump_outline = false; + args_parser.add_option(dump_outline, "Dump document outline", "dump-outline", {}); + u32 page_number = 1; args_parser.add_option(page_number, "Page number (1-based)", "page", {}, "PAGE"); @@ -194,6 +197,14 @@ static PDF::PDFErrorOr pdf_main(Main::Arguments arguments) } int page_index = page_number - 1; + if (dump_outline) { + if (auto outline = document->outline(); outline) + outln("{}", *outline); + else + outln("(no outline)"); + return 0; + } + if (dump_contents) { TRY(document->dump_page(page_index)); return 0;