Alléger un fichier Writer

Bonjour,

j'ai vu passer l'info ici et je ne le retrouve pas, pas plus que l'endroit où ça se niche dans Writer.

Comment alléger globalement un fichier Writer sans devoir alléger toutes les images les unes après les autres (je dois l'envoyer en odt donc exit la solution pdf dans ce cas de figure) ?

Merci.

(si ça se trouve j'ai mal compris quand on a parlé de cette fonctionnalité).

​Il me semble (mais ça serait bien que je me trompe là) que la dernière
fois que ça a été évoqué, la fonction n'était pas disponible pour
l'enregistrement d'un fichier odt: c'était soit pdf, soit "compresser" à la
main chaque image (format->image->compresser).
J'avais à l'époque écrit un petit outil en Java qui pouvait le faire en
masse sur toutes les images d'un odt en fonction du DPI choisi. Si c'est
encore utile, je mettrais un lien ici (avec les sources, bien sûr :wink: )

Comment alléger globalement un fichier Writer sans devoir alléger toutes
les images les unes après les autres (je dois l'envoyer en odt donc exit la
solution pdf dans ce cas de figure) ?

​Il me semble (mais ça serait bien que je me trompe là) que la dernière
fois que ça a été évoqué, la fonction n'était pas disponible pour
l'enregistrement d'un fichier odt: c'était soit pdf, soit "compresser" à la
main chaque image (format->image->compresser).

C'est pour ça que je n'étais pas sûre d'avoir bien compris ou bien retenu :slight_smile:

J'avais à l'époque écrit un petit outil en Java qui pouvait le faire en
masse sur toutes les images d'un odt en fonction du DPI choisi. Si c'est
encore utile, je mettrais un lien ici (avec les sources, bien sûr :wink: )

Ça se pourrait que ça soit utile vu que ça permet par exemple et à tout hasard de générer un fichier bien lourd pour ceux et celles qui ont des yeux en état de marche ou besoin d'imprimer et des fichiers légers pour les autres.

Comment alléger globalement un fichier Writer sans devoir alléger toutes
les images les unes après les autres (je dois l'envoyer en odt donc

exit la

solution pdf dans ce cas de figure) ?

​Il me semble (mais ça serait bien que je me trompe là) que la dernière
fois que ça a été évoqué, la fonction n'était pas disponible pour
l'enregistrement d'un fichier odt: c'était soit pdf, soit "compresser" à

la

main chaque image (format->image->compresser).

C'est pour ça que je n'étais pas sûre d'avoir bien compris ou bien retenu

:slight_smile:

J'avais à l'époque écrit un petit outil en Java qui pouvait le faire en
masse sur toutes les images d'un odt en fonction du DPI choisi. Si c'est
encore utile, je mettrais un lien ici (avec les sources, bien sûr :wink: )

Ça se pourrait que ça soit utile vu que ça permet par exemple et à tout

hasard de générer un fichier bien lourd pour ceux et celles qui ont des
yeux en état de marche ou besoin d'imprimer et des fichiers légers pour les
autres.

Le jar est disponible ici: http://cleyfaye.net/share/odtcompress.jar

Pour les inquiets, les sources sont dans le jar.
On peut régler le DPI et la qualité d'enregistrement jpg.

Le code n'est pas été mis à jour depuis la dernière fois, mais ça a
toujours l'air de marcher. Aucune garantie bien sur :wink:
Ça n'écrase pas le fichier source, mais pour tester il vaut mieux avoir une
copie, au cas où.

Le jar est disponible ici: http://cleyfaye.net/share/odtcompress.jar

Merci.

Pour les inquiets, les sources sont dans le jar.
On peut régler le DPI et la qualité d'enregistrement jpg.

Le code n'est pas été mis à jour depuis la dernière fois, mais ça a
toujours l'air de marcher. Aucune garantie bien sur :wink:
Ça n'écrase pas le fichier source, mais pour tester il vaut mieux avoir une
copie, au cas où.

Bon question, comment on l'ajoute à LibreOffice, je n'ai pas trouvé comment faire. Dois-je coller le code dans l'enregistreur de macro de LibreOffice (et quels fichiers) ?

Je vois qu'il s'agit d'un utilitaire indépendant...qui se lance par la
commande :

java -jar odtcompress.jar
à mettre dans un raccourci ou dans une fenetre de commande (executer
cmd.exe sous windows)
Java doit être installé sur la machine.

Il apparait une fenetre avec un menu à option unique 'file'...
qui comprend deux options 'open' et 'save'.

Je pense que c'est assez parlant...
Fonctionne sous Linux aussi :slight_smile:

mes deux cents.

Je vois qu'il s'agit d'un utilitaire indépendant...qui se lance par la
commande :

java -jar odtcompress.jar
à mettre dans un raccourci ou dans une fenetre de commande (executer
cmd.exe sous windows)

Avec Windows 10, clic droit sur l’icône de Windows dans la barre des tâches et Invite de commandes en mode administrateur pour ouvrir l'invite de commande justement.

Et si le dossier est dans une autre partition que Windows, il faut y accéder en faisant E.. (ou la lettre de la partition concernée avant les points).

Java doit être installé sur la machine.

Il apparait une fenetre avec un menu à option unique 'file'...
qui comprend deux options 'open' et 'save'.

Je pense que c'est assez parlant...
Fonctionne sous Linux aussi :slight_smile:

En tous cas merci à tous les deux. Cela fonctionne bien, mais la qualité du rendu n'est pas forcément terrible pour des captures d'écran (elles sont toutes plus ou moins troubles dans mon document, mais ce n'est pas très important en la circonstance).

Mon fichier est passé de plus de 5,8 Mo à 1,15. Parfait pour son destinataire.

Le Tue, 7 Jun 2016 17:21:39 +0200, Ysabeau <id@dutailly.net> écrivait:

Bonjour,

j'ai vu passer l'info ici et je ne le retrouve pas, pas plus que
l'endroit où ça se niche dans Writer.

Comment alléger globalement un fichier Writer sans devoir alléger toutes
les images les unes après les autres (je dois l'envoyer en odt donc exit
la solution pdf dans ce cas de figure) ?

Le format odt est formé par un fichier .XML zippé. On pourrait à la
limite dézipper ce fichier et trouver quelle image est la plus
grosse, et ne réduire que celle-ci...

Notez que je n'ai pas fait l'essai moi-même !

Denis

​Oups, effectivement c'est un outil indépendant qui nécessite Java. On peut
probablement en faire une extension, mais c'était plus une preuve de
concept qu'autre chose. Si quelqu'un est volontaire... :wink:

Par contre, je ne sais pas exactement quelle installation est responsable
de ça (j'ai à la fois le JRE et le Java SDK), mais sur ma machine ça se
lance directement d'un double-clic sur le fichier jar, donc je n'ai pas
précisé cette étape. Si j'en fait une nouvelle version, j'y penserais.​

Ben pas JRE en tous cas :-).

Sinon, en ce qui me concerne, moi personnellement, je suis arriveé à le faire fonctionner (merci encore Régis) et je trouve que la compression des images que j'ai obtenue n'est pas terrible (ce qui en l'espèce n'a aucune importance). Il faudrait donc tester plus avant (d'autres pourcentages de compression et résolutions ainsi que d'autres types d'images). Donc, toujours en ce qui me concerne, il n'est pas nécessaire pour l'instant de le retravailler si tu n'en n'as pas envie.

Le Tue, 7 Jun 2016 17:21:39 +0200, Ysabeau <id@dutailly.net> écrivait:

Bonjour,

j'ai vu passer l'info ici et je ne le retrouve pas, pas plus que
l'endroit où ça se niche dans Writer.

Comment alléger globalement un fichier Writer sans devoir alléger toutes
les images les unes après les autres (je dois l'envoyer en odt donc exit
la solution pdf dans ce cas de figure) ?

Le format odt est formé par un fichier .XML zippé. On pourrait à la
limite dézipper ce fichier et trouver quelle image est la plus
grosse, et ne réduire que celle-ci...

Autant le faire à partir de Writer directement, après tout quand on est le rédacteur on sait quel fichier image on ajouté (on devrait en tous cas). Moins de risques de bousiller le fichier.

Notez que je n'ai pas fait l'essai moi-même !

Je vois l'intérêt uniquement à condition de passer par un utilitaire qui traitera les images en bloc en fait.

La macro a bien fonctionné pour mon objectif donc... Mais ça serait une fonctionnalité à envisager.

Le Wed, 8 Jun 2016 21:13:48 +0200, Ysabeau <id@dutailly.net> écrivait:

Le Tue, 7 Jun 2016 17:21:39 +0200, Ysabeau <id@dutailly.net> écrivait:

Bonjour,

j'ai vu passer l'info ici et je ne le retrouve pas, pas plus que
l'endroit où ça se niche dans Writer.

Comment alléger globalement un fichier Writer sans devoir alléger toutes
les images les unes après les autres (je dois l'envoyer en odt donc exit
la solution pdf dans ce cas de figure) ?

Le format odt est formé par un fichier .XML zippé. On pourrait à la
limite dézipper ce fichier et trouver quelle image est la plus
grosse, et ne réduire que celle-ci...

Autant le faire à partir de Writer directement, après tout quand on est
le rédacteur on sait quel fichier image on ajouté (on devrait en tous
cas). Moins de risques de bousiller le fichier.

Notez que je n'ai pas fait l'essai moi-même !

Je vois l'intérêt uniquement à condition de passer par un utilitaire qui
traitera les images en bloc en fait.

En fait, je pensais plutôt à détecter quelle image est la plus grosse
et de ne réduire que celle-ci.

J'ai décidé de regarder ce qu'on trouvait dans le fichier .odt.

J'ai un fichier avec 4 images. Le fichier .odt contient un dossier
Pictures avec 4 images .png mais leur nom ressemble à
100000000000099000000BA02E05502A.png et donc on ne peut pas savoir
de quelle image il s'agit. Par contre, on a la grosseur des 4
images. On peut aussi cliquer sur l'image et donc savoir quelle
image devrait être réduite (ou extraite du fichier de travail).
Dans mon cas, les images faisaient 8,8 Mo, 650 ko, 250 ko et 12 ko.
Alors, dans un tel cas, je réduirais seulement la plus grosse image
sans me préoccuper des autres.

La macro a bien fonctionné pour mon objectif donc... Mais ça serait une
fonctionnalité à envisager.

J'ai regardé si on pouvait agir directement dans le fichier dézippé.

J'ai dézippé dans un dossier, modifier l'image la plus grosse en la
réduisant à 25%, j'ai enregistré le fichier tel quel en .zip et
renommé en .odt. LibreOffice 3.4 n'a pas voulu l'ouvrir (fichier
corrompu). Ma conclusion est que le fichier comprend sans doute
un format précis que le .zip ne suit pas (même sans modifier
l'image) et donc que ceci ne pourrait servir qu'à identifier
l'image la plus grosse.

Denis

L'odt n'est vraiment qu'un zip normal. Mais le format doit être strictement
suivi, ce que certains programmes ne font pas. Si vous êtes curieux, vous
pouvez regarder le source du programme que j'ai indiqué, c'est exactement
ce qu'il fait: décompresser l'archive, extraire les informations sur la
dimension des images (en pixel et surtout en cm pour l'impression),
redimensionner les images plus grandes que le DPI indiqué, et recompresser
dans un zip.
Si par exemple une image fait 10cm de large dans l'ODT et que l'on demande
une résolution de 90dpi, si l'image est plus large que 354 pixels elle est
réduite. On ne se base pas sur la taille du fichier ici.

L'idée n'étant pas à la base de simplement réduire la taille du fichier,
mais de redimensionner les images pour correspondre au besoin d'impression.
Bien sûr le redimensionnement est fait ici avec la bibliothèque de base de
Java, donc la qualité en prend un coup, mais remplacer cette partie par
n'importe quel autre bibliothèque de traitement est trivial. Mais pour
l'instant c'est dans la pile de choses à faire haha.