32 ASSERT_TRUE(OpenDocument(
"cropped_text.pdf"));
33 ASSERT_EQ(4, FPDF_GetPageCount(document()));
36 ScopedEmbedderTestPage page = LoadScopedPage(1);
40 EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
41 &mediabox.bottom, &mediabox.right,
43 EXPECT_EQ(-50, mediabox.left);
44 EXPECT_EQ(-50, mediabox.bottom);
45 EXPECT_EQ(200, mediabox.right);
46 EXPECT_EQ(200, mediabox.top);
49 EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
50 &cropbox.right, &cropbox.top));
51 EXPECT_EQ(50, cropbox.left);
52 EXPECT_EQ(50, cropbox.bottom);
53 EXPECT_EQ(150, cropbox.right);
54 EXPECT_EQ(150, cropbox.top);
57 EXPECT_TRUE(FPDFPage_GetBleedBox(page.get(), &bleedbox.left,
58 &bleedbox.bottom, &bleedbox.right,
60 EXPECT_EQ(0, bleedbox.left);
61 EXPECT_EQ(10, bleedbox.bottom);
62 EXPECT_EQ(150, bleedbox.right);
63 EXPECT_EQ(145, bleedbox.top);
66 EXPECT_TRUE(FPDFPage_GetTrimBox(page.get(), &trimbox.left, &trimbox.bottom,
67 &trimbox.right, &trimbox.top));
68 EXPECT_EQ(25, trimbox.left);
69 EXPECT_EQ(30, trimbox.bottom);
70 EXPECT_EQ(140, trimbox.right);
71 EXPECT_EQ(145, trimbox.top);
74 EXPECT_TRUE(FPDFPage_GetArtBox(page.get(), &artbox.left, &artbox.bottom,
75 &artbox.right, &artbox.top));
76 EXPECT_EQ(50, artbox.left);
77 EXPECT_EQ(60, artbox.bottom);
78 EXPECT_EQ(135, artbox.right);
79 EXPECT_EQ(140, artbox.top);
83 ScopedEmbedderTestPage page = LoadScopedPage(3);
87 EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
88 &mediabox.bottom, &mediabox.right,
90 EXPECT_EQ(0, mediabox.left);
91 EXPECT_EQ(0, mediabox.bottom);
92 EXPECT_EQ(200, mediabox.right);
93 EXPECT_EQ(200, mediabox.top);
96 EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
97 &cropbox.right, &cropbox.top));
98 EXPECT_EQ(150, cropbox.left);
99 EXPECT_EQ(150, cropbox.bottom);
100 EXPECT_EQ(60, cropbox.right);
101 EXPECT_EQ(60, cropbox.top);
103 EXPECT_FALSE(FPDFPage_GetCropBox(page.get(),
nullptr, &cropbox.bottom,
104 &cropbox.right, &cropbox.top));
105 EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left,
nullptr,
106 &cropbox.right, &cropbox.top));
107 EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
108 nullptr, &cropbox.top));
109 EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
110 &cropbox.right,
nullptr));
112 FPDFPage_GetCropBox(page.get(),
nullptr,
nullptr,
nullptr,
nullptr));
115 EXPECT_TRUE(FPDFPage_GetBleedBox(page.get(), &bleedbox.left,
116 &bleedbox.bottom, &bleedbox.right,
118 EXPECT_EQ(160, bleedbox.left);
119 EXPECT_EQ(165, bleedbox.bottom);
120 EXPECT_EQ(0, bleedbox.right);
121 EXPECT_EQ(10, bleedbox.top);
124 EXPECT_TRUE(FPDFPage_GetTrimBox(page.get(), &trimbox.left, &trimbox.bottom,
125 &trimbox.right, &trimbox.top));
126 EXPECT_EQ(155, trimbox.left);
127 EXPECT_EQ(165, trimbox.bottom);
128 EXPECT_EQ(25, trimbox.right);
129 EXPECT_EQ(30, trimbox.top);
132 EXPECT_TRUE(FPDFPage_GetArtBox(page.get(), &artbox.left, &artbox.bottom,
133 &artbox.right, &artbox.top));
134 EXPECT_EQ(140, artbox.left);
135 EXPECT_EQ(145, artbox.bottom);
136 EXPECT_EQ(65, artbox.right);
137 EXPECT_EQ(70, artbox.top);
207 const char* cropped_checksum = []() {
209 return "4b9d2d2246be61c583f454245fe3172f";
211 return "9937883715d5144c079fb8f7e3d4f395";
214 ASSERT_TRUE(OpenDocument(
"rectangles.pdf"));
215 ScopedEmbedderTestPage page = LoadScopedPage(0);
221 EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left,
222 &cropbox.bottom, &cropbox.right,
224 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
225 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
226 EXPECT_EQ(200, page_width);
227 EXPECT_EQ(300, page_height);
228 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
229 CompareBitmap(bitmap.get(), page_width, page_height,
233 FPDFPage_SetCropBox(page.get(), 10, 20, 100, 150);
240 EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left,
241 &cropbox.bottom, &cropbox.right,
243 EXPECT_EQ(10, cropbox.left);
244 EXPECT_EQ(20, cropbox.bottom);
245 EXPECT_EQ(100, cropbox.right);
246 EXPECT_EQ(150, cropbox.top);
247 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
248 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
249 EXPECT_EQ(90, page_width);
250 EXPECT_EQ(130, page_height);
251 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
252 CompareBitmap(bitmap.get(), page_width, page_height, cropped_checksum);
259 EXPECT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
260 ASSERT_TRUE(OpenSavedDocument());
261 FPDF_PAGE saved_page = LoadSavedPage(0);
262 ASSERT_TRUE(saved_page);
266 &cropbox.right
, &cropbox.top
));
267 EXPECT_EQ(10, cropbox.left);
268 EXPECT_EQ(20, cropbox.bottom);
269 EXPECT_EQ(100, cropbox.right);
270 EXPECT_EQ(150, cropbox.top);
273 EXPECT_EQ(90, page_width);
274 EXPECT_EQ(130, page_height);
275 ScopedFPDFBitmap bitmap = RenderSavedPage(saved_page);
276 CompareBitmap(bitmap.get(), page_width, page_height, cropped_checksum);
278 CloseSavedPage(saved_page);
279 CloseSavedDocument();
284 const char* shrunk_checksum_set_media_box = []() {
286 return "9f28f0610a7f789c24cfd5f9bd5dc3de";
288 return "eab5958f62f7ce65d7c32de98389fee1";
292 ASSERT_TRUE(OpenDocument(
"rectangles.pdf"));
293 ScopedEmbedderTestPage page = LoadScopedPage(0);
299 EXPECT_FALSE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
300 &mediabox.bottom, &mediabox.right,
302 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
303 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
304 EXPECT_EQ(200, page_width);
305 EXPECT_EQ(300, page_height);
306 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
307 CompareBitmap(bitmap.get(), page_width, page_height,
311 FPDFPage_SetMediaBox(page.get(), 20, 30, 100, 150);
318 EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
319 &mediabox.bottom, &mediabox.right,
321 EXPECT_EQ(20, mediabox.left);
322 EXPECT_EQ(30, mediabox.bottom);
323 EXPECT_EQ(100, mediabox.right);
324 EXPECT_EQ(150, mediabox.top);
325 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
326 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
327 EXPECT_EQ(80, page_width);
328 EXPECT_EQ(120, page_height);
329 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
330 CompareBitmap(bitmap.get(), page_width, page_height,
331 shrunk_checksum_set_media_box);
338 EXPECT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
339 ASSERT_TRUE(OpenSavedDocument());
340 FPDF_PAGE saved_page = LoadSavedPage(0);
341 ASSERT_TRUE(saved_page);
345 &mediabox.bottom
, &mediabox.right
,
347 EXPECT_EQ(20, mediabox.left);
348 EXPECT_EQ(30, mediabox.bottom);
349 EXPECT_EQ(100, mediabox.right);
350 EXPECT_EQ(150, mediabox.top);
353 EXPECT_EQ(80, page_width);
354 EXPECT_EQ(120, page_height);
355 ScopedFPDFBitmap bitmap = RenderSavedPage(saved_page);
356 CompareBitmap(bitmap.get(), page_width, page_height,
357 shrunk_checksum_set_media_box);
359 CloseSavedPage(saved_page);
360 CloseSavedDocument();
417 ASSERT_TRUE(OpenDocument(
"rectangles.pdf"));
418 ScopedEmbedderTestPage page = LoadScopedPage(0);
423 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
424 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
425 EXPECT_EQ(200, page_width);
426 EXPECT_EQ(300, page_height);
427 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
428 CompareBitmap(bitmap.get(), page_width, page_height,
438 const FS_MATRIX half_matrix{0.5, 0, 0, 0.5, 0, 0};
440 FPDFPage_TransFormWithClip(page.get(), &half_matrix,
nullptr));
441 const int page_width =
static_cast<
int>(FPDF_GetPageWidth(page.get()));
442 const int page_height =
static_cast<
int>(FPDF_GetPageHeight(page.get()));
443 EXPECT_EQ(200, page_width);
444 EXPECT_EQ(300, page_height);
445 ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
446 CompareBitmap(bitmap.get(), page_width, page_height,
454 EXPECT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
455 ASSERT_TRUE(OpenSavedDocument());
456 FPDF_PAGE saved_page = LoadSavedPage(0);
457 ASSERT_TRUE(saved_page);
461 EXPECT_EQ(200, page_width);
462 EXPECT_EQ(300, page_height);
463 ScopedFPDFBitmap bitmap = RenderSavedPage(saved_page);
464 CompareBitmap(bitmap.get(), page_width, page_height, ShrunkChecksum());
466 CloseSavedPage(saved_page);
467 CloseSavedDocument();