diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index 4cc0ce6..ab9b586 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -639,6 +639,8 @@ included in c-context files, so c++ style stuff will cause problems.
 #define FN_NUMBER_CURRENCY					(FN_FORMAT2 + 127)
 #define FN_NUMBER_PERCENT					(FN_FORMAT2 + 128)
 
+#define FN_EXPORT_OLE_AS_PDF                (FN_FORMAT2 + 129)	  /* Test PDF */
+
 #define FN_FRAME_CHAIN						(FN_FORMAT2 + 136)
 #define FN_FRAME_UNCHAIN					(FN_FORMAT2 + 137)
 
diff --git a/sw/sdi/_frmsh.sdi b/sw/sdi/_frmsh.sdi
index 82d6aff..1f0a692 100644
--- a/sw/sdi/_frmsh.sdi
+++ b/sw/sdi/_frmsh.sdi
@@ -173,6 +173,13 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    FN_EXPORT_OLE_AS_PDF // status(final|play)
+    [
+        ExecMethod = Execute ;
+        StateMethod = GetState ;
+        DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+    ]
+
     SID_FRAME_LINESTYLE // status()
     [
         ExecMethod = ExecFrameStyle ;
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 5863907..c36948d 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -2034,6 +2034,30 @@ SfxVoidItem FormatColumns FN_FORMAT_COLUMN
     GroupId = GID_FORMAT;
 ]
 
+SfxVoidItem ExportPDF FN_EXPORT_OLE_AS_PDF
+()
+[
+    /* flags: */
+    AutoUpdate = FALSE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerItem;
+    Asynchron;
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_FRAME;
+]
+
 //--------------------------------------------------------------------------
 SwFmtDrop FormatDropcap FN_FORMAT_DROPCAPS
 
diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src
index c033410..9afe42a 100644
--- a/sw/source/ui/app/mn.src
+++ b/sw/source/ui/app/mn.src
@@ -969,6 +969,12 @@ Menu MN_OLE_POPUPMENU
             HelpID = FN_FORMAT_FRAME_DLG ;
             Text [ en-US ] = "Object..." ;
         };
+        MenuItem
+        {
+            Identifier = FN_EXPORT_OLE_AS_PDF ;
+            HelpID = FN_EXPORT_OLE_AS_PDF ;
+            Text [ en-US ] = "Export as P~DF..." ;
+        };
         MN_FRM_CAPTION_ITEM
     };
 };
diff --git a/sw/source/ui/shells/frmsh.cxx b/sw/source/ui/shells/frmsh.cxx
index 0c5bea7..a12276d 100644
--- a/sw/source/ui/shells/frmsh.cxx
+++ b/sw/source/ui/shells/frmsh.cxx
@@ -88,6 +88,13 @@
 #include <svx/dialogs.hrc>
 // <--
 
+#include <sfx2/filedlghelper.hxx>
+#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
+#include <com/sun/star/beans/PropertyValues.hpp>
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/uno/Any.h>
+
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
@@ -126,6 +133,67 @@ void SwFrameShell::Execute(SfxRequest &rReq)
 
     switch ( nSlot )
     {
+        case FN_EXPORT_OLE_AS_PDF:
+        {
+            const int nSel = rSh.GetSelectionType();
+            if (nSel & nsSelectionType::SEL_OLE)
+{
+sfx2::FileDialogHelper aDlgHelper( ::ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION, 0 );
+aDlgHelper.SetTitle(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Export as PDF" )));
+aDlgHelper.AddFilter( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "*.pdf" )), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "*.pdf" )) );
+aDlgHelper.SetCurrentFilter( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "*.pdf" )) );
+aDlgHelper.Execute();
+String aFile(aDlgHelper.GetPath());
+
+Reference< frame::XController > xController = rSh.GetView().GetViewFrame()->GetFrame().GetFrameInterface()->getController();
+::beans::PropertyValues aPropertyValue(3);
+aPropertyValue[0].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "FilterName" ) );
+aPropertyValue[0].Value <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "writer_pdf_Export" ) );
+Sequence< ::beans::PropertyValue > aSequence(10);
+::beans::PropertyValue aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "UseLosslessCompression" ));
+aValue.Value <<= sal_Bool(sal_False);
+aSequence[0] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Quality" ));
+aValue.Value <<= sal_Int32(90);
+aSequence[1] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ReduceImageResolution" ));
+aValue.Value <<= sal_Bool(sal_False);
+aSequence[2] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "MaxImageResolution" ));
+aValue.Value <<= sal_Int32(300);
+aSequence[3] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "UseTaggedPDF" ));
+aValue.Value <<= sal_Bool(sal_False);
+aSequence[4] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ExportNotes" ));
+aValue.Value <<= sal_Bool(sal_False);
+aSequence[5] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "UseTransitionEffects" ));
+aValue.Value <<= sal_Bool(sal_True);
+aSequence[6] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "FormsType" ));
+aValue.Value <<= sal_Int32(0);
+aSequence[7] = aValue;
+uno::Any aAny;
+Reference< view::XSelectionSupplier > xView( xController, UNO_QUERY );
+xView->getSelection() >>= aAny;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Selection" ));
+aValue.Value <<= aAny;
+aSequence[8] = aValue;
+aValue.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "" ));
+aValue.Value <<= sal_Int32(0);
+aSequence[9] = aValue;
+aPropertyValue[1].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "FilterData" ) );
+aPropertyValue[1].Value <<= aSequence;
+aPropertyValue[2].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Selection" ) );
+aPropertyValue[2].Value <<= sal_Bool(sal_True);
+Reference< frame::XStorable > xStorable(xController->getModel(), uno::UNO_QUERY );
+xStorable->storeToURL(aFile, aPropertyValue);
+}
+            rReq.Ignore();
+        }
+        break;
         case FN_FRAME_TO_ANCHOR:
             if ( rSh.IsFrmSelected() )
             {
@@ -676,6 +744,8 @@ void SwFrameShell::GetState(SfxItemSet& rSet)
         {
             switch ( nWhich )
             {
+                case FN_EXPORT_OLE_AS_PDF:
+                break;
                 case RES_FRM_SIZE:
                 {
                     SwFmtFrmSize aSz(aMgr.GetFrmSize());
@@ -1128,5 +1198,5 @@ void  SwFrameShell::StateInsert(SfxItemSet &rSet)
     if ((nSel & nsSelectionType::SEL_GRF) || (nSel & nsSelectionType::SEL_OLE))
         rSet.DisableItem(FN_INSERT_FRAME);
 }
-
+ 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
