PDF::API2 les caractères accentués et l’euro € ( sans uft8)

utiliser le module perl PDF::API2 avec les caractère accentués ou les € ça marche pas sans le support UTF-8

j’ai écrit une petite fonction qui corrige le pb « HeX » en convertissant les caractères accentués en leur équivalent en hexadecimal.

#!/usr/bin/perl

use PDF::API2;                                         # module creation pdf

my $file ="fichierpdf.pdf";
$pdf = PDF::API2->new;

#Définition des fonts disponibles hors taille
$ft     = $pdf->corefont('Verdana');                      

#Création de la page A4
        my $page = $pdf->page;
        $page->mediabox('A4');
        $gfx = $page->gfx;

$txt=HeX ('ééèèèèèêêêêêàààçççç&&&&');
$gfx->textlabel(40,730,$txt);

#Sauvegarde du fichier PDF
                $pdf->saveas($file);
                $pdf->end;

#Fonction de conversion des caractères accentuées en hexadecimal pour le module PDF::API
sub HeX {
        # From http://www.kostis.net/charsets/adobeiso.htm
        # l'euro peut être codé en hex \x80 ou en .chr(128)
        my $string=shift;
        my %iso=( 'é' => '\xE9',
                  '&' => '\x26',
                  'à' => '\xE0',
                  'ç' => '\xE7',
                  'è' => '\xE8',
                  'ê' => '\xEA',
                  '€' => '\x80',

        );

        foreach my $k (keys(%iso)) {
             $pattern =  "s/$k/$iso{$k}/g";
             eval "\$string =~ $pattern";
        }
        return $string;
}

Voila, il manque bien sur plein de caractère mais c’est facile a ajouter en fonction de ses besoins , il faut aller sur http://www.kostis.net/charsets/adobeiso.htm, colonne HEX et mettre \x…. dans l’Array %iso.

Si vous activez l’utf8 avec use uft8; il n’y a plus besoin de tout cela – mais dans certain cas cela n’est pas possible.

Attention votre fichier txt avec le code source doit être crée en uft8 (voir les options de vim )  – pour moi l’utilisation de vieux codes sources nécessite une conversion ou un copie/collé dans un doc tout neuf.

Connexion Crédit Mutuel en Perl

Depuis un certain temps je cherche un façon de récupérer automatiquement le relevé de compte de la société pour l’intégrer dans une base de données mysql.

En cherchant sur le CPAN j’ai trouvé un module pas mal , mais incomplet.

http://search.cpan.org/~cbouvi/Finance-Bank-CreditMut-0.12/lib/Finance/Bank/CreditMut.pm#AUTHOR

un exemple de code est fournie il marche bien mais il ne permet pas de récupérer tout et de le mettre dans une base mysql.

D’autre part il ne permet pas de récupérer la date de valeur

 

#!/usr/bin/perl

use Finance::Bank::CreditMut;
my @accounts = Finance::Bank::CreditMut->check_balance( username => « $username », # Be sure to put the numbers password => « $password », # between quote. );

foreach my $account ( @accounts ) {

local $\ = « \n »;
print  » Name « , $account->name;
print  » Account_no « , $account->account_no; print  » Statement\n »;
foreach my $statement ( $account->statements ){ print $statement->as_string; }

}

 

Clefs SSH: régnérer de nouvelles clefs de votre serveur

Normalement les clef ssh de votre serveur sont générées a l’installation

il peut être souhaitable dans certain cas de les regénérer

Pour cela il faut faire une copie de backup de votre répertoire /etc/ssh
Voici les commandes:

cp -Rv /etc/ssh /etc/ssh_bk

Protocole SSH1

ssh-keygen -q -f /etc/ssh/ssh_host_key -N  » -t rsa1

Protocole SSH2

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N  » -t rsa

ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N  » -t dsa