Statistiques

Compteur d'affichages des articles
1006557

5.7 - Paramètres

Avant de gérer le positionnement des images dans le Pdf, nous allons rajouter au plugin quelques paramètres qui nous seront bien utiles.

Dans le fichier plugins/system/pdfcontent/pdfcontent.xml nous modifions :

		<fields name="params">
			<fieldset name="basic">
				<field name="size" type="list" default="letter" label="PDF Size"
					description="">
					<option value="letter">Letter</option>
					<option value="legal">Legal</option>
					<option value="A4">A4</option>
				</field>
				<field name="orientation" type="list" default="portrait"
					label="PDF Orientation" description="">
					<option value="portrait">Portrait</option>
					<option value="landscape">Landscape</option>
				</field>
			</fieldset>
		</fields>

Pour avoir ceci :

		<fields name="params">
			<fieldset name="basic">
				<field name="size" type="list" default="letter" label="PDF Size"
					description="">
					<option value="letter">Letter</option>
					<option value="legal">Legal</option>
					<option value="A4">A4</option>
				</field>
				<field name="orientation" type="list" default="portrait"
					label="PDF Orientation" description="">
					<option value="portrait">Portrait</option>
					<option value="landscape">Landscape</option>
				</field>
				<field name="pdf_unit" type="list" default="pt"
					label="Unité" description="">
					<option value="pt">Point</option>
					<option value="mm">Millimetre</option>
					<option value="cm">Centimetre</option>
					<option value="in">inch</option>
				</field>
				<field name="pdf_margin_header" size="5" type="text" default="5" label="Marge du header" description="Marge du header"  />
				<field name="pdf_margin_footer" size="5" type="text" default="20" label="Marge du footer" description="Marge du footer"  />
				<field name="pdf_margin_top" size="5" type="text" default="15" label="Marge du haut" description="Marge du haut"  />
				<field name="pdf_margin_bottom" size="5" type="text" default="15" label="Marge du bas" description="Marge du bas"  />
				<field name="pdf_margin_left" size="5" type="text" default="15" label="Marge gauche" description="Marge gauche"  />
				<field name="pdf_margin_right" size="5" type="text" default="15" label="Marge droite" description="Marge droite"  />
			</fieldset>
		</fields>

La fonction construct de :

	/**
	 * Construct the plugin
	 */
	function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		if (!$this->iniTcPdf())
		{
			JError::raiseError(500, 'No PDF lib found: download from http://sourceforge.net/projects/tcpdf/files/: extract to /libraries/');
		}
	}

devient :

	/**
	 * Construct the plugin
	 */
	function __construct(&$subject, $config)
	{
		$plugin = JPluginHelper::getPlugin('system', 'pdfcontent');
		$params = new JParameter($plugin->params);
		define ('PDF_UNIT', $params->get(pdf_unit));
		define ('PDF_MARGIN_HEADER', $params->get(pdf_margin_header));
		define ('PDF_MARGIN_FOOTER',$params->get(pdf_margin_footer));
		define ('PDF_MARGIN_TOP',$params->get(pdf_margin_top));
		define ('PDF_MARGIN_BOTTOM', $params->get(pdf_margin_bottom));
		define ('PDF_MARGIN_LEFT', $params->get(pdf_margin_left));
		define ('PDF_MARGIN_RIGHT',$params->get(pdf_margin_right));
		define ('PDF_PAGE_FORMAT',$params->get(size));
		define ('PDF_PAGE_ORIENTATION',$params->get(orientation));
		parent::__construct($subject, $config);

		if (!$this->iniTcPdf())
		{
			JError::raiseError(500, 'No PDF lib found: download from http://sourceforge.net/projects/tcpdf/files/: extract to /libraries/');
		}
	}

Nous pouvons désormais, en plus du format du document généré, gérer les marges des Pdf ainsi que l'unité de mesure utilisée.

Paramètres

 

 

5.8 - Gestion des images

 Chez moi, pour une image centrée, Joomla génère le code html suivant :

<p><img class="caption" src="/images/virtualisation/virtualbox_01.png" border="0" alt="Site Virtualbox" title="Site Virtualbox" style="display: block; margin-left: auto; margin-right: auto;" /></p>

Une image alignée à gauche :

<p><img class="caption" src="/images/joomla_pdf/joomlapdf_04_02.png" border="0" alt="Page 1" title="Page 1" style="float: left;" /></p>

Une image alignée à droite :

<p><img class="caption" src="/images/joomla_pdf/joomlapdf_04_02.png" border="0" alt="Page 1" title="Page 1" style="float: right;" /></p>

TcPdf ne sait pas gérer les balises float.

Il faudrait développer une routine qui redessine entièrement le Pdf. Cela demande du temps. Je vais essayer d'en trouver et je reviendrai vers vous.