2011-06-19 7 views
6

I持ちの見出しと写真とODFドキュメントを作成し、次のコード:OpenOffice :: OODocで画像にテキストキャプションを追加するには?

#!/usr/bin/perl 

use strict; 
use warnings; 
use OpenOffice::OODoc; 

my $doc = odfDocument(
    file => 'test.odt', 
    create => 'text' 
); 

my $head = $doc->appendHeading(
    text => "This is a Test", 
    style => 'Heading 1' 
); 

my $style = $doc->createImageStyle("Photo"); 
my $image = $doc->createImageElement(
    'some picture', 
    style  => 'Photo', 
    attachment => $head, 
    size  => '4cm, 12cm', 
    link  => '/full/path/to/picture.png' 
); 

$doc->save(); 

がどのように私は絵にテキストキャプションを追加することができますか? LibreOfficeでテキストキャプションを作成すると、キャプションが作成される 'content.xml'の部分が次のようになります。

<draw:frame draw:style-name="fr1" draw:name="Frame1" text:anchor-type="as-char" svg:y="0cm" svg:width="4.001cm" draw:z-index="0"> 
    <draw:text-box fo:min-height="12cm"> 
    <text:p text:style-name="Caption"> 
     <draw:frame draw:style-name="fr2" draw:name="Eiffel Tower" text:anchor-type="paragraph" svg:x="0.004cm" svg:y="0.002cm" svg:width="4.001cm" style:rel-width="100%" svg:height="12cm" style:rel-height="scale" draw:z-index="1"> 
     <draw:image xlink:href="full/path/to/picture.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/> 
     </draw:frame> 
     test caption 
    </text:p> 
    </draw:text-box> 
</draw:frame> 

私はそれがフレームを作成し、その中に画像とキャプションのテキストを配置すると思います。私はこの時点で迷っています。私はドキュメンテーションのフレームに要素を追加することについても何かを見つけることができませんでした。

答えて

1

perlが作成するxmlを見るのは興味深いでしょうが、それ以外の場合は、Xpathモ​​ジュールを使用してXMLを書き直す前にXMLを修正することができます。しかし実際には、何がうまくいかないかを見るためには、基本的な出力を確認する必要があります。たとえば、フレームネストが間違っている可能性があります。

関連する問題