Je suis en train d'écrire un programme Perl/Tk pour l'édition de factures.
Je saisi les informations dans un formulaire et génère la facture avec
PDF::API2;
Mon problème est qu'entre la récupération des informations (bonne si je fais
un print du string) et la facture PDF générée, les caractères accentués sont
transformés.
"Max Derouen" wrote in message <4880627d$0$31879$:
Une idée ??
Fais un exemple complet minimal.
Max Derouen
OK, tu as raison. En fait, je passe par un fichier XML intermédiaire... Voici un code simplifié :
#!/usr/bin/perl #Test PDF use PDF::API2; use XML::Simple; use constant mm => 25.4 / 72; # Récupère le fond de page généré en PDF par Corel Draw my $fond_de_page="facture2.pdf"; my $fichier_pdf="test2.pdf"; my $pdf = PDF::API2->open($fond_de_page); my $f1=$pdf->corefont('Courier',-encode => "latin1"); my $page=$pdf->openpage(0); $page->add_font($f1);
Voici le fichier XML en entrée : <?xml version='1.0' encoding='ISO-8859-1'?> <FACTURE> <FACTURE_NO>3</FACTURE_NO> <SOCIETE>XXXXXX</SOCIETE> <ADRESSE>XXXXXX</ADRESSE> <DATE>18 Juillet 2008</DATE> <LIGNE DESCRIPTION="Ligne de présentation." QUANTITE="1" PRIX_HT="400" ></LIGNE> <TOTAL_HT>XXXX</TOTAL_HT> <TVA>XXX</TVA> <TOTAL_TTC>XXX</TOTAL_TTC> </FACTURE>
"Nicolas George" <nicolas$ a écrit dans le message de news: 488062a0$0$24430$
"Max Derouen" wrote in message <4880627d$0$31879$:
Une idée ??
Fais un exemple complet minimal.
OK, tu as raison.
En fait, je passe par un fichier XML intermédiaire...
Voici un code simplifié :
#!/usr/bin/perl
#Test PDF
use PDF::API2;
use XML::Simple;
use constant mm => 25.4 / 72;
# Récupère le fond de page généré en PDF par Corel Draw
my $fond_de_page="facture2.pdf";
my $fichier_pdf="test2.pdf";
my $pdf = PDF::API2->open($fond_de_page);
my $f1=$pdf->corefont('Courier',-encode => "latin1");
my $page=$pdf->openpage(0);
$page->add_font($f1);
OK, tu as raison. En fait, je passe par un fichier XML intermédiaire... Voici un code simplifié :
#!/usr/bin/perl #Test PDF use PDF::API2; use XML::Simple; use constant mm => 25.4 / 72; # Récupère le fond de page généré en PDF par Corel Draw my $fond_de_page="facture2.pdf"; my $fichier_pdf="test2.pdf"; my $pdf = PDF::API2->open($fond_de_page); my $f1=$pdf->corefont('Courier',-encode => "latin1"); my $page=$pdf->openpage(0); $page->add_font($f1);
En fait, je passe par un fichier XML intermédiaire... Voici un code simplifié :
Il aurait pu encore être simplifié, mais ce n'est pas trop grave.
Chez moi (Debian Lenny à jour) ça marche parfaitement.
"Nicolas George" <nicolas$ a écrit dans le message de news: 488062a0$0$24430$
Le top-posting <URL: http://fr.wikipedia.org/wiki/TOFU_(Usenet_et_Internet) > est désapprouvé ici.
Max Derouen
Merci pour ton aide. Grâce à ta réponse, (tu es sous Linux) j'ai pensé que c'était peut-être lié à Windows et à Active PERL. En fait, j'ai rajouté une fonction encode à tous les strings que j'envoie au PDF et ça marche..
Y'a un truc que je ne vois pas mais c'est bon comme ça. Merci encore Max
"Nicolas George" <nicolas$ a écrit dans le message de news: 48807155$0$13861$
"Max Derouen" wrote in message <48806d1c$0$3720$:
En fait, je passe par un fichier XML intermédiaire... Voici un code simplifié :
Il aurait pu encore être simplifié, mais ce n'est pas trop grave.
Chez moi (Debian Lenny à jour) ça marche parfaitement.
"Nicolas George" <nicolas$ a écrit dans le message de news: 488062a0$0$24430$
Le top-posting <URL: http://fr.wikipedia.org/wiki/TOFU_(Usenet_et_Internet) > est désapprouvé ici.
Merci pour ton aide.
Grâce à ta réponse, (tu es sous Linux) j'ai pensé que c'était peut-être lié
à Windows et à Active PERL.
En fait, j'ai rajouté une fonction encode à tous les strings que j'envoie au
PDF et ça marche..
Merci pour ton aide. Grâce à ta réponse, (tu es sous Linux) j'ai pensé que c'était peut-être lié à Windows et à Active PERL. En fait, j'ai rajouté une fonction encode à tous les strings que j'envoie au PDF et ça marche..