JS ImageCropper UI und Firefox 3.5

11. September 2009

Mit Schrecken habe ich festgestellt, dass der JavaScript ImageCropper von David Spurr im Firefox 3.5 nicht mehr funktionierte. Zum Glück hat schon jemand in der Bug Report Liste diesen Fehler beanstandet und zweifellos wird es demnächst ein Bugfix geben. Das Problem liegt einfach daran, dass das stylesheet nicht mehr dynamisch geladen wird.

Deshalb ist eine mögliche Lösung des Problems relativ einfach. Auf der Seite, wo man den cropper code inkludiert, fügt man einfach das Stylesheet hinzu:

  1. <script type="text/javascript" src="scripts/cropper/cropper.js" language="javascript"></script>
  2. <span style="color: #ff0000;"><link rel="stylesheet" type="text/css" href="scripts/cropper/cropper.css" /></span>

Und schon funktioniert das Script wieder einwandfrei. :)

PDF Formular über PHP ausfüllen mit FDF

07. September 2009

Weil ich es immer wieder brauche, hier mal ne kurze Anleitung wie es geht, PDF Formulare mit PHP auszufüllen. Man kann die Anleitung auch ncohmal genauer durchlesen unter http://koivi.com/fill-pdf-form-fields/

1. Formular erstellen (oder woher die Daten auch sonst kommen mögen)

Wie man ein HTML Formular erstellt, sollte allgemein bekannt sein.

2.  PDF Vorlage erstellen

Man erstelle sein PDF mit Adobe Acrobat. Am besten nimmt man sich das unausgefüllte Formular so wie’s im PDF aussehen soll als “page” des PDFs das man erstellt. In die Seite fügt man dann die Formularfelder ein, die man haben möchte (z.b. Tools -> Advanced Editing -> Text Field Tool) und gibt ihnen aussagekräftige Namen.

Formular im Acrobat erstellen

3. Script

Man fügt die Funktion createFDF seinem Dokument hinzu:

  1. function createFDF($file,$info){
  2. $data="%FDF-1.2\n%âãÏÓ\n1 0 obj\n<< \n/FDF << /Fields [ ";
  3. foreach($info as $field => $val){
  4. if(is_array($val)){
  5. $data.='<</T('.$field.')/V[';
  6. foreach($val as $opt)
  7. $data.='('.trim($opt).')';
  8. $data.=']>>';
  9. }else{
  10. $data.='<</T('.$field.')/V('.trim($val).')>>';
  11. }
  12. }
  13. $data.="] \n/F (".$file.") /ID [ <".md5(time()).">\n] >>".
  14. " \n>> \nendobj\ntrailer\n".
  15. "<<\n/Root 1 0 R \n\n>>\n%%EOF\n";
  16. return $data;
  17. }

4. Aufruf

Dann übergibt man am einfachsten die POST Daten (dabei müssen allerdings die Felder des HTML Formulars so heißen wie die Felder des PDF Formulars):

  1. $pdf_file='http://'.$_SERVER['HTTP_HOST'].'/media/vorlage.pdf';
  2. $fdf_file=dirname(__FILE__).'/../media/posted.fdf';
  3. $fdf=createFDF($pdf_file,$_POST);
  4. // Create a file for later use
  5. if($fp=fopen($fdf_file,'w')){
  6. fwrite($fp,$fdf,strlen($fdf));
  7. $CREATED=TRUE;
  8. }else{
  9. echo 'Unable to create file: '.$fdf_file;
  10. $CREATED=FALSE;
  11. }
  12. fclose($fp);
  13. return "posted.fdf";

Nur ganz kurz – kaufmännisches UND in Flash Feldern

02. September 2009

Nachdem Flash mit einem ‘&’ ja eigentlich Variablen erkennt, muss man das n bißchen anders machen:

Tom+%26+Jerry => Tom&Jerry

Also einfach die & durch +%26+ ersetzen!