[リストへもどる]
一括表示
タイトルTaskPrizeからの書き出しと印刷
記事No3844
投稿日: 2008/02/22(Fri) 17:27
投稿者onanpo
K2Editorなしでは私の仕事もブログライフも成り立たないくらいお世話になっております。
一時期使わなくなっていたのですが、最近またTaskPrizeを使い始めてその便利さを見直しています。

TaskPrizeではテキストへの書き出しや印刷をサポートしていませんが、テキストファイルへの書き出しとK2Editorくらいの印刷機能があればうれしいです。
テキストファイルの書き出しは選択した仕事の内容をひとまとめに書き出す機能と個別のファイルに書き出す機能があればうれしいです。
とりあえず書き出せれば印刷は何とかなりますから。

タイトルRe: TaskPrizeからの書き出しと印刷
記事No3848
投稿日: 2008/02/26(Tue) 17:24
投稿者K2
K2です。

> 一時期使わなくなっていたのですが、最近またTaskPrizeを使い始めてその便利さを見直しています。

ありがとうございます。

> TaskPrizeではテキストへの書き出しや印刷をサポートしていませんが、テキストファイルへの書き出しとK2Editorくらいの印刷機能があればうれしいです。

この機能をどういう形で実装するかかなり悩んだのですが、
悩んだ末生み出されたのが、「RubyForTPZ」プラグインです。

こいつを使えば、自由フォーマットでTaskPrizeからテキスト
に落とし込むことができますので、そのテキストを印刷して
もらうようお願いしています。

Rubyでスクリプトを組むことが必要なのですが、RubyForTPZ
のヘルプには、稚拙ですが一応Ruby入門的な文章が書かれています。
最低限の文書書き出しスクリプトが書けるところまでは、
このヘルプだけでいけると思っていますので、
一度ご確認していただければありがたいです。

以上、よろしくお願いします。

タイトルRe^2: TaskPrizeからの書き出しと印刷
記事No3851
投稿日: 2008/02/26(Tue) 22:40
投稿者onanpo
ありがとうございます。
なるほどそうすればいいんですね。

付属のスクリプトでとりあえずまとめて出力はできますね。
個別ファイルに出力は自分でもう少し書かないとだめですね。
いずれRubyをかじってみようと思っていたので勉強してみます。

タイトルRe^2: TaskPrizeからの書き出しと印刷
記事No3855
投稿日: 2008/02/29(Fri) 12:51
投稿者onanpo
Rubyの入門書を入手してさっそく試してみました。
ItemWrite.rbに手を加えて個別ファイルに書き出すことに成功しました。パス指定なしで書き出してどこにファイルができているか不安でしたが、プロジェクトと同じフォルダに書き出されますね。
タイトルにファイル名に使えない文字が入っているとまずいのですが、とりあえず今書き出したいプロジェクトで使っている'/'を'_'に書き換える処理も入れました。完全にするには置換部分の正規表現の検討が必要です。
同じ悩みをお持ちの方もおられかもしれませんので、書き換えた内容を参考までに付けておきます。
Rubyに詳しい方、もっとスマートな方法のアイデアがあれば教えてください。

# print_itemメソッド定義
def print_item(item)
fname=item.title+".txt"
fname=fname.gsub(/\//,'_')
open(fname,"w") do |io|
io.print "======================================================================\n"
io.print item.title, "\n"
io.print "======================================================================\n"

item.documents.each do |doc|
io.print "■"
title = doc.title
if title == ""
io.print "文書(", doc.index + 1, ")"
else
io.print title
end
io.print "\n"
io.print doc.text, "\n"
end
end
end

タイトルRe^3: TaskPrizeからの書き出しと印刷
記事No3856
投稿日: 2008/02/29(Fri) 14:03
投稿者sunoko
参照先http://sunoko.s33.xrea.com/x/d/20080229.html#p03

> Rubyに詳しい方、もっとスマートな方法のアイデアがあれば教えてください。

Rubyには詳しくありませんが、以下のようなものを使っています。参考まで。

#textout 文書を外部ファイルに書き出す
#
#●動作説明
# アイテムの内容を外部ファイルに出力する。
# 1)エディットウィンドウがアクティブな場合の動作
# その文書だけを出力する。
# 2)仕事表示枠でアイテムが選択されている場合
# 選択されているアイテムの内容を出力する。複数の文書があるアイテ
# ムは、その文書をすべて書き出す。
#
#●出力するファイル名
# とりあえず、ユーザフォルダに out.txt という名前で書き出してあります。

#eval_start

require "tpz"
include Tpz

head_text = <<HEAD
//ここに任意のヘッダーを記述しておく
------------------------------------------------------------
HEAD

foot_text = <<FOOT
------------------------------------------------------------
//ここに任意のフッターを記述しておく
FOOT


def print_doc(doc)
r = ""
title = doc.title
if title == ""
r << "------------------------------\n"
r << "■文書(#{doc.index + 1})\n"
r << "------------------------------\n"
else
r << "------------------------------\n"
r << "■#{title}\n"
r << "------------------------------\n"
end
r << "#{doc.text}\n"
return r
end

def print_item(item)
r = <<-EOR
======================================================================
■■■■■ #{item.title}
======================================================================
EOR

item.documents.each do |doc|
r << "#{print_doc(doc)}\n"
end
return r
end


#main処理
r = head_text

items = tpz_selected_items

if tpz_focus_pain != 3
items.each do |item|
r << "#{print_item(item)}\n"
end
else
r << "#{print_doc(tpz_current_document)}\n"
end

r << foot_text


#出力処理
#ユーザーフォルダ\out.txt として書き出す
out_f = open("#{tpz_user_folder}out.txt","w")
out_f.write(r)
out_f.close

#eval_end

タイトルRe^4: TaskPrizeからの書き出しと印刷
記事No3859
投稿日: 2008/02/29(Fri) 18:21
投稿者onanpo
>sunoko さん
ありがとうございます。参考にします。
掲示板はインデントがされないのでソースコードが見にくいですね。テキストファイルに写して試してみます。

今日Rubyの本を手に入れて参照しながら10分ほどでできました。
便利ですね。もっと早く手を出せば良かったです。
ノウハウという面ではいろいろな方のソースを見るのが一番の勉強ですね。