Mediante printout se supone que se puede imprimir documentos a PDF,
según la rutina:
Application.ActivePrinter = "Adobe PDF en Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF en Ne01:", PrintToFile:=True, Collate:=True, _
PrToFileName:=nombrePDF
donde nombrePDF es la ruta:
"C:\documento.pdf"
sin embargo me da el siguiente error:
"When you create a postcript file you have to send the host
fonts...... "
parece que el método printout no permite la impresión a pdf y manda la
impresión a formato postscript. Se puede hacer que imprima en pdf,
cómo?
Gracias por adelantado
Javivi
> Mediante printout se supone que se puede imprimir documentos a PDF, segun la rutina:
> Application.ActivePrinter = "Adobe PDF en Ne01:"
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
> "Adobe PDF en Ne01:", PrintToFile:=True, Collate:=True, _
> PrToFileName:=nombrePDF
> donde nombrePDF es la ruta: "C:\documento.pdf"
> sin embargo me da el siguiente error:
> "When you create a postcript file you have to send the host fonts...... "
> parece que el metodo printout no permite la impresion a pdf y manda la impresion a formato postscript.
> Se puede hacer que imprima en pdf, como?
revisa en las propiedades de la impresora [adobe pdf] en el panel de control de windows
y comprueba que no tenga una marca la opcion de: "do not send fonts to adobe pdf"
[y por si las dudas, verifica que tampoco tenga marca la opcion de: "prompt for adobe pdf filename"]
tambien pudiera ser algun objeto incrustado que este *reducido* a una linea por ocultarse filas [graficos, dibujos] -?-
comentas [si hubiera] algun detalle mas... 'significativo' ?
saludos,
hector.
Eso ya lo había probado y no genera el documento pdf correctamente.
La cuestión es que genera un archivo "documento.pdf" pero que
realmente no es pdf ya que no se puede abrir y lo genera con más kb
que otros docs en pdf del mismo estilo. En resumidas cuentas que no
manda un doc pdf a imprimir.
Alguna idea?. No habrá que instalar alguna biblioteca de adobe?. Desde
luego que cambiando la impresora y mandando a imprimir con .PrintOut
no funciona.
Gracias y saludos,
Javi
On 13 jul, 22:08, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:
> hola, javier !
>
> > Mediante printout se supone que se puede imprimir documentos aPDF, segun la rutina:
> > Application.ActivePrinter = "AdobePDFen Ne01:"
> > ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
> > "AdobePDFen Ne01:", PrintToFile:=True, Collate:=True, _
> > PrToFileName:=nombrePDF
> > donde nombrePDF es la ruta: "C:\documento.pdf"
> > sin embargo me da el siguiente error:
> > "When you create a postcript file you have to send the host fonts...... "
> > parece que el metodo printout no permite la impresion apdfy manda la impresion a formato postscript.
> > Se puede hacer que imprima enpdf, como?
>
> revisa en las propiedades de la impresora [adobepdf] en el panel de control de windows
> Eso ya lo habia probado y no genera el documento pdf correctamente.
> La cuestion es que genera un archivo "documento.pdf" pero que realmente no es pdf ya que no se puede abrir
> y lo genera con mas kb que otros docs en pdf del mismo estilo. En resumidas cuentas que no manda un doc pdf a imprimir.
> Alguna idea?. No habra que instalar alguna biblioteca de adobe?.
> Desde luego que cambiando la impresora y mandando a imprimir con .PrintOut no funciona.
si el controlador de la impresora no esta reconociendo el formato [y revisando tu consulta original]...
es probable que este *mal direccionada* la salida del documento a la impresora -?-
[da la impresion de que] al nombre de la impresora: -> "AdobePDFen Ne01:"
le falta un espacio *antes* de la conexion al puerto: -> "AdobePDF en Ne01:"
si *esto* no es la posible causa... ni tampoco nada de lo anterior... -???-
comentas [si hubiera] algun detalle mas... 'significiativo' ?
saludos,
hector.
__ las consultas anteriores __
Con :
Application.ActivePrinter = "Adobe PDF en Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF en Ne01:", Collate:=True
Consigo que se cree un archivo pdf que se guarda en el temporal. Pero
no consigo hacer que se archive correctamente en la dirección "C:
\documento.pdf" . No funciona con el argumento PrToFileName:=nombrePDF
y da los errores que te comento en líneas anteriores.
Alguna idea de qué comando incluir después para que el archivo del
temporal se archive y cierre según quiero.
Definitivamente la impresora correcta es: "Adobe PDF en Ne01:"
Gracias
Javi
On 23 jul, 18:52, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:
> hola, javier !
>
> > Eso ya lo habia probado y no genera el documentopdfcorrectamente.
> > La cuestion es que genera un archivo "documento.pdf" pero que realmente no espdfya que no se puede abrir
> > y lo genera con mas kb que otros docs enpdfdel mismo estilo. En resumidas cuentas que no manda un docpdfa imprimir.
> > comentas [si hubiera] algun detalle mas... 'significativo' ?- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
> Con :
> Application.ActivePrinter = "Adobe PDF en Ne01:"
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
> "Adobe PDF en Ne01:", Collate:=True
> Consigo que se cree un archivo pdf que se guarda en el temporal.
> Pero no consigo hacer que se archive correctamente en la dirección "C:\documento.pdf".
> No funciona con el argumento PrToFileName:=nombrePDF y da los errores que te comento en líneas anteriores.
> Alguna idea de que comando incluir despues para que el archivo del temporal se archive y cierre segun quiero.
> Definitivamente la impresora correcta es: "Adobe PDF en Ne01:"
-> PrToFileName tiene soporte a partir de la version 2000
[probablemente] la macro falla cuando la ejecutas en un xl-'97 -?-
comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
Hola Hector,
Es xls 2003
Estoy perdido...
Gracias
comparando la instruccion *original* que no te esta funcionando:
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
> "AdobePDFen Ne01:", PrintToFile:=True, Collate:=True, _
> PrToFileName:=nombrePDF
con la que comentas que te manda el archivo a los temporales:
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
> "AdobePDFen Ne01:", Collate:=True
MAS tu *afirmacion* de que en el nombre de la impresora se junta con la preposicion de conexion al puerto -???????-
> Definitivamente la impresora correcta es: "AdobePDFen Ne01:"
1) [hasta donde se, y perdon que *insista*... pero]
SI se requiere SEPARAR con un espacio el nombre de la impresora de la preposicion *en* para enlazar al puerto de conexion -?-
2) a la segunda forma, que comentas si genera un archivo pero en los temporales
[aparentemente] solo le hace falta la instruccion: -> PrintToFile:=True -?-
3) [nuevamente disculpa que *insista* pero...]
si el archivo que se genera [por cualquiera de las opciones] NO ES *valido* -?-
a) revisa/confirma/modifica/... la separacion del nombre de la impresora y la preposicion *en*
b) des/re/instala los controladores de la impresora *virtual* y/o el complemento pdfcreator
c) busca/obten/instala/... alguna actualizacion [controlador, complemento, administrdor de fuentes, ???]
4) [otra posibilidad] si la version de excel es 2003, y NO te *reconoce* el argumento *PrToFileName* -?-
revisa en el editor de vba en [menu] herramientas / referencias -> si existe alguna que diga FALTA:xxx o MISSING:xxx -?-
comentas [si detectas] algun detalle mas... 'significativo' ?
saludos,
hector.