summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2018-09-11 21:41:19 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2018-09-12 09:06:57 +0200
commit1b267db43b35cc0dcd6d50712efe52ed32fa6e7b (patch)
tree25d26d2fa6d63160c341cd1e80fdb4487941263a /external
parent5fe2c43a94c6d90090809c08e39af58a44974c26 (diff)
pdfium: replace FPDFFormObj_GetMatrix patch with backport
Change-Id: Ic819fb1097986437cae99f4769bd93f20b6db44a Reviewed-on: https://gerrit.libreoffice.org/60358 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'external')
-rw-r--r--external/pdfium/0001-Add-FPDFFormObj_GetMatrix-API.patch.196
-rw-r--r--external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.22
-rw-r--r--external/pdfium/0004-svx-support-PDF-text-color.patch.246
-rw-r--r--external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.291
-rw-r--r--external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.241
-rw-r--r--external/pdfium/UnpackedTarball_pdfium.mk5
6 files changed, 99 insertions, 182 deletions
diff --git a/external/pdfium/0001-Add-FPDFFormObj_GetMatrix-API.patch.1 b/external/pdfium/0001-Add-FPDFFormObj_GetMatrix-API.patch.1
new file mode 100644
index 000000000000..a7661b9e507b
--- /dev/null
+++ b/external/pdfium/0001-Add-FPDFFormObj_GetMatrix-API.patch.1
@@ -0,0 +1,96 @@
+From 46b437333e53295869afde696ed31043c1f6c717 Mon Sep 17 00:00:00 2001
+Date: Tue, 14 Aug 2018 19:15:43 +0000
+Subject: [PATCH] Add FPDFFormObj_GetMatrix() API
+
+This is similar to FPDFText_GetMatrix() (wrapping
+CPDF_TextObject::GetTextMatrix()) and FPDFPath_GetMatrix() (wrapping
+CPDF_PathObject::m_Matrix), but wraps the matrix of form objects:
+CPDF_FormObject::form_matrix().
+
+Change-Id: Ic4ce7ad8050012f54de356bb936263d3e4f097ca
+Reviewed-on: https://pdfium-review.googlesource.com/39930
+Commit-Queue: Lei Zhang <thestig@chromium.org>
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
+---
+ fpdfsdk/fpdf_edit_embeddertest.cpp | 34 ++++++++++++++++++++++++++++++++++
+ fpdfsdk/fpdf_editpage.cpp | 27 +++++++++++++++++++++++++++
+ fpdfsdk/fpdf_view_c_api_test.c | 1 +
+ public/fpdf_edit.h | 26 ++++++++++++++++++++++++++
+ 4 files changed, 88 insertions(+)
+
+diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
+index 438a0624f..0ff7a119a 100644
+--- a/fpdfsdk/fpdf_editpage.cpp
++++ b/fpdfsdk/fpdf_editpage.cpp
+@@ -842,3 +842,30 @@ FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index) {
+ return FPDFPageObjectFromCPDFPageObject(
+ pObjectList->GetPageObjectByIndex(index));
+ }
++
++FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
++FPDFFormObj_GetMatrix(FPDF_PAGEOBJECT form_object,
++ double* a,
++ double* b,
++ double* c,
++ double* d,
++ double* e,
++ double* f) {
++ if (!form_object || !a || !b || !c || !d || !e || !f)
++ return false;
++
++ auto* pPageObj = CPDFPageObjectFromFPDFPageObject(form_object);
++ CPDF_FormObject* pFormObj = pPageObj->AsForm();
++ if (!pFormObj)
++ return false;
++
++ const CFX_Matrix& matrix = pFormObj->form_matrix();
++ *a = matrix.a;
++ *b = matrix.b;
++ *c = matrix.c;
++ *d = matrix.d;
++ *e = matrix.e;
++ *f = matrix.f;
++
++ return true;
++}
+diff --git a/public/fpdf_edit.h b/public/fpdf_edit.h
+index 83fedba90..577ae7fac 100644
+--- a/public/fpdf_edit.h
++++ b/public/fpdf_edit.h
+@@ -1313,6 +1313,32 @@ FPDFFormObj_CountObjects(FPDF_PAGEOBJECT form_object);
+ FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
+ FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index);
+
++// Experimental API.
++// Get the transform matrix of a form object.
++//
++// form_object - handle to a form.
++// a - pointer to out variable to receive matrix value.
++// b - pointer to out variable to receive matrix value.
++// c - pointer to out variable to receive matrix value.
++// d - pointer to out variable to receive matrix value.
++// e - pointer to out variable to receive matrix value.
++// f - pointer to out variable to receive matrix value.
++//
++// The matrix is composed as:
++// |a c e|
++// |b d f|
++// and used to scale, rotate, shear and translate the form object.
++//
++// Returns TRUE on success.
++FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
++FPDFFormObj_GetMatrix(FPDF_PAGEOBJECT form_object,
++ double* a,
++ double* b,
++ double* c,
++ double* d,
++ double* e,
++ double* f);
++
+ #ifdef __cplusplus
+ } // extern "C"
+ #endif // __cplusplus
+--
+2.16.4
+
diff --git a/external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.2 b/external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.2
index 21c3d007fb3d..c6dd469c07a9 100644
--- a/external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.2
+++ b/external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.2
@@ -33,7 +33,7 @@ index fed1581..3f400c7 100644
+ RetainPtr<CFX_DIBitmap> pBitmap;
+ pBitmap = pSource->CloneConvert(FXDIB_Argb);
+
-+ return pBitmap.Leak();
++ return FPDFBitmapFromCFXDIBitmap(pBitmap.Leak());
+}
+
FPDF_EXPORT unsigned long FPDF_CALLCONV
diff --git a/external/pdfium/0004-svx-support-PDF-text-color.patch.2 b/external/pdfium/0004-svx-support-PDF-text-color.patch.2
deleted file mode 100644
index cffb8fb80530..000000000000
--- a/external/pdfium/0004-svx-support-PDF-text-color.patch.2
+++ /dev/null
@@ -1,46 +0,0 @@
-From 914467a56b9c4cd6a27cfa9b7ed61ebfb5a122d3 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:29:49 +0200
-Subject: [PATCH 04/14] svx: support PDF text color
-
----
- pdfium/fpdfsdk/cpdfsdk_helpers.h | 5 +++++
- pdfium/fpdfsdk/fpdf_editpage.cpp | 30 +++++++++++++++++++++++++-----
- pdfium/public/fpdf_edit.h | 16 ++++++++++++++++
- 3 files changed, 46 insertions(+), 5 deletions(-)
-
-diff --git a/pdfium/fpdfsdk/cpdfsdk_helpers.h b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-index d93ecfc..13362cf 100644
---- a/pdfium/fpdfsdk/cpdfsdk_helpers.h
-+++ b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-@@ -204,6 +204,11 @@ inline CPDF_TextPageFind* CPDFTextPageFindFromFPDFSchHandle(
- return reinterpret_cast<CPDF_TextPageFind*>(handle);
- }
-
-+inline CPDF_TextObject* CPDFTextObjectFromFPDFPageObject(
-+ FPDF_PAGEOBJECT page_object) {
-+ return reinterpret_cast<CPDF_TextObject*>(page_object);
-+}
-+
- ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
-
- #ifdef PDF_ENABLE_XFA
-diff --git a/pdfium/fpdfsdk/fpdf_edittext.cpp b/pdfium/fpdfsdk/fpdf_edittext.cpp
-index c38873faa..aa3287ef4 100644
---- a/pdfium/fpdfsdk/fpdf_edittext.cpp
-+++ b/pdfium/fpdfsdk/fpdf_edittext.cpp
-@@ -398,11 +398,6 @@ CPDF_Font* LoadCompositeFont(CPDF_Document* pDoc,
- return pDoc->LoadFont(fontDict);
- }
-
--CPDF_TextObject* CPDFTextObjectFromFPDFPageObject(FPDF_PAGEOBJECT page_object) {
-- auto* obj = CPDFPageObjectFromFPDFPageObject(page_object);
-- return obj ? obj->AsText() : nullptr;
--}
--
- } // namespace
-
- FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
---
-2.16.3
-
diff --git a/external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.2 b/external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.2
deleted file mode 100644
index db6057899bc7..000000000000
--- a/external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.2
+++ /dev/null
@@ -1,91 +0,0 @@
-From c82f6e80d94f8598221009035c8f336f5f656333 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:35:14 +0200
-Subject: [PATCH 11/14] svx: correctly possition form objects from PDF
-
----
- pdfium/fpdfsdk/fpdf_editpage.cpp | 25 +++++++++++++++++++++++++
- pdfium/public/fpdf_edit.h | 18 ++++++++++++++++++
- 2 files changed, 43 insertions(+)
-
-diff --git a/pdfium/fpdfsdk/cpdfsdk_helpers.h b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-index 13362cf..477bb74 100644
---- a/pdfium/fpdfsdk/cpdfsdk_helpers.h
-+++ b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-@@ -209,6 +209,11 @@ inline CPDF_TextObject* CPDFTextObjectFromFPDFPageObject(
- return reinterpret_cast<CPDF_TextObject*>(page_object);
- }
-
-+inline CPDF_FormObject* CPDFFormObjectFromFPDFPageObject(
-+ FPDF_PAGEOBJECT page_object) {
-+ return reinterpret_cast<CPDF_FormObject*>(page_object);
-+}
-+
- ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
-
- #ifdef PDF_ENABLE_XFA
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index bf68250..f4a1688 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -688,3 +688,28 @@ FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index) {
- return FPDFPageObjectFromCPDFPageObject(
- pObjectList->GetPageObjectByIndex(index));
- }
-+
-+FPDF_EXPORT void FPDF_CALLCONV
-+FPDFFormObj_GetMatrix(FPDF_PAGEOBJECT form_object,
-+ double* a,
-+ double* b,
-+ double* c,
-+ double* d,
-+ double* e,
-+ double* f)
-+{
-+ if (!form_object || !a || !b || !c || !d || !e || !f)
-+ return;
-+
-+ CPDF_FormObject* pFrmObj = CPDFFormObjectFromFPDFPageObject(form_object);
-+ if (pFrmObj)
-+ {
-+ const CFX_Matrix& matrix = pFrmObj->form_matrix();
-+ *a = matrix.a;
-+ *b = matrix.b;
-+ *c = matrix.c;
-+ *d = matrix.d;
-+ *e = matrix.e;
-+ *f = matrix.f;
-+ }
-+}
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index ca76954..f249e64 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1190,6 +1190,24 @@ FPDFFormObj_CountObjects(FPDF_PAGEOBJECT form_object);
- FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
- FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index);
-
-+// Get the matrix of a particular form object.
-+//
-+// form_object - Handle of form object
-+// a - Pointer to a double value receiving coefficient "a" of the matrix.
-+// b - Pointer to a double value receiving coefficient "b" of the matrix.
-+// c - Pointer to a double value receiving coefficient "c" of the matrix.
-+// d - Pointer to a double value receiving coefficient "d" of the matrix.
-+// e - Pointer to a double value receiving coefficient "e" of the matrix.
-+// f - Pointer to a double value receiving coefficient "f" of the matrix.
-+FPDF_EXPORT void FPDF_CALLCONV
-+FPDFFormObj_GetMatrix(FPDF_PAGEOBJECT form_object,
-+ double* a,
-+ double* b,
-+ double* c,
-+ double* d,
-+ double* e,
-+ double* f);
-+
- #ifdef __cplusplus
- } // extern "C"
- #endif // __cplusplus
---
-2.16.3
-
diff --git a/external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.2 b/external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.2
deleted file mode 100644
index 3c53a2772e05..000000000000
--- a/external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.2
+++ /dev/null
@@ -1,41 +0,0 @@
-From f701ff3ce04a4e7e757a9f3ee62b4967749455dd Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
-Date: Tue, 5 Jun 2018 14:27:55 +0200
-Subject: [PATCH 14/14] svx: update PDFium patch and code
-
----
- pdfium/fpdfsdk/cpdfsdk_helpers.h | 2 ++
- pdfium/fpdfsdk/fpdf_editimg.cpp | 2 +-
- pdfium/fpdfsdk/fpdf_editpage.cpp | 19 ++++++++++++-------
- pdfium/public/fpdf_edit.h | 16 ++++++++--------
- 4 files changed, 23 insertions(+), 16 deletions(-)
-
-diff --git a/pdfium/fpdfsdk/cpdfsdk_helpers.h b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-index 477bb74..c907ad8 100644
---- a/pdfium/fpdfsdk/cpdfsdk_helpers.h
-+++ b/pdfium/fpdfsdk/cpdfsdk_helpers.h
-@@ -40,6 +40,8 @@ class CPDF_TextPage;
- class CPDF_TextPageFind;
- class IPDFSDK_PauseAdapter;
- class FX_PATHPOINT;
-+class CPDF_TextObject;
-+class CPDF_FormObject;
-
- #ifdef PDF_ENABLE_XFA
- class CPDFXFA_Context;
-diff --git a/pdfium/fpdfsdk/fpdf_editimg.cpp b/pdfium/fpdfsdk/fpdf_editimg.cpp
-index 3f400c7..968b84a 100644
---- a/pdfium/fpdfsdk/fpdf_editimg.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editimg.cpp
-@@ -203,7 +203,7 @@ FPDFImageObj_GetBitmapBgra(FPDF_PAGEOBJECT image_object) {
- RetainPtr<CFX_DIBitmap> pBitmap;
- pBitmap = pSource->CloneConvert(FXDIB_Argb);
-
-- return pBitmap.Leak();
-+ return FPDFBitmapFromCFXDIBitmap(pBitmap.Leak());
- }
-
- FPDF_EXPORT unsigned long FPDF_CALLCONV
---
-2.16.3
-
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk
index 0357fdfd4ec1..5d7708ade96c 100644
--- a/external/pdfium/UnpackedTarball_pdfium.mk
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -25,10 +25,9 @@ pdfium_patches += 0001-Add-FPDFFormObj_GetObject-API.patch.1
pdfium_patches += 0001-Add-FPDFText_GetFontName-API.patch.1
# Backport of <https://pdfium-review.googlesource.com/39530>.
pdfium_patches += 0001-Add-FPDFTextObj_GetText-API.patch.1
+# Backport of <https://pdfium-review.googlesource.com/39930>.
+pdfium_patches += 0001-Add-FPDFFormObj_GetMatrix-API.patch.1
pdfium_patches += 0003-svx-import-PDF-images-as-BGRA.patch.2
-pdfium_patches += 0004-svx-support-PDF-text-color.patch.2
-pdfium_patches += 0011-svx-correctly-possition-form-objects-from-PDF.patch.2
-pdfium_patches += 0014-svx-update-PDFium-patch-and-code.patch.2
$(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))