summaryrefslogtreecommitdiff
path: root/svx/source/svdraw
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-05-04 08:49:36 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-06-08 13:42:56 +0200
commitab95f37716c031e4824ed9ff622ea2a613a56ad3 (patch)
treeb95d221e3c4df648417b18d295ce686dc74fd18d /svx/source/svdraw
parent43cc9f234306bae44ecc57d7820a5be04e91dcf3 (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.cxx2
-rw-r--r--svx/source/svdraw/svdpdf.cxx2
-rw-r--r--svx/source/svdraw/svdpdf.hxx148
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: */