2009-07-26 6 views
3

J'ai une tâche simple d'ajouter un paragraphe qui a du texte formaté en son sein. Je n'arrive pas à comprendre comment styliser le texte.OpenOffice :: OODoc stylise le texte dans un paragraphe

sortie Exemple: John Smith 200 Main Streetsimple

my $doc = odfDocument(file=> 'outputfile.odt',create=> 'text'); 
$doc->appendParagraph(text => "John Smith 200 Main Street single", style => "optionalParagraphStyle"); 
$doc->save; 

J'ai lu la documentation sur CPAN http://search.cpan.org/~jmgdoc/OpenOffice-OODoc/ Je vois que je peux utiliser TEXTSTYLE (élément [style]) pour changer le style d'un élément existant. Dois-je d'abord ajouter du texte pour le styliser?

Répondre

3

Veuillez consulter extendText() et setSpan() dans la documentation.

Voici un exemple qui fait ce que vous voulez:

use OpenOffice::OODoc; 
my $doc = odfDocument(file=> 'outputfile.odt',create=> 'text'); 
$doc->createStyle(
    "strong", 
    family  => "text", 
    properties => { "fo:font-weight" => "bold" } 
    ); 
$doc->createStyle(
    "em", 
    family  => "text", 
    properties => { "fo:font-style" => "italic" } 
    ); 

my $p = $doc->appendParagraph(text => "", style => "optionalParagraphStyle"); 
$doc->extendText($p, "John Smith"); 
$doc->extendText($p, " 200 Main Street", "strong"); 
$doc->extendText($p, " single", "em"); 

my $p = $doc->appendParagraph(text => "John Smith 200 Main Street single", style => "optionalParagraphStyle"); 
$doc->setSpan($p, "200 Main Street", "strong"); 
$doc->setSpan($p, "single", "em"); 

$doc->save; 
+0

Cela a un sens parfait quand je le vois écrit de cette façon. Merci beaucoup. – ojreadmore

+0

Connaissez-vous une ressource répertoriant toutes les propriétés disponibles, telles que fo: font-weight et fo: font-style? – ojreadmore

+1

Jetez un oeil à la spécification: http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1-html/OpenDocument-v1.1.html – Inshallah

Questions connexes