Avatar billede learner Praktikant
08. december 2008 - 17:17 Der er 14 kommentarer og
1 løsning

Ghostscript ps2pdf er det muligt at installere på min webserver?

Hejsa, aner ik hvor jeg skal gøre af dette spm, men jeg er ved at få et regnskabsprogram "Saldi" til at køre på min webserver og nu har jeg vist kun et enkelt problem tilbage.

Ved udskrift af faktura går den ned og siger at ps2pdf er ikke installeret, hvilket den nok heller  ik er på min surftown server.

Det er så vidt jeg kan forstå dette prg "Ghostscript ps2pdf" som jeg skal installere

Kan jeg selv installere det?
Skal det installeres på computeren eller på serveren ??

På forhånd tak
Avatar billede learner Praktikant
08. december 2008 - 17:22 #1
jeg har fundet de steder i min kode hvor ps2pdf indgår og her er de :

db_modify("INSERT INTO grupper (beskrivelse, kode, kodenr, art, box1, box2, box3, box4, box5, box6, box7, box8) values ('Output', '', '1', 'PV', '/usr/bin/lpr', '/usr/bin/ps2pdf', '', '', '', '', '', '')");


  if ($valg=="pdf")  {
    if ($row[box2]) system ("$row[box2] ../temp/$ps_fil ../temp/$ps_fil.pdf");
    else system ("/usr/bin/ps2pdf ../temp/$ps_fil ../temp/$ps_fil.pdf");
        if (file_exists("../temp/$ps_fil.pdf")) print "<meta http-equiv=\"refresh\" content=\"0;URL=../temp/$ps_fil.pdf\">";
        else print "<BODY onLoad=\"java script:alert('PDF fil ikke fundet - er PS2PDF installaret?')\">";
        print "<meta http-equiv=\"refresh\" content=\"10;URL=../includes/luk.php\">";
    }
Avatar billede learner Praktikant
08. december 2008 - 17:26 #2
er det evt bare idenne jeg skal rette:
db_modify("INSERT INTO grupper (beskrivelse, kode, kodenr, art, box1, box2, box3, box4, box5, box6, box7, box8) values ('Output', '', '1', 'PV', '/usr/bin/lpr', '/usr/bin/ps2pdf', '', '', '', '', '', '')");

(samt i databasen self)

????
Avatar billede erikjacobsen Ekspert
08. december 2008 - 19:25 #3
Det er ikke en webserver du har, men et webhotel?

Så er det typisk udbyderen, der skal (og kan) installere yderligere programmer.
Avatar billede learner Praktikant
08. december 2008 - 19:34 #4
aha okay. fremgår det af phpinfo() om den er installeret?
Avatar billede erikjacobsen Ekspert
08. december 2008 - 20:09 #5
Nej
Avatar billede learner Praktikant
08. december 2008 - 21:15 #6
Erik.... kan man slet ikke selv installere det ?
Avatar billede learner Praktikant
08. december 2008 - 21:16 #7
jeg husker svagt at jeg tidligere har installeret en nyere version af mysql på mit webhotel.
Avatar billede erikjacobsen Ekspert
08. december 2008 - 21:42 #8
Det tvivler jeg på. Måske har du installeret en nyere phpmyadmin, men det er bare nogle php-scripts, ikke en mysql-database-server.
Avatar billede learner Praktikant
08. december 2008 - 23:02 #9
Hmmm der må da være en måde man kan lave et "hack" så den ik behøver det ps2pdf. Har du en ide?
Avatar billede learner Praktikant
08. december 2008 - 23:07 #10
Og hvis jeg skal spørge surftown efter om de vil installere det, hvad skal jeg så spørge om? er det korrekt at spørge:
Vil I venligst installere Ghostscript ps2pdf på serveren

eller hvordan spør man?
Avatar billede erikjacobsen Ekspert
08. december 2008 - 23:12 #11
Det er vel et ok spørgsmål - udvid det gerne med et link til deres hjemmeside.

Men jeg vil godt vædde en halvtør banan på at de siger nej.
Avatar billede learner Praktikant
08. december 2008 - 23:17 #12
:o) jamen så må jeg finde en anden løsning som kan bruges... Har du slet ik et forslag eller et hint??? :o)
Avatar billede learner Praktikant
08. december 2008 - 23:45 #13
hmmm jeg aner ik hvor jeg finder det link til deres hjemmeside. Der er så meget og jeg synes ik det ser korrekt ud. Ser dette link korrekt ud: http://www.ghostscript.com

jeg har fundet noget her som måske er anvendeligt:
http://www.linuxquestions.org/questions/bsd-17/where-to-download-ps2pdf-562244/
Tror du at man kan bruge noget af det til noget?

Tror du evt man kunne køre det automatisk gennem denne side http://ps2pdf.com på en måde?
Avatar billede learner Praktikant
08. december 2008 - 23:52 #14
Herunder er indhold af php filerne som bruger ps2pdf funktionen. Jeg tænker at nogen herinde måske kan finde på en anden måde at gøre det på, altså uden at bruge ps2pdf.

Håber nogen kan hjælpe mig med at få det til at virke




Fil: udskriftsvalg.php

$id=$_GET['id'];
$valg=$_GET['valg'];
#$bg="nix";

include("../includes/connect.php");
include("../includes/online.php");
include("../includes/db_query.php");

if ($valg=="tilbage") {
    print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/luk.php\">";
    exit;
}


if ($valg) {
    $query = db_select("select box1, box2 from grupper where art='PV'");
    $row = db_fetch_array($query);
    if ($valg==-1)    {$ps_fil="formularprint.php?id=$id&formular=2";}
    else {$ps_fil="formularprint.php?id=$id&formular=3";}

#    if ((!file_exists($ps_fil))&&($ps_fil!="udskriftsvalg.php"))    {
#        if (!file_exists("../formularer/$db_id")) {mkdir("../formularer/$db_id",0777);}
#        $kildefil=str_replace("/$db_id", "", $ps_fil);
#        copy($kildefil, $ps_fil);
#    }
    if ($valg!=-1) {$ps_fil="formularprint.php?id=$id&formular=3&lev_nr=$valg";}
    echo "<meta http-equiv=refresh content=0;url=$ps_fil>";
    exit;
#    print "<BODY onLoad=\"java script:window.open('$ps_fil&id=$id' , '' , ',statusbar=no,menubar=no,titlebar=no,toolbar=no,scrollbars=yes, location=1');\">";
#    print "<body onload=\"java script:window.close();\">";
}


    print "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
    print "<tr><td align=\"center\" valign=\"top\">";
    print "<table width=\"100%\" height=\"1%\" align=\"center\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tbody>";
    print "<td width=\"10%\" $top_bund>$font<small><a href=udskriftsvalg.php?valg=tilbage accesskey=L>Luk</a></small></td>";
    print "<td width=\"80%\" $top_bund align=\"center\">$font<small>Udskriftsvalg</small></td>";
    print "<td width=\"10%\" $top_bund align = \"right\"><br></td>";
    print "</tbody></table>";
    print "</td></tr>";
    print "<td align = \"center\" valign = \"middle\" height=\"99%\">";
    print "<table cellpadding=\"1\" cellspacing=\"1\" border=\"0\"><tbody>";

    $lev_nr=0;
    $query = db_select("select lev_nr from batch_salg where ordre_id = $id");
    while ($row = db_fetch_array($query)) {
        if ($row[lev_nr]>$lev_nr) {$lev_nr=$row[lev_nr];}
    }
    print "<tr><td align=center>$font <a href='udskriftsvalg.php?id=$id&valg=-1'>Ordrebekr&aelig;ftelse</a></td></tr>";
    for ($x=1; $x<=$lev_nr; $x++) {
        print "<tr><td align=center>$font <a href='udskriftsvalg.php?id=$id&valg=$x'>F&oslash;lgeseddel $x</a></td></tr>";
    }
    print "</tbody></table></td>";
    print "</tbody></table>";

exit;








Fil: udskriv.php

$ps_fil=$_GET['ps_fil'];
$valg=$_GET['valg'];
#$bg="nix";

include("../includes/connect.php");
include("../includes/online.php");
include("../includes/db_query.php");

if ($valg=="tilbage")
{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/luk.php\">";
  exit;
}

if (!$valg) {
    $row = db_fetch_array($query = db_select("select box1 from grupper where art='PV'"));
    if (!$row[box1]) $valg="pdf";
}

if ($valg) {
  $query = db_select("select box1, box2 from grupper where art='PV'");
  $row = db_fetch_array($query);
  if ($valg=="pdf")  {
    if ($row[box2]) system ("$row[box2] ../temp/$ps_fil ../temp/$ps_fil.pdf");
    else system ("/usr/bin/ps2pdf ../temp/$ps_fil ../temp/$ps_fil.pdf");
        if (file_exists("../temp/$ps_fil.pdf")) print "<meta http-equiv=\"refresh\" content=\"0;URL=../temp/$ps_fil.pdf\">";
        else print "<BODY onLoad=\"java script:alert('PDF fil ikke fundet - er PS2PDF installaret?')\">";
        print "<meta http-equiv=\"refresh\" content=\"10;URL=../includes/luk.php\">";
    }
  if ($valg=="printer") {
    system ("$row[box1] ../temp/$ps_fil");
    system ("rm ../../temp/$ps_fil");
    print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/luk.php\">";
    exit;
  }
  print "<meta http-equiv=\"refresh\" content=\"10;URL=../includes/luk.php\">";
  exit;
}


  print "<table width=\"100%\" height=\"75%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
  print "<tr><td height=\"1%\" align=\"center\" valign=\"top\">";
  print "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tbody>";
  print "<td width=\"10%\" $top_bund>$font<small><a href=udskriv.php?valg=tilbage accesskey=L>Luk</a></small></td>";
  print "<td width=\"80%\" $top_bund align=\"center\">$font<small>Udskriftsvalg</small></td>";
  print "<td width=\"10%\" $top_bund align = \"right\"><br></td>";
  print "</tbody></table>";
  print "</td></tr>";
  print "<tr><td height=\"99%\" align = center valign = middle>";
  print "<table cellpadding=\"1\" cellspacing=\"1\" border=\"0\"><tbody>";

  print "<tr><td align=center>$font <a href='udskriv.php?valg=pdf&ps_fil=$ps_fil'>PDF</a></td></tr>";
  print "<tr><td align=center>$font <a href='udskriv.php?valg=printer&ps_fil=$ps_fil'>Printer</a></td></tr>";
  print "</tbody></table></td>";
  print "</tbody></table>";

exit;







Fil: formularprint.php


$id=$_GET['id'];
$formular=$_GET['formular'];
$lev_nr=$_GET['lev_nr'];
$bg="nix";

if ($id==-1){    # Saa er der flere fakturaer
    $ordre_antal = $_GET['ordre_antal'];
    $ordre_id = explode(",", $_GET['skriv']);
} else {
    $ordre_id[0]=$id;
    $ordre_antal=1;   
}

include("../includes/connect.php");
include("../includes/online.php");
include("../includes/dkdato.php");
include("../includes/dkdecimal.php");
include("../includes/formfunk.php");
include("../includes/db_query.php");

if ($formular==3) {
    if (db_fetch_array(db_select("select id from grupper where art='DIV' and kodenr='2' and box3='on'"))) $kommentarprint='on';
}

$fsize=filesize("../includes/faktinit.ps");
$initfil=fopen("../includes/faktinit.ps","r");
$initext=fread($initfil,$fsize);
fclose($initfil);
       
$printfilnavn="$db_id"."$bruger_id";
$fp=fopen("../temp/$printfilnavn","w");

for ($q=0; $q<$ordre_antal; $q++) {
    $varenr=array(); $vare_id=array(); $linje_id=array(); $antal=array(); $tidl_lev=array(); $rest=array();
    $enhed=array(); $rabat=array(); $pris=array(); $l_sum=array(); $linjesum=array();
    $sum='';

    $query = db_select("select art, ref, sprog from ordrer where id = $ordre_id[$q]");
    $row = db_fetch_array($query);
    $ref=$row['ref'];
    $sprog=strtolower($row['sprog']);
    if (!$sprog) $sprog="dansk";
    if (($formular ==4)||($formular ==5)) {
        if ($row[art]=="DK") $formular=5;
        else $formular=4;
    }
$y=185;
$antal_ordrelinjer=25;
$x=0;
$query = db_select("select * from formularer where formular = $formular and art = 1 and beskrivelse = 'LOGO' and lower(sprog)='$sprog'");
if ($row = db_fetch_array($query)) {$logo_X=$row[xa]*2.86;     $logo_Y=$row[ya]*2.86;}
else {$logo_X=430; $logo_Y=758;}
if (file_exists("../logolib/logo_$db_id.eps")){$logo="../logolib/logo_$db_id.eps";}
else {$logo="../logolib/logo.eps";}
   
$fsize=filesize($logo);
$logofil=fopen($logo,"r");
$translate=0;
$logo="";
while (!feof($logofil)) {
    $linje=fgets($logofil);
    if (substr($linje,0,2)!="%!") {
        if (strstr($linje, "translate")&&(!$translate)) {
            $linje="$logo_X $logo_Y translate \n";
            $translate=1;
        }
        $logo=$logo.$linje;
    }
}
fclose($logofil);

$query = db_select("select * from formularer where formular = $formular and art = 3 and lower(sprog)='$sprog'");
while ($row = db_fetch_array($query)) {
    if ($row['beskrivelse']=='generelt') {   
        $antal_ordrelinjer=$row[xa];
        $ya=$row[ya];
        $linjeafstand=$row[xb];
#        $Opkt=$y-($antal_ordrelinjer*$linjeafstand);   
    }
    else {
        $x++;
        $variabel[$x]=$row['beskrivelse'];
        $placering[$x]=$row[placering];
        $xa[$x]=$row[xa];
        $str[$x]=$row[str];
        $laengde[$x]=$row[xb];
        $color[$x]=$row[color];
        $fed[$x]=$row[fed];
        $kursiv[$x]=$row[kursiv];
        $form_font[$x]=$row[font];
    }
    $var_antal=$x;
}

$side=1;
fwrite($fp,$initext);
$rabat[0]=formulartekst($ordre_id[$q]);

if ($ordre_id[$q]){
    $id=$ordre_id[$q];
    $x=0;
    $sum=0;
    $momssum=0;
    $tmp=0;
    $query = db_select("select * from ordrelinjer where ordre_id = $ordre_id[$q] order by posnr");
    while($row = db_fetch_array($query)){
        if ($row[posnr]>0){
            $x++;
            $varenr[$x]=trim($row['varenr']);
            $beskrivelse[$x]=trim($row['beskrivelse']);
            if ($varenr[$x]){
                $vare_id[$x]=$row['vare_id'];
                $linje_id[$x]=$row[id];
                $antal[$x]=$row['antal'];
                if ($formular==5){$antal[$x]=$antal[$x]*-1;}
                if ($formular==3){
                    $lev_antal[$x]=0;
                    $q2 = db_select("select antal from batch_salg where linje_id = $linje_id[$x] and lev_nr = $lev_nr");
                    while ($r2 = db_fetch_array($q2)){$lev_antal[$x]=$lev_antal[$x]+$r2['antal'];}
                    $tidl_lev[$x]=0;
                    $q2 = db_select("select antal from batch_salg where linje_id = $linje_id[$x] and lev_nr < $lev_nr");
                    while ($r2 = db_fetch_array($q2)){$tidl_lev[$x]=$tidl_lev[$x]+$r2['antal'];}
                    $rest[$x]=$antal[$x]-$lev_antal[$x]-$tidl_lev[$x];
                }
                $enhed[$x]=$row['enhed'];
                $pris[$x]=dkdecimal($row['pris']);
                $rabat[$x]=dkdecimal($row['rabat']);
                $l_sum[$x]=$row['pris']*$antal[$x]-($row['pris']*$antal[$x]*$row[rabat]/100);
                $linjesum[$x]=dkdecimal($row['pris']*$antal[$x]-($row['pris']*$antal[$x]*$row[rabat]/100));
                if ($row[momsfri]!='on') {$momssum=$momssum+$row['pris']*$antal[$x]-($row['pris']*$antal[$x]*$row[rabat]/100);}
                $sum=$sum+$row['pris']*$antal[$x]-($row['pris']*$antal[$x]*$row[rabat]/100);
            }
        }
        $linjeantal=$x;
    }
    $y=$ya;
    $Opkt=$y-($antal_ordrelinjer*$linjeafstand);   
    for ($x=1;$x<=$linjeantal; $x++) {
        $transportsum=$transportsum+$l_sum[$x-1];
        if (($kommentarprint=='on')||($formular!=3)||($varenr[$x])) {    #Fordi tekst uden varenr ikke skal med paa foelgesedlen med mindre det er angivet i "formularprint";
            for ($z=1; $z<=$var_antal; $z++) {
                if ($variabel[$z]=="varenr") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]"); # ellers kommer varenummer ikke med på 1. linje på side 2 . og 3
                if ($variabel[$z]=="varenr") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$varenr[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="antal") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$antal[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="lev_antal") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$lev_antal[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="tidl_lev") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$tidl_lev[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="lev_rest") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$rest[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="pris") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$pris[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="enhed") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$enhed[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="rabat") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$rabat[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="linjesum") skriv("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$linjesum[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]");
                if ($variabel[$z]=="beskrivelse") $skriv_beskriv[$x]=$z;
            }
            if ($z=$skriv_beskriv[$x]) $y2=ombryd("$str[$z]", "$fed[$z]", "$kursiv[$z]", "$color[$z]", "$beskrivelse[$x]", "ordrelinjer_".$Opkt, "$xa[$z]", "$y", "$placering[$z]", "$form_font[$z]",$laengde[$z]);
            $y=$y2;
            if ($y==0) $y=$ya;
            $y=$y-4;
        }
    }
    $moms=dkdecimal($momssum*$momssats/100);
    $momsgrundlag=dkdecimal($momssum);
    $momssum=round($momssum,2);
    $sum=round($sum,2);
  $ialt=dkdecimal($sum+$momssum*$momssats/100);
    $sum=dkdecimal($sum);
}
find_tekst($id, 'S', $formular); # Sum på sidste side.

bundtekst($ordre_id[$q]); # Uden denne skrives kun  side 1
}
#exit;
print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/udskriv.php?ps_fil=$printfilnavn\">";

###################################### FAKTURAHOVED ######################################

function formulartekst($id)
{
    global $formular;
    global $momssats;
    global $dkdato;
    global $connection;
    global $fp;
    global $side;
    global $sprog;
   

    include("../includes/ordreopslag.php");
   
    if ($art=="DO") {$art="Faktura";}
    else {$art="Kreditnota";}
   
    $query = db_select("select * from ordrelinjer where ordre_id = $id and rabat > 0");
    if($row = db_fetch_array($query)) {$rabat="y";}

    $faktdato=dkdato($fakturadate);
    $query = db_select("select * from ordrelinjer where ordre_id = $id and rabat > 0");
    if($row = db_fetch_array($query)) {$rabat="y";}

    $query = db_select("select * from formularer where formular = $formular and art = 1 and beskrivelse != 'LOGO' and lower(sprog)='$sprog'");
    while ($row = db_fetch_array($query)) {
        $xa=$row[xa]*2.86;
        $ya=$row[ya]*2.86;
        $xb=$row[xb]*2.86;
        $yb=$row[yb]*2.86;
        $lw=$row[str];
        fwrite($fp," $xa $ya moveto $xb $yb lineto $lw setlinewidth stroke \n");
    }

    find_tekst($id, 'A', $formular);
   
return $rabat;   
}




function bundtekst($id)
{
global $logo;
global $fp;
global $nextside;
global $side;
global $y;
global $ya;
global $linjeafstand;

$y=$ya-$linjeafstand;
$side=$side+1;

fwrite($fp, $logo);
return $y;
# fwrite($fp,"showpage");
}
Avatar billede learner Praktikant
10. december 2008 - 00:37 #15
Lukker. Det fører vist ik nogen steder....

Tak for deltagelse :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester