Jump to content

Problème PDF avec plusieurs pages corrompu


Recommended Posts

Bonjour à tous !

 

Je pose la question sur la communauté car là, j'avoue ne pas comprendre le soucis..

Lorsque je génère un PDF d'une commande de quelque produits (donc sur une seule page), aucun soucis tout est parfait.

 

Par contre, si j'ai trop de produit et que le PDF ce génère sur 2 ou plusieurs pages, alors j'ai un message d'erreur sur acrobat reader ( "Cette page contient une erreur. Acrobat risque de ne pas afficher cete page correctement"). Et c'est le cas,la première page pas de soucis, mais la page deux est presque vide, je n'ai pas les produits, pas le total etc..

 

Ce problème apparait sur acrobat mais pas sur la visionneuse de mac os x par ex..

 

J'ai vérifié plusieurs chose, cache, droits, version de TCPDF (5.9)

 

Je suis sur prestashop 1.5.9

 

 

Si quelqu'un a une idée, je suis preneur !!

 

Merci d'avance :)

 

Bonne journée à tous !

Link to comment
Share on other sites

  • 4 weeks later...

Pour autant que je sais que cela est un problème non résolu. Factures multi-pages sont parfois présentés endommagé. Je ne peux que montrer un exemple de travail par le module M4 Extensions PDF (pas libre) à www.presta-addons.com/pdf/Invoice - multipage multifont.pdf.

 

As far as I know this is unresolved problem. Multi-page invoices are sometimes shown damaged. I can only demonstrate a working example by the M4 PDF Extensions module (not free) at www.presta-addons.com/pdf/Invoice - multipage multifont.pdf.

Edited by tuk66 (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Même souci que crashoverride sur prestashop version  1.5.3.1

Parfois à l'ouverture du pdf généré (commandes > voir la facture), Adobe Reader affiche le message suivant : "Cette page contient une erreur. Acrobat risque de ne pas afficher cette page correctement." et la deuxième page n'est pas bien affichée, comme si le code HTML n'était pas bien parsé.

 

J'ai essayé de modifier le fichier "pdf/invoice.tpl", il apparait que les lignes suivantes posent problême :

 

{foreach $order_detail.customizedDatas as $customizationPerAddress}
{foreach $customizationPerAddress as $customizationId => $customization}
<tr style="line-height:6px;background-color:{$bgcolor}; ">
<td style="line-height:3px; text-align: left; width: 60%; vertical-align: top">


<blockquote>
{if isset($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) && count($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) > 0}
{foreach $customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_] as $customization_infos}
{$customization_infos.name}: {$customization_infos.value}
{if !$smarty.foreach.custo_foreach.last}<br />
{else}
<div style="line-height:0.4pt"> </div>
{/if}
{/foreach}
{/if}


{if isset($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) && count($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) > 0}
{count($customization.datas[$smarty.const._CUSTOMIZE_FILE_])} {l s='image(s)' pdf='true'}
{/if}
</blockquote>
</td>
<td style="text-align: right; width: 15%"></td>
<td style="text-align: center; width: 10%; vertical-align: top">({$customization.quantity})</td>
<td style="width: 15%; text-align: right;"></td>
</tr>
{/foreach}
{/foreach}

Ce problème a t'il été réglé dans une quelconque version ?

Peux t'on espérer obtenir de l'aide sur ce sujet (autre qu'un plugin payant) ?

 

Merci.

 

 

 

Link to comment
Share on other sites

  • 6 months later...

Bonjour, 

 

J'ai aussi eu ce problème, malgré la mise à jour de TCPDF cela n'a pas corrigé le problème.
J'ai donc réussi à trouver le moyen de ne plus avoir cette erreur, il faut pour cela remplacer une ligne dans tools/tcpdf/tcpdf.php : 

	public function SetAutoPageBreak($auto, $margin=0) {
		$this->AutoPageBreak = $auto ? true : false;
		$this->bMargin = $margin;
		// Avant :
		// $this->PageBreakTrigger = $this->h - $margin;
		// Après : 
		$this->PageBreakTrigger = $this->h - ($margin*2);
	}

Link to comment
Share on other sites

  • 3 months later...

Bonjour, 

 

Effectivement cela règle pas entièrement le problème, je n'ai pas pensé à modifier mon poste, ça corrige dans certains cas mais pas tous.

 

Je n'ai pas trouvé de solution universelle. On peut toujours jouer avec PageBreakTrigger  en diminuant/augmentant la valeur mais c'est pas la bonne solution.

 

Bonne journée.

Link to comment
Share on other sites

  • 8 months later...

 

Bonjour, 

 

J'ai aussi eu ce problème, malgré la mise à jour de TCPDF cela n'a pas corrigé le problème.

J'ai donc réussi à trouver le moyen de ne plus avoir cette erreur, il faut pour cela remplacer une ligne dans tools/tcpdf/tcpdf.php : 

	public function SetAutoPageBreak($auto, $margin=0) {
		$this->AutoPageBreak = $auto ? true : false;
		$this->bMargin = $margin;
		// Avant :
		// $this->PageBreakTrigger = $this->h - $margin;
		// Après : 
		$this->PageBreakTrigger = $this->h - ($margin*2);
	}

 

Bonjour,

 

De mon côté, nous sommes sur une version de Prestashop 1.6.0.11.

Sur certaines factures multi-pages, on a le même problème avec Adobe qui ne peut pas lire le fichier PDF (non reproduit sur Chrome ou FoxItReader).

 

Nous avons tenté :

- de récupérer les fichiers des répertoires /pdf, /classes/pdf, tools/tcpdf de la version PS 1.6.1.2 => des erreurs (on sait jamais, ça aurait pu marcher)

- de récupérer uniquement les fichiers des répertoires /pdf de la version PS 1.6.1.2 => des erreurs 

- de récupérer uniquement les fichiers des répertoires  tools/tcpdf de la version PS 1.6.1.2 => OK Tcpdf est à jour mais toujours le problème de lecture par Adobe.

 

Donc, basé sur le post de jbourny, nous avons d'abord essayé avec sa modification. Puis nous avons fini sur la modification du fichier  tools/tcpdf/tcpdf.php comme suit :

public function SetAutoPageBreak($auto, $margin=0) {
		$this->AutoPageBreak = $auto ? true : false;
		$this->bMargin = $margin;
		// Avant :
		// $this->PageBreakTrigger = $this->h - $margin;
		// Après : 
		$this->PageBreakTrigger = $this->h /*- ($margin*2)*/;
	}

Cela n'est pas parfait mais cela va permettre à notre client d'éditer des factures en attendant la prochaine mise à jour de leur Prestashop vers une version corrigeant ce problème.

Pour information, d'après nos tests, la version PS 1.6.1.2 corrige ce problème (par contre le template de facturation est complètement différent).

Au final, la modification ci-dessus fonctionne, même sans mettre à jour Tcpdf.

 

En espérant que cela aide les personnes qui ont passées leur matinée, tout comme moi, à tenter de résoudre ce problème.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...