Page 1 of 1

Usar Pdfcreator para imprimir XML

Posted: Sun Mar 17, 2013 1:04 am
by Alin
Hola,

Tengo la necesidad de imprimir en batch archivos xml que se encuentran en determinado folder, estoy tratando de hacerlo con pdfcreator, ya que con bullzip no tuve suerte, estoy usando el código de abajo para lograr el objetivo pero me esta marcando error:
Print timeout
Error BASE/1004 No exported method: CSTART
o también este error si utilizo la opción oPDFC:cVisible := .t.
Print timeout
Error BASE/1005 No exported variable: CVISIBLE

Code: Select all

procedure imprimirArchivoXML( cfileName )
 local nEvent := 0
 local nTime

   oPDFC:cVisible := .t.
   If oPDFC:cStart("/NoProcessingAtStartup") = .f. 
      If oPDFC:cStart("/NoProcessingAtStartup", .t.) = .f.
         wait "Init printer error!"
         return nil
       EndIf
   EndIf
  
   oPDFC:_cOption('UseAutosave',1)
   oPDFC:_cOption('UseAutosaveDirectory',1)
   oPDFC:_cOption("AutosaveFormat",0)
   DefaultPrinterBak := oPDFC:cDefaultprinter
   oPDFC:cDefaultprinter := "PDFCreator"
   oPDFC:cClearCache()
   oPDFC:_cOption('AutosaveFilename',"test")
   oPDFC:_cOption('AutosaveDirectory', "c:\temporal")

   oPDFC:cSaveOptions() 

// print something 
//oPdfC:cPrintPDFCreatorTestpage()
   oPdfC:cPrintFile( cfileName )

   oPdfC:cPrinterStop := .F.

   nTime := hb_MilliSeconds()
   do while nEvent == 0 .AND. hb_MilliSeconds() - nTime < 10000
      hb_idleSleep( 0.5 )
      /* The following dummy line is required to allow COM server to send event [Mindaugas] */
      oPdfc:_cOption( "UseAutosave" )
   enddo

   if nEvent == 0
      ? "Print timeout"
   elseif nEvent == 1
      ? "Printed successfully"
   elseif nEvent == 2
      ? "Error:", oPdfc:cError():Description
   else
      ? "Unknown event"
   endif

   //oPdfC:cDefaultPrinter := cDefaultPrinter
   oPDFC:cClose()
   oPdfC := NIL

return nil
La necesidad de hacerlo así es porque tampoco he encontrado una forma de enviar directamente a impresión el archivo xml, así que opté por convertirlo a pdf, pero no me funciona...

Agradezco cualquier ayuda con el tema.

Saludos,
Javier

Re: Usar Pdfcreator para imprimir XML

Posted: Sun Mar 17, 2013 3:20 pm
by hmpaquito
Alin,

No te molestes, pero me suena a que lo que pretendes es matar _ a cañonazos.

¿ No será más fácil, más controlable, hacer una impresión de xml, utilizando por ejemplo la función de recorrido de xml que Antonio Linares, amablemente publicó en el foro ? Yo pienso que sí. Para imprimir el xml te bastará una impresión que vaya incrementando el margen de impresión según el elemento impreso.

Saludos

Re: Usar Pdfcreator para imprimir XML

Posted: Sun Mar 17, 2013 4:10 pm
by Alin
Hola,

Al contrario amigo, gracias por contestar...

No tengo absoluta idea de lo que me hablas, pero si pudieras compartir algo de código acerca de lo que dices para darme alguna luz.

Agradezco la ayuda.

Saludos,
Javier

Re: Usar Pdfcreator para imprimir XML

Posted: Sun Mar 17, 2013 9:12 pm
by hmpaquito
Javier,

En este hilo tienes la manera de recorrer un .xml: http://forums.fivetechsupport.com/viewt ... xml+viewer

Usa ese "recorrido" para imprimirlo, algo asi como

PRINT oPrn
Aqui recorre imprimiendo los nodos del xml. Utiliza el metodo Depth() para calcular el margen de impresion de cada nodo.
END PRINT

Saludos