PDFSizeOpt est un programme de conversion de grands fichiers PDF en petits, sans diminuer la qualité visuelle ni supprimer des fonctionnalités interactives (telles que les hyperliens). Plus précisément, PDFSizeOpt est une application de ligne de commande gratuite et multiplateforme (pour Linux, Windows, MacOS et UNIX) et une collection de meilleures pratiques pour optimiser la taille des fichiers PDF, en mettant l'accent sur les PDF créés à partir de documents tex et de latex. PDFSizeOpt est écrit en Python, il est donc un peu lent, mais il décharge une partie du travail lourd à ses dépendances plus rapides (C, C ++ et Java).
PDFSizeOpt ne fonctionne-t-il pas avec votre PDF? Signalez le problème ici: https://github.com/pts/pdfsizeopt/issues
Envoyer des dons à l'auteur de PDFSizeOpt: https://flattr.com/submit/auto?user_id=pts&url=https://github.com/pts/pdfsizeopt
Si c'est la première fois que vous essayez PDfizeOPT, suivez ces instructions. (Cette section a été mise à jour le 2023-02-15.)
Il est facile d'installer et d'exécuter PDFSizeOPT sur les systèmes Linux et Windows modernes avec un processeur x86. Si vous avez un tel système, passez directement à l'une des sections suivantes ( instructions d'installation et utilisation sur Linux ou instructions d'installation et utilisation sous Windows ). Cela prendra moins de 5 minutes.
Il est facile d'installer et d'exécuter PDFSizeOPT sur un Mac (les processeurs Intel x86 et les processeurs ARM avec le silicium Apple sont pris en charge). Si vous avez un tel système, passez directement aux instructions d'installation de la section et à l'utilisation sur macOS (n'utilisant pas Docker). Cela prendra moins de 5 minutes.
Alternativement (mais pas recommandé car il est plus lent), il est possible d'exécuter PDFSizeOpt dans Docker sur les systèmes suivants: Linux AMD64, macOS 64 bits Intel x86 (AMD64, x86_64), macOS 64 bits ARM (Silicon Apple, EG M1 ou M2 ébrécher). Après cela, passez directement aux instructions d'installation de la section et à l'utilisation avec Docker sur Linux et MacOS . Cette dernière étape prendra moins de 5 minutes.
Si vous utilisez un système d'exploitation autre que Linux, Windows ou MacOS (sur un ordinateur avec processeur Intel), le moyen le plus simple d'essayer PDFSizeOpt est d'emprunter l'ordinateur d'un ami avec Linux, Windows ou MacOS, ou de location d'une machine virtuelle Linux dans le cloud. La raison pour laquelle il est difficile d'exécuter PDFSizeOpt sur d'autres types de systèmes est parce que PDFSizeOpt a certaines dépendances requises, certaines d'entre elles sont d'anciennes versions (par exemple Python 2.4-2.7, GhostScript 9.05), vous devrez donc compiler les bonnes versions de Les dépendances d'abord, qui peuvent prendre plusieurs heures et beaucoup d'essais et d'erreurs frustrants, même pour les pirates expérimentés.
Il est techniquement possible de porter PDFSizeOpt vers d'autres systèmes (et de faciliter l'installation), mais l'auteur de PDFSizeOpt n'a pas le temps libre pour créer et maintenir un tel port. En tant que FYI, voir # 154 sur le portage du silicium Apple.
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
Pour installer PDFSizeOpt sur un système Linux (avec l'architecture i386 ou AMD64), ouvrez une fenêtre de terminal et exécutez ces commandes (sans le $
leader):
$ 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
Pour optimiser un PDF, exécutez la commande suivante:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si le PDF d'entrée a de nombreuses images ou de grandes images, PDFSizeOPT peut être très lent. Vous pouvez l'accélérer en désactivant Pngout, la méthode d'optimisation d'image la plus lente, comme ceci:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt crée de nombreux fichiers temporaires (PSOTMP. *) dans le répertoire de sortie, mais il nettoie également après lui-même.
Il est possible d'optimiser un PDF en dehors du répertoire actuel. Pour ce faire, spécifiez le nom de chemin (y compris le nom du répertoire) dans la ligne de commande.
Veuillez noter que les commandes ci-dessus téléchargent également toutes les dépendances (y compris Python et GhostScript). Il est possible d'installer certaines des dépendances avec votre gestionnaire de packages, mais ces étapes sont considérées comme alternatives et plus compliquées, et ne sont donc pas couvertes ici.
Veuillez noter que PDFSizeOpt fonctionne parfaitement sur n'importe quel système Linux X86 et AMD64. Il n'y a aucune restriction sur la distribution LIBC, Linux, etc. parce que PDFSizeOpt utilise uniquement ses exécutables x86 liés statiquement, et il n'utilise aucune commande externe (autre que PDFSizeOpt, PDFSizeOpt.Single et PDFSizeOpt_libexec / *) sur le système. PDFSizeOpt fonctionne également parfaitement sur les systèmes FreeBSD x86 avec la couche d'émulation Linux activée.
Pour éviter de taper ~ / pdfsizeopt / pdfsizeopt, ajoutez "$ home / pdfsizeOpt" à votre chemin (probablement dans votre ~ / .bashrc), ouvrez une nouvelle fenêtre de terminal, et la commande PDFSizeOpt fonctionnera à partir de n'importe quel répertoire.
Vous pouvez également placer PDFSizeOpt à un répertoire autre que ~ / pdfSizeOpt, comme vous le souhaitez.
De plus, vous pouvez installer des imptimageurs d'image supplémentaires (voir plus dans la section des optimisateurs d'image ci-dessous):
$ 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
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande (fenêtre d'invite de commande noire) pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
Créez un dossier C: PDFSizeOpt, téléchargez https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_win32exec-v9.zip, et extraction de son contenu au dossier c: pdfSizeOpt, alors que cela Le fichier C: pdfsizeopt pdfsizeopt.exe existe.
Téléchargez https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single et enregistrez-le sur c: pdfsizeopt, comme c: pdfsizeopt pdfsizeopt.single.
Pour optimiser un PDF, exécutez la commande suivante:
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
Dans la ligne de commande, qui est une fenêtre d'invite de commande noire, vous pouvez le démarrer par le menu de démarrage / run / cmd.exe, ou trouver une invite de commande dans le menu Démarrer.
(Appuyez sur l'onglet pour obtenir l'achèvement du nom de fichier pendant la tape.)
Puisque vous devez taper le nom de fichier d'entrée en tant que chemin d'accès complet, il est recommandé de créer un répertoire avec un nom court (par exemple C: PDFS), et de copier le PDF d'entrée en premier.
Si le PDF d'entrée a de nombreuses images ou de grandes images, PDFSizeOPT peut être très lent. Vous pouvez l'accélérer en désactivant Pngout, la méthode d'optimisation d'image la plus lente, comme ceci:
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
Pour éviter de taper c: pdfsizeopt pdfsizeopt, ajoutez c: pdfsizeOpt à (la fin de) le chemin du système, ouvrez une nouvelle fenêtre d'invite de commande et la commande pdfsizeopt
fonctionnera à partir de n'importe quel répertoire.
Selon votre environnement, les noms de fichiers avec des caractères accentués peuvent ne pas fonctionner dans la version Windows de PDFSizeOPT. Pour jouer en toute sécurité, assurez-vous que vos fichiers d'entrée et de sortie ont des noms avec des lettres, des nombres, un soulignement (_), un tableau de bord (-), un point (.) Et un plus (+). L'arrière-plan () et la barre oblique (/) sont tous les deux corrects comme séparateur de répertoire.
Les espaces dans les noms de fichiers et les noms de chemin doivent fonctionner, mais vous devez mettre des citations doubles (") autour du nom.
Les noms de fichiers avec certains caractères de ponctuation (tels que la double citation ("), le point d'interrogation (?) Et l'asterisk ( )) et les caractères non imprimables (comme Newline) ne fonctionneront pas sur Windows. C'est parce que Windows ne prend pas en charge ces caractères ([[[ x00 .. x1f " : <>? | x7f] Dans les noms de fichiers, et il utilise / et comme séparateur de répertoire.
Vous pouvez également mettre PDFSizeOpt à un répertoire autre que C: PDFSizeOPT, mais cela ne fonctionnera pas s'il y a des espaces blancs ou il y a des caractères accentués dans l'un des noms de dossiers.
Veuillez noter que PDFSizeOpt fonctionne parfaitement dans le vin (testé avec Wine-1.2 sur Ubuntu Lucid et Wine-1.6.2 sur Ubuntu Trusty), mais c'est un peu plus lent que de le faire fonctionner nativement (en tant que programme Linux ou Unix).
Ces instructions fonctionnent sur les systèmes suivants: Linux AMD64, MacOS 64 bits Intel x86 (AMD64, x86_64), ARM MACOS 64 bits (Silicon Apple, EG M1 ou Chip M2). La version de Linux ou MacOS n'a pas d'importance (les anciens systèmes tels que MacOS Leopard 10.5 fonctionnent également), tant qu'il a installé et fonctionne.
Les programmes de Docker Image PTSPTS / PDFSizeOpt sont compilés pour Linux I386 (32 bits Intel x86), et ces binaires fonctionnent sur toutes les plateformes mentionnées ci-dessus, même avec Apple Silicon. (Testé le 2023-02-21.)
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
Tout d'abord, vérifiez que Docker a correctement installé en exécutant cette commande et en vérifiant l'OK à la fin:
docker version && echo OK
Si vous n'êtes pas bien, car la commande `` docker '' n'a pas été trouvée, Docker n'est pas installé sur votre ordinateur. Instructions d'installation (le 2023-02-22):
Pour installer Docker sur Linux, vous avez deux options: Docker Engine (https://docs.docker.com/engine/install/, dans la section du serveur) ou Docker Desktop (https://docs.docker.com/desktop/ installer / linux-stall /). Chacun d'eux fonctionnerait.
Pour installer Docker sur macOS, installez Docker Desktop (https://docs.docker.com/desktop/install/mac-install/).
Ensuite (sur macOS), ajoutez la commande docker
à votre chemin en exécutant la commande suivante (copier-coller, ne tapez pas, pour éviter les fautes de frappe):
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
Ensuite (sur macOS), fermez l'application Terminal et ouvrez à nouveau (de sorte que les changements à ~ / .profile prennent effet).
Après l'installation, réessayez la commande docker version
ci-dessus.
Supprimez toutes les images Docker précédentes de PDFSizeOpt:
docker image rm ptspts/pdfsizeopt
Effectuer une exécution d'optimisation de test, qui exerce toutes les dépendances 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 vous recevez un message d'avertissement (inoffensif) comme
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
, et vous ne voulez pas l'obtenir à nouveau, puis ajouter --platform linux/amd64
après le -it
:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Pour optimiser un PDF, exécutez cette commande:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
Si le PDF d'entrée a de nombreuses images ou de grandes images, PDFSizeOPT peut être très lent. Vous pouvez l'accélérer en désactivant Pngout, la méthode d'optimisation d'image la plus lente, comme ceci:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt crée de nombreux fichiers temporaires (PSOTMP. *) dans le répertoire de sortie, mais il nettoie également après lui-même.
Il est possible d'optimiser un PDF en dehors du répertoire actuel. Pour ce faire, spécifiez le nom de chemin (y compris le nom du répertoire) dans la ligne de commande.
Pour éviter de taper une longue commande, exécutez
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
, puis copiez le script PDFSizeOpt sur votre chemin, puis ouvrez une nouvelle fenêtre de terminal, et maintenant cette commande fonctionnera également pour optimiser un PDF:
pdfsizeopt input.pdf output.pdf
Veuillez noter que l'image Docker PTSPTS / PDFSizeOpt est très rarement mise à jour. Pour utiliser une version plus à jour de PDFSizeOpt, exécutez ces commandes à télécharger:
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
Ensuite, exécutez cette commande pour optimiser 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 vous souhaitez que les optimisateurs d'images supplémentaires incluent Linux, utilisez PTSPTS / PDFSizeopt-with-Extraimgopt au lieu de PTSPTS / PDFSizeOPT dans les commandes ci-dessus. Exemple:
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
Ces instructions fonctionnent sur Mac avec MacOS Catalina 10.15 (et même plus ancienne, peut-être MacOS Snow Leopard 10.6) - MacOS Ventura 13 (et même plus récent), ayant un processeur ARM 64 bits (silicium Apple) ou un Intel x86 64 bits ( X86_64, AMD64) Processeur. Les programmes sont compilés pour les processeurs Intel X86 64 bits, et ils fonctionnent également sur des processeurs ARM 64 bits, en utilisant l'émulation Rosetta 2 dans MacOS. Ces instructions ont été testées et connues pour fonctionner sur MacOS Ventura 13.3, à la fois avec le processeur Intel x86 (x86_64, AMD64) et le silicium Apple (processeur ARM).
Si vous avez un MAC plus ancien exécutant Mac OS X Leopard 10.5 - MacOS Mojave 10.14, suivez les instructions d'installation de la section et l'utilisation sur MacOS plus âgée à la place.
Ces instructions ne sont pas encore testées. Voir # 154 pour les mises à jour de progression.
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
Pour installer PDFSizeOpt sur un système macOS, ouvrez une fenêtre de terminal et exécutez ces commandes (sans le $
leader):
$ 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
Effectuer une exécution d'optimisation de test, qui exerce toutes les dépendances de PDFSizeOPT:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... et ouvrir (voir) Deptest.pdf et le deptest optimisé correspondant.pso.pdf.
Pour optimiser un PDF, exécutez la commande suivante:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si le PDF d'entrée a de nombreuses images ou de grandes images, PDFSizeOPT peut être très lent. Vous pouvez l'accélérer en désactivant Pngout, la méthode d'optimisation d'image la plus lente, comme ceci:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
De plus, si vous avez un Mac 32 bits, le PNGOUT étant emballé avec PDFSizeOpt ne fonctionnera pas (car il a besoin d'un Mac 64 bits), vous devez donc forcer --use-pngout = non. Voir les optimisateurs d'image de section pour des alternatives de PNGOUT.
PDFSizeOpt crée de nombreux fichiers temporaires (PSOTMP. *) dans le répertoire de sortie, mais il nettoie également après lui-même.
Il est possible d'optimiser un PDF en dehors du répertoire actuel. Pour ce faire, spécifiez le nom de chemin (y compris le nom du répertoire) dans la ligne de commande.
Veuillez noter que les commandes ci-dessus téléchargent également la plupart des dépendances (y compris GhostScript, mais à l'exclusion de Python). Tout devrait fonctionner comme indiqué ci-dessus, hors de la boîte. Si vous rencontrez des problèmes, veuillez signaler un problème sur https://github.com/pts/pdfsizeopt/issues.
Pour éviter de taper ~ / pdfsizeopt / pdfsizeopt, ajoutez "$ home / pdfsizeOpt" à votre chemin (probablement dans votre ~ / .bashrc), ouvrez une nouvelle fenêtre de terminal, et la commande PDFSizeOpt fonctionnera à partir de n'importe quel répertoire.
Vous pouvez également placer PDFSizeOpt à un répertoire autre que ~ / pdfSizeOpt, comme vous le souhaitez.
Ces instructions doivent fonctionner sur les Mac plus anciens exécutant Mac OS X Léopard 10.5 - MacOS Mojave 10.14, et avoir un processeur Intel X86 32 bits ou 64 bits. Les programmes sont compilés pour le processeur Intel X86 (i386) 32 bits (et travaillent également sur un processeur Intel 64 bits avec MacOS Mojave 10.14 ou plus tôt), à l'exception de l'outil PNGOUT, qui nécessite au moins Mac OS X Snow Leopard 10.6 et Un processeur Intel 64 bits.
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
Pour installer PDFSizeOpt sur un ancien système macOS, ouvrez une fenêtre de terminal et exécutez ces commandes (sans le premier $
):
$ 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
Effectuez une exécution d'optimisation de test, qui exerce toutes les dépendances de PDFSizeOPT:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... et ouvrir (voir) Deptest.pdf et le deptest optimisé correspondant.pso.pdf.
Pour optimiser un PDF, exécutez la commande suivante:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Si le PDF d'entrée a de nombreuses images ou de grandes images, PDFSizeOPT peut être très lent. Vous pouvez l'accélérer en désactivant Pngout, la méthode d'optimisation d'image la plus lente, comme ceci:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
De plus, si vous avez un Mac avec un processeur Intel X86 32 bits, le PNGOUT regorge de PDFSizeOpt ne fonctionnera pas (car il a besoin d'un processeur 64 bits), vous devez donc forcer --User-pngout = non. Voir les optimisateurs d'image de section pour des alternatives de PNGOUT.
PDFSizeOpt crée de nombreux fichiers temporaires (PSOTMP. *) dans le répertoire de sortie, mais il nettoie également après lui-même.
Il est possible d'optimiser un PDF en dehors du répertoire actuel. Pour ce faire, spécifiez le nom de chemin (y compris le nom du répertoire) dans la ligne de commande.
Veuillez noter que les commandes ci-dessus téléchargent également la plupart des dépendances (y compris GhostScript, mais à l'exclusion de Python). Tout devrait fonctionner comme indiqué ci-dessus, hors de la boîte. Si vous rencontrez des problèmes, veuillez signaler un problème sur https://github.com/pts/pdfsizeopt/issues.
Pour éviter de taper ~ / pdfsizeopt / pdfsizeopt, ajoutez "$ home / pdfsizeOpt" à votre chemin (probablement dans votre ~ / .bashrc), ouvrez une nouvelle fenêtre de terminal, et la commande PDFSizeOpt fonctionnera à partir de n'importe quel répertoire.
Vous pouvez également placer PDFSizeOpt à un répertoire autre que ~ / pdfSizeOpt, comme vous le souhaitez.
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
PDFSizeOpt fonctionne parfaitement sur les systèmes FreeBSD x86 avec la couche d'émulation Linux activée. Ainsi, activez la couche d'émulation Linux sur votre système FreeBSD, puis suivez les instructions d'installation et l'utilisation sur Linux .
Alternativement, vous pouvez suivre les instructions d'installation et l'utilisation sur Generic Unix , mais cela nécessite beaucoup plus de travail de votre part (et il est gênant et sujet aux erreurs), car vous devez installer de nombreuses dépendances séparément, peut-être en compilant certaines d'entre elles de Source.
Cela est de plus en plus difficile en 2023, car PDFSizeOpt a besoin de Python 2.4-2.7 et GhostScript 9.05, à la fois très ancienne et donc difficile à installer sur un système moderne.
Il n'y a pas d'installation, vous devez exécuter certaines commandes dans la ligne de commande (fenêtre d'invite de commande noire) pour télécharger et installer. PDFSizeOPT est une application de ligne de commande uniquement, il n'y a pas d'interface graphique.
PdfizeOPT est un script Python. Il fonctionne avec Python 2.4, 2.5, 2.6 et 2.7 (mais cela ne fonctionne pas avec Python 3.x). Veuillez donc installer Python en premier.
Créez un nouveau répertoire nommé PDFSizeOPT et téléchargez ce lien là-bas: https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
Renommez-le à PDFSizeOpt et le rendez exécutable en exécutant les commandes suivantes (sans le premier $
):
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
Si votre exécutable Python n'est pas / usr / bin / python, modifiez la première ligne (en commençant par #!
) Dans le script PDFSizeOpt en conséquence.
Essayez-le avec:
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
PDFSizeOpt a de nombreuses dépendances. Pour une fonctionnalité complète, vous avez besoin de tous. Installez autant que vous le pouvez et mettez-les sur le chemin.
Dépendances:
sam2p
pour faire de imgdataopt
cap CHEMIN. Si vous ne pouvez pas l'installer, utilisez PDFSizeOpt --Do-Optimize-Images = Non. Certaines distributions Linux ont des binaires SAM2P, mais ils ont tendance à être trop vieux. Alternativement, SAM2P> = 0,49,3 + PNG22PNM fonctionne également à la place d'Imgdataopt, mais ImgDataOPT est plus facile à installer.Après l'installation, utilisez PDFSizeOpt comme:
$ ./pdfsizeopt input.pdf output.pdf
Vous pouvez ajouter le répertoire contenant PDFSizeOPT au chemin, de sorte que la commande pdfsizeopt
fonctionnera à partir de n'importe quel répertoire.
PDFSizeOPT peut utiliser les outils externes suivants pour créer des images dans des fichiers PDF intégrés plus petits:
Pour activer ou désactiver n'importe quel optimiseur d'image, spécifiez tous les optimisateurs d'image que vous souhaitez être activés comme ceci: --Use-Image-Optimizer = Optipng, Jbig2. Cela désactivera également le pngout par défaut.
Vous pouvez également spécifier des modèles de commande d'optimiseur d'image personnalisés en spécifiant des drapeaux séparés, supplémentaires - image-optimier =, comme ceci:
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
Vous devez toujours spécifier% (cibleFNQ) dans le modèle de commande.
Spécifiez --Do-Debug-Image-Optimizers = OUI pour voir quels optimisateurs d'image sont activés (et leur ligne de commande complète) pour l'exécution actuelle.
Au démarrage, PDFSizeOpt vérifie que les optimisateurs d'image demandés sont disponibles (en tant que fichiers de programme) et échouent si certains d'entre eux manquent. Pour ignorer ceux qui manquent, spécifiez --Do-require-iMage-Optimizers = no.
Il est de votre responsabilité (de l'utilisateur) d'installer les optimisateurs d'image et de les ajouter au chemin. Si vous suivez les instructions d'installation pour Windows et Linux ci-dessus, les optimisateurs d'image par défaut (SAM2P, JBIG2 et PNGOUT) seront installés pour vous. Pour Linux, il existe également des instructions d'installation ci-dessus pour les optimisateurs d'images supplémentaires (ZOPFLIPNG, OPTIPNG, ADVPNG et ECT).
Spécifiez --DO-UNIFY-FONTS = NO et --DO-REGERETER-ALL-FONTS = NO.
S'il échoue toujours, spécifiez --Do-Optimize-Fonts = no.
Dans les deux cas, veuillez le signaler sur https://github.com/pts/pdfsizeopt/issues
Spécifiez --Do-Optimize-IMages = no.
Veuillez le signaler sur https://github.com/pts/pdfsizeopt/issues
Spécifiez --use-pngout = no. Cela désactive Pngout, qui est l'étape d'optimisation la plus lente pour les images.
Veuillez le signaler sur https://github.com/pts/pdfsizeopt/issues, en joignant le fichier PDF d'entrée et la sortie de la console de PDFSizeOPT. Votre rapport est très apprécié.
Si PDFSizeOpt sort avec une exception non approuvée, il peut laisser des fichiers temporaires (PSOTMP. *) Derrière dans le répertoire actuel. Vous pouvez supprimer ces fichiers.
Veuillez noter que PDFSizeOpt n'est pas résilient dans le traitement des fichiers PDF corrompus (c'est-à-dire ceux qui ne sont pas conformes à la norme PDF). Donc, si PDFSizeOpt échoue, la raison peut être un bug dans PDFSizeOPT ou un fichier d'entrée PDF corrompu. Néanmoins, veuillez signaler un problème (voir ci-dessus).
Veuillez le signaler sur https://github.com/pts/pdfsizeopt/issues, en joignant le fichier PDF d'entrée et le fichier PDF de sortie (.pso.pdf) et la sortie de la console de PDFSizeOpt. Votre rapport est très apprécié.
Cela peut se produire si le nom de fichier ou le nom de chemin complet contient un caractère autre que les lettres ASCII (AZ et AZ), chiffres (0-9), souligner (_), Dash ASCII (-), plus (+), point (. ), arrière-plan () ou slash (/). En règle générale, ces personnages ne fonctionnent pas:
Espaces et onglets: c'est facile à corriger, il suffit d'envelopper le nom de fichier en doubles citations ("), la manière habituelle.
Double Quotes ("): Cela ne peut pas se produire, les noms de fichiers sur Windows ne sont pas autorisés à contenir des citations doubles. Si vous devez passer un argument non-FileName avec une double citation à PdfSizeOpt, faites-le. Enveloppez l'argument en double Les citations ("), remplacez toutes les doubles citations (") par ", et (en parallèle au remplacement précédent) remplacez une séquence de barreaux de barreaux () et une double citation (") les suivant immédiatement en reproduisant les barreaux de barreaux et en remplaçant la double citation ( ") Avec".
Newlines et autres espaces non espaces: cela ne fonctionnera pas, l'invite de commande Windows (cmd.exe) n'autorise pas ces caractères dans les arguments en ligne de commande. Windows ne les permet pas non plus dans les noms de fichiers.
personnages accentués (tels que á et ő). Ces caractères ne fonctionneront pas (ou cela peut fonctionner uniquement pour certains caractères, selon la page du code actif) dans le nom de fichier PDF spécifié dans la ligne de commande, ou dans le chemin d'accès complet de PDFSizeOPT (alors n'installez pas PDFSizeOpt sur C: bőr, ça ne fonctionnera pas).
Les caractères accentués (en dehors de la page du code actif) ne fonctionneront pas dans le parcours complet de PDFSizeOPT (comme C: Bőr PDFSizeOpt.exe). En effet, Python n'est pas en mesure d'appeler des programmes externes (OS.System, OS.popen, OS.Spawnl et Subprocess.Call) avec des caractères accentués à leur nom, car il utilise l'API à un octet.
Tout ce qui n'est pas ASCII imprimable (code entre 33 et 126, inclus): s'il n'est pas couvert ci-dessus, cela peut ne pas fonctionner. Voir la description des caractères accentués.
Si certains noms de fichiers ne fonctionnent toujours pas, les solutions de contournement sont:
Les caractères accentués dans le nom de fichier PDF pourraient être faits de travail de la manière suivante (en tant que futur travail d'amélioration pour PDFSizeOpt):
PDFSizeOpt.exe doit appeler l'API 16 bits (GetCommandLinew) au lieu de l'API à un octet (GetCommandlinea) pour obtenir les arguments
PDFSizeopt.exe devrait échapper aux caractères non ASCII dans les arguments (par exemple comme u + 12ab)
pdfsizeopt.exe devrait exécuter pdfsizeopt.single comme ceci:
... / pdfsizeopt_win32exec / pdfsizeopt_python.exe ... / pdfsizeopt.single --args-u + ...
Le code PDFSizeOPT Python doit reconnaître --args-u +, et lors de la recherche du nom de fichier, il doit le convertir en Unicode (en gardant ASCII sauf pour U + 12AB), et il doit passer la valeur de type Unicode à ouvrir (...) . Un tel ouvert (...) fonctionne dans Python 2.6 sur Windows.
Lors de l'affichage des noms de fichiers, le code PDFSizeOPT Python doit toujours afficher l'ASCII avec l'échappement U + 12AB. Ainsi, le module Win32Console n'est pas nécessaire. Ainsi, les noms de fichiers seront affichés légèrement mais incorrectement (pas de copie-proprement) dans la fenêtre de l'invite de commande.
Aucune évasion n'est nécessaire dans les lignes de commande des programmes d'assistance (par exemple GS, SAM2P), car tout est ASCII, car les noms de fichiers sont des noms de FIL temporaires autoogénés, qui sont tous ASCII, et le chemin vers PDFSizeopt lui-même est nécessaire aux ASCII.
Les caractères accentués du chemin du chemin de PDFSizeOpt.
Faites d'abord les personnages accentués du nom de fichier ci-dessus.
PDFSizeOpt.exe doit utiliser WGETCWD pour obtenir le répertoire actuel.
PDFSizeOpt.exe doit utiliser WCHDIR pour passer au répertoire de PDFSizeOpt.Single.
PDFSizeOpt.EXE doit prétendre les répertoires PDFSizeOPT_WIN32EXEC et PDFSIZEOPT_WIN32EXEC / PDFSIZEOPT_GSWIN sur le chemin, en utilisant WPUTENV.
pdfsizeopt.exe devrait exécuter pdfsizeopt.single comme ceci:
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
, où la valeur de --cwd = est la version échappée (u + 12ab) du résultat de wgetcwd.
Le code PDFSizeOPT Python devrait prétendre la valeur de --cwd = ... au nom de fichier d'entrée si elle est relative.
Le code PDFSizeOpt Python ne doit pas modifier le chemin si --cwd = ... est présent. (Cette propagation variable d'environnement fonctionne-t-elle dans Python 2.6.? Essayons!)
Il est toujours vrai qu'aucune évasion n'est nécessaire dans les lignes de commande des programmes externes (par exemple GS, SAM2P), car tout est ASCII, car les noms de fichiers temporaires sont tous ASCII, et le chemin vers PDFSizeOpt lui-même est requis pour l'ASCII. L'échappement est nécessaire si le chemin d'accès du répertoire temporaire (variable temporaire) doit s'échapper.
Cette erreur s'est produite sur un système Windows XP. La solution: téléchargez msvcr90.dll (ou trouvez-le quelque part déjà sur votre système) et copiez-le dans pdfsizeopt_win32exec (à côté de python26.dll). Toute version de msvcr90.dll fonctionnera:
Cette erreur s'est produite sur un système Windows XP lorsque le fichier Microsoft.vc90.crt.Manifest manquait dans le répertoire PDFSizeOPT_WIN32EXEC. La solution: réinstaller PDFSIEOPT, le répertoire PDFSizeOPT_WIN32EXEC dans la dernière version a ce fichier.
Veuillez installer PDFSizeOPT en suivant les instructions d'installation sur https://github.com/pts/pdfsizeopt. Ce faisant, PDFSizeOpt utilisera GhostScript 9.05 avec son regroupement, et cela fonctionnera.