 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Mar 01 Sep, 2009 4:01 pm Asunto: Numero de copias impresas desde word |
|
|
Hola amigos, aqui abusando de su paciencia. me podría indicar alguien como hacer que se impriman n copias desde word ?
| Código: |
void __fastcall TForm_hazfacmace::manda_a_word(TStringList *campos_z, TStringList *valores_z)
{
Variant vWord, vDocumentos, vDocumento, vSeleccion, vBuscar;
int ii_z=0;
String arch_z, sPath, sFicheroPlantilla, sFicheroGenerado;
arch_z = formatofact_z;
sPath = ExtractFilePath( Application->ExeName );
sFicheroPlantilla = arch_z;
sFicheroGenerado = sPath + "factura2.doc";
///-------> Area de llamado a Word <vWord>Checked );
vWord.OlePropertySet( "Visible", false);
//--- Abre el documento que usaremos como plantilla
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
);
//--- Selecciona todo el documento para reemplazar
vSeleccion = vWord.OlePropertyGet( "Selection" );
vSeleccion.OlePropertyGet( "Range" ).OleProcedure( "SetRange", 0, 0 );
vBuscar = vSeleccion.OlePropertyGet( "Find" );
vBuscar.OleProcedure( "ClearFormatting" );
vBuscar.OlePropertyGet( "Replacement" ).OleProcedure( "ClearFormatting" );
//--- sustituimos una palabra
// Aqui podemos meter el bucle que va a ir reemplanzando palabras
for( ii_z = 0; ii_z <campos_z>Count; ii_z++) {
//vSeleccion.OleProcedure("HomeKey", 6,0); // 6=wdStory 0=wdMode //principio documento vSeleccion = vWord.OlePropertyGet( "Selection" );
//vSeleccion= vWord.OlePropertyGet( "Selection" );
//vSeleccion.OlePropertyGet( "Range" ).OleProcedure( "SetRange", 0, 0 );
vBuscar.Exec( Procedure( "Execute" )
<<campos_z>Strings[ii_z]+"}}" // Texto a buscar
<< VT_EMPTY // Coincidir mayusculas y minusculas
<< VT_EMPTY // Solo palabras completas
<< VT_EMPTY // Usar caracteres comodin
<< VT_EMPTY // Suena como
<< VT_EMPTY // Todas las formas de la palabra
<< true // Hacia adelante
<< VT_EMPTY // Wrap
<< VT_EMPTY // Format
<<valores_z>Strings[ii_z].Trim().c_str() // Reemplazar con...
<< 2 // 2 = reemplazar todo
);
}
//--- salvamos automaticamente si procede y cerramos Word
vDocumento.OleProcedure( "SaveAs", sFicheroGenerado.c_str() );
vDocumento.OleProcedure("PrintOut");
vDocumento.OleProcedure( "Save");
vDocumento.OleProcedure( "Close", 0xFFFFFFFF);
vWord.OleProcedure( "Quit" );
IOleMessageFilter::Revoke(); // Si existe algún dato pendiente le pregunta la acción al usuario
vWord = vDocumentos = vDocumento = vSeleccion = vBuscar = Unassigned;
}
//---------------------------------------------------------------------------
|
aqui me falta :
| Código: |
// estoy inventando aqui:
vDocumento.OleProcedure("Number of copies 3");
vDocumento.OleProcedure("PrintOut");
|
Gracias. _________________ La caja decía, requiere Win95 o superior así que instalé Linux. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 01 Sep, 2009 4:47 pm Asunto: |
|
|
| Código: | Variant np = Variant::NoParam();
vWord.OleProcedure("PrintOut", np, np, np, np, np, np, np, 2 /*Nº de copias*/); |
(Lo he probado con la versión 6 en Word 2007) |
|
| Volver arriba |
|
 |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Mar 01 Sep, 2009 6:13 pm Asunto: |
|
|
buaaaaa, usando builer 5++ y word 2003 no ha funcionado, solo imprime la primera copia.
Voy a intentar mandar
de una en una. Gracias _________________ La caja decía, requiere Win95 o superior así que instalé Linux. |
|
| Volver arriba |
|
 |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Mar 01 Sep, 2009 7:05 pm Asunto: siempre si |
|
|
Siempre si, Leo tiene toda la razón del mundo, por eso es un master.
| Código: |
Variant np = Variant::NoParam();
vWord.OleProcedure("PrintOut", np, np, np, np, np, np, np, 3 );
|
funciona perfecto, lo que pasaba es que tengo una impresora virtual pdf generator y allí no se veian las copias. Pero ya mandándolo directo a la impresora pues ya funciona.
Gracias _________________ La caja decía, requiere Win95 o superior así que instalé Linux. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|