2009-08-17 9 views

Répondre

4

Selon PDF::API2::Content il semble que vous passez l'option hashref à la méthode text (sur un objet PDF :: API :: Content :: Text).

Il "devrait" travailler comme ça (. NB Je n'ai pas PDF :: API2 installé ici si le code ci-dessous est non testé):

use PDF::API2; 
use PDF::API2::Util; 

my $pdf = PDF::API2->new; 

my $font = $pdf->corefont('Helvetica',-encode=>'latin1'); 
my $page = $pdf->page; 
$page->mediabox(80, 500); 

my $txt = $page->text; 
$txt->font($font, 20); 

$txt->translate(50, 800); 
$txt->text('Hello there!', { color => '#e6e6e6' }); # <= hashref option 

$pdf->saveas("file.pdf"); 
$pdf->end(); 

Espoir qui aide?

2

Les seules options prises en charge par $txt->text sont -indent, -underline et -strokecolor, bien que -strokecolor ne soit utilisé qu'en combinaison avec -underline pour déterminer la couleur de la ligne. Utilisez $txt->fillcolor('colorname') ou $txt->fillcolor('#RRGGBB') pour définir la couleur de tout texte écrit après la commande fillcolor.

1

Utilisez quelque chose comme ce qui suit:

my $margin = $x; #co-ordinates for page 
my $margin = $y; #co-ordinates for page 

my $caption = 'blah blah blah'; 
my $font=$pdf->corefont('Helvetica-Bold',-encode=>'latin1'); 
my $font_size = 12; 

my $page = $pdf->openpage($pageNum); 
my $gfx = $page->gfx; 

$gfx->textlabel($margin,$y_pos, $font,$font_size,$caption, 
    -color => '#5E5E5E', 
); 

Et, évidemment, changer de couleur hexadécimal à ce que vous voulez.

5

Vous pouvez définir la couleur du texte en appelant la méthode fillcolor avant d'ajouter le texte:

use PDF::API2; 

my $pdf = PDF::API2->new();    # Create a PDF 
my $font = $pdf->corefont('Helvetica'); # Add a font to the PDF 
my $page = $pdf->page();     # Create a page to hold your text 
my $text = $page->text();    # Create a graphics/text object 

$text->font($font, 12);     # Set the font and size for your text 
$text->fillcolor('#FF0000');    # Set the text color 
$text->text('This text will be red.'); # Add your text 

noms de couleurs de style Web fonctionnera probablement bien dans la plupart des cas, mais vous pouvez donner une couleur CMJN au lieu en utilisant "%" au lieu de "#" et passant quatre valeurs (par exemple %00FF0000 pour le magenta). La documentation PDF::API2::Content contient plus de détails sur les diverses méthodes qui affecteront l'objet $text.

Questions connexes