Wednesday, 11 July 2007
Récemment j'ai eu la tâche de convertir des fichiers HTML en des fichiers Microsoft Word (.doc) - et idéalement par ligne de commande: je voulais l'intégrer dans une application PHP que j'utilise localement pour générer du contenu HTML, et proposer automatiquement à mes clients ces mêmes fichiers en .doc.
J'ai fait quelques recherches et testé quelques logiciels spécialisés, mais même si certains étaient bien confortables aucun ne générait un résultat acceptable. En fait, le seul qui sache "bien" le faire est Word lui-même... La solution était donc simple: ouvrir un fichier HTML avec Word, et le sauvegarder sous un autre nom. Sauf que il fallait pouvoir le faire de manière automatisée. Quelques recherches plus tard, j'avais trouvé une liste des paramètre de ligne de commande de Word - dont un permet d'exécuter une macro au démarrage.
J'ai enregistré une macro très simple qui sauvegarde le fichier en cours et quitte Word. Ainsi, sur la ligne de commande je pouvais déjà ouvrir un fichier HTML, et le sauvegarder en doc - sauf que il l'enregistrait toujours au même endroit et le même dossier.
En visual basic on a accès au nom et chemin du document ouvert, donc j'ai utilisé ces propriétés pour sélectionner automatiquement le dossier cible et le nom de fichier. Voici ce que ça donne:
Sub SaveAsDoc()
'
' SaveAsDoc Macro
' Saves the active file and exits the application.
' Used to convert HTML to doc files.
'
ChangeFileOpenDirectory ActiveDocument.Path
ActiveDocument.SaveAs FileName:=ActiveDocument.Name + ".doc", FileFormat _
:=wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
Application.Quit
End Sub
Après avoir ajouté la macro, on peut la lancer sur la ligne de commande avec la commande suivante:
winword.exe /mSaveAsDoc document.html
Cette commande ouvre Word, charge le fichier spécifié et lance la macro "SaveAsDoc". Le fichier est directement sauvegardé dans le même dossier que le fichier ouvert, avec une extension .doc ajoutée au nom original. On retrouve donc après un fichier nommé
document.html.doc
Assez confortable, si on peut supporter l'ouverture/fermeture de Word pour chaque fichier. Je n'ai pas testé en laissant Word ouvert parcontre. À partir de PHP, le seul hic est que je ne peux pas lancer d'applications avec un exec() - mais là encore il y a une solution assez simple: je crée automatiquement un fichier de ligne de commande contenant toutes les commandes de conversion, et sur lequel il ne reste plus qu'à cliquer.
Gros avantages de cette solution: compatibilité parfaite + gratuité. Si quelqu'un a une meilleure solution ou un logiciel à proposer, dites-le moi.
Monday, 26 March 2007
Vu sur Nikochan: des pissoirs un peu... différents
Tuesday, 20 February 2007
Nondidju, mais c'est pas possible?! Bonjour la sécurité à outrance, je viens de me rendre compte que je ne peux plus ajouter de fournisseurs dans mon accès aux comptes online - et pourquoi? À cause de ce petit message très con:
"Cette fonction nécessite désormais la saisie d'un Code Sécurité transmis sur votre téléphone mobile. Pour utiliser cette fonction, la déclaration de votre numéro de téléphone mobile à votre Conseiller en Agence est obligatoire."
Woah, c'est vrai qu'ajouter un fournisseur c'est tellement dangereux qu'il vaudrait mieux déconnecter Internet juste pour être sûr. Mais ce qui me gêne le plus, c'est que je n'ai pas de téléphone portable, alors comment je suis censé faire? C'est que en plus, je paie pour ce service qui devient de plus en plus ridicule!
Non, mais en plus ils me disent ça quand j'ai fini de remplir tout le formulaire au lieu de m'en informer tout de suite - parcontre, les fenêtres de dialogue déplaçables avec transparence et tutti quanti, ça ils savent faire. Mais allez prendre des cours de programmation et d'utilisabilité, bande de bouffons!
ARGH! AAAAAARGH!
Si seulement je pouvais retourner à la Deutsche Bank comme quand j'étais en allemagne, eux au moins ils savaient vraiment comment sécuriser mes comptes sans me lier complètement les mains avec des mesures stupides qui ne servent à rien.
Saturday, 20 January 2007
 Vu sur FrogView: des peintures murales impressionnantes. Avec une profondeur et un détail qui font rêver.
Thursday, 18 January 2007
Vu sur The One Million Masterpiece:
...Ce qui est surtout intéressant, c'est le "Replay" où on peut voir comment l'artiste a crée son image. Pour la petite histoire, TOMM est un projet caritatif qui vise à récolter 1 million d'images dessinnées par des internautes venant de partout dans le monde. Une interface simple en Flash permet de faire son propre dessin, et de là vient l'exploit: le possibilités de dessin de cette interface sont plutôt sommaires, donc une oeuvre comme cet oeil est un véritable exploit.
Mon dessin à moi est bien plus simple, et pas encore fini:
Et pourtant j'ai recu un email du projet ce matin, il va être inclus dans le calendrier officiel 2007
Tuesday, 6 June 2006
Le programme Genuine Advantage de Microsoft prend des tournures intéressantes. Ce Weekend j'ai essayé d'installer la nouvelle beta du Internet Explorer 7 sur la machine d'un ami - et son Windows XP n'a pas passé la validation genuine intégré à l'installation du navigateur. Je n'étais pas bien surpris par ce fait-là, mais plutôt par le fait que j'avais la possibilité de me faire afficher les solutions possibles à ce problème sur le site Windowsupdate.
Curieux par nature, un click me montra qu'il est maintenant possible d'acheter une license directement de Microsoft, et de remplacer la license illicite par la nouvelle à l'aide d'un logiciel fourni par Microsoft pour ne même pas à avoir à réinstaller Windows. Très bonne initiative me suis-je dit, de rendre le processus aussi simple - mais là où je suis vraiment tombé parterre, c'est quand j'ai vu le prix: 135 Eur TTC - pour la license et le CD d'installation qu'il envoient en international. C'est le prix de la version OEM pour les revendeurs!
De là à s'installer une version illicite de Windows pour profiter de cette offre alléchante, il n'y a qu'un pas...  Nan, sérieusement je pense que c'est une idée superbe - une bonne occasion pour tout le monde qui a encore des versions illicites pour passer du côté de la lumière
...de plus, ils ont sorti la version beta du Media Player v11, et ça en jette.
Monday, 5 June 2006
 Je viens de publier une nouvelle composition intitulée "Doorways to infinity" [1] sur DeviantART sur laquelle je travaille depuis quelques semaines. Il s'agit de la suite du montage photo que j'avais fait pour mon site perso [2] qui fait 5800 pixels de large. Je voulais partir du même concept, mais le faire évoluer légèrement.
Ce montage-ci est fait à la verticale, et j'ai gardé les couleurs originales des photos au lieu de toutes les teindre. Plus difficile au niveau des transitions, mais plus réaliste. L'image finale est de 1147 x 10255 pixels, contient 144 calques et pèse dans les 80 Mo. Même avec 1 Go de RAM, j'ai dû le scinder en deux  J'ai passé un peu plus de 38 heures dessus en tout en comptant les découpes de tous les éléments.
En tout cas, je suis assez content de l'avoir fait, j'ai appris plein de petits détails - il faut bien ça pour avancer
[1] Doorways to infinity sur DeviantART
[2] Mon site personnel, Anthéa
Wednesday, 3 May 2006
 J'en avais un peu marre de la navigation actuelle de DeviantART [1], surtout depuis que j'ai souscrit à un shop [2] pour quelques-uns de mes dessins: il n'y a pratiquement pas de navigation du tout pour faciliter l'ajout et la gestion des produits
Alors une fois n'est pas coutume, j'ai programmé un userscript pour Greasemonkey [3], cette petite extension très sympatique pour Firefox [4] qui permet d'ajouter du javascript à n'importe-quel site. Mon script, la deviantToolbox [5], est une collection de tous les liens disponibles pour un utilisateur authentifié à portée de click par un petit bouton flottant en haut à gauche.
Comme d'habitude, je me suis un peu emporté en programmant tout ça, donc voici les caractéristiques de "la bête":
- Navigation complète n'importe-où sur deviantART
- Disponible en Anglais, Allemand et Français (par une option)
- Détection automatique de l'utilisateur
- Panneau d'options intégré
- Plusieurs schémas de couleur au choix pour l'interface
- Peut rester ouvert d'une page à l'autre (par une option)
- Peut être affichée horizontalement ou verticalement
Pour pouvoir l'utiliser, il faut installer l'extension Greasemonkey v0.6.4 (ou plus) pour Firefox, et ensuite installer le script - je recommande de le faire par userscripts.org, c'est le plus simple. Il faut bien sûr aussi avoir un compte sur deviantART
Liens:
[1] deviantART
[2] Mon shop sur deviantART
[3] Extension Greasemonkey pour Firefox
[4] Le navigateur Firefox
[5] La deviantToolbox sur userscripts.org ou sur deviantART
Monday, 24 April 2006
 J'ai publié un tutoriel [1] sur mon compte DeviantART [2] sur les différentes méthodes pour nettoyer des photos, et plus précisément la peau. Souvent on aimerait bien se débarrasser d'un bouton gênant, ou encore nettoyer des photos scannées de toutes les petites interférences que le scanner a gentiment ajoutées...
Dans le tutoriel, je montre un peu toutes les possibilités qu'offre Photoshop pour le nettoyage des photos, des nouveaux outils Photoshop CS au bon vieux tampon ainsi que l'utilisation de Filtres comme le réducteur de bruit.
Le tout est en anglais, parcontre...
[1] Tutoriel de nettoyage de photos
[2] AeonOfTime @DeviantART
Tuesday, 4 April 2006
 Récemment, j'ai redécouvert DeviantART, une communauté d'artistes assez phénoménale de par la diversité des oeuvres ou Déviations (allant de la photographie à la sculpture et aux poèmes en passant par les dessins digitaux), du nombre d'oeuvres disponibles (plus de 20.000.000) et de l'atmosphère générale des échanges entre artistes et visiteurs.
Comme je m'intéressais aux techniques de dessin vectoriel dans Illustrator, j'ai commencé par parcourir la catégorie Digital Art » Vector Art [1], et rien que la première page en dit déjà long sur la qualité des oeuvres disponibles. J'ai notamment découvert la discipline du traçage consistant à prendre une photo (de célébrités [2] la plupart du temps) et de les vectoriser à la main. 8000 dessins plus tard, je commençais à me dire que je n'allais pas en voir le bout - avec raison: un admin de DA m'a affirmé durant un chat qu'il y avait près de 150.000 dessins vectoriels
Je me suis donc abonné [4], parce-que de voir tout ça m'a donné envie de me remettre un peu au dessin. Et puis je me suis dit que ce serait sympa d'avoir une liste de mes oeuvres personnelles dans mon blog - sauf que chez DA, ils n'ont pas encore de fils RSS pour accéder aux infos d'un artiste en particulier  De plus, les Pasties, la solution de DA pour afficher ses déviations sur son site perso ou blogue ne permet que très peu de customisation. La solution, je l'ai faite sur mesure sous la forme d'un plugin pour Serendipity [3], mon logiciel de blog: le DeviantPastie. Ce plugin permet de définir une liste sur mesure de déviations à afficher, ou alors d'utiliser une adresse d'un Pastie pour l'afficher dans un format facile à customiser, et qui de plus intègre un cache qui évite de le charger à chaque requête. Dans la barre latérale tout en haut, il y a un exemple de ce que ça donne.
Le plugin n'est pas encore tout à fait terminé, mais une fois que je l'aurai assez testé je le mettrai au téléchargement en open source sous license LGPL. Comme d'habitude, je vous tiens au courant
Liens:
[1] La catégorie Digital Art » Vector Art sur DeviantART
[2] Exemple de traçage vectoriel: Katie Holmes
[3] Serendipity, mon logiciel de blogue
[4] Ma page sur DeviantART, =AeonOfTime
Tuesday, 28 February 2006
...ou presque. J'ai toujours eu du mal avec les expressions régulières, et pourtant j'y suis confronté presque tous les jours. De temps en temps je refais des recherches pour voir si il n'existe pas enfin un logiciel qui aide à leur création - recherches qui mènent à des nuées de testeurs d'expressions régulières, ainsi qu'à quelques logiciels de qualité plus que douteuse et qui sont loin d'offrir ce que je voudrais.
Pour éviter une phrase du style "tout cela, c'est du passé! Maintenant, il y a...", tout simplement: j'ai trouvé exactement ce qu'il me fallait, et pourtant je suis vraiment über-exigeant: RegexBuddy [1]. Derrière ce nom je le concède on ne peut plus beauf se cache une vraie petite merveille. C'est tout simplement un éditeur d'expressions régulières visuel avec tout plein de boutons et un parseur d'expressions qui marche du tonnerre.
Comme les images parlent plus que les mots:
Dans le premier écran, on voit l'arborescence de l'expression régulière qu'on a crée, et souvent on peut aussi y trouver des conseils pour l'optimiser ou corriger des erreurs. Le second montre le menu contextuel qui permet d'insérer un élément quelconque à la position du curseur. Le dernier montre la fenêtre de création d'une classe de caractères.
Pour quelqu'un qui débute c'est génial par l'aide que RegexBuddy propose, et pour les confirmés la recherche d'erreurs et l'optimisation sont des aides précieuses. Depuis que je l'utilise, je n'ai plus peur des expressions régulières! TM  Le seul bémol à l'horizon: n'existe qu'en anglais...
[1] Site officiel de RegexBuddy
Wednesday, 15 February 2006
En ce moment, je fais un petit trip Enigma avec des chansons comme:
"Just for the day" (Dream On),
"Holdin' on to you" (Dream On),
"Valley of dreams" (Erotic Dreams),
"Voices in the Dark" (Erotic Dreams),
"Following the sun" (Voyageur).
Avec une mention spéciale pour "Voices in the Dark", qui a un son pas très Enigma-like, et surtout qui pourrait laisser pâlir les tambours du bronx. Autrement, c'est un mélange fou comme d'habitude avec en mode shuffle:
"It's true that we love one another" - The White Stripes, Elephant
"Life Begin Again" - Afro Celt Soundsystem, Further in Time
"They don't want music" - The Black Eyed Peas, Monkey Business [***]
"Galician Overture" - The Chieftains, Santiago
"The Bomb (Extended)" - Neuroticfish, The Bomb Promo
"Merry-Go-Round-To-Hell" - Project Pitchfork, Kaskade
"What else is there" - Ryksopp, The Understanding [***]
"Rosenrot" - Rammstein, Rosenrot [***]
"Ne Partons pas fâchés" - Raphael, Caravane
"Vitrolles" - Raspigaous, Chaud Time [***]
"Ramalama" - Roisin Murphy, Ruby Blue
"Waterpumpee" - Seeed, Music Monks
"Dia Especial" - Shakira, Fijación Oral Vol. 1
"A Stückl heile Welt" - Silbermond, Verschwende deine Zeit
"Non sens" - Sinsemilia, Debout Les Yeux Ouverts
"Lollotron Reboot" - Water Lilly, Spoutnika
"Crucified Division (Desert Mix)" - Wumpscut, Gomorra EP
"Gangsta's Paradise" - Coolio
"The Bug" - Dire Straits, On Every Street
"Daily Growing" - Altan
"Water is alright in Tay" - The Dubliners
"Infinite" - Assemblage 23, Storm
"Well, well, well" - Ben Harper, There Will Be A Light
"Dusche" - Farin Urlaub, Am Ende der Sonne
"From Paris to Berlin (Extended)" - Infernal
"Step into my world" - Jennifer Lopez, Rebirth
"Dirty Man" - Joss Stone, The Soul Sessions
"Another place to fall" - KT Tunstall, Eye to the Telescope
"Spin" - Lifehouse, No Name Face [***]
"Bones" - Luka Bloom, Amsterdam
"There is a Ghost" - Marianne Faithful, Before the Poison
"The invisible Man" - Marillion, Marbles
"The Grave Digger" - Matmatah, Archie Kramer
"Slipping Away" - Moby, Hotel
"Lagoon" - RE:\Legion [***]
"Final Straw" - R.E.M., Around The Sun
"Rhapsody in E" - Scooter, And The Beat Goes On
Friday, 3 February 2006
Alors là, même le grand Argh reste sans voix - où comment allier une paire de fesses avec un vieux jeu vidéo
(Je ne montre pas la photo ici à cause du copyright.)
Saturday, 28 January 2006
Petite suite de mon billet sur la tempête de ce matin: aux marines de cogolin arrivent quelques-unes des plus grandes vagues vu la direction du vent venant directement du large. Là, on en voit une qui suit directement celle qui se brise déjà sur la jetée...
...et qui montre qu'il vaut mieux ne pas se trouver là. Le vent n'est pas en reste, d'ailleurs, vu à quel point la pluie me martèle le visage  J'espère que le propriétaire de la coccinelle qu'on voit va venir la déplacer, sinon il ne trouvera bientôt plus qu'un tas de rouille. Avec l'eau salée, il vaut mieux faire un lavage intégral à l'eau douce!
|