コマンドライン使いもLibreOffice

13
コマンドライン使いもLibreOffice コマンドライン使いもLibreOffice コマンドライン使いもLibreOffice コマンドライン使いもLibreOffice コマンドライン使いもLibreOffice Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe

description

 

Transcript of コマンドライン使いもLibreOffice

Page 1: コマンドライン使いもLibreOffice

コマンドライン使いもLibreOfficeコマンドライン使いもLibreOfficeコマンドライン使いもLibreOfficeコマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice

Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe

Page 2: コマンドライン使いもLibreOffice

私は誰?私は誰?私は誰?私は誰?私は誰?

☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q

☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務

☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた

☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます

☆ OSSに興味のある{エンジニア,インターン}募集中です!☆ OSSに興味のある{エンジニア,インターン}募集中です!☆ OSSに興味のある{エンジニア,インターン}募集中です!☆ OSSに興味のある{エンジニア,インターン}募集中です!☆ OSSに興味のある{エンジニア,インターン}募集中です!

Page 3: コマンドライン使いもLibreOffice

最近よくWebページ作るんです最近よくWebページ作るんです最近よくWebページ作るんです最近よくWebページ作るんです最近よくWebページ作るんです

Page 4: コマンドライン使いもLibreOffice

ややこしい表現には図が効きますややこしい表現には図が効きますややこしい表現には図が効きますややこしい表現には図が効きますややこしい表現には図が効きます

☆ でも世の中良いドローソフトが不足☆ でも世の中良いドローソフトが不足☆ でも世の中良いドローソフトが不足☆ でも世の中良いドローソフトが不足☆ でも世の中良いドローソフトが不足

☆ tgifとかにはもう耐えられないんです☆ tgifとかにはもう耐えられないんです☆ tgifとかにはもう耐えられないんです☆ tgifとかにはもう耐えられないんです☆ tgifとかにはもう耐えられないんです

☆ コネクタも使えないドローソフトって...☆ コネクタも使えないドローソフトって...☆ コネクタも使えないドローソフトって...☆ コネクタも使えないドローソフトって...☆ コネクタも使えないドローソフトって...

☆ LibreOfficeをドローソフトとして使おう☆ LibreOfficeをドローソフトとして使おう☆ LibreOfficeをドローソフトとして使おう☆ LibreOfficeをドローソフトとして使おう☆ LibreOfficeをドローソフトとして使おう

Page 5: コマンドライン使いもLibreOffice

でも図を貼り付けるの面倒...でも図を貼り付けるの面倒...でも図を貼り付けるの面倒...でも図を貼り付けるの面倒...でも図を貼り付けるの面倒...

☆ LibreOfficeで描く☆ LibreOfficeで描く☆ LibreOfficeで描く☆ LibreOfficeで描く☆ LibreOfficeで描く

☆ png化☆ png化☆ png化☆ png化☆ png化

☆ Webブラウザで見た目チェック☆ Webブラウザで見た目チェック☆ Webブラウザで見た目チェック☆ Webブラウザで見た目チェック☆ Webブラウザで見た目チェック

☆ ...なんかうまくない...☆ ...なんかうまくない...☆ ...なんかうまくない...☆ ...なんかうまくない...☆ ...なんかうまくない...

☆ 最初に戻る☆ 最初に戻る☆ 最初に戻る☆ 最初に戻る☆ 最初に戻る

Page 6: コマンドライン使いもLibreOffice

こんなことできますか?こんなことできますか?こんなことできますか?こんなことできますか?こんなことできますか?

Page 7: コマンドライン使いもLibreOffice

つまり一発で変換したいつまり一発で変換したいつまり一発で変換したいつまり一発で変換したいつまり一発で変換したい$ tree ./draw # ビフォワー./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-compile.odg|-- 2013-01-09-sequence_diagram.odg`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-22-jhc_compile.png|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-arafura_design.png|-- 2012-12-27-compile.odg|-- 2012-12-27-compile.png|-- 2013-01-09-sequence_diagram.odg|-- 2013-01-09-sequence_diagram.png|-- 2013-01-25-jhc_compile_flow.odg`-- 2013-01-25-jhc_compile_flow.png

$ tree ./draw # ビフォワー./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-compile.odg|-- 2013-01-09-sequence_diagram.odg`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-22-jhc_compile.png|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-arafura_design.png|-- 2012-12-27-compile.odg|-- 2012-12-27-compile.png|-- 2013-01-09-sequence_diagram.odg|-- 2013-01-09-sequence_diagram.png|-- 2013-01-25-jhc_compile_flow.odg`-- 2013-01-25-jhc_compile_flow.png

$ tree ./draw # ビフォワー./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-compile.odg|-- 2013-01-09-sequence_diagram.odg`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-22-jhc_compile.png|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-arafura_design.png|-- 2012-12-27-compile.odg|-- 2012-12-27-compile.png|-- 2013-01-09-sequence_diagram.odg|-- 2013-01-09-sequence_diagram.png|-- 2013-01-25-jhc_compile_flow.odg`-- 2013-01-25-jhc_compile_flow.png

$ tree ./draw # ビフォワー./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-compile.odg|-- 2013-01-09-sequence_diagram.odg`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-22-jhc_compile.png|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-arafura_design.png|-- 2012-12-27-compile.odg|-- 2012-12-27-compile.png|-- 2013-01-09-sequence_diagram.odg|-- 2013-01-09-sequence_diagram.png|-- 2013-01-25-jhc_compile_flow.odg`-- 2013-01-25-jhc_compile_flow.png

$ tree ./draw # ビフォワー./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-compile.odg|-- 2013-01-09-sequence_diagram.odg`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター./draw|-- 2012-12-22-jhc_compile.odg|-- 2012-12-22-jhc_compile.png|-- 2012-12-27-arafura_design.odg|-- 2012-12-27-arafura_design.png|-- 2012-12-27-compile.odg|-- 2012-12-27-compile.png|-- 2013-01-09-sequence_diagram.odg|-- 2013-01-09-sequence_diagram.png|-- 2013-01-25-jhc_compile_flow.odg`-- 2013-01-25-jhc_compile_flow.png

Page 8: コマンドライン使いもLibreOffice

できました!できました!できました!できました!できました!

make一発でdrawディレクトリにあるodgファイルをpngファイル化make一発でdrawディレクトリにあるodgファイルをpngファイル化make一発でdrawディレクトリにあるodgファイルをpngファイル化make一発でdrawディレクトリにあるodgファイルをpngファイル化make一発でdrawディレクトリにあるodgファイルをpngファイル化ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 640x [email protected] $@rm -f [email protected]

clean:rm -f draw/*.png draw/*.tmp

.PHONY: clean

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 640x [email protected] $@rm -f [email protected]

clean:rm -f draw/*.png draw/*.tmp

.PHONY: clean

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 640x [email protected] $@rm -f [email protected]

clean:rm -f draw/*.png draw/*.tmp

.PHONY: clean

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 640x [email protected] $@rm -f [email protected]

clean:rm -f draw/*.png draw/*.tmp

.PHONY: clean

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 640x [email protected] $@rm -f [email protected]

clean:rm -f draw/*.png draw/*.tmp

.PHONY: clean

Page 9: コマンドライン使いもLibreOffice

なんで4回もunoconv呼ぶの?なんで4回もunoconv呼ぶの?なんで4回もunoconv呼ぶの?なんで4回もunoconv呼ぶの?なんで4回もunoconv呼ぶの?

☆ libreofficeが既に起動している場合には-nオプションを付ける必要がある☆ libreofficeが既に起動している場合には-nオプションを付ける必要がある☆ libreofficeが既に起動している場合には-nオプションを付ける必要がある☆ libreofficeが既に起動している場合には-nオプションを付ける必要がある☆ libreofficeが既に起動している場合には-nオプションを付ける必要がある

☆ unoconvがなぜかエラー終了する...☆ unoconvがなぜかエラー終了する...☆ unoconvがなぜかエラー終了する...☆ unoconvがなぜかエラー終了する...☆ unoconvがなぜかエラー終了する...

この2つを防止するために成功するまで最大4回呼びます。この2つを防止するために成功するまで最大4回呼びます。この2つを防止するために成功するまで最大4回呼びます。この2つを防止するために成功するまで最大4回呼びます。この2つを防止するために成功するまで最大4回呼びます。

将来後者は改善されるといいなー(他力本願)将来後者は改善されるといいなー(他力本願)将来後者は改善されるといいなー(他力本願)将来後者は改善されるといいなー(他力本願)将来後者は改善されるといいなー(他力本願)

Page 10: コマンドライン使いもLibreOffice

ところでjekyllとかHakyllとかところでjekyllとかHakyllとかところでjekyllとかHakyllとかところでjekyllとかHakyllとかところでjekyllとかHakyllとか

☆ http://jekyllrb.com/☆ http://jekyllrb.com/☆ http://jekyllrb.com/☆ http://jekyllrb.com/☆ http://jekyllrb.com/

☆ http://jaspervdj.be/hakyll/☆ http://jaspervdj.be/hakyll/☆ http://jaspervdj.be/hakyll/☆ http://jaspervdj.be/hakyll/☆ http://jaspervdj.be/hakyll/

を使うと静的はWebページを少ない労力で作れます。を使うと静的はWebページを少ない労力で作れます。を使うと静的はWebページを少ない労力で作れます。を使うと静的はWebページを少ない労力で作れます。を使うと静的はWebページを少ない労力で作れます。

図の貼り付けも楽したい!図の貼り付けも楽したい!図の貼り付けも楽したい!図の貼り付けも楽したい!図の貼り付けも楽したい!

Page 11: コマンドライン使いもLibreOffice

応用: unoconv + Hakyll応用: unoconv + Hakyll応用: unoconv + Hakyll応用: unoconv + Hakyll応用: unoconv + HakyllODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 500x [email protected] $@rm -f [email protected]

hakyll: hakyll.hsghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll./hakyll build

server: build./hakyll server

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 500x [email protected] $@rm -f [email protected]

hakyll: hakyll.hsghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll./hakyll build

server: build./hakyll server

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 500x [email protected] $@rm -f [email protected]

hakyll: hakyll.hsghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll./hakyll build

server: build./hakyll server

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 500x [email protected] $@rm -f [email protected]

hakyll: hakyll.hsghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll./hakyll build

server: build./hakyll server

ODGS := $(wildcard draw/*.odg)PNGS := $(patsubst %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odgunoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $< || \ unoconv -n -f png -o [email protected] $< 2> /dev/null || \

unoconv -f png -o [email protected] $<convert -resize 500x [email protected] $@rm -f [email protected]

hakyll: hakyll.hsghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll./hakyll build

server: build./hakyll server

Page 12: コマンドライン使いもLibreOffice

応用色々おいしいunoconv応用色々おいしいunoconv応用色々おいしいunoconv応用色々おいしいunoconv応用色々おいしいunoconv

TeXと組み合わせてもいいかもしれませんね!TeXと組み合わせてもいいかもしれませんね!TeXと組み合わせてもいいかもしれませんね!TeXと組み合わせてもいいかもしれませんね!TeXと組み合わせてもいいかもしれませんね!

Page 13: コマンドライン使いもLibreOffice

PR:関数型言語の同人誌書きましたPR:関数型言語の同人誌書きましたPR:関数型言語の同人誌書きましたPR:関数型言語の同人誌書きましたPR:関数型言語の同人誌書きました

立ち読みしてして!立ち読みしてして!立ち読みしてして!立ち読みしてして!立ち読みしてして!