Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Mahlzeit zusammen,

ich bin grad mal wieder ein kleines bisschen am verzweifeln. Ich habe eine Auftragsbearbeitung in PHP programmiert, wo man Kunden, Lieferanten und Artikel pflegen kann (so was ganz kleines)... und jetzt komm ich zu den Belegen (Rechnungen, Angebote, Lieferscheine usw.)

Codetechnisch sieht es an der Stelle so aus, dass ich alle Werte in PHP-Variablen habe, jetzt muss ich diese nur noch in einen Beleg (Word-Doc., PDF, sonstiges) erstellen und speichern.

Hab es schon versucht mit nem HTML welches ich als .doc speichere damit es mit Word geöffnet wird. Das funktionierte auch, jedoch war die Darstellung nicht wirklich einheitlich (Layout hat sich immer wieder verschoben). Docx war auch schon ne idee. Da habe ich ein entsprechendes Dokument mit Platzhaltern vorbereitet und entpackt. Via PHP wurden die Platzhalter ausgetauscht und das DOCX (zip) wieder gepackt und gespeichert. Das hat allerdings nicht richtig funktioniert.

Nun bin ich etwas ratlos wie sich so etwas überhaupt richtig umsetzen lässt ohne z.B. Crystal Reports o.ä. zu kaufen.

Habt ihr vllt. noch ne idee?

Thx 4 Answer

Grüßle,

Grinse ;-)

HHmmm... über die bin ich auch schonmal gestolpert, aber für sowas wie ich es brauch ist das schon recht umständlich und kompliziert. Und was ich da sowieso als Problem sehe ist die Fußzeile und die Liste der Positionen in einem solchen Beleg.

Jede Seite des Belegs soll eine Fußzeile enthalten, auf grund des variablen Inhalts weiß ich vorher nicht wie hoch diese sein wird. Selbiges trifft auf die Positionen zu. Im einen Beleg habe ich bspw. 3 Positionen und im nächsten 50. Ich muss also irgendwie herausfinden wie hoch meine einzelnen Elemente sind welche ins PDF hinzugefügt werden.

Daher bin ich auch auf die Idee mit dem vordefinierten Docx gekommen, das Layout wird in der Vorlage vorgegeben und alle weitere macht dann Word.

Vllt. gibts ja noch andere Ideen.

Grüßle,

Grinse ;-)

Cool.... Hab grad auf die FPDF seite geschaut und da sind mir direkt 2 Zeilen in Auge gefallen:

Automatic page break

Automatic line break and text justification

:-) Ich schau mir das mal genauer an...

Danke & Gruß

Grinse ;-)

HHhmmm.... hab grad mal das Tutorial durchgelesen. Es macht den Anschein, dass das funktionieren könnte... Ich geh erstmal eine rauchen, hol mir nen Kaffee und dann versuch ich mich daran mal... ;-)

Nochmals Danke an euch! Ich meld mich dann nochmal...

Grüßle,

Grinse ;-)

im zusammenhang mit FPDF könnte dich die erweiterung PDML von FPDF interessieren.

da musst du dir nur ein pseudo xml aus deinen daten generieren und das an die PDML klasse übergeben.

hat zwar auch einige nachteile, aber vielleicht hilft es ja für den anfang.

für kopf und fußzeile mußt du lediglich in einer abgeleiteten klasse die methoden Footer und Header überschreiben. mehrere logisch zusammenhängende zeilen sinnvoll umzubrechen ist allerdings n ziemlicher krampf.

logisch umbrechen stand nicht im FK... :-P

Ich lass das ding einfach umbrechen und gut ist... Ich versuch mich auch erstmal mit FPDF selbst... Ich denke ich bekomm das damit hin...

Danke & Gruß

Grinse ;-)

soo, ich bins nochmal mit meinem Schlusswort für heute...

Wenn man jemand in die selbe Situation kommt wie ich, dem Wünsche ich dass er diesen Thread findet, denn FPDF sieht im ersten Moment zwar extrem kompliziert aus, es ist aber aus meiner Sicht das kostenlose Non+Ultra wenn es um die Erstellung eines PDFs in PHP geht!

Und nochmals vielen Dank an alle!

Grüßle,

Grinse ;-)

Mahlzeit zusammen,

ich bin da jetzt grad doch noch auf ein Problem mit FPDF gestoßen:

Ich muss eine Tabelle mit den folgenden Spalten abbilden:

- Menge

- Name / Beschreibung

- Zeichnungsnr

- Stückpreis

- Gesamtpreis

Alle Felder außer 'Name / Beschreibung' müssen einzeilig sein (FPDF->Cell()). Das Feld 'Name / Beschreibung' jedoch muss Zeilenumbrüche enthalten können und auch automatisch umbrechen. Bisher habe ich hierzu nur die FPDF->MultiCell() gefunden. Diese jedoch hat einen automatischen LineBreak am Ende.

Hat dafür jemand ne Lösung? (Außer im PHP selbst den Inhalt umbrechen und entsprechend vielen FPDF->Cell() drunter zu hängen?

Danke & Gruß

Grinse ;-)

???

Du meinst ca. so:

$myPDF->Cell(15,0,$myPDF->MultiCell(0,5,'asdf'));

Mein Problem ist ich kann an der Stelle keine Cell nehmen, weil die den Text nicht umbricht und nach einer MultiCell hängt ein FPDF->Ln(); ...

Also, hier meine Tabelle

//Header
$myPDF->SetFont('Times','B','12');
$myPDF->Cell(23,5,'',0);
$myPDF->Cell(18,5,'Menge',1);
$myPDF->Cell(62,5,'Name / Beschreibung',1);
$myPDF->Cell(33,5,'Zeichnungsnr.',1);
$myPDF->Cell(28,5,'Stückpreis',1);
$myPDF->Cell(0,5,'Gesamtpreis',1,1);
$myPDF->Ln(0);

//Positionen
$myPDF->SetFont('Times','','12');
$myPDF->Cell(23,5,'',0);
$myPDF->Cell(18,5,'500',1);
$testbesch = 'keine Ahnung
aslkdjf asdfkjalskdfj aslkdfj asdkfljalskdjfalkj';
$myPDF->Cell(62,5,$testbesch,1); // Hier bräuchte ich die MultiCell
$myPDF->Cell(33,5,'0123456789',1);
$myPDF->Cell(28,5,'0.15 €',1);
$myPDF->Cell(0,5,'75.00 €',1,1);
$myPDF->Ln(0);[/PHP]

Danke

Bisher habe ich hierzu nur die FPDF->MultiCell() gefunden. Diese jedoch hat einen automatischen LineBreak am Ende.

kann nicht nachvollziehen was du meinst.

ich setz meine tabellen nur aus multicells zusammen.

ich setz meine tabellen nur aus multicells zusammen.

Wie schaffst du das?

Bei mir kommt dann sowas raus:

Zelle

Zelle

Zelle

Funktioniert nicht... dann rutscht die nachfolgende Zelle in die nächste Zeile der Tabelle...

K, das klingt plausibel... aber wie kann ich die Höhe angeben wenn ich nichtmal weiß wie oft der umbrechen wird?

hmm ich glaub ich weiß was passiert.

vermutlich setzt fpdf $this->X hinter die multicell (also darunter)

probier folgendes:

leg dir $this->X und $this->Y in 2 temporäre variablen.

$x = $this->GetX();
$y = $this->GetY();[/PHP]

schreib die multicell

und setz X und Y neu mit $this->SetX(wert). hier musst dann ein wenig rechnen.

ok nich pdml, aber fast xD

http://fpdf.de/downloads/addons/3/

NbLines, ganz unten: http://fpdf.de/downloads/addons/3/

Bearbeitet von _n4p_

hhmm... das hört sich kompliziert an, vorallen hab ich dann mit der Zelle in der die Menge steht ein Problem. Hab mal nen Screenshot gemacht:

1262086856Untitled.png

hab doch gesagt is nich so einfach ^^

ich mach das folgendermaßen:

ich schau mir an was alles so in die zeile rein geschrieben werden soll.

dabei mach ich für jede zelle der zeile eine mulicell. berechne die höhe der zelle. und ermittle gleichzeitig das maximum der zellhöhe in dieser zeile.

dann werden die zellen erstellt. alles mit:

$this->MultiCell($w, $this->FontSizePt+4, $aCell['text'], 0, $aCell['align']);

$w ist die breite. ich muss da auch noch bissel rechnen, du wahrscheinlich nicht, kannst also feste werte eintragen.

edit: die höhe is übrigens Y nich X, sry mein fehler

Passt schon... ich hab mir die Methoden von dem Link geholt und das zeichnen der Rahmen etwas umgebaut... Jetzt funktioniert es... ;-)

DANKE!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.