From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#=======================================================================
# ____ ____ _____ _ ____ ___ ____
# | _ \| _ \| ___| _ _ / \ | _ \_ _| |___ \
# | |_) | | | | |_ (_) (_) / _ \ | |_) | | __) |
# | __/| |_| | _| _ _ / ___ \| __/| | / __/
# |_| |____/|_| (_) (_) /_/ \_\_| |___| |_____|
#
# A Perl Module Chain to faciliate the Creation and Modification
# of High-Quality "Portable Document Format (PDF)" Files.
#
#=======================================================================
#
# THIS IS A REUSED PERL MODULE, FOR PROPER LICENCING TERMS SEE BELOW:
#
#
# Copyright Martin Hosken <Martin_Hosken@sil.org>
#
# No warranty or expression of effectiveness, least of all regarding
# anyone's safety, is implied in this software or documentation.
#
# This specific module is licensed under the Perl Artistic License.
#
#
# $Id: Utils.pm,v 2.0 2005/11/16 02:16:00 areibens Exp $
#
#=======================================================================
=head1 NAME
PDF::API3::Compat::API2::Basic::PDF::Utils - Utility functions for PDF library
=head1 DESCRIPTION
A set of utility functions to save the fingers of the PDF library users!
=head1 FUNCTIONS
=cut
use strict;
use vars qw(@EXPORT @ISA);
@ISA = qw(Exporter);
@EXPORT = qw(PDFBool PDFArray PDFDict PDFLiteral PDFName PDFNull PDFNum PDFStr PDFStrHex PDFUtf
asPDFBool asPDFName asPDFNum asPDFStr);
no warnings qw[ deprecated recursion uninitialized ];
=head2 PDFBool
Creates a Bool via PDF::API3::Compat::API2::Basic::PDF::Bool->new
=cut
sub PDFBool
{ PDF::API3::Compat::API2::Basic::PDF::Bool->new(@_); }
=head2 PDFArray
Creates an array via PDF::API3::Compat::API2::Basic::PDF::Array->new
=cut
sub PDFArray
{ PDF::API3::Compat::API2::Basic::PDF::Array->new(@_); }
=head2 PDFDict
Creates a dict via PDF::API3::Compat::API2::Basic::PDF::Dict->new
=cut
sub PDFDict
{ PDF::API3::Compat::API2::Basic::PDF::Dict->new(@_); }
=head2 PDFName
Creates a name via PDF::API3::Compat::API2::Basic::PDF::Name->new
=cut
sub PDFName
{ PDF::API3::Compat::API2::Basic::PDF::Name->new(@_); }
=head2 PDFNull
Creates a null via PDF::API3::Compat::API2::Basic::PDF::Null->new
=cut
sub PDFNull
{ PDF::API3::Compat::API2::Basic::PDF::Null->new(@_); }
=head2 PDFNum
Creates a number via PDF::API3::Compat::API2::Basic::PDF::Number->new
=cut
sub PDFNum
{ PDF::API3::Compat::API2::Basic::PDF::Number->new(@_); }
=head2 PDFStr
Creates a string via PDF::API3::Compat::API2::Basic::PDF::String->new
=cut
sub PDFStr
{ PDF::API3::Compat::API2::Basic::PDF::String->new(@_); }
=head2 PDFStrHex
Creates a hex-string via PDF::API3::Compat::API2::Basic::PDF::String->new
=cut
sub PDFStrHex
{ my $x=PDF::API3::Compat::API2::Basic::PDF::String->new(@_); $x->{' ishex'}=1; return($x); }
=head2 PDFUtf
Creates a utf8-string via PDF::API3::Compat::API2::Basic::PDF::String->new
=cut
sub PDFUtf
{ my $x=PDF::API3::Compat::API2::Basic::PDF::String->new(@_); $x->{' isutf'}=1; return($x); }
=head2 PDFLiteral
Creates a pdf-literal via PDF::API3::Compat::API2::Basic::PDF::Literal->new
=cut
sub PDFLiteral
{ PDF::API3::Compat::API2::Basic::PDF::Literal->new(@_); }
=head2 asPDFBool
Returns a literal value in PDF output form
=cut
sub asPDFBool
{ PDF::API3::Compat::API2::Basic::PDF::Bool->new(@_)->as_pdf; }
=head2 asPDFStr
Returns a string in PDF output form (including () or <>)
=cut
sub asPDFStr
{ PDF::API3::Compat::API2::Basic::PDF::String->new(@_)->as_pdf; }
=head2 asPDFName
Returns a Name in PDF Output form (including /)
=cut
sub asPDFName
{ PDF::API3::Compat::API2::Basic::PDF::Name->new(@_)->as_pdf (@_); }
=head2 asPDFNum
Returns a number in PDF output form
=cut
sub asPDFNum
{ $_[0]; } # no translation needed
=head2 unpacku($str)
Returns a list of unicode values for the given UTF8 string
=cut
sub unpacku
{
my ($str) = @_;
my (@res);
return (unpack("U*", $str));
}
1;