| 

.NET C# Java Javascript Exception

4
Hallo liebe Codekicker,

ich möchte auf einer kleinen privaten Homepage (ASP.Net MVC 2) mit möglichst wenig Aufwand Dokumente generieren. Dazu habe ich bspw. ein Template, das an bestimmten Stellen Platzhalter hat. An diese Platzhalter möchte ich nun dynamisch Text einfügen und dann aus dem Dokument eine PDF-Datei generieren. Eigentlich keine große Sache.
Ich habe eine DLL gefunden, mit der ich in einem DOCX-Template wunderbar die Platzhalter austauschen kann. Allerdings finde ich keine kostenlose und aus .Net ansprechbare Bibliothek, die mir daraus jetzt eine PDF macht. Ich such mir schon bei Google die Finger wund. Klar, es gibt viele kommerzielle Anbieter - aber das ist nur ein Hobby-Sache.

Daher mal anders rum gefragt: hat jemand von euch eine Idee, wie ich ein Template mit Platzhaltern mit Daten füllen kann und daraus eine PDF bekomme? Ich will nicht die ganze PDF im Code erzeugen (wie mit iTextSharp o.ä.), sondern eine angenehm mit Word o.ä. erzeugte Vorlage einfach nur mit Daten befüllen. Es wundert mich, dass es da scheinbar im .Net-Umfeld nicht so wahnsinnig viele Lösungen gibt.

Ich freue mich über Anregungen!

Viele Grüße

TopperDEL
News:
18.09.2011
TopperDEL 101 1 4
Ist auf dem Webserver Word installiert?
Metal-Frog 19.09.2011
4 Antworten
2
So wie ich das verstehe, geht es die nur um das erstellen von pdf Dateien. Wenn ja, dann hast du hier eine kleine Auswahl an freien Bibliotheken:

  • pdfsharp
  • itextpdf
  • pdfsharp
  • silverpdf (Silverlight)
  • 19.09.2011
    Mario Priebe 6,0k 3 9
    0
    Hi,
    du könntest mit den Microsoft Reports (*.rdlc) ein PDF erzeugen.
    Du kannst einen Report anlegen und dann eine DataSource zuweisen.
    Anschließend kannst Du programmatisch den Report zu einem PDF Rendern lassen und das dann speichern u.ä.
    Hier mal ein Link.
    Probiert hab ich den nicht. Ein eigenes Bsp. kann ich Dir gern nachreichen. Wir rendern so auch PDF Dokumente.
    18.09.2011
    ralf.hientzsch 637 1 7
    Hallo,
    ich verwende diese Variante in einigen Projekten, sowohl im Web- als auch im Windows-Applikations-Umfeld. Funktioniert gut!
    msiggi 19.09.2011
    Hi,

    das ist zwar eine sehr interessante Technik - aber die ist auch sehr starr. Ich will halt dann doch ein dynamisches Dokument erzeugen, kein Formular. Daher taugt das Microsoft Reporting leider in diesem Fall nichts. Aber danke für den Hinwweis! An anderer Stelle kann ich das nämlich trotzdem gut gebrauchen!
    TopperDEL 20.09.2011
    0
    Hallo zusammen,

    danke erst mal für eure Antworten!
    @Mario Priebe: Ich will eben PDFs nicht selbst erzeugen, sondern mich auf die Word-Vorlage stützen. Aber ich gucke die mir noch mal an - vielleicht habe ich da ja ein Feature übersehen.
    @Ralf Hientsch: Microsoft Reports kannte ich noch gar nicht. Das hört sich auch nicht verkehrt an und ich werde das auch mal evaluieren.

    Ich melde mich in ein paar Tagen noch einmal, jetzt muss ich leider erst mal wieder was anderes machen. Ich gebe hier aber Rückmeldung, wenn ich mehr weiß. Danke soweit!

    Viele Grüße

    TopperDEL
    19.09.2011
    TopperDEL 101 1 4
    0
    Ein pdf generieren lassen geht mit den Office Interop-Assemblies, der große Nachteil ist, dass man dann Office auf dem Server installieren muss - das ist für viele inakzeptabel. Falls du dir die möglichkeit aber doch mal ansehen willst: hier der Link
    20.09.2011
    Sparky 109 3
    Ich kann leider nicht editieren - da kommt ein Fehler. Also so:
    [url=http://cathalscorner.blogspot.com/2009/10/converting-docx-into-doc-pdf-html.html]Hier[/url] noch ein Link zu einem Blogpost vom Programmierer der DOCX-Library über die Probleme beim konvertieren zu pdf
    Sparky 20.09.2011
    Gibt es hier Erfahrungswerte, wie ein Server damit zurecht kommt? Gibt es vielleicht eine Empfohlene Minimal-Installation von Office? ODer reicht es möglicherweise aus irgendeine DLL oder COM-Komponente zu registrieren?

    Die DOCX-Komponente von Cathal verwende ich zum Befüllen meines DocX-Templates. Funktioniert wunderbar, by the way!
    TopperDEL 20.09.2011
    1
    Ich habe damit keine Erfahrungen und ich würde in deinem Fall wahrscheinich eher über ein Template gehen, mit dem ich dann direkt ein pdf erzeuge, so wie es Mario vorgeschlagen hat. Ich habe mich vor einiger Zeit mal wegen Office-Automation auf dem Server umgesehen und bin auf ettliche Probleme gestoßen (Identität des Ausführungsprozesses, Deadlocks etc.). Hier mal ein Auszug, was alles zu beachten ist: http://support.microsoft.com/kb/257757
    Sparky 21.09.2011
    Ok, Sparky, du hast mich überzeugt es nicht mit der COM-Automatisierung auf serverseite zu versuchen. Das ist mir dann doch zu heiß bzw. birgt zuviele Fehlerquellen.
    Die von Mario vorgeschlagenen Lösungen passen aber auch nicht, weil ich - wie gesagt - nicht eine ganzen PDF mit allem drum und dran nachbauen will, wenn ich das mit Word als Vorlage viel schneller kann. Mir geht es ja dann doch nur um die Konvertierung in eine PDF.
    Ich werde nun also entweder mit der DOCX-Datei leben müssen oder mich doch mal nach kommerziellen Convertern umsehen müssen. Hinweise werden dankbar angenommen! ;)
    TopperDEL 25.09.2011
    Generell muss man nicht das komoplette pdf nachbauen, man kann z.B. auch Teile in ein Template übernehmen (z.B. auf einer Rechnung die eigenen Adressdaten/Bankverbindung etc.),das du mit Hilfe von Word erstellst und als pdf speicherst. Nur das was sich ändert (Rechnungsposten, Anrede, Kundenadresse ...) wird z.B. mittels ITextSharp generiert und über dein Template "gestamped". Machen wir in der Arbeit so, ist recht einfach zu verwenden.
    Sparky 26.10.2011

    Stelle deine .net-Frage jetzt!