web-dev-qa-db-fra.com

Comment convertir asciidoc en pdf?

J'ai tenté de convertir mon mybook.adoc à mybook.pdf en utilisant pandoc, et a obtenu l'erreur suivante.

$ pandoc -s mybook.adoc -t asciidoc -o mybook.pdf
pandoc: cannot produce pdf output with asciidoc writer

Existe-t-il un autre outil que je devrais utiliser à la place ou de concert avec pandoc? Comment convertir asciidoc en pdf?

4
mherzl

Je me rends compte maintenant que la route idéale d'asciidoc en pdf est de convertir d'abord l'asciidoc en docbook. Il utilise la sphère d'asciidoc prévue et un convertisseur docbook-> pdf utilisant chacun dans son domaine de préoccupation distinct.

De plus, au lieu de pandoc, j'ai constaté que lorsque des formules mathématiques étaient incluses, il était plus facile d'utiliser dblatex pour la conversion docbook-> pdf. Ainsi, mon pipeline de conversion est le suivant:

asciidoc -> asciidoctor -> docbook -> dblatex -> pdf

Un exemple de fichier make:

make: my.adoc
  asciidoc -b docbook my.adoc
  dblatex my.xml

Cette discussion page suggère que asciidoc est principalement conçu pour être compilé dans docbook.

0
mherzl

Prérequis : tout ce dont vous avez besoin est Ruby (1.9.3 ou supérieur)

Installer un convertisseur natif PDF pour AsciiDoc - Asciidoctor PDF :

gem install asciidoctor-pdf --pre

Exécuter :

asciidoctor-pdf mybook.adoc

Vous devriez obtenir le fichier mybook.pdf dans le même répertoire.

7
Remis

La façon la plus simple de convertir un document AsciiDoc en PDF est la suivante -

  • Ouvert AsciiDocLive
  • Collez votre document dans l'éditeur et voyez l'aperçu
  • enregistrez-le au format HTML
  • Ouvrez n'importe quel HTML en ligne vers PDF convertisseur
  • Téléchargez votre fichier HTML nouvellement généré
  • Convertissez en PDF et téléchargez-le.

Terminé.

4
Shailendra

Si vous utilisez VS Code, Ctrl + SHFT + P et tapez AsciiDoc: Export document as pdf

2
Tebogo Mahlalela

AsciiDoc a quelques chaînes d'outils qui rendront les PDF à partir de la source AsciiDoc. Vous pouvez utiliser AsciiDoc basé sur Ruby -> Prawn -> PDF toolchain développé par Asciidoctor, ou vous pouvez utiliser l'ancien AsciiDoc -> DocBook -> FOP - toolchain . Il s'agit de procédures de rendu/publication, alors que Pandoc fournit principalement la conversion et est préférable pour la conversion à partir d'un ou d'un autre type de format source.

2
Brian D

Un autre flux de travail, que j'utilise beaucoup, consiste à créer du HTML à partir de votre fichier AsciiDoc à l'aide du processeur AsciiDoctor, en liant une feuille de style CSS personnalisée avec des règles de style d'impression:

asciidoctor -a stylesheet=path-to-stylesheet.css file.adoc

Vous pouvez ensuite ouvrir le fichier HTML dans votre navigateur et imprimer au format PDF.

Pour un style plus avancé, comme la numérotation des pages, les en-têtes, les pieds de page, les sauts de page et les colonnes, vous pouvez utiliser PrinceXML (ou d'autres produits similaires). Il s'agit d'un processeur de ligne de commande qui convertira le fichier HTML en PDF en utilisant les règles de style dans le CSS utilisé par le fichier HTML. PrinceXML applique des règles de style qui sont dans la norme CSS3 mais qui ne le sont pas pourtant pris en charge par les navigateurs, vous permettant de créer des mises en page de style fin.

1
markbez

Si Docker est installé, vous pouvez utiliser le AsciiDoctor Docker Image . Ensuite, vous pouvez utiliser l'image de manière interactive ou en mode batch comme expliqué ci-dessous:

Conditions préalables

  1. Installer Docker
  2. Installez l'image Docker:

    $ docker pull asciidoctor/docker-asciidoctor
    

Créez le pdf en exécutant la commande suivante:

$ cd [directory to where my book.adoc is located]
$ docker run --rm -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf mybook.adoc

Explication

  • docker run Démarre un conteneur Docker
  • --rm Nettoyage - supprime le conteneur Docker après l'exécution de la commande
  • -vmonter un volume à l'image
  • $(pwd) récupère le chemin du répertoire courant, par ex. la valeur de [directory to where my book.adoc is located] ci-dessus
  • documents le nom du volume monté dans le conteneur en cours d'exécution
  • asciidoctor/docker-asciidoctor Le nom de l'image Docker utilisée pour créer le conteneur Docker
  • asciidoctor-pdf La commande qui déclenche réellement la génération du pdf
  • mybook.adoc Le nom du fichier source AsciiDoc à partir duquel générer le pdf

Voir aussi la documentation docker run

0
matsev

Suite à la réponse de @ Remis, j'ai utilisé le backend pdf d'asciidoctor.

Je n'arrivais pas à comprendre comment installer asciidoctor-pdf sur nixos, mais a réussi à trouver l'alternative suivante qui a fonctionné:

asciidoctor -r asciidoctor-pdf -b pdf or asciidoctor-pdf
0
mherzl