App-Music-PlayTab
view release on metacpan or search on metacpan
lib/App/Music/PlayTab/Output/PDF.pm view on Meta::CPAN
#! perl
# Author : Johan Vromans
# Created On : Tue Apr 15 11:02:34 2014
# Last Modified By: Johan Vromans
# Last Modified On: Fri Apr 7 17:28:35 2017
# Update Count : 698
# Status : Unknown, Use with caution!
use utf8;
package App::Music::PlayTab::Output::PDF;
use strict;
use warnings;
use App::Packager;
our $VERSION = "0.002";
# Globals.
my $ps =
{ papersize => [ 595, 840 ], # A4, portrait
marginleft => 50,
margintop => 40,
marginbottom => 50,
marginright => 45, # only used for page number!
lineheight => 15,
fonts => {
title => { name => 'Helvetica',
file => 'ArialMT.ttf',
size => 16 },
subtitle => { name => 'Helvetica',
file => 'ArialMT.ttf',
size => 12 },
chord_n => { name => 'Helvetica',
file => 'ArialMT.ttf',
size => 17 },
chord_cn => { name => 'Myriad-CnSemibold',
file => 'Myriad-CnSemibold.ttf',
size => 20 },
barno => { file => 'Helvetica',
file => 'ArialMT.ttf',
size => 8 },
msyms => { file => 'MSyms.ttf',
size => 15 },
},
};
my $f_chord;
my $f_msyms;
# Actual media box.
my @mediabox;
# Low level PDF api.
my $pr;
# Initial delta values for width, height and margin.
my @delta_values;
# Position control.
my $xd = 0; # step (in bar lines)
my $yd = 0; # vertical space between lines
my $md = 0; # additional left margin
my $x; # actual x pos
my $y; # actual y pos
my $barno;
my $std_gridscale = 8;
my $condensed = 0;
################ API Functions ################
# Object creation.
sub new {
my ( $pkg, $args ) = @_;
my $self = bless { }, $pkg;
$self;
}
# Init the backend.
sub setup {
my ( $self, $args, $title ) = @_;
@delta_values = ( 0, 0, 0 );
$ps->{fonts}->{chord} = $ps->{fonts}->{chord_n};
@mediabox = ( 0, 0, @{ $ps->{papersize} } );
if ( $args->{opus}->{globalsettings} ) {
$self->globalsettings( $args->{opus}->{globalsettings} );
}
my $options = { pagedefs_default => { pdf => $ps } };
$self->pagesettings($options);
$ps = $self->{ps};
# Add font dirs.
for my $fontdir ( $self->{fontdir}, ::findlib("fonts"), $ENV{FONTDIR} ) {
next unless $fontdir;
( run in 0.600 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )