217 votes

Comment puis-je convertir le format Markdown de Github en PDF ?

J'ai récemment commencé à apprendre le format Markdown pour la documentation et j'ai besoin d'imprimer quelques-unes de mes pages Markdown. J'aimerais utiliser un utilitaire en ligne de commande, Terminal, etc. qui me permette de convertir le format Markdown à la sauce Github en PDF. Il doit disposer d'une coloration syntaxique appropriée et ne doit pas avoir l'air horrible. Merci pour toute aide.

1 votes

Le coloriage syntaxique sur GitHub ne fait pas partie de GitHub Flavored Markdown. Du moins, pour autant que je sache.

0 votes

@OliverSalzburg Utilisations de Github Linguiste pour fournir une coloration syntaxique.

1 votes

@dillmo, Convert en HTML d'abord puis utilisez Chrome pour imprimer au format PDF.

2voto

fredoverflow Points 203

J'ai raffiné cet extrait pour mes besoins personnels :

# sudo apt install grip wkhtmltopdf

MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10

printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"

grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')

Enregistrer sous /usr/local/bin/md2pdf y sudo chmod +x /usr/local/bin/md2pdf après.

Utilisation :

  • md2pdf convertit le fichier README.md en README.md.pdf

  • md2pdf foo.md convertit foo.md en foo.md.pdf

  • md2pdf foo.md bar.pdf convertit foo.md en bar.pdf

0 votes

Ajouter --export à l'appel de prise en main pour qu'il exporte vers un fichier HTML au lieu d'exécuter un serveur web et vous pourriez éviter de dormir et remplacer kill par la simple suppression du fichier HTML temporaire.

1voto

Hi-Angel Points 494

Ma solution : convertir markdown avec pandoc vers html (n'oubliez pas pour utiliser le css pour pandoc pour afficher les bordures des tableaux) puis l'ouvrir avec libreoffice choisissez une option export as pdf .

NB : aucune des solutions mentionnées ici et sur Internet n'a fonctionné pour moi : 1) solutions basées sur un navigateur (c'est-à-dire la poignée) ajoutent des informations superflues, comme les numéros de pages, que je n'ai pas réussi à supprimer, 2) la conversion de pandoc en pdf est cassée, pour moi elle génère un tableau vide (peut-être à cause de l'unicode, et oui, je l'ai configuré pour utiliser xetex) 3) solutions sur site (par exemple, gitprint.com) ajoutent également des choses redondantes, comme des marges de type github, alors que j'ai juste besoin d'un simple tableau que j'ai généré avec awk !

1 votes

pandoc devrait fonctionner pour vous avec des options comme --variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"

0 votes

@gluk47 cool, ça marche !

0 votes

Je peux recommander cette page pour la conversion de markdown en PDF (ou pour l'impression) markdownprint.com .

1voto

doclin Points 21

J'ai essayé plusieurs plugins chrome et convertisseurs en ligne.
MDtr2PDF est le meilleur. Il prend en charge Github-flavoured-markdown et unicode.

2 votes

Prend-il en charge les images stockées dans d'autres fichiers ?

1 votes

Ne semble plus fonctionner, et n'est pas sécurisé par TLS.

1 votes

Ce lien est mort

0voto

Red Tux Points 2074

Je convertis simplement à partir de HTML à la place. Cela fonctionne pour mes besoins :

https://github.com/dompdf/dompdf

J'ai constaté qu'en général, Markdown n'est pas un bon format pour la conversion en PDF, car il n'a pas de support CSS natif. Voici le script que j'utilise :

<?php
require 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->getOptions()->setIsFontSubsettingEnabled(true);
$s_in = file_get_contents('index.html');
$dompdf->loadHtml($s_in);

$dompdf->render();
$s_out = $dompdf->output();
file_put_contents('index.pdf', $s_out);

Cette solution ne nécessite que PHP (25 Mo) et DomPdf (4 Mo), elle est donc assez légère. par rapport aux autres options.

0voto

Victor S. Points 269

MDPDF - Convertisseur de Markdown en PDF.

Un convertisseur markdown vers pdf en ligne de commande avec prise en charge des en-têtes de page, des pieds de page et des feuilles de style personnalisées. Mdpdf est incroyablement configurable et possède une API JavaScript pour une utilisation plus extravagante.

Installation

Installer globalement pour l'utiliser à partir de la ligne de commande :

npm install mdpdf -g

Utilisation

$ mdpdf --help

Usage:
   $ mdpdf <source> [<destination>] [options]

<source> must be a markdown file, with the extension '.md'.

Examples:
   $ mdpdf README.md
   $ mdpdf README.md --style=styles.css --header=header.hbs --h-height=22mm
   $ mdpdf README.md --footer=footer.hbs --f-height=22mm --debug
   $ mdpdf README.md --border-left=30mm

Options:
   --style=<filename>           A single css stylesheet you wish to apply to the PDF
   --header=<filename>          A HTML (.html) file to inject into the header of the PDF
   --h-height=<height>          The height of the header section
   --footer=<filename>          A HTML (.html) file to inject into the footer of the PDF
   --f-height=<height>          The height of the footer section
   --border=<size>              Border (top, left, bottom, right; default: 20mm)
   --border-top=<size>          Top border (default: 20mm)
   --border-left=<size>         Left border (default: 20mm)
   --border-bottom=<size>       Bottom border (default: 20mm)
   --border-right=<size>        Right border (default: 20mm)
   --gh-style                   Enable default gh-styles, when --style is used
   --no-emoji                   Disables emoji conversions
   --no-highlight               Disables syntax highlighting
   --debug                      Save the generated html for debugging
   --help                       Display this menu
   --version                    Display the application version
   --format=<format>            PDF size format: A3, A4, A5, Legal, Letter, Tabloid (Default: A4)
   --orientation=<orientation>  PDF orientation: portrait or landscape (Default: portrait)

  Length parameters (<height> and <size>) require a unit. Valid units are mm, cm, in and px.

Global Settings:
      You can also set a global default stylesheet by setting the MDPDF_STYLES environment variable as the path to your single css stylesheet. The --style flag will override this.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X