Pandoc
Pandoc은 한 마크 업 형식에서 다른 마크 업 형식으로 변환하기위한 Haskell 라이브러리 이며이 라이브러리를 사용하는 명령 줄 도구입니다.
- Writing a Book with Pandoc, Make, and Vim
- TeX to DOCX via Pandoc with ACM template
- Pandoc Reference Sheet
- Convert Markdown files to word processor docs using pandoc
Install
Pandoc Git
git clone https://github.com/jgm/pandoc
cd pandoc
stack setup
stack install
stack
# sh
curl -sSL https://get.haskellstack.org/ | sh
# mac
brew install haskell-stack
Mac OS
brew install pandoc
How to
입력 파일이 지정 되지 않으면 stdin 에서 입력을 읽습니다.
출력은 기본적 으로 stdout 으로 이동합니다.
파일로 출력하려면 다음 -o옵션을 사용하십시오.
pandoc -o output.html input.txt
기본적으로 pandoc은 문서 조각을 생성합니다.
독립형 문서 (예 : 및 를 포함하는 유효한 HTML 파일)를 생성하려면 -s 또는 --standalone 플래그를 사용하세요.
pandoc -s -o output.html input.txt
입/출력 형식
- 입력 형식: -f / --from
- 출력 형식: -t / --to
hello.txt 파일 markdown 에서 latex 문서를 만든다.pandoc -f markdown -t latex hello.txt
문자 인코딩은 입/출력 모두 UTF-8을 사용한다.
iconv 를 이용 UTF-8 문서 파일 입력후 출력을 UTF-8으로 한다.
iconv -t utf-8 input.txt | pandoc | iconv -f utf-8
PDF 생성
pandoc은 기본으로 LaTeX를 이용해서 PDF를 생성하므로 LaTeX 엔진이 설치 되어 있어야 한다.
pandoc test.txt -o test.pdf
pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" https://www.fsf.org
옵션
읿반옵션
-f FORMAT, -r FORMAT, --from=FORMAT, --read=FORMAT
- bibtex (BibTeX bibliography)
- biblatex (BibLaTeX bibliography)
- commonmark (CommonMark Markdown)
- commonmark_x (CommonMark Markdown with extensions)
- creole (Creole 1.0)
- csljson (CSL JSON bibliography)
- csv (CSV table)
- docbook (DocBook)
- docx (Word docx)
- dokuwiki (DokuWiki markup)
- epub (EPUB)
- fb2 (FictionBook2 e-book)
- gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
- haddock (Haddock markup)
- html (HTML)
- ipynb (Jupyter notebook)
- jats (JATS XML)
- jira (Jira/Confluence wiki markup)
- json (JSON version of native AST)
- latex (LaTeX)
- markdown (Pandoc’s Markdown)
- markdown_mmd (MultiMarkdown)
- markdown_phpextra (PHP Markdown Extra)
- markdown_strict (original unextended Markdown)
- mediawiki (MediaWiki markup)
- man (roff man)
- muse (Muse)
- native (native Haskell)
- odt (ODT)
- opml (OPML)
- org (Emacs Org mode)
- rst (reStructuredText)
- t2t (txt2tags)
- textile (Textile)
- tikiwiki (TikiWiki markup)
- twiki (TWiki markup)
- vimwiki (Vimwiki)
-t FORMAT, -w FORMAT, --to=FORMAT, --write=FORMAT
- asciidoc (AsciiDoc) or asciidoctor (AsciiDoctor)
- beamer (LaTeX beamer slide show)
- bibtex (BibTeX bibliography)
- biblatex (BibLaTeX bibliography)
- commonmark (CommonMark Markdown)
- commonmark_x (CommonMark Markdown with extensions)
- context (ConTeXt)
- csljson (CSL JSON bibliography)
- docbook or docbook4 (DocBook 4)
- docbook5 (DocBook 5)
- docx (Word docx)
- dokuwiki (DokuWiki markup)
- epub or epub3 (EPUB v3 book)
- epub2 (EPUB v2)
- fb2 (FictionBook2 e-book)
- gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
- haddock (Haddock markup)
- html or html5 (HTML, i.e. HTML5/XHTML polyglot markup)
- html4 (XHTML 1.0 Transitional)
- icml (InDesign ICML)
- ipynb (Jupyter notebook)
- jats_archiving (JATS XML, Archiving and Interchange Tag Set)
- jats_articleauthoring (JATS XML, Article Authoring Tag Set)
- jats_publishing (JATS XML, Journal Publishing Tag Set)
- jats (alias for jats_archiving)
- jira (Jira/Confluence wiki markup)
- json (JSON version of native AST)
- latex (LaTeX)
- man (roff man)
- markdown (Pandoc’s Markdown)
- markdown_mmd (MultiMarkdown)
- markdown_phpextra (PHP Markdown Extra)
- markdown_strict (original unextended Markdown)
- mediawiki (MediaWiki markup)
- ms (roff ms)
- muse (Muse),
- native (native Haskell),
- odt (OpenOffice text document)
- opml (OPML)
- opendocument (OpenDocument)
- org (Emacs Org mode)
- pdf (PDF)
- plain (plain text),
- pptx (PowerPoint slide show)
- rst (reStructuredText)
- rtf (Rich Text Format)
- texinfo (GNU Texinfo)
- textile (Textile)
- slideous (Slideous HTML and JavaScript slide show)
- slidy (Slidy HTML and JavaScript slide show)
- dzslides (DZSlides HTML5 + JavaScript slide show),
- revealjs (reveal.js HTML5 + JavaScript slide show)
- s5 (S5 HTML and JavaScript slide show)
- tei (TEI Simple)
- xwiki (XWiki markup)
- zimwiki (ZimWiki markup)
- the path of a custom Lua writer, see Custom writers below
Ex
markdown to pdf
$ pandoc book.md -o book.pdf \
--table-of-contents \
--number-sections \
--pdf-engine=xelatex \
--indented-code-classes=javascript \
--highlight-style=monochrome \
-V mainfont="Palatino" \
-V documentclass=report \
-V papersize=A5 \
-V geometry:margin=1in
latex to docx
pandoc sig-alternate.tex \
--from=latex \
--to=docx \
--biblatex \
--bibliography sigproc.bib \
--output=sig-alternate.docx \
--reference-docx=my-reference.docx
결과가 만족스럽지 않다면 markdown으로 변환 후 Pandoc이 지원하는 특수 옵션은 man pandoc_markdown
, man pandoc
등으로 확인한 뒤,
개선된 markdown 파일을 docx로 변환한다.reference-docx=reference.docx
템플릿 옵션을 주의하라.
.docx 형식은 (대부분) XML 파일의 ZIP 아카이브입니다.
docx to odt
pandoc -o example.docx example.odt
두 개의 서로 다른 워드 프로세서 파일 유형간에 변환하려면 약간의 창의성을 발휘해야 할 수도 있다.
이 결과는 파일 인코딩과 관련된 오류가 발생하고 변환이 작동하지 않을 수 있다.
pandoc -o example.docx example-tmp.html && pandoc -o example.odt example-tmp.html
HTML 파일을 중간 변환으로 이용해서 DOCX에서 텍스트를 HTML 파일로 추출한 다음 해당 HTML을 ODT로 변환하면 서식이 유지된다.
이런 식으로 이상한 인코딩 오류가 없으며 파이프를 엉망으로 만들 필요가 없다.
'it > etc' 카테고리의 다른 글
DNS 정보 조회 (1) | 2020.02.11 |
---|---|
DNS (0) | 2020.02.10 |
사진으로 찍은 이미지 일괄 후 편집 툴 scan tailer (0) | 2017.12.13 |
rfc2119 - Key words for use in RFCs to Indicate Requirement Levels (0) | 2017.06.21 |
Headless Android (0) | 2017.03.13 |