** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Marca de agua solo al imprimir
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoMarca de agua solo al imprimir

 Responder Responder
Autor
Mensaje
malandrin Ver desplegable
Nuevo
Nuevo


Unido: 07/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Tema: Marca de agua solo al imprimir
    Enviado: 16/Noviembre/2011 a las 18:08
Hola!
 
estoy tratando de aplicar una marca de agua en un documento, hasta aquí es fácil, lo malo es que quiero que solo se vea en el documento impreso y no en pantalla.
 
Había pensado aplicarla en el evento al imprimir del documento, pero no veo ese evento en ningún sitio, he buscado por Internet y no he encontrado nada que me ayude, ¿sabéis si es posible hacerlo de algún modo?
 
Muchas gracias tíos.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: en línea
Puntos: 3379
Enlace directo a este mensaje Enviado: 17/Noviembre/2011 a las 10:13
Hola.
Busca en el foro offline, subforo word el término DocumentBeforePrint
Posiblemente  alguno de los hilos que aparecen aporte ideas para solucionar el problema.
Ya comentas.
Un saludo a todos
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5668
Enlace directo a este mensaje Enviado: 17/Noviembre/2011 a las 14:31

En este ejemplo, se pide confirmación al usuario antes de imprimir el documento. Este código se debe colocar en un módulo de clase e inicializar correctamente una instancia de la clase para ver cómo funciona este ejemplo; vea Utilizar eventos con el objeto Application (no tiene desperdicio) para obtener información sobre cómo hacerlo. (Obtenido de la ayuda).

Public WithEvents appWord as Word.Application
Private Sub appWord_DocumentBeforePrint (ByVal Doc As Document, Cancel As Boolean)
  Dim intResponse As Integer
  intResponse = MsgBox("Have you checked the " & "printer for letterhead?",  vbYesNo)
  If intResponse = vbNo Then Cancel = True
End Sub

 
Lo que no he conseguido aún es lo de la marca de agua, la grabadora no me devuelve código de esa acción. Unhappy
 
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
malandrin Ver desplegable
Nuevo
Nuevo


Unido: 07/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 17/Noviembre/2011 a las 19:29
Hola!
 
gracias a los dos. Lo tengo, a medias, no logro que funcione con una marca de agua, ni siquiera la macro que me crea word funciona:S pero puedo insertar un wordart sobre la marcha y luego eliminarlo.
 
En ThisDocument: 
Private Sub Document_Open()
SetupEventos Me.Application
End Sub
 
en un módulo: mdlEventos
Public e As clsEventos
Public Sub SetupEventos(theApp As Application)
Set e = New clsEventos
Set e.myApp = theApp
End Sub
 
en un módulo de clase: clsEventos
Public WithEvents myApp As Word.Application
Dim Marca As Shape
Public Sub myApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Set Marca = ActiveDocument.Shapes.AddTextEffect(msoTextEffect2, "Copia no controlada", "Arial Black", 36#, msoFalse, msoFalse, 100.5, 248.25)
Marca.Fill.ForeColor.ObjectThemeColor = wdThemeColorBackground1
Marca.Fill.ForeColor.TintAndShade = -0.05
Marca.Fill.Solid
Marca.Line.Visible = msoFalse
Marca.Fill.Visible = msoTrue
Marca.Fill.ForeColor.ObjectThemeColor = wdThemeColorBackground1
Marca.Fill.ForeColor.TintAndShade = -0.05
Marca.Fill.Transparency = 0#
Marca.Line.Weight = 0.75
Marca.Line.Transparency = 0#
Marca.Line.Visible = msoFalse
Marca.LockAspectRatio = msoFalse
Marca.Top = 0
Marca.Height = 600
Marca.Width = 425
ActiveDocument.Sections(1).Range.ShapeRange.ZOrder 5
End Sub
Private Sub myApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Marca.Delete
End Sub



Editado por malandrin - 17/Noviembre/2011 a las 19:30
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: en línea
Puntos: 3379
Enlace directo a este mensaje Enviado: 18/Noviembre/2011 a las 00:10

Hola.
Una posible solución pasa por un código similar al siguiente:
a)en un módulo de clase (clase1) colocar :


Public WithEvents miapp As Application

Private Sub miapp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Doc.Sections(1).Headers(1).Shapes(1).Visible = True

Cancel = True
Doc.PrintOut Background:=False
Doc.Sections(1).Headers(1).Shapes(1).Visible = False

End Sub

b) en thisdocument:
Dim mevaapli As New Clase1

Private Sub Document_New()
Set mevaapli.miapp = Application
Application.ActiveDocument.Sections(1).Headers(1).Shapes(1).Visible = False

End Sub

Private Sub Document_Open()
Set mevaapli.miapp = Application
Application.ActiveDocument.Sections(1).Headers(1).Shapes(1).Visible = False
End Sub

Con el código anterior y suponiendo que:
1º.-La marca de agua es una imagen que está 'anclada' en el encabezado.
2º.-No hay otra imagen en dicho encabezado( shapes(1) )
3º.-No hay problema en ejecutar macros
4º.-Una vez 'escrito' el código, cerramos el documento guardando los cambios
Sí se cumple lo anterior, al abrir de nuevo el documento, desaparecerá la imagen y al imprimir 'aparecerá' en el papel.
El código es un ejemplo de trabajo y 'funciona' en diversas versiones del word ( 2003-2007). Tiene falta de depurar, corregir, adaptar, etc etc.
Espero que ayude a resolver la duda.
Ya comentas.
Un saludo a todos

Arriba
malandrin Ver desplegable
Nuevo
Nuevo


Unido: 07/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 18/Noviembre/2011 a las 23:40
Gracias prga
 
No lo logro, al abrir me dice que "El índice de la colección especificada se encuentra fuera de los límites." y selecciona la línea Application.ActiveDocument.Sections(1).Headers(1).Shapes(1).Visible = False
Si sigo esa rama en el visor de eventos me dice que no en ese encabezado no hay ningún shape :S
 
De cualquier modo no te preocupes, tal como lo hice me puede valer.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5668
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 00:20
Creo (que prga me corija si me equivoco) que podemos prescindir de esa linea, el inconveniente es que la primera vez que lo abres la imagen está visible, pero...
 - imprimes una vez (la imagen queda oculta)
 - Guardas los cambios, y ya está oculta para siempre, salvo al sacarla en papel.
 
Yo, en mis pruebas di la solución por buena, pero al leer tu comentario recuerdo que la primera vez que lo abrí me sucedió lo mismo, pero me salté esa instrucción, hice la prueba de impresión y ... a partir de entonces no ha fallado mas incluso manteniendo esa instrucción en el evento OPEN.
 
 
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: en línea
Puntos: 3379
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 09:32
Hola.
El código ( de prueba) está pensado para el siguiente proceso.
Crear un documento en blanco, insertar imagen en encabezado y convertirla, sí es necesario, a marca de agua y mandarla detrás del texto, modificar la ubicación y tamaño de la imagen en el documento, redacción del texto etc etc, y para acabar insertar el código en el modulo de clase y en thisdocument y cerrar el documento guardando los cambios.
Al abrirlo de nuevo, se supone que no dará error ya que en el encabezado ( section(1).headers(1) ) esta la imagen ( shapes(1) ).
Espero que se hayan aclarado las dudas.
Un saludo a todos
 


Editado por prga - 19/Noviembre/2011 a las 09:33
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18830
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 09:39
Hola!
 
Pedro, perdonad que me meta por medio, pero eso de "insertar imagen en encabezado y convertirla, sí es necesario, a marca de agua", me suena a chino, en mi poca experiencia con Word, no tengo ni idea de como se hace, ¿puedes explicarme como hacerlo porfa?
 
Gracias Tongue
 
Gracias
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: en línea
Puntos: 3379
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 10:01
Buenos dias Emilio.
Veamos en word 2003,
Click botón derecho sobre una imagen y ver barra herramientas imagen, click en botoncito Color y sale entre otras opciones marca de agua.
Espero que sirva para versiones posteriores.
Saludos, Pedro


Editado por prga - 19/Noviembre/2011 a las 10:01
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5668
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 12:50
Hola de nuevo.
 

Acabo de hacer una prueba con…

Ø  Ficha DISEÑO DE PAGINA

Ø  Grupo FONDO DE PÁGINA > MARCA DE AGUA

… y el código de prga funciona igual de perfecto con la marca de agua "oficial".
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18830
Enlace directo a este mensaje Enviado: 19/Noviembre/2011 a las 13:45
Perfecto Pedro, muchas gracias, a ver que  dice ahora quien inicio el hilo.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
malandrin Ver desplegable
Nuevo
Nuevo


Unido: 07/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 21/Noviembre/2011 a las 18:10
disculpad el retraso, pero no he podido conectarme hasta ahora.
 
Ha quedado de cine.
 
Sois unos cracks.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable