MCPcopy Create free account
hub / github.com/docling-project/docling-parse / decode_and_render

Function decode_and_render

app/render.cpp:44–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43template<typename Renderer>
44bool decode_and_render(pdflib::pdf_decoder<pdflib::DOCUMENT>& doc,
45 int page,
46 const pdflib::decode_config& page_config,
47 Renderer& rnd,
48 bool export_bitmaps,
49 std::filesystem::path const& bitmap_dir,
50 bool export_page_pdf_files,
51 std::filesystem::path const& page_pdf_dir,
52 std::string const& pdf_path)
53{
54 if (page == -1)
55 {
56 int num_pages = doc.get_number_of_pages();
57 for (int p = 0; p < num_pages; p++)
58 {
59 auto page_decoder = doc.decode_page(p, page_config);
60 if (page_decoder)
61 {
62 auto& instructions = page_decoder->get_instructions();
63 if(export_bitmaps)
64 {
65 pdflib::bitmap_export::bitmap_exporter_visitor exporter(
66 bitmap_dir, pdf_path, p);
67 instructions.iterate_over_instructions(exporter);
68 }
69 if(export_page_pdf_files)
70 {
71 page_decoder->save_pdf_page(page_pdf_output_path(page_pdf_dir,
72 pdf_path,
73 p));
74 }
75 instructions.iterate_over_instructions(rnd);
76 }
77 }
78 }
79 else
80 {
81 auto page_decoder = doc.decode_page(page, page_config);
82 if (page_decoder)
83 {
84 auto& instructions = page_decoder->get_instructions();
85 if(export_bitmaps)
86 {
87 pdflib::bitmap_export::bitmap_exporter_visitor exporter(
88 bitmap_dir, pdf_path, page);
89 instructions.iterate_over_instructions(exporter);
90 }
91 if(export_page_pdf_files)
92 {
93 page_decoder->save_pdf_page(page_pdf_output_path(page_pdf_dir,
94 pdf_path,
95 page));
96 }
97 instructions.iterate_over_instructions(rnd);
98 }
99 else
100 {
101 LOG_S(ERROR) << "Failed to decode page: " << page;

Callers 1

mainFunction · 0.85

Calls 5

get_number_of_pagesMethod · 0.80
save_pdf_pageMethod · 0.80
page_pdf_output_pathFunction · 0.70
decode_pageMethod · 0.45

Tested by

no test coverage detected