2016-07-04 90 views
0

如何通过Perl模块创建PDF时设置font-color属性PDF::Create?以下是我正在使用的代码片段。我如何在这里设置字体颜色属性?使用perl的PDF中的字体颜色属性PDF ::创建

use warnings; 
use strict; 

use PDF::Create; 
use PDF::Image::JPEG; 

print "PDF with Image\n"; 

#Create 
my $pdf = new PDF::Create(
    'filename' => "./image_embed_test.pdf", 
    'Version' => 1.2, 
    'PageMode' => 'UseNone', 
    'Author' => 'Madhan', 
    'Title' => 'My PDF', 
); 

# Prepare 2 fonts 
my $f1 = $pdf->font('Subtype' => 'Type1', 
        'Encoding' => 'WinAnsiEncoding', 
        'BaseFont' => 'Helvetica'); 

my $f2 = $pdf->font('Subtype' => 'Type1', 
        'Encoding' => 'WinAnsiEncoding', 
        'BaseFont' => 'Helvetica-Bold'); 

my $f3 = $pdf->font('Subtype' => 'Type1', 
        'Encoding' => 'WinAnsiEncoding', 
        'BaseFont' => 'Helvetica-Bold'); 


my $root = $pdf->new_page('MediaBox' => [ 0, 0, 612, 792 ]); 

my @page; 
$page[1]=$root->new_page; 

my $jpg1 = $pdf->image('./logo1.jpg'); 
$page[1]->image('image' => $jpg1, 
       'xscale' => 0.5, 
       'yscale' => 0.5, 
       'xpos' => 56, 
       'ypos' => 698); 

    $page[1]->stringc($f2, 8, 484, 738, "Add line 1"); 
    $page[1]->stringc($f2, 8, 521, 718, "City"); 
    $page[1]->stringc($f2, 8, 530, 698, "Phone"); 
    $page[1]->stringc($f3, 8, 530, 698, "[email protected]"); 

$pdf->close; 

$f3为邮件id链接我需要将颜色设置为蓝色。

回答

2

您需要使用setrgbcolor方法从PDF::Create::Page

setrgbcolor($ R,$克,$ b)中
设置用于正常的文本或填充物体填充颜色。

它看起来像你需要设置,在你运行stringc操作之前,它只会设置所有后续操作的颜色。所以你把它变成蓝色,写下你的蓝色文字,并把它变回黑色(或默认)。

$page[$num]->setrgbcolor(1, 0, 0); # blue 
$page[$num]->stringc($f3, 8, 530, 698, "[email protected]"); 
$page[$num]->setrgbcolor(0, 0, 0); # black 

正下方setrgbcolorsetrgbcolorstroke,这解释了这些参数是01之间的值。

+1

我通过检查[PDF :: Create](https://metacpan.org/release/PDF-Create)中包含了哪些其他类,然后在:: Page文档中简单搜索颜色来发现此问题。 – simbabque

+0

感谢您的即时帮助 – Madhan