2011-02-01 3 views
3

J'utilise dompdf comme un plugin dans codeigniter. il génère le pdf parfaitement. mais certains problèmes me mangent pendant quelques jours.dompdf filigrane, image, en-tête et pied de page questions

  1. Je veux mettre une image comme en-tête dans chaque page du pdf généré. Je l'ai fait selon le tutoriel donné here. mais pas de progrès. J'ai essayé des images de tous les types (jpg, png, gif) dans le même dossier où wheresript pour pdf réside. cela n'a pas fonctionné. Ensuite, j'ai essayé de définir la variable de chemin pour l'image et CSS comme indiqué au http://code.google.com/p/dompdf/wiki/Usage. mais je ne pouvais pas obtenir un bon exemple ou un tutoriel pour cela. Si quelqu'un a déjà utilisé cela, aidez-moi s'il vous plaît.

  2. Je veux aussi ajouter un filigrane sur chaque page. pour cela j'utilise

    $pdf->page_text(110, $h - 240, "TRIAL", Font_Metrics::get_font("verdana", "bold"),110, array(0.92, 0.92, 0.92), 0, -58);.

Cela fonctionne très bien et génère un filigrane, mais le filigrane survient sur le contenu. Y at-il quelque chose pour changer l'opacité du filigrane. il n'est pas modifié en changeant les paramètres dans le tableau.

3.à la fin de chaque page (sauf la dernière) je veux mettre le texte "suite ..". pour cela j'utilise

$text = "Continued.."; 
    $width = Font_Metrics::get_text_width($text, $font, $size); 
    $pdf->page_text($w - 16 - $width - 38, $y-15, $text, $font, $size, $color); 

il met le texte dans chaque page (comme il se doit). est-il possible de mettre du texte dans toutes les pages sauf la dernière?

  1. comment définir une police qui ne sont pas disponibles dans le fichier lib de dompdf?
+0

Si un corps a une réponse à l'une des questions s'il vous plaît aidez-moi – sidhartha

Répondre

2

1) Quel est exactement le code que vous utilisez? On dirait que vous avez du succès avec un script en ligne, mais pas des images. Donc, il pourrait y avoir un problème avec votre code.

2) Ceci est un problème avec le script en ligne. Il est rendu après le contenu HTML, ce qui signifie qu'il affiche sur le contenu HTML. Il y avait une option d'opacité lors de l'ajout de texte via les scripts en ligne, mais je ne suis pas sûr que ça fonctionnait correctement. Il a été supprimé de la base de code 0.6.0.

Vous devrez peut-être attendre la prochaine version, qui inclura plus d'options de style qui permettraient ce que vous voulez faire en HTML (en particulier, le positionnement fixe et la traduction CSS).

3) Je ne suis pas sûr que vous pouvez afficher un en-tête sur chaque page sauf la dernière. Il existe une option pour empêcher l'affichage d'un objet, mais elle semble affecter uniquement les pages suivantes. Vous devrez donc ajouter le code approprié à la page avant la dernière page.

4) Si vous voulez ajouter une police, vous devez pouvoir l'analyser en utilisant load_font.php. Vous aurez également besoin d'accéder à l'exécutable ttf2afm (dompdf 0.5.1) ou ttf2ufm (dompdf 0.6.0). Il ya instructions on how to load fonts, ou vous pouvez également essayer un web-based font prep tool que j'ai développé.

+0

@Brian, merci. oui j'utilise le script php en ligne. Une demi-heure avant que je puisse surmonter le problème d'opacité en faisant ce qui suit. – sidhartha

+0

J'ai ajouté deux autres paramètres dans la fonction donnée ci-dessous à environ 685 lignes dans cpdf_Adapter.cls.php et en passant le même dans la fonction appelante. fonction page_text ($ x, $ y, $ text, $ font, $ taille, $ color = array (0,0,0), $ adjust = 0, $ angle = 0, $ blend = "Normal", $ opacité = 1.0) { $ this -> _ page_text [] = compact ("x", "y", "texte", "police", "taille", "couleur", "ajuster", "angle", "fusionner" , "opacité"); } .header img ne vient pas dans chaque pg (vient en dernier pg seulement). pour le point 3 peut vous dire comment obtenir le nombre total de pg et pg # actuel .so que je peux comparer et faire.ou poster une méthode – sidhartha

+0

@Brian pour l'image que j'utilise if (isset ($ pdf)) { \t $ path = base_url(); // le chemin de base est défini sur le répertoire de base comme dans le codeigniter config $ dompdf = new DOMPDF(); $ dompdf -> set_base_path ($ path); $ basepath = $ dompdf-> get_base_path(); $ img_w = ​​1,5 * 72; // 1,5 pouces, aux points $ img_h = 0,9 * 72; // 0,9 pouce, en points - changez-les comme requis $ pdf-> image ($ basepath. "Path_to_folder/logo.png", "png", 30, 30, $ img_w, $ img_h); } dans ce cas, l'image arrive à la dernière page seulement. L'exigence est pour toute la page – sidhartha

1

Assurez-vous que DOMPDF_ENABLE_PHP est définie sur true dans dompdf_config.inc.php ~ ligne 173 en 0.6.2 Soyez conscient que cela est un risque potentiel de sécurité en cas de contenu non filtré provenant d'une source non fiable à la pdf

/** 
* Enable inline PHP 
* 
* If this setting is set to true then DOMPDF will automatically evaluate 
* inline PHP contained within <script type="text/php"> ... </script> tags. 
* 
* Enabling this for documents you do not trust (e.g. arbitrary remote html 
* pages) is a security risk. Set this option to false if you wish to process 
* untrusted documents. 
* 
* @var bool 
*/ 
define("DOMPDF_ENABLE_PHP", true);