** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Generar PDF con el documento
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoGenerar PDF con el documento

 Responder Responder
Autor
Mensaje
tribu46 Ver desplegable
Nuevo
Nuevo


Unido: 23/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Tema: Generar PDF con el documento
    Enviado: 29/Abril/2018 a las 10:41
Buenos dias a tod@s, tengo un documento de word que cumplimento desde un formulario y finalmente puedo seleccionar que número de paginas imprimir del total del documento.
Hasta ahí todo bien, el problema surge cuando intento que en lugar de imprimir me genere un PDF con las mismas hojas, he conseguido que me genere un PDF completo con todas las paginas del documento, pero no consigo que me genere un PDF sólo con las paginas seleccionadas.

A continuación os dejo el código usado, a ver si me podéis ayudar.

Un saludo

CODIGO PARA IMPRIMIR

Private Sub CommandButton2_Click()

Dim paginas As String

paginas = ""
Selection.MoveUp Unit:=wdParagraph, Count:=19
Selection.WholeStory
Selection.Fields.Update
Selection.MoveUp Unit:=wdLine, Count:=10


If CheckBox2.Value = True Then paginas = paginas + "3,"
If CheckBox4.Value = True Then paginas = paginas + "10,"
If CheckBox5.Value = True Then paginas = paginas + "6,7,"
If CheckBox6.Value = True Then paginas = paginas + "8,"
If CheckBox7.Value = True Then paginas = paginas + "9," 
If CheckBox8.Value = True Then paginas = paginas + "4," 
If CheckBox9.Value = True Then paginas = paginas + "5," 
If CheckBox1.Value = True Then paginas = paginas + "1,2,"


If paginas = "" Then Exit Sub
paginas = Left(paginas, Len(paginas) - 1) ' quito la ultima coma ","
Application.PrintOut filename:="", Range:=wdPrintRangeOfPages, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:=paginas, PageType:= _
wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False

End Sub


CODIGO USADO PARA PDF


Private Sub PDF_Click()
Dim paginas As String
paginas = ""
Selection.MoveUp Unit:=wdParagraph, Count:=19
Selection.WholeStory
Selection.Fields.Update
Selection.MoveUp Unit:=wdLine, Count:=10

Dim ts As String
ts = Format((Date), "yyyyMMdd")
ts = ts + Format((Time), "HHmmss")

Dim filename As String
filename = ActiveDocument.Path + "\" + ts + "_" + UserForm1.ape1 + "_" + UserForm1.ape2 + "_" + UserForm1.nom + ".pdf"

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
filename, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=False
End Sub
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5272
Enlace directo a este mensaje Enviado: 29/Abril/2018 a las 11:20
No he hecho pruebas (no dispongo de tiempo) pero se me ocurre una idea:

- Elimina las hojas que no necesitas.
- Guarda en PDF completo.
- Cierra el documento SIN guardar cambios.
- Abre de nuevo el documento.



Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

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


Unido: 23/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 29/Abril/2018 a las 12:05
Gracias, pero no eso lo que quiero, también podría usar una impresora virtual tipo pdf creator, pero lo que quiero es que al hacer click se genere un pdf con los documentos seleccionados.
De momento he conseguido que me genere un PDF con todos, pero me gustaría poder elegir cuales, al igual que al imprimir.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3045
Enlace directo a este mensaje Enviado: 29/Abril/2018 a las 12:17
Hola.
Otra alternativa, como has comentado, sería una impresora PDF que sí permite elegir páginas ( no intervalos).
Creo, y digo creo, que al menos el  win10 trae una de "serie" y sí he entendido bien, se puede solucionar el problema con un código parecido al siguiente:

    ActivePrinter = "Microsoft Print to PDF"
    mispaginas = "2,4,6"
    mifichero = ActiveDocument.Path & "\" & "NuevoNombre.pdf"
    Application.PrintOut FileName:="", OutputFileName:=mifichero, Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:=mispaginas, PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0


espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos
Arriba
tribu46 Ver desplegable
Nuevo
Nuevo


Unido: 23/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 29/Abril/2018 a las 16:47
Gracias Prga

He estado probando y si bien el código que me facilitas funciona, no consigo que me detecte las hojas que selecciono, he pensado que otra forma seria que al hacer click sobre el botón, este me abriera la ventana de impresión ( la misma que aparece al presionar ctrl+P)
ya que desde esta ya podría seleccionar las paginas así como la impresora a usar ( microsoft print pdf, pdf creator.....) 

El problema es que desconozco el comando o código para que se abra.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3045
Enlace directo a este mensaje Enviado: 29/Abril/2018 a las 21:30
Hola.
Prueba con algo parecido a:

Dialogs(wdDialogFilePrint).Show

Espero que sea lo solicitado
Ya comentas.
Un saludo a todos
Arriba
tribu46 Ver desplegable
Nuevo
Nuevo


Unido: 23/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 30/Abril/2018 a las 09:58
Buenos dias Prga

Te contesto por puntos, para aclararnos

1º He conseguidio adaptar el código que me facilites, para que imprima desde "Microsoft Print to PDF" el problema es que esto me cambia la impresora predeterminada y claro al imprimir otros documentos....
Habría alguna forma de solucionarlo??

2º La otra opción funciona perfectamente, se abre el dialogo para seleccionar la impresora sin mayor problema.


Un saludo y muchas gracias
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3045
Enlace directo a este mensaje Enviado: 30/Abril/2018 a las 10:38
Hola.
Una posible solución pasa por "cargar" antes el nombre de la impresora y recuperarlo despues, o sea:

Dim miimpresora As String
miimpresora = ActivePrinter

ActivePrinter = "Microsoft Print to PDF"
    mispaginas = "2,4,6"
    mifichero = ActiveDocument.Path & "\" & "NuevoNombre.pdf"
    Application.PrintOut FileName:="", OutputFileName:=mifichero, Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:=mispaginas, PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
ActivePrinter = miimpresora

espero que ayude a resolver la duda.
Ya comentas.
Un saludo a todos


Arriba
tribu46 Ver desplegable
Nuevo
Nuevo


Unido: 23/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 30/Abril/2018 a las 16:14
SOLUCIONADO!!!!!!!


Muchas gracias por tu ayuda y paciencia.  
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable