View | Details | Raw Unified | Return to issue 55736
Collapse All | Expand All

(-)openoffice.org.orig/sc/source/ui/unoobj/docuno.cxx.orig (-2 / +24 lines)
Lines 63-68 Link Here
63
#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
63
#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
64
#include <com/sun/star/script/XLibraryContainer.hpp>
64
#include <com/sun/star/script/XLibraryContainer.hpp>
65
#include <com/sun/star/lang/XInitialization.hpp>
65
#include <com/sun/star/lang/XInitialization.hpp>
66
#ifndef _COM_SUN_STAR_UTIL_URL_HPP_
67
#include <com/sun/star/util/URL.hpp>
68
#endif
69
#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
70
#include <com/sun/star/util/XURLTransformer.hpp>
71
#endif
66
#ifdef ENABLE_VBA
72
#ifdef ENABLE_VBA
67
#include <org/openoffice/vba/XGlobals.hpp>
73
#include <org/openoffice/vba/XGlobals.hpp>
68
#endif //ENABLE_VBA
74
#endif //ENABLE_VBA
Lines 839-844 Link Here
839
        std::vector< vcl::PDFExtOutDevBookmarkEntry >& rBookmarks = pPDFData->GetBookmarks();
845
        std::vector< vcl::PDFExtOutDevBookmarkEntry >& rBookmarks = pPDFData->GetBookmarks();
840
        std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIter = rBookmarks.begin();
846
        std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIter = rBookmarks.begin();
841
        std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIEnd = rBookmarks.end();
847
        std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIEnd = rBookmarks.end();
848
        ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > xTrans;
842
        while ( aIter != aIEnd )
849
        while ( aIter != aIEnd )
843
        {
850
        {
844
            rtl::OUString aBookmark = aIter->aBookmark;
851
            rtl::OUString aBookmark = aIter->aBookmark;
Lines 915-922 Link Here
915
            }
922
            }
916
            else
923
            else
917
            {
924
            {
918
                //  external link, use as-is
925
                //  external link
919
                pPDFData->SetLinkURL( aIter->nLinkId, aBookmark );
926
                using namespace ::com::sun::star;
927
928
                if (!xTrans.is())
929
                {
930
                    xTrans = uno::Reference < util::XURLTransformer >( 
931
                        ::comphelper::getProcessServiceFactory()->createInstance(
932
                        rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" )), uno::UNO_QUERY );
933
                }
934
935
                util::URL aURL;
936
                aURL.Complete = aBookmark;
937
938
                if (xTrans.is())
939
                    xTrans->parseStrict( aURL );
940
                
941
                pPDFData->SetLinkURL( aIter->nLinkId, aURL.Complete );
920
            }
942
            }
921
            aIter++;
943
            aIter++;
922
        }
944
        }
(-)openoffice.org.orig/sd/source/ui/unoidl/unomodel.cxx (-6 / +36 lines)
Lines 51-56 Link Here
51
#ifndef _COM_SUN_STAR_AWT_XDEVICE_HPP_
51
#ifndef _COM_SUN_STAR_AWT_XDEVICE_HPP_
52
#include <com/sun/star/awt/XDevice.hpp>
52
#include <com/sun/star/awt/XDevice.hpp>
53
#endif
53
#endif
54
#ifndef _COM_SUN_STAR_UTIL_URL_HPP_
55
#include <com/sun/star/util/URL.hpp>
56
#endif
57
#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
58
#include <com/sun/star/util/XURLTransformer.hpp>
59
#endif
54
60
55
#include <com/sun/star/embed/Aspects.hpp>
61
#include <com/sun/star/embed/Aspects.hpp>
56
62
Lines 1663-1669 Link Here
1663
	return nPage;
1669
	return nPage;
1664
}
1670
}
1665
1671
1666
void ImplPDFExportShapeInteraction( uno::Reference< drawing::XShape > xShape, SdDrawDocument& rDoc, vcl::PDFExtOutDevData& rPDFExtOutDevData )
1672
namespace
1673
{
1674
    rtl::OUString lcl_ConvertURL(uno::Reference< util::XURLTransformer > &xTrans, const OUString &rBookmark)
1675
    {
1676
        using namespace ::com::sun::star;
1677
1678
        if (!xTrans.is())
1679
        {
1680
            xTrans = uno::Reference < util::XURLTransformer >(
1681
                ::comphelper::getProcessServiceFactory()->createInstance(
1682
                    OUString::createFromAscii("com.sun.star.util.URLTransformer" )), uno::UNO_QUERY );
1683
        }
1684
1685
        util::URL aURL;
1686
        aURL.Complete = rBookmark;
1687
1688
        if (xTrans.is())
1689
            xTrans->parseStrict( aURL );
1690
1691
        return aURL.Complete;
1692
    }
1693
}
1694
1695
void ImplPDFExportShapeInteraction( uno::Reference< drawing::XShape > xShape, SdDrawDocument& rDoc, vcl::PDFExtOutDevData& rPDFExtOutDevData, uno::Reference< util::XURLTransformer > &xTrans)
1667
{
1696
{
1668
	const rtl::OUString sGroup   ( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.GroupShape" ) );
1697
	const rtl::OUString sGroup   ( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.GroupShape" ) );
1669
	const rtl::OUString sOnClick ( RTL_CONSTASCII_USTRINGPARAM( "OnClick" ) );
1698
	const rtl::OUString sOnClick ( RTL_CONSTASCII_USTRINGPARAM( "OnClick" ) );
Lines 1680-1686 Link Here
1680
				uno::Any aAny( xIndexAccess->getByIndex( i ) );
1709
				uno::Any aAny( xIndexAccess->getByIndex( i ) );
1681
				uno::Reference< drawing::XShape > xShape;
1710
				uno::Reference< drawing::XShape > xShape;
1682
				if ( aAny >>= xShape )
1711
				if ( aAny >>= xShape )
1683
					ImplPDFExportShapeInteraction( xShape, rDoc, rPDFExtOutDevData );
1712
					ImplPDFExportShapeInteraction( xShape, rDoc, rPDFExtOutDevData, xTrans );
1684
			}
1713
			}
1685
		}
1714
		}
1686
	}
1715
	}
Lines 1754-1760 Link Here
1754
								case presentation::ClickAction_PROGRAM :
1783
								case presentation::ClickAction_PROGRAM :
1755
								{
1784
								{
1756
									sal_Int32 nLinkId = rPDFExtOutDevData.CreateLink( aLinkRect, -1 );
1785
									sal_Int32 nLinkId = rPDFExtOutDevData.CreateLink( aLinkRect, -1 );
1757
									rPDFExtOutDevData.SetLinkURL( nLinkId, aBookmark );
1786
									rPDFExtOutDevData.SetLinkURL( nLinkId, lcl_ConvertURL(xTrans, aBookmark) );
1758
								}
1787
								}
1759
								break;
1788
								break;
1760
								case presentation::ClickAction_BOOKMARK :
1789
								case presentation::ClickAction_BOOKMARK :
Lines 1891-1896 Link Here
1891
    if( pDocShell && pDoc )
1920
    if( pDocShell && pDoc )
1892
    {
1921
    {
1893
        uno::Reference< awt::XDevice >  xRenderDevice;
1922
        uno::Reference< awt::XDevice >  xRenderDevice;
1923
        uno::Reference< util::XURLTransformer > xTrans;
1894
        const sal_Int32					nPageNumber = nRenderer + 1;
1924
        const sal_Int32					nPageNumber = nRenderer + 1;
1895
		PageKind						ePageKind = PK_STANDARD;
1925
		PageKind						ePageKind = PK_STANDARD;
1896
		sal_Bool						bExportNotesPages = sal_False;
1926
		sal_Bool						bExportNotesPages = sal_False;
Lines 1987-1993 Link Here
1987
													aAny = xShapes->getByIndex( i );
2017
													aAny = xShapes->getByIndex( i );
1988
													uno::Reference< drawing::XShape > xShape;
2018
													uno::Reference< drawing::XShape > xShape;
1989
													if ( aAny >>= xShape )
2019
													if ( aAny >>= xShape )
1990
														ImplPDFExportShapeInteraction( xShape, *pDoc, *pPDFExtOutDevData );
2020
														ImplPDFExportShapeInteraction( xShape, *pDoc, *pPDFExtOutDevData, xTrans );
1991
												}
2021
												}
1992
											}
2022
											}
1993
										}
2023
										}
Lines 2001-2007 Link Here
2001
										aAny = xShapes->getByIndex( i );
2031
										aAny = xShapes->getByIndex( i );
2002
										uno::Reference< drawing::XShape > xShape;
2032
										uno::Reference< drawing::XShape > xShape;
2003
										if ( aAny >>= xShape )
2033
										if ( aAny >>= xShape )
2004
											ImplPDFExportShapeInteraction( xShape, *pDoc, *pPDFExtOutDevData );
2034
											ImplPDFExportShapeInteraction( xShape, *pDoc, *pPDFExtOutDevData, xTrans );
2005
									}
2035
									}
2006
									
2036
									
2007
									// exporting transition effects to pdf
2037
									// exporting transition effects to pdf
Lines 2105-2111 Link Here
2105
								if ( nPage != -1 )
2135
								if ( nPage != -1 )
2106
									pPDFExtOutDevData->SetLinkDest( aIBeg->nLinkId, pPDFExtOutDevData->CreateDest( aPageRect, nPage, vcl::PDFWriter::FitRectangle ) );
2136
									pPDFExtOutDevData->SetLinkDest( aIBeg->nLinkId, pPDFExtOutDevData->CreateDest( aPageRect, nPage, vcl::PDFWriter::FitRectangle ) );
2107
								else
2137
								else
2108
									pPDFExtOutDevData->SetLinkURL( aIBeg->nLinkId, aIBeg->aBookmark );
2138
									pPDFExtOutDevData->SetLinkURL( aIBeg->nLinkId,  lcl_ConvertURL(xTrans, aIBeg->aBookmark));
2109
								aIBeg++;
2139
								aIBeg++;
2110
							}
2140
							}
2111
							rBookmarks.clear();
2141
							rBookmarks.clear();
(-)openoffice.org.orig/sw/inc/EnhancedPDFExportHelper.hxx (+7 lines)
Lines 39-44 Link Here
39
#ifndef _VCL_PDFEXTOUTDEVDATA_HXX
39
#ifndef _VCL_PDFEXTOUTDEVDATA_HXX
40
#include <vcl/pdfextoutdevdata.hxx>
40
#include <vcl/pdfextoutdevdata.hxx>
41
#endif
41
#endif
42
#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
43
#include <com/sun/star/util/XURLTransformer.hpp>
44
#endif
42
#ifndef _SWRECT_HXX
45
#ifndef _SWRECT_HXX
43
#include <swrect.hxx>
46
#include <swrect.hxx>
44
#endif
47
#endif
Lines 187-192 Link Here
187
    bool mbSkipEmptyPages;
190
    bool mbSkipEmptyPages;
188
    bool mbEditEngineOnly;
191
    bool mbEditEngineOnly;
189
192
193
    mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > xTrans;
194
190
    static LinkIdMap aLinkIdMap;
195
    static LinkIdMap aLinkIdMap;
191
    static FrmTagIdMap aFrmTagIdMap;
196
    static FrmTagIdMap aFrmTagIdMap;
192
197
Lines 196-201 Link Here
196
    void MakeHeaderFooterLinks( vcl::PDFExtOutDevData& rPDFExtOutDevData,
201
    void MakeHeaderFooterLinks( vcl::PDFExtOutDevData& rPDFExtOutDevData,
197
                                const SwTxtNode& rTNd, const SwRect& rLinkRect,
202
                                const SwTxtNode& rTNd, const SwRect& rLinkRect,
198
                                sal_Int32 nDestId, const String& rURL, bool bIntern ) const;
203
                                sal_Int32 nDestId, const String& rURL, bool bIntern ) const;
204
205
    void SetLinkURL(vcl::PDFExtOutDevData &rPDFExtOutDevData, sal_Int32 nLinkId, const String &rURL) const;
199
206
200
    public:
207
    public:
201
208
(-)openoffice.org.orig/sw/source/core/text/EnhancedPDFExportHelper.cxx (-4 / +31 lines)
Lines 64-69 Link Here
64
#ifndef _ZFORLIST_HXX
64
#ifndef _ZFORLIST_HXX
65
#include <svtools/zforlist.hxx>
65
#include <svtools/zforlist.hxx>
66
#endif
66
#endif
67
#ifndef _COMPHELPER_PROCESSFACTORY_HXX_
68
#include <comphelper/processfactory.hxx>
69
#endif
70
#ifndef _COM_SUN_STAR_UTIL_URL_HPP_
71
#include <com/sun/star/util/URL.hpp>
72
#endif
67
73
68
#ifndef _SWATRSET_HXX
74
#ifndef _SWATRSET_HXX
69
#include <swatrset.hxx>
75
#include <swatrset.hxx>
Lines 1128-1133 Link Here
1128
    delete pPageRange;
1136
    delete pPageRange;
1129
}
1137
}
1130
1138
1139
void SwEnhancedPDFExportHelper::SetLinkURL(vcl::PDFExtOutDevData &rPDFExtOutDevData,
1140
    sal_Int32 nLinkId, const String &rURL) const
1141
{
1142
    using namespace ::com::sun::star;
1143
1144
    if (!xTrans.is())
1145
    {
1146
        xTrans = uno::Reference < util::XURLTransformer >( 
1147
            ::comphelper::getProcessServiceFactory()->createInstance(
1148
                rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" )), uno::UNO_QUERY );
1149
    }
1150
1151
    util::URL aURL;
1152
    aURL.Complete = rURL;
1153
1154
    if (xTrans.is())
1155
        xTrans->parseStrict( aURL );
1156
1157
    rPDFExtOutDevData.SetLinkURL( nLinkId, aURL.Complete );
1158
}
1159
1131
/*
1160
/*
1132
 * SwEnhancedPDFExportHelper::EnhancedPDFExport()
1161
 * SwEnhancedPDFExportHelper::EnhancedPDFExport()
1133
 */
1162
 */
Lines 1315-1321 Link Here
1315
                                if ( bIntern )
1344
                                if ( bIntern )
1316
                                    pPDFExtOutDevData->SetLinkDest( nLinkId, nDestId );
1345
                                    pPDFExtOutDevData->SetLinkDest( nLinkId, nDestId );
1317
                                else
1346
                                else
1318
                                    pPDFExtOutDevData->SetLinkURL( nLinkId, aURL );
1347
                                    SetLinkURL( *pPDFExtOutDevData, nLinkId, aURL );
1319
1348
1320
                                // --> FME 2005-05-09 #i44368# Links in Header/Footer
1349
                                // --> FME 2005-05-09 #i44368# Links in Header/Footer
1321
                                if ( bHeaderFooter )
1350
                                if ( bHeaderFooter )
Lines 1381-1387 Link Here
1381
                        if ( bIntern )
1410
                        if ( bIntern )
1382
                            pPDFExtOutDevData->SetLinkDest( nLinkId, nDestId );
1411
                            pPDFExtOutDevData->SetLinkDest( nLinkId, nDestId );
1383
                        else
1412
                        else
1384
                            pPDFExtOutDevData->SetLinkURL( nLinkId, aURL );
1413
                            SetLinkURL( *pPDFExtOutDevData, nLinkId, aURL );
1385
1414
1386
                        // --> FME 2005-05-09 #i44368# Links in Header/Footer
1415
                        // --> FME 2005-05-09 #i44368# Links in Header/Footer
1387
                        const SwFmtAnchor &rAnch = pFrmFmt->GetAnchor();
1416
                        const SwFmtAnchor &rAnch = pFrmFmt->GetAnchor();
Lines 1652-1658 Link Here
1652
                }
1681
                }
1653
            }
1682
            }
1654
            else
1683
            else
1655
                pPDFExtOutDevData->SetLinkURL( aIBeg->nLinkId, aBookmarkName );
1684
                SetLinkURL( *pPDFExtOutDevData, aIBeg->nLinkId, aBookmarkName );
1656
1685
1657
            aIBeg++;
1686
            aIBeg++;
1658
        }
1687
        }
Lines 1740-1746 Link Here
1740
                    if ( bIntern )
1769
                    if ( bIntern )
1741
                        rPDFExtOutDevData.SetLinkDest( nHFLinkId, nDestId );
1770
                        rPDFExtOutDevData.SetLinkDest( nHFLinkId, nDestId );
1742
                    else
1771
                    else
1743
                        rPDFExtOutDevData.SetLinkURL( nHFLinkId, rURL );
1772
                        SetLinkURL( rPDFExtOutDevData, nHFLinkId, rURL );
1744
                }
1773
                }
1745
            }
1774
            }
1746
        }
1775
        }

Return to issue 55736