6

見出しと画像を含む ODF ドキュメントを作成する次のコードがあります。

#!/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> 

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

4

1 に答える 1

1

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

于 2012-09-07T20:00:08.423 に答える