명령줄에서 마크다운을 PDF로 변환

명령줄에서 마크다운을 PDF로 변환

명령줄에서 마크다운을 PDF로 변환하는 가장 쉬운 도구는 무엇입니까?

사람들이 를 사용하여 제안한 방법을 찾았 pandoc지만 필수 패키지에는 기가바이트의 종속성이 필요합니다.

apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra

명령줄에서 간단한 마크다운을 PDF로 변환할 수 있고 많은 종속성이 필요하지 않은 최소한의 도구가 있습니까?

저는 데비안 10을 사용하고 있습니다.

답변1

질문에 언급된 기가바이트 다운로드는 texlive-*주어진 apt-get명령의 LaTeX() 패키지에서 나오므로 여기에 제시된 모든 방법은 여전히 ​​어떤 방식으로든 pandoc를 사용합니다. 이 중 어느 것도 필요하지 않습니다. 패키지 pandoc자체의 다운로드 크기는 약 17MB로, 이는 귀하의 사용 사례에 적합할 수도 있고 그렇지 않을 수도 있습니다.

만약 당신이 정말로,진짜pandoc을 사용하고 싶지 않다면 사용할 수 있습니다루나마크그 자리에. pandoc(두 도구 모두 동일한 작성자를 공유함)과 유사하지만 lunamark는 설치 공간이 작은 매우 작고 효율적인 언어인 Lua로 작성되었습니다. 하지만 사용 가능한 데비안 패키지가 없으므로 직접 빌드해야 합니다. 그러나 앞서 언급했듯이 주요 문제는 PDF 생성입니다. 모든 좋은 PDF 라이브러리는 글꼴 처리를 수행해야 하며, 이를 위해서는 일반적으로 사용할 수 있는 라이브러리가 많이 필요합니다.

어떤 도구를 사용할 수 있는지 모르겠습니다.곧장Markdown에서 PDF까지 일반적인 접근 방식은 중간 형식을 먼저 사용하는 것입니다. 이 형식을 선택하면 선택이 결정됩니다.

  1. 작은 숲:GNU troff는 troff 텍스트 포맷터의 구현입니다. 이는 man매우 빠르며 아름다운 PDF 출력을 생성할 수도 있는 와 같은 도구의 기초입니다 . 필요 groff하고 ghostscript패키징 한 다음 pandoc을 사용하여 전화하십시오.

    pandoc --pdf-engine=pdfroff --output=out.pdf ...
    

    이는 아마도 최소한의 추가 패키지가 필요한 솔루션일 것입니다. apt-get불필요한 패키지를 설치하지 않았는지 확인하세요 .

    apt-get install pandoc groff ghostscript --no-install-recommends
    

    새로 설정된 시스템에서 이것은 다음을 제공합니다.

    Need to get 38.3 MB of archives.
    After this operation, 194 MB of additional disk space will be used.
    
  2. 하이퍼텍스트 마크업 언어: HTML-PDF 변환기는 여러 개 있으며, pandoc은 그 중 두 개(현재 버전에서는 세 개) 엔진을 사용하여 Markdown에서 PDF로의 변환을 처리할 수 있습니다. weasyprintPython으로 작성된 것과 wkhtmltopdfChromium에서 사용되는 웹킷 HTML 엔진을 기반으로 구축된 것 중에서 선택할 수 있습니다 . 그중 하나를 설치한 후 사용하세요.

     pandoc --pdf-engine=weasyprint
    

    또는

     pandoc --pdf-engine=wkhtmltopdf
    

    wkhtmltopdf특히 많은 그래픽과 글꼴 패키지가 설치되어 있는 경우 이는 좋은 선택이 될 수 있습니다. 예를 들어, LXDE 데스크탑 환경이 설치된 시스템에서는 다음과 같이 표시됩니다.

    % apt-get install pandoc wkhtmltopdf --no-install-recommends
    ... [omitted] ...
    Need to get 16.4 MB of archives.
    After this operation, 122 MB of additional disk space will be used.
    

    그러나 완전히 새로운 시스템의 경우 영향은 더 커집니다.

    Need to get 91.1 MB of archives.
    After this operation, 530 MB of additional disk space will be used.
    
  3. 유제Docker 사용: 이 방법은 본질적으로 LaTeX를 다시 사용하는 것이지만 시스템에 설치하는 대신 pandoc과 최소한의 LaTeX 패키지만 포함하는 Docker 이미지를 사용하므로 상대적으로 크기가 작습니다. 패키지가 필요 docker.io하고 다음과 같은 긴 명령을 실행합니다.

    docker run --rm -v "$(pwd)":/data -u $(id -u):$(id -g) pandoc/latex --output=out.pdf ...
    

    이것의 장점은 최신 pandoc 및 LaTeX 버전을 사용하게 되며 가장 보기 좋은 PDF(IMHO)를 제공한다는 것입니다. 그러나 Docker 이미지 크기는 여전히 약 200MB이고 Docker 자체도 큽니다(다운로드 크기 >90MB).

  4. 무료 사무실: 이 방법은 종속성이 매우 크기 때문에 LibreOffice가 이미 설치되어 있는 경우에만 의미가 있습니다. 이 경우 pandoc을 사용하여 PDF로 변환 odt하거나 docx다음 명령을 사용하여 PDF로 변환할 수 있습니다.

     lowriter --headless --convert-to pdf intermediary.odt
    

이 중 하나가 귀하의 요구 사항을 충족하기를 바랍니다.

답변2

Markdown -> HTML -> PDF 경로를 사용하세요.HTML을 PDF로@tarleb의 답변 또는HTML을 PDF로답변자: @MC68020

할인

이것(데비안 패키지)C로 작성되었으며 제가 본 옵션 중 종속성이 가장 적은 것 같습니다.

  • "filename.md"라는 파일의 경우
  • markdown filename.mdHTML(또는 makepage filename.md완전한 형식의 XHTML)을 출력합니다.stdout
  • 원하는 경우 이를 사용하거나 stdout파일로 전송할 수 있습니다.>>>
  • 나는 이것을 Okular에서 얻었고 GUI 및 Qt 종속성을 선택할 수 있으면 쉽게 사용할 수 있지만 아직 없으면 약 200MB 정도입니다.

참고: Okular가 내보내기에 사용하는 것과 동일한 PDF를 만드는 방법에 대해 자세히 알아볼 수 있습니다.

관련 정보