From c7f66edd224446deefe68506b7ebed871eb5c8c2 Mon Sep 17 00:00:00 2001 From: xlou Date: Thu, 11 Oct 2018 21:15:18 +0000 Subject: Add functions to get/set ArtBox. There are PDFs that use ArtBox. In some use cases, user may scale a page, scale up/down MediaBox and CropBox. So if ArtBox exists, it needs to be scaled as well. Bug:409670 Change-Id: I78ac7afa66942352277f856514bdd9b15dda270b Reviewed-on: https://pdfium-review.googlesource.com/c/43931 Reviewed-by: Lei Zhang Commit-Queue: Shirleen Lou --- fpdfsdk/fpdf_transformpage_embeddertest.cpp | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'fpdfsdk/fpdf_transformpage_embeddertest.cpp') diff --git a/fpdfsdk/fpdf_transformpage_embeddertest.cpp b/fpdfsdk/fpdf_transformpage_embeddertest.cpp index 0a8e3e72e3..3904b0c321 100644 --- a/fpdfsdk/fpdf_transformpage_embeddertest.cpp +++ b/fpdfsdk/fpdf_transformpage_embeddertest.cpp @@ -37,6 +37,17 @@ TEST_F(FPDFTransformEmbedderTest, GetBoundingBoxes) { EXPECT_EQ(150, cropbox_right); EXPECT_EQ(150, cropbox_top); + float artbox_left; + float artbox_bottom; + float artbox_right; + float artbox_top; + EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox_left, &artbox_bottom, + &artbox_right, &artbox_top)); + EXPECT_EQ(50, artbox_left); + EXPECT_EQ(60, artbox_bottom); + EXPECT_EQ(135, artbox_right); + EXPECT_EQ(140, artbox_top); + UnloadPage(page); } @@ -76,6 +87,17 @@ TEST_F(FPDFTransformEmbedderTest, GetBoundingBoxes) { &cropbox_right, nullptr)); EXPECT_FALSE(FPDFPage_GetCropBox(page, nullptr, nullptr, nullptr, nullptr)); + float artbox_left; + float artbox_bottom; + float artbox_right; + float artbox_top; + EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox_left, &artbox_bottom, + &artbox_right, &artbox_top)); + EXPECT_EQ(140, artbox_left); + EXPECT_EQ(145, artbox_bottom); + EXPECT_EQ(65, artbox_right); + EXPECT_EQ(70, artbox_top); + UnloadPage(page); } } @@ -120,3 +142,23 @@ TEST_F(FPDFTransformEmbedderTest, ClipPath) { FPDF_DestroyClipPath(clip); UnloadPage(page); } + +TEST_F(FPDFTransformEmbedderTest, NoArtBox) { + ASSERT_TRUE(OpenDocument("hello_world.pdf")); + ASSERT_EQ(1, FPDF_GetPageCount(document())); + + FPDF_PAGE page = LoadPage(0); + ASSERT_TRUE(page); + + float left = -1.0f; + float bottom = -1.0f; + float right = 3.0f; + float top = 0.0f; + EXPECT_FALSE(FPDFPage_GetArtBox(page, &left, &bottom, &right, &top)); + EXPECT_EQ(-1.0f, left); + EXPECT_EQ(-1.0f, bottom); + EXPECT_EQ(3.0f, right); + EXPECT_EQ(0.0f, top); + + UnloadPage(page); +} -- cgit v1.2.3