2012-04-05 59 views
1

如何獲取odt doc頁眉/頁腳中的元素?Perl OpenOffice :: OODoc - 訪問頁眉/頁腳元素

,比如我有:

use OpenOffice::OODoc;  
my $doc = odfDocument(file => 'whatever.odt'); 
    my $t=0; 
    while (my $table = $doc->getTable($t)) 
    { 
     print "Table $t exists\n"; 
     $t++; 
    } 

當我檢查他們都是從身體的表。我似乎無法找到頁眉或頁腳中的任何元素?

+0

我不知道完整的答案,但我可以告訴你,如果你解壓縮.odt文件,你會得到一個名爲'content.xml'的文件。如果你看看xml(它有助於使用xmltidy)。這將向您顯示odf文檔的結構。 OpenOffice :: OODoc對象中的數據結構反映了xml的xpath結構。找到標題中的文本,閱讀標籤周圍的標籤,並且應該能夠找出在OODoc對象中查找它的位置。 – 2012-04-05 02:57:23

+0

我剛剛查看了OpenOffice :: OODoc :: Text perldoc,它指出可以在「styles.xml」中定義頁眉和頁腳。 – 2012-04-05 03:08:14

回答

1

我發現示例代碼here這使我的答案:

#! /usr/local/bin/perl 

use OpenOffice::OODoc; 

my $file='asdf.odt'; 

# odfContainer is a representation of the zipped odf file 
# and all of its parts. 
my $container = odfContainer("$file"); 

# We're going to look at the 'style' part of the container, 
# because that's where the header is located. 
my $style = odfDocument 
    (
    container => $container, 
    part  => 'styles' 
    ); 

# masterPageHeader takes the style name as its argument. 
# This is not at all clear from the documentation. 
my $masterPageHeader = $style->masterPageHeader('Standard'); 
my $headerText = $style->getText($masterPageHeader); 

print "$headerText\n" 

母版頁樣式定義了文檔的外觀和感覺 - 思考CSS。顯然,'標準'是由OpenOffice創建的文檔的母版頁樣式的默認名稱......這是最難以解決的問題......一旦我找到示例代碼,它便掉到了我的大腿上。