URL: https://linuxfr.org/forums/astucesdivers/posts/perl-modifier-un-pdf-avec-perl Title: [Perl] Modifier un PDF avec PERL Authors: Gérard Verdier Date: 2006年06月01日T09:46:12+02:00 Tags: Score: 0 Dernièrement, j'ai eu besoin de modifier un grand nombre de documents PDF, en ajoutant un en-tête et un numéro de page sur chaque page. J'ai pu réaliser cette opération rapidement en utilisant Perl et le module PDF::API2. Voici une version "light" du script Perl que j'ai utilisé : #!/usr/bin/perl use PDF::API2; my $file=shift; my $out_file=shift||"test.pdf"; my $page_cnt=shift||1; my $pdf = PDF::API2->open($file); my $f1=$pdf->corefont('Times-Roman',-encode => "latin1"); my $f2=$pdf->corefont('Times-Italic',-encode => "latin1"); for my $p (1..$pdf->pages()){ my $page=$pdf->openpage($p); $page->add_font($f1); $page->add_font($f2); my $gfx = $page->gfx; $gfx->save; $gfx->fillcolor('black'); $gfx->textstart; # Ajout du numéro de page centré en bas $gfx->font($f1,10); $gfx->translate(297.5,30); $gfx->text_center("$page_cnt"); # Ajout de l'entete en haut à droite $gfx->font($f2,10); $gfx->translate(570,812); $gfx->text_right("Texte placé en haut à droite"); $gfx->textend; $gfx->restore; $page_cnt++; } $pdf->saveas($out_file); exit; Vous pouvez aussi placer dans la boucle les instructions suivantes pour afficher en arriere plan de chaques page le mot "TOP-SECRET" en rouge et en diagonal : my $gfx2 = $page->gfx(1); $gfx2->save; $gfx2->fillcolor('red'); $gfx2->translate(297.5,420); $gfx2->rotate(30); $gfx2->font($f1,80); $gfx2->text_center("TOP SECRET"); $gfx2->textend; $gfx2->restore; ( c'est le (1) de l'appel de $page->gfx(1) qui permet la mise en arrière plan de texte) Pour finir un dernier exemple qui permet d'ajouter un logo (logo.jpg) en haut à gauche sur toutes les pages : #!/usr/bin/perl use PDF::API2; my $file = shift; my $out_file = shift||"test.pdf"; my $pdf = PDF::API2->open($file); my $nb_pages = $pdf->pages(); my $img = $pdf->image_jpeg('logo.jpg'); for my $p (1..$nb_pages){ my $page=$pdf->openpage($p); my $gfx = $page->gfx(1); $gfx->save; $gfx->image($img,40,790,0.4); # 0.4 est le facteur d'echelle $gfx->restore; } $pdf->saveas($out_file); P.S.: Si PDF::API2 n'est pas déja installé sur votre système, vous pouvez utiliser la commande : perl -MCPAN -e "install PDF::API2" pour l'installer.

AltStyle によって変換されたページ (->オリジナル) /