I have the following code that creates an odf document with a title and image:
#!/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();
How to add text to a picture? When I create a text signature in LibreOffice, the "content.xml" part where the signature is created is as follows.
<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>
I think it creates a frame, and then puts the image and subtitle text inside it. I lost at that moment. I could not find something about adding elements to frames in the documentation.
source share