Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie eine PDF Seite aufbauen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie eine PDF Seite aufbauen

    Hallo

    Ich habe eine InternetSeite und möchte jeden Artikel den ich dort habe auch ermöglichen als PDF herunterzuladen oder anzuzeigen.

    Und jetzt habe ich ein Problem:
    also ich bin schon in der Lage eine PDF zu erstellen ein bild einzubinden und normallen/kurzen text aber ich habe Probleme damit einen Längeren Text in die Seite einzubauen vor allem weil die Textlänge Variabel ist und ich direkt unter diesen Text mit anderen Text weitermachen muss. das klappt bei mir nicht so gut. könnte mir jemand helfen?


    So sieht meine PHP-Seite jetzt aus:

    Code:
    <?php
      $db = mysql_connect($sql_host, $sql_user, $sql_pass);
      $res = mysql_db_query($sql_DB, "SELECT * from pflanzeninfo_daten WHERE gattung_botanisch like '$gattung_botanisch'");
      $num = mysql_num_rows($res);
      if ($num!=0)
      {
        $id = mysql_result($res, 0, "ID");
        $gattung_deutsch = mysql_result($res, 0, "gattung_deutsch");
        $gattung_botanisch = mysql_result($res, 0, "gattung_botanisch");
        $familie_deutsch = mysql_result($res, 0, "familie_deutsch");
        $familie_botanisch = mysql_result($res, 0, "familie_botanisch");
        $beschreibung = mysql_result($res, 0, "beschreibung");
        $anzucht_anleitung = mysql_result($res, 0, "anzucht_anleitung");
        $pflege_anleitung = mysql_result($res, 0, "pflege_anleitung");
        $autor = mysql_result($res, 0, "autor");
      }
      mysql_close($db);
    
    
      $pdf = pdf_new();
      pdf_open_file($pdf, "");
      pdf_begin_page($pdf, 600, 900);
      pdf_set_value($pdf, "textrendering", 0);
    
    //Logo
      $im = pdf_open_png($pdf, "logo.png");
      pdf_place_image($pdf, $im, 40, 860, 0.5);
      pdf_close_image($pdf, $im);
        
    //Linie
      pdf_setlinewidth ($pdf, 1);
      pdf_moveto($pdf, 30, 855);
      pdf_lineto($pdf, 570, 855);
      pdf_stroke($pdf);
    
    //Link
      pdf_add_weblink($pdf, 470, 857, 570, 867, "http://www.exoteninfo.com");
      pdf_set_font($pdf, "Helvetica", 8, "host");
      pdf_show_xy($pdf, "www.exoteninfo.com", 485, 859);
    
    //Titel
      pdf_set_font($pdf, "Helvetica", 12, "host");
      pdf_show_xy($pdf, "Gattung: $gattung_deutsch ($gattung_botanisch)", 40, 840);
      pdf_show_xy($pdf, "Familie: $familie_deutsch ($familie_botanisch)", 40, 825);
    
    //Beschreibung
      pdf_show_xy($pdf, "Beschreibung:", 40, 800);
      pdf_set_font($pdf, "Helvetica", 12, "host");
      $texth = pdf_stringwidth($pdf, $beschreibung) / 520;
      pdf_show_xy($pdf, "$lefty", 40, 760);
      pdf_show_boxed($pdf, $beschreibung, 40, 785 - $texth, 520, $texth, "left");
    
    //Anzuch
    
    //Pflege
    
    //Bild
    
        
      pdf_end_page($pdf);
      pdf_close($pdf);
      $daten = pdf_get_buffer($pdf);
      header("Content-type: application/pdf");
      header("Content-length: ".strlen($daten));
      header("Content-disposition: inline; filename=dokument.pdf");
      print($daten);
    ?>
    Damit ihr euch auch ein Bild davon machen könnt wovon ich spreche poste ich hier mal einen Link
    http://www.exoteninfo.com/new/anleit...sch=Passiflora

    Wenn iht oben auf PHP klickt so wird der oben genannte Code ausgeführt.

    Bitte ich brauche hilfe!

  • #2
    Re: Wie eine PDF Seite aufbauen

    Zitat von jonny
    das klappt bei mir nicht so gut. könnte mir jemand helfen?
    Die Fehlerbeschreibung ist extrem dürftig. Da das PDF nur 2 Zeilen Text anzeigt, vermute ich mal kühn (mit der PDF Extension habe ich noch nix gebastelt), daß der Parameter für die Texthöhe in pdf_show_boxed() fehlerhaft ermittelt wird.

    Kommentar


    • #3
      Und ein paar Verbesserungsvorschläge hätte ich da auch noch.

      Auszug aus der Doku zu mysql_db_query:
      Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

      16.14. Warum soll ich nicht SELECT * schreiben?
      http://www.dclp-faq.de/q/q-sql-select.html

      Und die mysql_result sind auch nicht besonders effektiv, Du greifst neun mal auf die DB zu, das kann man mit einem mysql_fetch_array oder mysql_fetch_object erschlagen.

      Und vielleicht lohnt ein Blick auf http://www.fpdf.org, mit diesem Tool lassen sich PDF'S wesentlich besser erzeugen.

      Gruß
      phpfan

      Kommentar


      • #4
        Hmm das die mysql_db_querry nicht mehr aktuel sind das wusste ich nicht.

        Das mit "select *" verstehe ich auch. Danke!

        Doch was ist das "mysql_fetch_array oder mysql_fetch_object"? *neuling*

        das mit fpdf schau ich mir mal an. Danke!

        Kommentar


        • #5
          Du benutzt 9x mysql_result, um alle Daten aus der Abfrage zu holen, ein mysql_fetch_array ist da besser:

          Code:
              $data = mysql_fetch_array($res);
              $id = $data["ID"]; 
              $gattung_deutsch = $data["gattung_deutsch"]; 
              $gattung_botanisch = $data["gattung_botanisch"]; 
              $familie_deutsch = $data["familie_deutsch"]; 
              $familie_botanisch = $data["familie_botanisch"]; 
              $beschreibung = $data["beschreibung"]; 
              $anzucht_anleitung = $data["anzucht_anleitung"]; 
              $pflege_anleitung = $data["pflege_anleitung"]; 
              $autor = $data["autor"];
          Gruß
          phpfan

          Kommentar


          • #6
            Achso! jetzt verstehe ich, das stimmt so ist das ganze um einiges schneller nehme ich an.

            Danke auch für den Tipp!

            Kommentar


            • #7
              Zitat von jonny
              *neuling*
              Dann bist Du im Profi Forum falsch. Die Unterteilung betrifft den Fragenden und nicht die Antwortenden

              ->moved to Anfänger Forum

              Kommentar

              Lädt...
              X