Pas de compte !!!
Documentations > WIKI > WIKI pour tcpdf_for_xoops > Méthode pour construire un fichier makepdf.php_V2/ A method for building a file makepdf.php_V2

Méthode pour construire un fichier makepdf.php_V2/ A method for building a file makepdf.php_V2

Publié par montuy337513 le 05-Sep-2014 21:00 (4428 lectures)


Version française


(see english version)

Ce tutoriel est conçu pour TCPDF_for_Xoops 2.00 et supérieur.
Si vous avez une version inférieur de ce Frameworks, merci de consulter cette page

Voici la structure d'un fichier makepdf.php

1 - la partie 'vérification', histoire de voir la provenance du visiteur, son groupe, si il est enregistré, etc... .
C'est la même structure que pour une page de module.

2 - la partie 'préparation des données', vous allez cherchez les données à mettre en PDF dans la base de données (ou autre, c'est selon le module), puis vous les mettez en forme.

3 - Création du fichier PDF

4 - Affichage du fichier PDF (c'est le plus simple)

La création du fichier makepdf.php par la pratique.



Pour TCPDF_for_Xoops Version 2.00 et supérieur

Comme un bon exemple vaut mieux qu'un grand discours, nous allons prendre le fichier makepdf.php du module Publisher

<?php
/**
    * File : makefile.pdf for publisher
    * For tcpdf_for_xoops 2.00 and higher
    * Created by montuy337513 / philodenelle - http://www.chg-web.org
**/
error_reporting(0); // Il est impératif de couper l'affichage des erreurs

include_once dirname(__FILE__) . '/header.php'// Appel du fichier header.php du module
$itemid PublisherRequest::getInt('itemid'); // Appel du contenu de la page
$item_page_id PublisherRequest::getInt('page', -1);
// Pas d'article, renvoi sur la page précédente
if ($itemid == 0) {
    
redirect_header("javascript:history.go(-1)"1_MD_PUBLISHER_NOITEMSELECTED);
    exit();
}
// Test si TCPDF_for_Xoops est installé
if (!is_file(XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php') && !is_file(XOOPS_PATH.'/vendor/tcpdf/tcpdf.php')) {
    
redirect_header(XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/viewtopic.php?topic_id='.$itemid,3,'TCPF for Xoops not installed');
}
// Compatibilité avec xoops 2.5.6 et inférieur
if (is_file(XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php')) $source 'fram';
if (
is_file(XOOPS_PATH.'/vendor/tcpdf/tcpdf.php')) $source 'vendor';
// Creating the item object for the selected item
$itemObj $publisher->getHandler('item')->get($itemid);

// if the selected item was not found, exit
if (!$itemObj) {
    
redirect_header("javascript:history.go(-1)"1_MD_PUBLISHER_NOITEMSELECTED);
    exit();
}

// Creating the category object that holds the selected item
$categoryObj $publisher->getHandler('category')->get($itemObj->categoryid());

// Check user permissions to access that category of the selected item
if (!$itemObj->accessGranted()) {
    
redirect_header("javascript:history.go(-1)"1_NOPERM);
    exit();
}

xoops_loadLanguage('main'PUBLISHER_DIRNAME);

$dateformat $itemObj->datesub();
$sender_inform sprintf(_MD_PUBLISHER_WHO_WHEN$itemObj->posterName(), $itemObj->datesub());
$mainImage $itemObj->getMainImage();

$content '';
if (
$mainImage['image_path'] != '') {
    
$content .= '<img src="' $mainImage['image_path'] . '" alt="' $myts->undoHtmlSpecialChars($mainImage['image_name']) . '"/>';
}
$content .= '<a href="' PUBLISHER_URL '/item.php?itemid=' $itemid '" style="text-decoration: none; color: black; font-size: 120%;" title="' $myts->undoHtmlSpecialChars($itemObj->title()) . '">' $myts->undoHtmlSpecialChars($itemObj->title()) . '</a>';
$content .= '<br /><span style="color: #CCCCCC; font-weight: bold; font-size: 80%;">' _CO_PUBLISHER_CATEGORY ' : </span><a href="' PUBLISHER_URL '/category.php?categoryid=' $itemObj->categoryid() . '" style="color: #CCCCCC; font-weight: bold; font-size: 80%;" title="' $myts->undoHtmlSpecialChars($categoryObj->name()) . '">' $myts->undoHtmlSpecialChars($categoryObj->name()) . '</a>';
$content .= '<br /><span style="font-size: 80%; font-style: italic;">' $sender_inform '</span><br />';
$content .= $itemObj->plain_maintext();

// Configuration pour TCPDF_for_Xoops (voir le fichier ./docs/pdf_array.txt pour connaître l'ensemble des paramètres configurables)
$pdf_data = array (
    
'author' => $itemObj->posterName(),
    
'title' => $myts->undoHtmlSpecialChars($categoryObj->name()),
    
'page_format' => 'A4',
    
'page_orientation' => 'P',
    
'unit' => 'mm'
);
// Compatibilité avec xoops 2.5.6 et inférieur
switch($source){
    case 
'fram':    
        require_once (
XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php');
        break;
    case 
'vendor':
        require_once (
XOOPS_PATH.'/vendor/tcpdf/tcpdf.php');
        break;
    default:
        
redirect_header(XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/viewtopic.php?topic_id='.$itemid,3,'TCPF for Xoops not installed');
}

// Appel de la class TCPDF
$pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue_CHARSETfalse);

// Mise en forme du titre
$doc_title publisher_convertCharset($myts->undoHtmlSpecialChars($itemObj->title()));
$doc_keywords 'XOOPS';

// set document information, les en-têtes pour le document PDF
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle($doc_title);
$pdf->SetSubject($doc_title);
$pdf->SetKeywords(XOOPS_URL ', '.' by tcpdf_for_xoops (chg-web.org), '.$doc_title);

$pdf->SetHeaderData(PDF_HEADER_LOGOPDF_HEADER_LOGO_WIDTHPDF_HEADER_TITLEPDF_HEADER_STRING); // Création du header de la page

//Paramètrage des marges et configuration diverse
$pdf->SetMargins(PDF_MARGIN_LEFTPDF_MARGIN_TOP PDF_MARGIN_RIGHT);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(true25);

$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor

$pdf->setHeaderFont(Array(PDF_FONT_NAME_SUB''PDF_FONT_SIZE_SUB));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA''PDF_FONT_SIZE_DATA));
$pdf->setFooterData($tc=array(0,64,0), $lc=array(0,64,128));

//initialisation du document
$pdf->Open();
$pdf->AddPage();
// Création du contenu du fichier PDF
$pdf->writeHTML($contenttrue0true0);
// Affichage du fichier PDF
$pdf->Output();

Voilà, vous savez créer un fichier makepdf.php, en attendant que les WIKI s'étoffent ici, vous pouvez consulter le site officiel du projet TCPDF pour obtenir plus de renseignement sur les fonctionnalités de cette class PHP très complète.

English version


(voir la version française)

This tutorial is designed to TCPDF_for_Xoops 2.00 and higher.
If you have a lower version of this Frameworks, thank you check this page

Here is the structure of a file makepdf.php

1 - the party 'verification', just to see the visitor came from, its affiliates, if it is registered, etc. ... . This is the same structure as for a page module.

2 - Part 'data preparation', you want the data to PDF in the database (or other is depending on module), then you put them in shape.

3 - Creation of PDF

4 - Display the PDF (this is the easiest)

file creation makepdf.php by practice.



As a good example is worth a great speech, we will take the file makepdf.php module Publisher

<?php
/**
    * File : makefile.pdf for publisher
    * For tcpdf_for_xoops 2.00 and higher
    * Created by montuy337513 / philodenelle - http://www.chg-web.org
**/
error_reporting(0); // It is imperative to cut the error display

include_once dirname(__FILE__) . '/header.php'// include header.php 
$itemid PublisherRequest::getInt('itemid'); // Call the content of the page
$item_page_id PublisherRequest::getInt('page', -1);
// Pas d'article, renvoi sur la page précédente
if ($itemid == 0) {
    
redirect_header("javascript:history.go(-1)"1_MD_PUBLISHER_NOITEMSELECTED);
    exit();
}
// Test if TCPDF_for_Xoops installed
if (!is_file(XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php') && !is_file(XOOPS_PATH.'/vendor/tcpdf/tcpdf.php')) {
    
redirect_header(XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/viewtopic.php?topic_id='.$itemid,3,'TCPF for Xoops not installed');
}
// Compatibility with XOOPS 2.5.6 and lower
if (is_file(XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php')) $source 'fram';
if (
is_file(XOOPS_PATH.'/vendor/tcpdf/tcpdf.php')) $source 'vendor';
// Creating the item object for the selected item
$itemObj $publisher->getHandler('item')->get($itemid);

// if the selected item was not found, exit
if (!$itemObj) {
    
redirect_header("javascript:history.go(-1)"1_MD_PUBLISHER_NOITEMSELECTED);
    exit();
}

// Creating the category object that holds the selected item
$categoryObj $publisher->getHandler('category')->get($itemObj->categoryid());

// Check user permissions to access that category of the selected item
if (!$itemObj->accessGranted()) {
    
redirect_header("javascript:history.go(-1)"1_NOPERM);
    exit();
}

xoops_loadLanguage('main'PUBLISHER_DIRNAME);

$dateformat $itemObj->datesub();
$sender_inform sprintf(_MD_PUBLISHER_WHO_WHEN$itemObj->posterName(), $itemObj->datesub());
$mainImage $itemObj->getMainImage();

$content '';
if (
$mainImage['image_path'] != '') {
    
$content .= '<img src="' $mainImage['image_path'] . '" alt="' $myts->undoHtmlSpecialChars($mainImage['image_name']) . '"/>';
}
$content .= '<a href="' PUBLISHER_URL '/item.php?itemid=' $itemid '" style="text-decoration: none; color: black; font-size: 120%;" title="' $myts->undoHtmlSpecialChars($itemObj->title()) . '">' $myts->undoHtmlSpecialChars($itemObj->title()) . '</a>';
$content .= '<br /><span style="color: #CCCCCC; font-weight: bold; font-size: 80%;">' _CO_PUBLISHER_CATEGORY ' : </span><a href="' PUBLISHER_URL '/category.php?categoryid=' $itemObj->categoryid() . '" style="color: #CCCCCC; font-weight: bold; font-size: 80%;" title="' $myts->undoHtmlSpecialChars($categoryObj->name()) . '">' $myts->undoHtmlSpecialChars($categoryObj->name()) . '</a>';
$content .= '<br /><span style="font-size: 80%; font-style: italic;">' $sender_inform '</span><br />';
$content .= $itemObj->plain_maintext();

// Configuration for TCPDF_for_Xoops (see ./docs/pdf_array.txt file for all configurable parameters)
$pdf_data = array (
    
'author' => $itemObj->posterName(),
    
'title' => $myts->undoHtmlSpecialChars($categoryObj->name()),
    
'page_format' => 'A4',
    
'page_orientation' => 'P',
    
'unit' => 'mm'
);
// Compatibility with XOOPS 2.5.6 and lower
switch($source){
    case 
'fram':    
        require_once (
XOOPS_ROOT_PATH.'/Frameworks/tcpdf/tcpdf.php');
        break;
    case 
'vendor':
        require_once (
XOOPS_PATH.'/vendor/tcpdf/tcpdf.php');
        break;
    default:
        
redirect_header(XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/viewtopic.php?topic_id='.$itemid,3,'TCPF for Xoops not installed');
}

// Call class TCPDF
$pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue_CHARSETfalse);

// Formatting the title
$doc_title publisher_convertCharset($myts->undoHtmlSpecialChars($itemObj->title()));
$doc_keywords 'XOOPS';

// set document information, les en-têtes pour le document PDF
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle($doc_title);
$pdf->SetSubject($doc_title);
$pdf->SetKeywords(XOOPS_URL ', '.' by tcpdf_for_xoops (chg-web.org), '.$doc_title);

$pdf->SetHeaderData(PDF_HEADER_LOGOPDF_HEADER_LOGO_WIDTHPDF_HEADER_TITLEPDF_HEADER_STRING); // Création du header de la page

//Parameterization margins and various configuration
$pdf->SetMargins(PDF_MARGIN_LEFTPDF_MARGIN_TOP PDF_MARGIN_RIGHT);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(true25);

$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor

$pdf->setHeaderFont(Array(PDF_FONT_NAME_SUB''PDF_FONT_SIZE_SUB));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA''PDF_FONT_SIZE_DATA));
$pdf->setFooterData($tc=array(0,64,0), $lc=array(0,64,128));

// initialization document
$pdf->Open();
$pdf->AddPage();
// Creation of PDF file contents
$pdf->writeHTML($contenttrue0true0);
// Display PDF
$pdf->Output();


Now you know makepdf.php create a file, you can visit the official project TCPDF for more information about the features of this very complete PHP class.


Naviguer à travers les articles
Article précédent Convertir une police pour tcpdf_for_xoops / Convert a font for TCPDF_for_Xoops Paramètres configurables pour TCPDF_for_Xoops 2 / Configurable parameters for TCPDF_for_Xoops 2 Article suivant
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat

Extraits de nos produits en téléchargement

Publicité