복잡한 템플릿을 포함하여 docx로 마크 다운
Pandoc을 사용하여 Markdown 파일을 DOCX 파일로 변환하기 위해 빌드를 자동화했습니다. 최종 문서의 스타일링을 위해 참조 문서도 사용했습니다. 내가 사용하는 명령은 다음과 같습니다.
pandoc -f markdown -t docx --data-dir=docs/rendering/ mydoc.md -o mydoc.docx
은 reference.docx
에서 Pandoc 의해 픽업된다 docs/rendering
및 Pandoc 렌더 mydoc.docx
참조 문서로서 동일한 스타일.
그러나 reference.docx
스타일 이상의 것을 포함합니다. 회사 로고, 서문 등이 포함됩니다.
Markdown 콘텐츠를의 스타일 및 콘텐츠와 병합하는 작업을 어떻게 자동화 할 수 있습니까 reference.docx
? 내 솔루션은 Linux에서 작동해야합니다.
최신 정보
사용자 Christian Long이 제안한 파이프 버전을 사용하십시오.
pandoc -t latex mydoc.md | pandoc -f latex --data-dir=docs/rendering/ -o mydoc.docx
나는 이것이 늦어지는 것을 알고 있지만 사람들이 원래의 질문이 있은 후 3 년 동안 여전히 해결책을 찾고 있다고 가정 할 것입니다.
내 해결책은 LaTeX를 markdown과 docx 사이의 중개자로 사용하는 것이 었습니다 (실제로는 조직 모드에서 변환했지만 동일한 차이점). 따라서 귀하의 경우 한 줄짜리 솔루션은 다음과 같습니다.
pandoc -f markdown -t latex -o mydoc.tex mydoc.md && \
pandoc -f latex -t docx --data-dir=docs/rendering/ -o mydoc.docx mydoc.tex
목표에 더 가까워 질 수 있습니다. 물론 Pandoc은 처리 할 수있는 약 100 개의 논증을 가지고 있으며 아마도 이것을 더 예쁘게 만드는 방법이있을 것입니다. 또한 처음 질문을 게시 한 이후로 꽤 많은 업데이트를 받았습니다.
이상적으로는 사용자 정의 docx 템플릿을 사용할 수 있지만 pandoc은 아직 지원하지 않습니다. reference.docx
파일은 사용자 정의 스타일이 새로 만든 DOCX 파일에 포함 할 수 있습니다.
다행히 docx 대신 odt를 사용하여 대략적으로 계산할 수 있습니다. 사용자 정의 로고, 서문 및 기타 항목을 포함 하도록 기본 OpenDocument 템플릿 을 상당히 쉽게 수정할 수 있습니다 . reference.odt
파일 과 함께 사용자 지정 템플릿을 사용하여 모든 스타일과 사용자 지정 콘텐츠를 가져옵니다.
odt 형식의 파일이 있으면 원하는 수의 명령 줄 도구를 사용하여 odt에서 docx로 변환 할 수 있습니다. 예를 들어 Linux에서는 다음을 실행할 수 있습니다.
libreoffice --invisible --convert-to docx test.odt
또는 OS X :
/Applications/LibreOffice.app/Contents/MacOS/soffice.bin --invisible --convert-to docx test.odt
이상적으로는 PanDoc이이 기능을 확장 할 것이지만 곧 있을 것 같지는 않습니다 .
직접 작업을 수행 할 도구에 대해서는 알지 못하지만 병합 reference.docx
및 PanDoc 생성 mydoc.docx
코드로 대체 할 수 있습니다.
.docx 형식은 (대부분) XML 파일의 ZIP 아카이브입니다. 가장 중요한 것은 word/document.xml
. XML 도구를 사용하여 document.xml
하나의 파일에서 (대부분의) 파일 을 가져 와서 다른 파일에 삽입하면 필요한 것에 더 가까운 것을 얻을 수 있습니다.
그림이 도움이된다면 Ruby에서 예제를 함께 해킹 할 수 있습니다.
업데이트 :이 기능은 불완전합니다.
복잡한 템플릿에 사용했고 글꼴, 회사 로고 등을 잘 매핑했습니다. 하지만 .docx-> .docx로 이동하면 장 / 섹션 나누기에 제목 스타일을 수동으로 적용해야했습니다. 글꼴은 정확했지만 섹션은 올바르지 않습니다. 다음으로 .md-> .docx를 시도해 보겠습니다.
이 기능은 다음과 같이 Pandoc에서 사용할 수 있습니다.
위 링크에서 :
pandoc input --reference-docx=my-reference.docx -o out.docx
여기서 my-reference.docx
(nb 아님 .dotx
)은 다음과 같습니다.
- 현재 폴더 또는
- --data-dir에 의해 정의 된 폴더 또는
- data-dir의 시스템 기본 폴더입니다.
- UNIX 계열 시스템의 $ HOME / .pandoc
- C : \ Documents And Settings \ USERNAME \ Application Data \ pandoc (Windows XP의 경우 더 이상 사용하면 안 됨)
- Windows Vista 이상에서 C : \ Users \ USERNAME \ AppData \ Roaming \ pandoc.
참고 URL : https://stackoverflow.com/questions/14249811/markdown-to-docx-include-complex-template
'IT박스' 카테고리의 다른 글
STL / Boost C ++ 코딩 스타일이 다른 사람들과 크게 다른 이유는 무엇입니까? (0) | 2020.11.22 |
---|---|
영역 식별자 란 무엇입니까? (0) | 2020.11.22 |
현재 실행중인 powershell 스크립트의 경로 (0) | 2020.11.21 |
내 프로젝트의 프로젝트 설명 파일 (.project)이 없습니다. (0) | 2020.11.21 |
특정 데이터베이스에 대해 마지막으로 실행 된 쿼리 (0) | 2020.11.21 |