Página 1 de 1

[RESUELTO] Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 3:54 pm
por juanma230382
Hola amigos buenos dias, tengo una dificultad grande, he investigado sin éxito para encontrar la manera de generar conversión de archivos a pdf pero que sean con el estandar pdf/a, tenemos integrado la generación con JodConverter y PyODConverter que usan openoffice para su operación, los archivos han sido convertidos de manera exitosa pero ahora un nuevo requerimiento nos hace que su salida sea con el estandar pdf/a, revisando el openoffice en su parte funcional por programa, en los metodos de exportación aparece un checkbox para que se exporte el pdf con el estandar pdf/a, ahora quisiera saber si es posible hacerlo por consola, si es posible al momento de generarlo.. o si primero se convierta a pdf y luego se convierta a pdf/a, si existe asi sea un macro para tal fin, cualquier mecanismo o manera de operación es valido..!

Cualquier cosa seguiré investigando, si encuentro alguna respuesta, la publicare por aqui... !!!

De antemano muchas gracias por cualquier colaboración o luz que me puedan brindar...!!!

Re: Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 5:26 pm
por mauricio
Hola...

Solo establece el filtro SelectPdfVersion a 1 como se explica aquí: http://wiki.openoffice.org/wiki/API/Tut ... PDF_export

Saludos

Re: Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 5:52 pm
por SLV-es
Hola, y bienvenido al foro

No sé cómo se hará desde consola. En caso de hacerlo con una macro, éste sería un posible sistema:

Código: Seleccionar todo

Sub Export2Pdf ( cDestinoURL As String, TipoPDFA As Boolean )

Dim document   As Object
Dim dispatcher As Object
Dim nValor As Integer

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

If TipoPDFA Then nValor = 1

Dim args1(2) As New com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = cDestinoURL  ' en formato URL "file:///Unidad:/Carpetas.../NombreDocumento.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export" ' calc_pdf_Export para calc, etc
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
                       Array("Quality",0,100,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,nValor,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,nValor,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("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())

End Sub
Las diferencias son que al exportar en formato PDF/A, los array que tienen como primer argumento SelectPdfVersion y FormsType cambian el valor de su tercer argumento de 0 (modo normal) a 1 (modo PDF/A).

Esta macro se ha creado utilizando la grabadora de macros, y estudiando las diferencias entre lo grabado al exportar en formato normal, y en formato PDF/A.

Espero que te sirva.

Saludos


Recomendaciones a los recién llegados
Si con las respuestas obtenidas consideras que se ha dado solución a tu consulta :), por favor, marca el tema como [RESUELTO],
(aunque la solución obtenida sea que no la hay :(, o hayas resuelto tú mism@ el problema :bravo: ).
Si no sabes cómo, por favor, lee Como marcar como [RESUELTO] un tema.
Dado que recien has desembarcado en esta costa, te recomiendo que leas la Guía de supervivencia del foro :super: .
Gracias por participar en el foro y ayudar a que todo esté ordenado.

Re: Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 5:54 pm
por SLV-es
Vaya, mientras preparaba la respuesta, veo que Mauricio se ha adelantado :D

Re: Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 8:07 pm
por juanma230382
Woww.... muchas graciassss por la ayuda tan efectivaa y rapida a la misma.... !!!! De verdad estoy muy agradecidoooo......!! voy a probar la funcionalidad... !!!

Re: Generar PDF por consola con estandar PDF/A

Publicado: Jue Sep 06, 2012 11:16 pm
por juanma230382
Compañeros... no se si abrir otro hilo con esta pregunta... pero quisiera saber si es posible cambiarle el valor por defecto que trae el openoffice... hay varias cosas que vimos ahi y nos gustaria dejarlas por defecto, sin tener que recurrir a cambiar todos los archivos php que hacen el respectivo llamados a las funciones... gracias...!!!!!