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

Rechnung als PDF in Perl erzeugen

Leser: 4


<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
root
 2004-12-16 22:59
#50049 #50049
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Also ich habe gewühlt und gesucht! Gefunden und gelesen und weder gesucht!

Ich möchte gerne meine Rechnungen als PDF erstellen.
Ich habe ein PDF, sozusagen mein Briefpapier, da muss nur ein Betreff, ein Datum und eine Tabelle rein. Darunter vielleicht noch ein netter Satz.

Ich bekomme nicht mal den richtigen Ansatz.
HTML daraus PS darauf PDF???
Hab mehrere Module gefunden, aber kein schönes Beispiel.

PDF::Template
PDF::API (?)
Nen haufen Mist dazu.

Irgendwann vor dem Crash habe ich mich hier mal mit jemandem geschrieben, der mit PDF::Template gearbeitet hat und es gut fand. Leider finde ich dazu nicht besonders viel :-(

Hilfe! Das gibt doch nen haufen Leute die das brauchen können, dass werden wir doch wohl hinbekommen oder finden!
pfuschi
 2004-12-17 00:23
#50050 #50050
User since
2004-03-31
198 Artikel
BenutzerIn
[default_avatar]
Servus,
also ich glaub das war ich, und ja die Artikel sind leide rnicht mehr da... Grumel.
Registrier dich bei http://www.fisp.de da hab ich ne Menge dazu geschrieben.

Lies mal folgenden Thread vielleicht hilft der ja weiter.
http://board.perl-community.de/cgi-bin....f#idx15
Wenn es um vorhandene PDF Vorlagen im äh... PDF Format geht *G* dann ist PDF::Reuse glaub das richtige.

Bei PDF::Template wird die Vorlage in einem XML Format erstellt.

greetz & fetten Segen
manu
PCE - Editor für Perl in Perl
Bookzilla.de - Mit jedem Kauf OpenSource unterstützen
"I know I can't hold the hate inside my mind
cause what consumes your thoughts controls your life"
- Creed
ptk
 2004-12-17 11:27
#50051 #50051
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
HTML -> PS -> PDF habe ich auch schon gemacht. Sieh dir mal die Programme html2ps und ps2pdf (letzteres bei Ghostscript dabei) an.
root
 2004-12-19 00:21
#50052 #50052
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Hi!

Also dein fisp ist echt cool! Ich denke das Reuse muss gehen. Leider scheitere ich schon am installieren! Mann mann mann! Es läuft alles gut durch. make test geht bis ok 6, so wie es sein soll.
Danach kann Perl das Modul aber nicht finden???
Code: (dl )
1
2
3
4
5
6
7
8
9
make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..6
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6


dann:

Code: (dl )
1
2
3
perl -MPDF::Reuse -e 'print'
Can't locate PDF/Reuse.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i586-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl .).
BEGIN failed--compilation aborted.


Warum?
Hast Du was gefunden wie ich mit dem Reuse eine Tabelle machen kann, so mit Linienstärke und so?

Dankeschön!!!

Mit HTML->PS->PDF kann ich nicht viel anfangen, weil ich ein PDF als Briefpapier habe und das kommt von meinen Designern und muss unangetastet bleiben... Außerdem klingt das irgendwie nicht nach einem schönen Weg?! Trotzdem vielen Dank!\n\n

<!--EDIT|root|1103409504-->
esskar
 2004-12-19 01:03
#50053 #50053
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch mal noch ein

Code: (dl )
make install
root
 2004-12-19 01:06
#50054 #50054
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Darf ich dich Gott nennen?

Mein Spielzeug geht wieder :-)

Nun spiele ich mal ein wenig!

Jemand ne Idee zur Tabelle?\n\n

<!--EDIT|root|1103413372-->
root
 2004-12-19 14:02
#50055 #50055
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Also bis jetzt klappt es ganz gut mit dem PDF::Wiederverwenden :-)

Code: (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/perl -w

use strict;
use CGI::Carp 'fatalsToBrowser';
use Time::HiRes qw(gettimeofday tv_interval usleep);
use PDF::Reuse;

my $stoppuhr = [gettimeofday];

print "Content-type: text/html\n\n";
print "Ich schreibe eine PDF-Rechnung!<br>";

# Vorlage laden
prFile('../customercare/rechnungen/neu.pdf');

# Zielfile bestimmen
prForm( { file => 'rechungstemplate.pdf',
first => 1,
last => 1 });

my $abs = "knoefler.com, Tiroler Str. 101, 60385 Frankfurt\n";
my @adressfeld = ('erfolgreiche-firma.de',
'z.H. Name Nachname',
'Kundenweg 1',
'60325 Frankofurto');
my $betreff = "Rechnung zweites Halbjahr 2004";
my $rechnungsnummer = "Rechnungsnummer: 100020042";
my $datum = "19.12.2004";

my @gruss = ("Wir bedanken uns für Ihren Auftrag.",
"Bitte überweisen Sie den zu zahlenden Betrag innerhalb von 10 Tagen.",
"Diese Rechnung wurde automatisch erstellt und ist auch ohne Unterschrift gültig."
);

### ADRESSEFELD ###
my $xabstand = 60;
my $yabstand = 680;
my $textsize = 10;
#------------------
my $zeilenabstand = 3;
prFontSize($textsize-4);
prText($xabstand, $yabstand, $abs);
$yabstand -= $zeilenabstand*3;
prFontSize($textsize);
my $cnt=1;
foreach my $zeile (@adressfeld){
my $y =$yabstand - ($textsize+$zeilenabstand)*$cnt;
print "schreibe Adresse '$zeile' mit x:$xabstand y:$y <br>\n";
prText($xabstand , $y, $zeile);
$cnt++;
}

### BETREFF ###
prFontSize($textsize);
prText($xabstand, 555, $betreff);

### R-NUMMER ###
prFontSize($textsize);
prText($xabstand, 490, $rechnungsnummer);

### DATUM ###
prFontSize($textsize);
prText(420, 480, $datum);

### GRUSS ###
$xabstand = 60;
$yabstand = 200;
$textsize = 10;
$zeilenabstand = 3;
#------------------
prFontSize($textsize);
$cnt=1;
foreach my $zeile (@gruss){
my $y =$yabstand - ($textsize+$zeilenabstand)*$cnt;
print "schreibe Gruss '$zeile' mit x:$xabstand y:$y <br>\n";
prText($xabstand , $y, $zeile);
$cnt++;
}

my $prozesszeit = tv_interval($stoppuhr, [gettimeofday]);
print "Der Spass dauerte ".$prozesszeit."Sekunden<br>\n";


prEnd();
exit(1);


Jetzt fehlt nur noch die Tabelle :-(
pfuschi
 2004-12-20 02:36
#50056 #50056
User since
2004-03-31
198 Artikel
BenutzerIn
[default_avatar]
Servus,
du kennst CPAN:PDF::Reuse::Tutorial
Folgendes Beispiel ist daraus:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
         my $string = "q\n";         # save graphic state
         $string   .= "4 w\n";       # make line width 4 pixels
         $string   .= "10 600 m\n";  # move to x=10 y=600, starts a new subpath
         $string   .= "40 600 l\n";  # a line to x=40 y=600 ( a horizontal line)
         $string   .= "10 580 m\n";   
         $string   .= "40 580 l\n";   
         $string   .= "10 510 m\n";   
         $string   .= "40 510 l\n";
         $string   .= "s\n";         # close the path and stroke
         $string   .= "Q\n";         # restore graphic state
         prAdd($string);             # the string is added to the content stream

D.h. du kannst im String richtige Befehle absetzen...
So wie ich das verstehe ist das RAW PDF was man da schreibt.
greetz & fetten Segen
manu
PCE - Editor für Perl in Perl
Bookzilla.de - Mit jedem Kauf OpenSource unterstützen
"I know I can't hold the hate inside my mind
cause what consumes your thoughts controls your life"
- Creed
root
 2004-12-20 02:51
#50057 #50057
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Als ich die Mail mit der Beitragsnachricht gesehen habe, hab ich schon Angst bekommen.
"Tabelle ist ganz leicht, geht so..." - Hätte ich nicht mehr gebrauchen können :-)
Hab mich gerade fertig durchgewühlt und sogar eine Rechtsbündigkeit von "Zellen" hinbekommen.

Das einzige was mir noch fehlte waren Linien.

Fett! Das nenne ich timing!

Morgen male ich die Linien!

Großes Danke!
Crian
 2004-12-20 11:08
#50058 #50058
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
[quote=root,20.12.2004, 01:51]Hab mich gerade fertig durchgewühlt und sogar eine Rechtsbündigkeit von "Zellen" hinbekommen.[/quote]
Und jetzt möchtest Du uns ein Modul daraus basteln? Klasse - her damit ;) :D
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2004-12-16 22:59.