タイトル | : Re^3: TaskPrizeからの書き出しと印刷 |
投稿日 | : 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