Github-Flavored Markdown을 PDF로 변환하는 방법


147

최근에 문서와 함께 사용하기 위해 Markdown을 배우기 시작했으며 Markdown 페이지 중 일부를 인쇄해야합니다. Github-flavored Markdown을 PDF로 변환 할 수있는 명령 줄, 터미널 등 유틸리티를 사용하고 싶습니다. 적절한 구문 강조가 필요하며 끔찍해 보이지 않아야합니다. 도움을 주셔서 감사합니다.


GitHub의 구문 색상은 GitHub Flavored Markdown의 일부가 아닙니다. 적어도 내가 아는 한
Der Hochstapler

@OliverSalzburg Github는 Linguist 를 사용 하여 구문 강조를 제공합니다.
DanteTheEgregore

@dillmo, HTML로 먼저 변환 한 다음 Chrome을 사용하여 PDF로 인쇄하십시오.
Pacerier

답변:


149

Chrome에서 그립 을 사용하여 마크 다운을 표시 한 다음 인쇄 대화 상자에서 Chrome의 "PDF로 저장"옵션을 사용했습니다.

pip install grip  
grip your_markdown.md

그립은 localhost : 5000에서 마크 다운을 렌더링합니다. 브라우저를 편집하고 새로 고치십시오. 준비되면 인쇄하십시오.

이것은 pandoc보다 더 신뢰할만한 표현을했으며 라텍스를 설치하는 것보다 가볍습니다 (pdf 생성을 위해 pandoc에 필요).

이 답변의 인쇄는 명령 줄이 아니지만 여전히 더 쉽고 안정적입니다 (상대적으로 연결된 이미지 및 코드 강조 표시를 포함한 긴 문서의 경우 Github와 100 %로 보임).


2
이것은 충분히 쉽다.
s2t2

15
grip your_markdown.md --export your_markdown.html여기 유용한 옵션입니다. 파일을 html 파일로 내 보낸 다음 wkhtmltopdf와 같은 것을 사용하여 명령 행에서 인쇄 할 수 있습니다.
Luke Exton

1
불행히도 그립은 GitHub에 액세스해야합니다. 오프라인으로 작동하지 않습니다
nowox

6
또는 Atom ( atom.io )을 다운로드 하고 Atom에서 파일을 열고 control + shift + M을 사용하여 미리보기에서 파일을보고 html로 저장 한 다음 HTML을 Chrome 브라우저에서 열고 pdf로 저장할 수 있습니다.
Andrew Carter

6
이것은 Github와 비슷한 프레임과 함께 제공됩니다. 테두리 / 제목 표시 줄을 제거하여 (예 : 프레임 내부의 모든 것을 인쇄) PDF로 인쇄하는 방법이 있습니까?
Joost

56

Node.js 기반 markdown-pdf를 사용할 수도 있습니다.

npm install -g markdown-pdf
markdown-pdf /path/to/markdown

2
이것은 매우 훌륭하고 정말 쉽습니다. 링크 문제는 html5 상용구의 인쇄 CSS에서 나옵니다.이 스타일은 자신의 스타일 시트에서 주석을 달거나 무시할 수 있습니다.
Robert Went

기본 제공 유니 코드 지원 기능이 추가되어 매우 유용합니다.
Niek

GitHub의 CSS 파일을 사용 하려면 github-markdown-css 를 설치할 수도 있습니다.
jpmc26 2016 년

@ jpmc26 어떻게 사용할 수 있습니까, 나는 자바 스크립트 나 npm에 대한 지식이 없습니까?
Abhishek Bhatia

1
@AbhishekBhatia 이것은 "npm 소개"( smalljs.org/package-managers/npm)를 검색 한 첫 번째 결과 입니다. 설치 후 node_modules에 묻힌 파일 일뿐입니다.
jpmc26

39

pandoc을 살펴 보십시오 . 구문 강조 기능이 있습니다. 마크 다운 자체의 풍미가 있으므로 문서를 약간 변경해야 할 수도 있으며 GitHub 풍미와 얼마나 밀접하게 일치하는지 모르겠습니다.


3
감사. Running pandoc -h은 GitHub Flavored Markdown에 대한 지원을 반환했기 때문에이 질문을 해결 된 것으로 표시합니다.
dillmo

2
pandocFedora Linux 에 설치 를 시도 하고 의존성 악몽에 부딪 쳤습니다. 주로 LaTex와 관련이 있습니다. 내 조언은 pandoc을 건너 뛰고 다른 옵션을 먼저 시도하는 것입니다
IanB

ASCII가 아닌 문자를 사용하고 누락 된 사람들을 위해 pandoc다음과 같이 글꼴 옵션을 추가하십시오 .--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
gluk47

4
누군가가 단지 명령을 찾고 있다면 : sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf(우분투에서, 아마도 모든 것이 필요한 것은 아님)pandoc --variable urlcolor=cyan myfile.md -o myfile.pdf
Tor Klingberg

@TorKlingberg 감사합니다, 그것이 가장 좋은 답변이라고 생각합니다!
THC

12

마크 다운 파일이 github 리포지토리에서 호스팅 된 경우 gitprint 는 pdf / print를 만드는 흥미로운 옵션입니다.

당신이해야 할 모든 대체하는 것입니다 github.com하여 gitprint.comURL에. 다음은 gitprint 홈페이지 의 입니다.

불행히도 마크 다운 요지에서는 작동하지 않으며 리포지토리의 마크 다운 파일에서만 작동합니다.


4
이미지에서도 작동하지 않습니다. :(
Adam Arold

... 그리고 형식이 잘못되었습니다 :(
Moebius

재미있는 옵션. 장점 : 외부 링크는 출력에서 ​​유지 관리되고 액세스 할 수 있습니다. 단점 : 출력이 흑백이고 앵커 링크가 제거되고 외부 링크가 흑백이기 때문에 시각적으로 표시되지 않습니다.
rodey

7

http://www.markdowntopdf.com 에서 온라인 변환기를 사용할 수 있습니다 .
이것은 기본적으로 구문 강조 표시를 제공하며 지금까지 본 가장 간단한 솔루션입니다. 또한 GFM과 관련된 다른 기능 (예 : 테이블)도 올바르게 처리합니다.


4
별도의 파일에서 이미지를 처리하지 않습니다.
Larry K

아름답게 작동
shadi

6

내 의견에서 언급했듯이 Github은 Linguist 를 사용하여 구문 강조를 제공합니다. Github에서이를 사용하여 다음과 같이 구문 강조를 지정할 수 있습니다.

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

불행히도, 구문 강조 표시를 사용하여 Markdown을 PDF 파일로 직접 변환하는 좋은 방법은 없습니다.

대안 :

Vim :

vim이있는 경우 터미널에서 다음을 실행하여 구문 강조를 쉽게 수행 할 수 있습니다.

vim -c hardcopy -c quit /path/to/file.ps

또는 vim 내부 :

:hardcopy >/path/to/file.ps

예를 들어 ps2pdf를 사용하여 pdf로 변환 할 수있는 PostScript 파일이 생성됩니다.

ps2pdf /path/to/file.ps

소스 하이라이트 :

HTML 또는 LaTeX의 경로를 대신 사용하려면 대신 Source-highlight 를 사용해보십시오 . Source-highlight가 지원하는 모든 언어 목록은 여기 에서 찾을 수 있습니다 .

몇 가지 소스 강조 명령의 예는 다음과 같습니다.

source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3

사용 이 입력 파일을

그리고 각각 자체 HTML 파일을 출력합니다.

Hello1.html
Hello2.html
Hello3.html

Source-highlight 사용법의 추가 예는 여기 에서 찾을 수 있습니다.

윈도우 :

Vim , ps2pdf ( Ghostscript 제공 ) 및 Source-highlight 는 모두 Cygwin을 통해 제공됩니다 .


4

Linux를 사용하는 경우 pandoc을 사용 하십시오 .

설치:

sudo apt install pandoc texlive-latex-extra

예, -extra글꼴 때문에 패키지 가 필요 합니다.

변하게 하다:

pandoc --from markdown -o output.pdf my-file.md

같은 이미지, 링크 무시 것을 포함하지 않았다 <font color="red">하지만
derHugo


1

내 솔루션 : 마크 다운 pandoc을 html 로 변환하고 ( pandocCSS를 사용 하여 테이블 테두리를 표시 하는 것을 잊지 마십시오 ) 으로 열고 libreoffice옵션을 선택하십시오 export as pdf.

NB : 여기에 언급되지 않은 인터넷 솔루션 중 어느 것도 나를 위해 일하지 않았습니다 .1) 브라우저 기반 솔루션 (예 : 그립) 은 제거 할 수없는 페이지 번호와 같은 과도한 정보를 추가하고 있습니다 .2) docdoc는 PDF로 변환됩니다. 나에게 그것은 빈 테이블을 생성한다. (아마 유니 코드로 인해 xetex를 사용하도록 구성했다.) 3) 사이트 기반 솔루션 (예 : gitprint.com) 도 github와 같은 여백과 같은 중복 항목을 추가하고있다. awk로 생성 한 간단한 테이블이 필요합니다!


1
pandoc같은 옵션을 당신을 위해 일한다--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
gluk47

@ gluk47 쿨, 그 작동합니다!
Hi-Angel

markdown을 PDF로 변환하거나 (또는 ​​인쇄) markdownprint.com 이 페이지를 추천 할 수 있습니다 .
Johan O

@JohanO markdownprint.com 다운 다운 것 같습니다
derHugo

1

몇 가지 크롬 플러그인과 온라인 변환기를 사용해 보았습니다.
MDtr2PDF 가 가장 좋습니다. Github 풍미 마크 다운 및 유니 코드를 지원합니다.


1
다른 파일에 저장된 이미지를 지원합니까?
Larry K

더 이상 작동하지 않는 것으로 보이며 TLS 보안이 아닙니다.
David Oliver

1

나는 나의 개인적인 필요를 위해이 스 니펫 을 수정했다 :

# 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}')

다른 이름으로 저장 /usr/local/bin/md2pdf하고 sudo chmod +x /usr/local/bin/md2pdf나중에.

용법:

  • md2pdf README.md를 README.md.pdf로 변환

  • md2pdf foo.md foo.md를 foo.md.pdf로 변환

  • md2pdf foo.md bar.pdf foo.md를 bar.pdf로 변환

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.