Index: fpdfsdk/src/fpdf_transformpage.cpp |
diff --git a/fpdfsdk/src/fpdf_transformpage.cpp b/fpdfsdk/src/fpdf_transformpage.cpp |
index 71ba48e04279fbc50ad5da3fb10683a2780956e2..d86634e579948d3d98ec737ac5e5f96775699e32 100644 |
--- a/fpdfsdk/src/fpdf_transformpage.cpp |
+++ b/fpdfsdk/src/fpdf_transformpage.cpp |
@@ -7,6 +7,43 @@ |
#include "../../public/fpdf_transformpage.h" |
#include "../include/fsdk_define.h" |
+namespace { |
+ |
+void SetBoundingBox(CPDF_Page* page, |
+ const CFX_ByteStringC& key, |
+ float left, |
+ float bottom, |
+ float right, |
+ float top) { |
+ CPDF_Dictionary* pPageDict = page->m_pFormDict; |
+ CPDF_Array* pBoundingBoxArray = new CPDF_Array; |
+ pBoundingBoxArray->Add(new CPDF_Number(left)); |
+ pBoundingBoxArray->Add(new CPDF_Number(bottom)); |
+ pBoundingBoxArray->Add(new CPDF_Number(right)); |
+ pBoundingBoxArray->Add(new CPDF_Number(top)); |
+ pPageDict->SetAt(key, pBoundingBoxArray); |
+} |
+ |
+FPDF_BOOL GetBoundingBox(CPDF_Page* page, |
+ const CFX_ByteStringC& key, |
+ float* left, |
+ float* bottom, |
+ float* right, |
+ float* top) { |
+ CPDF_Dictionary* pPageDict = page->m_pFormDict; |
+ CPDF_Array* pArray = pPageDict->GetArray(key); |
+ if (!pArray) |
+ return FALSE; |
+ |
+ *left = pArray->GetFloat(0); |
+ *bottom = pArray->GetFloat(1); |
+ *right = pArray->GetFloat(2); |
+ *top = pArray->GetFloat(3); |
+ return TRUE; |
+} |
+ |
+} // namespace |
+ |
DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page, |
float left, |
float bottom, |
@@ -15,14 +52,8 @@ DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page, |
if (!page) |
return; |
- CPDF_Page* pPage = (CPDF_Page*)page; |
- CPDF_Dictionary* pPageDict = pPage->m_pFormDict; |
- CPDF_Array* pMediaBoxArray = new CPDF_Array; |
- pMediaBoxArray->Add(new CPDF_Number(left)); |
- pMediaBoxArray->Add(new CPDF_Number(bottom)); |
- pMediaBoxArray->Add(new CPDF_Number(FX_FLOAT(right))); |
- pMediaBoxArray->Add(new CPDF_Number(FX_FLOAT(top))); |
- pPageDict->SetAt("MediaBox", pMediaBoxArray); |
+ SetBoundingBox(static_cast<CPDF_Page*>(page), "MediaBox", left, bottom, right, |
+ top); |
} |
DLLEXPORT void STDCALL FPDFPage_SetCropBox(FPDF_PAGE page, |
@@ -33,14 +64,8 @@ DLLEXPORT void STDCALL FPDFPage_SetCropBox(FPDF_PAGE page, |
if (!page) |
return; |
- CPDF_Page* pPage = (CPDF_Page*)page; |
- CPDF_Dictionary* pPageDict = pPage->m_pFormDict; |
- CPDF_Array* pCropBoxArray = new CPDF_Array; |
- pCropBoxArray->Add(new CPDF_Number(left)); |
- pCropBoxArray->Add(new CPDF_Number(bottom)); |
- pCropBoxArray->Add(new CPDF_Number(FX_FLOAT(right))); |
- pCropBoxArray->Add(new CPDF_Number(FX_FLOAT(top))); |
- pPageDict->SetAt("CropBox", pCropBoxArray); |
+ SetBoundingBox(static_cast<CPDF_Page*>(page), "CropBox", left, bottom, right, |
+ top); |
} |
DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(FPDF_PAGE page, |
@@ -50,17 +75,9 @@ DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(FPDF_PAGE page, |
float* top) { |
if (!page) |
return FALSE; |
- CPDF_Page* pPage = (CPDF_Page*)page; |
- CPDF_Dictionary* pPageDict = pPage->m_pFormDict; |
- CPDF_Array* pArray = pPageDict->GetArray("MediaBox"); |
- if (pArray) { |
- *left = pArray->GetFloat(0); |
- *bottom = pArray->GetFloat(1); |
- *right = pArray->GetFloat(2); |
- *top = pArray->GetFloat(3); |
- return TRUE; |
- } |
- return FALSE; |
+ |
+ return GetBoundingBox(static_cast<CPDF_Page*>(page), "MediaBox", left, bottom, |
+ right, top); |
} |
DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(FPDF_PAGE page, |
@@ -70,17 +87,9 @@ DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(FPDF_PAGE page, |
float* top) { |
if (!page) |
return FALSE; |
- CPDF_Page* pPage = (CPDF_Page*)page; |
- CPDF_Dictionary* pPageDict = pPage->m_pFormDict; |
- CPDF_Array* pArray = pPageDict->GetArray("CropBox"); |
- if (pArray) { |
- *left = pArray->GetFloat(0); |
- *bottom = pArray->GetFloat(1); |
- *right = pArray->GetFloat(2); |
- *top = pArray->GetFloat(3); |
- return TRUE; |
- } |
- return FALSE; |
+ |
+ return GetBoundingBox(static_cast<CPDF_Page*>(page), "CropBox", left, bottom, |
Tom Sepez
2015/09/29 21:22:35
nit: the really cool kids might have written
retu
Lei Zhang
2015/09/29 21:34:12
sure.
|
+ right, top); |
} |
DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(FPDF_PAGE page, |