PDFSizeopt es un programa para convertir grandes archivos PDF en pequeños, sin disminuir la calidad visual o eliminar las características interactivas (como los hipervínculos). Más específicamente, PDFSizeOpt es una aplicación gratuita de línea de comandos multiplataforma (para Linux, Windows, MacOS y Unix) y una colección de mejores prácticas para optimizar el tamaño de los archivos PDF, con enfoque en PDF creados a partir de documentos TEX y Latex. PDFSizeopt está escrito en Python, por lo que es un poco lento, pero descarga parte del trabajo pesado a sus dependencias más rápidas (C, C ++ y Java).
¿No funciona PDFSizeopt con su PDF? Informe el problema aquí: https://github.com/pts/pdfsizeopt/issues
Envíe donaciones al autor de PDFSizeopt: https://flattr.com/submit/auto?user_id=pts&url=https://github.com/pts/pdfsizeopt
Si es la primera vez que intenta PDFizeopt, siga estas instrucciones. (Esta sección se actualizó el 2023-02-15).
Es fácil instalar y ejecutar PDFSizeopt en sistemas modernos de Linux y Windows con un procesador X86. Si tiene dicho sistema, salte directamente a una de las siguientes secciones ( instrucciones de instalación y uso en Linux o instrucciones de instalación y uso en Windows ). Tomará menos de 5 minutos.
Es fácil instalar y ejecutar PDFSizeopt en una Mac (se admiten procesadores Intel X86 y procesadores ARM con Apple Silicon). Si tiene dicho sistema, salte directamente a la sección Instrucciones de instalación y uso en MacOS ( no usando Docker). Tomará menos de 5 minutos.
Alternativamente (pero no recomendado porque es más lento), es posible ejecutar PDFSizeOpt dentro de Docker en los siguientes sistemas: Linux AMD64, MacOS de 64 bits X86 (AMD64, X86_64), MacOS de 64 bits (Apple Silicon, EG M1 o M2 chip). Después de eso, salte directamente a las instrucciones de instalación de la sección y use con Docker en Linux y MacOS . Ese último paso tomará menos de 5 minutos.
Si está utilizando un sistema operativo que no sea Linux, Windows o MacOS (en una computadora con procesador Intel), la forma más fácil de probar PDFSizeopt es tomar prestada la computadora de un amigo con Linux, Windows o macOS, o alquilar una VM Linux en la nube. La razón por la cual es difícil ejecutar PDFSizeOpt en otros tipos de sistemas es porque PDFSizeOpt tiene algunas dependencias requeridas, algunas de ellas son versiones antiguas (por ejemplo, Python 2.4-2.7, Ghostscript 9.05), por lo que tendrá que compilar las versiones correctas de Las dependencias primero, que pueden tomar varias horas y muchas pruebas y errores frustrantes incluso para piratas informáticos experimentados.
Técnicamente es posible portar PDFSizeopt a otros sistemas (y facilitar la instalación), pero el autor de PDFSizeopt no tiene el tiempo libre para crear y mantener dicho puerto. Como FYI, vea el #154 sobre la portada a Apple Silicon.
No hay instalador, debe ejecutar algunos comandos en la línea de comandos para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Para instalar PDFSizeopt en un sistema Linux (con Arquitectura I386 o AMD64), abra una ventana de terminal y ejecute estos comandos (sin los $
liderantes):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_linux.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_linux-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_linux.tar.gz
$ rm -f pdfsizeopt_libexec_linux.tar.gz
$ wget -O pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Para optimizar un PDF, ejecute el siguiente comando:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si el PDF de entrada tiene muchas imágenes o imágenes grandes, PDFSizeopt puede ser muy lento. Puede acelerarlo deshabilitando Pngout, el método de optimización de imágenes más lento, como este:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeopt crea muchos archivos temporales (PSOTMP.*) En el directorio de salida, pero también se limpia después de sí mismo.
Es posible optimizar un PDF fuera del directorio actual. Para hacer eso, especifique el nombre de ruta (incluido el nombre del directorio) en la línea de comandos.
Tenga en cuenta que los comandos anteriores descargan todas las dependencias (incluidas Python y Ghostscript) también. Es posible instalar algunas de las dependencias con su administrador de paquetes, pero estos pasos se consideran alternativos y más complicados, y por lo tanto no están cubiertos aquí.
Tenga en cuenta que PDFSizeopt funciona perfectamente en cualquier sistema X86 y AMD64 Linux. No hay restricción en la distribución de LibC, Linux, etc. porque PDFSizeopt usa solo sus ejecutables X86 estáticamente vinculados, y no utiliza ningún comando externo (que no sea PDFSizeopt, PDFSizeopt.Single y PDFSizeopt_LibExec/*) en el sistema. PDFSizeopt también funciona perfectamente en los sistemas X86 FreeBSD con la capa de emulación de Linux habilitada.
Para evitar escribir ~/pdfsizeopt/pdfsizeopt, agregue "$ home/pdfsizeopt" a su ruta (probablemente en su ~/.bashrc), abra una nueva ventana terminal y el comando PDFSizeopt funcionará desde cualquier directorio.
También puede colocar PDFSizeopt en un directorio que no sea ~/pdfsizeopt, como desee.
Además, puede instalar algunos imptimizadores de imagen adicionales (ver más en la sección de optimizadores de imágenes a continuación):
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2017-01-24/pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ tar xzvf pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ rm -f pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
No hay instalador, debe ejecutar algunos comandos en la línea de comandos (ventana del símbolo del sistema negro) para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Crear carpeta c: pdfsizeopt, descargar https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_win32exec-v9.zip, y extrae sus contenidos a la carpeta c: pdfsizeopt, así que eso Existe el archivo c: pdfsizeopt pdfsizeopt.exe.
Descargue https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single y guárdelo en c: pdfsizeopt, como c: pdfsizeopt pdfsizeopt.single.
Para optimizar un PDF, ejecute el siguiente comando:
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
En la línea de comando, que es una ventana de símbolo del sistema negro, puede iniciarla por menú de inicio / ejecución / cmd.exe, o encontrar el símbolo del sistema en el menú Inicio.
(Presione la pestaña para completar el nombre de archivo mientras se escribe).
Dado que debe escribir el nombre de archivo de entrada como un nombre de ruta completo, se recomienda crear un directorio con un nombre corto (por ejemplo, C: PDFS) y copiar el PDF de entrada allí primero.
Si el PDF de entrada tiene muchas imágenes o imágenes grandes, PDFSizeopt puede ser muy lento. Puede acelerarlo deshabilitando Pngout, el método de optimización de imágenes más lento, como este:
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
Para evitar escribir c: pdfsizeopt pdfsizeopt, agregue c: pdfsizeopt a (el final de) la ruta del sistema, abra una nueva ventana de símbolo del sistema y el comando pdfsizeopt
funcionará desde cualquier directorio.
Dependiendo de su entorno, los nombres de archivo con caracteres acentuados pueden no funcionar en la versión de Windows de PDFSizeopt. Para jugar a lo seguro, asegúrese de que sus archivos de entrada y salida tengan nombres con letras, números, subrayado (_), Dash (-), Dot (.) Y Plus (+). El Backslash () y el Slash (/) están bien como el separador de directorio.
Los espacios en los nombres de archivo y los nombres de ruta deberían funcionar, pero debe poner cotizaciones dobles (") alrededor del nombre.
Los nombres de archivo con algunos caracteres de puntuación (como cita doble ("), un signo de interrogación (?) Y Asterisk ( )) y los caracteres no imprimibles (como Newline) no funcionarán en Windows. Esto se debe a que Windows no admite estos caracteres ([[[ x00 .. x1f " : <>? | x7f] en los nombres de archivo, y usa / y como separador de directorio.
También puede colocar PDFSizeopt en un directorio que no sea c: pdfsizeopt, pero no funcionará si hay espacio en blanco o hay caracteres acentuados en cualquiera de los nombres de las carpetas.
Tenga en cuenta que PDFSizeopt funciona perfectamente en el vino (probado con vino-1.2 en Ubuntu Lucid y Wine 1.6.2 en Ubuntu Trusty), pero es un poco más lento que ejecutarlo de forma nativa (como un programa Linux o UNIX).
Estas instrucciones funcionan en los siguientes sistemas: Linux AMD64, MacOS de 64 bits Intel X86 (AMD64, X86_64), brazo MACOS de 64 bits (Silicon Apple, Chip M1 o M2). La versión de Linux o MacOS no importa (sistemas antiguos como MacOS Leopard 10.5 también funcionan), siempre que tenga Docker instalado y funcionando.
Los programas en la imagen Docker PTSPTS/PDFSizeopt se compilan para Linux I386 (Intel X86 de 32 bits), y estos binarios funcionan en todas las plataformas mencionadas anteriormente, incluso con el silicio de Apple. (Probado el 2023-02-21).
No hay instalador, debe ejecutar algunos comandos en la línea de comandos para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Primero, verifique que tenga Docker instalado correctamente ejecutando este comando y verificando el OK al final:
docker version && echo OK
Si no se acerca, porque no se encontró el comando 'Docker', entonces Docker no está instalado en su computadora. Instrucciones de instalación (en 2023-02-22):
Para instalar Docker en Linux, tiene dos opciones: Docker Engine (https://docs.docker.com/engine/install/, dentro de la sección del servidor) o Docker Desktop (https://docs.docker.com/desktop/ install/Linux-Install/). Cualquiera de ellos funcionaría.
Para instalar Docker en MacOS, instale Docker Desktop (https://docs.docker.com/desktop/install/macinstall/).
Luego (en macOS), agregue el comando docker
a su ruta ejecutando el siguiente comando (copiarlo, no escriba, para evitar errores tipográficos):
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
Luego (en macOS), cierre la aplicación terminal y ábrala nuevamente (para que los cambios a ~/.profile entren en vigencia).
Después de la instalación, vuelva a intentar el comando docker version
anterior.
Eliminar cualquier imagen de Docker anterior de PDFSizeopt:
docker image rm ptspts/pdfsizeopt
Haga una ejecución de optimización de prueba, que ejerce todas las dependencias de PDFSizeOpt:
curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Si recibe un mensaje de advertencia (inofensivo) como
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
, y no quieres volver a conseguirlo, luego agregar --platform linux/amd64
después del -it
:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Para optimizar un PDF, ejecute este comando:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
Si el PDF de entrada tiene muchas imágenes o imágenes grandes, PDFSizeopt puede ser muy lento. Puede acelerarlo deshabilitando Pngout, el método de optimización de imágenes más lento, como este:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeopt crea muchos archivos temporales (PSOTMP.*) En el directorio de salida, pero también se limpia después de sí mismo.
Es posible optimizar un PDF fuera del directorio actual. Para hacer eso, especifique el nombre de ruta (incluido el nombre del directorio) en la línea de comandos.
Para evitar escribir un comando largo, ejecute
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
, y luego copie el script PDFSizeopt en su ruta, luego abra una nueva ventana de terminal, y ahora este comando también funcionará para optimizar un PDF:
pdfsizeopt input.pdf output.pdf
Tenga en cuenta que la imagen PTSPTS/PDFSizeopt Docker se actualiza muy raramente. Para usar una versión más actualizada de PDFSizeopt, ejecute estos comandos para descargar:
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
Luego ejecute este comando para optimizar un PDF:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt ./pdfsizeopt.single --use-pngout=no input.pdf output.pdf
Si desea tener optimizadores de imágenes adicionales incluidos en Linux, use PTSPTS/PDFSizeopt-With-ExtraimGopt en lugar de PTSPTS/PDFSizeopt en los comandos anteriores. Ejemplo:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt-with-extraimgopt pdfsizeopt --use-image-optimizer=sam2p,jbig2,pngout,zopflipng,optipng,advpng,ECT input.pdf output.pdf
Estas instrucciones funcionan en Macs con MacOS Catalina 10.15 (e incluso más antiguas, tal vez MacOS Snow Leopard 10.6)-MacOS Ventura 13 (e incluso más nuevo), que tiene un procesador ARM de 64 bits (Apple Silicon) o un Intel X86 de 64 bits ( X86_64, AMD64) Procesador. Los programas se compilan para procesadores Intel X86 de 64 bits, y también funcionan en procesadores ARM de 64 bits, utilizando la emulación Rosetta 2 en MacOS. Estas instrucciones fueron probadas y conocidas por trabajar en MacOS Ventura 13.3, ambas con el procesador Intel X86 (X86_64, AMD64) de 64 bits y el silicio Apple (Procesador ARM).
Si tiene un Mac más antiguo que ejecuta Mac OS X Leopard 10.5 - MacOS Mojave 10.14, siga las instrucciones de instalación de la sección y use en MacOS más antiguos .
Estas instrucciones aún no se prueban. Ver #154 para actualizaciones de progreso.
No hay instalador, debe ejecutar algunos comandos en la línea de comandos para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Para instalar PDFSizeopt en un sistema MacOS, abra una ventana de terminal y ejecute estos comandos (sin los $
liderantes):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwinc64-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Haga una ejecución de optimización de prueba, que ejerce todas las dependencias de PDFSizeOpt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... y Abrir (ver) Deptest.pdf y el correspondiente deepto optimizado.pso.pdf.
Para optimizar un PDF, ejecute el siguiente comando:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si el PDF de entrada tiene muchas imágenes o imágenes grandes, PDFSizeopt puede ser muy lento. Puede acelerarlo deshabilitando Pngout, el método de optimización de imágenes más lento, como este:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Además, si tiene una Mac de 32 bits, entonces el PNGOut incluido con PDFSizeopt no funcionará (porque necesita una Mac de 64 bits), por lo que debe forzar-USE-PNGOUT = no. Consulte la sección Optimizadores de imágenes para ver las alternativas de Pngout.
PDFSizeopt crea muchos archivos temporales (PSOTMP.*) En el directorio de salida, pero también se limpia después de sí mismo.
Es posible optimizar un PDF fuera del directorio actual. Para hacer eso, especifique el nombre de ruta (incluido el nombre del directorio) en la línea de comandos.
Tenga en cuenta que los comandos anteriores descargan la mayoría de las dependencias (incluido Ghostscript, pero también excluyendo Python). Todo debería funcionar como se indica anteriormente, fuera de la caja. Si está experimentando problemas, informe un problema en https://github.com/pts/pdfsizeopt/issues.
Para evitar escribir ~/pdfsizeopt/pdfsizeopt, agregue "$ home/pdfsizeopt" a su ruta (probablemente en su ~/.bashrc), abra una nueva ventana terminal y el comando PDFSizeopt funcionará desde cualquier directorio.
También puede colocar PDFSizeopt en un directorio que no sea ~/pdfsizeopt, como desee.
Estas instrucciones deberían funcionar en Macs más antiguos que ejecutan Mac OS X Leopard 10.5-MacOS Mojave 10.14, y con un procesador Intel X86 de 32 bits o 64 bits. Los programas se compilan para el procesador Intel X86 (I386) de 32 bits (y también funcionan en un procesador Intel de 64 bits con MacOS Mojave 10.14 o antes), excepto la herramienta PNGout, que necesita al menos Mac OS X Snow Leopard 10.6 y Un procesador Intel de 64 bits.
No hay instalador, debe ejecutar algunos comandos en la línea de comandos para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Para instalar PDFSizeOpt en un sistema MacOS más antiguo, abra una ventana de terminal y ejecute estos comandos (sin los $
liderantes):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwin-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Haga una ejecución de optimización de prueba, que ejerce todas las dependencias de PDFSizeOpt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... y Abrir (ver) Deptest.pdf y el correspondiente deepto optimizado.pso.pdf.
Para optimizar un PDF, ejecute el siguiente comando:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si el PDF de entrada tiene muchas imágenes o imágenes grandes, PDFSizeopt puede ser muy lento. Puede acelerarlo deshabilitando Pngout, el método de optimización de imágenes más lento, como este:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Además, si tiene una Mac con un procesador Intel X86 de 32 bits, entonces el PNGOut incluido con PDFSizeopt no funcionará (porque necesita un procesador de 64 bits), por lo que debe forzar-USE-PNGOUT = no. Consulte la sección Optimizadores de imágenes para ver las alternativas de Pngout.
PDFSizeopt crea muchos archivos temporales (PSOTMP.*) En el directorio de salida, pero también se limpia después de sí mismo.
Es posible optimizar un PDF fuera del directorio actual. Para hacer eso, especifique el nombre de ruta (incluido el nombre del directorio) en la línea de comandos.
Tenga en cuenta que los comandos anteriores descargan la mayoría de las dependencias (incluido Ghostscript, pero también excluyendo Python). Todo debería funcionar como se indica anteriormente, fuera de la caja. Si está experimentando problemas, informe un problema en https://github.com/pts/pdfsizeopt/issues.
Para evitar escribir ~/pdfsizeopt/pdfsizeopt, agregue "$ home/pdfsizeopt" a su ruta (probablemente en su ~/.bashrc), abra una nueva ventana terminal y el comando PDFSizeopt funcionará desde cualquier directorio.
También puede colocar PDFSizeopt en un directorio que no sea ~/pdfsizeopt, como desee.
No hay instalador, debe ejecutar algunos comandos en la línea de comandos para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
PDFSizeopt funciona perfectamente en los sistemas X86 FreeBSD con la capa de emulación de Linux habilitada. Por lo tanto, habilite la capa de emulación de Linux en su sistema FreeBSD y luego siga las instrucciones de instalación y el uso en Linux .
Alterantivamente, puede seguir las instrucciones de instalación y el uso en unix genérico , pero eso necesita mucho más trabajo de su parte (y es inconveniente y propenso a errores), porque necesita instalar muchas dependencias por separado, posiblemente compilando algunas de ellas desde la fuente.
Hacer esto es cada vez más difícil en 2023, porque PDFSizeopt necesita Python 2.4-2.7 y Ghostscript 9.05, ambos muy antiguos y, por lo tanto, difícil de instalar en un sistema moderno.
No hay instalador, debe ejecutar algunos comandos en la línea de comandos (ventana del símbolo del sistema negro) para descargar e instalar. PDFSizeopt es una aplicación de línea de comandos, no hay GUI.
Pdfizeopt es un guión de Python. Funciona con Python 2.4, 2.5, 2.6 y 2.7 (pero no funciona con Python 3.x). Así que instale Python primero.
Cree un nuevo directorio llamado PDFSizeOpt y descargue este enlace allí: https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
Cambíe el nombre de PDFSizeOpt y haga que se ejecute ejecutando los siguientes comandos (sin el $
):
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
Si su ejecutable de Python no es/usr/bin/python, edite la primera línea (¡comenzando con #!
) En el script PDFSizeopt en consecuencia.
Pruébalo con:
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
PDFSizeopt tiene muchas dependencias. Para una funcionalidad completa, los necesita todos. Instale tantos como pueda y póngalos en el camino.
Dependencias:
imgdataopt
como sam2p
(EG/USR/LOCAL/BIN/SAM2P) a usted a su CAMINO. Si no puede instalarlo, use PDFSizeopt--Optimize-Images = no. Algunas distribuciones de Linux tienen binarios SAM2P, pero tienden a ser demasiado viejos. Alternativamente, SAM2P> = 0.49.3 + PNG22PNM también funciona en lugar de imgDataopt, pero IMGDataopt es más fácil de instalar.Después de la instalación, use PDFSizeopt como:
$ ./pdfsizeopt input.pdf output.pdf
Puede agregar el directorio que contiene PDFSizeopt a la ruta, por lo que el comando pdfsizeopt
funcionará desde cualquier directorio.
PDFSizeOpt puede usar las siguientes herramientas externas para hacer imágenes en archivos PDF integrados más pequeños:
Para habilitar o deshabilitar cualquier optimizador de imagen, especifique todos los optimizadores de imágenes que desea habilitar de la misma manera: --use-image-optimizer = optipng, jbig2. Esto también deshabilitará el PNGout predeterminado.
También puede especificar patrones de comando de optimizador de imágenes personalizados especificando flags separados y adicionales-image-optimier = así:
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
Siempre debe especificar %(TargetFNQ) en el patrón de comando.
Especifique --Do-DEBUG-IMAGE-OPtimizers = Sí para ver qué optimizadores de imágenes están habilitados (y su línea completa de comandos) para la ejecución actual.
Al inicio, PDFSizeOpt verifica que los optimizadores de imágenes solicitados están disponibles (como archivos de programa), y falla si faltan algunos de ellos. Para ignorar a los que faltan, especifique--REQUIRE-IMAGE-OPTIMIZADORES = NO.
Es su responsabilidad (del usuario) instalar los optimizadores de imágenes y agregarlos a la ruta. Si sigue las instrucciones de instalación para Windows y Linux arriba, los optimizadores de imagen predeterminados (SAM2P, JBIG2 y PNGOUT) se instalarán para usted. Para Linux, también hay instrucciones de instalación anteriores para optimizadores de imágenes adicionales (Zopflipng, Optipng, ADVPNG y ECT).
Especificar --do-unify-fonts = no y --do-regenerate-todo-fonts = no.
Si aún falla, especifique--Optimize-Fonts = no.
En cualquier caso, informe en https://github.com/pts/pdfsizeopt/issues
Especifique--Optimize-Images = no.
Informe en https://github.com/pts/pdfsizeopt/issues
Especificar --use-pngout = no. Esto deshabilita Pngout, que es el paso de optimización más lento para las imágenes.
Informe en https://github.com/pts/pdfsizeopt/issues, adjuntando el archivo PDF de entrada y la salida de la consola de PDFSizeopt. Su informe es muy apreciado.
Si PDFSizeopt sale con una excepción no captura, puede dejar algunos archivos temporales (PSOTMP.*) En el directorio actual. Puede eliminar estos archivos.
Tenga en cuenta que PDFSizeopt no es resistente al procesar archivos PDF corruptos (es decir, aquellos que no cumplen con el estándar PDF). Entonces, si PDFSizeopt falla, entonces el motivo puede ser un error en PDFSizeopt o un archivo de entrada PDF corrupto. Sin embargo, informe un problema (ver arriba).
Informe en https://github.com/pts/pdfsizeopt/issues, adjunta el archivo PDF de entrada y el archivo PDF de salida (.pso.pdf) y la salida de consola de PDFSizeopt. Su informe es muy apreciado.
Esto puede suceder si el nombre de archivo o el nombre de ruta completo contiene cualquier carácter que no sea las letras ASCII (AZ y AZ), dígitos (0-9), subrayado (_), ASCII Dash (-), Plus (+), Dot (. ), barra de back -stain () o slash (/). Por lo general, estos caracteres no funcionan:
Espacios y pestañas: esto es fácil de solucionar, solo envuelva el nombre de archivo en cotizaciones dobles ("), la forma habitual.
Cotizaciones dobles ("): Esto no puede suceder, los nombres de archivo en Windows no pueden contener cotizaciones dobles. Si necesita pasar un argumento no de nombre de fila con una cotización doble en PDFSizeOpt, haga esto. Envuelva el argumento en doble Cotizaciones ("), reemplace todas las cotizaciones dobles (") con "y (en paralelo al reemplazo anterior) reemplace una secuencia de barras trastas () y una cita doble (") inmediatamente después de duplicarse las versas de fondo y reemplazar la cita doble ( ") Con".
nuevas líneas y otros espacios en blanco no espacios: esto no funcionará, el símbolo del sistema de Windows (cmd.exe) no permite que estos caracteres en los argumentos de línea de comandos. Además, Windows no los permite en los nombres de archivo.
Personajes acentuados (como Á y ő). Estos caracteres no funcionarán (o puede funcionar solo para algunos caracteres, dependiendo de la página del código activo) en el nombre de archivo PDF especificado en la línea de comandos, o en el nombre completo de PDFSizeOpt (así que no instale PDFSizeOpt a C: bőr, no funcionará).
Los caracteres acentuados (fuera de la página del código activo) no funcionarán en el nombre de ruta completo de PDFSizeopt (como C: Bőr PDFSizeopt.exe). Esto se debe a que Python no puede llamar a programas externos (OS.System, OS.Popen, OS.Spawnl y subprocesos.call) con caracteres acentuados a su nombre, porque usa la API de byte único.
Cualquier cosa que no sea imprimible ASCII (código entre 33 y 126, inclusive): si no está cubierto arriba, esto puede no funcionar. Vea la descripción de los personajes acentuados.
Si algunos nombres de archivo todavía no funcionan, las soluciones son:
Los caracteres acentuados en el nombre de archivo PDF podrían hacerse el trabajo de la siguiente manera (como un trabajo de mejora futuro para PDFSizeopt):
pdfsizeopt.exe debe llamar a la API de 16 bits (getCommandlinew) en lugar de la API de byte de un solo byte (getCommandlinea) para obtener los argumentos
pdfsizeopt.exe debe escapar de los caracteres no ascii en los argumentos (por ejemplo, como u+12ab)
pdfsizeopt.exe debe ejecutar pdfsizeopt.
.../pdfsizeopt_win32exec/pdfsizeopt_python.exe .../pdfsizeopt.single --args-u+ ...
El código PDFSizeopt Python debe reconocer --args-u+, y al encontrar el nombre de archivo, debe convertirlo a unicode (manteniendo ASCII a excepción de U+12ab), y debe pasar el valor de unicode para abrir (...) . Tal abierto (...) funciona en Python 2.6 en Windows.
Al mostrar los nombres de archivo, el código PDFSizeopt Python aún debe mostrar el ASCII con el escape U+12AB. Por lo tanto, no se necesita el módulo Win32Console. Por lo tanto, los nombres de archivo se mostrarán de manera legible pero incorrecta (no copia-pasta) en la ventana del símbolo del sistema.
No se necesita escape en las líneas de comando de los programas de ayuda (por ejemplo, GS, SAM2P), porque todo es ASCII, porque los nombres de archivo son nombres de Fil temporales autogenerados, que son todos ASCII, y se requiere una ruta hacia la PDFSizeopt a la ASCII.
Los personajes acentuados en el nombre de ruta de PDFSizeopt.single se pueden trabajar de esta manera (como un trabajo de mejora futuro para PDFSizeopt):
Primero haga los caracteres acentuados en el nombre de archivo anterior.
pdfsizeopt.exe debe usar WGetCWD para obtener el directorio actual.
PDFSizeopt.exe debe usar WCHDIR para cambiar al directorio de PDFSizeopt.Single.
pdfsizeopt.exe debe prepender los directorios PDFSizeopt_win32Exec y PDFSizeopt_win32Exec/PDFSizeopt_gswin a la ruta, utilizando wputenv.
pdfsizeopt.exe debe ejecutar pdfsizeopt.
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
, donde el valor de --cwd = es la versión escapada (u+12ab) del resultado de wgetcwd.
El código PDFSizeopt Python debe prepender el valor de --cwd = ... al nombre de archivo de entrada si es relativo.
El código PDFSizeopt Python no debe modificar la ruta si - -cwd = ... está presente. (¿Funciona esta propagación variable de entorno en Python 2.6? ¡Intentemos!)
Todavía es cierto que no se necesita escape en las líneas de comando de los programas externos (por ejemplo, GS, SAM2P), porque todo es ASCII, porque los nombres de archivos temporales son todos ASCII, y la ruta hacia PDFSizeopt misma se requiere para el ASCII. Se necesita escapar si el nombre de ruta del directorio temporal (Variable TEMP) necesita escapar.
Este error ha sucedido en un sistema Windows XP. La solución: descargue msvcr90.dll (o busque en algún lugar que ya esté en su sistema) y cópiela en PDFSizeOpt_win32Exec (al lado de Python26.dll). Cualquier versión de MSVCR90.dll funcionará:
Este error ha sucedido en un sistema Windows XP cuando faltaba el archivo Microsoft.vc90.crt.Manifest en el directorio PDFSizeOpt_WIN32Exec. La solución: reinstale PDFSIEOPT, el directorio PDFSizeOpt_win32Exec en la versión más reciente tiene ese archivo.
Instale PDFSizeopt siguiendo las instrucciones de instalación en https://github.com/pts/pdfsizeopt. Al hacerlo, PDFSizeopt usará GhostScript 9.05 incluido con él, y funcionará.