Página 1 de 1

[RESUELTO] Macro guardar un archivo PDF con DatosdeCelda

Publicado: Jue May 24, 2018 7:40 pm
por Joseph_Cordon
Buena tarde. Soy nuevo y voy a intentar ser lo más específico posible con mi problema.

En estos foros he recopilado información para crear una macro que genere una hoja (En este ejemplo adjunto, la hoja se llama Contrato) en formato PDF. Hasta ahora funciona muy bien, ya que dado una dirección, va y lo guarda perfectamente.

El problema es que he intentado en varias ocasiones darle un nombre personalizado al archivo. Osea, si el contrato es de Juan Perez (El nombre está en la celda C2 de la hoja Datos) que el PDF generado, lo generé con el nombre Contrato Juan Perez.pdf

Si pudieran ayudarme con el código para que lo genere de tal manera estaria muy agradecido. Ya que como comento, he intentado realizarlo en varias ocasiones y no lo pude realizar correctamente.

Gracias por su ayuda de antemano.

Re: Macro para guardar un archivo PDF con datos de Celda

Publicado: Vie May 25, 2018 3:13 am
por FJCC-ES

Código: Seleccionar todo

Sub ExHoUno
   Call BorrarAreas
        document = ThisComponent.CurrentController.Frame
      dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
       dim args2(0) as new com.sun.star.beans.PropertyValue
   args2(0).Name = "ToPoint"
  args2(0).Value = "imp1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
'FJCC----------------
oHojaDatos = ThisComponent.Sheets.getByName("Datos")
oCeldaC2 = oHojaDatos.getCellrangeByName("C2")
Nombre = oCeldaC2.String
URL = "file:///C:/Users/javier.lopez/Desktop/contratocompass/Contrato " & Nombre & ".pdf"
'FJCC ----------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())
    dim args4(2) as new com.sun.star.beans.PropertyValue
   args4(0).Name = "URL"
  args4(0).Value = URL 'FJCC
   args4(1).Name = "FilterName"
  args4(1).Value = "calc_pdf_Export"
   args4(2).Name = "FilterData"
  args4(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EmbedStandardFonts",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args4())
   args2(0).Name = "ToPoint"
  args2(0).Value = "$F$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
End Sub

Re: Macro para guardar un archivo PDF con datos de Celda

Publicado: Vie May 25, 2018 3:31 pm
por Joseph_Cordon
Buenísimo, muchas gracias!!! Dejo cerrado el tema