Convertir un carnet d’adresse LDIF en VCF (Thunderbird vers Roundcube)

Thunderbird exporte son carnet d’adresses en format LDIF ou CSV ou  TSV. Or, quand on veut importer son carnet d’adresses dans Roundcube qui n’importe que le format VCF, on est un peu coincé…

Du coup, j’ai écrit rapidement un petit programme python qui fait la conversion (ldif2vcf.py) d’un carnet d’adresses rapidement, puisque je n’ai pas trouvé de solution sur le net ((vive les formats ouverts!)).

Comme il est destiné à Roundcube et que celui ci n’utilise pas (pour l’instant) tous les champs disponibles dans une vcard, seules sont converties les informations de nom, prénom, nom à afficher et adresse mail principale. Par conséquent, si vous voulez l’utiliser pour autre chose, ne vous étonnez pas si toutes les informations ne sont pas récupérées dans le fichier de sortie ((mais la modification de code serait simple pour tout récupérer)).

Le fonctionnement est simple: vous indiquez le fichier d’entrée (.ldif) avec l’option « -f » et le fichier de sortie (.vcf) avec l’option « -o« . Si vous n’indiquez pas de fichier de sortie, le résultat s’affiche à l’écran.

Il faut bien sûr exporter préalablement votre carnet d’adresses depuis Thunderbird quelque part sur votre ordinateur.

exemple:

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif

ou

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif -o /tmp/sortie.vcf

L’option « -h » affiche une aide succincte.

Réduire la taille d’un PDF sur Linux

Il y a quelques temps, j’avais écrit un article pour alléger un document PDF. Il faut reconnaitre qu’Openoffice.org crée des PDF avec de l’embonpoint.

J’ai découvert récemment que Ghostscript possédait une option permettant de spécifier comment allait être utilisé le document, que ça aidait fortement à réduire la taille finale, et qu’il était prévu pour les documents PDF.

Il y a trois possibilités principales:

  • Votre document doit être utilisé sur un écran
  • Votre document doit être imprimé sur une imprimante de bureau
  • Votre document sera imprimé sur une imprimante professionnelle (tirage chez un imprimeur)

Un moniteur informatique possède une résolution typique d’une centaine de DPI (pixels par pouces). Ce qui signifie que sur un pouce d’écran il y a une centaine de pixels. Traditionnellement, la résolution utilisée pour des images destinées à l’écran est de 72 DPI. Or, si votre image est à 300 DPI, c’est complètement inutile ! Pour un pouce, vous aurez donc 228 pixels en trop qui prendront de la place dans votre document.

Pour une impression de bonne qualité, une image entre 150 et 200 DPI est suffisante. Si votre image fait 300 DPI, elle est inutilement trop grande.

Si vous avez installé ghostscript, une seule ligne de commande pourra vous rendre bien des services, en particulier si vous devez envoyer vos documents par mail:


gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -sOUTPUTFILE=PDFdeSortie.pdf -f PDFaAlleger.pdf

Remplacez bien sûr, PDFdeSortie et PDFaAlleger par le nom voulu et le nom de votre document.

l’option -dPDFSETTINGS peut prendre les valeurs suivantes:

  • /screen pour un document destiné à l’écran
  • /ebook pour une qualité entre screen et printer (suite aux commentaires de l’article)
  • /printer pour un document destiné à l’impression
  • /prepress pour un document destiné à l’impression professionnelle

Pour info, j’ai utilisé l’option /screen pour un PDF de 40Mo et j’ai obtenu (après une bonne minute de traitement) un PDF de 5.1 Mo.

Le document obtenu s’ouvre bien plus rapidement et la qualité des pages, si elle a légèrement souffert, reste largement suffisante pour lire le texte et les images.

Avec l’option /printer, la taille du document obtenu est de 13.5 Mo sans perte de qualité visible à l’œil par rapport au document d’origine. Mais le document est quand même plus rapide à l’ouverture.

Alléger ou réduire la taille d’un PDF

Les fichiers PDF générés par les programmes sous linux ont une fâcheuse tendance à l’embonpoint.

Il est conseillé de ne pas dépasser 150 dpi dans les réglages d’exportation ou d’impression afin de ne pas avoir un trop gros document, mais parfois, ce n’est pas suffisant pour obtenir un fichier assez léger pour être envoyé par mail.

Voici les commandes à utiliser pour alléger un document PDF

J’ai un document PDF qui servira d’exemple. La taille de base de ce document est de 26.4Mo.

Méthode 1: utiliser l’imprimante PDF de cups pour choisir les réglages

Il faut bien sûr que cups-pdf soit installé sur votre système.

Ouvrez le documents PDF avec votre lecteur de PDF, choisissez de l’imprimer sur l’imprimante PDF, et allez régler les options de manière à imprimer en 150 dpi.

Le nouveau document généré atteint alors une taille de 17.8Mo.

Méthode 2: passer par postscript pour regénérer un PDF léger

Ouvrez un terminal dans le dossier où se trouve votre PDF et entrez la commande suivante, en remplaçant foo par le nom de votre document:

pdftops -paper A4 foo.pdf

vous obtenez, après un temps plus ou moins long, un fichier foo.ps de taille supéroeure à votre PDF d’origine (34.8Mo dans mon cas)

ps2pdf13 foo.ps

Vous obtenez alors un fichier PDF (qui a remplacé votre PDF d’origine, attention à garder votre original au chaud!) très fortement allégé. Dans mon cas, le PDF final fait 1Mo, soit 26 fois moins que le document d’origine!

C’est très appréciable, n’est ce pas?

Manipuler des PDF et JPG ou JPEG

Je scanne beaucoup de documents (pour tendre vers le zéro papier) et j’archive ensuite ceux ci dans des PDF une fois que je n’en ai plus besoin.

Je vous donne mes astuces pour ce faire. Il vous faudra avoir installé les programmes imagemagick et gs, disponibles sous le même nom avec Ubuntu.

Créer un PDF à partir d’images

Je scanne en niveaux de gris à 300 DPI vers jpeg, ce qui permet d’avoir une image nette et de réimprimer le document au besoin en ayant la même qualité qu’une photocopie classique.

Ensuite, je met ces images dans un même dossier, et je les convertis toutes en un seul PDF avec la commande suivante:

convert *.jpeg Factures_Avril09.PDF

Ce qui vous donne un PDF contenant une page par image, dans l’ordre alphabétique.

Cependant, le PDF est assez lourd, l’équivalent en poids du total des images. Si vous désirez envoyer ce PDF par mail (par exemple au comptable), il faut l’alléger car vous allez y gagner en poids et il n’a pas besoin d’avoir une qualité identique à la votre tant qu’il arrive à lire le contenu. Il suffit d’ajouter une compression et un niveau de qualité à la commande ainsi:

convert *.jpeg -compress jpeg -quality 30 Factures_Avril09.PDF

Avec une qualité réglée à 30, vous divisez par environs 2,5 le poids du PDF généré. Mais la qualité de l’image baisse (ce qui est normal, puisque c’est ce qui est demandé). A vous de faire varier ce chiffre entre 0 et 100 pour arriver à un compromis acceptable entre la qualité et le poids du résultat final.

Dans l’autre sens

Il est aussi possible de transformer un PDF en série d’images que vous pourrez ensuite traiter, avec la commande suivante:

convert fichier.pdf images.jpeg

Cela va vous produire images-0.jpeg, images-1.jpeg, images-2.jpeg, … Autant d’images que de pages dans le PDF.

Attention cependant, la qualité des images obtenues avec cette méthode laisse à désirer et j’ai eu des soucis avec des images: le format était bien en A4, mais le contenu de l’image était réduit sur la page. Sans doute un option manquante.

Mais ça reste lisible.

Convertir une vidéo en flv

Pour faire simple, on va utiliser les actions de nautilus.

  • Installer les paquets suivants:  ruby nautilus-action et ffmpeg
  • Aller dans le menu Système / Préférences / Configuration des actions de nautilus
  • Cliquez sur Ajouter une action et remplissez tel que sur la capture
  • Action nautilus: convertir en flv
  • Dans l’onglet conditions, sélectionnez fichiers seulement
  • Validez

Dorénavant, il suffit de faire un clic droit sur une vidéo pour la convertir en flv.

Oui mais voila. Il semblerait que les métadonnées de la vidéo en flash ne soient pas correctes, et que la vidéo ne soit pas lisible correctement sur tous les navigateurs.

Pour corriger ceci, nous allons créer une autre action qui va corriger cela.

  •  Téléchargez les outils flvtool2 sur  http://rubyforge.org/frs/?group_id=1096&release_id=9694 . Sélectionnez zip pour windows, tar.gz pour linux.
  • Décompressez l’archive et ouvrez un terminal dans le répertoire où vous l’avez décompressée.
  • Exécutez les commandes suivantes pourl’installer:
  • ruby setup.rb config
  • ruby setup.rb setup
  • sudo ruby setup.rb install
  • Les retours normaux (sous Ubuntu 8.04) sont des flèches et des noms de fichier. Vous pouvez fermer le terminal.
  • Retournez dans les actions de nautilus et créez une nouvelle action suivant la capture suivante:
  • Action nautilus: traiter les metadonnées
  • Dans l’onglet « conditions », mettez « *.flv » dans le premier champ, puis sélectionnez « seulement des fichiers »
  • Validez

Il suffit maintenant de faire un clic droit sur le fichier flv nouvellement créer et de sélectionner « metadonnées flv » pour le rendre compatible.

Note:

Les icones sont mises au hasard. En effet, dans ubuntu hardy, je n’ai jamais pu avoir les icones sur les actions créées. Sans doute un bug dont il faudrait que je fasse un signalement lorsque j’aurais le temps.

Pour les plus paresseux, j’ai créé les actions qu’il suffit d’importer dans nautilus actions configuration nautilus pour convertir une video en flv et configuration nautilus pour convertir les metadonnées