OpenOffice.org試用手記分類文章 顯示方式:簡文 | 列表

2006年06月18日

[OOo] 如何在緊鄰上邊界的表格上方能多出一列

周五時遇到一個Writer操作上的問題:在頁的開頭放置表格後,如何在表格上插入新的文字?Writer的表格無法搬移,因此無法在表格上方騰出空行來輸入文字。最後想到的辦法是使用表格的標籤(Caption),使緊鄰上邊界的表格上方能多出一列。

OOo Table-1

操作步驟如下:
  1. 將游標移至表格內,按右鈕選「標籤」
  2. 在「標籤」欄隨便輸入一些文字,把位置欄的選項由「之下」改成「之上」
  3. 最後把插入在上方的標籤文字都刪除。
OOo-table-2

這樣就能順利的在表格上方插入新的文字了。

## ...繼續閱讀

Posted by emisjerry at 樂多Roodo!0:34

2006年06月8日

[OOo] Writer衝到新注音/新倉頡輸入法!

在OpenOffice.org補給站裡看到的Writer瘋狂跑字!狀況重現!這個狀況在補給站裡最早的記錄是在2004年,看來這個問題一直未解決,有回應說是新注音與新倉頡輸入法的自動連字功能造成的問題,禍首是微軟,但微軟不改的情形下,對要推動使用Writer的單位可造成了莫大障礙。

經過簡單的測試,我在Windows 2003+新注音輸入法2002a下一切正常,但Windows XP Professional+新注音輸入法2003就會一直跑字。目前只能宣導先以新酷音輸入法取代新注音。

##

...繼續閱讀

Posted by emisjerry at 樂多Roodo!23:22

[OOo] 表格製作的快速鍵巨集

同事在試用OpenOffice Writer時抱怨表格的製作比Word麻煩許多,例如手繪表格可以很方便且直覺的隨意畫出需要的表格,而Writer則必須較頻繁的用合併與分開儲存格,經由繁瑣的步驟才能完成表格。

經過分析,手繪表格最常使用到的狀況是:
  1. 把一格或鄰近的水平格由單列分割成兩列
  2. 把一格或鄰近的垂直格由單欄分割成兩欄
  3. 用橡皮筋擦按鈕把分隔線移除,使兩格變成一格
而這兩種狀況應該可以利用巨集做成用功能鍵就能完成的動作,例如:
  1. 游標停在某個儲存格裡按Ctrl+H,則一格變成上、下兩格(水平分割)
  2. 游標停在某個儲存格裡按Ctrl+K,則一格變成左、右兩格(垂直分割)
  3. 標示需要合併的儲存格後按Ctrk+M,則數格變成一格
透過巨集的錄製,再加上「合併儲存格」與「分開儲存格」兩個按鈕來達成上述需求;最後完成的程式如下:

CellSplitHorz 水平分割
sub CellSplitHorz
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Amount"
args1(0).Value = 2
args1(1).Name = "Horizontal"
args1(1).Value = true
args1(2).Name = "Proportional"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:SplitCell", "", 0, args1())

end sub

CellSplitVertical 垂直分割
REM  *****  BASIC  *****


sub CellSplitVertical
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Amount"
args1(0).Value = 2
args1(1).Name = "Horizontal"
args1(1).Value = false
args1(2).Name = "Proportional"
args1(2).Value = false

dispatcher.executeDispatch(document, ".uno:SplitCell", "", 0, args1())

end sub

CellMerge 儲存格合併
REM  *****  BASIC  *****

sub CellMerge
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:MergeCells", "", 0, Array())

end sub

巨集製作完畢後,再用【工具→自訂→鍵盤】,在下方的【功能→範圍】裡找到OpenOffice.org巨集,將製作好的巨集變更給要使用的功能鍵。

雖然Writer目前並無手繪表格的功能,但透過功能鍵應該也能更快速的製作較複雜的表格了。

##

...繼續閱讀

Posted by emisjerry at 樂多Roodo!22:56

[OOo] DOC轉成ODT格式的Script

以下是在Windows底下把Word的DOC格式轉換成OpenOffice Writer的ODT格式,這樣可以方便的執行已存在檔案的格式轉換。

doc2odt1.vbs
'***********************************************************
'$Id: doc2odt1.vbs 908 2006-06-08 09:01:48Z jerry $
'
'將DOC檔轉換成ODT檔; 必須傳入完整路徑的檔名
'***********************************************************
dim oArgs, oDoc
dim xExt, sURL, sSourceFile, sOutputFile
 
set oArgs = WScript.Arguments
if oArgs.Count > 0 then
  sSourceFile = oArgs(0)
end if  

'The service manager is always the starting point
'If there is no office running then an office is started up
Set objServiceManager= WScript.CreateObject("com.sun.star.ServiceManager")

'Create the CoreReflection service that is later used to create structs
'Set objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection")

'Create the Desktop
Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")

sExt = right(sSourceFile,4)
 
if (sExt = ".doc") then
  if InStr(sSourceFile, "\") <= 0 then
    Wscript.echo "參數必須包含路徑"
  else
    sOutputFile = left(sSourceFile,len(sSourceFile)-4) & ".odt"
  
    sURL = ConvertToUrl(sSourceFile)
    'Wscript.echo cFile & "==>" & sURL
    Set oDoc = objDesktop.loadComponentFromUrl(sURL,"_blank", 0, Array())
    sURL = convertToURL(sOutputFile)

    oDoc.storeAsURL sURL, Array() 
    oDoc.close( True )
  end if
end if
WScript.Quit

Function ConvertToUrl(strFile)
  strFile = Replace(strFile, "\", "/")
  strFile = Replace(strFile, ":", "|")
  strFile = Replace(strFile, " ", "%20")
  strFile = "file:///" + strFile
  ConvertToUrl = strFile
End Function

## ...繼續閱讀

Posted by emisjerry at 樂多Roodo!22:08

2006年06月1日

RTF另存檔成DOC的VBS程式

以前有許多的系統文件是以RTF格式儲存的,為了能用最快速的方式將這些檔案轉存成DOC格式,因此研究、改寫了轉檔程式:

rtf2doc1.vbs
dim oArgs
dim oDoc
dim oApp
dim newpath
 
set oArgs = WScript.Arguments
if oArgs.Count > 0 then
  set oApp = createobject("Word.Application")
  ' the ,0 parameter means do not confirm conversions
  set oDoc = oApp.Documents.Open(oArgs(0),0)
  ' the 0 parameter means use .doc format
  newpath = left(oDoc.FullName,len(oDoc.FullName)-4) & "_new.doc"
  Wscript.echo oDoc.FullName & "==>" & newpath
 
  ' the 0 parameter means use .doc format
  oDoc.SaveAs newpath, 0
  oApp.Quit
end if
WScript.Quit

在DOS視窗裡以 rtf2doc1  要轉檔的RTF檔名(含路徑) 即可產生出DOC的檔案。

如果有安裝Windows Script Debugger的話,可以加入 //X 參數來除錯。

##
...繼續閱讀

Posted by emisjerry at 樂多Roodo!23:42

2006年05月28日

[OOo] ODT格式另存成DOC時無法修改段落樣式

當我們把使用OpenOffice.org Writer建立的文件另存成MS Word格式時,段落樣式竟然變成無法修改了!如果文件需要傳送給使用Word的使用者做後續修改時,這可是造成了莫大的問題了。

測試許久後,發現把文件轉成RTF格式後,再讓Word讀取,再存成DOC格式,就比較沒問題。在還沒有更好的解決方法前,只能先用這個應變方法了。

##
...繼續閱讀

Posted by emisjerry at 樂多Roodo!23:33

2006年05月25日

[OOo] 一篇文章裡使用數個編號系統

1. 延續上篇,繼續新增第六章、第七章與第八章,即輸入文字後再套用標題1。接著,我們再把新加的三章換用另一組編號系統,且重新由1開始編號。
Numbering-1
2. 把游標停在要重新編號的段落上後按右鍵,選「重新開始編號」。
Numbering-2Numbering-3

3. 當游標移到重新編號後的段落後,項目符號與編號工具列的「重新編號」圖示會呈現被按下的狀態。
Numbering-4
4. 但,事與願違,當我們在第六章行尾按下 Enter 後,重新編號的第一、二、三章又變成六、七、八章了。
這個原因應該是標題1全部使用同一組編號系統(或稱編號群組?),用右鍵選【段落→編號】頁籤,可以清楚的看到各章的編號都是空白,此處相同的編號就會使用同一組編號。
Numbering-5
5. 如果要重新使用另一組編號的話,只要把段落裡的編號樣式換成別的清單樣式(List Style)就會形成另一組新的編號系統。例如我們把第六章的段落→編號樣式換成編號1,則第六章變成樣式編號1的數字1。
Numbering-6
6. 按確定後,使用編號樣式編號1的第六章變成數字1,原來的第七、八章往上遞補成為第六、七章。
Numbering-7
7. 繼續把第2級的段落套用標題2樣式,因此變成第一、二、三節;如果用右鍵功能表「編號/項目符號...」把級2的「完整」由1開成2的話,我們會發現到這 三個標題事實是屬於第五章的,看起來號碼就變得很怪異。形成第五.一、五.二、五.三節的原因是:因為這三個段段落→編號樣式和第一章或第五章一樣,都是 空白,因此屬於同一組號碼。
Numbering-8Numbering-9
8. 在第五.一節的段落上開啟「段落」視窗,把三個段落的編號樣式換成編號1,再用「編號/項目符號...」選「大綱」頁籤,選第一列第二個數字階層,則最後形成如下編號狀態。
Numbering-10

## ...繼續閱讀

Posted by emisjerry at 樂多Roodo!23:00

2006年05月24日

[OOo] 編號(Numbering)的操作

條列式的文章能達到列舉、標示重點等優點,因此不管是Word或Writer,都提供功能強大的編號功能,但也由於功能太多,反而變成使用上的障礙,多半 時候是用Try and error式的土法鍊鋼或暴力調整來達成條列的目的。以下是大綱式編號操作彙總的重點:

1.下圖是我們要完成的文件的第一階層(第一級)的五大項,第一級一般就是章名,其段落樣式就使用標題1的樣式,用F11樣式小視窗把標題1套用到級1-1級1-5的段落上。
OOo Numbering-1
2. 把游標移到第一級的文字上後【按右鈕→執行編號/項目符號...】。
OOo Numbering-2
3. 文件使用大綱式的編號,亦即分章、分節、分項等的階 層式編號系統,切換到大綱頁籤,選第二列第二個類型。
OOo Numbering-3
4. 再到「選項」頁籤上做各級別的標題設定。
OOo Numbering-5
  • 編號:編號數字的呈現方式,是用阿拉伯數字、中文數字、羅馬數字等。
  • 之前:編號數字的帶頭文字,例如一個空白或本例中的"第"。
  • 之後:編號數字的後綴文字,例如一個點或本例中的"章"。之前+編號+之後形成完整的標題號碼("第一章")。
  • 字元樣式:標題號碼呈現的文字樣式,可依需求自行替換成不同的樣式。
  • 完整(Show sublevels):本級編號要顯示的階層數,在數字型態的狀態下才會使用,例如:

    完 整 呈 現編號 用 中文數字呈現
    第1 級 不 能設定 1. 第 一章
    第2 級 設 成2
    1.1. 第 一.一節
    第一個一是章的號碼
    第二個一是節的號碼
    設 成1 1. 第 一節
    第3 級 設 成3 1.1.1. 第 一.一.一項
    設 成2 1.1. 第 一.一項
    設 成1 1. 第 一項
  • 開始從(Start at):本級號碼的起始數字,正常狀況下都會是1
  • 所有的級 連續編號:各級以連續的數字呈現,第一章、第一節、第一項變成第一章、第二節、第三項。
5. 繼續設定第2級的各項設定,包含本級標題的內縮位置等。
OOo Numbering-6
6. 用位置「頁籤」設定某級編號的位置設定。
  • 縮排:文件頁面左邊界到編號間的距離;如藍色箭頭所 示位置。
  • 至文字的距離:標題下方第一列文字的內縮位置;如紅色箭頭所 示位置。
  • 編號和內文之間的最少間隔:本級編號到標題文字間的距離;如綠色箭頭所 示位置。
OOo Numbering-11
7. 繼續設定第三級。
OOo Numbering-7
8. 在第一級的級1-1下面插入第二級的文字,級2-1級2-2級2-3
OOo Numbering-8
9. 分別將落段樣式標題2套 用到這三個新加入的文字上後,會自動形成第二級的標題。落段樣式套用後自動了階層編號,似乎樣式與編號之間有連動關係,才有辦法自動形成關聯,這個段落樣 式-大綱編號間的關聯是透過【工具→章節編號...】來設定的。套用了標題2的樣貌如下:
 OOo Numbering-10
10. 在第三層的"第一項"下方加入第一點第三點等三段文字。但這三點只要用阿拉伯數字呈現,不使用第四級的設定來控制。
OOo Numbering-11
11. 在第一點文字上【按右鈕→執行編號/項目符號...】,左邊界設成2.50公分,使文字內縮到第三級標題的內側。
OOo Numbering-12
12. 游標停在"第一點"等文字上,按顯示/隱入編號按鈕讓編號的阿拉伯數字顯示出來。
OOo Numbering-13
 最後結果如下。
OOo Numbering-14
13. 標題下方的文字經常需要和各級標題的文字開頭對齊(編號部份則外凸),則可以使用「不帶編號插入條目」按鈕。
OOo Numbering-16
OOo Numbering-17
##








...繼續閱讀

Posted by emisjerry at 樂多Roodo!0:00

2006年05月21日

[OOo] 項目符號存成Word格式時字型有誤

為了把Writer製作的.odt檔案轉給同事以MS Word編輯,結果遇到一些不相容的問題。

首先,以預設的項目符號 (Bullets)插入後,符號並非是Writer裡的 ● 變成了另一個符號。把游標移動到項目符號前面,顯示出的字型名稱是StarSymbol,但事實上我的系統裡並沒有這個字型,這個狀況似乎是Bug,查了oooforum後了解這個字型檔是在StarOffice 5.2時附在系統裡了,但現在很難找到這個檔。最後用下列方法克服:
(參考:http://support.novell.com/techcenter/articles/nc2005_10g.html)

  1. 按 F11 開啟樣式小視窗。

  2. 點字元樣式按鈕(第2個按鈕)。

  3. 找到「項目符號」後按右鈕再選「變更」。

  4. 點「字型」頁籤。

  5. 把字型StarSymbol換成在MS Word裡也可以找得到的字型,例如標楷體。

  6. 按「確定」。

  7. 把游標移到條列的項目清單文字裡。

  8. 按右鈕選「編號/項目符號...」。

  9. 按「選項」頁籤。

  10. 字元樣式選項目符號,再按「字元」的...按鈕。

  11. 選用MS Word裡也可以找得到的字型,例如標楷體。

  12. 在特殊字元視窗裡找到要使用的字元後按確定。

  13. 再按確定把項目符號與編號視窗關閉。

  14. 將文件裡的項目清單依步驟7至步驟13皆處理完畢。

  15. 最後可以將文件存成.doc格式了。

##

...繼續閱讀

Posted by emisjerry at 樂多Roodo!1:09

2006年05月15日

[OOo] 插入目錄的操作

(看不到圖的話,請連Xuite)

如果文件裡有使用到標題1標題10的樣式,就可以由【插入→目錄→目錄...】把目錄給產生出來。雖然產生的方法很簡單,但其畫面操作卻有許多選項,猛一看實在會被嚇到,不知如何調整起。以下針對設定做了簡要說明。

把游標移到目錄文字區上按右鈕,選擇「編輯索引/表格」即可進入修改目錄的設定視窗。目錄插入文件後會被保護住而無法修改或移除,必須用右鍵功能表裡的「刪除索引/表格」才能移除目錄。
ooo-index-1

為了方便解說「編輯索引/表格」視窗,我們先檢視「樣式」頁籤。在樣式頁籤裡用來設定章節的級別與段落樣式,一般就直接使用預設值就了,亦即級1設成內容目錄1,級2用內容目錄2,以此類推。如果要變更級別1的樣式則在文件區按F11修改段落樣式裡的內容目錄1
ooo-index-2

再切換到「目錄」頁籤。首先設定目錄的標題為內容目錄,綠框裡的10表示最多輸出到標題10的章節名稱,若改成3則表示只輸出到標題3
ooo-index-3

最後是比較複雜的條目(Entry)。先指定要設定的級別(藍色框),紅色框表示的是章節名的文字結構,圖中表示的是要設定級別1的文字結構(Structure),預設的結構如下,分別以紅、橙、黃、綠標示4個元素,對應到螢幕的4個框:
ooo-index-4

E#
E
定位點
#
空白章節編號空白條目空白輸入Tab鍵
頁碼空白

1
應用系統架構
......................
1
ooo-index-4

我 們可以「空白」格裡輸入任意文字,或把游標移在「空白」格裡再選「超連結」,超連結必須按兩次,第一次會出現「LS」(Link Start),表示超連結的起始位置,再將游標移到第二個空白後按超連結則出現「LE」表示Link End,則LS與LE之間的欄位就會以超連結的形式出現。
ooo-index-5

調整後的結果如下,紅框裡的文字變成超連結了:
ooo-index-6

##

...繼續閱讀

Posted by emisjerry at 樂多Roodo!22:08
 [第一頁]  [1]  [2]  [3]  [4]  [最終頁]