From bb3f58dbcb7195e9e641fcc64e2ab537cf3fbc61 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 16 Oct 2018 05:54:09 +0000 Subject: Add pdfium_test --show-pageinfo to dump page bounding boxes. The bounding boxes are LBRT coordinates. e.g. Page 0: MediaBox: 0.00 0.00 595.00 842.00 Page 0: No CropBox. Page 0: BleedBox: 0.04 0.00 842.04 594.96 Page 0: TrimBox: 0.04 0.00 842.04 594.96 Page 0: ArtBox: 0.00 0.02 594.96 594.96 Change-Id: I2809aab69f3c51bde9a443d6c92f3167ee10b3c9 Reviewed-on: https://pdfium-review.googlesource.com/c/43976 Commit-Queue: Lei Zhang Reviewed-by: Shirleen Lou --- samples/pdfium_test_dump_helper.cc | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'samples/pdfium_test_dump_helper.cc') diff --git a/samples/pdfium_test_dump_helper.cc b/samples/pdfium_test_dump_helper.cc index 2b422a93fb..93a184a691 100644 --- a/samples/pdfium_test_dump_helper.cc +++ b/samples/pdfium_test_dump_helper.cc @@ -7,13 +7,18 @@ #include #include +#include #include #include #include #include "public/cpp/fpdf_scopers.h" +#include "public/fpdf_transformpage.h" #include "testing/test_support.h" +using GetBoxInfoFunc = + std::function; + namespace { std::wstring ConvertToWString(const unsigned short* buf, @@ -24,6 +29,20 @@ std::wstring ConvertToWString(const unsigned short* buf, return result; } +void DumpBoxInfo(GetBoxInfoFunc func, + const char* box_type, + FPDF_PAGE page, + int page_idx) { + FS_RECTF rect; + bool ret = func(page, &rect.left, &rect.bottom, &rect.right, &rect.top); + if (!ret) { + printf("Page %d: No %s.\n", page_idx, box_type); + return; + } + printf("Page %d: %s: %0.2f %0.2f %0.2f %0.2f\n", page_idx, box_type, + rect.left, rect.bottom, rect.right, rect.top); +} + } // namespace void DumpChildStructure(FPDF_STRUCTELEMENT child, int indent) { @@ -54,7 +73,15 @@ void DumpChildStructure(FPDF_STRUCTELEMENT child, int indent) { } } -void DumpPageStructure(FPDF_PAGE page, const int page_idx) { +void DumpPageInfo(FPDF_PAGE page, int page_idx) { + DumpBoxInfo(&FPDFPage_GetMediaBox, "MediaBox", page, page_idx); + DumpBoxInfo(&FPDFPage_GetCropBox, "CropBox", page, page_idx); + DumpBoxInfo(&FPDFPage_GetBleedBox, "BleedBox", page, page_idx); + DumpBoxInfo(&FPDFPage_GetTrimBox, "TrimBox", page, page_idx); + DumpBoxInfo(&FPDFPage_GetArtBox, "ArtBox", page, page_idx); +} + +void DumpPageStructure(FPDF_PAGE page, int page_idx) { ScopedFPDFStructTree tree(FPDF_StructTree_GetForPage(page)); if (!tree) { fprintf(stderr, "Failed to load struct tree for page %d\n", page_idx); -- cgit v1.2.3