tdf#167075: init doc shell before pasting as png/bmp

Regression after
commit d8ab8992bd35aedfc1d2b0debebab0d623aa8d09
Author: Xisco Fauli <[email protected]>
Date:   Mon May 26 11:06:06 2025 +0200

    ScViewData: pass ScDocShell by ref

and

commit 52e3b2b040ac54c2a5661e3676b135170f028f50
Author: Xisco Fauli <[email protected]>
Date:   Mon May 26 16:06:12 2025 +0200

    ScViewData: simplify constructors

Change-Id: I0b70bd4efe6cd18ca3c7a13e92469e09b4ed7914
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189188
Reviewed-by: Xisco Fauli <[email protected]>
Tested-by: Jenkins
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index b210e8e..001979e 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -97,21 +97,18 @@
    nCol = nMaxCol;
}

void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor,
void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor,
                                const ScRange& rBlock )
{
    if (!rDoc.GetDocumentShell())
        return;

    tools::Rectangle aBound( Point(), pDev->GetOutputSize() );      //! use size from clip area?

    ScViewData aViewData(*rDoc.GetDocumentShell(), nullptr);
    ScViewData aViewData(rDocSh, nullptr);

    aViewData.SetTabNo( rBlock.aEnd.Tab() );
    aViewData.SetScreen( rBlock.aStart.Col(), rBlock.aStart.Row(),
                            rBlock.aEnd.Col(), rBlock.aEnd.Row() );

    ScPrintFunc::DrawToDev( rDoc, pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ );
    ScPrintFunc::DrawToDev( rDocSh.GetDocument(), pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ );
}

ScTransferObj::ScTransferObj( const std::shared_ptr<ScDocument>& pClipDoc, TransferableObjectDescriptor aDesc ) :
@@ -437,7 +434,8 @@

            pVirtDev->SetOutputSizePixel(aPixelSize);

            PaintToDev( pVirtDev, *m_pDoc, 1.0, aReducedBlock );
            InitDocShell(true);
            PaintToDev( pVirtDev, *m_aDocShellRef, 1.0, aReducedBlock );

            pVirtDev->SetMapMode( MapMode( MapUnit::MapPixel, Point(), aScale, aScale ) );
            BitmapEx aBmp( pVirtDev->GetBitmap( Point(), pVirtDev->GetOutputSize() ) );
diff --git a/sc/source/ui/inc/transobj.hxx b/sc/source/ui/inc/transobj.hxx
index 4ad4a93..d84f5cb 100644
--- a/sc/source/ui/inc/transobj.hxx
+++ b/sc/source/ui/inc/transobj.hxx
@@ -58,7 +58,7 @@
    static void StripRefs( ScDocument& rDoc, SCCOL nStartX, SCROW nStartY,
                            SCCOL nEndX, SCROW nEndY,
                            ScDocument& rDestDoc );
    static void PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor,
    static void PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor,
                            const ScRange& rBlock );
    static void GetAreaSize( const ScDocument& rDoc, SCTAB nTab1, SCTAB nTab2, SCROW& nRow, SCCOL& nCol );