Konvertieren

  • Drupal: PDF Vorschau als jpg, pdf2jpg

    Immer schon wollte ich auf Webseiten pdf's als Bilder darstellen. Sinnvolle Hilfe dazu zu finden ist meiner Meinung nach eher schwierig. Für eine aktuelle Drupal-Installation wollte ich nun endlich mal einen Schritt weitergehen und meine Wünsche in etwas Handfestes umwandeln. Im Drupal CMS sollten sämtliche PDFs auch als jpg/png automatisch zur Verfügung stehen. Dazu habe ich ein neues Modul geschrieben, ich habs Preview genannt. Ich stellte mir vor, dass es in Zukunft verschiedene Dateitypen als Preview erstellen sollte, nicht nur PDFs. Zurzeit bin ich dran, das Modul so umzugestalten, damit ich es auf drupal.org contributen kann. Auf meiner vorhanden Drupalinstallation läuft es aber breits wie geschmiert. Ich werde bei Gelegnheit mehr Details dazu posten (wird auch vom Interesse von Euch abhängen...).Mein Fazit bis jetzt: Es ist alles was ich mir je gewünscht habe. Gerade grosse PDFs (bei uns handelt es sich um Baupläne, >90MB pro Seite) müssen so nicht heruntergeladen werden sondern werden innert Kürze in der "Vorschau" angezeigt.

    screenshoots: 
    screenshot.9.png
  • PHP: Dateien und Ordner rekursive Umbenennen

    Ein altbekanntes Problem der deutschen Sprache im Zusammenhang mit Linux-Dateinamen: Ich habe von meinem Windows System Dateien per FTP hochgeladen und die eingekaufte PHP Anwendung kann nicht richtig mit den Umlauten im Dateinamen umgehen (oder anderen Sonderzeichen, welche Windows im Dateinamen erlaubt). Also lass ich per PHP Script einen ganzen Verzeichnisbaum rekursive durchgehen und alle Umlaute/Sonderzeichen umwandeln. Das geht mit folgendem Snippet:

    <?php
      
    // Directory to scan (Full System Path)
      
    $dir './';
      
      function 
    cleanName($name)
      {
          
    $name str_replace('ä''ae'$name);
          
    $name str_replace('ö''oe'$name);
          
    $name str_replace('ü''ue'$name);
          
    $name str_replace('Ä''Ae'$name);
          
    $name str_replace('Ö''Oe'$name);
          
    $name str_replace('Ü''Ue'$name);
          return 
    $name;
      }
      
      function 
    getDirectory($path '.'$ignore '')
      {
          
    $dirTree = array();
          
    $dirTreeTemp = array();
          
    $ignore[] = '.';
          
    $ignore[] = '..';
          
          
    $dh = @opendir($path);
          
          while (
    false !== ($file readdir($dh))) {
              if (!
    in_array($file$ignore)) {
                  if (!
    is_dir("$path/$file")) {
                      
    $dirTree["$path"][] = $file;
                  } else {
                      
    $dirTree["$path"] = array();
                      
    $dirTreeTemp getDirectory("$path/$file"$ignore);
                      if (
    is_array($dirTreeTemp))
                          
    $dirTree array_merge($dirTree$dirTreeTemp);
                  }
              }
          }
          
    closedir($dh);
          return 
    $dirTree;
      }
      
    // Get all Files and Folders in an Array
      
    $dirTree getDirectory($dir$ignore);
      
    $folders = array();
      foreach (
    $dirTree as $path => $files) {
          foreach (
    $files as $name) {
              if (
    preg_match('/[äöüÄÖÜ]/'$name)) {
                  echo 
    'rename(' $path '/' $name ', ' cleanName($name) . ');<br></br>';
                  
    rename($path '/' $name$path '/' cleanName($name));
              }
          }
          
    $folders[substr_count($path'/')][] = $path;
      }
      
    // Sortiert Ordner nach "Tiefe"
      
    krsort($folders);
      
      
    // Benennt alle Ordner mit Umlauten um
      
    foreach ($folders as $paths_by_debth) {
          foreach (
    $paths_by_debth as $path) {
              
    $pos strrpos($path'/');
              
    $folder substr($path$pos);
              if (
    preg_match('/[äöüÄÖÜ]/'$folder)) {
                  echo 
    'rename(' $path ',' substr($path0$pos) . cleanName($folder) . ');<br></br>';
                  
    rename($pathsubstr($name0$pos) . cleanName($folder));
              }
          }
      }
    ?> 
    <pre> 
       <?php
      
    // Gibt den ganzen Ordner Baum aus
      //print_r($dirTree); 
      ?> 
    </pre>

    Das Programm wurde absichtlich ausführlich geschrieben, um die Einzelnen Schritte klar und verständlich darzustellen. Natürlich könnte man das ganze auch abgekürzter schreiben. Die Funktion cleanName kann beliebig erweitert werden. Hier könnte man auch via preg_replace bestimmte Dateinamen nach einem Muster umbenennen.

  • Altpapier Konvertierer

    Konvertierung einmal analog. Diese Maschine "frisst" Altpapier und hinten raus kommt - Klopapier. 40 Blatt reichen für eine Rolle und das dauert gerade mal 30 Minuten. Die Maschine läuft voll automatisch und entfernt soweit ich das verstanden habe auch gerade Fremdgegenstände (man stelle sich ansonsten vor, man hat noch Heftklammern im Papier und will sich den Allerwerteste sauber machen...). Auch als Papierschredder dient dies Maschine. Am Besten selber einmal anschauen:
    http://www.crunchgear.com/2010/01/29/videos-machine-turns-office-paper-into-toilet-paper/
     

    screenshoots: 
  • Online Bilder verlustfrei komprimieren (png compressor)

    Eine schnelle Webseite ist das A und O eine Webprogrammierers. Wieder einmal gibte stausende von Programmen, wobei vieles Rammsch ist. Ein tolles Tool habe ich wieder einmal direkt online gefunden. Es komprimiert PNG Bilder ohne das es dabei Verluste gibt, und das alles Online!
    http://www.gracepointafterfive.com/punypng/
    Bilder Hochladen und wieder runterladen, als komprimierte png.
    Einschränkungen:
     

    •  PNG, JPG, GIF, Animated GIF
    • max. 350KB pro Bild

    Das Resultat ist erstaunlich gut!
     

    screenshoots: 
  • PDF nach JPG umwandeln, PDF2JPG

    Ich bin immer wieder vor das Problem gestellt, seiten von PDFs als Bild zu haben, so ein pdf2jpg Ding. Ein Screenshot der entsprechenden PDF-Seite zu machen, bringt nur unbefriedigende Resultate. Programme kosten oft viel Geld, oder viel Platz.

    Mit dem PDF-XChange Viewer geht es gratis und man muss nicht einmal etwas installieren, da das Programm Portabel ist. Man kann es also auch einfach auf einem USB-Stick mitführen, und jederzeit verwenden.

    Um aus einem PDF in ein JPG umzuwandeln geht man folgendermassen vor:

    1. PDF-XChange Viewer herunterladen
    2. Aus zip-Datei extrahieren und in einen beliebigen Ordner verschieben
    3. Programm starten (PDFXCview.exe)
    4. PDF öffnen
    5. File->Export->Export to Image
    6. dann kommt so eine Art Drucker-Dialog, wo man wie beim Drucken auswählt, was man als von PDF in Bild exportieren will
    7. wichtig sind vor allem "Image Type" und "File Name". Beim ersten stellen wir JPEG ein, beim zweiten können wir den Dateinamen angeben
    8. Macros bietet die Möglichkeit dem Programm zu sagen, wie er die Dateien benennen soll. Da das PDF mehrere Seiten enthalten kann, ein Bild jedoch immer bloss eine, kann man sagen, wie er die Dateien nummerieren soll.
    9. am Schlusss auf Export-Knopf drücken
    10. in "Destination Folder" gehen und die Exportierten JPGs anschauen!
    11. FERTIG!

    Homepage des Herstellers: Link

    Download: Link

Inhalt abgleichen