[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - download.lst external/pdfium svx/source
Miklos Vajna (via logerrit)
logerrit at kemper.freedesktop.org
Thu Dec 17 12:56:24 UTC 2020
download.lst | 4
external/pdfium/0002-svx-more-accurate-PDF-text-importing.patch.2 | 82 -----
external/pdfium/0003-svx-import-PDF-images-as-BGRA.patch.2 | 4
external/pdfium/0004-svx-support-PDF-text-color.patch.2 | 119 --------
external/pdfium/0009-svx-support-color-text-for-imported-PDFs.patch.2 | 100 ------
external/pdfium/0010-svx-support-importing-forms-from-PDFs.patch.2 | 94 ------
external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.2 | 75 -----
external/pdfium/0012-svx-import-processed-PDF-text.patch.2 | 148 ----------
external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.2 | 83 -----
external/pdfium/0015-svx-set-the-font-name-of-imported-PDF-text.patch.2 | 77 -----
external/pdfium/Library_pdfium.mk | 37 +-
external/pdfium/UnpackedTarball_pdfium.mk | 11
external/pdfium/build.patch.1 | 6
svx/source/svdraw/svdpdf.cxx | 48 ++-
14 files changed, 67 insertions(+), 821 deletions(-)
New commits:
commit 8024c3c7cf3c681ec23348db7dc8fee1759d9128
Author: Miklos Vajna <vmiklos at collabora.co.uk>
AuthorDate: Tue Sep 18 21:07:10 2018 +0200
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Thu Dec 17 13:55:51 2020 +0100
pdfium: update to 3550
Allows dropping all the backports, so only one custom API patch remains.
(cherry picked from commit 56ac8214ab35387f8861044b62c79fae6d7ccac5)
[ This brings pdfium to the same version as cp-6.2, ignoring recent
changes. ]
Conflicts:
external/pdfium/UnpackedTarball_pdfium.mk
Change-Id: I13dc4f62be86d0859862cbd95bb14e07bbcf53d6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107866
Tested-by: Miklos Vajna <vmiklos at collabora.com>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/download.lst b/download.lst
index 37c69be838d2..ac943bfadb04 100644
--- a/download.lst
+++ b/download.lst
@@ -214,8 +214,8 @@ export OWNCLOUD_ANDROID_LIB_SHA256SUM := b18b3e3ef7fae6a79b62f2bb43cc47a5346b633
export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz
export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d
export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz
-export PDFIUM_SHA256SUM := 4acbc905fee1743e96169ca155347a81fb2b0f381281109c1860aa4408ec6c4f
-export PDFIUM_TARBALL := pdfium-3471.tar.bz2
+export PDFIUM_SHA256SUM := 572460f7f9e2f86d022a9c6a82f1e2ded6c3c29ba352d4b9fac60b87e2159679
+export PDFIUM_TARBALL := pdfium-3550.tar.bz2
export PIXMAN_SHA256SUM := 21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e
export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz
export LIBPNG_SHA256SUM := 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca
diff --git a/external/pdfium/0002-svx-more-accurate-PDF-text-importing.patch.2 b/external/pdfium/0002-svx-more-accurate-PDF-text-importing.patch.2
deleted file mode 100644
index ef6649b5f4cb..000000000000
--- a/external/pdfium/0002-svx-more-accurate-PDF-text-importing.patch.2
+++ /dev/null
@@ -1,82 +0,0 @@
-From 5f83d0a3fac4f8ccef457c03b74433ffd7b12e2a Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:28:30 +0200
-Subject: [PATCH 02/14] svx: more accurate PDF text importing
-
----
- pdfium/fpdfsdk/fpdf_editpage.cpp | 84 ++++++++++++++++++++++++++++++++++++++++
- pdfium/public/fpdf_edit.h | 36 +++++++++++++++++
- 2 files changed, 120 insertions(+)
-
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index 912df63..3244943 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -13,6 +13,7 @@
-
- #include "constants/page_object.h"
- #include "core/fpdfapi/edit/cpdf_pagecontentgenerator.h"
-+#include "core/fpdfapi/font/cpdf_font.h"
- #include "core/fpdfapi/page/cpdf_form.h"
- #include "core/fpdfapi/page/cpdf_formobject.h"
- #include "core/fpdfapi/page/cpdf_imageobject.h"
-@@ -440,6 +441,26 @@ FPDFPageObj_Transform(FPDF_PAGEOBJECT page_object,
- pPageObj->Transform(matrix);
- }
-
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_CountChars(FPDF_PAGEOBJECT text_object)
-+{
-+ if (!text_object)
-+ return 0;
-+
-+ CPDF_TextObject* pTxtObj = static_cast<CPDF_TextObject*>(text_object);
-+ return pTxtObj->CountChars();
-+}
-+
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object)
-+{
-+ if (!text_object)
-+ return 0;
-+
-+ CPDF_TextObject* pTxtObj = static_cast<CPDF_TextObject*>(text_object);
-+ return pTxtObj->GetFontSize();
-+}
-+
- FPDF_EXPORT void FPDF_CALLCONV
- FPDFPageObj_SetBlendMode(FPDF_PAGEOBJECT page_object,
- FPDF_BYTESTRING blend_mode) {
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1107,6 +1107,26 @@ FPDFPageObj_CreateTextObj(FPDF_DOCUMENT document,
- FPDF_FONT font,
- float font_size);
-
-+// Get the number of characters from a text object.
-+//
-+// text_object - Handle of text object returned by FPDFPageObj_NewTextObj
-+// or FPDFPageObj_NewTextObjEx.
-+// Return Value:
-+// A character count in the text object.
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_CountChars(FPDF_PAGEOBJECT text_object);
-+
-+
-+// Get the font size of a text object.
-+//
-+// text_object - Handle of text object returned by FPDFPageObj_NewTextObj
-+// or FPDFPageObj_NewTextObjEx.
-+//
-+// Return Value:
-+// The value of the font size
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object);
-+
- #ifdef __cplusplus
- } // extern "C"
- #endif // __cplusplus
---
-2.16.3
-
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..08b272526578 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
@@ -26,14 +26,14 @@ index fed1581..3f400c7 100644
+ if (!pImg)
+ return nullptr;
+
-+ RetainPtr<CFX_DIBSource> pSource = pImg->LoadDIBSource();
++ RetainPtr<CFX_DIBBase> pSource = pImg->LoadDIBBase();
+ if (!pSource)
+ return nullptr;
+
+ 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 a99f8f5966dd..000000000000
--- a/external/pdfium/0004-svx-support-PDF-text-color.patch.2
+++ /dev/null
@@ -1,119 +0,0 @@
-From 914467a56b9c4cd6a27cfa9b7ed61ebfb5a122d3 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at 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_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index 3244943..f8e2418 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -443,7 +443,7 @@ FPDFTextObj_CountChars(FPDF_PAGEOBJECT text_object)
- if (!text_object)
- return 0;
-
-- CPDF_TextObject* pTxtObj = static_cast<CPDF_TextObject*>(text_object);
-+ CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
- return pTxtObj->CountChars();
- }
-
-@@ -453,7 +453,7 @@ FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object)
- if (!text_object)
- return 0;
-
-- CPDF_TextObject* pTxtObj = static_cast<CPDF_TextObject*>(text_object);
-+ CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
- return pTxtObj->GetFontSize();
- }
-
-@@ -645,3 +645,23 @@ FPDFPageObj_SetLineCap(FPDF_PAGEOBJECT page_object, int line_cap) {
- pPageObj->SetDirty(true);
- return true;
- }
-+
-+FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
-+FPDFTextObj_GetStrokeColor(FPDF_PAGEOBJECT text_object,
-+ unsigned int* R,
-+ unsigned int* G,
-+ unsigned int* B,
-+ unsigned int* A)
-+{
-+ CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
-+ if (!pTxtObj || !R || !G || !B || !A)
-+ return false;
-+
-+ const uint32_t strokeRGB = pTxtObj->m_ColorState.GetStrokeRGB();
-+ *R = FXSYS_GetRValue(strokeRGB);
-+ *G = FXSYS_GetGValue(strokeRGB);
-+ *B = FXSYS_GetBValue(strokeRGB);
-+ *A = static_cast<unsigned int>(
-+ (pTxtObj->m_GeneralState.GetStrokeAlpha() * 255.f) + 0.5f);
-+ return true;
-+}
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index 602849f..fa9902e 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1016,6 +1016,22 @@ FPDFTextObj_CountChars(FPDF_PAGEOBJECT text_object);
- FPDF_EXPORT int FPDF_CALLCONV
- FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object);
-
-+// Get the stroke RGBA of a text. Range of values: 0 - 255.
-+//
-+// path - the handle to the path object.
-+// R - the red component of the path stroke color.
-+// G - the green component of the path stroke color.
-+// B - the blue component of the path stroke color.
-+// A - the stroke alpha of the path.
-+//
-+// Returns TRUE on success.
-+FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
-+FPDFTextObj_GetStrokeColor(FPDF_PAGEOBJECT text_object,
-+ unsigned int* R,
-+ unsigned int* G,
-+ unsigned int* B,
-+ unsigned int* A);
-+
- #ifdef __cplusplus
- } // extern "C"
- #endif // __cplusplus
-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/0009-svx-support-color-text-for-imported-PDFs.patch.2 b/external/pdfium/0009-svx-support-color-text-for-imported-PDFs.patch.2
deleted file mode 100644
index c141cc4b58ea..000000000000
--- a/external/pdfium/0009-svx-support-color-text-for-imported-PDFs.patch.2
+++ /dev/null
@@ -1,100 +0,0 @@
-From 32ec9efddb8e1706085478fd8434dd2860840345 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:33:56 +0200
-Subject: [PATCH 09/14] svx: support color text for imported PDFs
-
----
- pdfium/core/fpdfapi/page/cpdf_imageobject.cpp | 2 +-
- pdfium/core/fxge/cfx_pathdata.cpp | 4 +--
- pdfium/fpdfsdk/fpdf_editpage.cpp | 47 ++++++++++++++++++++++-----
- pdfium/public/fpdf_edit.h | 10 +++---
- 4 files changed, 46 insertions(+), 17 deletions(-)
-
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index 2249e8e..9c353a4 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -733,21 +733,50 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFTextObj_GetText(FPDF_PAGEOBJECT text_object,
- }
-
- FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
--FPDFTextObj_GetStrokeColor(FPDF_PAGEOBJECT text_object,
-- unsigned int* R,
-- unsigned int* G,
-- unsigned int* B,
-- unsigned int* A)
-+FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
-+ unsigned int* R,
-+ unsigned int* G,
-+ unsigned int* B,
-+ unsigned int* A)
- {
- CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
- if (!pTxtObj || !R || !G || !B || !A)
- return false;
-
-- const uint32_t strokeRGB = pTxtObj->m_ColorState.GetStrokeRGB();
-- *R = FXSYS_GetRValue(strokeRGB);
-- *G = FXSYS_GetGValue(strokeRGB);
-- *B = FXSYS_GetBValue(strokeRGB);
-+ bool bFill = false;
-+ bool bStroke = false;
-+ CPDF_Font* pFont = pTxtObj->m_TextState.GetFont();
-+ const TextRenderingMode text_render_mode = pTxtObj->m_TextState.GetTextMode();
-+ switch (text_render_mode)
-+ {
-+ case TextRenderingMode::MODE_FILL:
-+ case TextRenderingMode::MODE_FILL_CLIP:
-+ bFill = true;
-+ break;
-+ case TextRenderingMode::MODE_STROKE:
-+ case TextRenderingMode::MODE_STROKE_CLIP:
-+ if (pFont->GetFace())
-+ bStroke = true;
-+ else
-+ bFill = true;
-+ break;
-+ case TextRenderingMode::MODE_FILL_STROKE:
-+ case TextRenderingMode::MODE_FILL_STROKE_CLIP:
-+ bFill = true;
-+ if (pFont->GetFace())
-+ bStroke = true;
-+ break;
-+ case TextRenderingMode::MODE_INVISIBLE:
-+ case TextRenderingMode::MODE_CLIP:
-+ return false;
-+ }
-+
-+ const uint32_t RGB = bStroke ? pTxtObj->m_ColorState.GetStrokeRGB() : pTxtObj->m_ColorState.GetFillRGB();
-+ *R = FXSYS_GetRValue(RGB);
-+ *G = FXSYS_GetGValue(RGB);
-+ *B = FXSYS_GetBValue(RGB);
- *A = static_cast<unsigned int>(
- (pTxtObj->m_GeneralState.GetStrokeAlpha() * 255.f) + 0.5f);
-+
- return true;
- }
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index fc906f4..4264ccd 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1075,11 +1075,11 @@ FPDFTextObj_GetText(FPDF_PAGEOBJECT text_object,
- //
- // Returns TRUE on success.
- FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
--FPDFTextObj_GetStrokeColor(FPDF_PAGEOBJECT text_object,
-- unsigned int* R,
-- unsigned int* G,
-- unsigned int* B,
-- unsigned int* A);
-+FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
-+ unsigned int* R,
-+ unsigned int* G,
-+ unsigned int* B,
-+ unsigned int* A);
-
- #ifdef __cplusplus
- } // extern "C"
---
-2.16.3
-
diff --git a/external/pdfium/0010-svx-support-importing-forms-from-PDFs.patch.2 b/external/pdfium/0010-svx-support-importing-forms-from-PDFs.patch.2
deleted file mode 100644
index f0b09bbf7abf..000000000000
--- a/external/pdfium/0010-svx-support-importing-forms-from-PDFs.patch.2
+++ /dev/null
@@ -1,94 +0,0 @@
-From 636f92aac24f0accfbce910c9153d5479e097e5f Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:34:38 +0200
-Subject: [PATCH 10/14] svx: support importing forms from PDFs
-
----
- pdfium/fpdfsdk/cpdfsdk_helpers.h | 5 +++++
- pdfium/fpdfsdk/fpdf_editpage.cpp | 30 ++++++++++++++++++++++++++++++
- pdfium/public/fpdf_edit.h | 17 +++++++++++++++++
- 3 files changed, 52 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 9c353a4..bf68250 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -704,3 +704,31 @@ FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
-
- return true;
- }
-+
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFFormObj_CountSubObjects(FPDF_PAGEOBJECT form_object)
-+{
-+ CPDF_FormObject* pFrmObj = CPDFFormObjectFromFPDFPageObject(form_object);
-+ if (pFrmObj)
-+ {
-+ const CPDF_PageObjectList* pObjectList = pFrmObj->form()->GetPageObjectList();
-+ if (pObjectList)
-+ return pObjectList->size();
-+ }
-+
-+ return 0;
-+}
-+
-+FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
-+FPDFFormObj_GetSubObject(FPDF_PAGEOBJECT form_object, int index)
-+{
-+ CPDF_FormObject* pFrmObj = CPDFFormObjectFromFPDFPageObject(form_object);
-+ if (pFrmObj)
-+ {
-+ const CPDF_PageObjectList* pObjectList = pFrmObj->form()->GetPageObjectList();
-+ if (pObjectList)
-+ return pObjectList->GetPageObjectByIndex(index);
-+ }
-+
-+ return nullptr;
-+}
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index 4264ccd..ca76954 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1081,6 +1081,23 @@ FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
- unsigned int* B,
- unsigned int* A);
-
-+// Get number of page objects inside the form object.
-+//
-+// form_object - Handle to a form object. Returned by FPDFPage_GetObject.
-+// Return value:
-+// The number of the page objects.
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFFormObj_CountSubObjects(FPDF_PAGEOBJECT form_object);
-+
-+// Get the page object from a form object.
-+//
-+// form_object - Handle to a form object. Returned by FPDFPage_GetObject.
-+// index - The index of a page object.
-+// Return value:
-+// The handle of the page object. Null for failed.
-+FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
-+FPDFFormObj_GetSubObject(FPDF_PAGEOBJECT form_object, int index);
-+
- #ifdef __cplusplus
- } // extern "C"
- #endif // __cplusplus
---
-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 081840e20576..000000000000
--- a/external/pdfium/0011-svx-correctly-possition-form-objects-from-PDF.patch.2
+++ /dev/null
@@ -1,75 +0,0 @@
-From c82f6e80d94f8598221009035c8f336f5f656333 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at 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/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
-@@ -810,3 +810,28 @@ FPDFFormObj_GetSubObject(FPDF_PAGEOBJECT form_object, int index)
-
- return nullptr;
- }
-+
-+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
-@@ -1098,6 +1098,24 @@ FPDFFormObj_CountSubObjects(FPDF_PAGEOBJECT form_object);
- FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
- FPDFFormObj_GetSubObject(FPDF_PAGEOBJECT form_object, int 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/0012-svx-import-processed-PDF-text.patch.2 b/external/pdfium/0012-svx-import-processed-PDF-text.patch.2
deleted file mode 100644
index 008c7047bdfa..000000000000
--- a/external/pdfium/0012-svx-import-processed-PDF-text.patch.2
+++ /dev/null
@@ -1,148 +0,0 @@
-From 7e8ecec81f102993e3fe73256415dcf049c09e29 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
-Date: Tue, 5 Jun 2018 11:35:39 +0200
-Subject: [PATCH 12/14] svx: import processed PDF text
-
----
- pdfium/core/fpdftext/cpdf_textpage.cpp | 29 ++++++++++++++++++++++++
- pdfium/core/fpdftext/cpdf_textpage.h | 2 ++
- pdfium/fpdfsdk/fpdf_editpage.cpp | 41 ++++++++++++++++++++++++++++++++++
- pdfium/public/fpdf_edit.h | 13 +++++++++++
- 4 files changed, 85 insertions(+)
-
-diff --git a/pdfium/core/fpdftext/cpdf_textpage.cpp b/pdfium/core/fpdftext/cpdf_textpage.cpp
-index 5690698..4d7c48a 100644
---- a/pdfium/core/fpdftext/cpdf_textpage.cpp
-+++ b/pdfium/core/fpdftext/cpdf_textpage.cpp
-@@ -1464,3 +1464,32 @@ Optional<PAGECHAR_INFO> CPDF_TextPage::GenerateCharInfo(wchar_t unicode) {
- info.m_Origin.x, info.m_Origin.y);
- return info;
- }
-+
-+WideString CPDF_TextPage::GetTextObjectText(CPDF_TextObject* pTextObj)
-+{
-+ if (!m_bIsParsed)
-+ return WideString();
-+
-+ float posy = 0;
-+ bool IsContainPreChar = false;
-+ bool IsAddLineFeed = false;
-+ WideString strText;
-+ for (const auto& charinfo : m_CharList) {
-+ if (charinfo.m_pTextObj == pTextObj) {
-+ IsContainPreChar = true;
-+ IsAddLineFeed = false;
-+ if (charinfo.m_Unicode)
-+ strText += charinfo.m_Unicode;
-+ } else if (charinfo.m_Unicode == 32) {
-+ if (IsContainPreChar && charinfo.m_Unicode) {
-+ strText += charinfo.m_Unicode;
-+ IsContainPreChar = false;
-+ IsAddLineFeed = false;
-+ }
-+ } else {
-+ IsContainPreChar = false;
-+ IsAddLineFeed = true;
-+ }
-+ }
-+ return strText;
-+}
-diff --git a/pdfium/core/fpdftext/cpdf_textpage.h b/pdfium/core/fpdftext/cpdf_textpage.h
-index 43a0312..7d5d5ec 100644
---- a/pdfium/core/fpdftext/cpdf_textpage.h
-+++ b/pdfium/core/fpdftext/cpdf_textpage.h
-@@ -105,6 +105,8 @@ class CPDF_TextPage {
- WideString GetPageText(int start, int count) const;
- WideString GetAllPageText() const { return GetPageText(0, CountChars()); }
-
-+ WideString GetTextObjectText(CPDF_TextObject* pTextObj);
-+
- int CountRects(int start, int nCount);
- bool GetRect(int rectIndex, CFX_FloatRect* pRect) const;
-
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index f4a1688..f34d3b5 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -26,6 +26,7 @@
- #include "core/fpdfapi/parser/cpdf_string.h"
- #include "core/fpdfdoc/cpdf_annot.h"
- #include "core/fpdfdoc/cpdf_annotlist.h"
-+#include "core/fpdftext/cpdf_textpage.h"
- #include "fpdfsdk/cpdfsdk_helpers.h"
- #include "public/fpdf_formfill.h"
- #include "third_party/base/logging.h"
-@@ -656,6 +657,46 @@ FPDFPageObj_SetLineCap(FPDF_PAGEOBJECT page_object, int line_cap) {
- return true;
- }
-
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetTextProcessed(FPDF_PAGEOBJECT text_object,
-+ FPDF_TEXTPAGE page,
-+ int char_start,
-+ int char_count,
-+ unsigned short* result)
-+{
-+ if (!page || !text_object || char_start < 0 || char_count < 0 || !result)
-+ return 0;
-+
-+ CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
-+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(page);
-+ int char_available = textpage->CountChars() - char_start;
-+ if (char_available <= 0)
-+ return 0;
-+
-+ char_count = std::min(char_count, char_available);
-+ if (char_count == 0) {
-+ // Writing out "", which has a character count of 1 due to the NUL.
-+ *result = '\0';
-+ return 1;
-+ }
-+
-+ WideString str = textpage->GetTextObjectText(pTxtObj);
-+
-+ if (str.GetLength() > static_cast<size_t>(char_count))
-+ str = str.Left(static_cast<size_t>(char_count));
-+
-+ // UFT16LE_Encode doesn't handle surrogate pairs properly, so it is expected
-+ // the number of items to stay the same.
-+ ByteString byte_str = str.UTF16LE_Encode();
-+ size_t byte_str_len = byte_str.GetLength();
-+ constexpr size_t kBytesPerCharacter = sizeof(unsigned short);
-+ int ret_count = byte_str_len / kBytesPerCharacter;
-+
-+ ASSERT(ret_count <= char_count + 1); // +1 to account for the NUL terminator.
-+ memcpy(result, byte_str.GetBuffer(byte_str_len), byte_str_len);
-+ return ret_count;
-+}
-+
- FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
- FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
- unsigned int* R,
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index f249e64..e14b2a5 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1088,6 +1088,19 @@ FPDFTextObj_CountChars(FPDF_PAGEOBJECT text_object);
- FPDF_EXPORT int FPDF_CALLCONV
- FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object);
-
-+// Get the processed text of a text object.
-+//
-+// text_object - Handle of text object returned by FPDFPageObj_NewTextObj
-+// or FPDFPageObj_NewTextObjEx.
-+// Return Value:
-+// The number of characters (not bytes) written in result.
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetTextProcessed(FPDF_PAGEOBJECT text_object,
-+ FPDF_TEXTPAGE page,
-+ int char_start,
-+ int char_count,
-+ unsigned short* result);
-+
- // Get the stroke RGBA of a text. Range of values: 0 - 255.
- //
- // path - the handle to the path object.
---
-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 d56c2ce69e70..000000000000
--- a/external/pdfium/0014-svx-update-PDFium-patch-and-code.patch.2
+++ /dev/null
@@ -1,83 +0,0 @@
-From f701ff3ce04a4e7e757a9f3ee62b4967749455dd Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at 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
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index 29c8b01..a52e1a9 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -693,7 +693,7 @@ FPDFTextObj_GetTextProcessed(FPDF_PAGEOBJECT text_object,
- int ret_count = byte_str_len / kBytesPerCharacter;
-
- ASSERT(ret_count <= char_count + 1); // +1 to account for the NUL terminator.
-- memcpy(result, byte_str.GetBuffer(byte_str_len), byte_str_len);
-+ memcpy(result, byte_str.GetBuffer(byte_str_len).data(), byte_str_len);
- return ret_count;
- }
-
-@@ -736,10 +736,15 @@ FPDFTextObj_GetColor(FPDF_PAGEOBJECT text_object,
- return false;
- }
-
-- const uint32_t RGB = bStroke ? pTxtObj->m_ColorState.GetStrokeRGB() : pTxtObj->m_ColorState.GetFillRGB();
-- *R = FXSYS_GetRValue(RGB);
-- *G = FXSYS_GetGValue(RGB);
-- *B = FXSYS_GetBValue(RGB);
-+ const CPDF_Color* pColor = bStroke ? pTxtObj->m_ColorState.GetStrokeColor() : pTxtObj->m_ColorState.GetFillColor();
-+ if (pColor == nullptr)
-+ return false;
-+
-+ int r, g, b;
-+ pColor->GetRGB(&r, &g, &b);
-+ *R = r;
-+ *G = g;
-+ *B = b;
- *A = static_cast<unsigned int>(
- (pTxtObj->m_GeneralState.GetStrokeAlpha() * 255.f) + 0.5f);
-
-@@ -768,7 +773,7 @@ FPDFFormObj_GetSubObject(FPDF_PAGEOBJECT form_object, int index)
- {
- const CPDF_PageObjectList* pObjectList = pFrmObj->form()->GetPageObjectList();
- if (pObjectList)
-- return pObjectList->GetPageObjectByIndex(index);
-+ return FPDFPageObjectFromCPDFPageObject(pObjectList->GetPageObjectByIndex(index));
- }
-
- return nullptr;
---
-2.16.3
-
diff --git a/external/pdfium/0015-svx-set-the-font-name-of-imported-PDF-text.patch.2 b/external/pdfium/0015-svx-set-the-font-name-of-imported-PDF-text.patch.2
deleted file mode 100644
index 8eb0bac1eed2..000000000000
--- a/external/pdfium/0015-svx-set-the-font-name-of-imported-PDF-text.patch.2
+++ /dev/null
@@ -1,77 +0,0 @@
-From 04f9899ddf5f9691ffaca5091082183f167e95d3 Mon Sep 17 00:00:00 2001
-From: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
-Date: Wed, 6 Jun 2018 06:34:56 +0200
-Subject: [PATCH] svx: set the font name of imported PDF text
-
----
- pdfium/fpdfsdk/fpdf_editpage.cpp | 23 +++++++++++++++++++++++
- pdfium/public/fpdf_edit.h | 11 +++++++++++
- 2 files changed, 34 insertions(+)
-
-diff --git a/pdfium/fpdfsdk/fpdf_editpage.cpp b/pdfium/fpdfsdk/fpdf_editpage.cpp
-index a52e1a9..9daffc0 100644
---- a/pdfium/fpdfsdk/fpdf_editpage.cpp
-+++ b/pdfium/fpdfsdk/fpdf_editpage.cpp
-@@ -20,6 +20,7 @@
- #include "core/fpdfapi/page/cpdf_pageobject.h"
- #include "core/fpdfapi/page/cpdf_pathobject.h"
- #include "core/fpdfapi/page/cpdf_shadingobject.h"
-+#include "core/fpdfapi/page/cpdf_textobject.h"
- #include "core/fpdfapi/parser/cpdf_array.h"
- #include "core/fpdfapi/parser/cpdf_document.h"
- #include "core/fpdfapi/parser/cpdf_number.h"
-@@ -458,6 +459,29 @@ FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text_object)
- return pTxtObj->GetFontSize();
- }
-
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetFontName(FPDF_PAGEOBJECT text_object, char* result)
-+{
-+ if (!text_object)
-+ return 0;
-+
-+ CPDF_TextObject* pTxtObj = CPDFTextObjectFromFPDFPageObject(text_object);
-+ CPDF_Font* pPdfFont = pTxtObj->GetFont();
-+ if (!pPdfFont)
-+ return 0;
-+
-+ CFX_Font* pFont = pPdfFont->GetFont();
-+ if (!pFont)
-+ return 0;
-+
-+ ByteString byte_str = pFont->GetFamilyName();
-+ const size_t byte_str_len = byte_str.GetLength();
-+
-+ memcpy(result, byte_str.GetBuffer(byte_str_len).data(), byte_str_len);
-+ result[byte_str_len] = '\0';
-+ return byte_str_len;
-+}
-+
- FPDF_EXPORT void FPDF_CALLCONV
- FPDFPageObj_SetBlendMode(FPDF_PAGEOBJECT page_object,
- FPDF_BYTESTRING blend_mode) {
-diff --git a/pdfium/public/fpdf_edit.h b/pdfium/public/fpdf_edit.h
-index 4351649..f858ab2 100644
---- a/pdfium/public/fpdf_edit.h
-+++ b/pdfium/public/fpdf_edit.h
-@@ -1068,6 +1068,17 @@ FPDFPageObj_CreateTextObj(FPDF_DOCUMENT document,
- FPDF_FONT font,
- float font_size);
-
-+// Get the font name of a text object.
-+//
-+// text_object - Handle of text object returned by FPDFPageObj_NewTextObj
-+// or FPDFPageObj_NewTextObjEx.
-+// result - The result in ascii.
-+//
-+// Return Value:
-+// The number of characters / bytes written in result.
-+FPDF_EXPORT int FPDF_CALLCONV
-+FPDFTextObj_GetFontName(FPDF_PAGEOBJECT text_object, char* result);
-+
- // Get the number of characters from a text object.
- //
- // text_object - Handle of text object returned by FPDFPageObj_NewTextObj
---
-2.16.3
-
diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
index 05d84c749a05..f9a62bf75b46 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -67,7 +67,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_fieldaction \
UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_filewriteadapter \
UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_helpers \
- UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_memoryaccess \
UnpackedTarball/pdfium/fpdfsdk/fpdf_annot \
UnpackedTarball/pdfium/fpdfsdk/fpdf_attachment \
UnpackedTarball/pdfium/fpdfsdk/fpdf_catalog \
@@ -240,7 +239,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_read_validator \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_charposlist \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_devicebuffer \
- UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_dibsource \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_dibtransferfunc \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_docrenderdata \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_imagecacheentry \
@@ -281,6 +279,10 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_cross_ref_avail \
UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_pagecontentmanager \
UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_transparency \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_dibbase \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_object_stream \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_cross_ref_table \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_stringarchivestream \
))
# fpdfdoc
@@ -331,12 +333,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
# fxcodec
$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_fax \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_flate \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_icc \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_jbig \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_jpeg \
- UnpackedTarball/pdfium/core/fxcodec/codec/fx_codec_jpx_opj \
UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_ArithDecoder \
UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_ArithIntDecoder \
UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_BitStream \
@@ -358,6 +354,13 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxcodec/gif/cfx_gif \
UnpackedTarball/pdfium/core/fxcodec/gif/cfx_gifcontext \
UnpackedTarball/pdfium/core/fxcodec/gif/cfx_lzwdecompressor \
+ UnpackedTarball/pdfium/core/fxcodec/codec/cfx_codec_memory \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_faxmodule \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_iccmodule \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_jbig2module \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_jpxmodule \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_jpegmodule \
+ UnpackedTarball/pdfium/core/fxcodec/codec/ccodec_flatemodule \
))
# fxcrt
@@ -402,8 +405,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxcrt/bytestring \
UnpackedTarball/pdfium/core/fxcrt/cfx_binarybuf \
UnpackedTarball/pdfium/core/fxcrt/cfx_bitstream \
- UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_posix \
- UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_windows \
UnpackedTarball/pdfium/core/fxcrt/cfx_utf8decoder \
UnpackedTarball/pdfium/core/fxcrt/cfx_widetextbuf \
UnpackedTarball/pdfium/core/fxcrt/fx_random \
@@ -412,6 +413,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxcrt/cfx_seekablemultistream \
UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssdata \
UnpackedTarball/pdfium/core/fxcrt/fx_codepage \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_utf8encoder \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_readonlymemorystream \
))
# fxge
@@ -420,7 +423,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxge/dib/cfx_bitmapstorer \
UnpackedTarball/pdfium/core/fxge/dib/cfx_dibextractor \
UnpackedTarball/pdfium/core/fxge/dib/cfx_dibitmap \
- UnpackedTarball/pdfium/core/fxge/dib/cfx_dibsource \
UnpackedTarball/pdfium/core/fxge/dib/cfx_filtereddib \
UnpackedTarball/pdfium/core/fxge/dib/cfx_imagerenderer \
UnpackedTarball/pdfium/core/fxge/dib/cfx_imagestretcher \
@@ -466,6 +468,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxge/fx_ge_fontmap \
UnpackedTarball/pdfium/core/fxge/fx_ge_linux \
UnpackedTarball/pdfium/core/fxge/fx_ge_text \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_dibbase \
))
# javascript, build with pdf_enable_v8 disabled.
@@ -542,6 +545,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/third_party/base/allocator/partition_allocator/page_allocator \
UnpackedTarball/pdfium/third_party/base/allocator/partition_allocator/spin_lock \
UnpackedTarball/pdfium/third_party/base/allocator/partition_allocator/partition_alloc \
+ UnpackedTarball/pdfium/third_party/base/debug/alias \
))
# skia_shared
@@ -600,6 +604,13 @@ $(eval $(call gb_Library_add_generated_cobjects,pdfium,\
UnpackedTarball/pdfium/third_party/freetype/src/src/smooth/smooth \
UnpackedTarball/pdfium/third_party/freetype/src/src/truetype/truetype \
UnpackedTarball/pdfium/third_party/freetype/src/src/type1/type1 \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftdebug \
+))
+endif
+
+ifneq ($(OS),WNT)
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_posix \
))
endif
@@ -612,6 +623,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxge/win32/fx_win32_dib \
UnpackedTarball/pdfium/core/fxge/win32/fx_win32_gdipext \
UnpackedTarball/pdfium/core/fxge/win32/fx_win32_print \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_windows \
))
$(eval $(call gb_Library_use_system_win32_libs,pdfium,\
@@ -641,9 +653,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxge/android/cfpf_skiafontmgr \
UnpackedTarball/pdfium/core/fxge/android/cfx_androidfontinfo \
UnpackedTarball/pdfium/core/fxge/android/fx_android_imp \
- UnpackedTarball/pdfium/core/fxge/android/cfpf_skiabufferfont \
- UnpackedTarball/pdfium/core/fxge/android/cfpf_skiafilefont \
- UnpackedTarball/pdfium/core/fxge/android/cfpf_skiafontdescriptor \
UnpackedTarball/pdfium/core/fxge/android/cfpf_skiapathfont \
))
endif
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk
index dc1ad7b4e221..d99f1077da98 100644
--- a/external/pdfium/UnpackedTarball_pdfium.mk
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -13,15 +13,7 @@ pdfium_patches += ubsan.patch
# Fixes build on our baseline.
pdfium_patches += build.patch.1
# Adds missing editing API
-pdfium_patches += 0002-svx-more-accurate-PDF-text-importing.patch.2
pdfium_patches += 0003-svx-import-PDF-images-as-BGRA.patch.2
-pdfium_patches += 0004-svx-support-PDF-text-color.patch.2
-pdfium_patches += 0009-svx-support-color-text-for-imported-PDFs.patch.2
-pdfium_patches += 0010-svx-support-importing-forms-from-PDFs.patch.2
-pdfium_patches += 0011-svx-correctly-possition-form-objects-from-PDF.patch.2
-pdfium_patches += 0012-svx-import-processed-PDF-text.patch.2
-pdfium_patches += 0014-svx-update-PDFium-patch-and-code.patch.2
-pdfium_patches += 0015-svx-set-the-font-name-of-imported-PDF-text.patch.2
$(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
@@ -45,7 +37,8 @@ $(eval $(call gb_UnpackedTarball_set_post_action,pdfium,\
mv third_party/base/allocator/partition_allocator/address_space_randomization.cc third_party/base/allocator/partition_allocator/address_space_randomization.cpp && \
mv third_party/base/allocator/partition_allocator/page_allocator.cc third_party/base/allocator/partition_allocator/page_allocator.cpp && \
mv third_party/base/allocator/partition_allocator/partition_alloc.cc third_party/base/allocator/partition_allocator/partition_alloc.cpp && \
- mv third_party/base/allocator/partition_allocator/spin_lock.cc third_party/base/allocator/partition_allocator/spin_lock.cpp \
+ mv third_party/base/allocator/partition_allocator/spin_lock.cc third_party/base/allocator/partition_allocator/spin_lock.cpp && \
+ mv third_party/base/debug/alias.cc third_party/base/debug/alias.cpp \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index 901edbbf4e56..721c1784719d 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -125,12 +125,12 @@ diff --git a/core/fpdfdoc/cpdf_dest.h b/core/fpdfdoc/cpdf_dest.h
index 7f4eb86c0..5e227f86e 100644
--- a/core/fpdfdoc/cpdf_dest.h
+++ b/core/fpdfdoc/cpdf_dest.h
-@@ -46,7 +46,7 @@ class CPDF_Dest {
+@@ -41,7 +41,7 @@
float* pZoom) const;
private:
-- UnownedPtr<const CPDF_Array> const m_pObj;
-+ UnownedPtr<const CPDF_Array> m_pObj;
+- UnownedPtr<const CPDF_Array> const m_pArray;
++ UnownedPtr<const CPDF_Array> m_pArray;
};
#endif // CORE_FPDFDOC_CPDF_DEST_H_
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx
index 8e7d9e28f0eb..8f79523b4c3e 100644
--- a/svx/source/svdraw/svdpdf.cxx
+++ b/svx/source/svdraw/svdpdf.cxx
@@ -863,10 +863,10 @@ void ImpSdrPdfImport::ImportForm(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex
FPDFFormObj_GetMatrix(pPageObject, &a, &b, &c, &d, &e, &f);
mCurMatrix = Matrix(a, b, c, d, e, f);
- const int nCount = FPDFFormObj_CountSubObjects(pPageObject);
+ const int nCount = FPDFFormObj_CountObjects(pPageObject);
for (int nIndex = 0; nIndex < nCount; ++nIndex)
{
- FPDF_PAGEOBJECT pFormObject = FPDFFormObj_GetSubObject(pPageObject, nIndex);
+ FPDF_PAGEOBJECT pFormObject = FPDFFormObj_GetObject(pPageObject, nIndex);
ImportPdfObject(pFormObject, pTextPage, -1);
}
@@ -896,12 +896,10 @@ void ImpSdrPdfImport::ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex
aTextMatrix.Transform(left, right, top, bottom);
const tools::Rectangle aRect = PointsToLogic(left, right, top, bottom);
- const int nChars = FPDFTextObj_CountChars(pPageObject) * 2;
- std::unique_ptr<sal_Unicode[]> pText(new sal_Unicode[nChars + 1]); // + terminating null
+ const int nChars = FPDFTextObj_GetText(pPageObject, pTextPage, nullptr, 0);
+ std::unique_ptr<sal_Unicode[]> pText(new sal_Unicode[nChars]);
- unsigned short* pShortText = reinterpret_cast<unsigned short*>(pText.get());
- const int nActualChars
- = FPDFTextObj_GetTextProcessed(pPageObject, pTextPage, 0, nChars, pShortText);
+ const int nActualChars = FPDFTextObj_GetText(pPageObject, pTextPage, pText.get(), nChars);
if (nActualChars <= 0)
{
return;
@@ -926,10 +924,11 @@ void ImpSdrPdfImport::ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex
mbFntDirty = true;
}
- std::unique_ptr<char[]> pFontName(new char[80 + 1]); // + terminating null
+ const int nFontName = 80 + 1;
+ std::unique_ptr<char[]> pFontName(new char[nFontName]); // + terminating null
char* pCharFontName = reinterpret_cast<char*>(pFontName.get());
- int nFontNameChars = FPDFTextObj_GetFontName(pPageObject, pCharFontName);
- if (nFontNameChars > 0)
+ int nFontNameChars = FPDFTextObj_GetFontName(pPageObject, pCharFontName, nFontName);
+ if (nFontName >= nFontNameChars)
{
OUString sFontName = OUString::createFromAscii(pFontName.get());
if (sFontName != aFnt.GetFamilyName())
@@ -941,9 +940,32 @@ void ImpSdrPdfImport::ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex
}
Color aTextColor(COL_TRANSPARENT);
- unsigned int nR, nG, nB, nA;
- if (FPDFTextObj_GetColor(pPageObject, &nR, &nG, &nB, &nA))
- aTextColor = Color(nR, nG, nB);
+ bool bFill = false;
+ bool bUse = true;
+ switch (FPDFText_GetTextRenderMode(pPageObject))
+ {
+ case FPDF_TEXTRENDERMODE_FILL:
+ case FPDF_TEXTRENDERMODE_FILL_CLIP:
+ case FPDF_TEXTRENDERMODE_FILL_STROKE:
+ case FPDF_TEXTRENDERMODE_FILL_STROKE_CLIP:
+ bFill = true;
+ break;
+ case FPDF_TEXTRENDERMODE_STROKE:
+ case FPDF_TEXTRENDERMODE_STROKE_CLIP:
+ break;
+ case FPDF_TEXTRENDERMODE_INVISIBLE:
+ case FPDF_TEXTRENDERMODE_CLIP:
+ bUse = false;
+ break;
+ }
+ if (bUse)
+ {
+ unsigned int nR, nG, nB, nA;
+ bool bRet = bFill ? FPDFPageObj_GetFillColor(pPageObject, &nR, &nG, &nB, &nA)
+ : FPDFPageObj_GetStrokeColor(pPageObject, &nR, &nG, &nB, &nA);
+ if (bRet)
+ aTextColor = Color(nR, nG, nB);
+ }
if (aTextColor != mpVD->GetTextColor())
{
More information about the Libreoffice-commits
mailing list