Le deuxième plus gros problème de DocBook est l'effort nécessaire pour convertir les anciens balisages de présentation en balisage DocBook. Les êtres humains sont généralement capables de convertir automatiquement la présentation d'un document en une structure logique, parce qu'ils sont, par exemple, capables de distinguer selon le contexte les cas où l'italique est utilisé comme moyen d'accentuation de ceux où il signifie autre chose, comme le fait que la phrase soit en langue étrangère.
D'une façon ou d'une autre, il est nécessaire rendre explicite ce type de distinctions lors de la conversion de documents vers le format DocBook. Parfois elles sont présentes dans l'ancien balisage mais ce n'est en général pas le cas et l'information de structure manquante doit, soit être déduite par une heuristique intelligente, soit être ajoutée par un être humain.
Voici un résumé de l'état des outils de conversion à partir de divers autres formats :
La Free Software Foundation s'est fixé
comme politique de permettre d'utiliser DocBook comme format d'échange.
Texinfo est suffisamment structuré pour permettre une conversion
automatique satisfaisante, et les versions 4.x de
makeinfo proposent une option
--docbook
qui produit directement du format DocBook.
Vous trouverez plus d'information sur la page du projet
makeinfo.
Il existe un module POD::DocBook qui traduit le balisage POD (Plain Old Documentation) en DocBook. Il prétend traduire l'intégralité des balises POD sauf la balise italique L<>. La page de manuel précise également « Il n'est pas possible d'utiliser de listes imbriquées pour une sortie en DocBook » et fait remarquer que le module a été intensivement testé.
LaTeX est (essentiellement) un langage de macros de balisage structurel construit au-dessus de l'outil de mise en forme TeX. Il existe un projet appelé TeX4ht qui (selon l'auteur de PassiveTeX) est capable de produire du code DocBook à partir de LaTeX.
On considère généralement qu'il s'agit du problème de conversion le plus important et le plus désagréable. Et en effet le balisage de base de troff(1) possède un niveau de présentation trop bas pour que des outils de conversions puissent apporter quelque aide que ce soit. Cependant la situation s'éclaircit significativement si l'on considère les traductions de documents écrits avec des paquets de macros comme man(7). Ceux-ci sont suffisamment structurés pour permettre une traduction automatique.
J'ai moi-même écrit un outil pour ce faire car je n'en trouvé aucun capable de faire proprement le travail (et également parce que le problème est intéressant). Il s'appelle doclifter. Il convertit au format SGML ou XML DocBook les macros man(7), mdoc(7), ms(7) ou me(7). Consultez la documentation pour plus d'informations.