ExportAsFixedFormat genera pdfs con mucho peso

Estoy generando archivos pdf desde visual basic, con el código
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & "\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=False
pero ni ajustando la calidad a Qualityminimun se obtienen pdfs medianamente razonables (pesan 4 veces más que con la opción Save as.
Tampoco funciona atacar directamente los parámetros de ActiveSheet. PageSetup.
He peinado multitud de foros... Y nadie tiene la solución.
Gracias anticipadas a cualquier sugerencia,
gracias

RamonyMiembro Nuevo
 Mensajes: 4Registrado: 12 Ene 2019 18:28

2 Respuestas

Respuesta
1

[Hola

El método "ExportAsFixedFormat" del VBA tiene ciertos límites y uno, conocido, es la poca capacidad de cambiar el tamaño del archivo que convierte a pdf, propio de la poca capacidad de manipulación de parámetro "Quality" (con solo dos opciones). Si quieres seguir usando ese método pues no hay solución posible con él, como creo ya viste en otros foros.

Las alternativas pasan por usar otros métodos/formas:

- Usar "SendKeys" (es "inestable")

- Imprimir usando alguna impresora virtual de pdf

- Usar el objeto "Acrobat" (que no es tan fácil), pero hay que programar/escribir bastante

Probablemente no es la respuesta que querías leer/oír, pero es la real. Creo que la segunda es la más viable en tu caso.

Abraham Valencia

sí, además varia muy poco el peso con QualityMinimum, 

siguiendo el consejo de Héctor, he introducido otro código que también permitiría usar la macro desde cualquier computadora que disponga de la impresora Microsoft Print to pdf como ocurría con ExportAsFixedFormat, dicho código ha reducido 50 kb de peso, no es mucho pero igual por este camino se pude ajustar más el tamaño

ActiveSheet.PrintOut _
Copies:=1, Preview:=False, _
ActivePrinter:="microsoft print to pdf", _
PrintToFile:=True, _
PrToFileName:=ruta & "\" & ActiveSheet.Name & ".pdf"

Lo curioso es que los pdf generados no pesan por la resolución, porque con 600 pp de resolución por fuera del visual el pdf pesa 150 kB.

Parece que el sólo hecho  de ser generado desde visal, vuelve el pdf elefántico, algún condimento descontrolado se le incorpora en la cocción.

muchas gracias por la respuesta,

Sin duda hay "algo" que el VBA le agrega pero no he leído que Microsoft sepa y/o haya explicado qué es lo que ocurre realmente.

Abraham Valencia

PD: Reconozco que tampoco es que en mi caso le haya dedicado mucho tiempo a "descomponer" archivos para encontrar la respuesta

Respuesta
1

Me motivó la curiosidad e hice unas pruebas con algunas hojas de diferentes libros para ver cómo cambiaban los pesos según las opciones Quality.

Se puede observar que se reduce bastante con la opción en Minimum. De 300 a 500 kb en estos ejemplos.

Quizás no sea lo esperado en tus hojas pero es una opción que habría que tenerla presente en general.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas