diff options
author | Lei Zhang <thestig@chromium.org> | 2018-10-16 05:54:09 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-10-16 05:54:09 +0000 |
commit | bb3f58dbcb7195e9e641fcc64e2ab537cf3fbc61 (patch) | |
tree | a4aaa3a58970fe29dea577381d83cca145ef2cad /samples/pdfium_test_dump_helper.cc | |
parent | f1925d9429f8674b25fff8010e04f2fc132ea38a (diff) | |
download | pdfium-bb3f58dbcb7195e9e641fcc64e2ab537cf3fbc61.tar.xz |
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 <thestig@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
Diffstat (limited to 'samples/pdfium_test_dump_helper.cc')
-rw-r--r-- | samples/pdfium_test_dump_helper.cc | 29 |
1 files changed, 28 insertions, 1 deletions
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 <string.h> #include <algorithm> +#include <functional> #include <memory> #include <string> #include <utility> #include "public/cpp/fpdf_scopers.h" +#include "public/fpdf_transformpage.h" #include "testing/test_support.h" +using GetBoxInfoFunc = + std::function<bool(FPDF_PAGE, float*, float*, float*, float*)>; + 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); |