r9408 - in /branches/upstream/libpdf-api2-perl/current: ./ examples/ lib/PDF/API2/ lib/PDF/API2/Resource/ lib/PDF/API2/Resource/CIDFont/
dmn at users.alioth.debian.org
dmn at users.alioth.debian.org
Fri Nov 16 14:26:41 UTC 2007
Author: dmn
Date: Fri Nov 16 14:26:40 2007
New Revision: 9408
URL: http://svn.debian.org/wsvn/?sc=1&rev=9408
Log:
[svn-upgrade] Integrating new upstream version, libpdf-api2-perl (0.66)
Added:
branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8 (with props)
Modified:
branches/upstream/libpdf-api2-perl/current/MANIFEST
branches/upstream/libpdf-api2-perl/current/META.yml
branches/upstream/libpdf-api2-perl/current/examples/020_textunderline
branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Annotation.pm
branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Content.pm
branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/BaseFont.pm
branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/CIDFont/TrueType.pm
branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Version.pm
Modified: branches/upstream/libpdf-api2-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/MANIFEST?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/MANIFEST (original)
+++ branches/upstream/libpdf-api2-perl/current/MANIFEST Fri Nov 16 14:26:40 2007
@@ -210,6 +210,7 @@
examples/020_textunderline
examples/021_synfonts
examples/022_truefonts
+examples/022_truefonts_diacrits_utf8
examples/023_cjkfonts
examples/024_bmpfonts
examples/025_unifonts
Modified: branches/upstream/libpdf-api2-perl/current/META.yml
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/META.yml?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/META.yml (original)
+++ branches/upstream/libpdf-api2-perl/current/META.yml Fri Nov 16 14:26:40 2007
@@ -1,7 +1,7 @@
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: PDF-API2
-version: 0.65
+version: 0.66
version_from: lib/PDF/API2/Version.pm
installdirs: site
requires:
Modified: branches/upstream/libpdf-api2-perl/current/examples/020_textunderline
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/examples/020_textunderline?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/examples/020_textunderline (original)
+++ branches/upstream/libpdf-api2-perl/current/examples/020_textunderline Fri Nov 16 14:26:40 2007
@@ -31,7 +31,7 @@
# OF THE USE OF THIS FILE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $Id: 020_textunderline,v 2.0 2005/11/16 02:16:00 areibens Exp $
+# $Id: 020_textunderline,v 2.1 2007/10/23 07:46:35 areibens Exp $
#
#=======================================================================
Added: branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8?rev=9408&op=file
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8 (added)
+++ branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8 Fri Nov 16 14:26:40 2007
@@ -1,0 +1,180 @@
+#!/usr/bin/perl
+#=======================================================================
+# ____ ____ _____ _ ____ ___ ____
+# | _ \| _ \| ___| _ _ / \ | _ \_ _| |___ \
+# | |_) | | | | |_ (_) (_) / _ \ | |_) | | __) |
+# | __/| |_| | _| _ _ / ___ \| __/| | / __/
+# |_| |____/|_| (_) (_) /_/ \_\_| |___| |_____|
+#
+# A Perl Module Chain to faciliate the Creation and Modification
+# of High-Quality "Portable Document Format (PDF)" Files.
+#
+# Copyright 1999-2004 Alfred Reibenschuh <areibens at cpan.org>.
+#
+#=======================================================================
+#
+# PERMISSION TO USE, COPY, MODIFY, AND DISTRIBUTE THIS FILE FOR
+# ANY PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT
+# THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL
+# COPIES.
+#
+# THIS FILE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS FILE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $Id: 022_truefonts_diacrits_utf8,v 1.1 2007/10/23 07:48:08 areibens Exp $
+#
+#=======================================================================
+use lib qw{ ../lib };
+use File::Basename;
+use PDF::API2;
+use PDF::API2::Util;
+use Unicode::UCD 'charinfo';
+use Getopt::Long;
+use utf8;
+my $sx=33;
+my $sy=45;
+my $fx=20;
+my $LoremIpsum=qq|Sed ut perspici\x{0361}atis.|;
+my $encoding='latin1';
+
+GetOptions(
+ "encode|e=s" => \$encoding,
+);
+
+foreach $fn (@ARGV) {
+
+ $pdf=PDF::API2->new(-file => basename($0).'.'.basename($fn).".pdf");
+
+ $f1=$pdf->corefont('Helvetica', -encode => 'latin1');
+ $f2=$pdf->corefont('Helvetica-Bold', -encode => 'latin1');
+
+ print STDERR "\n$fn\n";
+
+ my $font=$pdf->ttfont($fn, -encode => $encoding);
+ $font->data->{nosubset}=1;
+ if(1)
+ {
+ my $page = $pdf->page;
+ $page->mediabox(595,842);
+
+ my $gfx=$page->gfx;
+
+ my $txt=$page->text;
+ $txt->font($font,$fx);
+
+ my $txt2=$page->text;
+ #delete $txt->{Filter};
+ #delete $txt2->{Filter};
+
+ $txt2->textlabel(50,800,$f1,20,"font='".$font->fontname."'");
+ $txt2->textlabel(50,780,$f1,20,"encoding='$encoding'");
+
+ $txt2->font($f1,5);
+ $txt2->hspace(80);
+
+ my $u=$font->underlineposition*$fx/1000;
+
+ foreach $x (0..15)
+ {
+ print STDERR ".";
+ foreach $y (0..15)
+ {
+ $txt->translate(50+($sx*$x),50+($sy*$y));
+ $txt->text(chr($y*16+$x));
+
+ my $wx=$font->width(chr($y*16+$x))*$fx;
+
+ $gfx->strokecolor('lightblue');
+ $gfx->move(50+($sx*$x),50+($sy*$y)+$fx);
+ $gfx->line(50+($sx*$x),50+($sy*$y)+$u);
+ $gfx->line(50+($sx*$x)+$wx,50+($sy*$y)+$u);
+ $gfx->line(50+($sx*$x)+$wx,50+($sy*$y)+$fx);
+ $gfx->close;
+ $gfx->stroke;
+
+ $gfx->strokecolor('gray');
+ $gfx->move(50+($sx*$x),50+($sy*$y));
+ $gfx->line(50+($sx*$x)+$wx,50+($sy*$y));
+ $gfx->stroke;
+
+ $txt2->translate(50+($sx*$x)-2,50+($sy*$y)-6);
+ $txt2->text_right($y*16+$x);
+ $txt2->translate(50+($sx*$x)-2,50+($sy*$y)-11);
+ $txt2->text_right(sprintf('U=0x%04X',$font->uniByEnc($y*16+$x)));
+ $txt2->translate(50+($sx*$x)-2,50+($sy*$y)-16);
+ $txt2->text_right($font->glyphByEnc($y*16+$x));
+ $txt2->translate(50+($sx*$x)-2,50+($sy*$y)-21);
+ $txt2->text_right(sprintf('wx=%i',$font->wxByEnc($y*16+$x)));
+ }
+ }
+ }
+
+ my $text=$LoremIpsum;
+
+ $page = $pdf->page;
+ $page->mediabox(595,842);
+ $gfx=$page->gfx;
+ $gfx->transform(-translate => [50, 800]);
+ $gfx->textstart;
+ $gfx->fillcolor('black');
+ $gfx->font($font,18);
+ $gfx->lead(18*1.25);
+ my $toprint;
+ while($text ne '')
+ {
+ ($toprint,$text)=$gfx->_text_fill_line($text,500,0);
+ $gfx->text($toprint);
+ $gfx->nl;
+ }
+ $gfx->textend;
+
+ $pdf->save;
+ $pdf->end;
+}
+
+exit;
+
+__END__
+
+=head1 HISTORY
+
+ $Log: 022_truefonts_diacrits_utf8,v $
+ Revision 1.1 2007/10/23 07:48:08 areibens
+ genesis
+
+ Revision 2.2 2007/04/07 10:26:23 areibens
+ added lorem ipsum page
+
+ Revision 2.1 2006/06/19 19:20:13 areibens
+ added details
+
+ Revision 2.0 2005/11/16 02:16:00 areibens
+ revision workaround for SF cvs import not to screw up CPAN
+
+ Revision 1.2 2005/11/16 01:27:48 areibens
+ genesis2
+
+ Revision 1.1 2005/11/16 01:19:24 areibens
+ genesis
+
+ Revision 1.3 2005/09/12 16:55:05 fredo
+ various updates
+
+ Revision 1.2 2004/12/31 02:58:49 fredo
+ no message
+
+ Revision 1.1 2004/04/06 23:04:06 fredo
+ genesis
+
+
+=cut
Propchange: branches/upstream/libpdf-api2-perl/current/examples/022_truefonts_diacrits_utf8
------------------------------------------------------------------------------
svn:executable = *
Modified: branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Annotation.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Annotation.pm?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Annotation.pm (original)
+++ branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Annotation.pm Fri Nov 16 14:26:40 2007
@@ -27,7 +27,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
-# $Id: Annotation.pm,v 2.0 2005/11/16 02:16:00 areibens Exp $
+# $Id: Annotation.pm,v 2.1 2007/10/02 19:59:37 areibens Exp $
#
#=======================================================================
package PDF::API2::Annotation;
@@ -44,7 +44,7 @@
@ISA = qw(PDF::API2::Basic::PDF::Dict);
- ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.0 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2005/11/16 02:16:00 $
+ ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.1 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/10/02 19:59:37 $
use utf8;
use Encode qw(:all);
@@ -431,6 +431,9 @@
=head1 HISTORY
$Log: Annotation.pm,v $
+ Revision 2.1 2007/10/02 19:59:37 areibens
+ added movie annotation
+
Revision 2.0 2005/11/16 02:16:00 areibens
revision workaround for SF cvs import not to screw up CPAN
Modified: branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Content.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Content.pm?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Content.pm (original)
+++ branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Content.pm Fri Nov 16 14:26:40 2007
@@ -27,7 +27,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
-# $Id: Content.pm,v 2.8 2007/08/07 20:23:37 areibens Exp $
+# $Id: Content.pm,v 2.9 2007/10/10 06:18:15 areibens Exp $
#
#=======================================================================
@@ -47,7 +47,7 @@
@ISA = qw(PDF::API2::Basic::PDF::Dict);
- ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.8 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/08/07 20:23:37 $
+ ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.9 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/10/10 06:18:15 $
}
@@ -1461,7 +1461,7 @@
sub _font
{
my ($font,$size)=@_;
- if($font->isvirtual)
+ if($font->isvirtual == 1)
{
return('/'.$font->fontlist->[0]->name.' '.float($size).' Tf');
}
@@ -1485,7 +1485,7 @@
$self->{' fontsize'}=$size;
$self->{' fontset'}=0;
- if($font->isvirtual)
+ if($font->isvirtual == 1)
{
foreach my $f (@{$font->fontlist})
{
Modified: branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/BaseFont.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/BaseFont.pm?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/BaseFont.pm (original)
+++ branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/BaseFont.pm Fri Nov 16 14:26:40 2007
@@ -27,7 +27,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
-# $Id: BaseFont.pm,v 2.7 2007/04/07 10:25:46 areibens Exp $
+# $Id: BaseFont.pm,v 2.9 2007/10/16 20:08:19 areibens Exp $
#
#=======================================================================
package PDF::API2::Resource::BaseFont;
@@ -46,7 +46,7 @@
@ISA = qw( PDF::API2::Resource );
- ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.7 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/04/07 10:25:46 $
+ ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.9 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/10/16 20:08:19 $
}
no warnings qw[ deprecated recursion uninitialized ];
@@ -548,17 +548,34 @@
sub wxByGlyph
{
my $self=shift;
- my $val=shift;
+ my $val=shift;
+ my $ret=undef;
if(ref($self->data->{wx}) eq 'HASH')
{
- return ( $self->data->{wx}->{$val} || $self->missingwidth || 300 );
+ $ret=$self->data->{wx}->{$val};
+ if(!defined($ret))
+ {
+ $ret=$self->missingwidth;
+ }
+ if(!defined($ret))
+ {
+ $ret=300;
+ }
}
else
{
my $cid=$self->cidByUni(uniByName($val));
- return ( $self->data->{wx}->[$cid] || $self->missingwidth || 300 );
- # return ( $self->data->{wx}->[$val] || $self->missingwidth || 300 );
- }
+ $ret=$self->data->{wx}->[$cid];
+ if(!defined($ret))
+ {
+ $ret=$self->missingwidth;
+ }
+ if(!defined($ret))
+ {
+ $ret=300;
+ }
+ }
+ return $ret;
}
=item $width = $font->wxByUni $uni
@@ -567,7 +584,22 @@
=cut
-sub wxByUni { return ( $_[0]->data->{wx}->{$_[0]->glyphByUni($_[1])} || $_[0]->missingwidth || 300 ); }
+sub wxByUni
+{
+ my $self=shift;
+ my $val=shift;
+ my $gid=$self->glyphByUni($val);
+ my $ret=$self->data->{wx}->{$gid};
+ if(!defined($ret))
+ {
+ $ret=$self->missingwidth;
+ }
+ if(!defined($ret))
+ {
+ $ret=300;
+ }
+ return $ret;
+}
=item $width = $font->wxByEnc $char
@@ -575,11 +607,20 @@
=cut
-sub wxByEnc {
+sub wxByEnc
+{
my ($self,$e)=@_;
my $g=$self->glyphByEnc($e);
- my $w=$self->data->{wx}->{$g} || $self->missingwidth || 300;
- return ( $w );
+ my $ret=$self->data->{wx}->{$g};
+ if(!defined($ret))
+ {
+ $ret=$self->missingwidth;
+ }
+ if(!defined($ret))
+ {
+ $ret=300;
+ }
+ return $ret;
}
=item $width = $font->wxByMap $char
@@ -588,7 +629,21 @@
=cut
-sub wxByMap { return ( $_[0]->data->{wx}->{$_[0]->glyphByMap($_[1])} || $_[0]->missingwidth || 300 ); }
+sub wxByMap
+{
+ my ($self,$m)=@_;
+ my $g=$self->glyphByMap($m);
+ my $ret=$self->data->{wx}->{$g};
+ if(!defined($ret))
+ {
+ $ret=$self->missingwidth;
+ }
+ if(!defined($ret))
+ {
+ $ret=300;
+ }
+ return $ret;
+}
=item $wd = $font->width $text
@@ -761,7 +816,7 @@
}
}
-sub isvirtual { return(undef); }
+sub isvirtual { return(0); }
1;
@@ -776,6 +831,12 @@
=head1 HISTORY
$Log: BaseFont.pm,v $
+ Revision 2.9 2007/10/16 20:08:19 areibens
+ changed undef safeguards for wx* methods
+
+ Revision 2.8 2007/10/10 06:18:15 areibens
+ fixed noisy undef handling of isvirtual
+
Revision 2.7 2007/04/07 10:25:46 areibens
fixed fix for wxByGlyph not honoring cidfont width arrays
Modified: branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/CIDFont/TrueType.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/CIDFont/TrueType.pm?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/CIDFont/TrueType.pm (original)
+++ branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Resource/CIDFont/TrueType.pm Fri Nov 16 14:26:40 2007
@@ -27,7 +27,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
-# $Id: TrueType.pm,v 2.1 2007/03/17 20:38:51 areibens Exp $
+# $Id: TrueType.pm,v 2.2 2007/10/23 07:45:49 areibens Exp $
#
#=======================================================================
package PDF::API2::Resource::CIDFont::TrueType;
@@ -50,7 +50,7 @@
@ISA = qw( PDF::API2::Resource::CIDFont );
- ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.1 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/03/17 20:38:51 $
+ ( $VERSION ) = sprintf '%i.%03i', split(/\./,('$Revision: 2.2 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2007/10/23 07:45:49 $
}
no warnings qw[ deprecated recursion uninitialized ];
@@ -199,12 +199,14 @@
$notdefbefore=0;
$ml=PDFArray();
$wx->add_elements(PDFNum($w),$ml);
- $ml->add_elements(PDFNum($self->data->{wx}->[$w]));
+ # $ml->add_elements(PDFNum($self->data->{wx}->[$w]));
+ $ml->add_elements(PDFNum($self->wxByCId($w)));
}
elsif($self->subvec($w) && $notdefbefore==0)
{
$notdefbefore=0;
- $ml->add_elements(PDFNum($self->data->{wx}->[$w]));
+ # $ml->add_elements(PDFNum($self->data->{wx}->[$w]));
+ $ml->add_elements(PDFNum($self->wxByCId($w)));
}
else
{
@@ -239,6 +241,9 @@
=head1 HISTORY
$Log: TrueType.pm,v $
+ Revision 2.2 2007/10/23 07:45:49 areibens
+ fixed width encoding for wrong advance codes
+
Revision 2.1 2007/03/17 20:38:51 areibens
replaced IOString dep. with scalar IO.
Modified: branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Version.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Version.pm?rev=9408&op=diff
==============================================================================
--- branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Version.pm (original)
+++ branches/upstream/libpdf-api2-perl/current/lib/PDF/API2/Version.pm Fri Nov 16 14:26:40 2007
@@ -9,14 +9,14 @@
package PDF::API2::Version;
BEGIN {
use vars qw( $VERSION %CVersion );
- $VERSION = '0.65';
+ $VERSION = '0.66';
%CVersion = (
- 'vFredo' => 'PDF::API2 0.65',
- 'vHex' => '0x00041000',
- 'vLong' => '0.65',
- 'vPerl' => '0.65',
- 'vShort' => '0.65',
- 'vWeb' => 'PDF::API2/0.65',
+ 'vFredo' => 'PDF::API2 0.66',
+ 'vHex' => '0x00042000',
+ 'vLong' => '0.66',
+ 'vPerl' => '0.66',
+ 'vShort' => '0.66',
+ 'vWeb' => 'PDF::API2/0.66',
);
}
1;
@@ -32,12 +32,12 @@
=head1 VERSION
- vFredo: PDF::API2 0.65
- vHex: 0x00041000
- vLong: 0.65
- vPerl: 0.65
- vShort: 0.65
- vWeb: PDF::API2/0.65
+ vFredo: PDF::API2 0.66
+ vHex: 0x00042000
+ vLong: 0.66
+ vPerl: 0.66
+ vShort: 0.66
+ vWeb: PDF::API2/0.66
=cut
More information about the Pkg-perl-cvs-commits
mailing list