En PHP 4, tout d'abord, une ressource PDF doit être récupérée avec l'appel à une fonction comme

Dimension: px
Commencer à balayer dès la page:

Download "En PHP 4, tout d'abord, une ressource PDF doit être récupérée avec l'appel à une fonction comme"

Transcription

1 1 sur Fonctions PDF Introduction Last updated: Sun, 25 Nov 2007 Les fonctions PDF permettent de créer des fichiers PDF en utilisant la bibliothèque PDFlib créée initialement par» Thomas Merz et qui est actuellement maintenue par» PDFlib GmbH. La documentation de cette section est uniquement destinée à être une introduction aux fonctions disponibles, et ne doit pas être considérée comme une référence exaustive. Reportez-vous à la documentation incluse dans la distribution de PDFlib pour plus de détails et d'explications. Elle fournit une excellente référence des capacités de PDFlib, et contient la documentation la plus à jour. Pour commencer, nous vous conseillons de regarder du côté des exemples fournis avec le paquet PDFlib. Ces exemples montrent la création d'un texte simple, de vecteurs ou encore de graphiques, en passant par l'utilisation de fonctions hauts niveaux comme PDI. Toutes les fonctions de la PDFlib et du module PHP ont des noms et des arguments identiques. Vous aurez à comprendre quelques concepts basiques de PDF et PostScript pour l'utiliser efficacement. Toutes les longueurs et coordonnées sont mesurées en points PostScript. Il y a généralement 72 points PostScript pour faire un pouche (2.54 cm), mais cela dépend de la résolution de sortie. Reportez-vous au manuel de référence PDFlib inclus dans la distribution de PDFlib pour plus de détails sur le système de coordonnées. Avec la version 6, PDFlib offre une API orientée objet pour PHP 5 en plus de l'api orientée fonctions pour PHP 4. Voici les plus grandes différences : En PHP 4, tout d'abord, une ressource PDF doit être récupérée avec l'appel à une fonction comme $p = PDF_new(); Cette ressource PDF est utilisée en tant que premier paramètre dans tous les prochains appels de fonctions, comme dans PDF_begin_document($p, "", ""). En PHP 5, un objet PDFlib est créé plutôt avec $p = new PDFlib(). Cet objet offre toutes les fonctions de l'api PDFlib en tant que méthodes, par exemple avec $p->begin_document("", ""). En plus, les exceptions ont été introduites en PHP 5 qui sont supportées dans la version 6 ou supérieure de la PDFlib. Lisez les exemples ci-dessous pour plus d'informations. Note: Si vous êtes intéressé par des alternatives gratuites pour générer des PDF, sans passer par des bibliothèques PDF, reportez-vous à cette entrée de la FAQ. Pré-requis PDFlib Lite est disponible en tant qu'open source. Cependant, la license de PDFlib Lite permet l'utilisation libre sous certaines conditions. PDFlib Lite supporte une partie des fonctionnalités de PDFlib ; reportez-vous au site web de PDFlib pour plus de détails. La version complète de PDFlib est disponible en téléchargement sur» mais impose l'achat d'une license pour l'utiliser commercialement. Problèmes avec les anciennes versions de PDFlib Toutes les versions de PHP 4 éditées après le 9 Mars 2000 ne suportent pas les versions de PDFlib plus anciennes que PDFlib 3.0. PDFlib 4.0 et plus récent est supporté par PHP et plus récent.

2 2 sur Installation Cette extension» PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici :» Pour inclure le support de la PDFlib dans votre PHP < 4.3.9, il faut compiler PHP avec l'option --with-pdflib[=dir]. DIR est le dossier d'installation de PDFlib et, par défaut, il vaut /usr/local. Types de ressources PDF_new() crée un nouvel objet PDFlib, nécessaire aux fonctions PDF. Remarque sur les fonctions obsolètes de la PDFlib Depuis PHP 4.0.5, l'extension PHP pour la PDFlib est officiellement supportée par PDFlib GmbH. Cela signifie que toutes les fonctions décrites dans le manuel de référence de la PDFlib (PDFlib V3.0 ou supérieur) sont supportées par PHP 4 avec exactement la même signification et les mêmes paramètres. Cepdentant, avec la PDFlib V5.0.4 ou supérieure, tous les paramètres doivent être spécifiés. Pour des raisons de compatibilité, l'implémentation de la PDFlib supporte la plupart des fonctions obsolètes, mais elles doivent être remplacées par leur nouvelle version. PDFlib GmbH ne fournira aucun support pour les problèmes survenant lors de l'utilisation de ces fonctions obsolètes. La documentation de cette section indique les anciennes fonctions comme "obsolètes" et donne la fonction qui doit être utilisée à la place. Exemples La plupart des fonctions sont simples d'emploi. Le plus difficile est probablement de créer un fichier PDF simple. L'exemple suivant devrait vous mettre sur les rails. Il est développé en PHP 4 et crée un fichier hello.pdf d'une page. Il définit quelques champs de contenu et charge la police Helvetica-Bold et affiche le texte "Bonjour le monde (dit PHP)!". Example#1 Exemple "Bonjour le monde!" avec PDFlib en PHP 4 $p = PDF_new(); /* Ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le disqu if (PDF_begin_document($p, "", "") == 0) die("erreur : ". PDF_get_errmsg($p)); PDF_set_info($p, "Creator", "hello.php"); PDF_set_info($p, "Author", "Rainer Schaaf"); PDF_set_info($p, "Title", "Bonjour le monde (PHP)!"); PDF_begin_page_ext($p, 595, 842, ""); $font = PDF_load_font($p, "Helvetica-Bold", "winansi", ""); PDF_setfont($p, $font, 24.0); PDF_set_text_pos($p, 50, 700); PDF_show($p, "Bonjour le monde "); PDF_continue_text($p, "(dit PHP)!"); PDF_end_page_ext($p, ""); PDF_end_document($p, ""); $buf = PDF_get_buffer($p); $len = strlen($buf); header("content-type: application/pdf"); header("content-length: $len"); header("content-disposition: inline; filename=hello.pdf"); print $buf; PDF_delete($p);

3 3 sur L'exemple suivant vient avec la distribution de la PDFlib pour PHP 5. Il utilise le nouveau gestionnaire d'exceptions ainsi que les nouvelles fonctionnalités objets disponible en PHP 5. Il crée le fichier hello.pdf d'une seule page. Il définit quelques champs de contenu et charge la police Helvetica-Bold et affiche le texte "Bonjour le monde (dit PHP)!". Example#2 Exemple "Bonjour le monde!" avec PDFlib en PHP 5 try $p = new PDFlib(); /* Ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le d if ($p->begin_document("", "") == 0) die("erreur : ". $p->get_errmsg()); $p->set_info("creator", "hello.php"); $p->set_info("author", "Rainer Schaaf"); $p->set_info("title", "Bonjour le monde (PHP)!"); $p->begin_page_ext(595, 842, ""); $font = $p->load_font("helvetica-bold", "winansi", ""); $p->setfont($font, 24.0); $p->set_text_pos(50, 700); $p->show("bonjour le monde "); $p->continue_text("(dit PHP)!"); $p->end_page_ext(""); $p->end_document(""); $buf = $p->get_buffer(); $len = strlen($buf); header("content-type: application/pdf"); header("content-length: $len"); header("content-disposition: inline; filename=hello.pdf"); print $buf; catch (PDFlibException $e) die("une exception PDFlib est survenu dans l'exemple hello :\n". "[". $e->get_errnum(). "] ". $e->get_apiname(). ": ". $e->get_errmsg(). "\n"); catch (Exception $e) die($e); $p = 0; Table of Contents PDF_activate_item Active un élément de structure ou un autre élément de contenu PDF_add_annotation [Obsolète] Ajoute une annotation PDF_add_bookmark [Obsolète] Ajoute un signet dans la page courante PDF_add_launchlink [Obsolète] Ajoute une annotation de lancement dans la page PDF courante PDF_add_locallink [Obsolète] Ajoute une annotation de lien dans la page PDF courante PDF_add_nameddest Crée une destination nommée PDF_add_note [Obsolète] Ajoute une annotation dans la page PDF courante

4 4 sur PDF_add_outline [Obsolète] Ajoute un signet dans la page courante PDF_add_pdflink [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante PDF_add_table_cell Ajoute une cellule à un nouveau tableau ou un tableau existant PDF_add_textflow Crée un flux de texte ou ajoute du texte à un flux de texte existant PDF_add_thumbnail [Obsolète] Ajoute une miniature sur la page PDF courante PDF_add_weblink [Obsolète] Ajoute un lien web sur la page PDF courante PDF_arc Dessine un arc de cercle PDF dans le sens anti-horaire PDF_arcn Dessine un arc de cercle dans le sens horaire PDF_attach_file [Obsolète] Ajoute un fichier attaché à la page PDF PDF_begin_document Crée un nouveau fichier PDF PDF_begin_font Commence une définition de police de type 3 PDF_begin_glyph Commence une définition de glyphe pour les polices de tye 3 PDF_begin_item Ouvre un élément de structure ou un autre élément de contenu PDF_begin_layer Commence une interface PDF_begin_page_ext Commence une nouvelle page PDF_begin_page [Obsolète] Initialise une nouvelle page de document PDF PDF_begin_pattern Initialise un nouveau pattern PDF PDF_begin_template_ext Commence une définition de template PDF_begin_template Initialise un nouveau template PDF (obsolète) PDF_circle Dessine un cercle dans un document PDF PDF_clip Modifie le chemin de clipping PDF PDF_close_image Ferme une image dans un document PDF PDF_close_pdi_page Ferme la page PDF PDF_close_pdi Ferme le fichier PDF d'entrée (obsolète) PDF_close [Obsolète] Ferme le fichier PDF PDF_closepath_fill_stroke Termine le chemin, dessine les bords et remplit la forme PDF_closepath_stroke Termine le chemin et dessine les bords PDF_closepath Termine le chemin PDF courant PDF_concat Concatène une matrice avec le CTM PDF_continue_text Affiche du texte à la prochaine ligne PDF PDF_create_3dview Crée une vue 3D PDF_create_action Crée une action pour des objets ou des événements PDF_create_annotation Crée une annotation rectangulaire PDF_create_bookmark Crée un signet PDF_create_field Crée un champ de formulaire PDF_create_fieldgroup Crée un groupe de champs dans un formulaire PDF_create_gstate Crée un objet graphique PDF_create_pvf Crée un fichier PDFlib virtuel PDF_create_textflow Crée un objet de flux de texte PDF_curveto Dessine une courbe de Bezier PDF_define_layer Crée une définition d'interface PDF_delete_pvf Efface un fichier virtuel PDFlib PDF_delete_table Efface un tableau PDF_delete_textflow Efface un objet de flux de texte PDF_delete Efface un objet PDF PDF_encoding_set_char Ajoute un nom de glyphe et/ou une valeur Unicode PDF_end_document Ferme un fichier PDF PDF_end_font Termine une définition de police de type 3

5 5 sur PDF_end_glyph Termine la définition d'un glyphe pour les polices de type 3 PDF_end_item Ferme la structure d'un élément ou un autre élément de contenu PDF_end_layer Désactive toutes les interfaces actives PDF_end_page_ext Termine une page PDF_end_page Termine la page PDF courante PDF_end_pattern Termine le pattern PDF PDF_end_template Termine le template PDF PDF_endpath Termine le chemin courant PDF_fill_imageblock Remplit un bloc d'image avec des données variables PDF_fill_pdfblock Remplit un bloc de contenu avec des données variables PDF_fill_stroke Remplit et passe le pinceau sur le chemin PDF courant PDF_fill_textblock Remplit un bloc de texte avec des données variables PDF_fill Remplit le chemin PDF courant avec la couleur courante PDF_findfont [Obsolète] Prépare une police pour utilisation ultérieure PDF_fit_image Place une image ou un template PDF_fit_pdi_page Place une page PDF importée PDF_fit_table Place un tableau sur la page PDF_fit_textflow Formate un flux de texte dans un espace rectangulaire PDF_fit_textline Place un simple ligne de texte PDF_get_apiname Récupère le nom d'une fonction de l'api qui a échouée PDF_get_buffer Lit le tampon contenant le fichier PDF généré PDF_get_errmsg Récupère le texte d'une erreur PDF_get_errnum Récupère un numéro d'erreur PDF_get_font [Obsolète] Charge une police PDF_get_fontname [Obsolète] Lit le nom de la police PDF_get_fontsize [Obsolète] Gère les polices PDF_get_image_height [Obsolète] Retourne la hauteur d'une image PDF_get_image_width [Obsolète] Retourne la largeur d'une image PDF_get_majorversion [Obsolète] Retourne le numéro de version majeur de PDFlib PDF_get_minorversion [Obsolète] Retourne le numéro de version mineure de PDFlib PDF_get_parameter Lit certains paramètres PDF_get_pdi_parameter Lit des paramètres textuels dans le document PDI (obsolète) PDF_get_pdi_value Lit des paramètres numériques dans le document PDF d'entrée (obsolète) PDF_get_value Lit certains paramètres numériques PDF_info_font Récupère des informations détaillées sur une police chargée PDF_info_matchbox Récupère les informations d'une boîte PDF_info_table Récupère les informations d'un tableau PDF_info_textflow Récupère le statut d'un flux de texte PDF_info_textline Effectue le formattage d'une ligne de texte et récupère la matrice PDF_initgraphics Remet à zéro l'environnement graphique PDF PDF_lineto Dessine une ligne PDF PDF_load_3ddata Charge un modèle 3D PDF_load_font Cherche et prépare une police PDF_load_iccprofile Cherche et prépare un profile ICC PDF_load_image Ouvre un fichier image PDF_makespotcolor Place un point de couleur PDF PDF_moveto Place le point courant PDF PDF_new Crée un nouvel objet PDF PDF_open_ccitt [Obsolète] Ouvre une image contenant des données brutes CCITT

6 6 sur PDF_open_file [Obsolète] Ouvre un nouveau fichier PDF PDF_open_gif [Obsolète] Ouvre une image GIF PDF_open_image_file [Obsolète] Lit une image depuis un fichier PDF_open_image [Obsolète] Ouvre une image PDF_open_jpeg [Obsolète] Ouvre une image JPEG PDF_open_memory_image [Non supporté] Ouvre une image créée en mémoire par PHP PDF_open_pdi_page Prépare une page PDF_open_pdi Ouvre un fichier PDF (obsolète) PDF_open_tiff [Obsolète] Ouvre une image TIFF PDF_pcos_get_number Récupère la valeur du chemin pcos PDF_pcos_get_stream Récupère le contenu du chemin pcos PDF_pcos_get_string Récupère la valeur du chemin pcos PDF_place_image [Obsolète] Place une image dans la page PDF_place_pdi_page [Obsolète] Place une page dans le document PDF_process_pdi Traite un document PDF importé PDF_rect Dessine un rectangle PDF_restore Rétablit l'ancien environnement graphique PDF PDF_resume_page Réouvre une page PDF_rotate Configure la rotation PDF_save Sauve l'environnement graphique courant PDF_scale Configure l'échelle du document PDF_set_border_color [Obsolète] Configure la couleur des bords autour des liens et annotations PDF_set_border_dash [Obsolète] Configure le style des lignes autour des liens des annotations PDF_set_border_style [Obsolète] Choisit le style de bord autour des liens et annotations PDF_set_char_spacing [Obsolète] Configure l'espacement des caractères PDF_set_duration [Obsolète] Configure la durée entre deux pages PDF_set_gstate Active un objet graphique PDF_set_horiz_scaling [Obsolète] Configure l'échelle horizontale du texte PDF_set_info_author [Obsolète] Remplit le champ d'auteur du document PDF_set_info_creator [Obsolète] Remplit le champ de créateur du document PDF_set_info_keywords [Obsolète] Remplit le champ de mots-clés du document PDF_set_info_subject [Obsolète] Remplit le champ de sujet du document PDF_set_info_title [Obsolète] Remplit le champ de titre du document PDF_set_info Remplit un champ de l'en-tête de document PDF PDF_set_layer_dependency Définit les liens entre les interfaces PDF_set_leading [Obsolète] Configure la distance entre deux lignes de texte PDF_set_parameter Modifie certains paramètres PDF_set_text_matrix [Obsolète] Configure la matrice de texte PDF_set_text_pos Modifie la position du texte PDF_set_text_rendering [Obsolète] Détermine le rendu du texte PDF_set_text_rise [Obsolète] Configure l'élévation de texte PDF_set_value Modifie certains paramètres numériques PDF_set_word_spacing [Obsolète] Configure l'espace entre deux mots PDF_setcolor Configure la couleur de dessin et de remplissage PDF_setdash Configure le mode de pointillé PDF_setdashpattern Définit un modèle de masque PDF_setflat Configure la position à plat (flatness) PDF_setfont Configure la police courante PDF_setgray_fill [Obsolète] Configure la couleur de remplissage à un niveau de gris

7 7 sur PDF_setgray_stroke [Obsolète] Configure la couleur de dessin à un niveau de gris PDF_setgray [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris PDF_setlinecap Configure le paramètre de linecap PDF_setlinejoin Configure le paramètre de linejoin PDF_setlinewidth Configure la largeur de ligne PDF_setmatrix Configure la matrice de transformation PDF_setmiterlimit Configure la "miter limit" PDF_setpolydash [Obsolète] Configure des pointillés complexes PDF_setrgbcolor_fill [Obsolète] Choisit la couleur utilisée pour le remplissage PDF_setrgbcolor_stroke [Obsolète] Choisit la couleur utilisée pour le dessin PDF_setrgbcolor [Obsolète] Choisit la couleur rgb de remplissage et de dessin PDF_shading_pattern Définit un masque d'ombrage PDF_shading Définit un dégradé PDF_shfill Remplit un espace avec un degradé PDF_show_boxed [Obsolète] Affiche le texte dans un cadre PDF_show_xy Affiche un texte à une position donnée PDF_show Affiche le texte à la position courante PDF_skew Incline le système de coordonnées PDF_stringwidth Retourne la largeur d'un texte avec la police courante PDF_stroke Dessine la ligne le long du chemin PDF_suspend_page Suspend une page PDF_translate Effectue une translation de l'origine du système de coordonnées PDF_utf16_to_utf8 Convertit une chaîne UTF-16 en UTF-8 PDF_utf32_to_utf16 Convertie une chaîne UTF-32 en UTF-16 PDF_utf8_to_utf16 Convertit une chaîne UTF-8 en UTF-16 User Contributed Notes PDF SID TRIVEDI 20-Jan :16 /* Folks, There is an excellent tutorial from Rasmus Lerdorf available at (It does not support I.E.) Where PHP Mastermind Guru (Father) explained nicely about text, fonts, images and their attributes with working snippets. Another tutorial can be found at Hence following is the various size of PDF Document. Origin is at the lower left and the basic unit is the DTP pt. 1 pt = 1/72 inch = mm Some common page sizes Format Width Height US-Letter US-Legal US-Ledger

8 8 sur x A A1 A A A4 A A B */ info at tecnick dot com 10-Jan :54 For those of us that do not want to pay for a commercial license to use PDFlib I suggest TCPDF: TCPDF is an Open Source PHP class for generating PDF files on-the-fly without requiring external extensions. This class is already adopted by a large number of php projects such as phpmyadmin, Drupal, Joomla, Xoops, TCExam, etc. Starting from 2.1 version TCPDF supports UTF-8 Unicode and bidirectional languages such as Arabic and Hebrew. Ken McColl 21-Nov :06 To get this to work on Windows do not use escapeshellcmd() From online help: Following characters are preceded by a backslash: #&;` *?~<>^()[]$\, \x0a and \xff. ' and " are escaped only if they are not paired. In Windows, all these characters plus % are replaced by a space instead. So you are probably passing duff paths to pdf2text.exe Removing escapeshellcmd worked for me. Just make darned sure you are in control of what is being passed through to your system call. kangaroo at yahoo dot co dot uk 18-Nov :25 To extend alex's example earlier, you can use a couple of switches inside the pdf doc to give you the total number of pages, without using any ext. I would have added the whole code, however the site keeps on saying "line is too long... yadayada". Open the doc using fopen("$file", "rb"); (for reading) Test the first approx 1000b for the following regex if(preg_match("/\/n\s+([0-9]+)/", $contents, $found)) return $found[1]; If that doesn't return anything, you have to read the rest of the file: preg_match_all("/\/type\s*\/pages\s*\/kids\s+ \[.*?\]\s*\/count\s+([0-9]+)/"); This may return more than one, so look through for the highest value, which is the total number of pages in your doc.

9 9 sur Jonathon Hibbard 06-Nov :37 The other issue with DOMpdf is that it has some pretty painful flaws. You have to supply full paths to everything (images, includes, javascript files, etc). And boy, do i mean everything. Even then, it is not 100% sound. If you have complex sites, it cannot handle it. It instead breaks the design and only provides you with about a million broken images. Don't get me wrong, it's GREAT for use with lower-end more simple sites, but if you have a site that say, has a javascript navigation, flash, and a bunch of container divs, it's really not going to do the job. The above library seems to be the best fit, as about the only way to get high-end sites to work is just to manually write it out yourself using the functions above. Sorry to bust anyone's bubble. Good luck. spadmore1980 at gmail dot com 24-Oct :23 is also quite good. Np lib install is required -Shelon Padmore taufiq at simplybuzz dot com 23-Oct :13 There is XPDF Win32 binary package at SourceForge for pdftotext purpose that works. I've tried php codes below but didn't work. praokean at yahoo dot com 23-Aug :08 dompdf is not so great PDF creator becouse don't support foreign charachters. Sam from dogmaconsult.de 15-Aug :00 I seriously tried to get PDF parsing to work to use it in the indexing for fulltext search for a document management. But none of the pdf2text functions below worked for my test cases (among them an openoffice generated pdf file and a file generated by fpdf). But I found a REALLY WORKING SOLUTION! On linux systems, install the XPDF package. It comes with a tool called pdftotext. Use php code similar to the following to get the text content of your pdf files: <? $file = "test.pdf"; $outpath = preg_replace("/\.pdf$/", "", $file).".txt"; system("pdftotext ".escapeshellcmd($file), $ret); if ($ret == 0) $value = file_get_contents($outpath); unlink($outpath); print $value; if ($ret == 127) print "Could not find pdftotext tool."; if ($ret == 1) print "Could not find pdf file."; The solution works on all test cases and is much more powerful than any of the

10 10 sur previous pure php functions posted here, although only available on linux. tatlar at yahoo dot com 15-Aug :49 PHP5 class that converts HTML to PDF. From the website: "At its heart, dompdf is (mostly) CSS2.1 compliant HTML layout and rendering engine written in PHP. It is a style-driven renderer: it will download and read external stylesheets, inline style tags, and the style attributes of individual HTML elements. It also supports most presentational HTML attributes." david at metabin 19-Jul :19 Easiest way to get the text of a pdf is to install xpdf (on redhat yum -y install xpdf) then run xpdftotext your.pdf - which will then generate your.txt. brain23 at gmx dot de 03-Jul :28 For FPDF there also is an addon (FPDI) available, which let you import existing PDF documents: pitvanester at g dot com 25-Jun :54 Sorry, both versions of pdf2txt don t work... jaymaity at gmail dot com 01-Jun :22 Totally free open source alternative is also available without any license cost at jkndrkn at gmail dot com 03-May :51 For those of us that do not want to pay for a commercial license to use PDFlib in a closed-source project, there are at least two good alternatives: FPDF and TCPDF PHP4 and PHP5 support PHP5 support only luc at phpt dot org 30-Mar :09 I am trying to extract the text from PDF files and use it to feed a search engine (Intranet tool). I tried several functions "PDF2TXT" posted below, but not they do not produce the expected result. At least, all words need to be separated by spaces (then used as keywords), and the "junk" codes removed (for example: binary data, pictures...). I start modifying the interesting function posted by Swen, and here is the my current version that starts to work quite well (with PDF version 1.2). Sorry for having a quite different style of programming. Luc // Patch for pdf2txt() posted Sven Schuberth // Add/replace following code (cannot post full program, size limitation) // handles the verson 1.2

11 11 sur // New version of handlev2($data), only one line changed function handlev2($data) // grab objects and then grab their contents (chunks) $a_obj = getdataarray($data,"obj","endobj"); foreach($a_obj as $obj) $a_filter = getdataarray($obj,"<<",">>"); if (is_array($a_filter)) $j++; $a_chunks[$j]["filter"] = $a_filter[0]; $a_data = getdataarray($obj,"stream\r\n","endstream"); if (is_array($a_data)) $a_chunks[$j]["data"] = substr($a_data[0], strlen("stream\r\n"), strlen($a_data[0])-strlen("stream\r\n")-strlen("endstream")); // decode the chunks foreach($a_chunks as $chunk) // look at each chunk and decide how to decode it - by looking at the contents of the filter $a_filter = split("/",$chunk["filter"]); if ($chunk["data"]!="") // look at the filter to find out which encoding has been used if (substr($chunk["filter"],"flatedecode")!==false) $data =@ gzuncompress($chunk["data"]); if (trim($data)!="") // CHANGED HERE, before: $result_data.= ps2txt($data); $result_data.= PS2Text_New($data); else //$result_data.= "x"; return $result_data; // New function - Extract text from PS codes function ExtractPSTextElement($SourceString) $CurStartPos = 0; while (($CurStartText = strpos($sourcestring, '(', $CurStartPos))!== FALSE) // New text element found if ($CurStartText - $CurStartPos > 8) $Spacing = ' '; else $SpacingSize = substr($sourcestring, $CurStartPos, $CurStartText - $CurStartPos); if ($SpacingSize < -25) $Spacing = ' '; else $Spacing = ''; $CurStartText++; $StartSearchEnd = $CurStartText; while (($CurStartPos = strpos($sourcestring, ')', $StartSearchEnd))!== FALSE) if (substr($sourcestring, $CurStartPos - 1, 1)!= '\\') break; $StartSearchEnd = $CurStartPos + 1; if ($CurStartPos === FALSE) break; // something wrong happened

12 12 sur // Remove ending '-' if (substr($result, -1, 1) == '-') $Spacing = ''; $Result = substr($result, 0, -1); // Add to result $Result.= $Spacing. substr($sourcestring, $CurStartText, $CurStartPos - $CurStartText); $CurStartPos++; // Add line breaks (otherwise, result is one big line...) return $Result. "\n"; // Global table for codes replacement $TCodeReplace = array ('\(' => '(', '\)' => ')'); // New function, replacing old "pd2txt" function function PS2Text_New($PS_Data) global $TCodeReplace; // Catch up some codes if (ord($ps_data[0]) < 10) return ''; if (substr($ps_data, 0, 8) == '/CIDInit') return ''; // Some text inside (...) can be found outside the [...] sets, then ignored // => disable the processing of [...] is the easiest solution $Result = ExtractPSTextElement($PS_Data); // echo "Code=$PS_Data\nRES=$Result\n\n"; // Remove/translate some codes return strtr($result, $TCodeReplace); Sven.Schuberth(at)gmx.de 29-Mar :38 I've improved the codesnipped for the pdf2txt version 1.2. Now its possible the translate pdf version >1.2 into plain text. Sven // Function : pdf2txt() // Arguments : $filename - Filename of the PDF you want to extract // Description : Reads a pdf file, extracts data streams, and manages // their translation to plain text - returning the plain // text at the end // Authors : Jonathan Beckett, // : Sven Schuberth, function pdf2txt($filename) $data = getfiledata($filename); $s=strpos($data,"%")+1; $version=substr($data,$s,strpos($data,"%",$s)-1); if(substr_count($version,"pdf-1.2")==0) return handlev3($data); else return handlev2($data);

13 13 sur // handles the verson 1.2 function handlev2($data) // grab objects and then grab their contents (chunks) $a_obj = getdataarray($data,"obj","endobj"); foreach($a_obj as $obj) $a_filter = getdataarray($obj,"<<",">>"); if (is_array($a_filter)) $j++; $a_chunks[$j]["filter"] = $a_filter[0]; $a_data = getdataarray($obj,"stream\r\n","endstream"); if (is_array($a_data)) $a_chunks[$j]["data"] = substr($a_data[0], strlen("stream\r\n"), strlen($a_data[0])-strlen("stream\r\n")-strlen("endstream")); // decode the chunks foreach($a_chunks as $chunk) // look at each chunk and decide how to decode it - by looking at the contents of the filter $a_filter = split("/",$chunk["filter"]); if ($chunk["data"]!="") // look at the filter to find out which encoding has been used if (substr($chunk["filter"],"flatedecode")!==false) $data =@ gzuncompress($chunk["data"]); if (trim($data)!="") $result_data.= ps2txt($data); else //$result_data.= "x"; return $result_data; //handles versions >1.2 function handlev3($data) // grab objects and then grab their contents (chunks) $a_obj = getdataarray($data,"obj","endobj"); $result_data=""; foreach($a_obj as $obj) //check if it a string if(substr_count($obj,"/gs1")>0) //the strings are between ( and ) preg_match_all(" \((.*?)\) ",$obj,$field,preg_set_order); if(is_array($field)) foreach($field as $data) $result_data.=$data[1]; return $result_data; function ps2txt($ps_data) $result = ""; $a_data = getdataarray($ps_data,"[","]");

14 14 sur if (is_array($a_data)) foreach ($a_data as $ps_text) $a_text = getdataarray($ps_text,"(",")"); if (is_array($a_text)) foreach ($a_text as $text) $result.= substr($text,1,strlen($text)-2); else // the data may just be in raw format (outside of [] tags) $a_text = getdataarray($ps_data,"(",")"); if (is_array($a_text)) foreach ($a_text as $text) $result.= substr($text,1,strlen($text)-2); return $result; function getfiledata($filename) $handle = fopen($filename,"rb"); $data = fread($handle, filesize($filename)); fclose($handle); return $data; function getdataarray($data,$start_word,$end_word) $start = 0; $end = 0; unset($a_result); while ($start!==false && $end!==false) $start = strpos($data,$start_word,$end); if ($start!==false) $end = strpos($data,$end_word,$start); if ($end!==false) // data is between start and end $a_result[] = substr($data,$start,$end-$start+strlen($end_word)); return $a_result; brendandonhue at comcast dot net 22-Aug :35 Here is a function to test whether a file is a PDF without using any external library. define('pdf_magic', "\\x25\\x50\\x44\\x46\\x2d"); function is_pdf($filename) return (file_get_contents($filename, false, null, 0, strlen(pdf_magic)) === PDF_MAGIC)? true : false; It's not checking if the whole file is valid, just if the correct header is present at the beginning of the file. MAGnUm at magnumhome dot servehttp.com 17-Jul :01 dompdf is also a great PDF creation interface. it basically converts your code to CSS and then builds the PDF from that with the absolute positions, and what not...

15 15 sur spingary at yahoo dot com 12-Jan :55 I was having trouble with streaming inline PDf's using PHP 5.0.2, Apache This is my code: <? header("pragma: public"); header("expires: Mon, 26 Jul :00:00 GMT"); header("last-modified: ". gmdate("d, d M Y H:i:s"). " GMT"); header("cache-control: must-revalidate"); header("content-type: application/pdf"); header("content-length: ".filesize($file)); header("content-disposition: inline; filename=$file"); header("accept-ranges: ".filesize($file)); readfile($file); exit(); It would work fine in Mozilla Firefox (1.0.7) but with IE ( ) it would not bring up the Adobe Reader plugin and instead ask me to save it or open it as a PHP file. Oddly enough, I turned off ZLib.compression and it started working. I guess the compression is confusing IE. I tried leaving out the content-length header thinking maybe it was unmatched filesize (uncompressed number vs actual received compressed size), but then without it it screws up Firefox too. What I ended up doing was disabling Zlib compression for the PDF output pages using ini_set: <? ini_set('zlib.output_compression','off'); Maybe this will help someone. Will post over in the PDF section as well. ontwerp AT zonnet.nl 03-Nov :01 I was searching for a lowcost/opensource option for combining static html files [as templates] and dynamic output from perl or php routines etc. And the sooner or later I found out that this was the most stable, 'speedest' and customizeable way to produce usable pdf 's with nice formatting : 1] create html page output [perl-> html output, direct html output from any app or php echo's etc. [sort these html files locally] 2] parse all html [inluding webimages links, tables font formatting etc] to [E]PS files with the perl app : html2ps [as mentioned beneath] [sort all ps files by future pdf page positions] 3] use the free ps2pdf/ps2pdfwr linux application [uses gostscript, ghostview libs and so on etc] Has great formatting options like headers, footers, numbering etc [sort pdf files] 4] convert all pdf files to 1 pdf file with : pdftk [pdftoolkit], deliveres optional compressions/encryption, background stamps etc One should ask why using different scripts : - combination perl/php is great : perl is speedier at some issues like conversion to ps files in my experience - ps to pdf is quickier then direct php to pdf [in my exp.!] - I have total control over every files whenever i change html files as a template I use only editors or other app. for it [online or offline].

16 16 sur p.s. I had to make a opensource solution for creating simpel report analyses that's based on things like : - first page [name / title / #/ date] - some static info [like introduction, copyrights etc] - some dynamic info [outputted from php->dbase queries] combined with html tags/images etc. And this all mixed [so seperated in files for transparancy]. Also the 3 way manner : data-> html, html->ps, ps->pdf, is easier and quickier to program or adjust in every step. Correct me if i'm wrong [mail me to] ing. Valentijn Langendorff Design & Technologist ragnar at deulos dot com 08-Oct :30 After one hole day understanding how pdflib works i got the conclusion that its enough hard to draw just with words to furthermore for drawing a line maybe you will need something like four lines of code, so i did my own functions to do the life easier and the code more understable to modify and draw. I also made a function that will draw a rect with the corners round and the posibility even to fill it ;) You can get it from feel free to make suggestions or whatever u like ;o) 17-Sep :26 some code that can be very helpful for starters. // Declare PDF File $pdf = pdf_new(); PDF_open_file($pdf); // Set Document Properties PDF_set_info($pdf, "author", "Alexander Pas"); PDF_set_info($pdf, "title", "PDF by PHP Example"); PDF_set_info($pdf, "creator", "Alexander Pas"); PDF_set_info($pdf, "subject", "Testing Code"); // Get fonts to use pdf_set_parameter($pdf, "FontOutline", "Arial=arial.ttf"); // get a custom font $font1 = PDF_findfont($pdf, "Helvetica-Bold", "winansi", 0); // declare default font $font2 = PDF_findfont($pdf, "Arial", "winansi", 1); // declare custom font & embed into file /* You can use the following Fontypes 14 safely (the default fonts) Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic Symbol, ZapfDingbats */ // make the images $image1 = PDF_open_image_file($pdf, "gif", "image.gif"); //supported filetypes are: jpeg, tiff, gif, png. //Make First Page

17 17 sur PDF_begin_page($pdf, 450, 450); // page width and height. $bookmark = PDF_add_bookmark($pdf, "Front"); // add a top level bookmark. PDF_setfont($pdf, $font1, 12); // use this font from now on. PDF_show_xy($pdf, "First Page!", 5, 225); // show this text measured from the left top. pdf_place_image($pdf, $image1, 255, 5, 1); // last number will schale it. PDF_end_page($pdf); // End of Page. //Make Second Page PDF_begin_page($pdf, 450, 225); // page width and height. $bookmark1 = PDF_add_bookmark($pdf, "Chapter1", $bookmark); // add a nested bookmark. (can be nested multiple times.) PDF_setfont($pdf, $font2, 12); // use this font from now on. PDF_show_xy($pdf, "Chapter1!", 225, 5); PDF_add_bookmark($pdf, "Chapter1.1", $bookmark1); // add a nested bookmark (already in a nested one). PDF_setfont($pdf, $font1, 12); PDF_show_xy($pdf, "Chapter1.1", 225, 5); PDF_end_page($pdf); // Finish the PDF File PDF_close($pdf); // End Of PDF-File. $output = PDF_get_buffer($pdf); // assemble the file in a variable. // Output Area header("content-type: application/pdf"); //set filetype to pdf. header("content-length: ".strlen($output)); //content length header("content-disposition: attachment; filename=test.pdf"); // you can use inline or attachment. echo $output; // actual print area! // Cleanup PDF_delete($pdf); thodge at ipswich dot qld dot gov dot au 05-Sep :22 Yet another addition to the PDF text extraction code last posted by jorromer. The code only seemed to work for PDF 1.2 (Acrobat 3.x) or below. This pdfextracttext function uses regular expressions to cover cases I have found in PDF 1.3 and 1.4 documents. The code also handles closing brackets in the text stream, which were ignored by the previous version. My regular expression skills are somewhat lacking, so improvements may possible by a more skilled programmer. I'm sure there are still cases that this function will not handle, but I haven't come across any yet... function pdf2string($sourcefile) $fp = fopen($sourcefile, 'rb'); $content = fread($fp, filesize($sourcefile)); fclose($fp); $searchstart = 'stream'; $searchend = 'endstream'; $pdftext = ''; $pos = 0; $pos2 = 0; $startpos = 0; while ($pos!== false && $pos2!== false) $pos = strpos($content, $searchstart, $startpos); $pos2 = strpos($content, $searchend, $startpos + 1);

18 18 sur if ($pos!== false && $pos2!== false) if ($content[$pos] == 0x0d && $content[$pos + 1] == 0x0a) $pos += 2; else if ($content[$pos] == 0x0a) $pos++; if ($content[$pos2-2] == 0x0d && $content[$pos2-1] == 0x0a) $pos2 -= 2; else if ($content[$pos2-1] == 0x0a) $pos2--; $textsection = substr( $content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1 ); $data $pdftext.= pdfextracttext($data); $startpos = $pos2 + strlen($searchend) - 1; return preg_replace('/(\s)+/', ' ', $pdftext); function pdfextracttext($psdata) if (!is_string($psdata)) return ''; $text = ''; // Handle brackets in the text stream that could be mistaken for // the end of a text field. I'm sure you can do this as part of the // regular expression, but my skills aren't good enough yet. $psdata = str_replace('\)', '##ENDBRACKET##', $psdata); $psdata = str_replace('\]', '##ENDSBRACKET##', $psdata); preg_match_all( '/(T[wdcm*])[\s]*(\[([^\]]*)\] \(([^\)]*)\))[\s]*tj/si', $psdata, $matches ); for ($i = 0; $i < sizeof($matches[0]); $i++) if ($matches[3][$i]!= '') // Run another match over the contents. preg_match_all('/\(([^)]*)\)/si', $matches[3][$i], $submatches); foreach ($submatches[1] as $submatch) $text.= $submatch; else if ($matches[4][$i]!= '') $text.= ($matches[1][$i] == 'Tc'? ' ' : ''). $matches[4][$i]; // Translate special characters and put back brackets. $trans = array( '...' => ' ', '\205' '\221' => ' ', => chr(145), '\222' => chr(146), '\223' '\224' => chr(147), => chr(148),

19 19 sur '\226' => '-', '\267' => ' ', '\(' => '(', '\[' => '[', '##ENDBRACKET##' => ')', '##ENDSBRACKET##' => ']', chr(133) => '-', chr(141) => chr(147), chr(142) => chr(148), chr(143) => chr(145), chr(144) => chr(146), ); $text = strtr($text, $trans); return $text; 28-Aug :58 If you want to display the number of pages (for example: page 1 of 3) then the following code could be helpful:... $pdf->begin_page_ext(842,595, "");.. add text,images,... $pdf->suspend_page(""); $pdf->begin_page_ext(842,595, "");.. add text,images,... $pdf->suspend_page("");... create all pages $pdf->resume_page("pagenumber 1");... add number of pages to page 1 $pdf->end_page_ext(""); $pdf->resume_page("pagenumber 2");... add number of pages to page 2 $pdf->end_page_ext("");... jorromer at uchile dot cl -- Krash 07-Jun :51 I recently use mattb code below for the extraction of text from PDF files. I modify this code for only extract text fields. Hope i can help some one Here is the Function $text = pdf2string("file.pdf"); echo $text; function pdf2string($sourcefile) $fp = fopen($sourcefile, 'rb'); $content = fread($fp, filesize($sourcefile)); fclose($fp);

20 20 sur $searchstart = 'stream'; $searchend = 'endstream'; $pdfdocument = ''; $pos = 0; $pos2 = 0; $startpos = 0; while( $pos!== false && $pos2!== false ) $pos = strpos($content, $searchstart, $startpos); $pos2 = strpos($content, $searchend, $startpos + 1); if ($pos!== false && $pos2!== false) if ($content[$pos]==0x0d && $content[$pos+1]==0x0a) $pos+=2; else if ($content[$pos]==0x0a) $pos++; if ($content[$pos2-2]==0x0d && $content[$pos2-1]==0x0a) $pos2-=2; else if ($content[$pos2-1]==0x0a) $pos2--; $textsection = substr($content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1); $data $data = ExtractText2($data); $startpos = $pos2 + strlen($searchend) - 1; if ($data === false) return -1; $pdfdocument.= $data; return $pdfdocument; function ExtractText2($postScriptData) $sw = true; $textstart = 0; $len = strlen($postscriptdata); while ($sw) $ini = strpos($postscriptdata, '(', $textstart); $end = strpos($postscriptdata, ')', $textstart+1); if (($ini>0) && ($end>$ini)) $valtext = strpos($postscriptdata,'tj',$end+1); if ($valtext == $end + 2) $text.= substr($postscriptdata,$ini+1,$end - $ini - 1); $textstart = $end + 1; if ($len<=$textstart) $sw=false; if (($ini == 0) && ($end == 0)) $sw=false; $trans = array("\\341" => "a","\\351" => "e","\\355" => "i","\\363" => "o","\\223" => "","\\224" => ""); $text = strtr($text, $trans); return $text; webadmin at secretscreen dot com 05-Apr :51 I found this info about pdflib scope on a Chinese (I think) site and translated it. I was trying to do pdf_setfont and kept getting the wrong scope error. Turns out it has to be in the Page scope. So pdf_setfont will only work when called between pdf_begin_page and pdf_end_page. ######################################### When API of the PDFlib is called, the error, Can't - IN 'document' scope occurs There is a concept of " the scope " in the PDFlib, as for all API of the PDFlib it is called with some scope, the *1 which is decided This error occurs when it is called other than the scope where API is appointed. The chart below in reference, please verify API call position.

21 21 sur Path: PDF_moveto (), PDF_circle (), PDF_arc (), PDF_arcn (), PDF_rect () in each case PDF_stroke (), PDF_closepath_stroke (), PDF_fill (), PDF_fill_stroke (), PDF_closepath_fill_stroke (), PDF_clip (), PDF_endpath () the between Page: PDF_begin_page () with PDF_end_page () in between outside path Template: PDF_begin_template () with PDF_end_template () in between outside path Pattern: PDF_begin_pattern () with PDF_end_pattern () in between outside path Font: PDF_begin_font () with PDF_end_font () in between outside glyph Glyph: PDF_begin_glyph () with PDF_end_glyph () in between outside path Document: PDF_open_* () with PDF_close () in between outside page tempalte and pattern Object: The PDF_new () with the PDF_delete () it belongs to the other no scope in between the place Null: Outside object Any: All scopes other than ########################################## Hope this helps others as much as it helped me!!! chu61 dot tw at gmail dot com 07-Mar :57 How to get how many pages in a PDF? I read PDF spec. V1.6 and find this: PDF set a "Page Tree Node" to define the ordering of pages in the document. The tree structure allows PDF applications, using little memory to quickly open a document containing thousands of pages. If a PDF have 63 pages, the page tree node will like this obj << /Type /Pages /Kidsn [ 4 0 R 10 0 R ] /Count 63 >> endobj <---- YES, got it [P.S] a PDF may not only a pages tree node, The right answer is in "root page tree node", if /Count XX with /Parent XXX node, it not "root page tree node" SO, You must find the node with /Count XX and Without /Parent terms, and you'll get total pages of PDF %PDF-1.0 ~ %PDF-1.5 all works Alex form Taipei,Taiwan mattb at bluewebstudios dot com 04-Feb :44 I recently tested Donatas' code below for the extraction of text from PDF files. After running into a few problems where PDF files were not being read at all, I've modified it somewhat. It still isn't perfect, but should work great for searching. Thanks Donatas. $test = pdf2string("<pathtopdffile>"); echo "$test";

22 22 sur # Returns a -1 if uncompression failed function pdf2string($sourcefile) $fp = fopen($sourcefile, 'rb'); $content = fread($fp, filesize($sourcefile)); fclose($fp); # Locate all text hidden within the stream and endstream tags $searchstart = 'stream'; $searchend = 'endstream'; $pdfdocument = ""; $pos = 0; $pos2 = 0; $startpos = 0; # Iterate through each stream block while( $pos!== false && $pos2!== false ) # Grab beginning and end tag locations if they have not yet been parsed $pos = strpos($content, $searchstart, $startpos); $pos2 = strpos($content, $searchend, $startpos + 1); if( $pos!== false && $pos2!== false ) # Extract compressed text from between stream tags and uncompress $textsection = substr($content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1); $data # Clean up text via a special function $data = ExtractText($data); # Increase our PDF pointer past the section we just read $startpos = $pos2 + strlen($searchend) - 1; if( $data === false ) return -1; $pdfdocument = $pdfdocument. $data; return $pdfdocument; function ExtractText($postScriptData) while( (($textstart = strpos($postscriptdata, '(', $textstart)) && ($textend = strpos($postscriptdata, ')', $textstart + 1)) && substr($postscriptdata, $textend - 1)!= '\\') ) $plaintext.= substr($postscriptdata, $textstart + 1, $textend - $textstart - 1); if( substr($postscriptdata, $textend + 1, 1) == ']' ) // This adds quite some additional spaces between the words $plaintext.= ' '; $textstart = $textstart < $textend? $textend : $textstart + 1; return stripslashes($plaintext); michi (Alt+Q) marel.at 01-Jul :10 <?PHP /* A little helpful function to calculate millimeters to points */ function calctopt($intmillimeter) $intpoints = ($intmillimeter*72)/25.4; $intpoints = round($intpoints); return $intpoints;

23 23 sur /* For example: Create DIN A4 210x297 mm */ pdf_begin_page( $pdf, calctopt(210), calctopt(297)); // 595x842 pt donatas at spurgius dot com 22-Jun :56 I've been looking for a way to extract plain text from PDF documents (needed to search for text inside 'em). Not being able to find one I wrote the needed functions myself. here you go folks. function pdf2string ($sourcefile) $textarray = array (); $objstart = 0; $fp = fopen ($sourcefile, 'rb'); $content = fread ($fp, filesize ($sourcefile)); fclose ($fp); $searchtagstart = chr(13).chr(10).'stream'; $searchtagstartlenght = strlen ($searchtagstart); while ((($objstart = strpos ($content, $searchtagstart, $objstart)) && ($objend = strpos ($content, 'endstream', $objstart+1)))) $data = substr ($content, $objstart + $searchtagstartlenght + 2, $objend - ($objstart + $searchtagstartlenght) - 2); $data ($data); if ($data!== FALSE && strpos ($data, 'BT')!== FALSE && strpos ($data, 'ET')!== FALSE) $textarray [] = ExtractText ($data); $objstart = $objstart < $objend? $objend : $objstart + 1; return $textarray; function ExtractText ($postscriptdata) while ((($textstart = strpos ($postscriptdata, '(', $textstart)) && ($textend = strpos ($postscriptdata, ')', $textstart + 1)) && substr ($postscriptdata, $textend - 1)!= '\\')) $plaintext.= substr ($postscriptdata, $textstart + 1, $textend - $textstart - 1); if (substr ($postscriptdata, $textend + 1, 1) == ']') //this adds quite some additional spaces between the words $plaintext.= ' '; $textstart = $textstart < $textend? $textend : $textstart + 1; return stripslashes ($plaintext); uwe at steinmann dot cx 13-May :25

24 24 sur Those looking for a free replacement of pdflib may consider pslib at which produces PostScript but it can be easily turned into PDF by Acrobat Distiller or ghostscript. The API is very similar and even hypertext functions are supported. There is also a php extension for pslib in PECL, called ps. samcontact at myteks dot com 01-May :28 Here is another great tutorial on basic PDF building w/ PHP: ======================= Computer Repair & Web Design ======================= SenorTZ senortz at nospam dot yahoo dot com 28-Jul :23 About creating a PDF document based on the content of another document(let's say a text file): I have tried to send to the PDF-creator page from a link from the sender page the file name of the file I want to read the content from and generate the PDF document containing this content. The idea is is that when I tried to reffer the pdf-creator page via the link your_root/create_pdf.php?filename=$your_file_name, the pdf-creator page does not behave well when before creating the pdf document I have a line like $filename = $_GET["filename"]. I solved this using on the sender page instead of the link a form with a button, so the form has as action "create_pdf.php", as method "post" and a hidden field containing the "filename" value. And it works like this if, on the pdf-creator page I have a line like $filename = $_POST["filename"]. I would like to understand why this way it works and the other way does not. I hope this helps. Here are the pieces of code I used. Sender page: print("<form name='to_pdf' action='see_pdf_file.php' method='post'>"); print("<br/><input type='submit' value='pdf'><input type='hidden' name='filename' value='$filename'></form>"); PDF-creator page: <? $filename = $_POST["filename"]; $file_handle = fopen($filename, "r"); $file_content = file_get_contents($filename); fclose($file_handle); // $file_content = wordwrap($file_content,72," "); $a_row = explode(" ",$file_content); $i = 0; // $pdf = pdf_new(); pdf_open_file($pdf, ""); pdf_begin_page($pdf, 595, 842); pdf_set_font($pdf, "Times-Roman", 16, "host"); pdf_add_outline($pdf, "Page 1"); pdf_set_value($pdf, "textrendering", 1); pdf_show_xy($pdf, 'The content of the file:',50,700); while ($a_row[$i]!= "") pdf_continue_text($pdf,$a_row[$i]); $i++; pdf_end_page($pdf); pdf_close($pdf);

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

How to Login to Career Page

How to Login to Career Page How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

Plus en détail

Dans une agence de location immobilière...

Dans une agence de location immobilière... > Dans une agence de location immobilière... In a property rental agency... dans, pour et depuis vocabulaire: «une location» et «une situation» Si vous voulez séjourner à Lyon, vous pouvez louer un appartement.

Plus en détail

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne Online Applications Tutorial 1/4 Pour postuler aux Appels d Offres de l ENP, vous devez aller sur la plateforme : calls.parisneuroscience.fr.

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des

Plus en détail

If you understand the roles nouns (and their accompanying baggage) play in a sentence...

If you understand the roles nouns (and their accompanying baggage) play in a sentence... If you understand the roles nouns (and their accompanying baggage) play in a sentence...... you can use pronouns with ease (words like lui, leur, le/la/les, eux and elles)...... understand complicated

Plus en détail

Tammy: Something exceptional happened today. I met somebody legendary. Tex: Qui as-tu rencontré? Tex: Who did you meet?

Tammy: Something exceptional happened today. I met somebody legendary. Tex: Qui as-tu rencontré? Tex: Who did you meet? page: pro10 1. quelqu'un, quelque chose 2. chacun vs. aucun 3. more indefinite pronouns A pronoun replaces a noun which has been mentioned or is obvious from context. An indefinite pronoun refers to people

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

Plus en détail

Our recommendation engine has come up with some personalized suggestions for you.

Our recommendation engine has come up with some personalized suggestions for you. Purchase flow 1. 1. Product preview I want this! You'll get 10 files. Attribute Value 2. 2. Payment form Optimize for conversion (?) Require shipping information More information: Required Enter placeholder

Plus en détail

RAPID 3.34 - Prenez le contrôle sur vos données

RAPID 3.34 - Prenez le contrôle sur vos données RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public Communautés Numériques L informatique à la portée du Grand Public Initiation et perfectionnement à l utilisation de la micro-informatique Microsoft Document Connection pour Mac. Microsoft Document Connection

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project B2- Web Development 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

Editing and managing Systems engineering processes at Snecma

Editing and managing Systems engineering processes at Snecma Editing and managing Systems engineering processes at Snecma Atego workshop 2014-04-03 Ce document et les informations qu il contient sont la propriété de Ils ne doivent pas être copiés ni communiqués

Plus en détail

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 INDEX : DOCUMENTATION - FRANCAIS... 2 1. INSTALLATION... 2 2. CONFIGURATION... 2 3. LICENCE ET COPYRIGHT... 3 4. MISES

Plus en détail

Telecharger gratuitement convertisseur de fichier word en pdf

Telecharger gratuitement convertisseur de fichier word en pdf Telecharger gratuitement convertisseur de fichier word en pdf Cliquez sur le bouton pour tlcharger le convertisseur PDF en Word. online pour convertir des fichiers PDF en fichiers Word ditables (gratuit,

Plus en détail

VTP. LAN Switching and Wireless Chapitre 4

VTP. LAN Switching and Wireless Chapitre 4 VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Tutoriel de formation SurveyMonkey

Tutoriel de formation SurveyMonkey Tutoriel de formation SurveyMonkey SurveyMonkey est un service de sondage en ligne. SurveyMonkey vous permet de créer vos sondages rapidement et facilement. SurveyMonkey est disponible à l adresse suivante

Plus en détail

Principe de TrueCrypt. Créer un volume pour TrueCrypt

Principe de TrueCrypt. Créer un volume pour TrueCrypt Sommaire : Principe de TrueCrypt...1 Créer un volume pour TrueCrypt...1 Premier montage...6 Réglages...8 Save Currently Mounted Volumes as Favorite...8 Settings > Preferences...9 TrueCrypt Traveller pour

Plus en détail

1.The pronouns me, te, nous, and vous are object pronouns.

1.The pronouns me, te, nous, and vous are object pronouns. 1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!

Plus en détail

Exemple PLS avec SAS

Exemple PLS avec SAS Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE CATEGORIESTOPMENU MODULE CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 CONFIGURATION... 2 LICENCE ET COPYRIGHT... 3 SUPPORT TECHNIQUE ET MISES A JOUR...

Plus en détail

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon Lesson Plan Physical Descriptions Objective: Students will comprehend and describe the physical appearance of others. Vocabulary: Elle est Il est Elle/Il est Elle/Il a les cheveux belle vieille grande

Plus en détail

Nouveautés printemps 2013

Nouveautés printemps 2013 » English Se désinscrire de la liste Nouveautés printemps 2013 19 mars 2013 Dans ce Flash Info, vous trouverez une description des nouveautés et mises à jour des produits La Capitale pour le printemps

Plus en détail

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION 3615 SELFIE http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION Hardware : Minitel Computer DIN FM545 45 connector (http://www.gotronic.fr/art-fiche-din-fm545-4747.htm) Cable Arduino compatible

Plus en détail

MODERN LANGUAGES DEPARTMENT

MODERN LANGUAGES DEPARTMENT MODERN LANGUAGES DEPARTMENT Common Assessment Task 3 YEAR 9 Je m appelle Ma classe Mark 20 10 19 22 16 13 Total Effort Instructions For this extended piece of homework, you are going to learn and write

Plus en détail

Gestion des prestations Volontaire

Gestion des prestations Volontaire Gestion des prestations Volontaire Qu estce que l Income Management (Gestion des prestations)? La gestion des prestations est un moyen de vous aider à gérer votre argent pour couvrir vos nécessités et

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

Package Contents. System Requirements. Before You Begin

Package Contents. System Requirements. Before You Begin Package Contents DWA-125 Wireless 150 USB Adapter CD-ROM (contains software, drivers, and manual) Cradle If any of the above items are missing, please contact your reseller. System Requirements A computer

Plus en détail

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE 1 Objectifs de l étude Comprendre l impact des réseaux sociaux externes ( Facebook, LinkedIn,

Plus en détail

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. General information 120426_CCD_EN_FR Dear Partner, The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. To assist navigation

Plus en détail

CEST POUR MIEUX PLACER MES PDF

CEST POUR MIEUX PLACER MES PDF CEST POUR MIEUX PLACER MES PDF ==> Download: CEST POUR MIEUX PLACER MES PDF CEST POUR MIEUX PLACER MES PDF - Are you searching for Cest Pour Mieux Placer Mes Books? Now, you will be happy that at this

Plus en détail

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+ GIGABIT PCI DESKTOP ADAPTER Quick Installation Guide+ Guide d installation+ Check Your Package Contents Quick Installation Guide Gigabit Ethernet PCI Adapter CD with Manual and Drivers DO NOT insert the

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION 1 12 rue Denis Papin 37300 JOUE LES TOURS Tel: 02.47.68.34.00 Fax: 02.47.68.35.48 www.herve consultants.net contacts@herve consultants.net TABLE DES MATIERES A Objet...1 B Les équipements et pré-requis...2

Plus en détail

CETTE FOIS CEST DIFFERENT PDF

CETTE FOIS CEST DIFFERENT PDF CETTE FOIS CEST DIFFERENT PDF ==> Download: CETTE FOIS CEST DIFFERENT PDF CETTE FOIS CEST DIFFERENT PDF - Are you searching for Cette Fois Cest Different Books? Now, you will be happy that at this time

Plus en détail

Practice Direction. Class Proceedings

Practice Direction. Class Proceedings Effective Date: 2010/07/01 Number: PD - 5 Title: Practice Direction Class Proceedings Summary: This Practice Direction describes the procedure for requesting the assignment of a judge in a proceeding under

Plus en détail

Module Title: French 4

Module Title: French 4 CORK INSTITUTE OF TECHNOLOGY INSTITIÚID TEICNEOLAÍOCHTA CHORCAÍ Semester 2 Examinations 2010 Module Title: French 4 Module Code: LANG 6020 School: Business Programme Title: Bachelor of Business Stage 2

Plus en détail

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32 THAT the proposed clause 6(1), as set out in Clause 6(1) of the Bill, be replaced with the following: Trustee to respond promptly 6(1) A trustee shall respond to a request as promptly as required in the

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

Plus en détail

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation English.......................................... 3 Français.........................................

Plus en détail

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society LIONS VILLAGE of Greater Edmonton Society affichage en français Informations sur l'employeur Nom de l'employeur *: Lions Village of Greater Edmonton Society Secteur d'activité de l'employeur *: Développement

Plus en détail

Quel temps fait-il chez toi?

Quel temps fait-il chez toi? Quel temps fait-il chez toi? -------------------------------------------------------------------------------------------------------------------------------------- Teacher s note: We have prepared a teaching

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5 RULE 5 - SERVICE OF DOCUMENTS General Rules for Manner of Service Notices of Application and Other Documents 5.01 (1) A notice of application or other document may be served personally, or by an alternative

Plus en détail

Institut français des sciences et technologies des transports, de l aménagement

Institut français des sciences et technologies des transports, de l aménagement Institut français des sciences et technologies des transports, de l aménagement et des réseaux Session 3 Big Data and IT in Transport: Applications, Implications, Limitations Jacques Ehrlich/IFSTTAR h/ifsttar

Plus en détail

UML : Unified Modeling Language

UML : Unified Modeling Language UML : Unified Modeling Language Recommended: UML distilled A brief guide to the standard Object Modeling Language Addison Wesley based on Frank Maurer lecture, Univ. of Calgary in french : uml.free.fr/index.html

Plus en détail

MANUEL MARKETING ET SURVIE PDF

MANUEL MARKETING ET SURVIE PDF MANUEL MARKETING ET SURVIE PDF ==> Download: MANUEL MARKETING ET SURVIE PDF MANUEL MARKETING ET SURVIE PDF - Are you searching for Manuel Marketing Et Survie Books? Now, you will be happy that at this

Plus en détail

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante : FOIRE AUX QUESTIONS COMMENT ADHÉRER? Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante : 275, boul des Braves Bureau 310 Terrebonne (Qc) J6W 3H6 La

Plus en détail

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #45 #46 WiFi Security Camera Quick Start Guide Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #47 Start Here 1 Is this you? TECH SUPPORT CTRL ALT DEL 2 If yes, turn to page three 1 3 If not,

Plus en détail

valentin labelstar office Made-to-measure label design. Conception des étiquettes sur mesure. Quality. Tradition. Innovation DRUCKSYSTEME

valentin labelstar office Made-to-measure label design. Conception des étiquettes sur mesure. Quality. Tradition. Innovation DRUCKSYSTEME valentin DRUCKSYSTEME labelstar office Made-to-measure label design. Conception des étiquettes sur mesure. Quality. Tradition. Innovation labelstar office individual. flexible. individuel. flexible > Simple

Plus en détail

ANGULAR JS AVEC GDE GOOGLE

ANGULAR JS AVEC GDE GOOGLE ANGULAR JS AVEC GDE GOOGLE JUIN 2015 BRINGING THE HUMAN TOUCH TO TECHNOLOGY 2015 SERIAL QUI SUIS-JE? ESTELLE USER EXPERIENCE DESIGNER BUSINESS ANALYST BRINGING THE HUMAN TOUCH TO TECHNOLOGY SERIAL.CH 2

Plus en détail

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF CEST MAINTENANT PDF ==> Download: CEST MAINTENANT PDF CEST MAINTENANT PDF - Are you searching for Cest Maintenant Books? Now, you will be happy that at this time Cest Maintenant PDF is available at our

Plus en détail

Contrôle d'accès Access control. Notice technique / Technical Manual

Contrôle d'accès Access control. Notice technique / Technical Manual p.1/18 Contrôle d'accès Access control INFX V2-AI Notice technique / Technical Manual p.2/18 Sommaire / Contents Remerciements... 3 Informations et recommandations... 4 Caractéristiques techniques... 5

Plus en détail

Notice Technique / Technical Manual

Notice Technique / Technical Manual Contrôle d accès Access control Encodeur USB Mifare ENCOD-USB-AI Notice Technique / Technical Manual SOMMAIRE p.2/10 Sommaire Remerciements... 3 Informations et recommandations... 4 Caractéristiques techniques...

Plus en détail

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires. Installation & Configuration GPLPI / OCS Inventory NG Installer sur Debian 5 Lenny, Liaison Active Directory, Mise en place du couple OCS/GLPI Par : POMENTE Guillaume OCS Inventory et GLPI sont deux outils

Plus en détail

English Q&A #1 Braille Services Requirement PPTC 144918. Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

English Q&A #1 Braille Services Requirement PPTC 144918. Q1. Would you like our proposal to be shipped or do you prefer an electronic submission? English Q&A #1 Braille Services Requirement PPTC 144918 Q1. Would you like our proposal to be shipped or do you prefer an electronic submission? A1. Passport Canada requests that bidders provide their

Plus en détail

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder Page 1 APPENDIX 2 Provisions to be included in the contract between the Provider and the Obligations and rights of the Applicant / Holder Holder 1. The Applicant or Licensee acknowledges that it has read

Plus en détail

DIPLOME NATIONAL DU BREVET TOUTES SERIES

DIPLOME NATIONAL DU BREVET TOUTES SERIES DIPLOME NATIONAL DU BREVET SESSION : 2014 Feuille 1/7 SUJET DIPLOME NATIONAL DU BREVET TOUTES SERIES Epreuve de Langue Vivante Etrangère : ANGLAIS SESSION 2014 Durée : 1 h 30 Coefficient : 1 Ce sujet comporte

Plus en détail

Project 1 Experimenting with Simple Network Management Tools. ping, traceout, and Wireshark (formerly Ethereal)

Project 1 Experimenting with Simple Network Management Tools. ping, traceout, and Wireshark (formerly Ethereal) Project 1 Experimenting with Simple Network Management Tools ping, traceout, and Wireshark (formerly Ethereal) (A) (25%) Use the ping utility to determine reach-ability of several computers. To run a ping

Plus en détail

Acce s aux applications informatiques Supply Chain Fournisseurs

Acce s aux applications informatiques Supply Chain Fournisseurs Acce s aux applications informatiques Supply Chain Fournisseurs Toujours plus de service pour vous ; rapide, pratique, sécurisé, écologique et gratuit! Vous vous connectez à notre site MESSIER BUGATTI

Plus en détail

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation THE CONSUMER PROTECTION ACT (C.C.S.M. c. C200) Call Centres Telemarketing Sales Regulation LOI SUR LA PROTECTION DU CONSOMMATEUR (c. C200 de la C.P.L.M.) Règlement sur le télémarketing et les centres d'appel

Plus en détail

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU GAME CONTENTS 3 wooden animals: an elephant, a Polar bear and an African lion 1 Playing Board with two tree stumps, one red and one blue 1 Command Board double sided for two game levels (Green for normal

Plus en détail

France SMS+ MT Premium Description

France SMS+ MT Premium Description France SMS+ MT Premium Description Summary Subscription : kinematics Subscription via SMS (Kinematic + messages) Subscription via Wap (Kinematic + messages) Subscription via Mix SMS / WAP Subscription

Plus en détail

Folio Case User s Guide

Folio Case User s Guide Fujitsu America, Inc. Folio Case User s Guide I N S T R U C T I O N S This Folio Case is a stylish, lightweight case for protecting your Tablet PC. Elastic Strap Pen Holder Card Holders/ Easel Stops Figure

Plus en détail

Tex: The book of which I'm the author is an historical novel.

Tex: The book of which I'm the author is an historical novel. page: pror3 1. dont, où, lequel 2. ce dont, ce + preposition + quoi A relative pronoun introduces a clause that explains or describes a previously mentioned noun. In instances where the relative pronoun

Plus en détail

THE SUBJUNCTIVE MOOD. Twenty-nineth lesson Vingt-neuvième leçon

THE SUBJUNCTIVE MOOD. Twenty-nineth lesson Vingt-neuvième leçon THE SUBJUNCTIVE MOOD Twenty-nineth lesson Vingt-neuvième leçon SOMMAIRE 1) Definition 2) Uses 2.1) Common expressions of doubt 2.2) Common expressions of necessity 2.3) Common expressions of desirability

Plus en détail

Les Portfolios et Moodle Petit inventaire

Les Portfolios et Moodle Petit inventaire Les Portfolios et Moodle Petit inventaire Jean.Fruitete@univ-nantes.fr Sommaire Les Portfolios et Moodle Petit inventaire... 1 Introduction... 1 Contexte... 1 Des portfolios utilisés dans la communauté

Plus en détail

PRESENT SIMPLE PRESENT PROGRESSIF

PRESENT SIMPLE PRESENT PROGRESSIF PRESENT SIMPLE PRESENT PROGRESSIF 1 Exercice 1 : Conjuguez les verbes suivants au présent simple et au Verbe Pronom Présent simple Présent Progressif Exemple : To fall They fall They are falling To think

Plus en détail

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations CANADA CONSOLIDATION CODIFICATION Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations Règlement sur les ordonnances alimentaires et les dispositions alimentaires (banques

Plus en détail

Guide d installation Deco Drain inc. DD200

Guide d installation Deco Drain inc. DD200 Guide d installation Deco Drain inc. DD200 Pour plus informations et pour télécharger les guides d installation en couleur, visitez notre site web. www.decodrain.com Soutien technique : Composez le : 514-946-8901

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009 Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009 Pôle de Calcul Intensif pour la mer, 11 Decembre 2009 CAPARMOR 2 La configuration actuelle Les conditions d'accès à distance règles d'exploitation

Plus en détail

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Note: This manual describes the appearance of the USB Stick, as well as the

Plus en détail

AND / ET USER GUIDE UK HARDWIRED CONTROL PANEL UK GUIDE UTILISATEUR CENTRALE D ALARME FILAIRE F 496572 1

AND / ET USER GUIDE UK HARDWIRED CONTROL PANEL UK GUIDE UTILISATEUR CENTRALE D ALARME FILAIRE F 496572 1 AND / ET UK USER GUIDE HARDWIRED CONTROL PANEL UK F GUIDE UTILISATEUR CENTRALE D ALARME FILAIRE 496572 1 English UK Operator Controls and Displays On both control panel and remote keypad the LEDs display

Plus en détail

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D ICM STUDENT MANUAL French 2 JIC-FRE2.2V-12 Module Change Management and Media Research Study Year 2 1. Course overview Books: Français.com, niveau intermédiaire, livre d élève+ dvd- rom, 2ième édition,

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE PRETTYSLIDER MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des problèmes...

Plus en détail

Present Tense (1) masc = masculine fem = feminine sing = singular pl = plural

Present Tense (1) masc = masculine fem = feminine sing = singular pl = plural Present Tense (1) Each of the questions asks you to make a sentence in the present tense. In each case, you need to pick an appropriate subject ("je", tu" etc), pick the correct verb from the list to the

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE FOOTERCUSTOM MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des problèmes...

Plus en détail

PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM

PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM DEVENEZ UN RINOXPERT DÈS AUJOURD HUI! BECOME A RINOXPERT NOW OPTIMISER VOS VENTES INCREASE YOUR SALES VISIBILITÉ & AVANTAGES VISIBILITY

Plus en détail

THE FRENCH EXPERIENCE 1

THE FRENCH EXPERIENCE 1 Euro Worksheet 1 Euro quiz Here s a quiz to help you get used to euro prices in France. Choose a or b to complete each item. 1 Le prix d une baguette de pain est de: a 0,66 euros. b 6,60 euros. 2 Une chambre

Plus en détail

Vanilla : Virtual Box

Vanilla : Virtual Box Vanilla : Virtual Box Installation Guide for Virtual Box appliance Guide d'installation de l'application VirtualBox Vanilla Charles Martin et Patrick Beaucamp BPM Conseil Contact : charles.martin@bpm-conseil.com,

Plus en détail

PARIS ROISSY CHARLES DE GAULLE

PARIS ROISSY CHARLES DE GAULLE GPS 2 34 1 E 49 0 46 N GPS* 2 56 56 E 49 0 12 N Votre contact / Your contact: et / and: Accueil : Cabines téléphoniques publiques Reception: Public telephone kiosks Navette Shuttle AÉROPORT DE TT CAR TRANSIT

Plus en détail

Eléments de statistique

Eléments de statistique Eléments de statistique L. Wehenkel Cours du 9/12/2014 Méthodes multivariées; applications & recherche Quelques méthodes d analyse multivariée NB: illustration sur base de la BD résultats de probas en

Plus en détail

Paxton. ins-20605. Net2 desktop reader USB

Paxton. ins-20605. Net2 desktop reader USB Paxton ins-20605 Net2 desktop reader USB 1 3 2 4 1 2 Desktop Reader The desktop reader is designed to sit next to the PC. It is used for adding tokens to a Net2 system and also for identifying lost cards.

Plus en détail

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser le Bureau a distance.doc Préambule Voici quelques

Plus en détail

SERVEUR DÉDIÉ DOCUMENTATION

SERVEUR DÉDIÉ DOCUMENTATION SERVEUR DÉDIÉ DOCUMENTATION Release 5.0.6.0 19 Juillet 2013 Copyright 2013 GIANTS Software GmbH, All Rights Reserved. 1/9 CHANGE LOG Correction de bug divers (5.0.6.0) Ajout d une option de relance automatique

Plus en détail

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Note: This manual describes the appearance of the USB Stick, as well as the

Plus en détail

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 COUNCIL OF THE EUROPEAN UNION Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 WORKING DOCUMENT from : Presidency to : delegations No prev. doc.: 12621/08 PI 44 Subject : Revised draft

Plus en détail

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme Année universitaire / Academic Year: 2013 2014 A REMPLIR

Plus en détail

IDENTITÉ DE L ÉTUDIANT / APPLICANT INFORMATION

IDENTITÉ DE L ÉTUDIANT / APPLICANT INFORMATION vice Direction des Partenariats Internationaux Pôle Mobilités Prrogrramme de bourrses Intterrnattiionalles en Mastterr (MIEM) Intterrnattiionall Mastterr Schollarrshiip Prrogrramme Sorrbonne Parriis Ciitté

Plus en détail