我需要使用PDF::API2在PDF文档中为一些文字添加颜色 - 我该如何做?
在添加文本之前调用fillcolor
方法即可设置文本颜色:
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
在大多数情况下,Web样式的颜色名称可能已经足够使用,但是您可以通过使用“%”而不是“#”并传递四个值(例如%00FF0000
表示洋红色)来提供CMYK颜色。
PDF::API2::Content文档详细介绍了各种方法对$text
对象产生影响的更多细节。
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();
$txt->text
只支持 -indent、-underline 和 -strokecolor 这几个选项,其中 -strokecolor 只用于与 -underline 结合使用时确定线条的颜色。$txt->fillcolor('colorname')
或 $txt->fillcolor('#RRGGBB')
来设置 fillcolor 命令后面写入的任何文本的颜色。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',
);
显然,将十六进制颜色更改为您想要的任何颜色。
$txt->fillcolor('...')
对我来说完美地运行了。 - chrispitude