「安心・安全・安定・信頼」できるインターネットサービスを
株式会社クルウィット
井澤 志充
docxをmdで書こう
2015/12/12 (Sat)
Kanazawa.rb #40
@ITBP武蔵
「安心・安全・安定・信頼」できるインターネットサービスを
じこしょうかい
• (株)クルウィットの取締役  兼  北北陸陸⽀支社⻑⾧長  
• 博⼠士(情報科学)  
• ネットワーク関連の委託研究・⾃自社サービス開発など
2
• 井澤  志充  (いざわゆきみつ)
@Yukimitsu_Izawa
「安心・安全・安定・信頼」できるインターネットサービスを
docxを簡単に書きたい
• wordを⽴立立ち上げて、カーソルとマウスぽちぽちするのが
ツライ。  
• TeXみたいに、テキストをコンパイルして出来上がった
ら楽かもしれないなー。  
• どうせなら、MarkDownで書き下すぐらいが丁度度いい。
3
「安心・安全・安定・信頼」できるインターネットサービスを
それ、pandoc  でできるよ!!
4
「安心・安全・安定・信頼」できるインターネットサービスを
pandocとは
5
「安心・安全・安定・信頼」できるインターネットサービスを
pandocとは
• Haskelで書かれたフィルターソフト  
• ⼊入⼒力力フォーマット  (Pandocユーザーズガイド⽇日本語版より)  
•         markdown  
•         Textile  (のサブセット、以下同様)  
•         reStructuredText  
•         HTML  
•         LaTeX  
•         MediaWiki  markup  
•         Haddock  markup  
•         OPML  
•         Emacs  Org-‐‑‒mode  
•         DocBook
6
「安心・安全・安定・信頼」できるインターネットサービスを
pandocとは
• 出⼒力力フォーマット(抜粋)  
•   プレーンテキスト  
•         markdown  
•         reStructuredText  
•         XHTML  
•         HTML  5  
•         LaTeX  (beamerスライドショーを含む)  
•         RTF  
•         OPML  
•         OpenDocument  
•         ODT  
•         Word  docx  
•         GNU  Texinfo  
•         MediaWiki  markup  
•         EPUB  (v2またはv3)  
•         Emacs  Org-‐‑‒Mode  
•         InDesign  ICML  
•         HTMLスライドショー:Slidy、Slideous、DZSlides、reveal.js、S5
7
「安心・安全・安定・信頼」できるインターネットサービスを
使ってみよう
8
入力: pan.md
# はじめに
この文章では、pandocの使い方およびdocxを簡易に生成する方法について述べる。
# pandocとは
Pandocは Haskell で書かれたライブラリおよびコマンドラインツールであり、 あるマークアッ
プ形式で書かれた文書を別の形式へ変換するものです。
# インストール方法
## ソースをコンパイルする
OS Xの場合には、brewを使ってコンパイルする。
~~~~
% brew install pandoc
~~~~
Windowsの場合には、おググりください。
# 使い方
入力は、Markdown を使って普通に書けば、普通に使えますよ。
# ほげげほげげ
げほほほげげ
「安心・安全・安定・信頼」できるインターネットサービスを
docxに変換する。
9
% pandoc pan.md -o pan.docx
「安心・安全・安定・信頼」できるインターネットサービスを
出力されたdocx
10
「安心・安全・安定・信頼」できるインターネットサービスを
もう少し使いこなす
• mdからdocxが⽣生成できたのは嬉しい!  
• でも、ギョーミーな⽤用途だと、会社の標準docxみたいな
のがありますよね。  
• スタイルを指定したい。
11
「安心・安全・安定・信頼」できるインターネットサービスを
docxのstyle指定の仕方
• 元となるdocxを準備する。  
•   --reference-docx  オプションでそのファイルを指定す
る。
12
「安心・安全・安定・信頼」できるインターネットサービスを
docxに変換する。
13
% pandoc pan.md —--reference-docx=standard.docx -o
pan.docx
「安心・安全・安定・信頼」できるインターネットサービスを
docxにstyleをかけた結果
14
「安心・安全・安定・信頼」できるインターネットサービスを
docxにstyleをかけた結果
15
「安心・安全・安定・信頼」できるインターネットサービスを
docxのプロパティをいじりたい
• docxには⼆二種類のプロパティ  
• 標準プロパティ  
• タイトル  
• 著者名など  
• ユーザ設定プロパティ  
• なんでも定義できる
16
「安心・安全・安定・信頼」できるインターネットサービスを
標準プロパティ
• タイトル、著者名、⽇日時だけは、mdの先頭に記述できる
らしい。  
• mdの先頭に、タイトル、著者名、⽇日時を  %  につづけて
⼀一⾏行行ずつ記述する。
17
「安心・安全・安定・信頼」できるインターネットサービスを
ユーザ設定プロパティ
• pandocでは扱えないみたい。
18
「安心・安全・安定・信頼」できるインターネットサービスを
じゃぁ作るか!
• ⼊入⼒力力は、md  ⼀一枚。  
• pandoc(%記述付き)  +  style⽤用docx  =  style+タイトル
付きdocx  
• md内にyaml形式で記述しておいたユーザ設定プロパ
ティを読みだす。  
• pandocで⽣生成したdocx  を解析して、プロパティ情報
を埋め込む。
19
「安心・安全・安定・信頼」できるインターネットサービスを
mdのサンプル
20
% pandocの例題
% いざわゆきみつ
% 2015年12月11日
---
docx_custom_props:
文書番号: S-MC0212-SD8
バージョン: 1.0
発行年: 2015
発行月: 12
発行日: 11
著作権: Clwit Inc. All rights reserved.
...
# はじめに
この文章では、pandocの使い方およびdocxを簡易に生成する方法について述べ
る。
# pandocとは
Pandocは Haskell で書かれたライブラリおよびコマンドラインツールであり、
あるマークアップ形式で書かれた文書を別の形式へ変換するものです。
# インストール方法
## ソースをコンパイルする
「安心・安全・安定・信頼」できるインターネットサービスを
docxのファイル構造
21
[Content_Types].xml
_rels/.rels
word/document.xml
word/_rels/document.xml.rels
word/_rels/footnotes.xml.rels
word/numbering.xml
word/styles.xml
word/footnotes.xml
docProps/core.xml
docProps/app.xml
word/theme/theme1.xml
word/fontTable.xml
word/settings.xml
word/webSettings.xml
word/header1.xml
word/footer2.xml
word/footer1.xml
word/_rels/footer2.xml.rels
word/_rels/footer1.xml.rels
word/_rels/settings.xml.rels
word/media/image1.wmf
word/media/image2.png
「安心・安全・安定・信頼」できるインターネットサービスを
実現方法
1. [Content_̲Types].xml  に以下を追加

<Override  PartName="/docProps/custom.xml"  
ContentType=“application/vnd.openxmlformats-‐‑‒
officedocument.custom-‐‑‒properties+xml”/>

2. _̲rels/.rels  に以下を追加

<Relationship  Id="rId99"  Type=“http://
schemas.openxmlformats.org/officeDocument/2006/
relationships/custom-‐‑‒properties"  Target=“docProps/
custom.xml"/>

3. docProps/custom.xml  を新規作成

22
「安心・安全・安定・信頼」できるインターネットサービスを
結果
23
「安心・安全・安定・信頼」できるインターネットサービスを
結果
24
「安心・安全・安定・信頼」できるインターネットサービスを
まとめ
• pandocを使えば  docx  ファイルは  md  で書ける。  
• docxのタイトルぐらいならpandocで書ける。  
• docxのファイル構造は公開されているので、⾃自分で書き
換えれるよ。
25
「安心・安全・安定・信頼」できるインターネットサービスを
References
• 実務に使うプレーンテキスト→Microsoft  Word変換、あるいはPandocを使
い始めた話  
• http://nenono.hatenablog.com/entry/2015/02/10/173516  
• Word  Document  (DOCX)  
• http://forensicswiki.org/wiki/Word_̲Document_̲%28DOCX
%29#Relationships  
• Anatomy  of  a  WordProcessingML  File  
• http://officeopenxml.com/anatomyofOOXML.php  
• Predefined  Property  Set  Format  Identifiers  
• https://msdn.microsoft.com/en-‐‑‒us/library/windows/desktop/
aa380060%28v=vs.85%29.aspx
26
「安心・安全・安定・信頼」できるインターネットサービスを
• Thank  You!  
• If  you  have  any  comments,  
• please  send  to:  
• Mail:  izawa@izawa.org  /  izawa@clwit.co.jp  
• Twitter:  @Yukimitsu_̲Izawa
27

docxをmdで書こう