使用perl PDF :: Create的PDF格式颜色属性

时间:2016-07-04 14:18:04

标签: perl pdf

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

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, "myid@example.com");

$pdf->close;

在邮件ID链接的$f3中,我需要将颜色设置为蓝色。

1 个答案:

答案 0 :(得分:2)

您需要使用PDF::Create::Page中的setrgbcolor方法。

  

setrgbcolor($ r,$ g,$ b)
  设置用于普通文本或填充对象的填充颜色。

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

$page[$num]->setrgbcolor(1, 0, 0); # blue
$page[$num]->stringc($f3, 8, 530, 698, "myid@example.com");
$page[$num]->setrgbcolor(0, 0, 0); # black

setrgbcolor正下方有setrgbcolorstroke,这说明参数是01之间的值。