| PDF-API2 documentation | Contained in the PDF-API2 distribution. |
PDF::API2::Resource::XObject::Form
Returns a form-resource object. base class for all types of form-xobjects.
Returns a form resource object. This method is different from 'new' that it needs an PDF::API2-object rather than a Text::PDF::File-object.
Adds a resource to the form.
Example:
$res->resource('Font',$fontkey,$fontobj);
$res->resource('XObject',$imagekey,$imageobj);
$res->resource('Shading',$shadekey,$shadeobj);
$res->resource('ColorSpace',$spacekey,$speceobj);
Note: You only have to add the required resources, if they are NOT handled by the *font*, *image*, *shade* or *space* methods.
alfred reibenschuh
| PDF-API2 documentation | Contained in the PDF-API2 distribution. |
package PDF::API2::Resource::XObject::Form; our $VERSION = '2.019'; use base 'PDF::API2::Resource::XObject'; use PDF::API2::Util; use PDF::API2::Basic::PDF::Utils; no warnings qw[ deprecated recursion uninitialized ];
sub new { my ($class,$pdf) = @_; my $self; $class = ref $class if ref $class; $self=$class->SUPER::new($pdf,pdfkey()); $pdf->new_obj($self) unless($self->is_obj($pdf)); $self->subtype('Form'); $self->{FormType}=PDFNum(1); $self->{' apipdf'}=$pdf; return($self); }
sub new_api { my ($class,$api,@opts)=@_; my $obj=$class->new($api->{pdf},@opts); $obj->{' api'}=$api; return($obj); }
sub bbox { my $self = shift @_; my @b; if(@b=@_){ $self->{BBox}=PDFArray(map { PDFNum($_) } @b); } @b=$self->{BBox}->elementsof; return(map { $_->val } @b); }
sub resource { my ($self, $type, $key, $obj, $force) = @_; # we are a self-contained content stream. $self->{Resources}||=PDFDict(); my $dict=$self->{Resources}; $dict->realise if(ref($dict)=~/Objind$/); $dict->{$type}||= PDFDict(); $dict->{$type}->realise if(ref($dict->{$type})=~/Objind$/); unless (defined $obj) { return($dict->{$type}->{$key} || undef); } else { if($force) { $dict->{$type}->{$key}=$obj; } else { $dict->{$type}->{$key}||= $obj; } return($dict); } } sub outobjdeep { my ($self, @opts) = @_; foreach my $k (qw/ api apipdf /) { $self->{" $k"}=undef; delete($self->{" $k"}); } $self->SUPER::outobjdeep(@opts); } 1; __END__