summaryrefslogtreecommitdiff
path: root/offapi
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2019-10-18 11:19:04 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-03-23 17:17:11 +0100
commitd5215e23e9f90792718b4462e5c565e9839e932a (patch)
tree3e4123597f1f2cc3124009154e420c463272114b /offapi
parent0b6100fd56691045d141075aad089683d59a76c2 (diff)
pdfium: Make Insert -> Image... use VectorGraphicData for PDF.
In principle, the current Svg/Emf/Wmf and PDF handling is trying to achieve the same thing: Keep the original stream untouched, provide a replacement graphics, and a kind of rendering. To hold the data, the Svg/Emf/Wmf and PDF were using different structures though. This commit consolidatates that, and makes the Insert -> Image... (for PDF) actually using the VectorGraphicData to hold the original stream. This breaks loading the PDF as a document via PDFium - I'll fix it in the next commit(s). Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90561 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 6ac2d66c78d6c080aabfa46157113684c2f3a3b0) Change-Id: Iac102f32b757390a03438c165e430283851cc10b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/81062 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'offapi')
-rw-r--r--offapi/UnoApi_offapi.mk2
-rw-r--r--offapi/com/sun/star/graphic/PdfTools.idl27
-rw-r--r--offapi/com/sun/star/graphic/XPdfDecomposer.idl39
3 files changed, 68 insertions, 0 deletions
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index 13a00192bd8c..3048b4e4658e 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -213,6 +213,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/graphic,\
Primitive2DTools \
SvgTools \
EmfTools \
+ PdfTools \
))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/inspection,\
DefaultHelpProvider \
@@ -2715,6 +2716,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/graphic,\
XPrimitiveFactory2D \
XSvgParser \
XEmfParser \
+ XPdfDecomposer \
))
$(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/i18n,\
AmPmValue \
diff --git a/offapi/com/sun/star/graphic/PdfTools.idl b/offapi/com/sun/star/graphic/PdfTools.idl
new file mode 100644
index 000000000000..b9f2e562dbf2
--- /dev/null
+++ b/offapi/com/sun/star/graphic/PdfTools.idl
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef com_sun_star_graphic_PdfTools_idl
+#define com_sun_star_graphic_PdfTools_idl
+
+#include <com/sun/star/graphic/XPdfDecomposer.idl>
+
+module com { module sun { module star { module graphic
+{
+
+/** Service to convert a PDF stream into a bitmap primitive.
+ */
+
+service PdfTools : XPdfDecomposer;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/graphic/XPdfDecomposer.idl b/offapi/com/sun/star/graphic/XPdfDecomposer.idl
new file mode 100644
index 000000000000..85b38c035c8c
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPdfDecomposer.idl
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef __com_sun_star_graphic_XPdfDecomposer_idl__
+#define __com_sun_star_graphic_XPdfDecomposer_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com { module sun { module star { module graphic {
+
+interface XPrimitive2D;
+
+/** XPdfDecomposer interface
+
+ This renders a PDF data into a bitmap and returns it as a primitive.
+ */
+interface XPdfDecomposer : ::com::sun::star::uno::XInterface
+{
+ /** Retrieve decomposed list - in this case a bitmap with the rendered PDF.
+
+ @param xPdfData
+ The PDF data.
+
+ @since LibreOffice 7.0
+ */
+ sequence<XPrimitive2D> getDecomposition([in] sequence<byte> xPdfData);
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */