package PDF::API2::Resource::XObject; our $VERSION = '2.019'; use base 'PDF::API2::Resource'; use PDF::API2::Util; use PDF::API2::Basic::PDF::Utils; no warnings qw[ deprecated recursion uninitialized ]; =head1 NAME PDF::API2::Resource::XObject =head1 METHODS =over =item $res = PDF::API2::Resource::XObject->new $pdf, $name Returns a xobject-resource object. =cut sub new { my ($class,$pdf,$name) = @_; my $self; $class = ref $class if ref $class; $self=$class->SUPER::new($pdf,$name); $pdf->new_obj($self) unless($self->is_obj($pdf)); $self->{Type}=PDFName('XObject'); $self->{' apipdf'}=$pdf; return($self); } =item $res = PDF::API2::Resource::XObject->new_api $api, $name Returns a xobject resource object. This method is different from 'new' that it needs an PDF::API2-object rather than a Text::PDF::File-object. =cut sub new_api { my ($class,$api,@opts)=@_; my $obj=$class->new($api->{pdf},@opts); $obj->{' api'}=$api; return($obj); } =item $name = $res->subtype $typename Returns or sets the Subtype of the xobject resource. =cut sub subtype { my $self=shift @_; if(scalar @_ >0 && defined($_[0])) { $self->{Subtype}=PDFName($_[0]); } return($self->{Subtype}->val); } sub outobjdeep { my ($self, $fh, $pdf, %opts) = @_; return $self->SUPER::outobjdeep($fh, $pdf) if defined $opts{'passthru'}; foreach my $k (qw/ api apipdf /) { $self->{" $k"}=undef; delete($self->{" $k"}); } $self->SUPER::outobjdeep($fh, $pdf, %opts); } 1; __END__ =back =head1 AUTHOR Alfred Reibenschuh =cut