#!/usr/bin/perl use Time::Local; use PDF::Reuse; use PDF::Reuse::Barcode; use PDF::Create; use PDF::Create::Page; use PDF::Image::JPEG; use PDF::API2; use Image::Info qw(image_info dim); use Image::Magick; use Image::Resize; use CAM::PDF; use Net::FTP; use File::Copy; use File::Copy qw(move); chdir("/var/www/html/paletten/cgi-bin"); $indexfile = "../daten/index01.htm"; $speditionfile = "../daten/bewegung.lst"; $spedifile = "../daten/spedition.lst"; # indexfile= html mit Hauptmenü # speditionsfile=csv zur Ablage Jetztwert und Zuordnung zu Spedition/Kundenauftrag # spedifile= Datei mit allen abholenden Speditionen # Get the input read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); $Jetztwert = time(); $Jetztzeit = localtime($Jetztwert); @Zeit = split(/ +/,$Jetztzeit); @Uhrzeit = split(/:/,$Zeit[3]); # Split the name-value pairs @pairs = split(/&/, $data); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Convert the HTML encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; # Convert HTML stuff as necessary. $value =~ s/<([^>]|\n)*>//g; $FORM{$name} = $value; } $aktdatum=$Jetztwert; if ($Zeit[1] eq "Jan"){$monat='1';$dat='01';$dat2='January';$dat3='February'}; if ($Zeit[1] eq "Feb"){$monat='2';$dat='02';$dat2='February';$dat3='March'}; if ($Zeit[1] eq "Mar"){$monat='3';$dat='03';$dat2='March';$dat3='April'}; if ($Zeit[1] eq "Apr"){$monat='4';$dat='04';$dat2='April';$dat3='May'}; if ($Zeit[1] eq "May"){$monat='5';$dat='05';$dat2='May';$dat3='June'}; if ($Zeit[1] eq "Jun"){$monat='6';$dat='06';$dat2='June';$dat3='July'}; if ($Zeit[1] eq "Jul"){$monat='7';$dat='07';$dat2='July';$dat3='August'}; if ($Zeit[1] eq "Aug"){$monat='8';$dat='08';$dat2='August';$dat3='September'}; if ($Zeit[1] eq "Sep"){$monat='9';$dat='09';$dat2='September';$dat3='October'}; if ($Zeit[1] eq "Oct"){$monat='10';$dat='10';$dat2='October';$dat3='November'}; if ($Zeit[1] eq "Nov"){$monat='11';$dat='11';$dat2='November';$dat3='December'}; if ($Zeit[1] eq "Dec"){$monat='12';$dat='12';$dat2='December';$dat3='January'}; $heute= $Zeit[2].".".$dat.".".$Zeit[4]; $savedatei=$Jetztwert; $auftragsoption=''; $pickoption=''; $anzeigetext=''; #gesamtes Verzeichnis einlesen um alle PNG zu bearbeiten. $directory= "../unterschriften/paletten/"; $zieldirectory= "../palettenschein/"; opendir DIR, $directory or die $!; @Dateiliste= readdir DIR; closedir DIR; $dateizahl=0;$lauf=0; my $Laenge = @Dateiliste; for ($e = 0; $e <= $Laenge; $e++) { $dateiname[0]='';$dateiname[1]=''; @dateiname = split(/\./,$Dateiliste[$e]); $xc=length($dateiname[0]); if (($dateiname[1] eq 'png')&&($xc>5)){ #PNG zu JPG wandeln my $rc; my $rc2; my $img = Image::Magick->new(); $fromfile=$directory.$Dateiliste[$e]; $rc = $img->Read($fromfile); $tofile=$dateiname[0].".jpg"; $rc2 = $img->Write($tofile); #PNG zu JPG wandeln ENDE #JPG auf 1/3 Größe ändern my $file = $tofile; my $info = image_info($file); my ($width2, $height2) = dim($info); # Get the dimensions $image = Image::Resize->new($tofile); $width3=$width2/3;$height3=$height2/3; $gd = $image->resize($width3, $height3); $tofile2=$dateiname[0]."tmp.jpg"; open(FH, ">$tofile2"); print FH $gd->jpeg(); close(FH); #JPG auf 1/3 Größe ändern ENDE #JPG zu PDF umwandeln $pdfdatei=$dateiname[0]."-sign.pdf"; open(FILE8, ">$pdfdatei") || die &fehler200;close FILE8;chmod (0777, $datei); #prFile($datei); my $pdf = PDF::API2->new; #indepedently works OK - JPG my $jpg = $tofile2; my $image = $pdf->image_jpeg($jpg); my $page = $pdf->page(); $page->mediabox(0,0,$image->width, $image->height); $page->trimbox(0,0,$image->width, $image->height); my $gfx = $page->gfx; $gfx->image($image, 0, 0); $pdf->saveas($pdfdatei); #JPG zu PDF umwandeln ENDE $datei2=$zieldirectory.$dateiname[0].".pdf"; chmod (0777, $datei2); prFile($datei2); PDF::Reuse::Barcode::Code128 (x => 300, y => 730, value => $dateiname[0], text => 1, rotate => 0, size => 2); prFont('Helvetica'); $pdfdatei=$dateiname[0]."-sign.pdf"; prImage( { file => "$pdfdatei", page => 1, imageNo => 1, rotate => 0, x => 250, # multiply horizontally by $xsize y => 200} ); prFontSize('30'); $z1='Palettenschein'; #linksrand -- oben prText(50,750,$z1,'',0); prFontSize('20'); open(FILE4, "$speditionfile") || die &fehler0; @LINES4=; close(FILE4); $SIZE4=@LINES4; open(FILE4, "$speditionfile") || die &fehler; for ($f = 0; $f <= $SIZE4-1; $f++) { $test2=$LINES4[$f]; @art = split(/;/,$test2); if ($art[5] eq $dateiname[0]){ prText(50,600,'Spedition: ','',0);prText(250,600,$art[0],'',0); prText(50,570,'Datum: ','',0);prText(250,570,$art[4],'',0); prText(50,540,'Kennzeichen: ','',0);prText(250,540,$art[6],'',0); prText(50,480,'Eingang: ','',0);prText(250,480,$art[1],'',0); prText(50,440,'Ausgang: ','',0);prText(250,440,$art[2],'',0); prText(50,400,'Defekt: ','',0);prText(250,400,$art[3],'',0); prText(50,350,'Fahrer: ','',0);prText(250,350,$art[7],'',0); }} close FILE4; prEnd(); close(pdf); } unlink($tofile); unlink($tofile2); unlink($fromfile); unlink($pdfdatei); }#Ende Schleife Dateiliste # ab hier FTP Übertragung zur cloud, automatische einlesen durch DMS System # Response message. exit; sub fehler { print "Content-type: text/html\n\n"; print""; print""; print" <","/","TITLE>"; print"<","/","HEAD>"; print"<BODY>"; print"<H1><DIV align=center><FONT color=#FF0000>Schwerer Systemfehler<","/","FONT><","/","DIV> <","/","H1><BR><BR>"; print"<DIV align=center>Bitte unterrichten Sie umgehend den Systemadministrator<","/","DIV>"; print"<","/","BODY>"; print"<","/","HTML>"; exit; } sub fehler0 { print "Content-type: text/html\n\n"; print"<HTML>"; print"<HEAD>"; print" <TITLE> <","/","TITLE>"; print"<","/","HEAD>"; print"<BODY>"; print"<H1><DIV align=center><FONT color=#FF0000>Schwerer Systemfehler","---",$indexfile,"<","/","FONT><","/","DIV> <","/","H1><BR><BR>"; print"<DIV align=center>Bitte unterrichten Sie umgehend den Systemadministrator<","/","DIV>"; print"<","/","BODY>"; print"<","/","HTML>"; exit; }