Créer un ePub/Mobi d’un clic, depuis Word

Préambule

Où je plante le décors et explique au lecteur stupéfait ce que je fais et le but de mon petit script.

J’écris un roman, dans Word sous Windows. J’aimerais pouvoir lire et annoter le manuscrit sur mon iPad, vautréconfortablement installé dans le canapé, pour ensuite reprendre ces annotations et corrections dans le manuscrit lui-même, sur l’ordinateur. Malheureusement, Microsoft Office n’est toujours pas disponible sur iOS et, pour diverses raisons, les apps alternatives ne me conviennent pas. Exit la lecture des fichiers Word sur l’iPad, donc ? Aucune solution ? Dois-je me résoudre à revenir à Markdown ?

—David, me dis-je en me regardant droit dans les yeux (oui, je me parle à moi-même et je me regarde dans les yeux), la situation est grave mais pas désespérée à ce point-là.
—C’est vrai, j’ai qu’à acheter une Surface 2, y a Word dessus !
—Trop chère. En plus, t’as déjà commandé le nouvel iPad mini.
—Ouais, t’as raison… Mais y a Word dess…
—Oublie Word et fais attention, STP. Sur ton iPad, tu peux facilement lire des ebooks, ePub et Mobi, non ? Et tu sais que tu peux aussi très facilement les annoter ?
—Oui, et alors ? me suis-je dis à moi- même.
Et alors ? Seigneur, aidez-moi à ne pas me donner de baffes… Comment tu les fais, tes ebooks, andouille ?
—Dans Calibre, depuis un fichier Word.
—Et…
—Et ? Ben… heu… ça marche bien !
—Ouiiiii. Et… ? Tu vois où je veux en venir ?
—Non, mais je veux bien un thé.
Gnnnnn. Imagine un instant que ça soit automatisé.
—Le thé ?
—Mais non ! La création d’ebook ! Tu veux que je t’étrangle, ou quoi ?
—Non.
—Donc, avec un script, tu aurais un nouvel ePub/Mobi qui serait envoyé sur ta tablette chaque fois que tu sauvegarderais ton manuscrit dans Word, ou chaque fois que tu le déciderais. Là, tu piges ?
—… Non.
—Tu pourrais lire et annoter ton ebook sur la tablette, puis récupérer tes annotations pour travailler sur l’ordi. Et tu serais toujours sûr d’avoir la dernière version.
—Aaaah. Oui. C’est une bonne idée. Mais pour le thé, alors ?

Après avoir repris conscience, suite à un auto-étranglement rageur, poussé par mon insatiable curiosité, ainsi que par la promesse d’une tasse de thé, je me suis fait un script sur mesure qui :

  1. Récupère le titre du roman dans les propriétés du fichier Word, pour en faire le titre de l’ebook (c’est plus sympa dans la bibliothèque qu’un ebook intitulé “Unknown”).
  2. Enregistre le document actif, aka “le roman”.
  3. Copie le texte que vous avez sélectionné (tout le manuscrit ou une partie seulement) dans un nouveau fichier (histoire de pas faire de connerie avec l’original), qu’il enregistre dans un dossier temporaire.
  4. Exécute dessus la ligne de commande Calibre pour :
    • Créer un epub.
    • Créer un mobi.
  5. Ces ebooks préservent les éventuels titres utilisés dans le manuscrit. Calibre ajoute également un saut de page avant chaque titre de niveau 2, niveau qui correspond aux chapitres dans mon roman.
  6. Enregistre ces ebooks dans un dossier qui est synchronisé sur iPad. Dans mon cas c’est via SkyDrive mais ça marchera aussi bien avec Dropbox ou un autre. On pourrait aussi l’envoyer par email, mais pourquoi s’emmerder ?

C’est une macro VBA testée uniquement dans Word 2013, sous Windows. Pour que ça fonctionne, Calibre doit être installé (testé avec la version 1.10) car c’est lui qui se charge de créer les ebooks (pourquoi pas réinventer la roue et le fil à couper le beurre, tant qu’on y est ?).

Sub ExportDoc()

‘ Macro to create an epub/mobi from a copy of the active docx
‘ Save in a folder: ie, SkyDrive or Dropbox.
‘ So, you can read (and annotate) an epub/mobi of you current manuscript
‘ from any tablet with SkyDrive/Dropbox or whatever
‘ Download latest version: http://davidbosman.fr


    ‘Get doc’s title from its metadata:
    MyTitle = ActiveDocument.BuiltInDocumentProperties(“Title”).Value
    ‘Saving actual doc.
    ‘Copy selection from active doc to pasteboard
    ‘create new doc, paste selection and
    ‘save it as a new DOCX file in a temp folder on c: drive
    ‘To be clear: there won’t be any change made to the original doc
    ThisDocument.Save
    Selection.Copy
    Documents.Add DocumentType:=wdNewBlankDocument
    Selection.PasteAndFormat (wdPasteDefault)
    Selection.HomeKey Unit:=wdStory
    ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = MyTitle
    ActiveDocument.SaveAs2 FileName:=”C:\export\draft.docx”, _
        FileFormat:=wdFormatDocumentDefault
    ‘Close the new docx and run Calibre CLI to convert it to epub and mobi,
    ‘in my case, files are saved into SkyDrive folder
    ‘–page-breaks-before=””//h:h2″” insert a page break before Level 2 title,
    ‘change to h1 to insert the break before each level 1, and so on.
    ‘Change path with your user name and desired output folder:
    ActiveDocument.Close
    Shell “ebook-convert C:\export\draft.docx C:\Users\David\SkyDrive\draft.epub –page-breaks-before=””//h:h2″””, vbHide
    Shell “ebook-convert C:\export\draft.docx C:\Users\David\SkyDrive\draft.mobi –page-breaks-before=””//h:h2″””, vbHide
End Sub

 

Edit : le script au format TXT

Pour le lancer, il suffit de sélectionner tout le texte de votre fichier (ctrl+a), ou seulement la section que vous souhaitez relire, et d’exécuter la macro…  Je vous suggère de lui assigner un raccourci clavier et de l’ajouter à la barre d’accès rapide dont je ne cesserai jamais de dire à quel point elle est pratique.

Sans titre

Tu peux me réexpliquer à quoi ça sert ?

Comme je l’ai déjà dit : ça me semble une façon acceptable de relire et annoter mon manuscrit sur une tablette—notez que je ne parle pas de le réécrire de fond en comble : je ne me vois pas faire ça sur une tablette, de toute façon.

Mais il y a un autre intérêt à la chose : en le lisant comme un epub/mobi, sur une tablette ou une liseuse, je vais lire mon roman exactement dans les mêmes conditions que mon (très hypothétique) lecteur. C’est pas mal, pour savoir si on a réussi à écrire une histoire qui donne envie de tourner les pages, ou de faire défiler l’écran, pour paraphraser le maitre incontesté en tournage de pages : Stephen King—t’as vu comme je me greffe à l’actualité du moment ? Trop fort.

Je peux facilement imaginer aussi filer cet ePub à mes beta lecteurs (enfin, si j’en ai), et leur demander de me renvoyer uniquement leurs annotations.

Bref, c’est une expérience à tenter. Et le script me permet de le faire sans me prendre la tête. Et sans quitter Word.

Il y a des limites ?

Surement un paquet. Je ne vais vraiment commencer à l’utiliser, et voir si c’est viable, que dans les jours qui viennent.

En plus de ça, mon but n’est pas de faire un ebook destiné à la publication mais un fichier que je puisse (faire) lire sur tablette ou liseuse, pour corriger mon manuscrit : je me fiche des petits problèmes éventuels de mise en page. On notera quand même que Calibre fait un assez bon boulot, pour pour peu que l’on utilise correctement les styles dans Word.

<

p>Edit: Sur le même sujet, Exporter les commentaires d’un fichier Word

C’est tout de suite beaucoup plus clair

Je continue à adapter Word à mes besoins, grâce à VBA. Pour le moment, je bricole un script qui, entre autres choses, doit copier un fichier. Surprise, ça ne marche comme prévu :

Erreur

Plein d’espoir, j’ai cliqué sur le bouton “Détails>>>” qui ne manquerait pas d’afficher le détail de ce qui cloche.

Erreur 2

Oui, c’est tout de suite beaucoup plus clair…

Dans le même genre : La simplicité est un art

Edit: c’est bon, j’ai trouvé le bug (ma faute, bien entendu) et je l’ai réglé tout simplement… en n’essayant plus de copier le fichier — au final, le script est beaucoup plus simple 😉

Le NaNoWriMo et moi

Je vous rappelle que vous pouvez suivre mes déboires avec le NaNoWriMo en (quasi) temps réel, sur osezlasf.net—je n’ai presque pas de retard. en fait, en y réfléchissant bien je serais même plutôt en avance… pour le NaNoWriMo de l’année prochaine  Clignement d'œil

Chouettes annonces du côté de Microsoft Office

Microsoft’s corporate VP for the Office division John Case, it’s worth noting, told me that he believes the Office Web Apps haven’t quite received the recognition they deserve. He plans to change this by focusing more of the marketing on them and giving them more attention in general. “They have always been important companions to the client apps,” he told me,”but we are now starting to view them as standalone apps, too.” In the coming month, he promised, Microsoft will invest more heavily in the Web Apps.

(Microsoft Updates Office 365, Brings Real-Time Collaboration To Free Office Web Apps, Adds Yammer To All Enterprise Versions)

Comme quoi, chez Microsoft on lit mon blog 😉

Plus sérieusement, et pour rebondir sur mon précédent billet : c’est une bonne nouvelle de voir Microsoft se décider à communiquer (et investir) un peu plus sérieusement sur ses Web Apps. C’est une façon un peu moins stupide de réagir au très joli coup de Apple (iWorks offert).

C’est également une excellente nouvelle de voir, enfin, apparaitre la collaboration en temps réel. Cela va me permettre de me débarrasser complètement de Google Docs.

Si elles offrent moins de fonctionnalités que la version classique de Office, les Web Apps fonctionnent dans un navigateur web sur Windows, OS X, GNU/Linux et même sur iOS.

Ici, avec Word Web App :

Wordweb.png
“The Gods of Pegana”, ouvert dans Word Web App dans Safari sur le Mac… (Ici, j’utilise Word pour nettoyer ledit texte de toutes ses scories et problèmes de mise en page, avant de l’envoyer, en DOCX, dans Calibre qui en fera un très chouette ePub, automatiquement.)

2013 11 07 08.32.09.png
Le même, ouvert en même temps dans Safari sur mon iPad mini (pas retina).

Wordweb 2
Les modifications faites sur iOS apparaissent en temps réel sur la version OS X avec le nom de l’auteur de la modif…

Si vous êtes curieux d’en savoir plus, vous pouvez voir une vidéo de ladite collaboration en temps réel, sur le blog de Word :

Combien ça coûte ? Rien

Puisque, je le rappelle, les Microsoft Web Apps sont utilisables… gratuitement. Pas besoin d’acheter Microsoft Office, il suffit de se créer un compte SkyDrive gratuit.

Ca fait un bail que c’est dispo sur Google docs, bien sûr. Mais c’est chouette de voir ça arriver sur Office et, comme je le disais, c’est chouette de voir Microsoft prendre conscience qu’elle a de bonnes cartes à jouer et sur lesquelles communiquer.

Surtout si l’on combine ça avec la version classique de Office (payante) : on dispose alors d’un outil pouvant aussi bien travailler en ligne que hors ligne, sur les mêmes documents. Top. Manque plus qu’une version de Microsoft Office pour iOS…