Rajout du dossier core + MAJ .gitignore

This commit is contained in:
2019-11-21 12:48:42 +01:00
parent f4aabcb9b1
commit 459f8966b0
10448 changed files with 1835600 additions and 1 deletions

6487
core/vendor/ensepar/html2pdf/HTML2PDF.php vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
HTML2PDF unofficial fork with Composer support
==============================================
- Fixed tcpdf composer dependency problem.

165
core/vendor/ensepar/html2pdf/_LGPL.txt vendored Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@@ -0,0 +1,314 @@
4.03 (2011-05-27)
correction de l'exemple "form.php" : vulnérabilité cross-site scripting corrigée
correction sur la gestion des retours à la ligne automatique
correction sur le calcul de la hauteur des balises H1->H6
amélioration de la gestion des exceptions
4.02 (2011-04-29)
ATTENTION : beaucoup de changements dans la structure du projet. version 3.xx abandonnée
uniformisation des fichiers du projet (standard Zend)
conversion des fichiers de langue en CSV, déplacement dans le répertoire "locale". création d'une classe spécifique à la gestion des locales
amélioration de la gestion de certaines erreurs
modification du nom de toutes les sous classes
déplacement de toutes les sous classes
modification du nom de toutes les méthodes protected
correction sur la gestion des tables
correction sur la lecture des path des SVG
premiere version de text-align:justify
correction sur la gestion de la balise BLOCKQUOTE
correction sur la gestion de la balise P
gestion des styles CSS pour les balises TEXTAREA, SELECT, INPUT
ajout de la propriété pagegroup="new" sur la balise PAGE
correction pour la balise INPUT de type radio : checked au lieu de selected
3.30 / 4.01 (2010-05-07)
correction sur la gestion des textes
correction sur le parseur HTML
correction sur la gestion de border-collapse
correction sur la gestion des TDs, H1->H6
ajout des balises fieldset et legend (cf exemple 4)
ajout de la langue CS
nombreuses améliorations
v4.01 uniquement : Utilisation de TCPDF 5.0.002
v4.01 uniquement : Utilisation des QR-code de TCPDF, il n'y a plus besoin d'une librairie externe
v4.01 uniquement : Utilisation des exceptions PHP pour les erreurs. Tous les exemples ont été mis à jour en consequence
(merci à Pavel Kochman pour ses sugestions et ses ajouts)
3.29 / 4.00 (2010-03-17)
modification des barcodes. ATTENTION : bar_w et bar_h n'existent plus !
correction sur la gestion de page_footer
correction sur la gestion des html entities
correction sur le positionnement des textes
correction sur le positionnement des tableaux
nombreuses corrections sur les positionnements, les couleurs, ...
amélioration de la partie SVG (balise G, ...)
amélioration sur createIndex
harmonisation des noms des méthodes
correction sur la gestion des textes
v4.00 uniquement : HTML2PDF est maintenant écrit en PHP5 et basé sur TCPDF (=> unicode, utf8, ...)
v4.00 uniquement : utilisation de TCPDF pour les formulaires et les barcodes
v4.00 uniquement : amélioration de la partie SVG (alpha)
3.28 (2010-01-18)
ajout de la gestion de la balise label
correction pour compatibilité PHP4
3.27 (2010-01-11)
correction sur page_header et page_footer
ajout de la possibilité de pouvoir mettre l'index automatique dans la page que l'on veut
correction sur la gestion du canal alpha pour les PNGs
correction sur la gestion des border-radius (cf exemple radius) conforme au CSS3
correction sur la gestion du background-color
correction sur la gestion de thead, tfoot, et tbody
ajout du dessin verctoriel (cf exemples draw, tigre, sapin)
ajout de la propriété label="none/label" pour la balise <barcode>
nombreux petits correctifs
3.26 (2009-11-16)
correction pour support des images générés en CGI
ajout de la gestion du canal alpha pour les PNGs (nécessite GD2)
ajout de la méthode setDefaultFont permettant de spécifier une fonte par défaut
ajout de la propriété format pour la balise <page> (cf exemple 4)
amélioration de la gestion des couleurs css RGB (cf exemple 2)
ajout de la gestion des couleurs css CMYK (cf exemple 2)
ajout de la propriété css overflow:hidden pour la balise <div> (cf exemple 2)
correction sur page_header et page_footer
ajout de la possibilité de pouvoir directement convertir le résultat d'une vraie page HTML
nombreux petits correctifs sur les styles
3.25 (2009-10-07)
correctif sur le calcul des tableaux dans le page_footer
correctif sur l'interprétation des espaces entre certaines balises
correction sur la gestion des balises H1, H2, H3, H4, H5, H6
correction sur la gestion de la balise table
support des balises xhtml du type <span />
ajout des balises COL (cf exemple 5), DEL, INS, et QRCODE (cf exemple 13)
ajout de la propriété css text-transform
ajout de la propriété css rotate (uniquement sur les DIV, cf exemple 8)
ne plus rendre obligatoire l'existence d'une image (nouvelle méthode setTestIsImage)
ajout d'un mode DEBUG - les anciennes fonction d'analyse des ressources ont été supprimées
ajout de la méthode setEncoding
ajout de la langue danoise DA (merci à Daniel K.)
3.24 (2009-08-05)
correction sur le calcul de la largeur des divs
modification pour compatibilité avec la localisation PHP
modification pour compatibilité avec PHP 5.3.0
3.23 (2009-07-30)
correction sur le calcul des DIVs
correction sur l'interpretation de certains styles CSS
correction de la fonction de creation d'index automatique CreateIndex
ATTENTION : la methode d'appel de CreateIndex a changé. Regardez l'exemple About !!!!
3.22a (2009-06-16)
redistribution de HTML2PDF sous la licence LGPL !!! (au lieu de GPL)
3.22 (2009-06-08)
correction sur le background-color
refonte totale de la gestion de text-align. les valeurs center et right marchent maintenant meme en cas de contenu riche
3.21 (2009-05-05)
ajout de la propriété css FLOAT pour la balise IMG
correction sur la gestion des TFOOT
correction sur le positionnement des images
3.20 (2009-04-06)
ajout de la gestion des margins pour la balise DIV
ajout de la gestion de la propriete css LINE-HEIGHT
correction sur l'interpretation de la valeur de certains styles CSS (background-image, background-position, ...)
correction sur la reconnaissance des balises thead et tfoot
correction sur la balise select
correction sur les fichiers de langue (merci à Sinan)
3.19 (2009-03-11)
optimisation du parseur HTML - merci à Jezelinside
ajout de la balise TFOOT
amélioration de la gestion des tableaux : les contenus des balises THEAD et TFOOT sont maintenant répétés sur chaque page.
ajout de la balise spécifique BOOKMARK afin de créer des "marques-page"
possibilité de rajouter un index automatique en fin de fichier
ajout de la langue turque TR (merci à Hidayet)
amélioration de la méthode Output. Elle est maintenant également utilisable comme celle de FPDF
3.18 (2009-02-22)
correction sur les sauts de page automatique pour les balises TABLE, UL, OL
correction sur l'interpretation des styles pour la balise HR
correction sur l'interpretation du style border-collapse pour la balise TABLE
prise en compte de margin:auto pour les tables et les divs
les commentaires dans les CSS sont acceptés
3.17 (2008-12-30)
ajout de la gestion des balises INPUT (text, radio, checkbox, button, hidden, ...), SELECT, OPTION, TEXTAREA (cf exemple 14)
ajout de la possibilité de mettre des scripts dans le pdf, via $html2pdf->pdf->IncludeJS(...); (cf exemples JS)
correction sur le saut de page automatique pour les images
correction sur les sauts de lignes automatiques pour certaines balises (UL, P, ...)
ajout de la langue NL (merci à Roland)
3.16 (2008-12-09)
ajout de la gestion de list-style: none (cf exemple 13)
correction dans la gestion des fontes ajoutées à fpdf (via la méthode AddFont)
nombreuses corrections sur le calcul des largeurs des éléments table, div, hr, td, th
ajout de l'exemple about.php
(pour info, les PDF générés à partir des exemples sont maintenant dans le répertoire /exemples/pdf/, et sont supprimables)
3.15 (2008-12-01)
correction sur l'identification des styles en cas de valeurs multiples dans la propriete class
prise en compte de border-radius pour la limite des backgrounds (color et image)
ajout des proprietes CSS border-top-*, border-right-*, border-bottom-*, border-left-*
ajout de la propriété CSS list-style-image (cf exemple 12)
pour la balise table, ajout de l'interprétation de align="center" et align="right" (cf exemple 1)
correction dans le positionnement des images
correction de quelques bugs
ajout d'une fonction d'analyse des ressources HTML2PDFgetTimerDebug (cf début du fichier html2pdf.class.php)
3.14 (2008-11-17)
ajout d'une langue (pt : Brazilian Portuguese language) et amelioration de la methode vueHTML (merci à Rodrigo)
correction du positionnement du contenu des DIVs. gestion des proprietes valign et align
ajout de la propriete CSS border-collapse (cf exemple 0)
ajout de la propriete CSS border-radius (cf exemple 1)
correction de quelques bugs
3.13 (2008-09-24)
reecriture de la balise hr, avec prise en compte des styles (cf exemple 0)
ajout de la propriete backcolor pour la balise page (cf exemple 9)
ajout des proprietes backleft et backright pour la balise page afin de pouvoir changer les marges des pages (cf exemple 8)
nombreuses corrections sur les balises et les styles
3.12 (2008-09-16)
ajout des balises ol, ul, li (cf exemple 12)
correction sur le calcul de la taille des td en cas de colspan et rowspan
ajout de la méthode setTestTdInOnePage afin de pouvoir desactiver le test sur la taille des TD (cf exemple 11)
correction de quelques bugs
3.11 (2008-08-29)
ajout des balises div, p, pre, s
gestion des styles CSS position (relative, absolute), left, top, right, bottom (cf exemple 10)
meilleur gestion des border : border-style, border-color, border-width (cf exemple 10)
possibilité d'indiquer les marges par défault, via le constructeur (cf exemple 2)
3.10a (2008-08-26)
correction pour compatibilité php4 / php5
3.10 (2008-08-25)
ajout des liens internes (cf exemple 7)
gestion complete des background : image, repeat, position, color (cf exemple 1)
gestion de underline, overline, linethrough (cf exemple 2)
correction de quelques bugs
3.09
mise à jour vers fpdf version 1.6, ajout de barcode, correction de l'affichage de certains caractères spéciaux
correction du calcul de la hauteur de ligne de la balise br
detection en cas de contenu trop grand dans un TD
amélioration de la balise page (ajout de l'attribue pageset, avec les valeurs new et old)
ajout de FPDF_PROTECTION, accesible via $pdf->pdf->SetProtection(...)
3.08
version opérationnelle de page_header
ajout de page_footer
correction des borders des tableaux
3.07
correction de l'interpretation de cellspacing,
amélioration de la balise page_header
3.06
première gestion de la balise page_header
correction des dimensions des tableaux
3.05
ajout de la propriété vertical-align
ajout de la gestion des fichiers de langue
3.04
correction du saut de page automatique pour les tableaux
Ajout de propriétés à la balise PAGE
3.03
correction de bugs au niveau de la gestion des images PHP par FPDF
meilleure gestion des erreurs
3.02
ajout de la gestion des noms des couleurs
correction de la gestion des images générées par php
correction de quelques bugs
3.01
correction de quelques bugs
ajout d'une protection pour les balises non existantes
3.00
refonte totale du calcul des tableaux
Prise en compte des colspan et rowspan
2.85
ajout de la propriété cellspacing
nouvelle gestion des padding des tableaux
2.80
ajout des types de border dotted et dasheds
2.75
ajout des top, left, right, bottom pour padding et border
2.70
correction de la balise HR, ajout de la propriété padding pour les table, th, td
correction des dimensions, les unités px, mm, in, pt sont enfin réellement reproduites, correction de font-size, border, ...
ajout d'une propriété à la balise page : footer
correction dans l'affichage et le calcul des tables
2.55
vérification de la validité du code (ouverture / fermeture)
ajout des unités mm, in, pt
2.50
correction de nobreak
correction des marges
ajout de nombreuses balises
2.40
refonte totale de l'identification des styles CSS (Les héritages marchent)
2.39
corrections diverses
ajout de certaines propriétés (bgcolor, ...)
2.38
meilleur identification des propriétés border et color
2.37
nombreuses corrections :
balise A
couleur de fond
retour à la ligne
gestion des images dans un texte
2.36
ajout de la balises STRONG
ajout de la balise EM
2.35
amélioration de la gestion des feuilles de style
2.31
correction de quelques bugs
2.30
première version opérationnel des feuilles de style
2.25
ajout de la balise LINK pour le type text/css
2.20
premier jet de la gestion des feuilles de style, ajout de la balise STYLE
2.15
n'interpréte plus l'HTML en commentaire <!-- -->
2.10
ajout des balises H1 -> H6
2.01
correction de quelques bugs
2.00
première version diffusée

View File

@@ -0,0 +1,168 @@
<?php
/**
* HTML2PDF Librairy - HTML2PDF Exception
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
* @version 4.03
*/
class HTML2PDF_exception extends exception
{
protected $_tag = null;
protected $_html = null;
protected $_other = null;
protected $_image = null;
protected $_messageHtml = '';
/**
* generate a HTML2PDF exception
*
* @param int $err error number
* @param mixed $other additionnal informations
* @return string $html optionnal code HTML associated to the error
*/
final public function __construct($err = 0, $other = null, $html = '')
{
// read the error
switch($err)
{
case 1: // Unsupported tag
$msg = (HTML2PDF_locale::get('err01'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 2: // too long sentence
$msg = (HTML2PDF_locale::get('err02'));
$msg = str_replace('[[OTHER_0]]', $other[0], $msg);
$msg = str_replace('[[OTHER_1]]', $other[1], $msg);
$msg = str_replace('[[OTHER_2]]', $other[2], $msg);
break;
case 3: // closing tag in excess
$msg = (HTML2PDF_locale::get('err03'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 4: // tags closed in the wrong order
$msg = (HTML2PDF_locale::get('err04'));
$msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
break;
case 5: // unclosed tag
$msg = (HTML2PDF_locale::get('err05'));
$msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
break;
case 6: // image can not be loaded
$msg = (HTML2PDF_locale::get('err06'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_image = $other;
break;
case 7: // too big TD content
$msg = (HTML2PDF_locale::get('err07'));
break;
case 8: // SVG tag not in DRAW tag
$msg = (HTML2PDF_locale::get('err08'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 9: // deprecated
$msg = (HTML2PDF_locale::get('err09'));
$msg = str_replace('[[OTHER_0]]', $other[0], $msg);
$msg = str_replace('[[OTHER_1]]', $other[1], $msg);
$this->_tag = $other[0];
break;
case 0: // specific error
default:
$msg = $other;
break;
}
// create the HTML message
$this->_messageHtml = '<span style="color: #AA0000; font-weight: bold;">'.HTML2PDF_locale::get('txt01', 'error: ').$err.'</span><br>';
$this->_messageHtml.= HTML2PDF_locale::get('txt02', 'file:').' '.$this->file.'<br>';
$this->_messageHtml.= HTML2PDF_locale::get('txt03', 'line:').' '.$this->line.'<br>';
$this->_messageHtml.= '<br>';
$this->_messageHtml.= $msg;
// create the text message
$msg = HTML2PDF_locale::get('txt01', 'error: ').$err.' : '.strip_tags($msg);
// add the optionnal html content
if ($html) {
$this->_messageHtml.= "<br><br>HTML : ...".trim(htmlentities($html)).'...';
$this->_html = $html;
$msg.= ' HTML : ...'.trim($html).'...';
}
// save the other informations
$this->_other = $other;
// construct the exception
parent::__construct($msg, $err);
}
/**
* get the message as string
*
* @access public
* @return string $messageHtml
*/
public function __toString()
{
return $this->_messageHtml;
}
/**
* get the html tag name
*
* @access public
* @return string $tagName
*/
public function getTAG()
{
return $this->_tag;
}
/**
* get the optional html code
*
* @access public
* @return string $html
*/
public function getHTML()
{
return $this->_html;
}
/**
* get the optional other informations
*
* @access public
* @return mixed $other
*/
public function getOTHER()
{
return $this->_other;
}
/**
* get the image source
*
* @access public
* @return string $imageSrc
*/
public function getIMAGE()
{
return $this->_image;
}
}

View File

@@ -0,0 +1,96 @@
<?php
/**
* HTML2PDF Librairy - HTML2PDF Locale
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
* @version 4.03
*/
class HTML2PDF_locale
{
/**
* code of the current used locale
* @var string
*/
static protected $_code = null;
/**
* texts of the current used locale
* @var array
*/
static protected $_list = array();
/**
* directory where locale files are
* @var string
*/
static protected $_directory = null;
/**
* load the locale
*
* @access public
* @param string $code
*/
static public function load($code)
{
if (self::$_directory===null) {
self::$_directory = dirname(dirname(__FILE__)).'/locale/';
}
// must be in lower case
$code = strtolower($code);
// must be [a-z-0-9]
if (!preg_match('/^([a-z0-9]+)$/isU', $code)) {
throw new HTML2PDF_exception(0, 'invalid language code ['.self::$_code.']');
}
// save the code
self::$_code = $code;
// get the name of the locale file
$file = self::$_directory.self::$_code.'.csv';
// the file must exist
if (!is_file($file)) {
throw new HTML2PDF_exception(0, 'language code ['.self::$_code.'] unknown. You can create the translation file ['.$file.'] and send it to the webmaster of html2pdf in order to integrate it into a future release');
}
// load the file
self::$_list = array();
$handle = fopen($file, 'r');
while (!feof($handle)) {
$line = fgetcsv($handle);
if (count($line)!=2) continue;
self::$_list[trim($line[0])] = trim($line[1]);
}
fclose($handle);
}
/**
* clean the locale
*
* @access public static
*/
static public function clean()
{
self::$_code = null;
self::$_list = array();
}
/**
* get a text
*
* @access public static
* @param string $key
* @return string
*/
static public function get($key, $default='######')
{
return (isset(self::$_list[$key]) ? self::$_list[$key] : $default);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,520 @@
<?php
/**
* HTML2PDF Librairy - parsingHtml class
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
* @version 4.03
*/
class HTML2PDF_parsingHtml
{
protected $_html = ''; // HTML code to parse
protected $_num = 0; // table number
protected $_level = 0; // table level
protected $_encoding = ''; // encoding
public $code = array(); // parsed HTML codfe
const HTML_TAB = ' ';
/**
* main constructor
*
* @param string encoding
* @access public
*/
public function __construct($encoding = 'UTF-8')
{
$this->_num = 0;
$this->_level = array($this->_num);
$this->_html = '';
$this->code = array();
$this->setEncoding($encoding);
}
/**
* change the encoding
*
* @param string encoding
* @access public
*/
public function setEncoding($encoding)
{
$this->_encoding = $encoding;
}
/**
* Define the HTML code to parse
*
* @param string HTML code
* @access public
*/
public function setHTML($html)
{
// remove the HTML in comment
$html = preg_replace('/<!--(.*)-->/isU', '', $html);
// save the HTML code
$this->_html = $html;
}
/**
* parse the HTML code
*
* @access public
*/
public function parse()
{
$parents = array();
// flag : are we in a <pre> Tag ?
$tagPreIn = false;
// action to use for each line of the content of a <pre> Tag
$tagPreBr = array(
'name' => 'br',
'close' => false,
'param' => array(
'style' => array(),
'num' => 0
)
);
// tag that can be not closed
$tagsNotClosed = array(
'br', 'hr', 'img', 'col',
'input', 'link', 'option',
'circle', 'ellipse', 'path', 'rect', 'line', 'polygon', 'polyline'
);
// search the HTML tags
$tmp = array();
$this->_searchCode($tmp);
// all the actions to do
$actions = array();
// foreach part of the HTML code
foreach ($tmp as $part) {
// if it is a tag code
if ($part[0]=='code') {
// analise the HTML code
$res = $this->_analiseCode($part[1]);
// if it is a real HTML tag
if ($res) {
// save the current posistion in the HTML code
$res['html_pos'] = $part[2];
// if the tag must be closed
if (!in_array($res['name'], $tagsNotClosed)) {
// if it is a closure tag
if ($res['close']) {
// HTML validation
if (count($parents)<1)
throw new HTML2PDF_exception(3, $res['name'], $this->getHtmlErrorCode($res['html_pos']));
else if ($parents[count($parents)-1]!=$res['name'])
throw new HTML2PDF_exception(4, $parents, $this->getHtmlErrorCode($res['html_pos']));
else
unset($parents[count($parents)-1]);
} else {
// if it is a autoclosed tag
if ($res['autoclose']) {
// save the opened tag
$actions[] = $res;
// prepare the closed tag
$res['params'] = array();
$res['close'] = true;
}
// else :add a child for validation
else
$parents[count($parents)] = $res['name'];
}
// if it is a <pre> tag (or <code> tag) not auclosed => update the flag
if (($res['name']=='pre' || $res['name']=='code') && !$res['autoclose']) {
$tagPreIn = !$res['close'];
}
}
// save the actions to convert
$actions[] = $res;
} else { // else (it is not a real HTML tag => we transform it in Texte
$part[0]='txt';
}
}
// if it is text
if ($part[0]=='txt') {
// if we are not in a <pre> tag
if (!$tagPreIn) {
// save the action
$actions[] = array(
'name' => 'write',
'close' => false,
'param' => array('txt' => $this->_prepareTxt($part[1])),
);
} else { // else (if we are in a <pre> tag)
// prepare the text
$part[1] = str_replace("\r", '', $part[1]);
$part[1] = explode("\n", $part[1]);
// foreach line of the text
foreach ($part[1] as $k => $txt) {
// transform the line
$txt = str_replace("\t", self::HTML_TAB, $txt);
$txt = str_replace(' ', '&nbsp;', $txt);
// add a break line
if ($k>0) $actions[] = $tagPreBr;
// save the action
$actions[] = array(
'name' => 'write',
'close' => false,
'param' => array('txt' => $this->_prepareTxt($txt, false)),
);
}
}
}
}
// for each indentified action, we have to clean up the begin and the end of the texte
// based on tags that surround it
// list of the tags to clean
$tagsToClean = array(
'page', 'page_header', 'page_footer', 'form',
'table', 'thead', 'tfoot', 'tr', 'td', 'th', 'br',
'div', 'hr', 'p', 'ul', 'ol', 'li',
'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
'bookmark', 'fieldset', 'legend',
'draw', 'circle', 'ellipse', 'path', 'rect', 'line', 'g', 'polygon', 'polyline',
'option'
);
// foreach action
$nb = count($actions);
for ($k=0; $k<$nb; $k++) {
// if it is a Text
if ($actions[$k]['name']=='write') {
// if the tag before the text is a tag to clean => ltrim on the text
if ($k>0 && in_array($actions[$k-1]['name'], $tagsToClean))
$actions[$k]['param']['txt'] = ltrim($actions[$k]['param']['txt']);
// if the tag after the text is a tag to clean => rtrim on the text
if ($k<$nb-1 && in_array($actions[$k+1]['name'], $tagsToClean))
$actions[$k]['param']['txt'] = rtrim($actions[$k]['param']['txt']);
// if the text is empty => remove the action
if (!strlen($actions[$k]['param']['txt']))
unset($actions[$k]);
}
}
// if we are not on the level 0 => HTML validator ERROR
if (count($parents)) throw new HTML2PDF_exception(5, $parents);
// save the actions to do
$this->code = array_values($actions);
}
/**
* prepare the text
*
* @param string texte
* @param boolean true => replace multiple space+\t+\r+\n by a single space
* @return string texte
* @access protected
*/
protected function _prepareTxt($txt, $spaces = true)
{
if ($spaces) $txt = preg_replace('/\s+/is', ' ', $txt);
$txt = str_replace('&euro;', '€', $txt);
$txt = html_entity_decode($txt, ENT_QUOTES, $this->_encoding);
return $txt;
}
/**
* parse the HTML code
*
* @param &array array's result
* @return null
*/
protected function _searchCode(&$tmp)
{
// initialise the array
$tmp = array();
// regexp to separate the tags from the texts
$reg = '/(<[^>]+>)|([^<]+)+/isU';
// last match found
$str = '';
$offset = 0;
// As it finds a match
while (preg_match($reg, $this->_html, $parse, PREG_OFFSET_CAPTURE, $offset)) {
// if it is a tag
if ($parse[1][0]) {
// save the previous text if it exists
if ($str!=='') $tmp[] = array('txt', $str);
// save the tag, with the offset
$tmp[] = array('code', trim($parse[1][0]), $offset);
// init the current text
$str = '';
} else { // else (if it is a text)
// add the new text to the current text
$str.= $parse[2][0];
}
// Update offset to the end of the match
$offset = $parse[0][1] + strlen($parse[0][0]);
unset($parse);
}
// if a text is present in the end, we save it
if ($str!='') $tmp[] = array('txt', $str);
unset($str);
}
/**
* analise a HTML tag
*
* @param string HTML code to analise
* @return array corresponding action
*/
protected function _analiseCode($code)
{
// name of the tag, opening, closure, autoclosure
$tag = '<([\/]{0,1})([_a-z0-9]+)([\/>\s]+)';
if (!preg_match('/'.$tag.'/isU', $code, $match)) return null;
$close = ($match[1]=='/' ? true : false);
$autoclose = preg_match('/\/>$/isU', $code);
$name = strtolower($match[2]);
// required parameters (depends on the tag name)
$param = array();
$param['style'] = '';
if ($name=='img') {
$param['alt'] = '';
$param['src'] = '';
}
if ($name=='a') {
$param['href'] = '';
}
// read the parameters : nom=valeur
$prop = '([a-zA-Z0-9_]+)=([^"\'\s>]+)';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// read the parameters : nom="valeur"
$prop = '([a-zA-Z0-9_]+)=["]([^"]*)["]';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// read the parameters : nom='valeur'
$prop = "([a-zA-Z0-9_]+)=[']([^']*)[']";
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// compliance of each parameter
$color = "#000000";
$border = null;
foreach ($param as $key => $val) {
$key = strtolower($key);
switch($key)
{
case 'width':
unset($param[$key]);
$param['style'] .= 'width: '.$val.'px; ';
break;
case 'align':
if ($name==='img') {
unset($param[$key]);
$param['style'] .= 'float: '.$val.'; ';
} elseif ($name!=='table') {
unset($param[$key]);
$param['style'] .= 'text-align: '.$val.'; ';
}
break;
case 'valign':
unset($param[$key]);
$param['style'] .= 'vertical-align: '.$val.'; ';
break;
case 'height':
unset($param[$key]);
$param['style'] .= 'height: '.$val.'px; ';
break;
case 'bgcolor':
unset($param[$key]);
$param['style'] .= 'background: '.$val.'; ';
break;
case 'bordercolor':
unset($param[$key]);
$color = $val;
break;
case 'border':
unset($param[$key]);
if (preg_match('/^[0-9]+$/isU', $val)) $val = $val.'px';
$border = $val;
break;
case 'cellpadding':
case 'cellspacing':
if (preg_match('/^([0-9]+)$/isU', $val)) $param[$key] = $val.'px';
break;
case 'colspan':
case 'rowspan':
$val = preg_replace('/[^0-9]/isU', '', $val);
if (!$val) $val = 1;
$param[$key] = $val;
break;
}
}
// compliance of the border
if ($border!==null) {
if ($border) $border = 'border: solid '.$border.' '.$color;
else $border = 'border: none';
$param['style'] .= $border.'; ';
$param['border'] = $border;
}
// reading styles: decomposition and standardization
$styles = explode(';', $param['style']);
$param['style'] = array();
foreach ($styles as $style) {
$tmp = explode(':', $style);
if (count($tmp)>1) {
$cod = $tmp[0];
unset($tmp[0]);
$tmp = implode(':', $tmp);
$param['style'][trim(strtolower($cod))] = preg_replace('/[\s]+/isU', ' ', trim($tmp));
}
}
// determining the level of table opening, with an added level
if (in_array($name, array('ul', 'ol', 'table')) && !$close) {
$this->_num++;
$this->_level[count($this->_level)] = $this->_num;
}
// get the level of the table containing the element
if (!isset($param['num'])) {
$param['num'] = $this->_level[count($this->_level)-1];
}
// for closures table: remove a level
if (in_array($name, array('ul', 'ol', 'table')) && $close) {
unset($this->_level[count($this->_level)-1]);
}
// prepare the parameters
if (isset($param['value'])) $param['value'] = $this->_prepareTxt($param['value']);
if (isset($param['alt'])) $param['alt'] = $this->_prepareTxt($param['alt']);
if (isset($param['title'])) $param['title'] = $this->_prepareTxt($param['title']);
if (isset($param['class'])) $param['class'] = $this->_prepareTxt($param['class']);
// return the new action to do
return array('name' => $name, 'close' => $close ? 1 : 0, 'autoclose' => $autoclose, 'param' => $param);
}
/**
* get a full level of HTML, between an opening and closing corresponding
*
* @param integer key
* @return array actions
*/
public function getLevel($k)
{
// if the code does not exist => return empty
if (!isset($this->code[$k])) return array();
// the tag to detect
$detect = $this->code[$k]['name'];
// if it is a text => return
if ($detect=='write') {
return array($this->code[$k]);
}
//
$level = 0; // depth level
$end = false; // end of the search
$code = array(); // extract code
// while it's not ended
while (!$end) {
// current action
$row = $this->code[$k];
// if 'write' => we add the text
if ($row['name']=='write') {
$code[] = $row;
} else { // else, it is a html tag
$not = false; // flag for not taking into account the current tag
// if it is the searched tag
if ($row['name']==$detect) {
// if we are just at the root level => dont take it
if ($level==0) {
$not = true;
}
// update the level
$level+= ($row['close'] ? -1 : 1);
// if we are now at the root level => it is the end, and dont take it
if ($level==0) {
$not = true;
$end = true;
}
}
// if we can takin into account the current tag => save it
if (!$not) {
if (isset($row['style']['text-align'])) unset($row['style']['text-align']);
$code[] = $row;
}
}
// it continues as long as there has code to analise
if (isset($this->code[$k+1]))
$k++;
else
$end = true;
}
// return the extract
return $code;
}
/**
* return a part of the HTML code, for error message
*
* @param integer position
* @param integer take before
* @param integer take after
* @return string part of the html code
*/
public function getHtmlErrorCode($pos, $before=30, $after=40)
{
return substr($this->_html, $pos-$before, $before+$after);
}
}

View File

@@ -0,0 +1,251 @@
<?php
//============================================================+
// File name : tcpdf_config.php
// Begin : 2004-06-11
// Last Update : 2009-09-30
//
// Description : Configuration file for TCPDF.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Configuration file for TCPDF.
* @author Nicola Asuni
* @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com)
* Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @package com.tecnick.tcpdf
* @version 4.0.014
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-10-27
*/
// If you define the constant K_TCPDF_EXTERNAL_CONFIG, the following settings will be ignored.
if (!defined('K_TCPDF_EXTERNAL_CONFIG')) {
define('K_TCPDF_EXTERNAL_CONFIG', true);
// DOCUMENT_ROOT fix for IIS Webserver
if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) {
if (isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace(
'\\',
'/',
substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF']))
);
} elseif (isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace(
'\\',
'/',
substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF']))
);
} else {
// define here your DOCUMENT_ROOT path if the previous fails
$_SERVER['DOCUMENT_ROOT'] = '/var/www';
}
}
// Automatic calculation for the following K_PATH_MAIN constant
$kPathMain = str_replace('\\', '/', dirname(__FILE__));
$kPathMain = dirname($kPathMain).'/'; // remove the current directory
$kPathMain.= '../../ensepar/tcpdf/';
define('K_PATH_MAIN', $kPathMain);
// Automatic calculation for the following K_PATH_URL constant
if (isset($_SERVER['HTTP_HOST']) AND (!empty($_SERVER['HTTP_HOST']))) {
if (isset($_SERVER['HTTPS']) AND (!empty($_SERVER['HTTPS'])) AND strtolower($_SERVER['HTTPS'])!='off') {
$kPathUrl = 'https://';
} else {
$kPathUrl = 'http://';
}
$kPathUrl .= $_SERVER['HTTP_HOST'];
$kPathUrl .= str_replace('\\', '/', substr(K_PATH_MAIN, (strlen($_SERVER['DOCUMENT_ROOT']) - 1)));
}
else{
$kPathUrl = '';
}
/**
* URL path to tcpdf installation folder (http://localhost/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
*/
define('K_PATH_URL', $kPathUrl);
/**
* path for PDF fonts
* use K_PATH_MAIN.'fonts/old/' for old non-UTF8 fonts
*/
define('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
/**
* cache directory for temporary files (full path)
*/
define('K_PATH_CACHE', K_PATH_MAIN.'cache/');
/**
* cache directory for temporary files (url path)
*/
define('K_PATH_URL_CACHE', K_PATH_URL.'cache/');
/**
*images directory
*/
define('K_PATH_IMAGES', K_PATH_MAIN.'images/');
/**
* blank image
*/
define('K_BLANK_IMAGE', K_PATH_IMAGES.'_blank.png');
/**
* page format
*/
define('PDF_PAGE_FORMAT', 'A4');
/**
* page orientation (P=portrait, L=landscape)
*/
define('PDF_PAGE_ORIENTATION', 'P');
/**
* document creator
*/
define('PDF_CREATOR', 'HTML2PDF - TCPDF');
/**
* document author
*/
define('PDF_AUTHOR', 'HTML2PDF - TCPDF');
/**
* header title
*/
define('PDF_HEADER_TITLE', null);
/**
* header description string
*/
define('PDF_HEADER_STRING', null);
/**
* image logo
*/
define('PDF_HEADER_LOGO', null);
/**
* header logo image width [mm]
*/
define('PDF_HEADER_LOGO_WIDTH', null);
/**
* document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]
*/
define('PDF_UNIT', 'mm');
/**
* header margin
*/
define('PDF_MARGIN_HEADER', 0);
/**
* footer margin
*/
define('PDF_MARGIN_FOOTER', 0);
/**
* top margin
*/
define('PDF_MARGIN_TOP', 0);
/**
* bottom margin
*/
define('PDF_MARGIN_BOTTOM', 0);
/**
* left margin
*/
define('PDF_MARGIN_LEFT', 0);
/**
* right margin
*/
define('PDF_MARGIN_RIGHT', 0);
/**
* default main font name
*/
define('PDF_FONT_NAME_MAIN', 'helvetica');
/**
* default main font size
*/
define('PDF_FONT_SIZE_MAIN', 10);
/**
* default data font name
*/
define('PDF_FONT_NAME_DATA', 'helvetica');
/**
* default data font size
*/
define('PDF_FONT_SIZE_DATA', 8);
/**
* default monospaced font name
*/
define('PDF_FONT_MONOSPACED', 'courier');
/**
* ratio used to adjust the conversion of pixels to user units
*/
define('PDF_IMAGE_SCALE_RATIO', 1);
/**
* magnification factor for titles
*/
define('HEAD_MAGNIFICATION', 1);
/**
* height of cell repect font height
*/
define('K_CELL_HEIGHT_RATIO', 1);
/**
* title magnification respect main font size
*/
define('K_TITLE_MAGNIFICATION', 1);
/**
* reduction factor for small font
*/
define('K_SMALL_RATIO', 2/3);
/**
* set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language
*/
define('K_THAI_TOPCHARS', true);
/**
* if true allows to call TCPDF methods using HTML syntax
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
*/
define('K_TCPDF_CALLS_IN_HTML', false);
}
//============================================================+
// END OF FILE
//============================================================+

View File

@@ -0,0 +1,95 @@
*******************************************************
** Ce programme est distribué sous la licence LGPL, **
** reportez-vous au fichier _LGPL.txt ou à **
** http://www.gnu.org/licenses/lgpl.html **
** pour en savoir plus. **
** **
** Copyright 2008-2011 par Laurent Minguet **
*******************************************************
*******************************
* HTML2PDF v4.03 - 27/05/2011 *
*******************************
Utilisation :
------------
- nécessite au minimum PHP5
- regardez les exemples fournis, et lisez le wiki pour comprendre le fonctionnement.
- il est TRES IMPORTANT de fournir du HTML 4.01 valide au convertisseur,
mais seulement ce que contient le <body>
- pour les borders : il est conseillé qu'ils soient au format "solid 1mm #000000"
- pour les paddings : ils ne sont applicables qu'aux balises table, th, td, div, li
- Une fonte par défaut peut être précisée,au cas ou la fonte demandée n'existe pas ou si aucune fonte n'est indiquée :
$html2pdf->setDefaultFont('Arial');
- la possibilité de protéger vos PDF est présente, CF Exemple 7.
- Certains tests peuvent être activés (true) ou de désactivés(false) :
* méthode setTestIsImage : tester que les images existent bien
* méthode setTestTdInOnePage : tester que le contenu des TDs rentre sur une seule page
* méthode setTestIsDeprecated : tester que les anciennes propriétes des balises spécifiques ne sont plus présentes
- Un mode DEBUG permettant de connaitre les ressources utilisées lors de la construction du PDF est présent.
Il est activable en rajoutant la commande suivante juste après le constructeur (cf exemple 0):
$htmlpdf->setModeDebug();
- Certaines balises spécifiques ont été introduites :
* <page></page> (CF Exemple 7 & wiki)
permet de définir le format, l'orientation, les marges left, right, top et bottom, l'image
et la couleur de fond d'une page, sa taille et position, le footer.
Il est également possible de garder les header et footer des pages précédentes,
grâce à l'attribue pageset="old" (CF Exemple 3 & 4 & wiki)
* <page_header></page_header> (CF Exemple 3 & wiki)
* <page_footer></page_footer> (CF Exemple 3 & wiki)
* <nobreak></nobreak> (cf wiki)
permet de forcer l'affichage d'une partie sur une même page.
Si cette partie ne rentre pas dans le reste de la page, un saut de page est
effectué avant.
* <barcode></barcode> (CF Exemples 0 et 9 & wiki)
permet d'insérer des barcodes dans les pdfs, CF Exemples 0 et 9
Les types de codebar possible sont ceux de TCPDF
* <qrcode></qrcode> (CF Exemple 13 & wiki)
permet d'insérer un codebar à 2 dimensions de type QRcode
(QR Code is registered trademark of DENSO WAVE INCORPORATED | http://www.denso-wave.com/qrcode/)
* <bookmark></bookmark> (CF Exemples 7 & About & wiki)
permet d'insérer des bookmarks dans les pdfs, CF Exemple 7 et About.
Il est également possible de créer un index automatiquement en fin de
document (cf wiki)
* propriété css "rotate" :
valeurs possibles : 0, 90, 180, 270
applicable uniquement sur les divs (cf exemple 8)
change log :
-----------
regardez le fichier _changelog.txt
Aide et Support :
----------------
pour toutes questions et rapport de bug, merci d'utiliser exclusivement le lien de support ci-dessous.
Je ne répondrai à aucune question en dehors, afin que tout le monde puisse profiter des réponses.
Informations :
-------------
Programmeur : Spipu
email : webmaster@html2pdf.fr
site : http://html2pdf.fr/
wiki : http://html2pdf.fr/fr/wiki
support : http://html2pdf.fr/fr/forum
Remerciement :
-------------
* Olivier Plathey pour avoir conçu FPDF
* Nicola Asuni pour les modifications qu'il a accepté d'apporter à TCPDF
* yAronet pour l'hébergement du forum de support
* toutes les personnes qui m'ont aidé à développer cette librairie, et à traduire les différents textes

View File

@@ -0,0 +1,93 @@
*********************************************************
** This program is distributed under the LGPL License, **
** for more information see file _LGPL.txt or **
** http://www.gnu.org/licenses/lgpl.html **
** **
** Copyright 2008-2011 by Laurent Minguet **
*********************************************************
*******************************
* HTML2PDF v4.03 - 2011-05-27 *
*******************************
How to use :
------------
- You need at least PHP 5
- Look at the examples provided to see how it works.
- It is very important to provide valid HTML 4.01 to the converter,
but only what is in the <body>
- for borders: it is advised that they are like "solid 1mm #000000"
- for padding, they are applicable only on tags table, th, td, div, li
- A default font can be specified, if the requested font does not exist or if no font is specified:
$html2pdf->setDefaultFont('Arial');
- The possibility to protect your PDF is present, CF Example 7.
- Some tests can be enabled (true) or disabled (false) :
* setTestIsImage method: test that images must exist
* setTestTdInOnePage method: test that the contents of TDs fit on one page
* setTestIsDeprecated method: test that old properties of specific tags are not used anymore
- A DEBUG mode to know the resources used is present
It is activated by adding the following command just after the contructor (see Example 0):
$htmlpdf->setModeDebug();
- Some specific tags have been introduced:
* <page></page> (CF Exemple 7 & wiki)
determines the orientation, margins left, right, top and bottom, the background image
and the background color of a page, its size and position, the footer.
It is also possible to keep the header and footer of the previous pages,
through the attribut pageset="old" (see Example 3 & 4 & wiki)
* <page_header></page_header> (CF Example 3 & wiki)
* <page_footer></page_footer> (CF Example 3 & wiki)
* <nobreak></nobreak> (cd wiki)
used to force the display of a section on the same page.
If this section does not fit into the rest of the page, a page break is done before.
* <barcode></barcode> (CF Examples 0 & 9 & wiki)
can insert barcodes in pdfs, CF Examples 0 and 9
The possible types of codebar are alls of TCPDF
* <qrcode></qrcode> (CF Example 13 & wiki)
can insert QRcode 2D barcodes
(QR Code is registered trademark of DENSO WAVE INCORPORATED | http://www.denso-wave.com/qrcode/)
* <bookmark></bookmark> (CF Examples 7 & About & wiki)
can insert bookmark in pdfs, CF Example 7 and About.
It is also possible to automatically create an index at the end of
document (CF Example About & wiki)
* css property "rotate" :
values : 0, 90, 180, 270
works only on div (cf example 8)
change log :
-----------
see on this page : http://html2pdf.fr/en/download
Help & Support :
---------------
For questions and bug reports, thank you to use only the support link below.
I will answer to your questions only on it...
Informations :
-------------
Programmer : Spipu
email : webmaster@html2pdf.fr
web site : http://html2pdf.fr/
wiki : http://html2pdf.fr/en/wiki
support : http://html2pdf.fr/en/forum
Thanks :
-------
* Olivier Plathey: for have made FPDF
* Nicola Asuni: for the changes he has agreed to make to TCPDF
* yAronet: for hosting support forum
* everyone who helped me to develop this library and to bring the texts

View File

@@ -0,0 +1,34 @@
{
"name": "ensepar/html2pdf",
"type": "library",
"version": "1.0.1",
"description": "Unofficial fork of 'html2pdf' with Composer support. (Fixed composer dependency problem)",
"keywords": ["html", "pdf", "html2pdf"],
"homepage": "https://github.com/jwronsky/html2pdf",
"license": "LGPL",
"authors":
[
{
"name": "Spipu",
"homepage": "http://sourceforge.net/users/spipu",
"role": "Developer"
},
{
"name": "OwlyCode",
"homepage": "http://www.github.com/OwlyCode",
"role": "Developer"
}
],
"require":
{
"php": ">=5.2",
"ensepar/tcpdf": "5.0.003"
},
"autoload":
{
"psr-0":
{
"HTML2PDF": "."
}
}
}

View File

@@ -0,0 +1,40 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname('__FILE__').'/res/about.php');
$content = ob_get_clean();
try
{
// init HTML2PDF
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(0, 0, 0, 0));
// display the full page
$html2pdf->pdf->SetDisplayMode('fullpage');
// convert
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
// add the automatic index
$html2pdf->createIndex('Sommaire', 30, 12, false, true, 2);
// send the PDF
$html2pdf->Output('about.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,111 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
ob_start();
?>
<style type="text/css">
<!--
table.page_header {width: 100%; border: none; background-color: #DDDDFF; border-bottom: solid 1mm #AAAADD; padding: 2mm }
table.page_footer {width: 100%; border: none; background-color: #DDDDFF; border-top: solid 1mm #AAAADD; padding: 2mm}
h1 {color: #000033}
h2 {color: #000055}
h3 {color: #000077}
div.niveau
{
padding-left: 5mm;
}
-->
</style>
<page backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm" style="font-size: 12pt">
<page_header>
<table class="page_header">
<tr>
<td style="width: 100%; text-align: left">
Exemple d'utilisation des bookmarks
</td>
</tr>
</table>
</page_header>
<page_footer>
<table class="page_footer">
<tr>
<td style="width: 100%; text-align: right">
page [[page_cu]]/[[page_nb]]
</td>
</tr>
</table>
</page_footer>
<bookmark title="Sommaire" level="0" ></bookmark>
</page>
<page pageset="old">
<bookmark title="Chapitre 1" level="0" ></bookmark><h1>Chapitre 1</h1>
<div class="niveau">
Contenu du chapitre 1
</div>
</page>
<page pageset="old">
<bookmark title="Chapitre 2" level="0" ></bookmark><h1>Chapitre 2</h1>
<div class="niveau">
intro au chapitre 2
<bookmark title="Chapitre 2.1" level="1" ></bookmark><h2>Chapitre 2.1</h2>
<div class="niveau">
Contenu du chapitre 2.1
</div>
<bookmark title="Chapitre 2.2" level="1" ></bookmark><h2>Chapitre 2.2</h2>
<div class="niveau">
Contenu du chapitre 2.2
</div>
<bookmark title="Chapitre 2.3" level="1" ></bookmark><h2>Chapitre 2.3</h2>
<div class="niveau">
Contenu du chapitre 2.3
</div>
</div>
</page>
<page pageset="old">
<bookmark title="Chapitre 3" level="0" ></bookmark><h1>Chapitre 3</h1>
<div class="niveau">
intro au chapitre 3
<bookmark title="Chapitre 3.1" level="1" ></bookmark><h2>Chapitre 3.1</h2>
<div class="niveau">
Contenu du chapitre 3.1
</div>
<bookmark title="Chapitre 3.2" level="1" ></bookmark><h2>Chapitre 3.2</h2>
<div class="niveau">
intro au chapitre 3.2
<bookmark title="Chapitre 3.2.1" level="2" ></bookmark><h3>Chapitre 3.2.1</h3>
<div class="niveau">
Contenu du chapitre 3.2.1
</div>
<bookmark title="Chapitre 3.2.2" level="2" ></bookmark><h3>Chapitre 3.2.2</h3>
<div class="niveau">
Contenu du chapitre 3.2.2
</div>
</div>
</div>
</page>
<?php
$content = ob_get_clean();
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->createIndex('Sommaire', 25, 12, false, true, 1);
$html2pdf->Output('bookmark.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,32 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple00.php');
$content = ob_get_clean();
// convert in PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
// $html2pdf->setModeDebug();
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple00.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple01.php');
$content = ob_get_clean();
// convert in PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple01.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,32 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple02.php');
$content = ob_get_clean();
// convert in PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(15, 5, 15, 5));
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple02.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple03.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 3);
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple03.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple04.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple04.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple05.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple05.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple06.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple06.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple07a.php');
include(dirname(__FILE__).'/res/exemple07b.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
// $html2pdf->pdf->SetProtection(array('print'), 'spipu');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple07.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple08.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple08.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,74 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
*/
$generate = isset($_GET['make_pdf']);
$nom = isset($_GET['nom']) ? $_GET['nom'] : 'inconnu';
$nom = substr(preg_replace('/[^a-zA-Z0-9]/isU', '', $nom), 0, 26);
if ($generate) {
ob_start();
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<title>Exemple d'auto génération de PDF</title>
</head>
<body>
<?php
}
$url = dirname($_SERVER['REQUEST_URI']).'/res/exemple09.png.php?px=5&amp;py=20';
if (substr($url, 0, 7)!=='http://') {
$url = 'http://'.$_SERVER['HTTP_HOST'].$url;
}
?>
<br>
Ceci est un exemple de génération de PDF via un bouton :)<br>
<br>
<img src="<?php echo $url; ?>" alt="image_php" ><br>
<br>
<?php
if ($generate) {
?>
Bonjour <b><?php echo $nom; ?></b>, ton nom peut s'écrire : <br>
<barcode type="C39" value="<?php echo strtoupper($nom); ?>" style="color: #770000" ></barcode><hr>
<br>
<?php
}
?>
<br>
<?php
if ($generate) {
$content = ob_get_clean();
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content);
$html2pdf->Output('exemple09.pdf');
exit;
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
}
?>
<form method="get" action="">
<input type="hidden" name="make_pdf" value="">
Ton nom : <input type="text" name="nom" value=""> -
<input type="submit" value="Generer le PDF" >
</form>
</body>
</html>

View File

@@ -0,0 +1,28 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
ob_start();
include(dirname(__FILE__).'/res/exemple10.php');
$content = ob_get_clean();
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple10.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple11.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->setTestTdInOnePage(false);
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple11.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple12.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple12.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/exemple13.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('exemple13.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// for display the post information
if (isset($_POST['test'])) {
echo '<pre>';
echo htmlentities(print_r($_POST, true));
echo '</pre>';
exit;
}
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/forms.php');
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('forms.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,71 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
ob_start();
?>
<style type="text/css">
<!--
table.page_header {width: 100%; border: none; background-color: #DDDDFF; border-bottom: solid 1mm #AAAADD; padding: 2mm }
table.page_footer {width: 100%; border: none; background-color: #DDDDFF; border-top: solid 1mm #AAAADD; padding: 2mm}
-->
</style>
<page backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm" pagegroup="new">
<page_header>
<table class="page_header">
<tr>
<td style="width: 100%; text-align: left">
Exemple d'utilisation des groupes de pages
</td>
</tr>
</table>
</page_header>
<page_footer>
<table class="page_footer">
<tr>
<td style="width: 100%; text-align: right">
page [[page_cu]]/[[page_nb]]
</td>
</tr>
</table>
</page_footer>
Ceci est la page 1 du groupe 1
</page>
<page pageset="old">
Ceci est la page 2 du groupe 1
</page>
<page pageset="old">
Ceci est la page 3 du groupe 1
</page>
<?php for ($k=2; $k<5; $k++): ?>
<page pageset="old" pagegroup="new">
Ceci est la page 1 du groupe <?php echo $k; ?>
</page>
<page pageset="old">
Ceci est la page 2 du groupe <?php echo $k; ?>
</page>
<?php endfor; ?>
<?php
$content = ob_get_clean();
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('groups.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,37 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
?>
<page>
<h1>Test de JavaScript 1</h1><br>
<br>
Normalement la fenetre d'impression devrait apparaitre automatiquement
</page>
<?php
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->IncludeJS("print(true);");
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('js1.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,37 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
?>
<page>
<h1>Test de JavaScript 2</h1><br>
<br>
Normalement une alerte devrait apparaitre, indiquant "coucou"
</page>
<?php
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->IncludeJS("app.alert('coucou');");
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('js2.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,43 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
?>
<page>
<h1>Test de JavaScript 3</h1><br>
<br>
Normalement une valeur devrait vous être demandée, puis affichée
</page>
<?php
$content = ob_get_clean();
// PDF script to execute
$script = "
var rep = app.response('Donnez votre nom');
app.alert('Vous vous appelez '+rep);
";
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->IncludeJS($script);
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('js3.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
$msg = "Le site de html2pdf\r\nhttp://html2pdf.fr/";
?>
<page backtop="10mm" >
<page_header>
<table style="width: 100%; border: solid 1px black;">
<tr>
<td style="text-align: left; width: 50%">html2pdf</td>
<td style="text-align: right; width: 50%">Exemples de QRcode</td>
</tr>
</table>
</page_header>
<h1>Exemples de QRcode</h1>
<h3>Message avec Correction d'erreur L, M, Q, H (valeur par défaut : H)</h3>
<qrcode value="<?php echo $msg; ?>" ec="L" style="width: 30mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" ec="M" style="width: 30mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" ec="Q" style="width: 30mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" ec="H" style="width: 30mm;"></qrcode>
<br>
<h3>Message avec différentes largeurs</h3>
<qrcode value="<?php echo $msg; ?>" style="width: 20mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 30mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 40mm;"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 50mm;"></qrcode>
<br>
<h3>Message de différentes couleurs</h3>
<qrcode value="<?php echo $msg; ?>" style="width: 40mm; background-color: white; color: black;"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 40mm; background-color: yellow; color: red"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 40mm; background-color: #FFCCFF; color: #003300"></qrcode>
<qrcode value="<?php echo $msg; ?>" style="width: 40mm; background-color: #CCFFFF; color: #003333"></qrcode>
<br>
<h3>Message sans border</h3>
<qrcode value="<?php echo $msg; ?>" style="border: none; width: 40mm;"></qrcode>
<br>
</page>
<?php
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('qrcode.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,53 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
?>
<style type="text/css">
<!--
.div { background: #CCDDCC; color: #002200; text-align: center; width: 70mm; height: 20mm; margin: 2mm; }
.div1 { border: solid 2mm black; border-radius: 5mm; -moz-border-radius: 5mm; }
.div2 { border: solid 2mm black; border-radius: 3mm 10mm 0mm 3mm; -moz-border-radius: 3mm 10mm 0mm 3mm; }
.div3 { border: solid 2mm black; border-radius: 10mm / 7mm; -moz-border-radius: 10mm / 7mm; }
.div4 { border: solid 6mm black; border-radius: 5mm / 10mm; -moz-border-radius: 5mm / 10mm; }
.div5 { border: solid 5mm black; border-top: none; border-bottom: none; border-radius: 5mm; -moz-border-radius: 5mm; }
.div6 { border: solid 5mm black; border-left: none; border-right: none; border-radius: 5mm; -moz-border-radius: 5mm; }
.div7 { border: solid 5mm black; border-left: none; border-top: none; border-radius: 5mm; -moz-border-radius: 5mm; }
.div8 { border-radius: 8mm; -moz-border-radius: 8mm; border-left: solid 2mm #660000; border-top: solid 1mm #006600; border-right: solid 2mm #000066; border-bottom: solid 4mm #004444;}
-->
</style>
<page>
<div class="div div1">Exemple de div</div>
<div class="div div2">Exemple de div</div>
<div class="div div3">Exemple de div</div>
<div class="div div4">Exemple de div</div>
<div class="div div5">Exemple de div</div>
<div class="div div6">Exemple de div</div>
<div class="div div7">Exemple de div</div>
<div class="div div8">Exemple de div</div>
</page>
<?php
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('radius.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,59 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
?>
<style type="text/css">
<!--
table
{
padding: 0;
margin: 0;
border: none;
border-right: solid 0.2mm black;
}
td
{
padding: 0;
margin: 0;
border: none;
}
img
{
width: 10mm;
}
-->
</style>
<page>
<table cellpadding="0" cellspacing="0"><tr>
<?php for($k=0; $k<28; $k++) echo '<td><img src="./res/regle.png" alt="" ><br>'.$k.'</td>'; ?>
</tr></table>
</page>
<?php
$content = ob_get_clean();
// convert to PDF
try
{
$html2pdf = new HTML2PDF('L', 'A4', 'fr', true, 'UTF-8', 10);
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('regle.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,241 @@
<style type="text/css">
<!--
table.page_header {width: 100%; border: none; background-color: #DDDDFF; border-bottom: solid 1mm #AAAADD; padding: 2mm }
table.page_footer {width: 100%; border: none; background-color: #DDDDFF; border-top: solid 1mm #AAAADD; padding: 2mm}
div.note {border: solid 1mm #DDDDDD;background-color: #EEEEEE; padding: 2mm; border-radius: 2mm; width: 100%; }
ul.main { width: 95%; list-style-type: square; }
ul.main li { padding-bottom: 2mm; }
h1 { text-align: center; font-size: 20mm}
h3 { text-align: center; font-size: 14mm}
-->
</style>
<page backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm" style="font-size: 12pt">
<page_header>
<table class="page_header">
<tr>
<td style="width: 50%; text-align: left">
A propos de ...
</td>
<td style="width: 50%; text-align: right">
HTML2PDF v<?php echo __CLASS_HTML2PDF__; ?>
</td>
</tr>
</table>
</page_header>
<page_footer>
<table class="page_footer">
<tr>
<td style="width: 33%; text-align: left;">
http://html2pdf.fr/
</td>
<td style="width: 34%; text-align: center">
page [[page_cu]]/[[page_nb]]
</td>
<td style="width: 33%; text-align: right">
&copy;Spipu 2008-2011
</td>
</tr>
</table>
</page_footer>
<bookmark title="Présentation" level="0" ></bookmark>
<br><br><br><br><br><br><br><br>
<h1>HTML2PDF</h1>
<h3>v<?php echo __CLASS_HTML2PDF__; ?></h3><br>
<br><br><br><br><br>
<div style="text-align: center; width: 100%;">
<br>
<img src="./res/logo.png" alt="Logo HTML2PDF" style="width: 150mm">
<br>
</div>
<br><br><br><br><br>
<div class="note">
HTML2PDF est un convertisseur de code HTML vers PDF écrit en PHP5, utilisant la librairie <a href="http://tcpdf.org">TCPDF.</a><br>
<br>
Il permet la conversion d'HTML et d'xHTML valide au format PDF, et est distribué sous licence LGPL.<br>
<br>
Cette librairie a été conçue pour gérer principalement les TABLE imbriquées afin de générer des factures, bon de livraison, et autres documents officiels.<br>
<br>
Vous pouvez télécharger la dernière version de HTML2PDF ici : <a href="http://html2pdf.fr/">http://html2pdf.fr/</a>.<br>
</div>
</page>
<page pageset="old">
<bookmark title="Sommaire" level="0" ></bookmark>
<!-- here will be the automatic index -->
</page>
<page pageset="old">
<bookmark title="Compatibilité" level="0" ></bookmark>
<bookmark title="Balises HTML" level="1" ></bookmark>
<bookmark title="Balises classiques" level="2" ></bookmark>
<div class="note">
La liste des balises HTML utilisables est la suivante :<br>
</div>
<br>
<ul class="main">
<li>&lt;a&gt; : Ceci est un lien vers <a href="http://html2pdf.fr">le site de HTML2PDF</a></li>
<li>&lt;b&gt;, &lt;strong&gt; : Ecrire en <b>gras</b>.</li>
<li>&lt;big&gt; : Ecrire plus <big>gros</big>.</li>
<li>&lt;br&gt; : Permet d'aller à la ligne</li>
<li>&lt;cite&gt; : <cite>Ceci est une citation</cite></li>
<li>&lt;code&gt;, &lt;pre&gt;</li>
<li>&lt;div&gt; :&nbsp;<div style="border: solid 1px #AADDAA; background: #DDFFDD; text-align: center; width: 50mm">exemple de DIV</div></li>
<li>&lt;em&gt;, &lt;i&gt;, &lt;samp&gt; : Ecrire en <em>italique</em>.</li>
<li>&lt;font&gt;, &lt;span&gt; : <font style="color: #000066; font-family: times">Exemple d'utilisation</font></li>
<li>&lt;h1&gt;, &lt;h2&gt;, &lt;h3&gt;, &lt;h4&gt;, &lt;h5&gt;, &lt;h6&gt;</li>
<li>&lt;hr&gt; : barre horizontale</li>
<li>&lt;img&gt; : <img src="./res/tcpdf_logo.jpg" style="width: 10mm"></li>
<li>&lt;p&gt; : Ecrire dans un paragraphe</li>
<li>&lt;s&gt; : Texte <s>barré</s></li>
<li>&lt;small&gt; : Ecrire plus <small>petit</small>.</li>
<li>&lt;style&gt;</li>
<li>&lt;sup&gt; : Exemple<sup>haut</sup>.</li>
<li>&lt;sub&gt; : Exemple<sub>bas</sub>.</li>
<li>&lt;u&gt; : Texte <u>souligné</u></li>
<li>&lt;table&gt;, &lt;td&gt;, &lt;th&gt;, &lt;tr&gt;, &lt;thead&gt;, &lt;tbody&gt;, &lt;tfoot&gt;, &lt;col&gt; </li>
<li>&lt;ol&gt;, &lt;ul&gt;, &lt;li&gt;</li>
<li>&lt;form&gt;, &lt;input&gt;, &lt;textarea&gt;, &lt;select&gt;, &lt;option&gt;</li>
<li>&lt;fieldset&gt;, &lt;legend&gt;</li>
<li>&lt;del&gt;, &lt;ins&gt;</li>
<li>&lt;draw&gt;, &lt;line&gt;, &lt;rect&gt;, &lt;circle&gt;, &lt;ellipse&gt;, &lt;polygone&gt;, &lt;polyline&gt;, &lt;path&gt;</li>
</ul>
<bookmark title="Balises spécifiques" level="2" ></bookmark>
<div class="note">
Les balises spécifiques suivantes ont été ajoutées :<br>
</div>
<br>
<ul class="main" >
<li>&lt;page&gt;</li>
<li>&lt;page_header&gt;</li>
<li>&lt;page_footer&gt;</li>
<li>&lt;nobreak&gt;</li>
<li>&lt;barcode&gt;</li>
<li>&lt;bookmark&gt;</li>
<li>&lt;qrcode&gt;</li>
</ul>
</page>
<page pageset="old">
<bookmark title="Styles CSS" level="1" ></bookmark>
<div class="note">
La liste des styles CSS utilisables est la suivante :<br>
</div>
<br>
<table style="width: 100%">
<tr style="vertical-align: top">
<td style="width: 50%">
<ul class="main">
<li>color</li>
<li>font-family</li>
<li>font-weight</li>
<li>font-style</li>
<li>font-size</li>
<li>text-decoration</li>
<li>text-indent</li>
<li>text-align</li>
<li>text-transform</li>
<li>vertical-align</li>
<li>width</li>
<li>height</li>
<li>line-height</li>
<li>padding</li>
<li>padding-top</li>
<li>padding-right</li>
<li>padding-bottom</li>
<li>padding-left</li>
<li>margin</li>
<li>margin-top</li>
<li>margin-right</li>
<li>margin-bottom</li>
<li>margin-left</li>
<li>position</li>
<li>top</li>
<li>bottom</li>
<li>left</li>
<li>right</li>
<li>float</li>
<li>rotate</li>
<li>background</li>
<li>background-color</li>
<li>background-image</li>
<li>background-position</li>
<li>background-repeat</li>
</ul>
</td>
<td style="width: 50%">
<ul class="main">
<li>border</li>
<li>border-style</li>
<li>border-color</li>
<li>border-width</li>
<li>border-collapse</li>
<li>border-top</li>
<li>border-top-style</li>
<li>border-top-color</li>
<li>border-top-width</li>
<li>border-right</li>
<li>border-right-style</li>
<li>border-right-color</li>
<li>border-right-width</li>
<li>border-bottom</li>
<li>border-bottom-style</li>
<li>border-bottom-color</li>
<li>border-bottom-width</li>
<li>border-left</li>
<li>border-left-style</li>
<li>border-left-color</li>
<li>border-left-width</li>
<li>border-radius</li>
<li>border-top-left-radius</li>
<li>border-top-right-radius</li>
<li>border-bottom-left-radius</li>
<li>border-bottom-right-radius</li>
<li>list-style</li>
<li>list-style-type</li>
<li>list-style-image</li>
</ul>
</td>
</tr>
</table>
</page>
<page pageset="old">
<bookmark title="Propriétés" level="1" ></bookmark>
<div class="note">
La liste des propriétés utilisables est la suivante :<br>
</div>
<br>
<table style="width: 100%">
<tr style="vertical-align: top">
<td style="width: 50%">
<ul class="main">
<li>cellpadding</li>
<li>cellspacing</li>
<li>colspan</li>
<li>rowspan</li>
<li>width</li>
<li>height</li>
</ul>
</td>
<td style="width: 50%">
<ul class="main">
<li>align</li>
<li>valign</li>
<li>bgcolor</li>
<li>bordercolor</li>
<li>border</li>
<li>type</li>
<li>value</li>
</ul>
</td>
</tr>
</table>
<bookmark title="Limitations" level="0" ></bookmark>
<div class="note">
Cette librairie comporte des limitations :<br>
</div>
<br>
<ul class="main">
<li>Les float ne sont gérés que pour la balise IMG.</li>
<li>Elle ne permet généralement pas la conversion directe d'une page HTML en PDF, ni la conversion du résultat d'un WYSIWYG en PDF.</li>
<li>Cette librairie est là pour faciliter la génération de documents PDF, pas pour convertir n'importe quelle page HTML.</li>
<li>Les formulaires ne marchent pas avec tous les viewers PDFs...</li>
<li>Lisez bien le wiki : <a href="http://wiki.spipu.net/doku.php?id=html2pdf:Accueil">http://wiki.spipu.net/doku.php?id=html2pdf:Accueil</a>.</li>
</ul>
</page>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,86 @@
<style type="text/Css">
<!--
.test1
{
border: solid 1px #FF0000;
background: #FFFFFF;
border-collapse: collapse;
}
-->
</style>
<page style="font-size: 14px">
<span style="font-weight: bold; font-size: 18pt; color: #FF0000; font-family: Times">Bonjour, voici quelques exemples<br></span>
<br>
Retours à la ligne autorisés : &lt;br&gt;, &lt;br &gt;, &lt;br/&gt;, &lt;br /&gt; <br />
<br>
Barre horizontale &lt;hr&gt;<hr style="height: 4mm; background: #AA5500; border: solid 1mm #0055AA">
Exemple de lien : <a href="http://html2pdf.fr/" >le site HTML2PDF</a><br>
<br>
Image : <img src="./res/logo.gif" alt="Logo" width=150 /><br>
<br>
Alignement horizontal des DIVs et TABLEs<br />
<table style="text-align: center; border: solid 2px red; background: #FFEEEE;width: 40%" align="center"><tr><td style="width: 100%">Test 1</td></tr></table><br />
<table style="text-align: center; border: solid 2px red; background: #FFEEEE;width: 40%; margin: auto"><tr><td style="width: 100%">Test 2</td></tr></table><br />
<div style="text-align: center; border: solid 2px red; background: #FFEEEE;width: 40%; margin: auto">Test 3</div><br />
test de tableau imbriqué :<br>
<table border="1" bordercolor="#007" bgcolor="#AAAAAA" align="center">
<tr>
<td border="1">
<table style="border: solid 1px #FF0000; background: #FFFFFF; width: 100%; text-align: center">
<tr>
<th style="border: solid 1px #007700;width: 50%">C1 «</th>
<td style="border: solid 1px #007700;width: 50%">C2 «</td>
</tr>
<tr>
<td style="border: solid 1px #007700;width: 50%">D1 &euro; &laquo;</td>
<th style="border: solid 1px #007700;width: 50%">D2 &euro; &laquo;</th>
</tr>
</table>
</td>
<td border="1">A2</td>
<td border="1">AAAAAAAA</td>
</tr>
<tr>
<td border="1">B1</td>
<td border="1" rowspan="2">
<table class="test1">
<tr>
<td style="border: solid 2px #007700">E1</td>
<td style="border: solid 2px #000077; padding: 2mm">
<table style="border: solid 1px #445500">
<tr>
<td>
<img src="./res/logo.gif" alt="Logo" width=100 />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border: solid 2px #770000">F1</td>
<td style="border: solid 2px #007777">F2</td>
</tr>
</table>
</td>
<td border="1"><barcode type="EAN13" value="45" style="width: 30mm; height: 6mm; font-size: 4mm"></barcode></td>
</tr>
<tr>
<td border="1"><barcode type="C39" value="HTML2PDF" label="none" style="width: 35mm; height: 8mm"></barcode></td>
<td border="1">A2</td>
</tr>
</table>
<br>
Exemple avec border et padding : <br>
<table style="border: solid 5mm #770000; padding: 5mm;" cellspacing="0" >
<tr>
<td style="border: solid 3mm #007700; padding: 2mm;"><img src="./res/off.png" alt="" style="width: 20mm"></td>
</tr>
</table>
<img src="./res/off.png" style="width: 10mm;"><img src="./res/off.png" style="width: 10mm;"><img src="./res/off.png" style="width: 10mm;"><img src="./res/off.png" style="width: 10mm;"><img src="./res/off.png" style="width: 10mm;"><br>
<br>
<table style="border: solid 1px #440000; width: 150px" cellspacing="0"><tr><td style="width: 100%">Largeur : 150px</td></tr></table><br>
<table style="border: solid 1px #440000; width: 150pt" cellspacing="0"><tr><td style="width: 100%">Largeur : 150pt</td></tr></table><br>
<table style="border: solid 1px #440000; width: 100mm" cellspacing="0"><tr><td style="width: 100%">Largeur : 100mm</td></tr></table><br>
<table style="border: solid 1px #440000; width: 5in" cellspacing="0"><tr><td style="width: 100%">Largeur : 5in</td></tr></table><br>
<table style="border: solid 1px #440000; width: 80%" cellspacing="0"><tr><td style="width: 100%">Largeur : 80% </td></tr></table><br>
</page>

View File

@@ -0,0 +1,96 @@
<style type="text/css">
<!--
table.morpion
{
border: dashed 1px #444444;
}
table.morpion td
{
font-size: 15pt;
font-weight: bold;
border: solid 1px #000000;
padding: 1px;
text-align: center;
width: 25px;
}
table.morpion td.j1 { color: #0A0; }
table.morpion td.j2 { color: #A00; }
-->
</style>
<page style="font-size: 10pt">
<span style="font-weight: bold; font-size: 20pt; color: #F00">Bonjour, voici quelques exemples</span><br>
Bonjour, ceci est un test <b>de gras</b>, <i>d'italic</i>, <b><i>et des 2 ensembles</i></b>.<br>
<br>
<span style="background: red; color: white;">Ceci est un message important</span><br>
<br>
<small>Texte écrit avec small</small>, Texte écrit normalement, <big>Texte écrit avec big</big><br>
<span style="font-size: 20px">A<sub>test d'<b>indice</b></sub> et N<sup>test d'<b>exposant</b></sup>,
test<sub>test<sub>test</sub></sub>,
test<sup>test<sup>test</sup></sup>,
test<sub>test<sup>test</sup></sub>.
</span><br>
<br>
<table align="center" style="border-radius: 6mm; border-top: solid 3mm #000077; border-right: solid 2mm #007700; border-bottom: solid 1mm #770000; border-left: solid 2mm #007777; background: #DDDDAA;" ><tr><td style="width: 100mm; height: 20mm; text-align: center; ">Coucou ! ceci est un border solid avec un radius !!! </td></tr></table>
<br>
<table align="center" style="border-radius: 6mm; border: none; background: #DDDDAA;" ><tr><td style="width: 100mm; height: 20mm; text-align: center; ">Coucou ! ceci est un background avec un radius !!! </td></tr></table>
<br>
<table align="center" style="border: solid 1px #000000;"><tr><td style="border-top: solid 4mm #000077; border-right: solid 3mm #007700; border-bottom: solid 2mm #770000; border-left: solid 1mm #007777; padding: 2mm 4mm 6mm 8mm; width: 100mm; background: #FFDDDD">Coucou ! ceci est un border solid</td></tr></table><br>
<table align="center" style="border: solid 1px #000000;"><tr><td style="border-top: dotted 4mm #000077; border-right: dotted 3mm #007700; border-bottom: dotted 2mm #770000; border-left: dotted 1mm #007777; padding: 2mm 4mm 6mm 8mm; width: 100mm; background: #FFDDDD">Coucou ! ceci est un border dotted</td></tr></table><br>
<table align="center" style="border: solid 1px #000000;"><tr><td style="border-top: dashed 4mm #000077; border-right: dashed 3mm #007700; border-bottom: dashed 2mm #770000; border-left: dashed 1mm #007777; padding: 2mm 4mm 6mm 8mm; width: 100mm; background: #FFDDDD">Coucou ! ceci est un border dashed</td></tr></table><br>
<table align="center" style="border: solid 1px #000000;"><tr><td style="border-top: double 4mm #000077; border-right: double 3mm #007700; border-bottom: double 2mm #770000; border-left: double 1mm #007777; padding: 2mm 4mm 6mm 8mm; width: 100mm; background: #FFDDDD">Coucou ! ceci est un border double</td></tr></table><br>
<?php $back = 'background-image: url(./res/off.png); background-position: left top; background-repeat: repeat; '; ?>
<table style="background: #FFAAAA; color: #000022; border: 3px solid #555555;">
<tr>
<td style="width: 40mm; border: solid 1px #000000; <?php echo $back; ?>color: #003300">Case A1</td>
<td style="width: 50mm; border: solid 1px #000000; <?php echo $back; ?>font-weight: bold;">Case A2</td>
<td style="width: 60mm; border: solid 1px #000000; <?php echo $back; ?>font-size: 20px;">Case A3</td>
</tr>
<tr>
<td style="border: solid 1px #000000; text-align: left; <?php echo $back; ?>vertical-align: top; ">Case B1</td>
<td style="border: solid 1px #000000; text-align: center; <?php echo $back; ?>vertical-align: middle; height: 20mm">Case B2<hr style="color: #22AA22">test de hr</td>
<td style="border: solid 1px #000000; text-align: right; <?php echo $back; ?>vertical-align: bottom; border-radius: 3mm; ">Case B3</td>
</tr>
</table>
<br>
<table style="border: solid 2px #550000; background: #000022 url(./res/logo.png) center center no-repeat; color: #FFFFFF;">
<tr >
<td style="border: solid 1px #AAAAAA;">Case A1<BR>avec tests diverses</td>
<td style="border: solid 1px #AAAAAA;">Case A2</td>
<td style="border: solid 1px #AAAAAA;">Case A3 classic</td>
</tr>
<tr>
<td style="border: solid 1px #AAAAAA;">Case B1<br>toto</td>
<td style="border: solid 1px #AAAAAA;background: #FF0000">Case B2</td>
<td style="border: solid 1px #AAAAAA;">Case B3</td>
</tr>
</table>
<br>
<table class="morpion" cellspacing="5px">
<tr>
<td class="j1">X</td>
<td class="j2">O</td>
<td class="j1">X</td>
</tr>
<tr>
<td class="j2">O</td>
<td class="j1">X</td>
<td ></td>
</tr>
<tr>
<td class="j2">O</td>
<td></td>
<td class="j1">X</td>
</tr>
</table>
<br>
<table style="border: dotted 1mm #FFFFFF; background: #AAAAFF">
<tr>
<td style="width: 42mm; text-align: center;font-size: 5mm">
Ceci est un test
</td>
</tr>
</table>
</page>

View File

@@ -0,0 +1,118 @@
<?php
$content = 'A Test overflow<br>A Test overflow<br>A Test overflow<br>
<img src="./res/logo.gif" alt="logo" style="width: XXXmm"><br>
B Test overflow<br>B Test overflow<br>B Test overflow<br>
<img src="./res/logo.gif" alt="logo" style="width: XXXmm"><br>
C Test overflow<br>C Test overflow<br>C Test overflow<br>';
?>
<style type="text/css">
<!--
div.zone
{
border: solid 2mm #66AACC;
border-radius: 3mm;
padding: 1mm;
background-color: #FFEEEE;
color: #440000;
}
div.zone_over
{
width: 30mm;
height: 35mm;
overflow: hidden;
}
-->
</style>
<page style="font-size: 10pt">
<span style="font-size: 16pt ; font-weight: bold">Démonstration des images</span><br>
<br>
<b>Dans un tableau :</b><br>
<table style="width: 50%;border: solid 3px #5544DD" align="center">
<tr>
<td style="width: 30%; text-align: left; ">Text à gauche<br>avec retour à<br>la ligne</td>
<td style="width: 40%; text-align: center;"><img src="./res/logo.gif" alt="" ><br><i>légende</i></td>
<td style="width: 30%; text-align: right; ">Texte à droite</td>
</tr>
</table>
<br>
Texte <span style="text-decoration: underline">souligné</span>,
texte <span style="text-decoration: overline">surligné</span>,
texte <span style="text-decoration: line-through">barré</span>,
texte <span style="text-decoration: underline overline line-through">avec les trois</span>.<br>
<br>
<b>Dans un texte :</b><br>
texte à la suite d'une image, <img src="./res/logo.gif" alt="" style="height: 10mm">
texte à la suite d'une image, répétitif car besoin d'un retour à la ligne
texte à la suite d'une image, répétitif car besoin d'un retour à la ligne
texte à la suite d'une image, répétitif car besoin d'un retour à la ligne
texte à la suite d'une image, répétitif car besoin d'un retour à la ligne<br>
<br>
<br>
Test différentes tailles texte
<span style="font-size: 18pt;">Test Size</span>
<span style="font-size: 16pt;">Test Size</span>
<span style="font-size: 14pt;">Test Size</span>
<span style="font-size: 12pt;">Test Size</span>
Test différentes tailles texte, répétitif car besoin d'un retour à la ligne
Test différentes tailles texte, répétitif car besoin d'un retour à la ligne
Test différentes tailles texte, répétitif car besoin d'un retour à la ligne
Test différentes tailles texte, répétitif car besoin d'un retour à la ligne
<br>
<br>
<b>Exemple de couleur : </b><br>
<span style="color: RGB(255, 0, 0)">Texte de couleur</span><br>
<span style="color: RGB(0., 1., 0.)">Texte de couleur</span><br>
<span style="color: RGB(0, 0, 100%)">Texte de couleur</span><br>
<span style="color: CMYK(255, 0, 0, 0)">Texte de couleur</span><br>
<span style="color: CMYK(0., 1., 0., 0.)">Texte de couleur</span><br>
<span style="color: CMYK(0, 0, 100%, 0)">Texte de couleur</span><br>
<span style="color: CMYK(0, 0, 0, 255)">Texte de couleur</span><br>
<br>
<table>
<tr style="vertical-align: top">
<td>
<u>Exemple 0 :</u><br><br>
<div class="zone" ><?php echo str_replace('XXX', '40', $content); ?></div>
sans overflow
</td>
<td>
<u>Exemple 1 :</u><br><br>
<div class="zone zone_over" style="text-align: left; vertical-align: top; "><?php echo str_replace('XXX', '40', $content); ?></div>
hidden left top
</td>
<td>
<u>Exemple 2 :</u><br><br>
<div class="zone zone_over" style="text-align: center; vertical-align: middle;"><?php echo str_replace('XXX', '40', $content); ?></div>
hidden center middle
</td>
<td>
<u>Exemple 3 :</u><br><br>
<div class="zone zone_over" style="text-align: right; vertical-align: bottom;"><?php echo str_replace('XXX', '40', $content); ?></div>
hidden right bottom
</td>
</tr>
<tr style="vertical-align: top">
<td>
<u>Exemple 0 :</u><br><br>
<div class="zone" ><?php echo str_replace('XXX', '20', $content); ?></div>
sans overflow
</td>
<td>
<u>Exemple 1 :</u><br><br>
<div class="zone zone_over" style="text-align: left; vertical-align: top; "><?php echo str_replace('XXX', '20', $content); ?></div>
hidden left top
</td>
<td>
<u>Exemple 2 :</u><br><br>
<div class="zone zone_over" style="text-align: center; vertical-align: middle;"><?php echo str_replace('XXX', '20', $content); ?></div>
hidden center middle
</td>
<td>
<u>Exemple 3 :</u><br><br>
<div class="zone zone_over" style="text-align: right; vertical-align: bottom;"><?php echo str_replace('XXX', '20', $content); ?></div>
hidden right bottom
</td>
</tr>
</table>
</page>

View File

@@ -0,0 +1,87 @@
<page backtop="10mm" backbottom="10mm" backleft="20mm" backright="20mm">
<page_header>
<table style="width: 100%; border: solid 1px black;">
<tr>
<td style="text-align: left; width: 33%">html2pdf</td>
<td style="text-align: center; width: 34%">Test d'header</td>
<td style="text-align: right; width: 33%"><?php echo date('d/m/Y'); ?></td>
</tr>
</table>
</page_header>
<page_footer>
<table style="width: 100%; border: solid 1px black;">
<tr>
<td style="text-align: left; width: 50%">html2pdf.fr</td>
<td style="text-align: right; width: 50%">page [[page_cu]]/[[page_nb]]</td>
</tr>
</table>
</page_footer>
<span style="font-size: 20px; font-weight: bold">Démonstration des retour à la ligne automatique, ainsi que des sauts de page automatique</span><br>
<br>
<br>
<table style="width: 80%;border: solid 1px #5544DD; border-collapse: collapse" align="center">
<thead>
<tr>
<th style="width: 30%; text-align: left; border: solid 1px #337722; background: #CCFFCC">Header 1</th>
<th style="width: 30%; text-align: left; border: solid 1px #337722; background: #CCFFCC">Header 2</th>
</tr>
</thead>
<tbody>
<?php
for ($k=0; $k<13; $k++) {
?>
<tr>
<td style="width: 30%; text-align: left; border: solid 1px #55DD44">
test de texte assez long pour engendrer des retours à la ligne automatique...
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
</td>
<td style="width: 70%; text-align: left; border: solid 1px #55DD44">
test de texte assez long pour engendrer des retours à la ligne automatique...
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
</td>
</tr>
<?php
}
?>
</tbody>
<tfoot>
<tr>
<th style="width: 30%; text-align: left; border: solid 1px #337722; background: #CCFFCC">Footer 1</th>
<th style="width: 30%; text-align: left; border: solid 1px #337722; background: #CCFFCC">Footer 2</th>
</tr>
</tfoot>
</table>
<br>
Ca marche !!!<br>
refaisons un test : <br>
<table style="width: 80%;border: solid 1px #5544DD">
<?php
for ($k=0; $k<12; $k++) {
?>
<tr>
<td style="width: 30%; text-align: left; border: solid 1px #55DD44">
test de texte assez long pour engendrer des retours à la ligne automatique...
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
</td>
<td style="width: 70%; text-align: left; border: solid 1px #55DD44">
test de texte assez long pour engendrer des retours à la ligne automatique...
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
</td>
</tr>
<?php
}
?>
</table>
<br>
Ca marche toujours !<br>
De plus, vous pouvez faire des sauts de page manuellement en utilisant les balises &lt;page&gt; &lt;/page&gt;, comme ici par exemple :
</page>
<page pageset="old">
Nouvelle page !!!!
</page>

View File

@@ -0,0 +1,89 @@
<style type="text/css">
<!--
div.special { margin: auto; width:95%; border:1px solid #000000; padding: 2px; }
div.special table { width:100%; border:1px solid #000000; font-size:10px; border-collapse:collapse; }
.topLeftRight { border-top:1px solid #000; border-left:1px solid #000; border-right:1px solid #000;}
.topLeftBottom { border-top:1px solid #000; border-left:1px solid #000; border-bottom:1px solid #000; }
.topLeft { border-top:1px solid #000; border-left:1px solid #000; }
.bottomLeft { border-bottom:1px solid #000; border-left:1px solid #000; }
.topRight { border-top:1px solid #000; border-right:1px solid #000; }
.bottomRight { border-bottom:1px solid #000; border-right:1px solid #000; }
.topRightBottom { border-top:1px solid #000; border-bottom:1px solid #000; border-right:1px solid #000; }
-->
</style>
<page style="font-size: 16px" >
Vous pouvez choisir le format et l'orientation de votre document, en utilisant ceci :<br>
<br>
&lt;page orientation="portrait" format="A5" &gt; <i>A5 en portrait</i> &lt;/page&gt; <br>
<br>
&lt;page orientation="paysage" format="100x200" &gt; <i>100mm x 200mm en paysage</i> &lt;/page&gt;<br>
<br>
En voici un petit exemple !
</page>
<page orientation="paysage" style="font-size: 18px">
Ceci est une page en paysage<br>
<table style="width: 100%; border: solid 1px #FFFFFF;">
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
</table>
<div style="width: 70%; border: solid 1mm #770000; margin: 1mm; padding: 2mm; font-size: 4mm; line-height: normal; text-align: justify">
<img src="./res/logo.gif" alt="logo html2pdf" style="float: left; width: 60mm; margin: 2mm;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum, nibh eu ultricies scelerisque, est lorem dignissim elit, quis tempus tortor eros non ipsum. Mauris convallis augue ac sapien. In scelerisque dignissim elit. Donec consequat semper lectus. Sed in quam. Nunc molestie hendrerit ipsum. Curabitur elit risus, rhoncus ut, mattis a, convallis eu, neque. Morbi luctus est sit amet nunc. In nisl. Donec magna libero, aliquet eu, vestibulum ut, mollis sed, felis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum, nibh eu ultricies scelerisque, est lorem dignissim elit, quis tempus tortor eros non ipsum. Mauris convallis augue ac sapien. In scelerisque dignissim elit. Donec consequat semper lectus. Sed in quam. Nunc molestie hendrerit ipsum. Curabitur elit risus, rhoncus ut, mattis a, convallis eu, neque. Morbi luctus est sit amet nunc. In nisl. Donec magna libero, aliquet eu, vestibulum ut, mollis sed, felis.
</div>
<div style="width: 70%; border: solid 1mm #770000; margin: 1mm; padding: 2mm; font-size: 4mm; line-height: 150%;text-align: right;">
<img src="./res/logo.gif" alt="logo html2pdf" style="float: right; width: 60mm; margin: 2mm; ">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum, nibh eu ultricies scelerisque, est lorem dignissim elit, quis tempus tortor eros non ipsum. Mauris convallis augue ac sapien. In scelerisque dignissim elit. Donec consequat semper lectus. Sed in quam. Nunc molestie hendrerit ipsum. Curabitur elit risus, rhoncus ut, mattis a, convallis eu, neque. Morbi luctus est sit amet nunc. In nisl. Donec magna libero, aliquet eu, vestibulum ut, mollis sed, felis.
</div>
<fieldset style="width: 70%; border: solid 1mm #770000; margin: 1mm; padding: 2mm; padding-top: 0mm; font-size: 4mm; line-height: normal; background: #FFFFFF;">
<legend style=" background: #FFFFFF; padding: 1; border: solid 1px #440000;">Ceci est un exemple de fieldset</legend>
<img src="./res/logo.gif" alt="logo html2pdf" style="float: left; width: 60mm; margin: 2mm; ">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum, nibh eu ultricies scelerisque, est lorem dignissim elit, quis tempus tortor eros non ipsum. Mauris convallis augue ac sapien. In scelerisque dignissim elit. Donec consequat semper lectus. Sed in quam. Nunc molestie hendrerit ipsum. Curabitur elit risus, rhoncus ut, mattis a, convallis eu, neque. Morbi luctus est sit amet nunc. In nisl. Donec magna libero, aliquet eu, vestibulum ut, mollis sed, felis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum, nibh eu ultricies scelerisque, est lorem dignissim elit, quis tempus tortor eros non ipsum. Mauris convallis augue ac sapien. In scelerisque dignissim elit. Donec consequat semper lectus. Sed in quam. Nunc molestie hendrerit ipsum. Curabitur elit risus, rhoncus ut, mattis a, convallis eu, neque. Morbi luctus est sit amet nunc. In nisl. Donec magna libero, aliquet eu, vestibulum ut, mollis sed, felis.
</fieldset>
</page>
<page orientation="portrait" format="150x200" style="font-size: 18px">
Ceci est une page en portrait de 150mm x 200mm<br>
<table style="width: 100%; border: solid 1px #FFFFFF;">
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
<tr>
<td style="width: 30%; border: solid 1px #FF0000;">AAA</td>
<td style="width: 40%; border: solid 1px #00FF00;">BBB</td>
<td style="width: 30%; border: solid 1px #0000FF;">CCC</td>
</tr>
</table>
<br>
<div class="special">
<table>
<tr>
<td colspan="2" class="topLeftRight" style="width: 100%; text-align:left;border-bottom:1px dashed #000000">blabla blabla</td>
</tr>
<tr>
<td class="bottomLeft" style="width:70%;border-right:1px dashed #000000;text-align:left;">blabla blabla</td>
<td class="bottomRight" style="width: 30%; text-align:left;vertical-align:top;">Date :<br /> Signature :</td>
</tr>
</table>
</div>
</page>

View File

@@ -0,0 +1,71 @@
<style type="text/css">
<!--
table
{
width: 100%;
border: solid 1px #5544DD;
}
th
{
text-align: center;
border: solid 1px #113300;
background: #EEFFEE;
}
td
{
text-align: left;
border: solid 1px #55DD44;
}
td.col1
{
border: solid 1px red;
text-align: right;
}
-->
</style>
<span style="font-size: 20px; font-weight: bold">Démonstration des retour à la ligne automatique, ainsi que des sauts de page automatique<br></span>
<br>
<br>
<table>
<col style="width: 5%" class="col1">
<col style="width: 25%">
<col style="width: 30%">
<col style="width: 40%">
<thead>
<tr>
<th rowspan="2"></th>
<th colspan="3" style="font-size: 16px;">
Titre du tableau
</th>
</tr>
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
<th>Colonne 3</th>
</tr>
</thead>
<?php
for ($k=0; $k<50; $k++) {
?>
<tr>
<td><?php echo $k; ?></td>
<td>test de texte assez long pour engendrer des retours à la ligne automatique...</td>
<td>test de texte assez long pour engendrer des retours à la ligne automatique...</td>
<td>test de texte assez long pour engendrer des retours à la ligne automatique...</td>
</tr>
<?php
}
?>
<tfoot>
<tr>
<th colspan="4" style="font-size: 16px;">
bas du tableau
</th>
</tr>
</tfoot>
</table>
Cool non ?<br>

View File

@@ -0,0 +1,12 @@
.titre
{
text-decoration: underline;
}
* {color: #FF0000; }
H1 {color: #AA0055; }
H2 {color: #990066; }
H3 {color: #880077; }
H4 {color: #770088; }
H5 {color: #660099; }
H6 {color: #5500AA; }

View File

@@ -0,0 +1,45 @@
<link type="text/css" href="./res/exemple06.css" rel="stylesheet" >
<style type="text/css">
<!--
/* commentaire dans un css */
table, td { border: solid 1px #000000; color: #0000AA; }
td.col1 { color: #00AA00; }
/* autre commentaire */
table.liste { border: solid 2px #FF0000; }
table.liste td { background: #DDDDDD; }
table.liste td.col1 { color: #FF0000; }
-->
</style>
<page>
<table>
<tr>
<td>Ceci est un</td>
<td class="col1">test de style</td>
</tr>
</table>
<br>
<table class="liste">
<tr>
<td>Ceci est un</td>
<td class="col1">test de style</td>
</tr>
</table>
<br>
<H1>Essai de titre en H1</H1>
<H2>Essai de titre en H2</H2>
<H3>Essai de titre en H3</H3>
<H4>Essai de titre en H4</H4>
<H5>Essai de titre en H5</H5>
<H6>Essai de titre en H6</H6>
<H6 class="titre">Essai de titre en H6</H6>
<H5 class="titre">Essai de titre en H5</H5>
<H4 class="titre">Essai de titre en H4</H4>
<H3 class="titre">Essai de titre en H3</H3>
<H2 class="titre">Essai de titre en H2</H2>
<H1 class="titre">Essai de titre en H1</H1>
<br>
<s>Texte barré !</s><br>
<br>
<span>Texte avec la couleur par défault (style *)</span><br>
</page>

View File

@@ -0,0 +1,132 @@
<style type="text/css">
<!--
table { vertical-align: top; }
tr { vertical-align: top; }
td { vertical-align: top; }
}
-->
</style>
<page backcolor="#FEFEFE" backimg="./res/bas_page.png" backimgx="center" backimgy="bottom" backimgw="100%" backtop="0" backbottom="30mm" footer="date;heure;page" style="font-size: 12pt">
<bookmark title="Lettre" level="0" ></bookmark>
<table cellspacing="0" style="width: 100%; text-align: center; font-size: 14px">
<tr>
<td style="width: 75%;">
</td>
<td style="width: 25%; color: #444444;">
<img style="width: 100%;" src="./res/logo.gif" alt="Logo"><br>
RELATION CLIENT
</td>
</tr>
</table>
<br>
<br>
<table cellspacing="0" style="width: 100%; text-align: left; font-size: 11pt;">
<tr>
<td style="width:50%;"></td>
<td style="width:14%; ">Client :</td>
<td style="width:36%">M. Albert Dupont</td>
</tr>
<tr>
<td style="width:50%;"></td>
<td style="width:14%; ">Adresse :</td>
<td style="width:36%">
Résidence perdue<br>
1, rue sans nom<br>
00 000 - Pas de Ville<br>
</td>
</tr>
<tr>
<td style="width:50%;"></td>
<td style="width:14%; ">Email :</td>
<td style="width:36%">nomail@domain.com</td>
</tr>
<tr>
<td style="width:50%;"></td>
<td style="width:14%; ">Tel :</td>
<td style="width:36%">33 (0) 1 00 00 00 00</td>
</tr>
</table>
<br>
<br>
<table cellspacing="0" style="width: 100%; text-align: left;font-size: 10pt">
<tr>
<td style="width:50%;"></td>
<td style="width:50%; ">Spipu Ville, le <?php echo date('d/m/Y'); ?></td>
</tr>
</table>
<br>
<i>
<b><u>Objet </u>: &laquo; Bon de Retour &raquo;</b><br>
Compte client : 00C4520100A<br>
Référence du Dossier : 71326<br>
</i>
<br>
<br>
Madame, Monsieur, Cher Client,<br>
<br>
<br>
Nous souhaitons vous informer que le dossier <b>71326</b> concernant un &laquo; Bon de Retour &raquo; pour les articles suivants a été accepté.<br>
<br>
<table cellspacing="0" style="width: 100%; border: solid 1px black; background: #E7E7E7; text-align: center; font-size: 10pt;">
<tr>
<th style="width: 12%">Produit</th>
<th style="width: 52%">Désignation</th>
<th style="width: 13%">Prix Unitaire</th>
<th style="width: 10%">Quantité</th>
<th style="width: 13%">Prix Net</th>
</tr>
</table>
<?php
$nb = rand(5, 11);
$produits = array();
$total = 0;
for ($k=0; $k<$nb; $k++) {
$num = rand(100000, 999999);
$nom = "le produit n°".rand(1, 100);
$qua = rand(1, 20);
$prix = rand(100, 9999)/100.;
$total+= $prix*$qua;
$produits[] = array($num, $nom, $qua, $prix, rand(0, $qua));
?>
<table cellspacing="0" style="width: 100%; border: solid 1px black; background: #F7F7F7; text-align: center; font-size: 10pt;">
<tr>
<td style="width: 12%; text-align: left"><?php echo $num; ?></td>
<td style="width: 52%; text-align: left"><?php echo $nom; ?></td>
<td style="width: 13%; text-align: right"><?php echo number_format($prix, 2, ',', ' '); ?> &euro;</td>
<td style="width: 10%"><?php echo $qua; ?></td>
<td style="width: 13%; text-align: right;"><?php echo number_format($prix*$qua, 2, ',', ' '); ?> &euro;</td>
</tr>
</table>
<?php
}
?>
<table cellspacing="0" style="width: 100%; border: solid 1px black; background: #E7E7E7; text-align: center; font-size: 10pt;">
<tr>
<th style="width: 87%; text-align: right;">Total : </th>
<th style="width: 13%; text-align: right;"><?php echo number_format($total, 2, ',', ' '); ?> &euro;</th>
</tr>
</table>
<br>
Cette reprise concerne la quantité et les matériels dont la référence figure sur le <a href="#document_reprise">document de reprise joint</a>.<br>
Nous vous demandons de nous retourner ces produits en parfait état et dans leur emballage d'origine.<br>
<br>
Nous vous demandons également de coller impérativement l'autorisation de reprise jointe, sur le colis à reprendre afin de faciliter le traitement à l'entrepôt.<br>
<br>
Notre Service Clients ne manquera pas de revenir vers vous dès que l'avoir de ces matériels sera établi.<br>
<nobreak>
<br>
Dans cette attente, nous vous prions de recevoir, Madame, Monsieur, Cher Client, nos meilleures salutations.<br>
<br>
<table cellspacing="0" style="width: 100%; text-align: left;">
<tr>
<td style="width:50%;"></td>
<td style="width:50%; ">
Mle Jesuis CELIBATAIRE<br>
Service Relation Client<br>
Tel : 33 (0) 1 00 00 00 00<br>
Email : on_va@chez.moi<br>
</td>
</tr>
</table>
</nobreak>
</page>

View File

@@ -0,0 +1,176 @@
<page orientation="paysage" >
<bookmark title="Document" level="0" ></bookmark>
<a name="document_reprise"></a>
<table cellspacing="0" style="width: 100%;">
<tr>
<td style="width: 10%;">
<img style="width: 100%" src="./res/logo.gif" alt="Logo HTML2PDF" >
</td>
<td style="width: 80%; text-align: center; text-decoration: underline; font-weight: bold; font-size: 20pt;">
<span style="font-size: 10pt"><br></span>
ACCORD DE RETOUR
</td>
<td style="width: 10%;">
</td>
</tr>
</table>
<table cellspacing="0" style="width: 100%;">
<tr>
<td style="width: 55% ">
<table cellspacing="0" style="width: 100%; border: solid 2px #000000; ">
<tr>
<td style="width: 100%; font-size: 12pt;">
<span style="font-size: 15pt; font-weight: bold;">ADRESSE DE RETOUR<br></span>
<br>
<b>Entrepot des Bois</b><br>
sur une grande route<br>
00000 - Spipu Ville<br>
<br>
Date : <?php echo date('d/m/Y'); ?><br>
Dossier suivi par <b>Mle Jesuis CELIBATAIRE</b><br>
Tel : 33 (0) 1 00 00 00 00<br>
Email : on_va@chez.moi<br>
</td>
</tr>
</table>
<br>&nbsp;
</td>
<td style="width: 4%"></td>
<td style="width: 37% ">
<table cellspacing="0" style="width: 100%; border: solid 2px #000000; font-size: 12pt;">
<tr><td style="width: 40%;">Référence : </td><td style="width: 60%;">71326</td></tr>
<tr><td style="width: 40%;">Client : </td><td style="width: 60%;">M. Albert Dupont</td></tr>
<tr><td style="width: 40%;">Adresse : </td><td style="width: 60%;">Résidence perdue<br>1, rue sans nom<br>00 000 - Pas de Ville</td></tr>
<tr><td style="width: 40%;">TEL : </td><td style="width: 60%;">33 (0) 1 00 00 00 00</td></tr>
<tr><td style="width: 40%;">FAX : </td><td style="width: 60%;">33 (0) 1 00 00 00 01</td></tr>
<tr><td style="width: 40%;">Code Client : </td><td style="width: 60%;">00C4520100A</td></tr>
</table>
<table cellspacing="0" style="width: 100%; border: solid 2px #000000">
<tr>
<th style="width: 40%;">Motif de la Reprise</th>
<td style="width: 60%;">Produit non Conforme</td>
</tr>
</table>
<br>
</td>
<td style="width: 4%"></td>
</tr>
<tr>
<td style="width:55%;">
<table cellspacing="0" style="padding: 1px; width: 100%; border: solid 2px #000000; font-size: 11pt; ">
<tr>
<th style="width: 100%; text-align: center; border: solid 1px #000000;" colspan="4">
Partie réservée à Spipu Corp
</th>
</tr>
<tr>
<th style="width: 100%; text-align: center; border: solid 1px #000000;" colspan="4">
QUANTITE PREVUE AU CHARGEMENT
</th>
</tr>
<tr>
<th style="width: 15%; border: solid 1px #000000;">Produit</th>
<th style="width: 55%; border: solid 1px #000000;">Designation</th>
<th style="width: 15%; border: solid 1px #000000;">Neuf</th>
<th style="width: 15%; border: solid 1px #000000;">Abîmé</th>
</tr>
<?php
$i=0;
foreach ($produits as $produit) {
$i++;
?>
<tr>
<td style="width: 15%; border: solid 1px #000000;"><?php echo $produit[0]; ?></td>
<td style="width: 55%; border: solid 1px #000000;text-align: left;"><?php echo $produit[1]; ?></td>
<td style="width: 15%; border: solid 1px #000000;"><?php echo $produit[4]; ?></td>
<td style="width: 15%; border: solid 1px #000000;"><?php echo $produit[2]-$produit[4]; ?></td>
</tr>
<?php
}
for ($i; $i<12; $i++) {
?>
<tr>
<td style="width: 15%; border: solid 1px #000000;">&nbsp;</td>
<td style="width: 55%; border: solid 1px #000000;">&nbsp;</td>
<td style="width: 15%; border: solid 1px #000000;">&nbsp;</td>
<td style="width: 15%; border: solid 1px #000000;">&nbsp;</td>
</tr>
<?php
}
?>
</table>
<br>
<table cellspacing="0" style="width: 100%; text-align: left; font-size: 8pt">
<tr>
<td style="width: 100%">
<b><u>Conditions des Retours</u></b><br>
1 - il faut des conditions<br>
2 - encore des conditions<br>
3 - toujours des conditions<br>
</td>
</tr>
</table>
<br>
<table cellspacing="0" style="width: 100%; border: solid 2px #000000; text-align: center; font-size: 10pt">
<tr>
<td style="width: 30%"></td>
<td style="width: 40%">ACCORD SOCIETE</td>
<td style="width: 30%"></td>
</tr>
<tr>
<td style="width: 30%"><br><br>M. XX</td>
<td style="width: 40%"></td>
<td style="width: 30%"><br><br>Mme XY</td>
</tr>
</table>
</td>
<td style="width: 4%"></td>
<td style="width: 37%;">
<table cellspacing="0" style="padding: 1px; width: 100%; border: solid 2px #000000; font-size: 11pt; ">
<tr>
<th style="width: 100%; text-align: center; border: solid 1px #000000;" colspan="2">
Partie réservée à l'entrepôt
</th>
</tr>
<tr>
<th style="width: 100%; text-align: center; border: solid 1px #000000;" colspan="2">
QUANTITE PREVUE AU CHARGEMENT
</th>
</tr>
<tr>
<th style="width: 50%; border: solid 1px #000000;">Produit neuf </th>
<th style="width: 50%; border: solid 1px #000000;">Produit à reconditionner </th>
</tr>
<?php
for ($i=0; $i<12; $i++) {
?>
<tr>
<td style="width: 50%; border: solid 1px #000000;">&nbsp;</td>
<td style="width: 50%; border: solid 1px #000000;">&nbsp;</td>
</tr>
<?php
}
?>
</table>
<br>
<table cellspacing="0" style="width: 100%; border: solid 2px #000000; text-align: left; font-size: 10pt">
<tr>
<th style="width: 30%;">
Commentaire<br>
Retour :<br>
&nbsp;<br>
&nbsp;<br>
</th>
<td style="width: 70%;">
</td>
</tr>
</table>
<br>
<br>
<span style="font-size: 13pt"><b><u>A COLLER IMPERATIVEMENT SUR LES COLIS</u></b></span>
</td>
<td style="width: 4%"></td>
</tr>
</table>
</page>

View File

@@ -0,0 +1,114 @@
<style type="text/css">
<!--
table
{
padding: 0;
border: solid 1mm LawnGreen;
font-size: 12pt;
background: #FFFFFF;
text-align: center;
vertical-align: middle;
}
td
{
padding: 1mm;
border: solid 1mm black;
}
td.div
{
width: 110px;
height: 110px;
text-align: left;
padding: 0
}
td.div div
{
margin: auto;
background: yellow;
border: solid 2px blue;
color: red;
width: 100px;
height: 65px;
text-align: center;
}
-->
</style>
<page backcolor="#AACCFF" backleft="5mm" backright="5mm" backtop="10mm" backbottom="10mm" >
<table>
<tr>
<td class="div"><div style="rotate: 0;">Hello ! ceci <b>est</b> un test !<br><img src="./res/logo.png" style="width: 80px;" alt="logo"></div></td>
<td class="div"><div style="rotate: 270;">Hello ! ceci <b>est</b> un test !<br><img src="./res/logo.png" style="width: 80px;" alt="logo"></div></td>
</tr>
<tr>
<td class="div"><div style="rotate: 90;">Hello ! ceci <b>est</b> un test !<br><img src="./res/logo.png" style="width: 80px;" alt="logo"></div></td>
<td class="div"><div style="rotate: 180;">Hello ! ceci <b>est</b> un test !<br><img src="./res/logo.png" style="width: 80px;" alt="logo"></div></td>
</tr>
</table>
<br>
<table cellspacing="4">
<tr>
<td>a A1</td>
<td>aa A2</td>
<td>aaa A3</td>
<td>aaaa A4</td>
</tr>
<tr>
<td rowspan="2">B1</td>
<td style="font-size: 16pt">B2</td>
<td colspan="2">B3</td>
</tr>
<tr>
<td>C1</td>
<td>C2</td>
<td>C3</td>
</tr>
<tr>
<td colspan="2">D1</td>
<td colspan="2">D2</td>
</tr>
</table>
<hr>
<table>
<tr>
<td colspan="2">CoucouCoucou !</td>
<td>B</td>
<td>CC</td>
</tr>
<tr>
<td>AA</td>
<td colspan="2">CoucouCoucou !</td>
<td>CC</td>
</tr>
<tr>
<td>AA</td>
<td>B</td>
<td colspan="2">CoucouCoucou !</td>
</tr>
</table>
<hr>
<table style="background: #FFFFFF">
<tr>
<td>AA</td>
<td>AA</td>
<td>AA</td>
<td rowspan="2">AA</td>
</tr>
<tr>
<td>AA</td>
<td rowspan="2" colspan="2" >CoucouCoucou !</td>
</tr>
<tr>
<td>AA</td>
<td>CC</td>
</tr>
<tr>
<td colspan="2">D1</td>
<td colspan="2">D2</td>
</tr>
</table>
<hr>
</page>

View File

@@ -0,0 +1,24 @@
<?php
$px = isset($_GET['px']) ? $_GET['px'] : 0; $px = preg_replace('/[^0-9]/isU', '', $px);
$py = isset($_GET['py']) ? $_GET['py'] : 0; $py = preg_replace('/[^0-9]/isU', '', $py);
if ($px<1) $px = 5;
if ($py<1) $py = 5;
if ($px>20) $px = 20;
if ($py>20) $py = 20;
$width = 100;
$height = 100;
$im = imagecreatetruecolor($width, $height);
for ($y=0; $y<$height; $y+= $py) {
for ($x=0; $x<$width; $x+= $px) {
$c = imagecolorallocate($im, 200-$x, 100+$y, 100+$x-$y);
imagefilledrectangle($im, $x, $y, $x+$px, $y+$py, $c);
}
}
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);

View File

@@ -0,0 +1,120 @@
<style type="text/css">
<!--
div.minifiche
{
position: relative;
overflow: hidden;
width: 454px;
height: 138px;
padding: 0;
font-size: 11px;
text-align: left;
font-weight: normal;
background-image: url(./res/exemple10a.gif);
}
div.minifiche img.icone { position: absolute; border: none; left: 5px; top: 5px; width: 240px; height: 128px;overflow: hidden; }
div.minifiche div.zone1 { position: absolute; border: none; left: 257px; top: 8px; width: 188px; height: 14px; padding-top: 1px; overflow: hidden; text-align: center; font-weight: bold; }
div.minifiche div.zone2 { position: absolute; border: none; left: 315px; top: 28px; width: 131px; height: 14px; padding-top: 1px; overflow: hidden; text-align: left; font-weight: normal; }
div.minifiche div.zone3 { position: absolute; border: none; left: 315px; top: 48px; width: 131px; height: 14px; padding-top: 1px; overflow: hidden; text-align: left; font-weight: normal; }
div.minifiche div.zone4 { position: absolute; border: none; left: 315px; top: 68px; width: 131px; height: 14px; padding-top: 1px; overflow: hidden; text-align: left; font-weight: normal; }
div.minifiche div.zone5 { position: absolute; border: none; left: 315px; top: 88px; width: 131px; height: 14px; padding-top: 1px; overflow: hidden; text-align: left; font-weight: normal; }
div.minifiche div.download { position: absolute; border: none; left: 257px; top: 108px;width: 188px; height: 22px; overflow: hidden; text-align: center; font-weight: normal; }
-->
</style>
<page>
<div style="position: absolute; width: 10mm; height: 10mm; left: 0; top: 0; border: solid 2px #0000EE; background: #AAAAEE"></div>
<div style="position: absolute; width: 10mm; height: 10mm; right: 0; top: 0; border: solid 2px #00EE00; background: #AAEEAA"></div>
<div style="position: absolute; width: 10mm; height: 10mm; left: 0; bottom: 0; border: solid 2px #EE0000; background: #EEAAAA"></div>
<div style="position: absolute; width: 10mm; height: 10mm; right: 0; bottom: 0; border: solid 2px #EEEE00; background: #EEEEAA"></div>
<table style="width: 100%">
<tr>
<td style="text-indent: 10mm; border: solid 1px #007700; width: 80%">
<p>
Ligne dans un paragraphe,
test de texte assez long pour engendrer des retours à la ligne automatique... a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z
test de texte assez long pour engendrer des retours à la ligne automatique... a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z
</p>
<p>
Ligne dans un paragraphe,
test de texte assez long pour engendrer des retours à la ligne automatique... a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z
test de texte assez long pour engendrer des retours à la ligne automatique... a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z
</p>
</td>
<td style="border: solid 1px #000077; width: 20%">
Test de paragraphe :)
</td>
</tr>
</table>
<hr>
<div class="minifiche" >
<img class="icone" src="./res/exemple10b.jpg" alt="HTML2PDF" >
<div class="zone1">HTML2PDF</div>
<div class="zone2">PHP</div>
<div class="zone3">Utilitaire</div>
<div class="zone4">1.00</div>
<div class="zone5">01/01/1901</div>
<div class="download"><img src="./res/exemple10c.gif" alt="" style="border: none;"></div>
</div>
<hr>
<div style="border: solid 1px #000000; margin: 0; padding: 0; background: rgb(255, 255, 255); width: 400px; height: 300px; position: relative;">
<div style="border-style: solid; border-color: transparent rgb(170, 34, 34) rgb(170, 34, 34) transparent; border-width: 39.5px 59px; position: absolute; left: 101px; top: 52px; height: 0pt; width: 0pt;"></div>
<div style="border-style: solid; border-color: rgb(34, 170, 34) rgb(34, 170, 34) transparent transparent; border-width: 59px 39.5px; position: absolute; left: 101px; top: 131px; height: 0pt; width: 0pt;"></div>
<div style="border-style: solid; border-color: rgb(34, 34, 170) transparent transparent rgb(34, 34, 170); border-width: 39.5px 59px; position: absolute; left: 180px; top: 170px; height: 0pt; width: 0pt;"></div>
<div style="border-style: solid; border-color: transparent transparent rgb(170, 170, 34) rgb(170, 170, 34); border-width: 59px 39.5px; position: absolute; left: 219px; top: 52px; height: 0pt; width: 0pt;"></div>
<div style="position: absolute; left: 10px; top: 10px; font-size: 20px; font-family: Arial;">Exemple</div>
</div>
<hr>
<pre><?php
ob_start();
readfile(dirname(__FILE__).'/../exemple10.php');
echo htmlentities(ob_get_clean());
?></pre>
</page>
<page orientation="paysage" >
<style type="text/css">
<!--
div.main
{
padding: 0;
margin: 0;
position: relative;
left: 50%;
margin-left: -80mm;
width: 160mm;
height: 100mm;
text-align: center;
border: solid 10px #111111;
background: #222222;
color: #FFFFFF;
font-size: 10pt;
font-weight: bold;
text-align: center;
}
div.main a
{
text-decoration: none;
color: #EEEEEE;
}
div.main a:hover
{
text-decoration: underline;
color: #FFFFFF;
}
-->
</style>
<div class="main">
<div style="position: absolute; top: 5mm; left: 5mm; font-size:12pt;text-align: left;">Spipu.net</div><br>
<div style="position: absolute; bottom: 5mm; right: 5mm; font-size:12pt; text-align: right; ">(c)2011 Spipu</div>
<br><br><br>
<a href="http://cineblog.spipu.net/" >Cineblog by Spipu </a><br><br>
<a href="http://html2pdf.fr/" >HTML2PDF </a><br><br>
<a href="http://lambda.spipu.net/" >Lambda Finder </a><br><br>
<a href="http://open.spipu.net/" >Gestion des Opens - Yaronet </a><br><br>
<a href="http://perso.spipu.net/" >A propos de moi </a><br><br>
<a href="http://prgm.spipu.net/" >Programmes by Spipu </a><br><br>
<br><br><br>
</div>
</page>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

View File

@@ -0,0 +1,27 @@
<div style="border: 1px solid rgb(0, 0, 0); margin: 0; padding: 0; background: rgb(255, 255, 255); width: 400px; height: 300px;">
<div style="border-style: solid; border-color: transparent rgb(170, 34, 170) rgb(170, 34, 170) transparent; border-width: 18px 56px; position: absolute; left: 111px; top: 69px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(170, 34, 170) transparent transparent rgb(170, 34, 170); border-width: 18px 9px; position: absolute; left: 223px; top: 69px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent rgb(170, 34, 170) rgb(170, 34, 170) transparent; border-width: 3px 9px; position: absolute; left: 223px; top: 63px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(170, 34, 170) transparent transparent rgb(170, 34, 170); border-width: 3px 1.5px; position: absolute; left: 241px; top: 63px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent rgb(170, 34, 170) rgb(170, 34, 170) transparent; border-width: 0.5px 1.5px; position: absolute; left: 241px; top: 62px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(170, 34, 170) rgb(170, 34, 170) transparent transparent; border-width: 67px 22px; position: absolute; left: 111px; top: 105px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(170, 34, 170) transparent transparent rgb(170, 34, 170); border-width: 67px 34px; position: absolute; left: 155px; top: 105px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent rgb(34, 170, 170) rgb(34, 170, 170) transparent; border-width: 67px 33.5px; position: absolute; left: 178px; top: 61px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent transparent rgb(34, 170, 170) rgb(34, 170, 170); border-width: 67px 22px; position: absolute; left: 245px; top: 61px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(34, 170, 170) transparent transparent rgb(34, 170, 170); border-width: 18px 55.5px; position: absolute; left: 178px; top: 195px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent rgb(34, 170, 170) rgb(34, 170, 170) transparent; border-width: 18px 9px; position: absolute; left: 160px; top: 195px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(34, 170, 170) transparent transparent rgb(34, 170, 170); border-width: 3px 9px; position: absolute; left: 160px; top: 231px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: transparent rgb(34, 170, 170) rgb(34, 170, 170) transparent; border-width: 3px 1.5px; position: absolute; left: 157px; top: 231px; height: 0pt; width: 0pt;"></div><div style="border-style: solid; border-color: rgb(34, 170, 170) transparent transparent rgb(34, 170, 170); border-width: 0.5px 1.5px; position: absolute; left: 157px; top: 237px; height: 0pt; width: 0pt;"></div>
</div>
<hr>
<table style="width:100%;">
<tr>
<td id="mon_td_trop_grand" style="width:100%;">
Test de TD très grand, en désactivant le test de TD ne devant pas depasser une page<br>
via la méthode <b>setTestTdInOnePage</b>.<br>
<table style="width:100%;">
<?php
for ($i=0; $i<=40; $i++) {
?>
<tr>
<td style="border:1px solid red;width:100%;">
test de texte assez long pour engendrer des retours à la ligne automatique...
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
</td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>

View File

@@ -0,0 +1,114 @@
<?php
$chaine = 'test de texte assez long pour engendrer des retours à la ligne automatique...';
$chaine.= ', répétitif car besoin d\'un retour à la ligne';
$chaine.= ', répétitif car besoin d\'un retour à la ligne';
$chaine.= ', répétitif car besoin d\'un retour à la ligne';
$chaine.= ', répétitif car besoin d\'un retour à la ligne';
?>
<style type="text/css">
<!--
ul
{
background: #FFDDDD;
border: solid 1px #FF0000;
}
ol
{
background: #DDFFDD;
border: solid 1px #00FF00;
}
ul li
{
background: #DDFFAA;
border: solid 1px #AAFF00;
}
ol li
{
background: #AADDFF;
border: solid 1px #00AAFF;
}
-->
</style>
<page style="font-size: 11px">
<ul style="list-style-type: disc; width: 80%">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
<ul style="list-style-type: circle">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
<ul style="list-style-type: square">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
<ul style="list-style-image: url(./res/puce.gif)">
<li>
Puce en image 1 :<br><?php echo $chaine; ?>
</li>
<li>
Puce en image 2 :<br><?php echo $chaine; ?>
</li>
<li>
Puce en image 3 :<br><?php echo $chaine; ?>
</li>
</ul>
</li>
</ul>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
</li>
</ul>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
</li>
</ul>
<hr><hr>
<ol style="list-style-type: upper-roman">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
<ol style="list-style-type: lower-alpha">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
<ol style="list-style-type: decimal">
<li>
Point 1 :<br><?php echo $chaine; ?>
</li>
<li>
Point 2 :<br><?php echo $chaine; ?>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
</li>
</ol>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
</li>
</ol>
</li>
<li>
Point 3 :<br><?php echo $chaine; ?>
</li>
</ol>
</page>

View File

@@ -0,0 +1,88 @@
<style type="text/css">
<!--
table.tableau { text-align: left; }
table.tableau td { width: 15mm; font-family: courier; }
table.tableau th { width: 15mm; font-family: courier; }
.ul1
{
list-style-image: url(./res/puce2.gif);
}
.ul1 li
{
color:#F19031;
}
.ul2
{
list-style: square;
}
.ul2 li
{
color:#31F190;
}
.ul3
{
list-style: none;
}
.ul3 li
{
color:#9031F1;
}
-->
</style>
Exemple de liste avec puce personnalisée :<br>
<table style="width: 100%;" >
<tr>
<td style="width: 33%;">
<ul class="ul1">
<li>Votre ligne 1</li>
<li>Votre ligne 2</li>
<li>Votre ligne 3</li>
</ul>
</td>
<td style="width: 34%;">
<ul class="ul2">
<li>Votre ligne 1</li>
<li>Votre ligne 2</li>
<li>Votre ligne 3</li>
</ul>
</td>
<td style="width: 33%;">
<ul class="ul3">
<li>Votre ligne 1</li>
<li>Votre ligne 2</li>
<li>Votre ligne 3</li>
</ul>
</td>
</tr>
</table>
Exemple de caracteres :<br>
<table class="tableau" >
<tr><th>0</th><th>a</th><th>e</th><th>i</th><th>o</th><th>u</th></tr>
<tr><th>1</th><td>&agrave;</td><td>&egrave;</td><td>&igrave;</td><td>&ograve;</td><td>&ugrave;</td></tr>
<tr><th>2</th><td>&aacute;</td><td>&eacute;</td><td>&iacute;</td><td>&oacute;</td><td>&uacute;</td></tr>
<tr><th>3</th><td>&acirc;</td><td>&ecirc;</td><td>&icirc;</td><td>&ocirc;</td><td>&ucirc;</td></tr>
<tr><th>4</th><td>&auml;</td><td>&euml;</td><td>&iuml;</td><td>&ouml;</td><td>&uuml;</td></tr>
<tr><th>5</th><td>&atilde;</td><td> </td><td> </td><td>&otilde;</td><td> </td></tr>
<tr><th>6</th><td>&aring;</td><td> </td><td> </td><td> </td><td> </td></tr>
<tr><th>7</th><td>&euro;</td><td>&laquo;</td><td> </td><td>&oslash;</td><td> </td></tr>
</table>
<br>
<?php
$phrase = "ceci est un exemple avec <b>du gras</b>, ";
$phrase.= "<i>de l'italique</i>, ";
$phrase.= "<u>du souligné</u>, ";
$phrase.= "<u><i><b>et une image</b></i></u> : ";
$phrase.= "<img src='./res/logo.gif' alt='logo' style='width: 15mm'>";
?>
Table :<br>
<table style="border: solid 1px red; width: 105mm">
<tr><td style="width: 100%; border: solid 1px green; text-align: left; "><?php echo $phrase; ?></td></tr>
<tr><td style="width: 100%; border: solid 1px green; text-align: center;"><?php echo $phrase; ?></td></tr>
<tr><td style="width: 100%; border: solid 1px green; text-align: right; "><?php echo $phrase; ?></td></tr>
</table>
<br>
Div :<br>
<div style="width: 103mm; border: solid 1px green; text-align: left; margin: 1mm 0 1mm 0;padding: 1mm;"><?php echo $phrase; ?></div>
<div style="width: 103mm; border: solid 1px green; text-align: center;margin: 1mm 0 1mm 0;padding: 1mm;"><?php echo $phrase; ?></div>
<div style="width: 103mm; border: solid 1px green; text-align: right; margin: 1mm 0 1mm 0;padding: 1mm;"><?php echo $phrase; ?></div>

View File

@@ -0,0 +1,64 @@
<?php
$url = $_SERVER['REQUEST_URI'];
if (substr($url, 0, 7)!=='http://') {
$url = 'http://'.$_SERVER['HTTP_HOST'];
if (ISSET($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT']!=80) $url.= ':'.$_SERVER['SERVER_PORT'];
$url.= $_SERVER['REQUEST_URI'];
}
?>
<style type="text/css">
li
{ font-size: 10pt; }
input, textarea, select
{
border: dashed 1mm red;
background: #FCC;
color: #400;
text-align: left;
font-size: 11pt;
}
</style>
<page footer="form">
<h1>Test de formulaire</h1><br>
<br>
<form action="<?php echo $url; ?>">
<input type="hidden" name="test" value="1">
Vous utilisez cette librairie dans le cadre :
<ul style="list-style: none">
<li><input type="checkbox" name="cadre_boulot" checked="checked"> du boulot</li>
<li><input type="checkbox" name="cadre_perso" > perso</li>
</ul>
Vous êtes :
<ul style="list-style: none">
<li><input type="radio" name="sexe" value="homme" checked="checked"> un homme</li>
<li><input type="radio" name="sexe" value="femme"> une femme</li>
</ul>
Vous avez :
<select name="age" >
<option value="15">moins de 15 ans</option>
<option value="20">entre 15 et 20 ans</option>
<option value="25">entre 20 et 25 ans</option>
<option value="30">entre 25 et 30 ans</option>
<option value="40">plus de 30 ans</option>
</select><br>
<br>
Vous aimez :
<select name="aime[]" size="5" multiple="multiple">
<option value="ch1">l'informatique</option>
<option value="ch2">le cinéma</option>
<option value="ch3">le sport</option>
<option value="ch4">la littérature</option>
<option value="ch5">autre</option>
</select><br>
<br>
Votre phrase fétiche : <input type="text" name="phrase" value="cette lib est géniale !!!" style="width: 100mm"><br>
<br>
Un commentaire ?<br>
<textarea name="comment" rows="3" cols="30">rien de particulier</textarea><br>
<br>
<input type="reset" name="btn_reset" value="Initialiser">
<input type="button" name="btn_print" value="Imprimer" onclick="print(true);">
<input type="submit" name="btn_submit" value="Envoyer">
</form>
</page>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

View File

@@ -0,0 +1,23 @@
<page>
<draw style="margin: auto; width:150mm; height:100mm; background: #000000; border: solid 0.5mm #777777;">
<line style="stroke:#FF0000; stroke-width:1mm" x1="10mm" y1="10mm" x2="140mm" y2="10mm" >
<rect style="stroke:#770077; stroke-width:1mm; fill:#008888" x="15%" y="15%" w="70%" h="70%">
<ellipse style="stroke:#000077; stroke-width:1mm; fill:#888800" cx="50%" cy="50%" rx="30%" ry="30%">
<circle style="stroke:#0000AA; stroke-width:1mm; fill:#AAAA00" cx="50%" cy="50%" r="15%">
</draw><br>
<draw style="margin: auto; width:150mm; height:100mm; background: #000000; border: solid 0.5mm #777777;">
<path style="fill:#AAAA00; stroke:#0000AA; stroke-width:1mm" d="M20mm,10mm H130mm A10mm,10mm 0,0,0 140mm,20mm V80mm A10mm,10mm 0,0,0 130mm,90mm H20mm A10mm,10mm 0,0,0 10mm,80mm V20mm A10mm,10mm 0,0,0 20mm,10mm">
<path style="fill:#770000; stroke:#AA0033; stroke-width:0.5mm" d="M 20mm,40mm a16mm,8mm 0,0,0 16mm,8mm" />
<path style="fill:#770000; stroke:#00AA33; stroke-width:0.5mm" d="M 20mm,40mm l16mm,8mm" />
<path style="fill:#770000; stroke:#AA0033; stroke-width:0.5mm" d="M 40mm,40mm a16mm,8mm 0,0,1 16mm,8mm" />
<path style="fill:#770000; stroke:#00AA33; stroke-width:0.5mm" d="M 40mm,40mm l16mm,8mm" />
<path style="fill:#770000; stroke:#AA0033; stroke-width:0.5mm" d="M 80mm,40mm a16mm,8mm 0,1,0 16mm,8mm" />
<path style="fill:#770000; stroke:#00AA33; stroke-width:0.5mm" d="M 80mm,40mm l16mm,8mm" />
<path style="fill:#770000; stroke:#AA0033; stroke-width:0.5mm" d="M100mm,40mm a16mm,8mm 0,1,1 16mm,8mm" />
<path style="fill:#770000; stroke:#00AA33; stroke-width:0.5mm" d="M100mm,40mm l16mm,8mm" />
</draw><br>
<br>
Les balises SVG suivantes sont reconnues : LINE, RECT, CIRCLE, ELLIPSE, PATH, POLYGON, POLYLINE, G<br>
<br>
Spécifications SVG : <a href="http://www.w3.org/TR/SVG11/expanded-toc.html">http://www.w3.org/TR/SVG11/expanded-toc.html</a>
</page>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,31 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
include(dirname(__FILE__).'/res/svg.php');
$content = ob_get_clean();
// convert into PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('svg.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,140 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
$content = '
<page>
<draw style="margin: auto; width:180mm; height:240mm; background: #444444; border: solid 0.5mm #777777;">
<g transform="translate(90mm,120mm) scale(1.8) translate(-250,-245)">
<path d="M 157.219 412.757 C 158.128 465.467 355.334 465.467 354.425 413.666 C 353.516 358.23 159.036 357.322 157.219 412.757 z " id="path749" sodipodi:nodetypes="ccc" style="fill:#623e35;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 212.655 306.43 L 211.746 413.665 C 219.694 425.479 288.517 427.298 299.898 412.757 L 299.898 305.521 C 289.901 320.97 232.647 326.423 212.655 306.43 z " id="path748" sodipodi:nodetypes="ccccc" style="fill:#623e35;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:4.76806;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" transform="matrix(0.618557,0.000000,0.000000,1.000000,98.94439,-0.908813)"/>
<path d="M 248.097 24.7078 C 244.462 35.6132 134.5 111.951 71.7941 150.119 C 109.053 250.994 394.412 247.359 425.31 150.121 C 371.692 134.671 250.823 34.7044 248.097 24.7078 z " id="path747" sodipodi:nodetypes="cccc" style="fill:#009500;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" transform="translate(0.908775,139.0434)"/>
<path d="M 248.097 24.7078 C 244.462 35.6132 168.125 111.951 105.419 150.119 C 144.496 206.464 356.243 212.826 390.776 148.303 C 337.158 132.853 250.823 34.7044 248.097 24.7078 z " id="path746" sodipodi:nodetypes="cccc" style="fill:#009500;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" transform="translate(-3.725290e-7,71.79367)"/>
<path d="M 157.343 412.757 L 158.596 431.841 C 201.308 481.824 340.324 469.226 353.047 431.966 L 354.205 412.757 C 356.023 466.375 160.07 463.649 157.343 412.757 z " id="path750" sodipodi:nodetypes="ccccc" style="fill:#623e35;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 248.097 24.7078 C 244.462 35.6132 207.202 107.407 144.497 145.575 C 181.756 190.106 322.618 193.742 357.151 146.485 C 303.533 131.035 250.823 34.7044 248.097 24.7078 z " id="path745" sodipodi:nodetypes="cccc" style="fill:#009500;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:bevel;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 247.188 38.3395 C 219.016 91.0487 170.85 136.488 151.766 145.575 C 159.946 160.116 206.293 174.657 225.378 171.931 C 213.564 141.032 216.289 111.951 247.188 38.3395 z " id="path751" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.5;"/>
<path d="M 179.938 171.93 C 168.124 181.927 125.412 215.552 114.506 222.822 C 106.327 223.731 157.219 251.903 175.395 251.903 C 135.408 228.275 217.199 177.383 179.938 171.93 z " id="path752" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.498039;"/>
<path d="M 140.861 250.994 C 126.321 260.082 102.692 277.349 78.1551 290.071 C 83.6078 310.065 123.594 335.511 132.682 338.237 C 96.331 292.798 175.395 260.082 140.861 250.994 z " id="path753" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.498039;"/>
<path d="M 233.308 366.285 C 234.121 379.008 231.643 403.487 233.623 413.293 C 247.255 420.056 256.276 418.554 266.962 418.114 C 253.33 412.661 242.329 402.388 233.308 366.285 z " id="path755" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.3;"/>
<path d="M 222.459 376.374 C 201.797 379.129 155.308 391.181 161.506 415.975 C 167.705 438.703 213.505 443.18 226.247 446.624 C 220.048 439.392 171.837 405.988 222.459 376.374 z " id="path756" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.3;"/>
<path d="M 161.162 428.028 C 163.573 429.061 172.871 441.803 208.685 456.955 C 193.532 452.822 163.228 440.425 161.162 428.028 z " id="path757" sodipodi:nodetypes="ccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.3;" transform=""/>
<path d="M 315.437 454.544 C 329.556 448.345 346.774 443.524 349.873 432.505 C 355.039 422.174 348.496 436.292 315.437 454.544 z " id="path758" sodipodi:nodetypes="ccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.25;"/>
<path d="M 287.888 377.407 C 326.457 377.407 383.965 411.154 327.834 438.359 C 362.615 398.413 287.888 378.44 287.888 377.407 z " id="path759" sodipodi:nodetypes="ccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.247059;"/>
<path d="M 259.65 366.043 C 259.65 366.043 279.967 363.288 281.345 365.698 C 282.722 368.109 281.689 387.049 281.001 391.87 C 279.968 382.572 282.378 368.798 259.65 366.043 z " id="path760" sodipodi:nodetypes="cccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.247059;"/>
<path d="M 387.929 328.061 C 401.191 322.851 418.716 301.536 421.559 292.536 C 418.243 288.747 385.56 275.484 377.982 268.853 C 383.666 278.326 409.717 297.747 387.929 328.061 z " id="path761" sodipodi:nodetypes="cccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.247059;"/>
<path d="M 352.404 245.644 C 370.876 238.539 382.244 229.065 384.613 222.908 C 375.613 219.119 355.246 205.856 345.299 200.172 C 352.878 208.224 368.509 221.487 352.404 245.644 z " id="path762" sodipodi:nodetypes="cccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.247059;"/>
<path d="M 305.038 115.861 C 312.617 126.755 346.72 147.595 350.51 148.543 C 345.773 156.122 322.09 168.437 313.09 169.384 C 308.354 168.911 336.773 152.806 305.038 115.861 z " id="path763" sodipodi:nodetypes="cccc" style="fill:#000011;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.247059;"/>
<g id="g771" transform="translate(-249.1874,169.4743)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path772" sodipodi:nodetypes="ccc" style="fill:#ff0000;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path773" sodipodi:nodetypes="ccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.7;"/>
</g>
<g id="g774" transform="translate(-46.89011,243.8286)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path775" sodipodi:nodetypes="ccc" style="fill:#ff0000;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path776" sodipodi:nodetypes="ccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.7;"/>
</g>
<g id="g777" transform="translate(-226.4122,271.2928)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path778" sodipodi:nodetypes="ccc" style="fill:#ff0000;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path779" sodipodi:nodetypes="ccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.7;"/>
</g>
<g id="g780" transform="translate(-117.8951,83.73234)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path781" sodipodi:nodetypes="ccc" style="fill:#ff0000;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:3.75;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path782" sodipodi:nodetypes="ccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.7;"/>
</g>
<g id="g791" transform="translate(-236.4601,103.1582)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path792" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff00ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path793" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g794" transform="translate(-85.74192,124.5937)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path795" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff00ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path796" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g797" transform="translate(-144.0196,236.4601)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path798" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff00ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path799" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g808" transform="translate(-158.7565,60.28728)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path809" sodipodi:nodetypes="ccc" style="font-size:12;fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path810" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g811" transform="translate(-300.7665,212.3452)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path812" sodipodi:nodetypes="ccc" style="font-size:12;fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path813" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g814" transform="translate(-109.1869,185.5508)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path815" sodipodi:nodetypes="ccc" style="font-size:12;fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path816" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g822" transform="translate(-192.9193,111.8663)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path823" sodipodi:nodetypes="ccc" style="font-size:12;fill:#00ffff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path824" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g825" transform="translate(-101.1486,279.3311)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path826" sodipodi:nodetypes="ccc" style="font-size:12;fill:#00ffff;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path827" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g836" transform="translate(-293.3981,267.9435)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path837" sodipodi:nodetypes="ccc" style="font-size:12;fill:#00ff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path838" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g839" transform="translate(-203.6370,194.9289)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path840" sodipodi:nodetypes="ccc" style="font-size:12;fill:#00ff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path841" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g851" transform="translate(-81.05289,214.3548)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path852" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path853" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g854" transform="translate(-146.0292,146.0292)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path855" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path856" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g857" transform="translate(-231.7711,227.7519)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path858" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path859" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g865" transform="translate(-202.9672,64.97627)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path866" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff9300;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path867" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g868" transform="translate(-158.0866,287.3694)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path869" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff9300;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path870" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g871" transform="translate(-152.7278,188.2303)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path872" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ff9300;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path873" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
<g id="g880" transform="translate(-140.0000,25.00000)">
<polygon id="polygon878" points="418.662,76.6493 399.532,56.5037 376.859,72.5587 390.107,48.1396 367.832,31.538 395.15,36.5918 404.055,10.2764 407.69,37.819 435.47,38.1568 410.399,50.1252 418.662,76.6493 " sodipodi:arg1="1.04002345" sodipodi:arg2="1.66834199" sodipodi:cx="400.575500" sodipodi:cy="45.8358383" sodipodi:r1="35.7292557" sodipodi:r2="10.7187767" sodipodi:sides="5" sodipodi:type="star" style="font-size:12;fill:#ff0000;fill-rule:evenodd;stroke-width:3.75;stroke:#000000;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1;" transform="matrix(0.994342,-0.106230,0.106230,0.994342,-2.344353,42.91328)"/>
<path d="M 388.532 62.8101 C 401.79 40.713 380.796 41.775 381.792 39.3513 C 399.139 44.4405 399.022 35.5462 400.79 24.014 C 403.441 40.3242 406.708 43.765 388.532 62.8101 z " id="path879" sodipodi:nodetypes="cccc" style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:0.5;"/>
</g>
<g id="g883" transform="translate(-216.1370,24.92889)">
<path d="M 424.69 52.5344 C 445.456 51.8645 445.456 82.0082 426.03 82.0082 C 401.245 82.678 404.594 53.2043 424.69 52.5344 z " id="path884" sodipodi:nodetypes="ccc" style="font-size:12;fill:#00ff00;fill-rule:evenodd;stroke:#000000;stroke-width:3.75;fill-opacity:1;"/>
<path d="M 425.36 55.2139 C 423.35 53.2043 401.915 63.922 415.982 75.3096 C 424.691 74.6397 427.37 57.2234 425.36 55.2139 z " id="path885" sodipodi:nodetypes="ccc" style="font-size:12;fill:#ffffff;fill-opacity:0.7;fill-rule:evenodd;stroke-width:1pt;"/>
</g>
</g>
</draw>
</page>';
// onvert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('svg_tree.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,98 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
$num = 'CMD01-'.date('ymd');
$nom = 'DUPONT Alphonse';
$date = '01/01/2012';
?>
<style type="text/css">
<!--
div.zone { border: none; border-radius: 6mm; background: #FFFFFF; border-collapse: collapse; padding:3mm; font-size: 2.7mm;}
h1 { padding: 0; margin: 0; color: #DD0000; font-size: 7mm; }
h2 { padding: 0; margin: 0; color: #222222; font-size: 5mm; position: relative; }
-->
</style>
<page format="100x200" orientation="L" backcolor="#AAAACC" style="font: arial;">
<div style="rotate: 90; position: absolute; width: 100mm; height: 4mm; left: 195mm; top: 0; font-style: italic; font-weight: normal; text-align: center; font-size: 2.5mm;">
Ceci est votre e-ticket à présenter au contrôle d'accès -
billet généré par <a href="http://html2pdf.fr/" style="color: #222222; text-decoration: none;">html2pdf</a>
</div>
<table style="width: 99%;border: none;" cellspacing="4mm" cellpadding="0">
<tr>
<td colspan="2" style="width: 100%">
<div class="zone" style="height: 34mm;position: relative;font-size: 5mm;">
<div style="position: absolute; right: 3mm; top: 3mm; text-align: right; font-size: 4mm; ">
<b><?php echo $nom; ?></b><br>
</div>
<div style="position: absolute; right: 3mm; bottom: 3mm; text-align: right; font-size: 4mm; ">
<b>1</b> place <b>plein tarif</b><br>
Prix unitaire TTC : <b>45,00&euro;</b><br>
N° commande : <b><?php echo $num; ?></b><br>
Date d'achat : <b><?php echo date('d/m/Y à H:i:s'); ?></b><br>
</div>
<h1>Billet soirée spécial HTML2PDF</h1>
&nbsp;&nbsp;&nbsp;&nbsp;<b>Valable le <?php echo $date; ?> à 20h30</b><br>
<img src="./res/logo.gif" alt="logo" style="margin-top: 3mm; margin-left: 20mm">
</div>
</td>
</tr>
<tr>
<td style="width: 25%;">
<div class="zone" style="height: 40mm;vertical-align: middle;text-align: center;">
<qrcode value="<?php echo $num."\n".$nom."\n".$date; ?>" ec="Q" style="width: 37mm; border: none;" ></qrcode>
</div>
</td>
<td style="width: 75%">
<div class="zone" style="height: 40mm;vertical-align: middle; text-align: justify">
<b>Conditions d'utilisation du billet</b><br>
Le billet est soumis aux conditions générales de vente que vous avez
acceptées avant l'achat du billet. Le billet d'entrée est uniquement
valable s'il est imprimé sur du papier A4 blanc, vierge recto et verso.
L'entrée est soumise au contrôle de la validité de votre billet. Une bonne
qualité d'impression est nécessaire. Les billets partiellement imprimés,
souillés, endommagés ou illisibles ne seront pas acceptés et seront
considérés comme non valables. En cas d'incident ou de mauvaise qualité
d'impression, vous devez imprimer à nouveau votre fichier. Pour vérifier
la bonne qualité de l'impression, assurez-vous que les informations écrites
sur le billet, ainsi que les pictogrammes (code à barres 2D) sont bien
lisibles. Ce titre doit être conservé jusqu'à la fin de la manifestation.
Une pièce d'identité pourra être demandée conjointement à ce billet. En
cas de non respect de l'ensemble des règles précisées ci-dessus, ce billet
sera considéré comme non valable.<br>
<br>
<i>Ce billet est reconnu électroniquement lors de votre
arrivée sur site. A ce titre, il ne doit être ni dupliqué, ni photocopié.
Toute reproduction est frauduleuse et inutile.</i>
</div>
</td>
</tr>
</table>
</page>
<?php
$content = ob_get_clean();
// convert
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('ticket.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,29 @@
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
$content = file_get_contents(dirname(__FILE__).'/../examples/res/utf8test.txt');
$content = '<page style="font-family: freeserif"><br />'.nl2br($content).'</page>';
// convert to PDF
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('real');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('utf8.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}

View File

@@ -0,0 +1,21 @@
"err01","L'etiqueta <b>&lt;[[OTHER]]&gt;</b> encara no existeix.<br><br>Si voleu afegir-la, heu de crear els mètodes <b>o_[[OTHER]]</b> (per l'obertura) i <b>c_[[OTHER]]</b> (pel tancament) seguint el model de les etiquetes existents.<br><br>A més, si creeu nous mètodes, envieu-ho a webmaster@html2pdf.fr per tal d'afegir-los a les següents versions d'HTML2PDF, i que tothom en pugui gaudir."
"err02","Frase de 1000 línies => massa llarga<br><b>Frase :</b> [[OTHER_0]]<br><b>Mida casella :</b> [[OTHER_1]]<br><b>Mida text :</b> [[OTHER_2]]<br>"
"err03","Codi HTML no vàlid, una etiqueta té un tancament de més : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Codi HTML no vàlid, les etiquetes no estan tancades en l'ordre correcte.<br>Estat : <pre>[[OTHER]]</pre>"
"err05","Codi HTML no vàlid, totes les etiquetes han de tenir el seu tancament.<br>Estat : <pre>[[OTHER]]</pre>"
"err06","Impossible carregar la imatge <b>[[OTHER]]</b>"
"err07","El contingut d'una etiqueta TD no quep en una sola pàgina"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","ERROR n°"
"txt02","Fitxer :"
"txt03","Línia :"
"pdf01","Document generat el [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Document generat a les [[date_h]]:[[date_i]]"
"pdf03","Document generat el [[date_d]]/[[date_m]]/[[date_y]] a les [[date_h]]:[[date_i]]"
"pdf04","Pàgina [[page_cu]]/[[page_nb]]"
"pdf05","Els formularis requereixen l'ús de l'Adobe Reader 9"
"vue01","CAPÇALERA"
"vue02","PEU DE PÀGINA"
"vue03","PÀGINA"
"vue04","Visualització"
1 err01 L'etiqueta <b>&lt;[[OTHER]]&gt;</b> encara no existeix.<br><br>Si voleu afegir-la, heu de crear els mètodes <b>o_[[OTHER]]</b> (per l'obertura) i <b>c_[[OTHER]]</b> (pel tancament) seguint el model de les etiquetes existents.<br><br>A més, si creeu nous mètodes, envieu-ho a webmaster@html2pdf.fr per tal d'afegir-los a les següents versions d'HTML2PDF, i que tothom en pugui gaudir.
2 err02 Frase de 1000 línies => massa llarga<br><b>Frase :</b> [[OTHER_0]]<br><b>Mida casella :</b> [[OTHER_1]]<br><b>Mida text :</b> [[OTHER_2]]<br>
3 err03 Codi HTML no vàlid, una etiqueta té un tancament de més : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Codi HTML no vàlid, les etiquetes no estan tancades en l'ordre correcte.<br>Estat : <pre>[[OTHER]]</pre>
5 err05 Codi HTML no vàlid, totes les etiquetes han de tenir el seu tancament.<br>Estat : <pre>[[OTHER]]</pre>
6 err06 Impossible carregar la imatge <b>[[OTHER]]</b>
7 err07 El contingut d'una etiqueta TD no quep en una sola pàgina
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 ERROR n°
11 txt02 Fitxer :
12 txt03 Línia :
13 pdf01 Document generat el [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Document generat a les [[date_h]]:[[date_i]]
15 pdf03 Document generat el [[date_d]]/[[date_m]]/[[date_y]] a les [[date_h]]:[[date_i]]
16 pdf04 Pàgina [[page_cu]]/[[page_nb]]
17 pdf05 Els formularis requereixen l'ús de l'Adobe Reader 9
18 vue01 CAPÇALERA
19 vue02 PEU DE PÀGINA
20 vue03 PÀGINA
21 vue04 Visualització

View File

@@ -0,0 +1,21 @@
"err01","Element <b>&lt;[[OTHER]]&gt;</b> neexistuje.<br><br>Pokud ho chcete přidat, musíte vytvořit metodu <b>o_[[OTHER]]</b> (pro otevření) a <b>c_[[OTHER]]</b> (pro zavření) k začlenění do modelu jako existující element.<br><br>Pokud vytvoříte metodu, nebojte se poslat email na webmaster@html2pdf.fr k zařazení do další verze HTML2PDF."
"err02","Sentence of 1000 lines => too long<br><b>Sentence :</b> [[OTHER_0]]<br><b>Width box :</b> [[OTHER_1]]<br><b>Length text :</b> [[OTHER_2]]<br>"
"err03","Chyba v HTML, element je příliš mnohokrát zavřen: <b>&lt;[[OTHER]]&gt;</b>"
"err04","Chyba v HTML, element není uzavřen ve správném pořadí.<br>Stav : <pre>[[OTHER]]</pre>"
"err05","Chyba v HTML, všechny elementy musí být zavřeny.<br>Stav : <pre>[[OTHER]]</pre>"
"err06","Menohu načíst orbázek <b>[[OTHER]]</b>"
"err07","Obsah TD elementu se nevejde na jednu stránku"
"err08","<b>&lt;[[OTHER]]&gt;</b> element není v &lt;DRAW&gt; elementu"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","CHYBA č."
"txt02","Soubor :"
"txt03","Řádek :"
"pdf01","Dokument vytvořen dne [[date_d]].[[date_m]].[[date_y]]"
"pdf02","Dokument vytvořen v [[date_h]]:[[date_i]]"
"pdf03","Dokument vytvořen dne [[date_d]].[[date_m]].[[date_y]] v [[date_h]]:[[date_i]]"
"pdf04","Stránka [[page_cu]]/[[page_nb]]"
"pdf05","Formuláře vyžadují Adobe Reader 9"
"vue01","HLAVIČKA"
"vue02","PATIČKA"
"vue03","STRÁNKA"
"vue04","POHLED"
1 err01 Element <b>&lt;[[OTHER]]&gt;</b> neexistuje.<br><br>Pokud ho chcete přidat, musíte vytvořit metodu <b>o_[[OTHER]]</b> (pro otevření) a <b>c_[[OTHER]]</b> (pro zavření) k začlenění do modelu jako existující element.<br><br>Pokud vytvoříte metodu, nebojte se poslat email na webmaster@html2pdf.fr k zařazení do další verze HTML2PDF.
2 err02 Sentence of 1000 lines => too long<br><b>Sentence :</b> [[OTHER_0]]<br><b>Width box :</b> [[OTHER_1]]<br><b>Length text :</b> [[OTHER_2]]<br>
3 err03 Chyba v HTML, element je příliš mnohokrát zavřen: <b>&lt;[[OTHER]]&gt;</b>
4 err04 Chyba v HTML, element není uzavřen ve správném pořadí.<br>Stav : <pre>[[OTHER]]</pre>
5 err05 Chyba v HTML, všechny elementy musí být zavřeny.<br>Stav : <pre>[[OTHER]]</pre>
6 err06 Menohu načíst orbázek <b>[[OTHER]]</b>
7 err07 Obsah TD elementu se nevejde na jednu stránku
8 err08 <b>&lt;[[OTHER]]&gt;</b> element není v &lt;DRAW&gt; elementu
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 CHYBA č.
11 txt02 Soubor :
12 txt03 Řádek :
13 pdf01 Dokument vytvořen dne [[date_d]].[[date_m]].[[date_y]]
14 pdf02 Dokument vytvořen v [[date_h]]:[[date_i]]
15 pdf03 Dokument vytvořen dne [[date_d]].[[date_m]].[[date_y]] v [[date_h]]:[[date_i]]
16 pdf04 Stránka [[page_cu]]/[[page_nb]]
17 pdf05 Formuláře vyžadují Adobe Reader 9
18 vue01 HLAVIČKA
19 vue02 PATIČKA
20 vue03 STRÁNKA
21 vue04 POHLED

View File

@@ -0,0 +1,21 @@
"err01","Tag <b>&lt;[[OTHER]]&gt;</b> endnu ikke eksisterer.<br><br>Hvis du ønsker at tilføje det, skal du oprette de metoder <b>o_[[OTHER]]</b> (for åbning) og <b>c_[[OTHER]]</b> (for lukning) ved at følge den model af eksisterende tags.<br><br>Hvis du opretter disse metoder, så tøv ikke med at send mig en e-mail til webmaster@html2pdf.fr til indsat dem i den næste version af HTML2PDF."
"err02","Sætning af 1000 lines => er for lang<br><b>sætning :</b> [[OTHER_0]]<br><b>Bredde boksen :</b> [[OTHER_1]]<br><b>Længde tekst :</b> [[OTHER_2]]<br>"
"err03","HTML-kode er ugyldig, et tag er lukket for mange gange: <b>&lt;[[OTHER]]&gt;</b>"
"err04","HTML-kode er ugyldig, tags er ikke afsluttet på en ordentlig måde.<br>Status : <pre>[[OTHER]]</pre>"
"err05","HTML-kode er ugyldig, alle tags skal lukkes. <br>Status : <pre>[[OTHER]]</pre>"
"err06","Umuligt at indlæse billedet <b>[[OTHER]]</b>"
"err07","Indholdet af en TD tag ikke passer på én side"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","FEJL n°"
"txt02","File :"
"txt03","Linje :"
"pdf01","Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]]"
"pdf02","Siden oprettet d. [[date_h]]:[[date_i]]"
"pdf03","Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]] at [[date_h]]:[[date_i]]"
"pdf04","Side [[page_cu]]/[[page_nb]]"
"pdf05","De formularer kræver brug af Adobe Reader 9"
"vue01","HEADER"
"vue02","FOOTER"
"vue03","PAGE"
"vue04","View"
1 err01 Tag <b>&lt;[[OTHER]]&gt;</b> endnu ikke eksisterer.<br><br>Hvis du ønsker at tilføje det, skal du oprette de metoder <b>o_[[OTHER]]</b> (for åbning) og <b>c_[[OTHER]]</b> (for lukning) ved at følge den model af eksisterende tags.<br><br>Hvis du opretter disse metoder, så tøv ikke med at send mig en e-mail til webmaster@html2pdf.fr til indsat dem i den næste version af HTML2PDF.
2 err02 Sætning af 1000 lines => er for lang<br><b>sætning :</b> [[OTHER_0]]<br><b>Bredde boksen :</b> [[OTHER_1]]<br><b>Længde tekst :</b> [[OTHER_2]]<br>
3 err03 HTML-kode er ugyldig, et tag er lukket for mange gange: <b>&lt;[[OTHER]]&gt;</b>
4 err04 HTML-kode er ugyldig, tags er ikke afsluttet på en ordentlig måde.<br>Status : <pre>[[OTHER]]</pre>
5 err05 HTML-kode er ugyldig, alle tags skal lukkes. <br>Status : <pre>[[OTHER]]</pre>
6 err06 Umuligt at indlæse billedet <b>[[OTHER]]</b>
7 err07 Indholdet af en TD tag ikke passer på én side
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 FEJL n°
11 txt02 File :
12 txt03 Linje :
13 pdf01 Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]]
14 pdf02 Siden oprettet d. [[date_h]]:[[date_i]]
15 pdf03 Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]] at [[date_h]]:[[date_i]]
16 pdf04 Side [[page_cu]]/[[page_nb]]
17 pdf05 De formularer kræver brug af Adobe Reader 9
18 vue01 HEADER
19 vue02 FOOTER
20 vue03 PAGE
21 vue04 View

View File

@@ -0,0 +1,21 @@
"err01","Das Tag <b>&lt;[[OTHER]]&gt;</b> existiert noch nicht.<br><br>Wenn Sie es hinzufügen möchten, sollen Sie die Methoden<b>o_[[OTHER]]</b> (zu öffnen) und <b>c_[[OTHER]]</b> (zu schließen) nach dem Modell den existierenden Tags.<br><br>Wenn Sie diese Methoden außerdem aufbauen, bitte teilen Sie sie duch eine E-Mail an meine Adresse : webmaster@html2pdf.fr, so daß sie künftig in die nächste Version von HTML2PDF erscheinen."
"err02","1000-Linien Satz => zu lang<br><b>Satz :</b> [[OTHER_0]]<br><b>Breite des Eingabefelds :</b> [[OTHER_1]]<br><b>Länge des Texts :</b> [[OTHER_2]]<br>"
"err03","Falsches HTML Code, überzähliges geschloßene Tag : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Falsches HTML Code, die Tags sind nicht in richtiger Ordnung geschloßen.<br>Status : <pre>[[OTHER]]</pre>"
"err05","Falsches HTML Code, alle Tags sollen geschloßen sein.<br>Status : <pre>[[OTHER]]</pre>"
"err06","Ladung des Bilds unmöglich <b>[[OTHER]]</b>"
"err07","Er Inhalt eines TD-Tag passt nicht nur auf einer Seite"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","Fehler n°"
"txt02","Datei :"
"txt03","Linie :"
"pdf01","Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Datei aufgebaut um [[date_h]]:[[date_m]]"
"pdf03","Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]] um [[date_h]]:[[date_i]]"
"pdf04","Seite [[page_cu]]/[[page_nb]]"
"pdf05","Die Formulare benötigen Sie den Adobe Reader 9"
"vue01","Seite-Header"
"vue02","Fußzeile"
"vue03","Seite"
"vue04","Visualisierung"
1 err01 Das Tag <b>&lt;[[OTHER]]&gt;</b> existiert noch nicht.<br><br>Wenn Sie es hinzufügen möchten, sollen Sie die Methoden<b>o_[[OTHER]]</b> (zu öffnen) und <b>c_[[OTHER]]</b> (zu schließen) nach dem Modell den existierenden Tags.<br><br>Wenn Sie diese Methoden außerdem aufbauen, bitte teilen Sie sie duch eine E-Mail an meine Adresse : webmaster@html2pdf.fr, so daß sie künftig in die nächste Version von HTML2PDF erscheinen.
2 err02 1000-Linien Satz => zu lang<br><b>Satz :</b> [[OTHER_0]]<br><b>Breite des Eingabefelds :</b> [[OTHER_1]]<br><b>Länge des Texts :</b> [[OTHER_2]]<br>
3 err03 Falsches HTML Code, überzähliges geschloßene Tag : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Falsches HTML Code, die Tags sind nicht in richtiger Ordnung geschloßen.<br>Status : <pre>[[OTHER]]</pre>
5 err05 Falsches HTML Code, alle Tags sollen geschloßen sein.<br>Status : <pre>[[OTHER]]</pre>
6 err06 Ladung des Bilds unmöglich <b>[[OTHER]]</b>
7 err07 Er Inhalt eines TD-Tag passt nicht nur auf einer Seite
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 Fehler n°
11 txt02 Datei :
12 txt03 Linie :
13 pdf01 Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Datei aufgebaut um [[date_h]]:[[date_m]]
15 pdf03 Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]] um [[date_h]]:[[date_i]]
16 pdf04 Seite [[page_cu]]/[[page_nb]]
17 pdf05 Die Formulare benötigen Sie den Adobe Reader 9
18 vue01 Seite-Header
19 vue02 Fußzeile
20 vue03 Seite
21 vue04 Visualisierung

View File

@@ -0,0 +1,21 @@
"err01","The tag <b>&lt;[[OTHER]]&gt;</b> does not yet exist.<br><br>If you want to add it, you must create the methods <b>o_[[OTHER]]</b> (for opening) and <b>c_[[OTHER]]</b> (for closure) by following the model of existing tags.<br><br>If you create these methods, do not hesitate to send me an email to webmaster@html2pdf.fr to included them in the next version of HTML2PDF."
"err02","Sentence of 1000 lines => too long<br><b>Sentence :</b> [[OTHER_0]]<br><b>Width box :</b> [[OTHER_1]]<br><b>Length text :</b> [[OTHER_2]]<br>"
"err03","HTML code invalid, a tag is closed too many times: <b>&lt;[[OTHER]]&gt;</b>"
"err04","HTML code invalid, the tags are not closed in an orderly fashion.<br>Status : <pre>[[OTHER]]</pre>"
"err05","HTML code invalid, all tags must be closed.<br>Status : <pre>[[OTHER]]</pre>"
"err06","Impossible to load the image <b>[[OTHER]]</b>"
"err07","The content of a TD tag does not fit on only one page"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","ERROR n°"
"txt02","File :"
"txt03","Line :"
"pdf01","Document generated on [[date_y]]-[[date_m]]-[[date_d]]"
"pdf02","Document generated at [[date_h]]:[[date_i]]"
"pdf03","Document generated on [[date_y]]-[[date_m]]-[[date_d]] at [[date_h]]:[[date_i]]"
"pdf04","Page [[page_cu]]/[[page_nb]]"
"pdf05","The forms require the use of Adobe Reader 9"
"vue01","HEADER"
"vue02","FOOTER"
"vue03","PAGE"
"vue04","View"
1 err01 The tag <b>&lt;[[OTHER]]&gt;</b> does not yet exist.<br><br>If you want to add it, you must create the methods <b>o_[[OTHER]]</b> (for opening) and <b>c_[[OTHER]]</b> (for closure) by following the model of existing tags.<br><br>If you create these methods, do not hesitate to send me an email to webmaster@html2pdf.fr to included them in the next version of HTML2PDF.
2 err02 Sentence of 1000 lines => too long<br><b>Sentence :</b> [[OTHER_0]]<br><b>Width box :</b> [[OTHER_1]]<br><b>Length text :</b> [[OTHER_2]]<br>
3 err03 HTML code invalid, a tag is closed too many times: <b>&lt;[[OTHER]]&gt;</b>
4 err04 HTML code invalid, the tags are not closed in an orderly fashion.<br>Status : <pre>[[OTHER]]</pre>
5 err05 HTML code invalid, all tags must be closed.<br>Status : <pre>[[OTHER]]</pre>
6 err06 Impossible to load the image <b>[[OTHER]]</b>
7 err07 The content of a TD tag does not fit on only one page
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 ERROR n°
11 txt02 File :
12 txt03 Line :
13 pdf01 Document generated on [[date_y]]-[[date_m]]-[[date_d]]
14 pdf02 Document generated at [[date_h]]:[[date_i]]
15 pdf03 Document generated on [[date_y]]-[[date_m]]-[[date_d]] at [[date_h]]:[[date_i]]
16 pdf04 Page [[page_cu]]/[[page_nb]]
17 pdf05 The forms require the use of Adobe Reader 9
18 vue01 HEADER
19 vue02 FOOTER
20 vue03 PAGE
21 vue04 View

View File

@@ -0,0 +1,21 @@
"err01","La etiqueta <b>&lt;[[OTHER]]&gt;</b> todavía no existe.<br><br>Si quiere añadirla, debe crear los métodos <b>o_[[OTHER]]</b> (para la apertura) y <b>c_[[OTHER]]</b> (para el cierre) siguiendo el modelo de las etiquetas existentes.<br><br>Si crea nuevos métodos, envíelos a webmaster@html2pdf.fr para añadirlos a las siguientes versiones de HTML2PDF, y que todo el mundo se pueda beneficiar."
"err02","Frase de 1000 líneas => demasiado larga<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamaño casilla :</b> [[OTHER_1]]<br><b>Tamaño texto :</b> [[OTHER_2]]<br>"
"err03","Código HTML no válido, una etiqueta tiene un cierre de más : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Código HTML no válido, las etiquetas no estan cerradas en el orden correcto.<br>Estado : <pre>[[OTHER]]</pre>"
"err05","Código HTML no válido, todas las etiquetas deben tener su cierre.<br>Estado : <pre>[[OTHER]]</pre>"
"err06","Imposible cargar la imagen <b>[[OTHER]]</b>"
"err07","El contenido de una etiqueta TD no encaja en una sola página"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","ERROR n°"
"txt02","Fichero :"
"txt03","Línea :"
"pdf01","Documento generado el [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Documento generado a las [[date_h]]:[[date_i]]"
"pdf03","Documento generado el [[date_d]]/[[date_m]]/[[date_y]] a las [[date_h]]:[[date_i]]"
"pdf04","Página [[page_cu]]/[[page_nb]]"
"pdf05","Los formularios requieren el uso de Adobe Reader 9"
"vue01","ENCABEZADO"
"vue02","PIE DE PÁGINA"
"vue03","PÁGINA"
"vue04","Visualización"
1 err01 La etiqueta <b>&lt;[[OTHER]]&gt;</b> todavía no existe.<br><br>Si quiere añadirla, debe crear los métodos <b>o_[[OTHER]]</b> (para la apertura) y <b>c_[[OTHER]]</b> (para el cierre) siguiendo el modelo de las etiquetas existentes.<br><br>Si crea nuevos métodos, envíelos a webmaster@html2pdf.fr para añadirlos a las siguientes versiones de HTML2PDF, y que todo el mundo se pueda beneficiar.
2 err02 Frase de 1000 líneas => demasiado larga<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamaño casilla :</b> [[OTHER_1]]<br><b>Tamaño texto :</b> [[OTHER_2]]<br>
3 err03 Código HTML no válido, una etiqueta tiene un cierre de más : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Código HTML no válido, las etiquetas no estan cerradas en el orden correcto.<br>Estado : <pre>[[OTHER]]</pre>
5 err05 Código HTML no válido, todas las etiquetas deben tener su cierre.<br>Estado : <pre>[[OTHER]]</pre>
6 err06 Imposible cargar la imagen <b>[[OTHER]]</b>
7 err07 El contenido de una etiqueta TD no encaja en una sola página
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 ERROR n°
11 txt02 Fichero :
12 txt03 Línea :
13 pdf01 Documento generado el [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Documento generado a las [[date_h]]:[[date_i]]
15 pdf03 Documento generado el [[date_d]]/[[date_m]]/[[date_y]] a las [[date_h]]:[[date_i]]
16 pdf04 Página [[page_cu]]/[[page_nb]]
17 pdf05 Los formularios requieren el uso de Adobe Reader 9
18 vue01 ENCABEZADO
19 vue02 PIE DE PÁGINA
20 vue03 PÁGINA
21 vue04 Visualización

View File

@@ -0,0 +1,21 @@
"err01","La balise <b>&lt;[[OTHER]]&gt;</b> n'existe pas encore.<br><br>Si vous voulez la rajouter, vous devez créer les méthodes <b>o_[[OTHER]]</b> (pour l'ouverture) et <b>c_[[OTHER]]</b> (pour la fermeture) en suivant le modèle des balises existantes.<br><br>De plus, si vous créez ces méthodes, n'hésitez pas à en faire profiter tout le monde en m'écrivant sur webmaster@html2pdf.fr afin qu'elles se retrouvent dans la prochaine version d'HTML2PDF."
"err02","Phrase de 1000 lignes => trop long<br><b>Phrase :</b> [[OTHER_0]]<br><b>Largeur case :</b> [[OTHER_1]]<br><b>Longueur text :</b> [[OTHER_2]]<br>"
"err03","Code HTML non valide, une balise est fermée en trop : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Code HTML non valide, les balises ne sont pas fermées dans le bon ordre.<br>Etat : <pre>[[OTHER]]</pre>"
"err05","Code HTML non valide, toutes les balises doivent être fermées.<br>Etat : <pre>[[OTHER]]</pre>"
"err06","Impossible de charger l'image <b>[[OTHER]]</b>"
"err07","le contenu d'une balise TD ne rentre pas sur une seule page"
"err08","Balise <b>&lt;[[OTHER]]&gt;</b> non contenu dans une balise &lt;DRAW&gt;"
"err09","L'utilisation de la balise <b>&lt;[[OTHER_0]]&gt;</b> a changé, vous ne pouvez plus utiliser [[OTHER_1]]. Lisez le WIKI"
"txt01","ERREUR n°"
"txt02","Fichier :"
"txt03","Ligne :"
"pdf01","Document généré le [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Document généré à [[date_h]]:[[date_i]]"
"pdf03","Document généré le [[date_d]]/[[date_m]]/[[date_y]] à [[date_h]]:[[date_i]]"
"pdf04","Page [[page_cu]]/[[page_nb]]"
"pdf05","Les formulaires nécessitent l'utilisation de Adobe Reader 9"
"vue01","HEADER"
"vue02","FOOTER"
"vue03","PAGE"
"vue04","Restitution"
1 err01 La balise <b>&lt;[[OTHER]]&gt;</b> n'existe pas encore.<br><br>Si vous voulez la rajouter, vous devez créer les méthodes <b>o_[[OTHER]]</b> (pour l'ouverture) et <b>c_[[OTHER]]</b> (pour la fermeture) en suivant le modèle des balises existantes.<br><br>De plus, si vous créez ces méthodes, n'hésitez pas à en faire profiter tout le monde en m'écrivant sur webmaster@html2pdf.fr afin qu'elles se retrouvent dans la prochaine version d'HTML2PDF.
2 err02 Phrase de 1000 lignes => trop long<br><b>Phrase :</b> [[OTHER_0]]<br><b>Largeur case :</b> [[OTHER_1]]<br><b>Longueur text :</b> [[OTHER_2]]<br>
3 err03 Code HTML non valide, une balise est fermée en trop : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Code HTML non valide, les balises ne sont pas fermées dans le bon ordre.<br>Etat : <pre>[[OTHER]]</pre>
5 err05 Code HTML non valide, toutes les balises doivent être fermées.<br>Etat : <pre>[[OTHER]]</pre>
6 err06 Impossible de charger l'image <b>[[OTHER]]</b>
7 err07 le contenu d'une balise TD ne rentre pas sur une seule page
8 err08 Balise <b>&lt;[[OTHER]]&gt;</b> non contenu dans une balise &lt;DRAW&gt;
9 err09 L'utilisation de la balise <b>&lt;[[OTHER_0]]&gt;</b> a changé, vous ne pouvez plus utiliser [[OTHER_1]]. Lisez le WIKI
10 txt01 ERREUR n°
11 txt02 Fichier :
12 txt03 Ligne :
13 pdf01 Document généré le [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Document généré à [[date_h]]:[[date_i]]
15 pdf03 Document généré le [[date_d]]/[[date_m]]/[[date_y]] à [[date_h]]:[[date_i]]
16 pdf04 Page [[page_cu]]/[[page_nb]]
17 pdf05 Les formulaires nécessitent l'utilisation de Adobe Reader 9
18 vue01 HEADER
19 vue02 FOOTER
20 vue03 PAGE
21 vue04 Restitution

View File

@@ -0,0 +1,21 @@
"err01","Il tag <b>&lt;[[OTHER]]&gt;</b> non esiste ancora.<br><br>Se si desidera aggiungere, è necessario creare metodi <b>o_[[OTHER]]</b> (di apertura) e <b>C_[[OTHER]]</b> (per la chiusura) secondo il modello esistente di tag.<br><br>Inoltre, se si creare questi metodi, non esitate a portare il mondo intero ha scritto su webmaster@html2pdf.fr in modo che alla fine nella prossima versione di HTML2PDF."
"err02","Citazione di 1000 linee => troppo lungo<br><b>frase :</b> [[OTHER_0]]<br><b>casella Larghezza :</b> [[OTHER_1]]<br><b>Lunghezza testo :</b> [[OTHER_2]]<br>"
"err03","HTML non valido, un tag è chiusa troppo <b>&lt;[[OTHER]]&gt;</ b>"
"err04","HTML non validi, i tag non sono chiusi nel corretto ordine.<br>Stato :<pre>[[OTHER]]</pre>"
"err05","HTML non valido, tutte le tag deve essere chiuso.<br>Stato :<pre>[[OTHER]]</pre>"
"err06","Impossibile caricare l'immagine <b>[[OTHER]]</b>"
"err07","il contenuto di un tag TD non rientra in una sola pagina"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","ERRORE n°"
"txt02","File :"
"txt03","Linea :"
"pdf01","Documento generato il [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Documento generato [[date_h]]:[[date_i]]"
"pdf03","Documento generato il [[date_d]]/[[date_m]]/[[date_y]] nel [[date_h]]:[[date_i]]"
"pdf04","Pagina [[page_cu]]/[[page_nb]]"
"pdf05","I moduli richiedono l'uso di Adobe Reader 9"
"vue01","HEADER"
"vue02","FOOTER"
"vue03","PAGINA"
"vue04","Visualization"
1 err01 Il tag <b>&lt;[[OTHER]]&gt;</b> non esiste ancora.<br><br>Se si desidera aggiungere, è necessario creare metodi <b>o_[[OTHER]]</b> (di apertura) e <b>C_[[OTHER]]</b> (per la chiusura) secondo il modello esistente di tag.<br><br>Inoltre, se si creare questi metodi, non esitate a portare il mondo intero ha scritto su webmaster@html2pdf.fr in modo che alla fine nella prossima versione di HTML2PDF.
2 err02 Citazione di 1000 linee => troppo lungo<br><b>frase :</b> [[OTHER_0]]<br><b>casella Larghezza :</b> [[OTHER_1]]<br><b>Lunghezza testo :</b> [[OTHER_2]]<br>
3 err03 HTML non valido, un tag è chiusa troppo <b>&lt;[[OTHER]]&gt;</ b>
4 err04 HTML non validi, i tag non sono chiusi nel corretto ordine.<br>Stato :<pre>[[OTHER]]</pre>
5 err05 HTML non valido, tutte le tag deve essere chiuso.<br>Stato :<pre>[[OTHER]]</pre>
6 err06 Impossibile caricare l'immagine <b>[[OTHER]]</b>
7 err07 il contenuto di un tag TD non rientra in una sola pagina
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 ERRORE n°
11 txt02 File :
12 txt03 Linea :
13 pdf01 Documento generato il [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Documento generato [[date_h]]:[[date_i]]
15 pdf03 Documento generato il [[date_d]]/[[date_m]]/[[date_y]] nel [[date_h]]:[[date_i]]
16 pdf04 Pagina [[page_cu]]/[[page_nb]]
17 pdf05 I moduli richiedono l'uso di Adobe Reader 9
18 vue01 HEADER
19 vue02 FOOTER
20 vue03 PAGINA
21 vue04 Visualization

View File

@@ -0,0 +1,21 @@
"err01","De tag <b>&lt;[[OTHER]]&gt;</b> bestaat nog niet.<br><br>Om deze toe te voegen, gebruik de methods <b>o_[[OTHER]]</b> (om te openen) en <b>c_[[OTHER]]</b> (om te sluiten) volgens het model van de bestaande tags.<br><br>Als u deze methods maakt, stuur deze dan a.u.b. via e-mail naar webmaster@html2pdf.fr voor opname in de volgende versie van HTML2PDF."
"err02","Zin van 1000 regels => te lang<br><b>Zin :</b> [[OTHER_0]]<br><b>Kaderbreedte :</b> [[OTHER_1]]<br><b>Tekstlengte :</b> [[OTHER_2]]<br>"
"err03","Ongeldige HTML code, overvloedig afgesloten tag : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Ongeldige HTML code, de tags zijn niet correct afgesloten.<br>Status : <pre>[[OTHER]]</pre>"
"err05","Ongeldige HTML code, alle tags dienen te zijn gesloten.<br>Status : <pre>[[OTHER]]</pre>"
"err06","Kan afbeelding niet laden: <b>[[OTHER]]</b>"
"err07","De inhoud van de cel (<TD>) past niet op een pagina"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","Fout nr"
"txt02","Bestand :"
"txt03","Regel :"
"pdf01","Document gemaakt op [[date_d]]-[[date_m]]-[[date_y]]"
"pdf02","Document gemaakt om [[date_h]]:[[date_i]]"
"pdf03","Document gemaakt op [[date_d]]-[[date_m]]-[[date_y]] om [[date_h]]:[[date_i]]"
"pdf04","Pagina [[page_cu]] van [[page_nb]]"
"pdf05","De formulieren vereisen het gebruik van Adobe Reader 9"
"vue01","Paginakop"
"vue02","Paginavoet"
"vue03","Pagina"
"vue04","Bekijken"
1 err01 De tag <b>&lt;[[OTHER]]&gt;</b> bestaat nog niet.<br><br>Om deze toe te voegen, gebruik de methods <b>o_[[OTHER]]</b> (om te openen) en <b>c_[[OTHER]]</b> (om te sluiten) volgens het model van de bestaande tags.<br><br>Als u deze methods maakt, stuur deze dan a.u.b. via e-mail naar webmaster@html2pdf.fr voor opname in de volgende versie van HTML2PDF.
2 err02 Zin van 1000 regels => te lang<br><b>Zin :</b> [[OTHER_0]]<br><b>Kaderbreedte :</b> [[OTHER_1]]<br><b>Tekstlengte :</b> [[OTHER_2]]<br>
3 err03 Ongeldige HTML code, overvloedig afgesloten tag : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Ongeldige HTML code, de tags zijn niet correct afgesloten.<br>Status : <pre>[[OTHER]]</pre>
5 err05 Ongeldige HTML code, alle tags dienen te zijn gesloten.<br>Status : <pre>[[OTHER]]</pre>
6 err06 Kan afbeelding niet laden: <b>[[OTHER]]</b>
7 err07 De inhoud van de cel (<TD>) past niet op een pagina
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 Fout nr
11 txt02 Bestand :
12 txt03 Regel :
13 pdf01 Document gemaakt op [[date_d]]-[[date_m]]-[[date_y]]
14 pdf02 Document gemaakt om [[date_h]]:[[date_i]]
15 pdf03 Document gemaakt op [[date_d]]-[[date_m]]-[[date_y]] om [[date_h]]:[[date_i]]
16 pdf04 Pagina [[page_cu]] van [[page_nb]]
17 pdf05 De formulieren vereisen het gebruik van Adobe Reader 9
18 vue01 Paginakop
19 vue02 Paginavoet
20 vue03 Pagina
21 vue04 Bekijken

View File

@@ -0,0 +1,21 @@
"err01","A tag <b>&lt;[[OTHER]]&gt;</b> ainda não existe.<br><br>Se você quer inserí-la, deve criar os métodos <b>o_[[OTHER]]</b> (para abrí-la) e <b>c_[[OTHER]]</b> (para fechá-la) seguindo o modelo das tags existentes.<br><br>Se você criar novos métodos, os envie para webmaster@html2pdf.fr para que as próximas versões de HTML2PDF, e o restante do mundo se beneficie com isso."
"err02","Frase de 1000 linhas => muito grande<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamanho do quadro :</b> [[OTHER_1]]<br><b>Tamanho do texto :</b> [[OTHER_2]]<br>"
"err03","Código HTML não válido, uma tag está com fechamento sobrando : <b>&lt;[[OTHER]]&gt;</b>"
"err04","Código HTML não válido, as tags não estão fechadas na ordem correta.<br>Estado : <pre>[[OTHER]]</pre>"
"err05","Código HTML não válido, todas as tags devem ser fechadas.<br>Estado : <pre>[[OTHER]]</pre>"
"err06","Impossível carregar imagem <b>[[OTHER]]</b>"
"err07","O conteúdo de uma tag TD não se encaixa em apenas uma página"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","ERRO n°"
"txt02","Arquivo :"
"txt03","Linha :"
"pdf01","Documento generado em [[date_d]]/[[date_m]]/[[date_y]]"
"pdf02","Documento generado às [[date_h]]:[[date_i]]"
"pdf03","Documento generado em [[date_d]]/[[date_m]]/[[date_y]] às [[date_h]]:[[date_i]]"
"pdf04","Página [[page_cu]]/[[page_nb]]"
"pdf05","Os formulários exigem a utilização do Adobe Reader 9"
"vue01","CABEÇALHO"
"vue02","RODAPÉ"
"vue03","PÁGINA"
"vue04","Visualização"
1 err01 A tag <b>&lt;[[OTHER]]&gt;</b> ainda não existe.<br><br>Se você quer inserí-la, deve criar os métodos <b>o_[[OTHER]]</b> (para abrí-la) e <b>c_[[OTHER]]</b> (para fechá-la) seguindo o modelo das tags existentes.<br><br>Se você criar novos métodos, os envie para webmaster@html2pdf.fr para que as próximas versões de HTML2PDF, e o restante do mundo se beneficie com isso.
2 err02 Frase de 1000 linhas => muito grande<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamanho do quadro :</b> [[OTHER_1]]<br><b>Tamanho do texto :</b> [[OTHER_2]]<br>
3 err03 Código HTML não válido, uma tag está com fechamento sobrando : <b>&lt;[[OTHER]]&gt;</b>
4 err04 Código HTML não válido, as tags não estão fechadas na ordem correta.<br>Estado : <pre>[[OTHER]]</pre>
5 err05 Código HTML não válido, todas as tags devem ser fechadas.<br>Estado : <pre>[[OTHER]]</pre>
6 err06 Impossível carregar imagem <b>[[OTHER]]</b>
7 err07 O conteúdo de uma tag TD não se encaixa em apenas uma página
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 ERRO n°
11 txt02 Arquivo :
12 txt03 Linha :
13 pdf01 Documento generado em [[date_d]]/[[date_m]]/[[date_y]]
14 pdf02 Documento generado às [[date_h]]:[[date_i]]
15 pdf03 Documento generado em [[date_d]]/[[date_m]]/[[date_y]] às [[date_h]]:[[date_i]]
16 pdf04 Página [[page_cu]]/[[page_nb]]
17 pdf05 Os formulários exigem a utilização do Adobe Reader 9
18 vue01 CABEÇALHO
19 vue02 RODAPÉ
20 vue03 PÁGINA
21 vue04 Visualização

View File

@@ -0,0 +1,21 @@
"err01","<b>&lt;[[OTHER]]&gt;</b> etiketi bulunamadý.<br><br>Eklemek isterseniz, <b>o_[[OTHER]]</b> þeklinde açýp, <b>c_[[OTHER]]</b> þeklinde kapatabilirsiniz.<br><br> Bu þekilde etiketler üretirseniz lütfen daha sonraki HTML2PDF versiyonuna eklenmek üzere bana gönderin. ( webmaster@html2pdf.fr )."
"err02","Ýçerik 1000 satýrdan fazla ve gerekenden uzun <br><b>Konu :</b> [[OTHER_0]]<br><b>Geniþlik :</b> [[OTHER_1]]<br><b>Yazý boyutu :</b> [[OTHER_2]]<br>"
"err03","HTML kodu hatalý, etiket birden fazla defa kapatýlmýþ: <b>&lt;[[OTHER]]&gt;</b>"
"err04","HTML kodu hatalý, etiketler gereken düzen içinde kapatýlmamýþ.<br>Durum : <pre>[[OTHER]]</pre>"
"err05","HTML kodu hatalý, bütün etiketler kapatýlmalý.<br>Durum : <pre>[[OTHER]]</pre>"
"err06","Resim dosyasý okunamýyor <b>[[OTHER]]</b>"
"err07","TD içeriði bir sayfaya sýðmýyor"
"err08","<b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag"
"err09","The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI"
"txt01","HATA n°"
"txt02","Dosya :"
"txt03","Satýr :"
"pdf01","Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]]"
"pdf02","Doküman üretilme tarihi [[date_h]]:[[date_i]]"
"pdf03","Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]] saati [[date_h]]:[[date_i]]"
"pdf04","Sayfa [[page_cu]]/[[page_nb]]"
"pdf05","Adobe Reader 9 gerektirir"
"vue01","DOSYA ÜSTÜ"
"vue02","DOSYA ALTI"
"vue03","SAYFA"
"vue04","Görünüm"
1 err01 <b>&lt;[[OTHER]]&gt;</b> etiketi bulunamadý.<br><br>Eklemek isterseniz, <b>o_[[OTHER]]</b> þeklinde açýp, <b>c_[[OTHER]]</b> þeklinde kapatabilirsiniz.<br><br> Bu þekilde etiketler üretirseniz lütfen daha sonraki HTML2PDF versiyonuna eklenmek üzere bana gönderin. ( webmaster@html2pdf.fr ).
2 err02 Ýçerik 1000 satýrdan fazla ve gerekenden uzun <br><b>Konu :</b> [[OTHER_0]]<br><b>Geniþlik :</b> [[OTHER_1]]<br><b>Yazý boyutu :</b> [[OTHER_2]]<br>
3 err03 HTML kodu hatalý, etiket birden fazla defa kapatýlmýþ: <b>&lt;[[OTHER]]&gt;</b>
4 err04 HTML kodu hatalý, etiketler gereken düzen içinde kapatýlmamýþ.<br>Durum : <pre>[[OTHER]]</pre>
5 err05 HTML kodu hatalý, bütün etiketler kapatýlmalý.<br>Durum : <pre>[[OTHER]]</pre>
6 err06 Resim dosyasý okunamýyor <b>[[OTHER]]</b>
7 err07 TD içeriði bir sayfaya sýðmýyor
8 err08 <b>&lt;[[OTHER]]&gt;</b> tag not in a &lt;DRAW&gt; tag
9 err09 The using of the <b>&lt;[[OTHER_0]]&gt;</b>> tag has changed, you can not use [[OTHER_1]] anymore. Read the WIKI
10 txt01 HATA n°
11 txt02 Dosya :
12 txt03 Satýr :
13 pdf01 Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]]
14 pdf02 Doküman üretilme tarihi [[date_h]]:[[date_i]]
15 pdf03 Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]] saati [[date_h]]:[[date_i]]
16 pdf04 Sayfa [[page_cu]]/[[page_nb]]
17 pdf05 Adobe Reader 9 gerektirir
18 vue01 DOSYA ÜSTÜ
19 vue02 DOSYA ALTI
20 vue03 SAYFA
21 vue04 Görünüm

155
core/vendor/ensepar/tcpdf/2dbarcodes.php vendored Normal file
View File

@@ -0,0 +1,155 @@
<?php
//============================================================+
// File name : 2dbarcodes.php
// Begin : 2009-04-07
// Last Update : 2010-04-30
// Version : 1.0.003
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
// ----------------------------------------------------------------------------
// Copyright (C) 2008-2009 Nicola Asuni - Tecnick.com S.r.l.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 2.1 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// See LICENSE.TXT file for more information.
// ----------------------------------------------------------------------------
//
// Description : PHP class to creates array representations for
// 2D barcodes to be used with TCPDF.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com S.r.l.
// Via della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* PHP class to creates array representations for 2D barcodes to be used with TCPDF.
* @package com.tecnick.tcpdf
* @abstract Functions for generating string representation of 2D barcodes.
* @author Nicola Asuni
* @copyright 2008-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @version 1.0.003
*/
/**
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
* @name TCPDFBarcode
* @package com.tecnick.tcpdf
* @version 1.0.003
* @author Nicola Asuni
* @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*/
class TCPDF2DBarcode {
/**
* @var array representation of barcode.
* @access protected
*/
protected $barcode_array = false;
/**
* This is the class constructor.
* Return an array representations for 2D barcodes:<ul>
* <li>$arrcode['code'] code to be printed on text label</li>
* <li>$arrcode['num_rows'] required number of rows</li>
* <li>$arrcode['num_cols'] required number of columns</li>
* <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul>
* @param string $code code to print
* @param string $type type of barcode: <ul>li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>QRCODE : QR-CODE Low error correction</li><li>QRCODE,L : QR-CODE Low error correction</li><li>QRCODE,M : QR-CODE Medium error correction</li><li>QRCODE,Q : QR-CODE Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li></ul>
*/
public function __construct($code, $type) {
$this->setBarcode($code, $type);
}
/**
* Return an array representations of barcode.
* @return array
*/
public function getBarcodeArray() {
return $this->barcode_array;
}
/**
* Set the barcode.
* @param string $code code to print
* @param string $type type of barcode: <ul><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>QRCODE : QR-CODE Low error correction</li><li>QRCODE,L : QR-CODE Low error correction</li><li>QRCODE,M : QR-CODE Medium error correction</li><li>QRCODE,Q : QR-CODE Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li></ul>
* @return array
*/
public function setBarcode($code, $type) {
$mode = explode(',', $type);
$qrtype = strtoupper($mode[0]);
switch ($qrtype) {
case 'QRCODE': { // QR-CODE
require_once(dirname(__FILE__).'/qrcode.php');
if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) {
$mode[1] = 'L'; // Ddefault: Low error correction
}
$qrcode = new QRcode($code, strtoupper($mode[1]));
$this->barcode_array = $qrcode->getBarcodeArray();
break;
}
case 'RAW':
case 'RAW2': { // RAW MODE
// remove spaces
$code = preg_replace('/[\s]*/si', '', $code);
if (strlen($code) < 3) {
break;
}
if ($qrtype == 'RAW') {
// comma-separated rows
$rows = explode(',', $code);
} else {
// rows enclosed in square parethesis
$code = substr($code, 1, -1);
$rows = explode('][', $code);
}
$this->barcode_array['num_rows'] = count($rows);
$this->barcode_array['num_cols'] = strlen($rows[0]);
$this->barcode_array['bcode'] = array();
foreach ($rows as $r) {
$this->barcode_array['bcode'][] = str_split($r, 1);
}
break;
}
case 'TEST': { // TEST MODE
$this->barcode_array['num_rows'] = 5;
$this->barcode_array['num_cols'] = 15;
$this->barcode_array['bcode'] = array(
array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1),
array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0),
array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0),
array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0),
array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0));
break;
}
default: {
$this->barcode_array = false;
}
}
}
} // end of class
//============================================================+
// END OF FILE
//============================================================+
?>

1384
core/vendor/ensepar/tcpdf/CHANGELOG.TXT vendored Normal file

File diff suppressed because it is too large Load Diff

504
core/vendor/ensepar/tcpdf/LICENSE.TXT vendored Normal file
View File

@@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

84
core/vendor/ensepar/tcpdf/README.TXT vendored Normal file
View File

@@ -0,0 +1,84 @@
TCPDF - README
============================================================
IF YOU'D LIKE TO SUPPORT TCPDF, PLEASE CONSIDER MAKING A
DONATION:
http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------
Name: TCPDF
Version: 5.0.002
Release date: 2010-05-06
Author: Nicola Asuni
Copyright (c) 2001-2010:
Nicola Asuni
Tecnick.com s.r.l.
Via Della Pace, 11
09044 Quartucciu (CA)
ITALY
www.tecnick.com
URLs:
http://www.tcpdf.org
http://www.sourceforge.net/projects/tcpdf
Description:
TCPDF is a PHP class for generating PDF files on-the-fly without requiring external extensions.
TCPDF has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org).
Main Features:
// * no external libraries are required for the basic functions;
// * all ISO page formats, custom page formats, custom margins and units of measure;
// * UTF-8 Unicode and Right-To-Left languages;
// * TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;
// * methods to publish some XHTML code, Javascript and Forms;
// * images, graphic (geometric figures) and transformation methods;
// * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)
// * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code;
// * Grayscale, RGB, CMYK, Spot Colors and Transparencies;
// * automatic page header and footer management;
// * document encryption and digital signature certifications;
// * transactions to UNDO commands;
// * PDF annotations, including links, text and file attachments;
// * text rendering modes (fill, stroke and clipping);
// * multiple columns mode;
// * bookmarks and table of content;
// * text hyphenation;
// * automatic page break, line break and text alignments including justification;
// * automatic page numbering and page groups;
// * move and delete pages;
// * page compression (requires php-zlib extension);
Installation (full instructions on http://www.tcpdf.org):
1. copy the folder on your Web server
2. set your installation path and other parameters on the config/tcpdf_config.php
3. call the examples/example_001.php page with your browser to see an example
Source Code Documentation:
doc/index.html
For Additional Documentation:
http://www.tcpdf.org
License
Copyright (C) 2002-2010 Nicola Asuni - Tecnick.com S.r.l.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
See LICENSE.TXT file for more information.
============================================================

4
core/vendor/ensepar/tcpdf/README.md vendored Normal file
View File

@@ -0,0 +1,4 @@
tcpdf
=====
The 5.0.002 version of TCPDF

1978
core/vendor/ensepar/tcpdf/barcodes.php vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
The year 1866 was marked by a bizarre development, an unexplained and downright inexplicable phenomenon that surely no one has forgotten. Without getting into those rumors that upset civilians in the seaports and deranged the public mind even far inland, it must be said that professional seamen were especially alarmed. Traders, shipowners, captains of vessels, skippers, and master mariners from Europe and America, naval officers from every country, and at their heels the various national governments on these two continents, were all extremely disturbed by the business.
In essence, over a period of time several ships had encountered "an enormous thing" at sea, a long spindle-shaped object, sometimes giving off a phosphorescent glow, infinitely bigger and faster than any whale.
The relevant data on this apparition, as recorded in various logbooks, agreed pretty closely as to the structure of the object or creature in question, its unprecedented speed of movement, its startling locomotive power, and the unique vitality with which it seemed to be gifted. If it was a cetacean, it exceeded in bulk any whale previously classified by science. No naturalist, neither Cuvier nor Lacépède, neither Professor Dumeril nor Professor de Quatrefages, would have accepted the existence of such a monster sight unseen -- specifically, unseen by their own scientific eyes.
Striking an average of observations taken at different times -- rejecting those timid estimates that gave the object a length of 200 feet, and ignoring those exaggerated views that saw it as a mile wide and three long--you could still assert that this phenomenal creature greatly exceeded the dimensions of anything then known to ichthyologists, if it existed at all.
Now then, it did exist, this was an undeniable fact; and since the human mind dotes on objects of wonder, you can understand the worldwide excitement caused by this unearthly apparition. As for relegating it to the realm of fiction, that charge had to be dropped.
In essence, on July 20, 1866, the steamer Governor Higginson, from the Calcutta & Burnach Steam Navigation Co., encountered this moving mass five miles off the eastern shores of Australia. Captain Baker at first thought he was in the presence of an unknown reef; he was even about to fix its exact position when two waterspouts shot out of this inexplicable object and sprang hissing into the air some 150 feet. So, unless this reef was subject to the intermittent eruptions of a geyser, the Governor Higginson had fair and honest dealings with some aquatic mammal, until then unknown, that could spurt from its blowholes waterspouts mixed with air and steam.
Similar events were likewise observed in Pacific seas, on July 23 of the same year, by the Christopher Columbus from the West India & Pacific Steam Navigation Co. Consequently, this extraordinary cetacean could transfer itself from one locality to another with startling swiftness, since within an interval of just three days, the Governor Higginson and the Christopher Columbus had observed it at two positions on the charts separated by a distance of more than 700 nautical leagues.
Fifteen days later and 2,000 leagues farther, the Helvetia from the Compagnie Nationale and the Shannon from the Royal Mail line, running on opposite tacks in that part of the Atlantic lying between the United States and Europe, respectively signaled each other that the monster had been sighted in latitude 42 degrees 15' north and longitude 60 degrees 35' west of the meridian of Greenwich. From their simultaneous observations, they were able to estimate the mammal's minimum length at more than 350 English feet; this was because both the Shannon and the Helvetia were of smaller dimensions, although each measured 100 meters stem to stern. Now then, the biggest whales, those rorqual whales that frequent the waterways of the Aleutian Islands, have never exceeded a length of 56 meters--if they reach even that.
One after another, reports arrived that would profoundly affect public opinion: new observations taken by the transatlantic liner Pereire, the Inman line's Etna running afoul of the monster, an official report drawn up by officers on the French frigate Normandy, dead-earnest reckonings obtained by the general staff of Commodore Fitz-James aboard the Lord Clyde. In lighthearted countries, people joked about this phenomenon, but such serious, practical countries as England, America, and Germany were deeply concerned.
In every big city the monster was the latest rage; they sang about it in the coffee houses, they ridiculed it in the newspapers, they dramatized it in the theaters. The tabloids found it a fine opportunity for hatching all sorts of hoaxes. In those newspapers short of copy, you saw the reappearance of every gigantic imaginary creature, from "Moby Dick," that dreadful white whale from the High Arctic regions, to the stupendous kraken whose tentacles could entwine a 500-ton craft and drag it into the ocean depths. They even reprinted reports from ancient times: the views of Aristotle and Pliny accepting the existence of such monsters, then the Norwegian stories of Bishop Pontoppidan, the narratives of Paul Egede, and finally the reports of Captain Harrington -- whose good faith is above suspicion--in which he claims he saw, while aboard the Castilian in 1857, one of those enormous serpents that, until then, had frequented only the seas of France's old extremist newspaper, The Constitutionalist.

View File

@@ -0,0 +1,23 @@
During the period in which these developments were occurring, I had returned from a scientific undertaking organized to explore the Nebraska badlands in the United States. In my capacity as Assistant Professor at the Paris Museum of Natural History, I had been attached to this expedition by the French government. After spending six months in Nebraska, I arrived in New York laden with valuable collections near the end of March. My departure for France was set for early May. In the meantime, then, I was busy classifying my mineralogical, botanical, and zoological treasures when that incident took place with the Scotia.
I was perfectly abreast of this question, which was the big news of the day, and how could I not have been? I had read and reread every American and European newspaper without being any farther along. This mystery puzzled me. Finding it impossible to form any views, I drifted from one extreme to the other. Something was out there, that much was certain, and any doubting Thomas was invited to place his finger on the Scotia's wound.
When I arrived in New York, the question was at the boiling point. The hypothesis of a drifting islet or an elusive reef, put forward by people not quite in their right minds, was completely eliminated. And indeed, unless this reef had an engine in its belly, how could it move about with such prodigious speed?
Also discredited was the idea of a floating hull or some other enormous wreckage, and again because of this speed of movement.
So only two possible solutions to the question were left, creating two very distinct groups of supporters: on one side, those favoring a monster of colossal strength; on the other, those favoring an "underwater boat" of tremendous motor power.
Now then, although the latter hypothesis was completely admissible, it couldn't stand up to inquiries conducted in both the New World and the Old. That a private individual had such a mechanism at his disposal was less than probable. Where and when had he built it, and how could he have built it in secret?
Only some government could own such an engine of destruction, and in these disaster-filled times, when men tax their ingenuity to build increasingly powerful aggressive weapons, it was possible that, unknown to the rest of the world, some nation could have been testing such a fearsome machine. The Chassepot rifle led to the torpedo, and the torpedo has led to this underwater battering ram, which in turn will lead to the world putting its foot down. At least I hope it will.
But this hypothesis of a war machine collapsed in the face of formal denials from the various governments. Since the public interest was at stake and transoceanic travel was suffering, the sincerity of these governments could not be doubted. Besides, how could the assembly of this underwater boat have escaped public notice? Keeping a secret under such circumstances would be difficult enough for an individual, and certainly impossible for a nation whose every move is under constant surveillance by rival powers.
So, after inquiries conducted in England, France, Russia, Prussia, Spain, Italy, America, and even Turkey, the hypothesis of an underwater Monitor was ultimately rejected.
After I arrived in New York, several people did me the honor of consulting me on the phenomenon in question. In France I had published a two-volume work, in quarto, entitled The Mysteries of the Great Ocean Depths. Well received in scholarly circles, this book had established me as a specialist in this pretty obscure field of natural history. My views were in demand. As long as I could deny the reality of the business, I confined myself to a flat "no comment." But soon, pinned to the wall, I had to explain myself straight out. And in this vein, "the honorable Pierre Aronnax, Professor at the Paris Museum," was summoned by The New York Herald to formulate his views no matter what.
I complied. Since I could no longer hold my tongue, I let it wag. I discussed the question in its every aspect, both political and scientific, and this is an excerpt from the well-padded article I published in the issue of April 30.
"Therefore," I wrote, "after examining these different hypotheses one by one, we are forced, every other supposition having been refuted, to accept the existence of an extremely powerful marine animal.
"The deepest parts of the ocean are totally unknown to us. No soundings have been able to reach them. What goes on in those distant depths? What creatures inhabit, or could inhabit, those regions twelve or fifteen miles beneath the surface of the water? What is the constitution of these animals? It's almost beyond conjecture.
"However, the solution to this problem submitted to me can take the form of a choice between two alternatives.
"Either we know every variety of creature populating our planet, or we do not.
"If we do not know every one of them, if nature still keeps ichthyological secrets from us, nothing is more admissible than to accept the existence of fish or cetaceans of new species or even new genera, animals with a basically 'cast-iron' constitution that inhabit strata beyond the reach of our soundings, and which some development or other, an urge or a whim if you prefer, can bring to the upper level of the ocean for long intervals.
"If, on the other hand, we do know every living species, we must look for the animal in question among those marine creatures already cataloged, and in this event I would be inclined to accept the existence of a giant narwhale.
"The common narwhale, or sea unicorn, often reaches a length of sixty feet. Increase its dimensions fivefold or even tenfold, then give this cetacean a strength in proportion to its size while enlarging its offensive weapons, and you have the animal we're looking for. It would have the proportions determined by the officers of the Shannon, the instrument needed to perforate the Scotia, and the power to pierce a steamer's hull.
"In essence, the narwhale is armed with a sort of ivory sword, or lance, as certain naturalists have expressed it. It's a king-sized tooth as hard as steel. Some of these teeth have been found buried in the bodies of baleen whales, which the narwhale attacks with invariable success. Others have been wrenched, not without difficulty, from the undersides of vessels that narwhales have pierced clean through, as a gimlet pierces a wine barrel. The museum at the Faculty of Medicine in Paris owns one of these tusks with a length of 2.25 meters and a width at its base of forty-eight centimeters!
"All right then! Imagine this weapon to be ten times stronger and the animal ten times more powerful, launch it at a speed of twenty miles per hour, multiply its mass times its velocity, and you get just the collision we need to cause the specified catastrophe.
"So, until information becomes more abundant, I plump for a sea unicorn of colossal dimensions, no longer armed with a mere lance but with an actual spur, like ironclad frigates or those warships called 'rams,' whose mass and motor power it would possess simultaneously.
"This inexplicable phenomenon is thus explained away unless it's something else entirely, which, despite everything that has been sighted, studied, explored and experienced, is still possible!"

View File

@@ -0,0 +1,15 @@
Austria;Vienna;83859;8075
Belgium;Brussels;30518;10192
Denmark;Copenhagen;43094;5295
Finland;Helsinki;304529;5147
France;Paris;543965;58728
Germany;Berlin;357022;82057
Greece;Athens;131625;10511
Ireland;Dublin;70723;3694
Italy;Roma;301316;57563
Luxembourg;Luxembourg;2586;424
Netherlands;Amsterdam;41526;15654
Portugal;Lisbon;91906;9957
Spain;Madrid;504790;39348
Sweden;Stockholm;410934;8839
United Kingdom;London;243820;58862

View File

@@ -0,0 +1,120 @@
Sentences that contain all letters commonly used in a language
--------------------------------------------------------------
Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> -- 2001-09-02
This file is UTF-8 encoded.
Danish (da)
---------
Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen
Wolther spillede på xylofon.
(= Quiz contestants were eating strawbery with cream while Wolther
the circus clown played on xylophone.)
German (de)
-----------
Falsches Üben von Xylophonmusik quält jeden größeren Zwerg
(= Wrongful practicing of xylophone music tortures every larger dwarf)
Zwölf Boxkämpfer jagten Eva quer über den Sylter Deich
(= Twelve boxing fighters hunted Eva across the dike of Sylt)
Heizölrückstoßabdämpfung
(= fuel oil recoil absorber)
(jqvwxy missing, but all non-ASCII letters in one word)
English (en)
------------
The quick brown fox jumps over the lazy dog
Spanish (es)
------------
El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y
frío, añoraba a su querido cachorro.
(Contains every letter and every accent, but not every combination
of vowel + acute.)
French (fr)
-----------
Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à
côté de l'alcôve ovoïde, où les bûches se consument dans l'âtre, ce
qui lui permet de penser à la cænogenèse de l'être dont il est question
dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui,
pense-t-il, diminue çà et là la qualité de son œuvre.
l'île exiguë
Où l'obèse jury mûr
Fête l'haï volapük,
Âne ex aéquo au whist,
Ôtez ce vœu déçu.
Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en
canoë au delà des îles, près du mälström où brûlent les novæ.
Irish Gaelic (ga)
-----------------
D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh
Hungarian (hu)
--------------
Árvíztűrő tükörfúrógép
(= flood-proof mirror-drilling machine, only all non-ASCII letters)
Icelandic (is)
--------------
Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa
Sævör grét áðan því úlpan var ónýt
(some ASCII letters missing)
Greek (el)
-------------
Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο
(= No more shall I see acacias or myrtles in the golden clearing)
Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία
(= I uncover the soul-destroying abhorrence)
Hebrew (iw)
-----------
? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה
Polish (pl)
-----------
Pchnąć w tę łódź jeża lub ośm skrzyń fig
(= To push a hedgehog or eight bins of figs in this boat)
Russian (ru)
------------
В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!
(= Would a citrus live in the bushes of south? Yes, but only a fake one!)
Thai (th)
---------
[--------------------------|------------------------]
๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน
จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร
ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย
ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอย ฯ
[The copyright for the Thai example is owned by The Computer
Association of Thailand under the Royal Patronage of His Majesty the
King.]
Please let me know if you find others! Special thanks to the people
from all over the world who contributed these sentences.

37
core/vendor/ensepar/tcpdf/composer.json vendored Normal file
View File

@@ -0,0 +1,37 @@
{
"name": "ensepar/tcpdf",
"version": "5.0.003",
"homepage": "http://www.tcpdf.org/",
"type": "library",
"description": "TCPDF is a PHP class for generating PDF documents.",
"keywords": ["pdf","tcpdf"],
"license": "LGPLv3",
"authors": [
{
"name": "Nicola Asuni",
"email": "info@tecnick.com",
"homepage": "http://nicolaasuni.tecnick.com"
},
{
"name": "Tristan Maindron",
"email": "tmaindron@gmail.com",
"homepage": "http://www.github.com/OwlyCode"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"classmap": [
"fonts",
"config/lang",
"config",
"2dbarcodes.php",
"barcodes.php",
"htmlcolors.php",
"qrcode.php",
"tcpdf.php",
"unicode_data.php"
]
}
}

View File

@@ -0,0 +1,50 @@
<?php
//============================================================+
// File name : eng.php
// Begin : 2004-03-03
// Last Update : 2010-02-17
//
// Description : Language module for TCPDF
// (contains translated texts)
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @abstract TCPDF language file.
* @author Nicola Asuni
* @copyright 2004-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-03-03
*/
// ENGLISH
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'pt';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'página';
//============================================================+
// END OF FILE
//============================================================+
?>

View File

@@ -0,0 +1,50 @@
<?php
//============================================================+
// File name : eng.php
// Begin : 2004-03-03
// Last Update : 2010-02-17
//
// Description : Language module for TCPDF
// (contains translated texts)
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @abstract TCPDF language file.
* @author Nicola Asuni
* @copyright 2004-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-03-03
*/
// ENGLISH
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'en';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'page';
//============================================================+
// END OF FILE
//============================================================+
?>

View File

@@ -0,0 +1,50 @@
<?php
//============================================================+
// File name : eng.php
// Begin : 2004-03-03
// Last Update : 2010-02-17
//
// Description : Language module for TCPDF
// (contains translated texts)
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @abstract TCPDF language file.
* @author Nicola Asuni
* @copyright 2004-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-03-03
*/
// ENGLISH
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'de';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'seite';
//============================================================+
// END OF FILE
//============================================================+
?>

View File

@@ -0,0 +1,50 @@
<?php
//============================================================+
// File name : ita.php
// Begin : 2004-03-03
// Last Update : 2010-02-17
//
// Description : Language module for TCPDF
// (contains translated texts)
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @abstract TCPDF language file.
* @author Nicola Asuni
* @copyright 2004-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-03-03
*/
// ENGLISH
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'it';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'pagina';
//============================================================+
// END OF FILE
//============================================================+
?>

View File

@@ -0,0 +1,244 @@
<?php
//============================================================+
// File name : tcpdf_config.php
// Begin : 2004-06-11
// Last Update : 2010-04-28
//
// Description : Configuration file for TCPDF.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Configuration file for TCPDF.
* @author Nicola Asuni
* @copyright 2004-2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @package com.tecnick.tcpdf
* @version 4.9.005
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-10-27
*/
// If you define the constant K_TCPDF_EXTERNAL_CONFIG, the following settings will be ignored.
if (!defined('K_TCPDF_EXTERNAL_CONFIG')) {
// DOCUMENT_ROOT fix for IIS Webserver
if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) {
if(isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
} elseif(isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
} else {
// define here your DOCUMENT_ROOT path if the previous fails
$_SERVER['DOCUMENT_ROOT'] = '/var/www';
}
}
// Automatic calculation for the following K_PATH_MAIN constant
$k_path_main = str_replace( '\\', '/', realpath(substr(dirname(__FILE__), 0, 0-strlen('config'))));
if (substr($k_path_main, -1) != '/') {
$k_path_main .= '/';
}
/**
* Installation path (/var/www/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
*/
define ('K_PATH_MAIN', $k_path_main);
// Automatic calculation for the following K_PATH_URL constant
$k_path_url = $k_path_main; // default value for console mode
if (isset($_SERVER['HTTP_HOST']) AND (!empty($_SERVER['HTTP_HOST']))) {
if(isset($_SERVER['HTTPS']) AND (!empty($_SERVER['HTTPS'])) AND strtolower($_SERVER['HTTPS'])!='off') {
$k_path_url = 'https://';
} else {
$k_path_url = 'http://';
}
$k_path_url .= $_SERVER['HTTP_HOST'];
$k_path_url .= str_replace( '\\', '/', substr($_SERVER['PHP_SELF'], 0, -24));
}
/**
* URL path to tcpdf installation folder (http://localhost/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
*/
define ('K_PATH_URL', $k_path_url);
/**
* path for PDF fonts
* use K_PATH_MAIN.'fonts/old/' for old non-UTF8 fonts
*/
define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
/**
* cache directory for temporary files (full path)
*/
define ('K_PATH_CACHE', K_PATH_MAIN.'cache/');
/**
* cache directory for temporary files (url path)
*/
define ('K_PATH_URL_CACHE', K_PATH_URL.'cache/');
/**
*images directory
*/
define ('K_PATH_IMAGES', K_PATH_MAIN.'images/');
/**
* blank image
*/
define ('K_BLANK_IMAGE', K_PATH_IMAGES.'_blank.png');
/**
* page format
*/
define ('PDF_PAGE_FORMAT', 'A4');
/**
* page orientation (P=portrait, L=landscape)
*/
define ('PDF_PAGE_ORIENTATION', 'P');
/**
* document creator
*/
define ('PDF_CREATOR', 'TCPDF');
/**
* document author
*/
define ('PDF_AUTHOR', 'TCPDF');
/**
* header title
*/
define ('PDF_HEADER_TITLE', 'TCPDF Example');
/**
* header description string
*/
define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org");
/**
* image logo
*/
define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg');
/**
* header logo image width [mm]
*/
define ('PDF_HEADER_LOGO_WIDTH', 30);
/**
* document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]
*/
define ('PDF_UNIT', 'mm');
/**
* header margin
*/
define ('PDF_MARGIN_HEADER', 5);
/**
* footer margin
*/
define ('PDF_MARGIN_FOOTER', 10);
/**
* top margin
*/
define ('PDF_MARGIN_TOP', 27);
/**
* bottom margin
*/
define ('PDF_MARGIN_BOTTOM', 25);
/**
* left margin
*/
define ('PDF_MARGIN_LEFT', 15);
/**
* right margin
*/
define ('PDF_MARGIN_RIGHT', 15);
/**
* default main font name
*/
define ('PDF_FONT_NAME_MAIN', 'helvetica');
/**
* default main font size
*/
define ('PDF_FONT_SIZE_MAIN', 10);
/**
* default data font name
*/
define ('PDF_FONT_NAME_DATA', 'helvetica');
/**
* default data font size
*/
define ('PDF_FONT_SIZE_DATA', 8);
/**
* default monospaced font name
*/
define ('PDF_FONT_MONOSPACED', 'courier');
/**
* ratio used to adjust the conversion of pixels to user units
*/
define ('PDF_IMAGE_SCALE_RATIO', 1.25);
/**
* magnification factor for titles
*/
define('HEAD_MAGNIFICATION', 1.1);
/**
* height of cell repect font height
*/
define('K_CELL_HEIGHT_RATIO', 1.25);
/**
* title magnification respect main font size
*/
define('K_TITLE_MAGNIFICATION', 1.3);
/**
* reduction factor for small font
*/
define('K_SMALL_RATIO', 2/3);
/**
* set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language
*/
define('K_THAI_TOPCHARS', true);
/**
* if true allows to call TCPDF methods using HTML syntax
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
*/
define('K_TCPDF_CALLS_IN_HTML', true);
}
//============================================================+
// END OF FILE
//============================================================+
?>

View File

@@ -0,0 +1,238 @@
<?php
//============================================================+
// File name : tcpdf_config.php
// Begin : 2004-06-11
// Last Update : 2010-04-28
//
// Description : Alternative configuration file for TCPDF.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
// Via Della Pace, 11
// 09044 Quartucciu (CA)
// ITALY
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Alternative configuration file for TCPDF.
* @author Nicola Asuni
* @copyright 2004-2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @package com.tecnick.tcpdf
* @version 4.9.005
* @link http://tcpdf.sourceforge.net
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @since 2004-10-27
*/
// DOCUMENT_ROOT fix for IIS Webserver
if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) {
if(isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
} elseif(isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
} else {
// define here your DOCUMENT_ROOT path if the previous fails
$_SERVER['DOCUMENT_ROOT'] = '/var/www';
}
}
// Automatic calculation for the following K_PATH_MAIN constant
$k_path_main = str_replace( '\\', '/', realpath(substr(dirname(__FILE__), 0, 0-strlen('config'))));
if (substr($k_path_main, -1) != '/') {
$k_path_main .= '/';
}
/**
* Installation path (/var/www/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
*/
define ('K_PATH_MAIN', $k_path_main);
// Automatic calculation for the following K_PATH_URL constant
if (isset($_SERVER['HTTP_HOST']) AND (!empty($_SERVER['HTTP_HOST']))) {
if(isset($_SERVER['HTTPS']) AND (!empty($_SERVER['HTTPS'])) AND strtolower($_SERVER['HTTPS'])!='off') {
$k_path_url = 'https://';
} else {
$k_path_url = 'http://';
}
$k_path_url .= $_SERVER['HTTP_HOST'];
$k_path_url .= str_replace( '\\', '/', substr($_SERVER['PHP_SELF'], 0, -24));
}
/**
* URL path to tcpdf installation folder (http://localhost/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances..
*/
define ('K_PATH_URL', $k_path_url);
/**
* path for PDF fonts
* use K_PATH_MAIN.'fonts/old/' for old non-UTF8 fonts
*/
define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
/**
* cache directory for temporary files (full path)
*/
define ('K_PATH_CACHE', K_PATH_MAIN.'cache/');
/**
* cache directory for temporary files (url path)
*/
define ('K_PATH_URL_CACHE', K_PATH_URL.'cache/');
/**
*images directory
*/
define ('K_PATH_IMAGES', K_PATH_MAIN.'images/');
/**
* blank image
*/
define ('K_BLANK_IMAGE', K_PATH_IMAGES.'_blank.png');
/**
* page format
*/
define ('PDF_PAGE_FORMAT', 'A4');
/**
* page orientation (P=portrait, L=landscape)
*/
define ('PDF_PAGE_ORIENTATION', 'P');
/**
* document creator
*/
define ('PDF_CREATOR', 'TCPDF');
/**
* document author
*/
define ('PDF_AUTHOR', 'TCPDF');
/**
* header title
*/
define ('PDF_HEADER_TITLE', 'TCPDF Example');
/**
* header description string
*/
define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org");
/**
* image logo
*/
define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg');
/**
* header logo image width [mm]
*/
define ('PDF_HEADER_LOGO_WIDTH', 30);
/**
* document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]
*/
define ('PDF_UNIT', 'mm');
/**
* header margin
*/
define ('PDF_MARGIN_HEADER', 5);
/**
* footer margin
*/
define ('PDF_MARGIN_FOOTER', 10);
/**
* top margin
*/
define ('PDF_MARGIN_TOP', 27);
/**
* bottom margin
*/
define ('PDF_MARGIN_BOTTOM', 25);
/**
* left margin
*/
define ('PDF_MARGIN_LEFT', 15);
/**
* right margin
*/
define ('PDF_MARGIN_RIGHT', 15);
/**
* default main font name
*/
define ('PDF_FONT_NAME_MAIN', 'helvetica');
/**
* default main font size
*/
define ('PDF_FONT_SIZE_MAIN', 10);
/**
* default data font name
*/
define ('PDF_FONT_NAME_DATA', 'helvetica');
/**
* default data font size
*/
define ('PDF_FONT_SIZE_DATA', 8);
/**
* default monospaced font name
*/
define ('PDF_FONT_MONOSPACED', 'courier');
/**
* ratio used to adjust the conversion of pixels to user units
*/
define ('PDF_IMAGE_SCALE_RATIO', 1.25);
/**
* magnification factor for titles
*/
define('HEAD_MAGNIFICATION', 1.1);
/**
* height of cell repect font height
*/
define('K_CELL_HEIGHT_RATIO', 1.25);
/**
* title magnification respect main font size
*/
define('K_TITLE_MAGNIFICATION', 1.3);
/**
* reduction factor for small font
*/
define('K_SMALL_RATIO', 2/3);
/**
* set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language
*/
define('K_THAI_TOPCHARS', true);
/**
* if true allows to call TCPDF methods using HTML syntax
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
*/
define('K_TCPDF_CALLS_IN_HTML', true);
//============================================================+
// END OF FILE
//============================================================+
?>

Some files were not shown because too many files have changed in this diff Show More