Página 1 de 1

[RESUELTO] Ruta guardar en PDF

Publicado: Mar Feb 28, 2023 1:37 pm
por ugab
Estimados buenos días, tengo una planilla de pedidos, lo que quiero hacer es que luego de imprimir las 2 copias, guarde el archivo como pdf según parámetros dados, pero no hay caso no guarda.
Copio la macro por si alguien me puede ayudar.
rem IMPRESION ----------------------------------------------

rem define variables
rem dim document as object
rem dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$AA$96:$AO$125" ' AREA IMPRESION DEL RECIBO

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

rem ----------------------------------------------------------------------
dim args6(1) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Copies"
args6(0).Value = 2
args6(1).Name = "Collate"
args6(1).Value = true

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args6())

rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, args6())


rem GUARDA EL PDF--------------------------------------------------------

oSheet = ThisComponent.CurrentController.getActiveSheet
REM sRuta = oDlgCarpeta.Directory
recibo = oSheet.getCellRangeByName("Am101").value
dia = day(date)
mes = month(date)
ano = year(date)
hora = time
dim opdf1(3) as new com.sun.star.beans.PropertyValue
opdf1(0).Name = "URL"
rem opdf1(0).Value = "file:////home/epf/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf"
REM opdf1(0).Value = "file:////home/cpch/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf"
REM opdf1(0).Value = "file:///C:/DATOS/Parque/PDF/" & mes & " " & ano & " " & hora & " " & recibo & " " & Usuario &".pdf"
rem opdf1(0).Value = "C/DATOS/Parque/Pdf" & dia & " " & mes & " " & ano & " " & hora & " " & recibo & " " & Usuario & ".pdf"
rem opdf1(0).Value = "file:///home/parque/Parque/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf"
opdf1(1).Name = "FilterName"
opdf1(1).Value = "calc_pdf_Export"
opdf1(2).Name = "FilterData"
opdf1(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,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,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("DocumentOpenPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PermissionPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
opdf1(3).Name = "SelectionOnly"
opdf1(3).Value = False

dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, opdf1())
dispatcher.executeDispatch(document, ".uno:DeletePrintArea", "", 0, Array()) Estimados les dejo como arme la ruta, no es 100% como la quería pero me sirvio, gracias como siembre
opdf1(0).Value = "file:///C:/DATOS/Parque/PDF/pdf" & "Cuota" & dia & "-" & mes & "-" & ano & "-" & recibo & ".pdf"

Re: Ruta guardar en PDF

Publicado: Mar Feb 28, 2023 4:27 pm
por FJCC-ES
Todas las líneas donde el código asigna un valor al URL (opdf1(0).Value) empiezan con REM o rem. Una línea de código que empieza con REM o rem es un comentario y no se ejecuta. Borre el texto REM en la línea que asigna el URL donde quiere guardar el PDF.

Código: Seleccionar todo

opdf1(0).Name = "URL"
rem opdf1(0).Value = "file:////home/epf/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf"
REM opdf1(0).Value = "file:////home/cpch/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf"
REM opdf1(0).Value = "file:///C:/DATOS/Parque/PDF/" & mes & " " & ano & " " & hora & " " & recibo & " " & Usuario &".pdf"
rem opdf1(0).Value = "C/DATOS/Parque/Pdf" & dia & " " & mes & " " & ano & " " & hora & " " & recibo & " " & Usuario & ".pdf"
rem opdf1(0).Value = "file:///home/parque/Parque/PDF/" + dia + " " + mes + " " + ano + " " + hora + " " + recibo + " " + Usuario + ".pdf" 

Re: Ruta guardar en PDF

Publicado: Mar Feb 28, 2023 5:18 pm
por ugab
Disculpa omití decir que lo he hecho y no me guarda nada.
Estoy con Windows 10

Re: Ruta guardar en PDF

Publicado: Mar Feb 28, 2023 9:46 pm
por FJCC-ES
Esta macro guarda las celdas AA96:AO125 de la hoja actual en el archivo C:\Users\fjcc\Desktop\Test.pdf. ¿Si cambia la ruta, funciona la macro en su sistema?

Código: Seleccionar todo

Sub Main

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
'dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$AA$96:$AO$125" ' AREA IMPRESION DEL RECIBO

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

rem GUARDA EL PDF--------------------------------------------------------

oSheet = ThisComponent.CurrentController.getActiveSheet
REM sRuta = oDlgCarpeta.Directory
'recibo = oSheet.getCellRangeByName("Am101").value
'dia = day(date)
'mes = month(date)
'ano = year(date)
'hora = time
dim opdf1(3) as new com.sun.star.beans.PropertyValue
opdf1(0).Name = "URL"
opdf1(0).Value = "file:///C:/Users/fjcc/Desktop/Test.pdf" 

opdf1(1).Name = "FilterName"
opdf1(1).Value = "calc_pdf_Export"
opdf1(2).Name = "FilterData"
opdf1(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,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,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("DocumentOpenPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PermissionPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
opdf1(3).Name = "SelectionOnly"
opdf1(3).Value = False

dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, opdf1())
dispatcher.executeDispatch(document, ".uno:DeletePrintArea", "", 0, Array()) 
End Sub

Re: Ruta guardar en PDF

Publicado: Mié Mar 01, 2023 4:33 pm
por ugab
Hola muchas gracias por la ayuda, primero que nada.
Probé y si funciona, pero cuando le paso el siguiente código no graba nada.
opdf1(0).Value = "file:///C:/Users/mlcol/OneDrive/Escritorio/PDF/" & dia & " " & mes & " " & ano & " " & hora & " " & recibo & " " & Usuario & ".pdf"
Lo raro que en Ubuntu funciona sin problema, el error se da en Windows
La verdad no se donde le estoy errando

Re: Ruta guardar en PDF

Publicado: Mié Mar 01, 2023 8:38 pm
por Longi
Buenas!
Yo no me aclaro con Linux (uno tiene muchas limitaciones), pero creo que las rutas son distintas en Linux y en Windows, de tal manera que donde en Windows se usa "/" en Linux se usa "\".
Mira a ver si usando la función ConvertTOURL(.....................) a ver qué pasa. (No garantizo nada, más bien garantizo que no funcionará, pero al menos te cambia de posición la barra).

Un saludo!

Re: [RESUELTO] Ruta guardar en PDF

Publicado: Lun Mar 13, 2023 2:02 pm
por ugab
Estimados les dejo como arme la ruta, no es 100% como la quería pero me sirvio, gracias como siembre

opdf1(0).Value = "file:///C:/DATOS/Parque/PDF/" & "Cuota" & dia & "-" & mes & "-" & ano & "-" & recibo & ".pdf"