summaryrefslogtreecommitdiff
path: root/vcl/source/pdf
AgeCommit message (Collapse)Author
2021-04-01vcl pdfread: clean up not needed HAVE_FEATURE_PDFIUM ifdefsMiklos Vajna
Towards completely avoiding the HAVE_FEATURE_PDFIUM ifdef forest. Change-Id: Ide634f14087ec18e5ab8186be21def0698ddbd5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113428 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-03-13add PixelFormat enum that replaces bit count in Bitmap/BitmapExTomaž Vajngerl
Bit count for the image is a numeric value (sal_uInt16) but only a handful of values make sense - namely 1,4,8,24 and 32. This replaces the numeric value with an enum, which only accepts those values and checks the correct values are used at compile time. Change-Id: I0fc137c62bce3b0d021f05019a1648da628521bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112408 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-26pdfium: don't build PDFiumLibrary when PDFium is disabledMiklos Vajna
Rather provide a stub implementation of PDFiumLibrary::get(), so other code can call it unconditionally. This is meant to allow removing the 10 stub functions in VectorGraphicSearch later. Also fix up CppunitTest_xmlsecurity_signing to pass in the disable-pdfium case by avoiding the known-problematic checks. Change-Id: I748fcc5c623c5ce937bd2980bfdfaadbdf6cedf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111564 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-25pdfium: turn the PDFium class into an interfaceMiklos Vajna
This will allow a dummy implementation that only provides PDFiumLibrary::get() and nothing else. Change-Id: Ia63b3f0b7751e5c05716825f0854282e4007207e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111502 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-24pdfium: move PDFiumLibrary::get() impl out of the headerMiklos Vajna
Otherwise vcl::pdf::PDFium can't be turned into an interface. Change-Id: I9e9030e7e7ed36ec1ed777f017c521fa64588e8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111434 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-19pdfium: eliminate FPDF_DOCUMENT from public headerMiklos Vajna
Which means the last pdfium include can go from PDFiumLibrary.hxx. Change-Id: I73e40767f594c9a6ce75582621af975419ccf996 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111163 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-18pdfium: eliminate FPDF_PAGE from public headerMiklos Vajna
Change-Id: I8cfe55b4b23441f7b5c3b748903137a145cc00bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111085 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-17pdfium: eliminate FPDF_SIGNATURE from public headerMiklos Vajna
Change-Id: I9c8297c69ca359d861c8506e41c069692331eb8f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111005 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-16pdfium: add a FPDF_GetLastError() wrapperMiklos Vajna
And also an enum class for its return values. Change-Id: I9a001386831b2230a397194df3cf3b331d5242ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110952 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-12pdfium: eliminate FPDF_TEXTPAGE from the public headerMiklos Vajna
All usage goes via the PDFiumTextPage interface now. Change-Id: Ied9d7fc9e1cf91b6a2feca63264993fd77348bed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110792 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-11pdfium: add a FPDFText_GetCharBox() wrapperMiklos Vajna
Which was the last public use of PDFiumTextPage::getPointer(). Change-Id: If3339f09ba38a3f10b19fe85cded718c913eb067 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110750 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-02-10pdfium: eliminate FPDF_SCHHANDLE from the public headerMiklos Vajna
Change-Id: I3b4fe169304c34d78019c4cc84b786ca84221d89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110659 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-05pdfium: add remaining FPDF_SCHHANDLE wrappersMiklos Vajna
So we don't have to expose the raw search handle in the public header anymore. Change-Id: I410314424e5a1d3a977c8e3de6f500f7c9a0a332 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110426 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-04pdfium: add PDFFindFlags wrapperMiklos Vajna
So that vcl::pdf::PDFiumTextPage::findStart() can be called without including fpdf_text.h. Change-Id: I6a765be6176ec77ca24f592e2e2210654debe075 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110391 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-03pdfium: add a FPDFText_FindStart() wrapperMiklos Vajna
Change-Id: I0bf77c116ab83ea557467da7f0c780d92db6a60e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110333 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-29pdfium: add wrapper for FPDFText_FindClose()Miklos Vajna
So we can call it in the dtor, so we can't forget calling it. Change-Id: I9cea58ca53763d85a4c239fd90611ac1c398564d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110092 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-20pdfium: rework to eliminate FPDF_PAGEOBJECT from the public interfaceMiklos Vajna
And fix bin/find-unneeded-includes to not report noise on PDFiumLibrary.cxx. Change-Id: I93337e49a5656349089bdb790876bebe8505082c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109656 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-16make the Color constructors explicitly specify transparencyNoel
to reduce the churn, we leave the existing constructor in place, and add a clang plugin to detect when the value passed to the existing constructor may contain transparency/alpha data. i.e. we leave expressions like Color(0xffffff) alone, but warn about any non-constant expression, and any expression like Color(0xff000000) Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-15pdfium: add wrapper for FPDF_FILLMODE_* definesMiklos Vajna
Which is, I think, the last direct pdfium usage outside vcl. Change-Id: I2e435e5a3669c6163bf2c20bc6d1d8bd4c88cecd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109314 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-14pdfium: add an FPDFPageObj_GetStrokeWidth() wrapperMiklos Vajna
Change-Id: If411b788b3ea07c29377e01052ee6a48893ca482 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109250 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-13vcl: use BinaryDataContianer in VectorGraphicDataTomaž Vajngerl
This change is needed so we can use the same data in GfxLink and in VectorGraphicData. Currently the data needed to be duplicated, which is less than ideal. Change-Id: I79419921d09681fa8f0b1ac4bf8ea84199d4aae6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108440 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-01-08pdfium: add wrapper for FPDF_TEXTRENDERMODE_* definesMiklos Vajna
Change-Id: I85fe128f0b86d1e308727f7cc0f803d62c6ba48d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108952 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-07pdfium: rework to eliminate FPDF_ANNOTATION from the public interfaceMiklos Vajna
Change-Id: Ib11213f0307cd215b71e3da08468be6e82e2eb55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108914 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-01-06pdfium: add wrapper for FPDF_OBJECT_* definesMiklos Vajna
So that client code doesn't have to include fpdfview.h manually. Change-Id: I0cb9569f84e85953a308519ea89bed39fe4a1390 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108817 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-12-29vcl: move local bitmap headers to inc/bitmap directoryChris Sherlock
Change-Id: I72cc28d4df8031e322daa50d79666cabcb6421a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108040 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-12-22pdfium: replace 3 patches with backportsMiklos Vajna
So that vcl/ already uses the upstreamed API and the patches can be just dropped on the next pdfium upgrade. Change-Id: I58f6a4cca37677788d9a2e4e31c2e89d074ad5ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108140 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-12-18pdfium: add PDFiumPage::hasLinks() wrapperMiklos Vajna
Reduces the amount of raw pdfium includes in CppunitTest_vcl_pdfexport. Change-Id: I61bcc7ef11932cc5129be8123dba0e8b06e8f324 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107925 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-12-16pdfium: rework to eliminate FPDF_PATHSEGMENT from the public interfaceMiklos Vajna
Change-Id: Ibb782d7fe835a001ef13a80afe2f7cf351eda081 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107793 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-12-11Adapt the remaining OUString functions to std string_viewStephan Bergmann
...for LIBO_INTERNAL_ONLY. These had been missed by 1b43cceaea2084a0489db68cd0113508f34b6643 "Make many OUString functions take std::u16string_view parameters" because they did not match the multi-overload pattern that was addressed there, but they nevertheless benefit from being changed just as well (witness e.g. the various resulting changes from copy() to subView()). This showed a conversion from OStringChar to std::string_view to be missing (while the corresponding conversion form OUStringChar to std::u16string_view was already present). The improvement to loplugin:stringadd became necessary to fix > [CPT] compilerplugins/clang/test/stringadd.cxx > error: 'error' diagnostics expected but not seen: > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 43 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:42): simplify by merging with the preceding assignment [loplugin:stringadd] > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 61 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:60): simplify by merging with the preceding assignment [loplugin:stringadd] > 2 errors generated. Change-Id: Ie40de0616a66e60e289c1af0ca60aed6f9ecc279 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107602 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-09pdfium: rework to eliminate FPDF_BITMAP from the public interfaceMiklos Vajna
Change-Id: I8be708d801ebaebc7d1b42bbaa6afa29901b4f5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107438 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-12-02pdfium: add width/height/format wrappers for bitmapMiklos Vajna
Change-Id: Ic8c85c4224b89d1e7bb8ded1a11c5fd8139f5701 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107044 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-12-02pdfium: introduce an enum class for path segment typesMiklos Vajna
Towards not including fpdf_edit.h in PDFiumLibrary client code. Change-Id: Iffdd11b0613399f31a3ed383c22b7a91059b83de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107011 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-26pdfium: replace PDFiumSignature::getPointer() with typed gettersMiklos Vajna
Once reason and time has getters, no need to expose the underlying PDFium type. Change-Id: I8f6b152fddf38e76ad7c3b1897fcb2026129820f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106631 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-25pdfium: add sig getters: ByteRange, DocMDPPermission, Contents and SubFilterMiklos Vajna
Change-Id: Ieab577de92898568e27a879af1ca1bda170a307d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106554 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-20pdfium: add a signature wrapper classMiklos Vajna
It just hides the underlying FPDF_SIGNATURE, no real member functions yet. Change-Id: I37d27c26d6f05b1f8c697a5afe682c795e5d4d1b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106184 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-19pdfium: add signature and trailer end getter wrappersMiklos Vajna
So PDFiumDocument::getPointer() can be retired. Change-Id: I77c34c3e263bd6f39e06e50f621f2eaff804c716 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106079 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-11pdfium: eliminate remaining direct calls to FPDFPageObj_GetType()Miklos Vajna
And also introduce an enum class for the return type. Change-Id: I6577c7678889ac5bb8efbf0d0cfeb575aac06e27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105567 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-06pdfium: add FPDFBitmap_GetBuffer/Stride wrappersMiklos Vajna
Change-Id: I7013e0870868017f72a8053bfe53491504f811e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105379 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-02pdf: deduplicate resources when copying from external PDF streamTomaž Vajngerl
When using external PDF stream/data (from PDF graphic objects), make sure to copy the content of external PDF resources (fonts, bitmaps, forms) only one time (by sharing the map between calls) and every other use, just use the reference to the objects. Change-Id: Ibaa632c8f74806eb195e69404551db6fd077a986 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104935 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105163 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-10-28pdfium: add an FPDF_RenderPageBitmap() wrapperMiklos Vajna
Change-Id: I2238aeb4b2f7483440ded2600a328436f861f178 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104917 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-10-28pdfium: add an FPDFBitmap_FillRect() wrapperMiklos Vajna
Change-Id: I4201a9ead756cf814c8452ef504acd054c4fe38b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104908 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-10-22pdfium: add a wrapper for FPDFPage_HasTransparency()Miklos Vajna
Change-Id: Id0595e96a4de7fabe6613cf2df69684da6e8a6d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104648 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-10-22pdfium: add a wrapper for FPDF_SaveWithVersion()Miklos Vajna
And use it in getCompatibleStream(). Change-Id: I48ab2a17c0780b78c6af6dbff50dba81f8041f43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104642 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-10-20xmlsecurity: handle MDP permission during PDF verifyMiklos Vajna
Change-Id: I626fca7c03079fb0374c577dcfe024e7db6ed5b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104529 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-10-18pdfium: add reading of line points to the wrapperTomaž Vajngerl
Change-Id: I3e596254b2e4ecc9f56ff09eeb63b66195ea6a2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104376 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-10-16pdfium: add an FPDFBitmap_Create() wrapperMiklos Vajna
Fixes a leak in PDFiumPage::getChecksum(). Change-Id: I57471a26702f1d3dd69e9e18a4067ce0e724e358 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104386 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-10-15pdfium: add reading of attachment points to the wrapperTomaž Vajngerl
Attachment points are used to define where to highlight the text. Quad points - points of the rectangle that can be rotated (typical text). Change-Id: I5438a6520195b89149c9cd1a8235a77dbc622243 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104362 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-10-15pdfium: add support for border property of PDF annotationsTomaž Vajngerl
This extends PDFium with readon of "Border" property from the PDF annotations and adds the API to PDFium wrapper. Border is mostly used for border (line) width and the radius of rounding of the border (for drawing a rounded rectangle for example). Change-Id: I03f189eee03155ec699b2f56ceed23e6839a3f03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104361 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-10-15pdfium: add getColor and getInteriourColor to PDFiumAnnotationTomaž Vajngerl
Interiour color is used as a fill color. Change-Id: If0c55fdaef083001abeb55e5c7ce3bae8d232713 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104360 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-10-15pdfium: add an FPDFImageObj_GetBitmap() wrapperMiklos Vajna
Replaces both FPDFBitmapDeleter and most manual calls to FPDFBitmap_Destroy(). Change-Id: I4676dd2f51b6b348ebbb6edc0379d7afd8fa79d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104324 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>