summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/fpdf_flatten.cpp21
-rw-r--r--fpdfsdk/fpdf_ppo.cpp8
2 files changed, 10 insertions, 19 deletions
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index ea701d9e1e..de396667f5 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -251,7 +251,6 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
if (iRet == FLATTEN_NOTHINGTODO || iRet == FLATTEN_FAIL)
return iRet;
- CFX_FloatRect rcOriginalCB;
CFX_FloatRect rcMerger = CalculateRect(&RectArray);
CFX_FloatRect rcOriginalMB =
pPageDict->GetRectFor(pdfium::page_object::kMediaBox);
@@ -261,20 +260,19 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
if (rcOriginalMB.IsEmpty())
rcOriginalMB = CFX_FloatRect(0.0f, 0.0f, 612.0f, 792.0f);
+ CFX_FloatRect rcOriginalCB;
+ if (pPageDict->KeyExist(pdfium::page_object::kCropBox))
+ rcOriginalCB = pPageDict->GetRectFor(pdfium::page_object::kCropBox);
+ if (rcOriginalCB.IsEmpty())
+ rcOriginalCB = rcOriginalMB;
+
rcMerger.left = std::max(rcMerger.left, rcOriginalMB.left);
rcMerger.right = std::min(rcMerger.right, rcOriginalMB.right);
rcMerger.bottom = std::max(rcMerger.bottom, rcOriginalMB.bottom);
rcMerger.top = std::min(rcMerger.top, rcOriginalMB.top);
- if (pPageDict->KeyExist("ArtBox"))
- rcOriginalCB = pPageDict->GetRectFor("ArtBox");
- else
- rcOriginalCB = rcOriginalMB;
-
- if (!rcOriginalMB.IsEmpty())
- pPageDict->SetRectFor(pdfium::page_object::kMediaBox, rcOriginalMB);
- if (!rcOriginalCB.IsEmpty())
- pPageDict->SetRectFor("ArtBox", rcOriginalCB);
+ pPageDict->SetRectFor(pdfium::page_object::kMediaBox, rcOriginalMB);
+ pPageDict->SetRectFor(pdfium::page_object::kCropBox, rcOriginalCB);
CPDF_Dictionary* pRes =
pPageDict->GetDictFor(pdfium::page_object::kResources);
@@ -314,8 +312,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
pNewOXbjectDic->SetNewFor<CPDF_Name>("Type", "XObject");
pNewOXbjectDic->SetNewFor<CPDF_Name>("Subtype", "Form");
pNewOXbjectDic->SetNewFor<CPDF_Number>("FormType", 1);
- CFX_FloatRect rcBBox = pPageDict->GetRectFor(pdfium::page_object::kArtBox);
- pNewOXbjectDic->SetRectFor("BBox", rcBBox);
+ pNewOXbjectDic->SetRectFor("BBox", rcOriginalCB);
}
for (size_t i = 0; i < ObjectArray.size(); ++i) {
diff --git a/fpdfsdk/fpdf_ppo.cpp b/fpdfsdk/fpdf_ppo.cpp
index 8f0b0c3d79..fd270d997c 100644
--- a/fpdfsdk/fpdf_ppo.cpp
+++ b/fpdfsdk/fpdf_ppo.cpp
@@ -185,12 +185,6 @@ CFX_FloatRect GetCropBox(const CPDF_Dictionary* pPageDict) {
return GetMediaBox(pPageDict);
}
-CFX_FloatRect GetTrimBox(const CPDF_Dictionary* pPageDict) {
- if (pPageDict->KeyExist("TrimBox"))
- return pPageDict->GetRectFor("TrimBox");
- return GetCropBox(pPageDict);
-}
-
const CPDF_Object* GetPageOrganizerPageContent(
const CPDF_Dictionary* pPageDict) {
return pPageDict
@@ -702,7 +696,7 @@ uint32_t CPDF_NPageToOneExporter::MakeXObject(
pNewXObjectDict->SetNewFor<CPDF_Name>("Type", "XObject");
pNewXObjectDict->SetNewFor<CPDF_Name>("Subtype", "Form");
pNewXObjectDict->SetNewFor<CPDF_Number>("FormType", 1);
- pNewXObjectDict->SetRectFor("BBox", GetTrimBox(pSrcPageDict));
+ pNewXObjectDict->SetRectFor("BBox", GetCropBox(pSrcPageDict));
// TODO(xlou): add matrix field to pNewXObjectDict.
if (const CPDF_Array* pSrcContentArray = ToArray(pSrcContentObj)) {