Beamer et poids du pdf

Bonjour,

J’ai réalisé une présentation avec BEAMER. Cette présentation contient énormément de photo. Donc, j’ai un PDF assez lourd.

Afin de le réduire, j’ai baissé le poids de toutes les photos. Mais, à ma grande surprise, cela n’a rien changé.

J’ai essayé d’utiliser gs comme suit :
Gs –dBATCH –dNOPAUSE –q –sDEVICE=pdfwrite –sOutputFile=out.pdf monPDF.pdf

Mais, les images sont trop dégradées pour être utilisables

bonjour,

et en donnant un peut plus d’options dans la commande ?

gs - dNOPAUSE - dBATCH - sDEVICE = pdfwrite - dCompatibilityLevel = 1.4 - dPDFSETTINGS = /screen - sOutputFile=output.pdf input.pdf

source :

c’est à essayer, mais je ne peut pas le garantir

question stupide : est il possible d’alléger les images avant de
les introduire dans le document pdf (imagemagick avec 72dpi?) ?

merci
slt
bernard

Bonjour,

Je suis moi aussi étonné que le fait d’avoir changé le poids des photos
n’ait eu aucun effet sur le poids du document.

Êtes vous bien sûr d’avoir recompilé le document avec les photos
allégées, et pas avec les originales ?

Comment avez vous allégé les photos, moi j’utilise imagemagick, du genre

magick convert entrée.jpeg -resize « 20% » sortie.jpeg

Je crois que qq’un vous a conseillé de compiler en mode draft (passer
l’option draft à graphicx) pour remplacer les photos par des boîtes
vides, et voir de combien le document réduit en taille. Qu’est-ce que
cela a donné ?

gs - dNOPAUSE - dBATCH - sDEVICE = pdfwrite - dCompatibilityLevel = 1.4 -
dPDFSETTINGS = /screen - sOutputFile=output.pdf input.pdf

Malheureusement, les images sont encore trop dégradées.

source :

AGAM69 - VIRI | A Global Anonymous Contact Tracing Platform
pdf-sous-linux/
Merci pour la source

question stupide : est il possible d’alléger les images avant de
les introduire dans le document pdf (imagemagick avec 72dpi?) ?

C’est la première chose à laquelle j’ai pensé. Malheureusement, cela ne semble avoir aucun impact sur la taille du fichier final.

Avez-vous essayé pdftk avec le filtre « compress » ?

Essaye un pdf sans image (avec l’option « draft » dans Beamer pour voir le
poids obtenu.

Philippe MICHEL

Pour réduire la taille du pdf, j’utliise (sur Mac) une commande shell Ghostcript (encapsulée dans un script Applescript pour la commodité)

/usr/local/bin/gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dUseCIEColor=true -dPDFSETTINGS=/ -sOUTPUTFILE=

l’agument -dPDFSETTINGS=/ étant au choix de l’utilisateur : « screen », « ebook », « printer », « prepress » par compression décroissante.

C’est très efficace, moins rapide toutefois que les options de compression natives de filtres quartz de Mac OsX (depuis Aperçu, menu « exporter »)
Je crois me souvenir aussi qu’il a fallu un jour installer Ghostcript.

Salutations

Je n’avais pas réalisé que la solution proposée était quasiment la même que la mienne. Désolé donc….

Voici pour les utilisateurs de mac OS le script qui permet de comprimer les pdf en les glissant sur l’icône du droplet. On obtient aussi les statistiques de taux de compression, ce qui peut aider à toruver le réglage idéal.

– DEBUT SCRIPT

(* Projet: Script de compresssion de fichiers pdf.
*

  • Version: 0.9.0 initiale
  • Compatibilité: Mac OS X
  • Auteur: Yves
  • Fichier:
  • Fichiers/Dossiers annexes:
  • Libs:
  • Osaxen:
  • Outils Unix: oui
  • Apps:
  • Divers:
  • Description: L’utilisateur choisit un fichier pdf, puis des options de compression. Le fichier source n’est pas affecté.
  • Utilisation:
  •  ...Lancer le script... 
    
  • Historique:
  • 0.9.3
  • 2012-10-19 Version alpha Droplet
  • 2012-10-21 Ajouté vérif installation Ghoscript et taux de compression*)

property ATID : “” – Standard delimiters
property NomDuFichierACompresser : missing value
property FileExtension : missing value
property OptionForCompression : missing value
property PXpathOfContainingFolder : missing value
property PFilesize1 : missing value
property PFilesize2 : missing value
property PXPathOfTargetFile : missing value
property PNomDuFichierDeSortie : missing value
–property PLabelIndex : 3 – Code couleur icône fichier cible: 3=Jaune
property pThisitem : missing value
property pStartTime : missing value

on run
display dialog “Pour utiliser ce script, faites glisser sur l’icône le document pdf à comprimer”
end run

on open draggedItems
try
if my GhostscriptInstalled() is not true then
DisplayDialog(“Ce script ne fonctionne pas sans installer d’abord Ghostscript !”)
error number -128
end if

	repeat with pThisitem in draggedItems
		tell application "Finder"
			set k to type identifier of (info for pThisitem)
			if k is not "com.adobe.pdf" then
				set d to "Désolé! Ce fichier n'est pas un fichier pdf!"
				my DisplayDialog(d)
				error number -128
			end if
		end tell
		my compress(pThisitem)
	end repeat
end try

end open

on init(f)
–try
–set f to choose file with prompt “Veuillez choisir le fichier .pdf à comprimer” of type {“com.adobe.pdf”} without invisibles – on demande de choisir le fichier à traiter
set OptionForCompression to choose from list {“screen”, “ebook”, “printer”, “prepress”} — On demande l’OptionForCompression de compression
set NomDuFichierACompresser to name of (info for f) --On extrait le nom du fichier
set FileExtension to name extension of (info for f) as string
set PFilesize1 to size of (info for f) as number – On obtient la taille du fichier de départ
CreateNewFileName(NomDuFichierACompresser, FileExtension)
set PXpathOfContainingFolder to quoted form of GetParentPath(f) --On détermine le chemin POSIX du répertoire de travail

set PXPathOfTargetFile to GetParentPath(f) & "/" & PNomDuFichierDeSortie --On détermine le chemin POSIX du fichier comprimé à créer
set pStartTime to my ReturnTime()

--	end try

end init

on compress(pThisitem)
try
init(pThisitem)
set AppleScript’s text item delimiters to “.” & FileExtension – On change temporairement le délimiteur
set NomSansExtension to text item 1 of (NomDuFichierACompresser) --On obtient le nom fichier sans l’extension
set NomDuFichierDeSortie to NomSansExtension & “-modifié.” & FileExtension – On crée le nom du fichier cible
set AppleScript’s text item delimiters to ATID --On rétablit le délimiteur par défaut
do shell script CommandeShell(PXpathOfContainingFolder, OptionForCompression, NomDuFichierDeSortie, NomDuFichierACompresser) – On execute la commande

	set PFilesize2 to size of (info for POSIX file PXPathOfTargetFile as alias) --On détermine la taille du fichier comprimé cible
	
	--tell application "Finder" to set label index of (POSIX file PXPathOfTargetFile as alias) to PLabelIndex --Coloration icône fichier cible
	
	DisplayDialog(SetDialog()) --Dialogue de fin
on error
	set AppleScript's text item delimiters to ATID --On rétablit le délimiteur par défaut
end try

end compress

on CommandeShell(PXpathOfContainingFolder, OptionForCompression, NomDuFichierDeSortie, NomDuFichierACompresser)
set cmd0 to “cd” & space & PXpathOfContainingFolder & space & “;” & space – Changement de répertoire et debut de la creation commande shell
set cmd1 to “/usr/local/bin/gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dUseCIEColor=true -dPDFSETTINGS=/” – Version pdf couleur
–set cmd1 to “/usr/local/bin/gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dPDFSETTINGS=/” – Pdf en nuances de gris
set cmd2 to OptionForCompression & " -sOUTPUTFILE="
set cmd3 to quoted form of NomDuFichierDeSortie & space & " -f" & space & quoted form of NomDuFichierACompresser
set cmd to cmd0 & cmd1 & cmd2 & cmd3 – commande shell
return cmd
end CommandeShell

on GetParentPath(TheAlias)
tell application “System Events”
set ContainerPXPath to POSIX path of (container of TheAlias)
end tell
return ContainerPXPath
end GetParentPath

on CreateNewFileName(NomDuFichierACompresser, FileExtension)
set AppleScript’s text item delimiters to “.” & FileExtension – On change temporairement le délimiteur
set NomSansExtension to text item 1 of (NomDuFichierACompresser) --On obtient le nom fichier sans l’extension
set PNomDuFichierDeSortie to NomSansExtension & “-modifié” & “.” & FileExtension – On crée le nom du fichier cible
set AppleScript’s text item delimiters to ATID --On rétablit le délimiteur par défaut
end CreateNewFileName

on SetDialog()
set dlg1 to “Compression terminée !” & return
set dlg2 to my CompressionRatio(PFilesize1, PFilesize2) & return & return
set dlg3 to “Temps de l’opération:” & space & ((my ReturnTime()) - pStartTime) & space & “seconde(s)”
return dlg1 & dlg2 & dlg3
end SetDialog

on DisplayDialog(d)
activate
display dialog d giving up after 15
end DisplayDialog

on CompressionRatio(Size1, Size2)
set ratio to round 100 * ((Size1 - Size2) / Size1)
if ratio < 0 then
set resultat to (“La taille du nouveau fichier n’est pas réduite,” & return & “mais augmentée de” & space & (-1 * ratio as text)) & “% !”
else
set resultat to “Le taux de compression est de:” & space & ratio & space & “%” & return & "La taille du fichier comprimé est de: " & (round 1.0E-3 * (Size2 as number)) & space & “Ko.”
end if
return resultat
end CompressionRatio

on GetFileSize(TheAlias)
return size of (info for TheAlias)
end GetFileSize

on GhostscriptInstalled()
set TestPath to “/usr/local/bin/gs”
tell application “Finder”
if exists (TestPath as POSIX file) then
return true
else
set TestPath to “/usr/bin/gs”
if exists (TestPath as POSIX file) then
return true
else
return false
end if
end if
end tell
end GhostscriptInstalled

on ReturnTime()
return time of (current date) as number
end ReturnTime

–FIN SCRIPT