19 Stimmen

Erstellung von PDF-Rechnungen - Gibt es Lösungen für Vorlagen?

Unser Unternehmen möchte Rechnungen in ein neues System integrieren, das wir gerade entwickeln.

Wir benötigen eine Lösung zur Erstellung eines Rechnungslayouts und zur anschließenden Konvertierung in das PDF-Format.

Wir haben in Erwägung gezogen, die Rechnung einfach in html/css zu gestalten und dann in pdf zu konvertieren. Wir haben auch überlegt, SVG->PDf-Konvertierung zu verwenden.

Beide Lösungen lassen sich gut in unsere bestehende Templating-Sprache für unsere Webanwendung integrieren.

Bisher waren wir ein Microsoft-basiertes Unternehmen und haben Crystal Reports für eine solche Aufgabe verwendet, aber wir suchen nach einer Open-Source-Linux-Lösung für dieses Projekt.

Hat jemand einen Vorschlag für einen Ansatz oder eine Technologie, die wir für eine solche Aufgabe verwenden könnten?

10voto

Jason Punkte 16509

Versuchen Sie Folgendes: Erstellen Sie eine leere Rechnung mit Word (oder einem anderen Programm) und speichern Sie sie als PDF-Datei.

Dann verwenden Sie eine PDF-Bibliothek, um die PDF-Datei zu ändern (den Text an bestimmten Koordinaten einzufügen). Wir machen das in der Microsoft-Welt und es ist extrem einfach.

Der größte Vorteil ist, dass wir unsere eigenen Werkzeuge zur Erstellung und Änderung der Vorlage verwenden können. Wenn wir einen statischen Text hinzufügen wollen, öffnen wir einfach Word, nehmen die Änderung vor und speichern sie in einer PDF-Datei (die als Vorlage verwendet wird).

Für Microsoft verwenden wir iTextSharp die eigentlich eine C#-Portierung des ursprünglichen Java-Version von iText


Außerdem...

Sie können Adobe Acrobat verwenden, um Felder in die PDF-Datei einzufügen (Adresse, Telefon, Rechnungsnummer, Position 1, Position 2, usw.) und dann iText/iTextSharp verwenden, um diese Felder zur Laufzeit zu füllen.

Dies ist, genauer gesagt, was wir tun... und es ist extrem einfach.

1 Stimmen

Das Ändern solcher PDF-Anwendungen ist aufgrund der Struktur von PDF-Dateien sehr mühsam. Jedes Element hat eine feste Position, und es gibt kein "Reflow"-Dingsbums, mit dem man den Inhalt unter Beibehaltung des Layouts anpassen kann.

0 Stimmen

@Jasper - wenn es um Rechnungen geht, ist das nicht so schwer. Sie wissen, an welchen Koordinaten Sie Text eingeben können, und in der Regel wollen Sie immer nur eine Zeile auf einmal. BTW... Ich habe eine weitere Idee.

0 Stimmen

Ah ja, ich habe den Anwendungsfall wohl nicht allzu sehr bedacht. Der Grund, warum ich es vermeide, PDF-Dateien auf diese Weise zu erzeugen, ist, dass es in einem Vertragsverwaltungssystem nicht funktioniert hätte, das alle möglichen Kunststücke hätte machen müssen, um einen gut aussehenden Text zu erhalten.

10voto

Stephan Eggermont Punkte 15743

Der normale Weg ist, (La)TeX zu installieren (wahrscheinlich schon auf dem Linux-Rechner) und pdflatex auszuführen, um die PDFs zu erhalten. Sie können auch Apache FOP verwenden, wenn Sie xslt und xsl-fo bevorzugen.

Wenn die Anzahl der zu erstellenden Rechnungen gering ist, sollten Sie Open Office (direkt oder als Toolkit) verwenden.

Wenn Sie hochpräzise Positionierung und Low-Level-Zugriff wünschen, könnte eine Low-Level-PDF-Bibliothek (ich weiß nicht, ob iTextSharp mit mono funktioniert) das Richtige für Sie sein.

Ich würde zuerst LaTeX ausprobieren, weil man damit mit dem geringsten Aufwand Ergebnisse erzielen kann.

1 Stimmen

FOP, XSLT und XSL-FO sind zu viel für diese Aufgabe, sie sind ein Alptraum. (IMHO)

7voto

Alnitak Punkte 324207

Bisher habe ich Rechnungen durch Vorlage einer PostScript-Datei und anschließende Verwendung der Ghostscript-Funktion ps2pdf um diese in PDFs zu konvertieren.

0 Stimmen

+1 - Postscript ist gar nicht so schwer zu erstellen. In der Not kann man sich die Ausgabe eines DTP- oder Zeichenprogramms ansehen.

0 Stimmen

Nun, ja, aber ich habe alle von Hand gemacht ;-)

6voto

Ali Afshar Punkte 39615

Wir verwenden Reportlab mit Python. Wenn Sie sich umsehen, gibt es eine Menge vorgefertigter Formulare/Rechnungen/etc.

0 Stimmen

Es ist zwar nicht kostenlos, aber es ist umfassend und erfüllt seine Aufgabe gut.

0 Stimmen

Es gibt eine kostenlose Open-Source-Version: reportlab.com/software/opensource

0 Stimmen

Ich habe reportlab verwendet und dieses Rechnungsgeneratorprojekt für Fedex-Rechnungen erstellt. github.com/radzhome/fedex-commercial-invoice Wenn jemand andere allgemeine Rechnungen hinzufügen möchte, bin ich dafür offen.

3voto

Es gibt mehrere OSS-Berichtsmaschinen ( Jaspis-Berichte , Pentaho y BIRT um nur drei zu nennen), die Sie in ähnlicher Weise verwenden können, wie Sie bisher Crystal Reports verwendet haben. Einer der anderen Poster erwähnte ReportLab Dies ist eine Option, wenn Sie Python verwenden oder eine Python-Laufzeitumgebung in Ihre Anwendung einbetten können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X