diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-05-04 08:49:36 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2020-06-08 13:42:56 +0200 |
commit | ab95f37716c031e4824ed9ff622ea2a613a56ad3 (patch) | |
tree | b95d221e3c4df648417b18d295ce686dc74fd18d /svx/source/svdraw | |
parent | 43cc9f234306bae44ecc57d7820a5be04e91dcf3 (diff) |
SdrPdfImport: add a test class to sd and write a simple test
Open a simple PDF document, run the "break" action, check that
we get the expected text as a text object.
Change-Id: Iadb458f06b437689202eb013cb900edaabf17673
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93395
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95702
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/svdedtv2.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdpdf.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdpdf.hxx | 148 |
3 files changed, 2 insertions, 150 deletions
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx index 7eab69f7bb5b..4fd92b1e30ca 100644 --- a/svx/source/svdraw/svdedtv2.cxx +++ b/svx/source/svdraw/svdedtv2.cxx @@ -36,7 +36,7 @@ #include <svx/xlineit0.hxx> #include <svx/xtextit0.hxx> #include "svdfmtf.hxx" -#include "svdpdf.hxx" +#include <svdpdf.hxx> #include <svx/svdetc.hxx> #include <sfx2/basedlgs.hxx> #include <editeng/outlobj.hxx> diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx index 820832265aa0..a41caaeaba14 100644 --- a/svx/source/svdraw/svdpdf.cxx +++ b/svx/source/svdraw/svdpdf.cxx @@ -17,7 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "svdpdf.hxx" +#include <svdpdf.hxx> #include <config_features.h> diff --git a/svx/source/svdraw/svdpdf.hxx b/svx/source/svdraw/svdpdf.hxx deleted file mode 100644 index 9dd6626d3318..000000000000 --- a/svx/source/svdraw/svdpdf.hxx +++ /dev/null @@ -1,148 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVX_SOURCE_SVDRAW_SVDPDF_HXX -#define INCLUDED_SVX_SOURCE_SVDRAW_SVDPDF_HXX - -#include <config_features.h> - -#if HAVE_FEATURE_PDFIUM -#include <sal/config.h> - -#include <memory> -#include <sstream> - -#include <tools/contnr.hxx> -#include <tools/fract.hxx> -#include <vcl/metaact.hxx> -#include <vcl/virdev.hxx> -#include <vcl/graph.hxx> -#include <svx/svdobj.hxx> -#include <svx/xdash.hxx> -#include <com/sun/star/uno/Sequence.hxx> - -#include <basegfx/matrix/b2dhommatrix.hxx> - -// Prevent workdir/UnpackedTarball/pdfium/public/fpdfview.h from including windows.h in a way that -// it will define e.g. Yield as a macro: -#include <prewin.h> -#include <postwin.h> -#include <fpdfview.h> - -// Forward Declarations - -class SfxItemSet; -class SdrObjList; -class SdrModel; -class SdrPage; -class SdrObject; -class SvdProgressInfo; - -// Helper Class to import PDF -class ImpSdrPdfImport final -{ - Graphic const& mrGraphic; - std::vector<SdrObject*> maTmpList; - ScopedVclPtr<VirtualDevice> mpVD; - tools::Rectangle const maScaleRect; - size_t mnMapScalingOfs; // from here on, not edited with MapScaling - std::unique_ptr<SfxItemSet> mpLineAttr; - std::unique_ptr<SfxItemSet> mpFillAttr; - std::unique_ptr<SfxItemSet> mpTextAttr; - SdrModel* mpModel; - SdrLayerID const mnLayer; - Color maOldLineColor; - sal_Int32 mnLineWidth; - static constexpr css::drawing::LineCap gaLineCap = css::drawing::LineCap_BUTT; - XDash const maDash; - - bool mbMov; - bool mbSize; - Point maOfs; - double mfScaleX; - double mfScaleY; - Fraction maScaleX; - Fraction maScaleY; - - bool mbFntDirty; - - // to optimize (PenNULL,Brush,DrawPoly),(Pen,BrushNULL,DrawPoly) -> two-in-one - bool mbLastObjWasPolyWithoutLine; - bool mbNoLine; - bool mbNoFill; - - // clipregion - basegfx::B2DPolyPolygon maClip; - - FPDF_DOCUMENT mpPdfDocument; - int mnPageCount; - double mdPageWidthPts; - double mdPageHeightPts; - /// The current transformation matrix, typically used with Form objects. - basegfx::B2DHomMatrix maCurrentMatrix; - - /// Correct the vertical coordinate to start at the top. - /// PDF coordinate system has origin at the bottom right. - double correctVertOrigin(double offsetPts) const { return mdPageHeightPts - offsetPts; } - /// Convert PDF points to logic (twips). - tools::Rectangle PointsToLogic(double left, double right, double top, double bottom) const; - Point PointsToLogic(double x, double y) const; - - // check for clip and evtl. fill maClip - void checkClip(); - bool isClip() const; - - void ImportPdfObject(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTextPage, - int nPageObjectIndex); - void ImportForm(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTextPage, int nPageObjectIndex); - void ImportImage(FPDF_PAGEOBJECT pPageObject, int nPageObjectIndex); - void ImportPath(FPDF_PAGEOBJECT pPageObject, int nPageObjectIndex); - void ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTextPage, int nPageObjectIndex); - void ImportText(const Point& rPos, const Size& rSize, const OUString& rStr); - - void SetupPageScale(const double dPageWidth, const double dPageHeight); - void SetAttributes(SdrObject* pObj, bool bForceTextAttr = false); - void InsertObj(SdrObject* pObj, bool bScale = true); - void MapScaling(); - - // #i73407# reformulation to use new B2DPolygon classes - bool CheckLastPolyLineAndFillMerge(const basegfx::B2DPolyPolygon& rPolyPolygon); - - void DoObjects(SvdProgressInfo* pProgrInfo, sal_uInt32* pActionsToReport, int nPageIndex); - - // Copy assignment is forbidden and not implemented. - ImpSdrPdfImport(const ImpSdrPdfImport&) = delete; - ImpSdrPdfImport& operator=(const ImpSdrPdfImport&) = delete; - -public: - ImpSdrPdfImport(SdrModel& rModel, SdrLayerID nLay, const tools::Rectangle& rRect, - Graphic const& rGraphic); - - ~ImpSdrPdfImport(); - - int GetPageCount() const { return mnPageCount; } - size_t DoImport(SdrObjList& rDestList, size_t nInsPos, int nPageNumber, - SvdProgressInfo* pProgrInfo = nullptr); -}; - -#endif // HAVE_FEATURE_PDFIUM - -#endif // INCLUDED_SVX_SOURCE_SVDRAW_SVDFMTF_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |