4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[OF] プリンタ制御

Last updated at Posted at 2018-07-17

自己紹介

社会人3年目を迎えたエンジニアです。
そろそろ自分に「初心者」っていうレッテルが取れ始めて「初心者なんで多めに見てね」スタンスが通用しなくなってきたことを感じる日々を送っています。

ものすごい久しぶりの投稿になります。
前回投稿からすでに一年以上空いてますが、その間で色々学ばさせていただいたことが多く、ここに書けそうなことをちょいちょいっとまとめていけたらなと思います。

本題

はい、今回は需要があるかどうかとても怪しいのですが、openframeworksでプリンタの制御をしようというものです。
実際僕がこのケースに出くわしているので多少の需要はあるでしょう、きっと。....きっと。

どのようなケースに遭遇したかといいますと
「体験者に応じて画像を生成して、その画像を全て自動で印刷させる」というものでした。
unityには有料でプリンタ制御できるアセットがあったりと別にOFでやらなくてもよかったのですが、
僕個人は一番OFが慣れ親しんでるものだったので、どうせなら自作でアドオンを作ってみようと思いました。

んで、作ってみました。

ofxPrinter###

実を言うと、中身見ればわかっちゃうのですがコアな部分ほぼPowershellで書いて、それをOFからsystem関数で呼んでるだけです。
Example見てもらえればある程度使い方わかりますでしょうか?不明であればコメントください。あとプルリクも大歓迎です。
駄目だしとかめっちゃしてください笑

使い方

ofApp.cpp

# 印刷情報を持つ構造体
OFX_PRINTER p;

p.printerName = ""; #使用するプリンタの名前を入力

p.paperSize = ""; #使用する紙のサイズを入力
p.color = false; #白黒かカラーかを選択 falseの場合は白黒
p.fitToPaper = false; #ページの隅に画像を合わせるか選択
p.landscape = false; #縦印刷か横印刷か選ぶ falseの場合は縦 trueは横
p.margin = ofVec4f(50.f, 50.f, 50.f, 50.f); #ページの余白を入力 fitToPaperがtrueの場合は無視されます

# 印刷
printer.printOut("画像ファイルのパス", p);

ExampleではofxImGuiを用いてGuiでプリンターや紙サイズなど選べて印刷できるようにもなっているので、よければビルドして試してみてください。

終わりに

今回初めて自身のアドオンをGithub様で公開してqiita様で広報という事をしました。
今年中にあと2つか3つくらい需要のありそうなOFのアドオンを制作して、同じような形でまたここに書いていこうと思います。

ではまた次回!読んでいただきありがとうございました。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?