Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10305[/thread]

Vorschau für PDF ?

Leser: 1


<< >> 5 Einträge, 1 Seite
Froschpopo
 2007-09-02 22:52
#99001 #99001
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich würde gern eine Vorschau für PDF-Dokumente generieren, am besten on the fly.

Soll heißen: Das Dokument befindet sich in einem String.
Nun möchte ich ein kleines 130x130 Pixel großes Thumbail von diesem PDF generieren.

Ich hab mal gelesen, dass sowas mit PerlMagick (ImageMagick) möglich sein soll.
pktm
 2007-09-02 23:22
#99003 #99003
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Naja, vielleicht mit CPAN: Image-Magick-Thumbnail-PDF?
http://www.intergastro-service.de (mein erstes CMS :) )
Froschpopo
 2007-09-03 00:17
#99005 #99005
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
das hatte ich auch schon gefunden. Ich kann dort aber nicht, wie gewollt und oben beschrieben, die Daten per String übergeben.
Nochmal zur Wiederholung: Die Daten kommen aus einer Datenbank, nicht aus dem Dateisystem.
Ich habe das komplette PDF in einem $string
renee
 2007-09-03 10:34
#99012 #99012
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum schreibst Du nicht ne temporäre Datei, machst den Thumbnail und löschst die Datei wieder? Für so etwas gibt es ja CPAN:File::Temp.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
heihon
 2007-09-03 18:17
#99028 #99028
User since
2006-09-15
15 Artikel
BenutzerIn
[default_avatar]
In PerlMagick gibt es extra BlobToImage und ImageToBlob.

Für die Konvertierung von PDF-Dateien muß man außer ImageMagick auch noch GhostScript installiert haben.

Beispiel:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/local/bin/perl -w
use strict;
use warnings;

use Image::Magick;

sub slurp {
   my ($path, $ref) = @_;
   my $fh;
   unless(open $fh, "<", $path) {
      die "Fehler beim Öffnen von '$path': $^E";
   }
   
   binmode $fh;
   local $/;
   ${$ref} = <$fh>;
   
   close $fh;
}

# main
my $pdffile = "test.pdf";
my $string;
slurp($pdffile, \$string);

my $im = Image::Magick->new;
my $err;

# PDF einlesen
# PostScript-Auflösung etc. vorher (sic!) setzen
$im->Set(
   density => 144,
   depth   => 8,
   units   => 'PixelsPerInch',
   colorspace  => 'RGB',
);
# PDF einlesen (aus Datei)
#$err = $im->Read($pdffile);

# PDF einlesen (aus String)
$err = $im->BlobToImage($string);

# Thumbnail z.B. JPEG erstellen
my $tn = $im->Clone;

# auf die gewünschte Größe herunterrechnen
$err = $tn->Resize(
   geometry => '130x130',
);

# Breite und Höhe ermitteln
my $width   = $tn->Get('columns');
my $height  = $tn->Get('height');
print "width $width; height $height\n";

$tn->Set(
   quality => 75,
   magick  => 'JPG',
);

my $jpgfile = "test.jpg";

# JPEG schreiben
$tn->Write($jpgfile);

# JPEG als String
my $blob = $tn->ImageToBlob;


Du mußt natürlich nicht die PDF-Datei einlesen, du hast den String ja schon aus der Datenbank.
<< >> 5 Einträge, 1 Seite



View all threads created 2007-09-02 22:52.