2011-05-15 60 views
1

我需要將文本輸出到.doc文件。我目前只是輸出到像往常一樣一個文件,並在文件名如何使用粗體和彩色文本輸出.doc文件

File.open('output_file.doc', 'a+') {|x| x.write(str)}

問題的最終使用的.doc是我想要做一些文字的紅色粗體。這怎麼能實現?我正在使用ruby,但我可以輕鬆地切換到jruby,這要感謝rvm的驚人之處,所以如果有Java庫,那也會很棒。

+0

您需要使用庫win32ole。這可能需要在您的計算機上安裝Microsoft Word的副本。 – sawa 2011-05-15 22:10:16

回答

2

簡短回答:使用.rtf,然後使用word或open office轉換爲.doc。下面.rtf文件(寫道: 「普通文本紅色字體比較正常的文本。」 和顏色,加粗的紅色文本):

{\ RTF1 \ ANSI \ ansicpg1252 \ cocoartf1038 \ cocoasubrtf350 {\ fonttbl \ F0 \ fswiss \ fcharset0黑體;} {\ colortbl; \ red255 \ green255 \ blue255; \ red255 \ green0 \ blue0;} \ margl1440 \ margr1440 \ vieww13280 \ viewh10420 \ viewkind0 \ PARD \ tx720 \ tx1440 \ tx2160 \ tx2880 \ tx3600 \ tx4320 \ tx5040 \ tx5760 \ tx6480 \ tx7200 \ tx7920 \ tx8640 \ QL \ qnatural \ pardirnatural

\ F0 \ FS24 \ CF0正常文本 \ b \ CF2紅色文本 \ B0 \ CF0更正常的文本。}

長的答案:

字符串只是普通的ASCII文本,所以沒有命令,可以使他們大膽。這是一般所有文件的屬性,而不僅僅是Ruby如何處理文件。

文本編輯器做的是在文件內使用關鍵字符串作爲命令以某種方式呈現文本。例如,在Stack Overflow編輯器中,雙星號包圍粗體文本。文件的文件格式確定這些規則。

.rtf是一種基本的文件格式,它具有您想要的功能,並且可以使用msword或open office輕鬆轉換爲.doc。 .rtf的優勢在於它是人類可讀的。因此,您可以用紅色文本編寫一個rtf文件,將其重命名爲.txt,然後在文本編輯器中打開並查看添加了紅色字體的「裝飾」。玩的參數

如果你是好奇,完整規格的.rtf可以在這裏找到: http://www.biblioscape.com/rtf15_spec.htm

什麼是頂部所有的垃圾?這是標題的東西。幸運的是,您不需要添加更多標題材料來添加更多文本。

+0

謝謝你,相當有幫助 – providence 2011-05-25 20:12:55