2010-11-29 30 views
1

Je souhaite générer un fichier PDF d'une page Web, mais en lui appliquant une autre feuille de style d'impression au lieu des styles qu'il utilise actuellement. Dites, par exemple, j'ai un bouton sur http://eorailway.co.uk pour générer un PDF de la même page (qui est exécuté et administré par moi, donc je peux inclure tout PHP/JS nécessaire à chaque page), mais je veux appliquer un style alternatif à avant de générer le PDF.Générer un fichier PDF de page à l'aide de la feuille de style alternée/imprimée

Actuellement j'utilise la bibliothèque PHP dompdf pour générer le PDF en utilisant la feuille de style normale/par défaut, mais je ne peux pas penser à appliquer la feuille de style alternative à la page en cliquant sur le bouton "Générer PDF" .

Tout conseil est le plus apprécié.

Répondre

1

Étant donné que le site est sous contrôle, vous pouvez décider de façon dynamique des feuilles de style à inclure en fonction d'un paramètre de chaîne de requête. c'est-à-dire que http://example.com/page.php?stylesheet=print verrait votre modèle afficher uniquement la feuille de style alternative, et votre bibliothèque PDF irait chercher cette page pour la générer.

+0

C'est une suggestion bonne et probablement réalisable. – PaulSkinner

0

Je vous recommande de créer une autre page avec la feuille de style "print" appliquée et de la pointer à l'aide de la métabalise print. (Par exemple, <link rel="alternate" media="print" href="<? ECHO $_SERVER['PHP_SELF'].'?print'; ?>"">)

Ensuite, demandez à PHP de déterminer la feuille de style à utiliser en fonction de la présence de cette variable GET.

0

Vous pouvez utiliser les trucs DOMXML en php pour appliquer un fichier XSLT spécifique à certains XML:

$stylsheet = "Example.xsl"; 
$xsldoc = domxml_xslt_stylesheet_file($stylsheet); 
$htmldoc = $xsldoc->process($xmldoc); 
$results_page = $xsldoc->result_dump_mem($htmldoc); 

C'est quelque chose que je l'ai fait en PHP4, pourrait être un moyen plus facile à 5.