Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Imprimir a PostScript a través de MS Word

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Imprimir a PostScript a través de MS Word Responder citando

Hola,

necesito imprimir documentos de word de forma automática hacia formato pdf con la impresora PDF de Acrobat.

Tengo un pequeño trozo de código, similar a otros casos que he visto por aquí que os muestro a continuación:

Código:
       
        String sFicheroPlantilla = "c:\\wordprinterw\\documento.doc";
        String sFicheroGenerado  = "c:\\wordprinterw\\documento.pdf";

        vWord = CreateOleObject("Word.Application");
        vWord.OlePropertySet("Visible", false);
        vWord.OlePropertySet("DisplayAlerts", false);

        vDocumentos = vWord.OlePropertyGet("Documents");

        vDocumento = vDocumentos.OleFunction("Open",
            sFicheroPlantilla.c_str(),  // Documento
            false,                      // Confirmar conversiones
            true,                       // Modo se solo lectura
            false,                      // Añadir al menu de ficheros recientes
            ""                          // Clave del documento
        );

/*
PrintOut(Background, Append, Range, OutputFileName, From, To,
   Item, Copies, Pages, PageType, PrintToFile, Collate, FileName,
   ActivePrinterMacGX, ManualDuplexPrint)

   Range:
   0 Prints the entire document
   1 Prints the selection
   2 Prints the current page
   3 Prints the range of pages specified by the From and To parameters
   4 Prints the range of pages specified by Pages parameter
   */
        Variant vAux = "";
        Variant vBackground= true;
        Variant vAppend = false;
        Variant vRange = 0;
        Variant vFicheroGenerado = "c:\\wordprintew\\documento.pdf";       
        Variant vFicheroPlantilla = "c:\\wordprintew\\documento.doc";
        Variant vPrintToFile = false;

        vWord.OleProcedure("PrintOut",vBackground,vAppend,vRange,vFicheroGenerado,vAux,vAux,vAux,vAux,vAux,vAux,vPrintToFile,vAux,vFicheroPlantilla);


        while (vWord.OlePropertyGet("BackgroundPrintingStatus")>0)
        {
            Sleep(2000);
        }

 //       vDocumento.OleProcedure( "Close", -1);

        vWord.OleProcedure("Quit");

        vWord = vDocumentos = vDocumento = Unassigned;




Bien, pues el problema me aparece al llamar al método PrintOut. Si lo llamo sin parámetros, por defecto, funciona bien. Pero si trato de indicar el archivo de salida OutputFilename, se produce una exepción en MSWord indicando que su tipo es incorrecto.
Como podeis observar paso un Variant conteniendo una ruta para el archivo de salida, no entiendo que puede pasar.

Por otra parte, como habreis podido deducir, el propósito es generar un PDF a partir de un documento de Word de forma automática sin necesidad de introducir ningún valor a mano. Si empleo PrintOut sin parámetros abre la caja de Guardar como... y eso es lo que quiero evitar.


Quedo abierto a sugerencias, y perdón por el ladrillo.

Un saludo.
Volver arriba
Mensaje    Asunto: Responder citando

Nota:

en el código sobran algunas líneas, las referentes a vDocumentos y vDocumento, fruto de las pruebas variadas que he ido realizando.
Ruego disculpas.
Volver arriba
Mensaje    Asunto: Responder citando

Finalmente trataré de crear archivos PS con MS Publisher Color Printer, por eso el título del post.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.