Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with generate PDF #538

Open
Mehbarki opened this issue Jan 27, 2020 · 0 comments
Open

Problem with generate PDF #538

Mehbarki opened this issue Jan 27, 2020 · 0 comments

Comments

@Mehbarki
Copy link

@Mehbarki Mehbarki commented Jan 27, 2020

Good morning, sir,

I have to generate a pdf via HTML code, however my pdf only displays part of my html, usually the tags.

I have created a GenerateConventionApprentissage.php class to manage the content of my pdf :
`<?php

class GenerateConventionApprentissage
{
private $html2pdf;
private $data;
private $html = '';
private $todayDate;

const PDF_NAME = 'convention_apprentissage.pdf';

public function __construct(HTML2PDF $html2pdf, $data)
{
    $this->html2pdf = $html2pdf;
    $this->data = $data;
    $this->todayDate = date('d/m/Y');
}

public function generatePDF()
{
    $this->header();
    $this->title();
    $this->page1();
    $this->footer();

    $this->header();
    $this->page2();
    $this->footer();

    $this->header();
    $this->page3();
    $this->footer();

// $this->html2pdf->setModeDebug();
$this->html2pdf->setTestTdInOnePage(false);
// $this->html2pdf->getVersion();
$this->html2pdf->writeHTML($this->html);
$this->html2pdf->setDefaultFont('Arial');
$this->html2pdf->Output(self::PDF_NAME, 'D');
}

public function header()
{
    $this->html .= <<<EOT
        <page backleft="15mm" backright="10mm" style="font-size: 14px;">
            <page_header>
                <img src="../images/logoIPSSI_min.jpg" style="border:0;width:105px;height:60px;margin-bottom:0px;margin-left:0px; margin-top:0px;" alt="logo ipssi" />
            </page_header>

EOT;
}

    public function footer()
    {
    $this->html .= <<<EOT
            <page_footer style="font-size: 9px; margin-top: 70px;">
                <p style="text-align: center;">
                     IP-formation - ÉCOLE IPSSI: INSTITUT PRIVÉ SUPÉRIEUR DES SYSTÈMES D’INFORMATION  <br/>
                     SARL au capital social de 105 000 € - RCS PARIS : 420 793 705 – CODE NAF 8559A -  Déclaration d’existence n° 117 533 621 75 - N° TVA : FR 41 420 793 705 - UAI 07572 - 1/4 <br/>
                      Paris : 25, rue Claude Tillier – BP 20024 - 75560 Paris Cedex 12 - Tél : 01.55.43.26.65 <br/>
                      Marne-la-Vallée : 14, avenue de l’Europe – 77144 Montévrain - Tél : 01.81.80.77.10 <br/>
                      Saint-Quentin-en-Yvelines : 8, rue Germain Soufflot – 78180 Montigny-le-Bretonneux - Tél : 01.81.80.38.50
                </p>
            </page_footer>
            </page>

EOT;
}

public function title()
{
    $this->html .= '<h1 style="text-align: center; font-size: 14px; margin-top: 70px;">CONVENTION de FORMATION <br/> CONTRAT D\'APPRENTISSAGE  <br/> N°XXXXXXXXX </h1>';
}

public function page1() {
    $this->html .= <<<EOT
        <p>
        Entre les soussignés :  <br/>
        L'entreprise: {$this->data['employeur']['nom_societe']} <br/>
        N° de Siret :  {$this->data['employeur']['num_siret']},  <br/>
        Adresse :  {$this->data['employeur']['adresse']} {$this->data['employeur']['cp']} {$this->data['employeur']['ville']} <br/>
        Téléphone :  {$this->data['employeur']['tel']}  <br/>
        Représentée par : M. {$this->data['employeur']['nom_responsable']} dénommée ci-dessus le Client,
        </p>

        <p>
        Le CFA : ÉCOLE IPSSI <br/>
        N° de Siret :  {$this->data['organisme']['siret']} <br/>
        N° déclaration d'existence :  {$this->data['organisme']['declarationExistence']}  <br/>
        N°UAI :  {$this->data['organisme']['uai']}  <br/>
        Adresse :  {$this->data['organisme']['adresse']} - BP 20024 75560 Paris Cedex 12 <br/>
        Téléphone :  {$this->data['organisme']['telephone']} <br/>
        Représentée par :  {$this->data['organisme']['representee']}, Direcrteur Général <br/>
        dénommée ci-dessous ÉCOLE IPSSI d'autre part.
        </p>

        <p>
        Il est conclu par la présente convention de formation en apprentissage, en application des dispositions de la partie VI du code du travail <br/>
        relatif à la formation professionnelle tout au long de la vie, notamment les articles L. 6353-1 et D. 6353-1. <br/>
        En outre, OPCO ATLAS Opérateurs de Compétences du Client dénommé ci-dessous OPCO. Il est convenu de mettre en place <br/>
        la formation définie ci-dessous. M. LAURENT Thomas est désigné(e) par l’Entreprise en tant que maître d’apprentissage. Il reçoit le <br/>
        programme et est chargé(e) d’en suivre le déroulement avec le centre de formation dont il est le correspondant.
        </p>

        <p>
        L’action de formation est organisée auprès du bénéficiaire suivant :
         {$this->data['candidat']['type']} {$this->data['candidat']['nom']} {$this->data['candidat']['prenom']}, né(e) le {$this->data['organisme']['naissance']} , de nationalité {$this->data['organisme']['nationalite']} : et demeurant : {$this->data['candidat']['adresse']},
        dénommée ci-dessus l’apprenant(e) ou l’apprenti(e)
        </p>

        <p>
        ARTICLE 1 : Conditions de la convention de formation <br/>
         L'Apprenant(e) est embauché par le Client, en contrat d’Apprentissage du {$this->data['employeur']['date_contrat_deb']} au {$this->data['employeur']['date_contrat_fin']}. Période : {$this->data['candidat']['time_forma_year']} mois.           
        </p>

        <p>
        ARTICLE 2 : Définition de la formation  <br/>
        Intitulé de la formation préparée : {$this->data['candidat']['cursus_libelle']}
        Diplôme ou Titre : {$this->data['candidat']['cursus_libelle_']}, {$this->data['candidat']['cursus_libelle_titre_convention']} <br/>
        Le Client s'engage à faire suivre à l'Apprenti(e) des actions de formation d’Apprentissage dispensées par Ecole IPSSI/ IP-FORMATION <br/> 
        d'une durée totale de {$this->data['candidat']['nb_heures_forma']} heures dans la limite de la prise en charge de l'OPCO selon le programme de formation joint en annexe.
        </p>
      
         <p>Lieu de la formation :<span style="font-style: italic">possibilité de choisir le campus</span> <br/></p>  
         
        <ul>
           <li> {$this->data['organisme']['campus']} - {$this->data['organisme']['adresse']} {$this->data['organisme']['codePostal']} {$this->data['organisme']['ville']} et/ou </li> 
           <li>{$this->data['mlv']['campus']} - {$this->data['mlv']['adresse']} {$this->data['mlv']['codePostal']} {$this->data['mlv']['ville']} </li> 
           <li> {$this->data['sqy']['campus']} - {$this->data['sqy']['adresse']} {$this->data['sqy']['codePostal']} {$this->data['sqy']['ville']} </li> 
        </ul>                                   

        <p>
        Date de début des actions : {$this->data['candidat']['date_forma_deb']}  <br/>
        Date de fin des actions : {$this->data['candidat']['date_forma_fin']} <br/>
        Date d'examen(s) : {$this->data['candidat']['date_examen']}
        </p>

        <p> 
        ARTICLE 3 : Dispositions financières <br/>
        3.1 <span style="font-style: italic">Coût horaire des actions d'Apprentissage de la formation</span> <br/>
        3.1.1 Formation théorique et pratique :  <br/>
        {$this->data['candidat']['nb_heures_forma']} heures X {$this->data['employeur']['taux_opca']} € HT ({$this->data['candidat']['time_forma_month']} années scolaires) = {$this->data['employeur']['taux_ht']} € HT + TVA en vigueur (20%), soit {$this->data['employeur']['taux_tva']} € <br/>
        Soit un montant total : {$this->data['employeur']['taux_ttc']} € TTC
        </p>
        
        <p>
        3.1.2 Prise en charge OPCO selon décret n° 2019-956 du 13 septembre 2019 : {$this->data['employeur']['total_ht_opco']} HT par année scolaire <br/>
         {$this->data['employeur']['total_ht_opco_year']} HT X {$this->data['candidat']['time_forma_month']} Années scolaire = {$this->data['employeur']['total_ht_opco']}€ HT + TVA en vigueur (20%), soit {$this->data['employeur']['total_tva_opco']} € <br/>
        Soit un montant total : {$this->data['employeur']['total_ttc_opco']} € TTC            
        </p>

EOT;
}

public function page2() {
    $this->html .= <<<EOT
        <p>
        3.1.3 Différentiel à la charge de l'entreprise : <br/>
        {$this->data['employeur']['total_ht_entreprise']}€ HT X {$this->data['candidat']['time_forma_month']} Années scolaire = 7500€ HT + TVA en vigueur (20%), soit {$this->data['employeur']['total_tva_entreprise']} € <br/>
        Soit un montant total : {$this->data['employeur']['total_ttc_entreprise']}€ TTC
        </p>
        
        <p>
        <span style="font-style: italic">3.2 Conditions de règlement</span>
        Les factures sont payables à réception, net et sans escompte sauf autre échéance indiquée sur la facture ou en cas de non subrogation de paiement (voir l'article 3.5). <br/>
        Tout retard de paiement entraînera : <br/>
        - Une indemnité forfaitaire pour frais de recouvrement fixée à 40 € (par facture) par décret n°2012-1115 du 2 octobre 2012. <br/>
        - Une indemnité forfaitaire de pénalités de retard calculées sur la base de 3 fois le taux d'intérêt légale en vigueur en France, (0.87 % x 3 = 2.61% pour 2019). <br/>
        L'application d'une clause pénale égale à 20% du prix de vente hors taxes et payable avec la somme principale. L'exigibilité immédiate des factures non échues. <br/>
        A défaut de règlement l’ÉCOLE IPSSI se réserve le droit de suspendre ou d’annuler les prestations de formation en cours sans pouvoir donner lieu à dommages et intérêts pour le client. <br/>
        Dans le cas d'une prise en charge partielle par l'OPCO,  le différentiel sera réglé par l’entreprise comme indiqué à l’article 3.1.3. <br/>
        </p>

        <p>
         <span>3.3 Modalités de règlement</span> <br/>
          Le règlement des factures de formation peut s’effectuer : <br/>
            -	par chèque à l'ordre d'École IPSSI <br/>
            -	par prélèvement automatique (cf. autorisation de prélèvement et échéancier en annexe) <br/>
            -	par virement bancaire SEPA sur le compte ci-dessous : <br/>
            <span style="font-style: italic">Banque Crédit Coopératif Paris OPERA</span> <br/>
            IBAN : FR76 4255 9100 0008 0096 5152 64 BIC : CCOPFRPPXXX<> <br/>
            au nom de la société ÉCOLE IPSSI en mentionannt le numéro de facture comme référence de virement.
         </p>

        <p>
        3.4   Accord de subrogation <br/>
        En application de l'accord de subrogation de paiement conclu entre le client et son OPCO, les factures seront transmises par ÉCOLE IPSSI à l’OPCO de l’entreprise. <br/>
        </p>

        <p>
        <span style="font-style: italic">3.5 En cas d'absence de subrogation de l'OPCO de l'entreprise</span> <br/>
        En cas d'absence de subrogation de paiement de l'OPCO du client dans un délai de 2 mois après la date de début des cours, le client <br/>
        s'engage à régler les frais de formation de son apprenant(e) directement à ÉCOLE IPSSI dès réception de facture. A la charge du client <br/>
        d’entreprendre les démarches auprès de son OPCO pour se faire rembourser tout ou partie des frais de formation. <br/>
        </p>

        <p>
        <span style="font-style: italic"> 3.6    Prise en charge partielle par l'OPCO</span> <br/>
        En cas de prise en charge partielle par l'OPCO, la différence sera facturée à l’entreprise comme indiqué dans l'article 3.1.3.
        </p>

        <p>
        <span style="font-style: italic"> 3.7   Refus de prise en charge par l'OPCO</span> <br/>
                    Dans le cas d’un refus de prise en charge des heures de formation de l'Apprenant(e), par l'OPCO, l’entreprise s’engage à les régler à ÉCOLE <br/> 
                    IPSSI dans leur intégralité dès réception de facture. <br/>
                    Un refus de prise en charge de la formation par le client constitue une clause de rupture de la présente convention tel que décrit à l'article 8. <br/>
                    ÉCOLE IPSSI ne pourra donc pas dispenser sa formation. Le client restera redevable des heures de formation effectuées par l'Apprenti(e) jusqu'à <br/>
                    la date de rupture de son contrat d’Apprentissage ou de la présente convention de formation. Le règlement de la formation sera dû à réception <br/>
                    de la facture.
        </p>

        <p>
        <span style="font-style: italic"> 3.8   Utilisation des fonds</span> <br/>
                    Le montant des versements correspond à l’exécution des actions de formation caractérisées à l’article 2, dont bénéficient l’apprenti(e) <br/>
                    de l’Entreprise signataire. Les fonds versés ne peuvent être affectés qu’au financement des actions de formation. Ces fonds ne peuvent <br/> 
                    être affectés à la rémunération des apprenant(e)s. Les frais de transport restent à la charge de l’Entreprise.
        </p>

        <p> 
        ARTICLE 4 : Modalités de sanction des formations en fonction du cursus <br/>
        Les matières enseignées sont conformes au programme de formation joint en annexe, lequel précise le niveau de connaissances <br/>
         préalables requises pour suivre la formation. Afin d’assurer le bon déroulement de l’action de formation, le Bénéficiaire se voit remettre <br/>
         par le CFA la documentation pédagogique ainsi que le règlement intérieur.
        </p>

        <p> 
        ARTICLE 5 : Engagements d'Ecole IPSSI/ IP-FORMATION <br/>
        ÉCOLE IPSSI s'engage à mettre en œuvre les moyens pédagogiques, matériels et humains nécessaires à la formation, tel qu’il est <br/>
        décrit dans le programme de formation joint en annexe 1. L’ÉCOLE IPSSI établit les attestations de présence, sur la base des feuilles <br/>
        de présence émargées par l'Apprenti(e) (ces dernières sont tenues à la disposition de l'OPCO et du client). L’ÉCOLE IPSSI contrôle <br/>
         et notifie les absences de l'Apprenti(e) en formation au client et à l'OPCO.
        </p>

        <p> 
        ARTICLE 6 : Engagements du Client <br/>
        L'Apprenti(e) sera suivi par son maître d’apprentissage qui sera chargé de l'accueillir, l'informer, le guider et l'évaluer dans  l'entreprise. Le <br/>
        maître d’apprentissage désigné ci-dessus et le formateur référent s'engagent à collaborer et à échanger toutes informations utiles à la <br/>
        progression du nouvel Apprenti(e). Le Client permet également à l'Apprenti(e) de réaliser tous travaux liés à cette formation. Le Client <br/> 
        organise le temps de travail de l'Apprenti(e) en fonction du planning de formation d'ÉCOLE IPSSI. Le Client s'engage à tout mettre en œuvre <br/> 
        pour que la formation se déroule dans les meilleures conditions, notamment : 
        </p>
        <ul>
            <li>
            	En sensibilisant son apprenant(e) à se conformer à la discipline et au règlement intérieur d'École IPSSI.
            </li>
            <li>
            	En favorisant la présence du maître d’apprentissage lors des activités de suivi et d'évaluation telles que les "réunions - bilan".
            </li>
            <li>
            	En impliquant le maître d’apprentissage dans la réflexion et la rédaction du mémoire de son Apprenti(e).
            </li>
            <li>
            	En autorisant le maître d’apprentissage à assister aux soutenances de la session de l'Apprenti(e). La présence du maître 
            </li>	
        </ul> 

EOT;
}

public function page3() {
    $this->html .= <<<EOT
        <p>
        d’apprentissage étant obligatoire pour l'évaluation et la validation de la soutenance. Les dates de soutenance seront définies et <br/>
         communiquées au client un mois à l'avance.
        En cas de rupture du contrat d’Apprentissage avec son Apprenti(e), le Client s'engage à avertir par écrit École IPSSI, l'OPCO et <br/>
        la DIRECCTE. Le Client restera redevable des heures de formation suivies par son Apprenti(e) selon les modalités décrites à l'article 8 de <br/>
        la présente convention.            
        </p>
        
        <p>
        ARTICLE 7 : Obligation de suivi des cours <br/>
        Toute absence en formation de l'Apprenti(e) sera facturée au Client au taux horaire indiqué à l'article 3. <br/>
        Le client est en droit de déduire du bulletin de salaire de l'Apprenti(e) le montant relatif à ses heures d'absence en formation. <br/>
        ÉCOLE IPSSI se réserve le droit de reprogrammer les journées de formation couvertes par un arrêt maladie. Le client ne peut accorder <br/>
        de congés payés sur le temps imparti à la formation. <br/>
        Durant la totalité du contrat d’apprentissage, le Client s'engage à envoyer en formation l'Apprenti(e), aux périodes définies sur le <br/>
        calendrier ci-joint et s'assurer de sa présence en formation. <br/>
        En cas d'absences ou retards répétés (justifiés ou non), ÉCOLE IPSSI se réserve le droit : <br/>
        </p>
         
        <ul>
            <li>d'avertir par courrier recommandé ou courrier électronique l'Apprenti(e) et l'employeur, </li> 
            <li>de facturer à l’employeur les heures de formation non suivies par son apprenant(e) du fait de son absence, au coût horaire indiqué à l’article 3,</li> 
            <li>de dénoncer le contrat d’Apprentissage et rompre la présente convention,</li> 
            <li>les heures de formation restantes à compter de la date de rupture de la convention seront facturées à l’employeur au coût horaire <br/> indiqué à l’article 3.</li> 
        </ul>
        <p>En cas d’exclusion temporaire de la formation, ÉCOLE IPSSI se réserve le droit : </p> <br/>
        <ul>
            <li>d'avertir par courrier recommandé ou courrier électronique l'Apprenti(e) et l'employeur, </li> 
            <li> de facturer à l’employeur les heures de formation non suivies par son apprenant(e) du fait de son exclusion temporaire au coût horaire <br/> indiqué à l’article 3 </li>
            <li> d'avertir par courrier recommandé ou courrier électronique l'Apprenti(e) et l'employeur,</li>  
        </ul>
        
        <p>En cas d’exclusion définitive de la formation, ÉCOLE IPSSI se réserve le droit :</p> <br/>
        
        <ul>
            <li>de dénoncer le contrat d’Apprentissage et rompre la présente convention,</li> 
            <li>de facturer à l’employeur les heures de formation restantes à compter de la date de rupture de la convention au coût horaire indiqué à l’article 3</li>
        </ul>

        <p>
        ARTICLE 8 : Rupture de la convention de formation <br/>
        8.1 Cas général <br/> 
         
        
        La présente CONVENTION pourra être dénoncée par courrier recommandé, uniquement pour motif réel et sérieux, sur la demande <br/>
        d'une des parties à l'autre partie, qui confirmera, dès réception, par courrier recommandé. <br/>
        La rupture prendra effet 30 jours après réception dudit courrier. <br/>
        Les deux parties se rapprocheront pour en informer l'OPCO dans les plus brefs délais. <br/>
        Le client restera redevable des heures de formation effectuées par l'Apprenti(e) jusqu'à la date de rupture de la présente convention. <br/>
        </p>
        
        <p><span style="font-style: italic">8.2 Cas particuliers</span> <br/>
        En cas de rupture de la présente CONVENTION par le Client avant le terme de la formation pour une des raisons suivantes : <br/></p>
        
        <ul>
        <li>Licenciement de l'Apprenti(e) en vue d'une embauche en CDD ou CDI par le Client avant le terme de sa formation,</li> 
        <li> Rupture conventionnelle entre l'Apprenti(e) et le Client en vue d'une embauche en CDD ou CDI par le Client</li> 
        <li> Démission de l'Apprenti(e) en vue d'une embauche en CDD ou CDI par le Client ou l’une de ses filiales </li> 
        <li>Rupture de la présente convention afin que l'Apprenti(e) change d'école pour continuer sa collaboration avec le Client,</li> 
        <li>Rupture de la présente convention afin que l’Apprenti(e) prenne le statut d’auto-entrepreneur pour continuer sa collaboration avec le client, </li> 
        </ul>
        <p>le Client sera redevable des frais de recrutement de l'Apprenti(e) à hauteur de 100% du montant total de la formation.</p>

        <p>
        ARTICLE 9 : Modification
        Toute modification à cette convention fera l'objet d'un avenant.
        </p>

        <p>
        ARTICLE 10 : Dispositions particulières 
        Si un différend n'a pu être réglé à l'amiable entre les deux parties, le Tribunal de Commerce concerné sera seul compétent pour <br/>
        régler les litiges. <br/>
        La présente convention prend effet à partir de la date de signature entre le représentant de l’ÉCOLE IPSSI et le représentant de la <br/>
        société {$this->data['employeur']['nom_societe']}. <br/>
        Fait en triple exemplaires, à {$this->data['organisme']['ville']} le {$this->todayDate} <br/>
        
        Pour {$this->data['employeur']['nom_societe']}         <span>Pour l'École IPSSI</span>  <br/>
        <span style="color: blue ">Nom, qualité, signature et cachet d'entreprise</span>  <span style="color: blue ">Signature et cachet</span><br/>
        précédé de la mention "lu et approuvé"
        </p>

EOT;
}
}I then send data that I retrieve from my database via the convention_appretissage.php file.<?php
include 'GenerateConventionApprentissage.php';
include("../../identif/logins.php");

mysql_connect($serveur_z, $login_z, $pass_z);
mysql_select_db($base_z);

$id_eleve = isset($_POST['id']) ? $_POST['id'] : '';

if(0 !== (int)$_POST['time_forma_month'] && 0 !== (int)$_POST['time_forma_year'] ) {
$time_forma_month = (int)$_POST['time_forma_month'];
$time_forma_year = (int)$_POST['time_forma_year'];
}

//requête pour les tables employeur et candidature
$req = "SELECT e.nom_societe,
e.num_siret,
e.adresse1,
e.cp,
e.ville,
e.tel1,
e.nom_responsable,
e.opca_nom,
e.nom_tuteur,
e.date_deb_contrat,
e.date_fin_contrat,
e.date_fin_forma,
e.date_deb_forma,
c.type,
c.nom,
c.prenom,
c.nationalite,
c.adresse,
c.cp,
c.ville,
c.naissance,
cu.libelle,
cu.libelle_titre_convention,
cp.contrat_total_duree_action,
cf.taux_opca
FROM employeur AS e
INNER JOIN candidature AS c ON e.id = c.id
INNER JOIN cursus AS cu ON cu.ID_cursus = c.typecursus
INNER JOIN contrat_pro AS cp ON cp.ID_eleve = c.id
INNER JOIN convention_formation AS cf ON c.id = cf.id_eleve
WHERE c.id = " . $id_eleve;

//var_dump($req);

$result_req = mysql_query($req);
$candidat_infos = mysql_fetch_assoc($result_req);

$mois = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');

$total_ht = round($candidat_infos['contrat_total_duree_action'] * $candidat_infos['taux_opca'], 2);
$total_tva = round($total_ht * 0.196, 2);
$total_ttc = round($total_ht + $total_tva, 2);

$total_ht_opco = round($total_ht - $total_tva, 2);
$total_ht_opco_year = round($total_ht - $total_tva, 2) / $time_forma_month;
$total_tva_opco = round($total_ht_opco * 0.196, 2);
$total_ttc_opco = round($total_ht_opco + $total_tva_opco,2);

$total_ht_entreprise = round($total_ht - $total_ht_opco, 2);
$total_ht_entreprise_year = round($total_ht - $total_ht_opco, 2) / $time_forma_month;
$total_tva_entreprise = round($total_ht_entreprise * 0.196, 2);
$total_ttc_entreprise = round($total_ht_entreprise + $total_tva_entreprise, 2);

//$date_deb_forma = new DateTime($candidat_infos['date_deb_contrat']);
//$date_fin_forma = new DateTime($candidat_infos['date_fin_contrat']);
//$interval = $date_deb_forma->diff($date_fin_forma);
//$duree_months = $interval->format('%m');

$data = array(
'candidat' => array(
'cursus_libelle' => htmlentities($candidat_infos['libelle']),
'cursus_libelle_titre_convention' => htmlentities($candidat_infos['libelle_titre_convention']),
'nom' => htmlentities($candidat_infos['nom']),
'prenom' => htmlentities($candidat_infos['prenom']),
'type' => $candidat_infos['type'],
'nationalite' => $candidat_infos['nationalite'],
'adresse' => $candidat_infos['adresse'],
'naissance' => $candidat_infos['naissance'],
'nb_heures_forma' => $candidat_infos['contrat_total_duree_action'],
'date_forma_deb' => $candidat_infos['date_deb_forma'],
'date_forma_fin' => $candidat_infos['date_fin_forma'],
'date_examen' => $mois[(substr($candidat_infos['date_fin_forma'], 3, 2)-1)].' / '.substr($candidat_infos['date_fin_forma'], 6, 9),
'time_forma_month' => $time_forma_month,
'time_forma_year' => $time_forma_year,
),
'employeur' => array(
'nom_societe' => $candidat_infos['nom_societe'],
'num_siret' => $candidat_infos['num_siret'],
'adresse' => $candidat_infos['adresse1'],
'cp' => $candidat_infos['cp'],
'ville' => $candidat_infos['ville'],
'tel' => $candidat_infos['tel1'],
'nom_responsable' => $candidat_infos['nom_responsable'],
'opca_nom' => $candidat_infos['opca_nom'],
'nom_tuteur' => $candidat_infos['nom_tuteur'],
'date_contrat_deb' => $candidat_infos['date_deb_contrat'],
'date_contrat_fin' => $candidat_infos['date_fin_contrat'],
'taux_opca' => $candidat_infos['taux_opca'],
'total_ht' => $total_ht,
'total_tva' => $total_tva,
'total_ttc' => $total_ttc,
'total_ht_opco' => $total_ht_opco,
'total_tva_opco' => $total_tva_opco,
'total_ttc_opco' => $total_ttc_opco,
'total_ht_opco_year' => $total_ht_opco_year,
'total_ht_entreprise' => $total_ht_entreprise,
'total_tva_entreprise' => $total_tva_entreprise,
'total_ttc_entreprise' => $total_ttc_entreprise,
'total_ht_entreprise_year' => $total_ht_entreprise_year,
),
'organisme' => array(
'denominationSociale' => RAISON_SOCIALE,
'siret' => SIRET,
'declarationExistence' => DECLARATION_EXISTENCE,
'adresse' => ADRESSE,
'codePostal' => CODE_POSTAL,
'ville' => VILLE,
'telephone' => TELEPHONE,
'fax' => FAX,
'representee' => CIVILITE_DIR_GENERAL.' '.NOM_DIR_GENERAL.' '.PRENOM_DIR_GENERAL,
'uai' => UAI,
'campus' => CAMPUS,
),
'mlv' => array(
'campus' => CAMPUS_MLV,
'adresse' => ADRESSE_MLV,
'codePostal' => CODE_POSTAL_MLV,
'ville' => VILLE_MLV,
),
'sqy' => array(
'campus' => CAMPUS_SQY,
'adresse' => ADRESSE_SQY,
'codePostal' => CODE_POSTAL_SQY,
'ville' => VILLE_SQY,
)
);

//echo '

';
//var_dump($data);
//echo '
';

require_once('../librairies/html2pdf/html2pdf.class.php');
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$pdf = new GenerateConventionApprentissage($html2pdf, $data);
$pdf->generatePDF();
Finally, for the data that I don't have in base, I created a form ( file : form_convention_apprentissage.php ) that send them to the file convention_apprentissage.php :<?php

$prospect = isset($_GET['prospect']) ? $_GET['prospect'] : '';

include("../../identif/logins.php");
include("../verif_session.php");
MYSQL_CONNECT($serveur_z, $login_z, $pass_z);
mysql_select_db($base_z);

$menu_haut_eleve = '../';
include $menu_haut_eleve . 'menu_haut_eleve.php';

//recup le nom, prenom de l'élève en question
$req_info_eleve = mysql_query("SELECT nom, prenom FROM candidature WHERE id = ".$prospect);
$res_info_eleve = mysql_fetch_object($req_info_eleve);
$nom = strtoupper($res_info_eleve->nom);
$prenom = $res_info_eleve->prenom;
?>

<style> * { font-family: 'Ubuntu', sans-serif; } </style>

Convention de Formation - Contrat d'apprentissage

Convention pour l'élève :

Informations sur la Formation

Durée de la période de formation (en année)
Durée de la période de formation (en mois)


<script type="text/javascript"> function validateForm() { let time_forma_month, time_forma_year; time_forma_month = parseInt(document.getElementById("time_forma_month").value, 10); time_forma_year = parseInt(document.getElementById("time_forma_year").value, 10); error = "Veuillez renseigner toutes les informations"; if(isNaN(time_forma_month && isNaN(time_forma_year))) { document.getElementById('error').innerHTML = error; return false; } return true; } </script>

`
Here are the results of my pdf, it will be images from page 1 to page 3 :
There is even a white page between the page 2 and the page 3 :
n°1 :
convention_bug2
n°2:
convention_bug3
n°3:
convention_bug4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.