Thread PDF::API2 Serienpdf erzeugen (8 answers)
Opened by provisoft at 2017-07-07 11:22

Linuxer
 2017-07-07 22:08
#186802 #186802
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
In Deinen Schnippseln stecken so viele Unbekannte, dass da nur sehr schwer zu raten ist.

Gerade die undurchsichtige Art und Weise Variablen querbeet zu benutzen, macht sowas nicht wirklich wartungsfreundlicher.

Ich kann nur sagen, ein sehr einfaches Beispielskript, das ich mir gerade geschrieben habe, funktioniert jedenfalls. Mit einer Schleife kann ich mir drei PDF-Dokumente mit einfachem Text drucken ohne das eine Meldung kommt.

Die Vermutung liegt daher nahe, dass irgendwo eines Deiner Objekte verloren geht und beim zweiten Durchlauf somit nicht mehr verfügbar ist.
Das impliziert jedenfalls die Meldung:

Quote
Can't call method "val" on an undefined value at D:/Dev/Perl/perl/site/lib/PDF/API2/Resource.pm line 64.


Ich habe mal in das hier installierte Modul PDF::API2::Resource reingesehen; eine Methode val() wird da nur einmal in Zeile 67 aufgerufen (Zeile wahrscheinlich wegen unterschiedlicher Modulversion unterschiedlich) und zwar in der Methode name.

Code: (dl )
1
2
3
4
5
6
7
sub name {                                                                    
my $self = shift @_;
if (scalar @_ and defined $_[0]) {
$self->{'Name'} = PDFName($_[0]);
}
return $self->{'Name'}->val();
}



Wilde Vermutung:
Anscheinend ist beim zweiten Durchlauf kein Name gesetzt, wird aber dennoch aus irgendeinem Grund abgerufen.
Der Wert von $self->{'Name'} ist nicht definiert, und am Ende wird val darauf angewendet, was dann zu der Meldung führt.

Wo genau die Unstimmigkeit liegt, ist mangels Kenntnis des Codes nicht zu erraten.


So, genug geraten. Viel Glück.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread PDF::API2 Serienpdf erzeugen