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 (Seite 2)

Leser: 4


<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
pfuschi
 2004-12-20 12:45
#50059 #50059
User since
2004-03-31
198 Artikel
BenutzerIn
[default_avatar]
Servus,
was mich an dem Reuse stört ist, dass man das Layout in Perl erstellen muss. Ist als Backend nicht schlecht, aber dann muss man ne eigene Template Sprache erstellen.
Das ist der Grund warum ich PDF::Template bevorzuge, weil man eben alles in XML macht. Man hat eben die schöne Trennung in der XXX::Template Manier.

Allerdings war das alles nur Recherche und ist noch nie richtig angwendet worden, also d.h. ich kanne jetzt noch nciht sagen, dass das eine oder andere stabil/unausgereift/*wasauchimmer* ist weil ich damit noch nicht Produktiv sein musste *G*

greetz & fetten Segen
manu
P.s.: Muss jetzt mal endlich eine Zusammenfassung des FISP Projektes schreiben und hier her umziehen.. komm einach net da dazu
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 15:49
#50060 #50060
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Ja, genau soetwas habe ich vor.
Ich weiß zwar nicht wie ein modul mache, aber eine nette Zusammenfassung meiner Arbeit werde ich schon machen.
Habs ziemlich von oben nach unten gemacht, nix schön in sub&acute;s zerlegt, ist also um es hier als toll zu präsentieren nicht so gut, aber die ganze Suche usw. entfällt für den nächsten.

Die Rechnung ist jetzt ganz nett geworden. Besonders das mit dem PDF Briefpapier gefällt mir sehr gut.

Hab noch bissi Sorgen mit den Unterstreichungen, hab sehr Summen.

Summe je Monat...
Summe für Abrechnungszeitraum...
Rabatt...
rabattierte Summe...
MWSt...
zu zahlen...

Ich bereite das mal nett auf. Gibt es hier was, wo ich nen zip hinlegen kann, mit briefpapier.pdf und pdfrechnung.pl vielleicht noch nen Configfile für doofe oder so.

Ich habe meine Rechnungsdaten sowieso in der Datenbank, deshalb ist mir die XML Sache egal. Ich will nur meinem Kunden eine Rechnung schicken ohne zu arbeiten.
Und 0,07 Sekunden um eine Rechnung zu erstellen finde ich gut. Stellt euch vor das Script würde 24h am Tag laufen - was man da für Geld verdienen könnte :-)
renee
 2004-12-20 17:52
#50061 #50061
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=root,20.12.2004, 14:49]Ja, genau soetwas habe ich vor.
Ich weiß zwar nicht wie ein modul mache, [...][/quote]
Hoffentlich bald wieder im Wiki zu finden (da open-ionix das Thema gelöscht hat). Lang lebe Google-Cache ;)

Quote
Jetzt erklaere ich mal, wie man ein vernuenftiges Modul (ohne XS, nur Perl) namens Strat.pm schreibt (das man auch auf CPAN oder so veroeffentlichen koennte)

1. Modulrahmen erstellen:


C:\module>h2xs -XA -n Strat
Writing Strat/Strat.pm
Writing Strat/Makefile.PL
Writing Strat/README
Writing Strat/test.pl
Writing Strat/Changes
Writing Strat/MANIFEST
[font]

Hat im Verzeichnis ./Strat einige Dateien erstellt. Wechseln wir mal dort rein ( cd Strat).

2. Funktionen oder Methoden einbauen
Jetzt hat man einen Rahmen, in den man sein Zeug einbauen kann. (Achtung: Bei Perl.5.6.1 wird in dem Modul our verwendet, ein Befehl, den es bei perl5.0 noch nicht gibt).
Fuegen wir also mal an die Stelle in der Datei Strat.pm, an der steht
# Preloaded methods go here
das folgende ein:


sub Printh*llo {
my ($param) = @_;
print "h*llo, $param\n";
}



Dann loeschen wir oben die Liste mit den Exporttags, sodass dort steht:


our %EXPORT_TAGS = ();
our @EXPORT = qw();




(Wir wollen doch nicht den Namensraum des Hauptprogrammes verunreinigen, oder?)

Dann schauen wir ganz nach unten nach dem Punkt , und wir sehen dort ein Grundgeruest fuer die Moduldokumentation. Dort fuegen wir die Dokumentation zu diesem Modul ein (bitte auf Englisch, damit das Modul auch international verwendet werden kann, ok?)
Speichern nicht vergessen.

3. Testen, ob das Modul korrekt ist:



C:\module\Strat>perl -e "use Strat; &Strat::Printh*llo('strat')"
h*llo, strat


4. Uebersetzen und testen


C:\module\Strat>perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Strat

C:\module\Strat>nmake

Microsoft ® Program Maintenance Utility Version 1.50
Copyright © Microsoft Corp 1988-94. All rights reserved.

cp Strat.pm blib\lib\Strat.pm

C:\module\Strat>nmake test

Microsoft ® Program Maintenance Utility Version 1.50
Copyright © Microsoft Corp 1988-94. All rights reserved.

C:\Perl\bin\perl.exe -Iblib\arch -Iblib\lib -IC:\Perl\lib -IC:\Perl\lib test.
pl
1..1
ok 1


5. zu einem tar-Archiv zusammenpacken

C:\module\Strat>nmake tardist

Microsoft ® Program Maintenance Utility Version 1.50
Copyright © Microsoft Corp 1988-94. All rights reserved.

C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf
Strat-0.01
C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Manifest=manicop
y,maniread -e "manicopy(maniread(),'Strat-0.01', 'best');"
mkdir Strat-0.01
tar cvf Strat-0.01.tar Strat-0.01
Strat-0.01/
Strat-0.01/Changes
Strat-0.01/Makefile.PL
Strat-0.01/MANIFEST
Strat-0.01/README
Strat-0.01/Strat.pm
Strat-0.01/test.pl
C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf
Strat-0.01
gzip --best Strat-0.01.tar




Jetzt hat man eine Datei namens Strat-0.01.tar, die man wie andere Module von CPAN installieren kann.

Unter Unix verwendet man anstelle von nmake einfach make...

So baut man ein Modul
Gruss, perl -le "s==*F=e=>y~\*martinF~stronat~=>s~[^\w]~~g=>chop,print"
http://www.fabiani.net/
\n\n

<!--EDIT|renee|1103558064-->
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/
root
 2004-12-20 18:21
#50062 #50062
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
ach strat, bei dir klingt das alles immer so einfach!
Strat
 2004-12-20 18:57
#50063 #50063
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
das isses ja auch ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2004-12-20 19:49
#50064 #50064
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es ist definitiv so einfach. So erstelle ich mir jedes meiner Module...
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/
Crian
 2004-12-21 10:41
#50065 #50065
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Das gilt ja nur für Module für CPAN. Normale Module machen doch viel weniger Arbeit...
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
renee
 2004-12-21 11:36
#50066 #50066
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was sind "normale" Module? Warum sind die einfacher?

Die nach dem oben genannten Beispiel erstellten Module sind einfach nur CPAN konform. Das ist ja keine besondere Form von Modulen. Und wenn man mal ein tolles Modul schreibt, das man vielleicht auch mal auf CPAN stellen will, dann hat man es gleich richtig gemacht...
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/
Crian
 2004-12-21 11:41
#50067 #50067
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich fiinde die ganzen zusätzlichen Dateien etc. für normale Module unnütz. Ein "normales" Modul besteht für mich aus einer Datei. Da steht oben

Code: (dl )
1
2
package Was::Weiß:Ich;
use base qw/Blubb/;


und unten

Code: (dl )
1;


und das wars.
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
renee
 2004-12-21 12:29
#50068 #50068
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
h2xs schreibt Dir aber schon einen Rumpf, was ich sehr angenehm finde. Dadurch werden auch so Fehler wie das 1; am Ende zu vergessen vermieden. Aber TIMTOWTDI
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/
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



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