Subversion-Projekte lars-tiefland.medien

Revision

Revision 82 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?
        function generate_cd_pdf_lang($id, $spr, $pdf)
        {
                $x1=60;         //Column 1
                $x2=200;        //Column 2 (normal)
                $x3=90;         //Column 2 (Title List)
                $x4=490;        //Column 3 (Title List)
                $y1=770;        //Startposition auf Seite
                $y=$y1;
                
                global $tr;

                //Spracheinträge auslesen
                $lang=$tr->getPage("common", $spr);
                
                //Daten für die CD abholen
                $cd=new CD($id);
                $a=new Album($cd->album);
                $g=new Genre($a->genre);
                $g_name="";
                if($a->genre==1)
                {
                        $g_name=$lang["various"];
                }
                else
                {
                        $g_name=$g->name;
                }
                $tracks=$cd->getTracks();
                $a_id=$a->artist;
                $artist=new Artist($a_id);
                $a_name="";
                if($a_id==1)
                {
                        $a_name=$lang["various"];
                }
                else
                {
                        $a_name=($artist->fname)?"$artist->fname $artist->name":"$artist->name";
                }
                
                //Seite 1 beginnen
                if(!PDF_begin_page_ext($pdf, 595, 842, "")) $erg=false;
                
                //Schriftart laden
                $font = PDF_load_font($pdf, "Helvetica-Bold", "winansi", "");
                $font_t = PDF_load_font($pdf, "Helvetica", "winansi", "");
                //Schriftart setzen
                PDF_setfont($pdf, $font, 25);
                //Textposition setzen
                PDF_set_text_pos($pdf, $x1, $y);
                //Text anzeigen
                PDF_show($pdf, "Details zur CD");
                //Text nach unten verschieben (neue Zeile)
                $y-=30;
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, "\"$cd->name\"");
                $y-=30;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["album_name"].":");
                PDF_setfont($pdf, $font_t, 10);
                PDF_set_text_pos($pdf, $x2, $y);
                PDF_show($pdf, $a->name);
                $y-=10;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["genre"].":");
                PDF_setfont($pdf, $font_t, 10);
                PDF_set_text_pos($pdf, $x2, $y);
                PDF_show($pdf, $g_name);
                $y-=10;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["year"].":");
                PDF_setfont($pdf, $font_t, 10);
                PDF_set_text_pos($pdf, $x2, $y);
                PDF_show($pdf, ($a->year)?$a->year:$lang["unknown"]);
                $y-=10;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["sampler"].":");
                PDF_setfont($pdf, $font_t, 10);
                PDF_set_text_pos($pdf, $x2, $y);
                PDF_show($pdf, ($a->artist==1)?$lang["yes"]:$lang["no"]);
                $y-=10;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["artist"].":");
                PDF_setfont($pdf, $font_t, 10);
                PDF_set_text_pos($pdf, $x2, $y);
                PDF_show($pdf, $a_name);
                //Bild für Album / CD einbinden
                $tmp_name="images/alben/$a->pic";
                $i=PDF_open_image_file($pdf, "jpeg", $tmp_name, "", 0);
                $y=470;
                PDF_setfont($pdf, $font, 10);
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["picture"].":");
                PDF_fit_image($pdf, $i, $x2, $y, "");
                
                $y-=20;
                
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, $lang["tracks"].":");
                $y-=20;
                PDF_set_text_pos($pdf, $x1, $y);
                PDF_show($pdf, "#");
                PDF_set_text_pos($pdf, $x3, $y);
                PDF_show($pdf, $lang["title"]);
                PDF_set_text_pos($pdf, $x4, $y);
                PDF_show($pdf, $lang["duration"]);
                $y-=20;

                //Titel in PDF schreiben
                if(count($tracks))
                {
                        foreach($tracks as $track)
                        {
                                PDF_setfont($pdf, $font_t, 10);
                                PDF_SET_text_pos($pdf, $x1, $y);
                                PDF_show($pdf,sprintf("%02d", $track["track_no"]));
                                $t=new Track($track["t_id"]);
                                PDF_set_text_pos($pdf, $x3, $y);
                                PDF_show($pdf, $t->name);
                                PDF_set_text_pos($pdf, $x4, $y);
                                PDF_show($pdf, $t->dur);
                                $y-=10;
                        
                                //Neue Seite anlegen, falls nötig.
                                if ($y < 60)
                                {
                                        PDF_set_text_pos($pdf, 10, 10);
                                        PDF_show($pdf, $sig);
                                        PDF_set_text_pos($pdf, 510, 10);
                                        PDF_show($pdf, $page);
                                        $res=PDF_end_page_ext($pdf,"");
                                        $y=$y1;
                                        $page++;
                                        $res=PDF_begin_page_ext($pdf,595,842,"");
                                        pdf_set_text_pos($pdf,$x ,$y); 
                                        $font = PDF_load_font($pdf, "Helvetica-Bold", "winansi", "");
                                        $font_t = PDF_load_font($pdf, "Helvetica", "winansi", "");
                                        PDF_setfont($pdf, $font, 10);
                                }
                        }
                }
                
                //lletzte Seite beenden
                if(!PDF_end_page_ext($pdf,"")) $erg=false; else $erg=true;
                return $erg;
        }
        
        function generate_cd_pdf($id)
        {
                //PDF für eine CD anlegen
                global $db, $prefix;
                $sql="SELECT * FROM $prefix"."langs";
                $res=$db->query($sql);
                
                while($row=$res->fetchRow())
                {
                        $spr=$row["id"];
                        //PDF Stream anlegen
                        $pdf=PDF_NEW();
                        $erg=false;
                        if(!$pdf) $erg=false;
                        //Stream als Datei speichern
                        if(!PDF_begin_document($pdf, "pdf/$spr/CD_$id.pdf","")) return false;
                
                        //PDF erzeugen
                        if ($erg=generate_cd_pdf_lang($id, $spr, $pdf))
                        {
                                if(!PDF_end_document($pdf,"")) $erg=false;
                        }
                }
                return $erg;
        }
        
        function generate_album_pdf($id)
        {
                //PDF für ein Album anlegen
                global $db, $prefix;
                $sql="SELECT * FROM $prefix"."langs";
                $res=$db->query($sql);
                
                while($row=$res->fetchRow())
                {
                        $spr=$row["id"];
                        //PDF Stream anlegen
                        $pdf=PDF_NEW();
                        $erg=false;
                        if(!$pdf) $erg=false;
                        //Stream als Datei speichern
                        if(!PDF_begin_document($pdf, "pdf/$spr/album_$id.pdf","")) $erg=false;
                
                        //PDF erzeugen
                        $sql="SELECT * FROM $prefix"."cds WHERE album_id=$id";
                        $res1=$db->query($sql);
                        while($cd_row=$res1->fetchRow())
                        {
                                $cd_id=$cd_row["cd_id"];
                                $erg=generate_cd_pdf_lang($cd_id, $spr, $pdf);
                                if (!$erg) break;
                        }
                        if ($erg)
                        {
                                if(!PDF_end_document($pdf,"")) $erg=false;
                        }
                }
                return $erg;
        }
        
        function generate_album_pdfs()
        {
                //PDF Dateien für alle Alben erzeugen
                echo "Generiere PDF Dateien!";
                global $db, $prefix;
                $sql="SELECT * FROM $prefix"."albums";
                $res=$db->query($sql);
                while($row=$res->fetchRow())
                {
                        $erg=generate_album_pdf($row["a_id"]);
                }
                return $erg;
        }
        
        function generate_cd_pdfs()
        {
                //PDF Dateien für alle CDs erzeugen
                global $db, $prefix;
                $sql="SELECT * FROM $prefix"."cds";
                $res=$db->query($sql);
                while($row=$res->fetchRow())
                {
                        $erg=generate_cd_pdf($row["cd_id"]);
                }
                return $erg;
        }
?>