SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Workflow um PDF-Dokumente automatisch zu erstellen

Unbeantwortet Dieser Beitrag hat 7 Antworten

Ohne Rang
5 Beiträge
OLAPStudent erstellt 26 März 2010 16:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Abend.

Ich sitze an einem fast sonnigen Freitag um kurz vor 17.00 noch im Büro und zerbreche mir den Kopf über ein bestimmtes Problem.

Ich möchte für unser Unternehmen eine standardisierte Briefvorlage entwerfen, um meinet wegen zu einer Einladung abzusagen. Damit nicht jeder Mitarbeiter seinen eigenen Text schreibt, soll die Vorlage nicht zu verändern sein. Der Nutzer soll das Dokument (also die Vorlage) am besten noch nicht einmal sehen, sondern nur die wichtigen Daten (Empfänger, Adresse, Ansprechpartner) über den SharePoint irgendwo eingeben (wie in einem Formuar) und nach Bestätigung der Eingaben ein PDF erhalten, wo diese eingegeben Werte an den richtigen Stellen im Brief integriert sind. Dazu muss eben sowohl die Übergabe der Daten zu dem Dokument als auch die automatische Erzeugung des PDFs durchgeführt werden

Jetzt habe ich mich meinem fast besten Freund - Google - zugewandt und gesucht und gesucht. Dabei stoße ich auf einige Artikel, die mir zumindestens zu der PDF-Problematik Visual Studio, bzw SharePoint-Designer vorschlagen und immer wieder die Office-API nennen. Ich kann mir darunter zwar was vorstellen - also auf die Funktionalität von Word zur Erzeugung von Pdfs zugreifen - aber wie und wo genau man das macht, steht wie so oft nirgens.

Ich kann mir vorstellen ,dass der ein oder andere mit einer ähnlichen Problematik schonmal zu tun hatten, vielelicht sogar bereit ist mir da weiter zu helfen.

Auf jeden Fall danke ich schonmal allen, die sich dem Problem annehmen, und falls ich es doch noch schaffen sollte in der Richtung weiter zu kommen, werd ich das natürlich auch hier zum Besten geben.

 

Schönes WE.

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 März 2010 17:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist ein halbwegs komplexes Thema.

Zuerst mußt Du Dir darüber klarwerden, daß Du das PDF ja serverseitig erzeugen mußt. D.h. die Funktion dazu muß auf dem Server implementiert werden und damit fällt IMHO Office-Automatisierung aus (man müßte sonst Office auf dem Server installieren und das macht man nicht). Mit SharePoint 2010 geht das dann aber über den Word Automation Service.

Da Office-Automatisierung wegfällt mußt Du Dir etwas anderes einfallen lassen und da gibt es viele Möglichkeiten, wie z.B. XSL-FO.

In jedem Fall muß dazu aber programmiert werden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
5 Beiträge
OLAPStudent Als Antwort am 6 Apr. 2010 13:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die Antwort.

 

Habe mich gleich einmal mit dem Thema XSL-FO, XSLT, FOP auseinandergesetzt und würde jetzt maximal gerne wissen, ob ich das alles annähernd richtig verstanden habe.

Mit Word 2007 werden alle Dokumente ja eh als XML-Dokument gespeichert. Mit einem XSLT-Prozessor (von diversen Anbietern) kann ich auf dieses XML-Dokument zugreifen und nach vorher - von mir - definierten XLS-Templates, dieses XML-Dokument in ein XSL-FO-Dokument transformieren. Aus diesem XSL-FO-Dokument muss ich über den Formatting Objects Processor (FOP), welches es nur von Apache gibt (?), das PDF erstellen. 

 Wenn dem so ist, dann sollte das für mich machbar sein, aus einem *.docx ein *.pdf zu erstellen.

Fehlt mir leider noch die Lösung zu meinem Problem vorher. Wie ermögliche ich es einem Nutzer nur die wichtigen Informationen über den SharePoint einzugeben und diese in eine Vorlage (das Word-Dokument) einzugliedern. Zusätzlich dazu den Automatismus zu schaffen, im gleichen Atemzug mit der Integration der Informationen, den Transformationsprozess anzustoßen.

Wenn da noch jemand eine Idee hat ...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Apr. 2010 14:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

XSL-FO sollte ja nur ein Beispiel sein. Ob es den Prozessor auch in einer nicht-Apache-Version gibt, weiß ich nicht. Das XML aus den *.docx kannst Du wahrscheinlich auch nicht direkt verwenden. Erstens weil es in einem ZIP liegt und zweitens bin ich mir gerade nicht sicher, ob tatsächlich alles relevante in einer Datei liegt. Benenne einfach eine docx in zip um, und schaue nach.

[quote user="OLAPStudent"]Wie ermögliche ich es einem Nutzer nur die wichtigen Informationen über den SharePoint einzugeben und diese in eine Vorlage (das Word-Dokument) einzugliedern.[/quote]

Lege eine Bibliothek mit den erforderlichen Metadaten (Spalten) an und einem docx als Vorlage. Öffne die Vorlage, gestalte sie nach Deinen Wünschen und über Einfügen - Schnellbausteine - Dokumenteigenschaften kannst Du die zusätzlichen Metadaten direkt im Dokument benutzen.

[quote user="OLAPStudent"]Zusätzlich dazu den Automatismus zu schaffen, im gleichen Atemzug mit der Integration der Informationen, den Transformationsprozess anzustoßen.[/quote]

Dazu braucht es eigenen .NET-Code, mit dem Du das ItemUpdated-Ereignis behandelst. Dort prüfst Du, ob die notwendigen Informationen vorhanden sind und falls ja...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
5 Beiträge
OLAPStudent Als Antwort am 6 Apr. 2010 17:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Das XML aus den *.docx kannst Du wahrscheinlich auch nicht direkt verwenden. Erstens weil es in einem ZIP liegt und zweitens bin ich mir gerade nicht sicher, ob tatsächlich alles relevante in einer Datei liegt. Benenne einfach eine docx in zip um, und schaue nach.[/quote]

Man kann das Word-Dokument ja als *.xml speichern, das mein ich. also daher kein Problem.

[quote user="Andi Fandrich"]Lege eine Bibliothek mit den erforderlichen Metadaten (Spalten) an und einem docx als Vorlage. Öffne die Vorlage, gestalte sie nach Deinen Wünschen und über Einfügen - Schnellbausteine - Dokumenteigenschaften kannst Du die zusätzlichen Metadaten direkt im Dokument benutzen.[/quote]

Hab ich schonmla gemacht, ist aber nicht ganz das was ich wollte. Vielleicht sollte ich da auch mal gucken was der 2010er schon kann.

[quote user="Andi Fandrich"]Dazu braucht es eigenen .NET-Code, mit dem Du das ItemUpdated-Ereignis behandelst. Dort prüfst Du, ob die notwendigen Informationen vorhanden sind und falls ja...[/quote]

ui... ;)

Ohne Rang
5 Beiträge
OLAPStudent Als Antwort am 7 Apr. 2010 16:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nochmal zu dem Problem der Informationsübergabe in eine Word-Dokument.

- das ich die Informationen über angelegte Spalten in eine Vorlage integrieren kann, weiß ich, hab ich auch schon mehrmals gemacht

- ich möchte allerdings das Dokument nicht öffnen müssen um die Daten einzugeben. Erstellt mal eine Vorlage mit zwei auszufüllenden Spalten (mit erforderliche eingabe), füllt dann nichts aus und speichert die vorlage in der sharepoint biliothek - dann erscheint ein bildschrim der die erforderlichen Daten erneut abfragt. Genau so einen Bildschitm möchte ich gerne erzeugen, nur eben, ohne das Dokument vorher öffnen zu müssen.

Wer das nicht verstanden hat - und so wie ich das beschreiben haben geh ich davon aus, das sind mehrere- ich lad morgen dazu mal einen screenshot hoch. 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Apr. 2010 17:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="OLAPStudent"]Wer das nicht verstanden hat[/quote]

Ich, ich :-)

Wenn das Pflichtfelder sind (darf nicht leer sein), dann kann man die Dokumente auch nicht aus Word heraus speichern, ohne die Felder auszufüllen. Die Felder selbst kann man auch ändern ohne ein Dokument in Word zu öffnen. Einfach aus dem Kontextmenü "Eigenschaften bearbeiten". Eingebettete Felder im Dokument werden dadurch ebenfalls geändert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 8 Apr. 2010 21:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Moin,

wie du das über die Office API machst ist sogar bei msdn beschrieben :-)
http://msdn.microsoft.com/en-us/library/bb412305.aspx

Allerdings benötigst du dafür Office auf dem Server und Andi hat ja bereits gesagt, dass man das nicht macht, bzw. es nicht supported ist. Für eine saubere Lösung würde ich mir mal Aspose oder andere Third-Party Anbieter anschauen.

Edit: Natürlich ist die oben beschriebene Lösung nur mit Visual Studio zu realisieren. Ich denke das geht etwas über die Fähigkeiten des SharePoint Designers hinaus :-)

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de