[Libreoffice-commits] core.git: sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Jan 5 15:35:03 UTC 2017


 sw/source/core/text/EnhancedPDFExportHelper.cxx |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

New commits:
commit 46153bdcf2f89e88607dfb0dd0003108796424e9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jan 5 10:55:57 2017 +0100

    Related: tdf#105093 sw PDF export: handle embedded videos
    
    Use vcl::PDFExtOutDevData::SetScreenStream() for embedded media to make
    sure that vnd.sun.star.Package: URLs don't end up in PDF out literally.
    Acrobat Reader obviously doesn't understand that protocol.
    
    Change-Id: I384891b3ef2dcea25bbf591bd210ccf899d30a61

diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx
index 85cc511..6a4c102 100644
--- a/sw/source/core/text/EnhancedPDFExportHelper.cxx
+++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx
@@ -1813,7 +1813,7 @@ void SwEnhancedPDFExportHelper::EnhancedPDFExport()
             }
             else if (pFrameFormat->Which() == RES_DRAWFRMFMT)
             {
-                // Handle linked videos.
+                // Turn media shapes into Screen annotations.
                 if (SdrObject* pObject = pFrameFormat->FindRealSdrObject())
                 {
                     SwRect aSnapRect = pObject->GetSnapRect();
@@ -1834,7 +1834,16 @@ void SwEnhancedPDFExportHelper::EnhancedPDFExport()
                             for (sal_Int32 nScreenPageNum : aScreenPageNums)
                             {
                                 sal_Int32 nScreenId = pPDFExtOutDevData->CreateScreen(aPDFRect, nScreenPageNum);
-                                pPDFExtOutDevData->SetScreenURL(nScreenId, aMediaURL);
+                                if (aMediaURL.startsWith("vnd.sun.star.Package:"))
+                                {
+                                    // Embedded media.
+                                    OUString aTempFileURL;
+                                    xShapePropSet->getPropertyValue("PrivateTempFileURL") >>= aTempFileURL;
+                                    pPDFExtOutDevData->SetScreenStream(nScreenId, aTempFileURL);
+                                }
+                                else
+                                    // Linked media.
+                                    pPDFExtOutDevData->SetScreenURL(nScreenId, aMediaURL);
                             }
                         }
                     }


More information about the Libreoffice-commits mailing list