Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

je veux charcher la librairie tcpdf depuis mon layout du plugin Administration il se trouve dans le repertoire

localhost/monprojet/plugins/Administration/Lib/PDF

 require_once ROOT . DS.'plugins'. DS.'Administration' .DS. 'Lib' . DS .'PDF' . DS; 

Ce que je veux

que le repertoire soit charger dans mon layout

Ce que j'obtiens

failed to open stream: Permission denied [ROOT\plugins\Administration\src\Template\Layout\pdf\default.ctp, line 4]

Je suis sur windows et je ne sais pas comment faire pour ajouter ces permissions

cordialement

13 réponses


romses
Auteur

personne n'a encore eu ce problème?

Es-tu sur d'avoir renseigné la constante "ROOT" ? Je suis étonné de l'url en erreur "ROOT\plugins"

romses
Auteur

Renseigner comment? voila ce que je fais

require_once ROOT . DS.'plugins'. DS.'Administration' .DS. 'Lib' . DS .'PDF' . DS; 

Bonjour.
Il y a un gros problème dans ta ligne de code.
Car require, include et leurs dérivés permettent de charger un fichier, sauf que toi tu donnes seulement un chemin vers un répertoire/dossier.
Donc ton require_once ne doit pas se terminer par un DS, mais par un fichier.

romses
Auteur

Merci j'ai fait ce constat sauf que d'après ce tutos lien
je ne comprends pas comment l'auteur dit que cela fonctionne or que moi j'y arrive pas

Parce que tu n'as pas vu la fin de la ligne :

// inclusion de la librairie TCPDF require_once ROOT . DS . 'vendor' . DS . 'tecnick.com' . DS . 'tcpdf' . DS . 'tcpdf.php';

Regardes bien en bas des cadres de code, tu as un ascenseur.

romses
Auteur

Merci je pense tu viens de me donner une piste pour mon problème

romses
Auteur

Aussi une dernière question, j'ai ma bibliothèque html2pdf qui se trouve dans le repertoire src/lib de mon projet j'aimerai charger son fichier html2pdf.php depuis mon layout qui se trouve dans mon plugin Administration/src/Template/Layout/default.ctp

comment j'y procède? SVP

romses
Auteur

Non mon appliest avec la V3 de cake, la V2 concernait un prlobème posé par un membre ici et dont je donnais des pistes. Moi mon Appliest fait avec cakephp3,

mon soucis est que je veux générer mes documents en pdf sans passer par un plugin, mais en utilisant la librairie html2pdf.
d'après mes recherches, j'ai téléchargé la librairie et transférer dans src/Lib/html2pdf.

étant dans mon plugin, Administration, j'aimerai charger la librairie dans mon layout d'ou mon problème

Il te suffit de mettre dans le layout de ton plugin :


require_once APP . 'lib' . DS /** suite du chemin avec le fichier à charger **/;
romses
Auteur

c'est ce que je fait depuis sauf voila le message d'erreur

Warning (2): fopen(file://F:\wamp64\www\myproject\src\files\pdf.pdf) [<a href='https://secure.php.net/function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory [APP/Lib\tcpdf\include\tcpdf_static.php, line 2440]

par contre dans le dans le src/Lib/tcpdf/include/ j'ai bien le fichier tcpdf_static.php

L'erreur retourne qu'il n'est pas possible d'ouvrir le fichier pdf.pdf qui devrait se trouver dans src/files.
Il n'est à aucun moment dit dans l'erreur qu'il n'arrive pas à ouvrir le fichier __tcpdf_static.php__.

romses
Auteur

Merci @Lartak, j'ai pu intégré mes fichiers dans mon plugin mais j'ai un autre soucis en effet dans mon layout /pdf/export.ctp, j'ai ceci:


<?php

    header("Content-type: application/pdf");
    require_once APP . 'Lib'. DS . 'html2pdf'. DS . 'tcpdf' . DS . 'tcpdf.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf'. DS . 'tcpdf' . DS . 'tcpdf_autoconfig.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf'. DS . 'tcpdf' . DS . 'tcpdf_barcodes_1d.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf'. DS . 'tcpdf' . DS . 'tcpdf_import.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf'. DS . 'tcpdf' . DS . 'config'. DS .'tcpdf_config.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'html2pdf.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'HTML2PDF_locale.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'HTML2PDF_myPdf.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'HTML2PDF_exception.php';   
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'HTML2PDF_parsingCss.php'; 
    require_once APP . 'Lib'. DS . 'html2pdf' . DS . 'HTML2PDF_parsingHtml.php'; 

   $pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(0, 0, 0, 0));
   $pdf->pdf->SetDisplayMode('fullpage');
    $pdf->writeHTML($this->fetch('content'));

$pdf->Output(APP . 'src' . DS . 'Lib' . DS . 'd.pdf', 'I');

 ?>

et dans ma vue impressions/pdf/export.ctp j'ai ceci

texte à afficheé

dans mon action export de mon controller impressions j'ai ceci

 public function export()
    {
        $this->response->type('pdf');
        return $this->response;
    }

lorsque j'execute l'action export, le navigateur m'afiche une tentative d'affichage de page pdf avec un message du genre :
il est possible que ce document ne s'affiche pas correctement

la je ne comprends pas SVP