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.




PDF Vorschau in Bibliothek

Geprüfte Antwort Dieser Beitrag hat 24 Antworten

Ohne Rang
367 Beiträge
Tiac erstellt 30 Juni 2014 14:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Community,

besteht die Möglichkeit, dass man sich eine Vorschau einer PDF Datei in einer Bibliothek anzeigen lassen kann. Bspw. wenn man über den Name der jeweiligen Datei geht oder eine Lupe in einer Spalte dafür nutzt?

Ich kann mich bei den Dateien selbst nur auf den Name der Datei beziehen, da es sich um Scans handelt, die via E-Mail in die Bibliothek gesendet werden. Die Dateivorschau wäre wichtig um die Bearbeitung der neuen Scans wesentlich einfacher zu machen.

Vielleicht hat ja jemand von euch eine Idee. Für jeden Hinweis bin ich sehr dankbar.

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Juni 2014 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Für PDF-Previews kenne ich nur das hier: http://www.vizit.com/vizit-essential/. Ich kenne es aber nicht aus eigener Erfahrung und kann deshalb weder zu- noch abraten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 30 Juni 2014 15:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schon einmal vielen Dank für deinen Tipp. Ich werde mir das mal genauer anschauen.

Mittlerweile bin ich auf ein Script gestoßen, dass eigentlich genau das mit der Vorschau macht. Dafür muss noch zusätzlich eine berechnete Spalte hinterlegt werden, die sich auf die gewünschte Eigenschaft des Dokuments bezieht und daraus dann den Link bastelt. In diesem Fall ist der Titel wichtig, da der Titel = Name sein soll.

Die berechnete Spalte sieht so aus:

 ="<DIV><a href='..\"&Titel&".pdf' class='screenshot' rel='..\"&Titel&".pdf' ><img border='0' src='/_layouts/images/MAGNIFY.GIF' alt='' style='padding-right: 5px; padding-left: 5px; vertical-align:bottom'></a></DIV>"

Jetzt ist mein Problem, dass das Dokument, nachdem es in die Bibliothek geschickt wurde noch gar keinen Titel besitzt. Auch dafür habe ich eine Script, dass beim Bearbeiten der Eigenschaften Titel = Name setzt (das Script liegt auf der Edit Form der Bibliothek). Allerdings müsste man dafür ja immer erst die Eigenschaften öffnen bevor der Titel übernommen wird. 

Einen Workflow starten lassen, wenn ein neues Element erstellt wurde, funktioniert auch nicht. Da die Bibliothek Pflichtfelder hat, muss das per E-Mail geschickte Dokument immer erst bearbeitetet werden, bevor ein Workflow startet.

Gibt es vielleicht eine andere Möglichkeit, an den Namen des Dokuments zu kommen, den ich in der berechneten Spalte nutzen möchte? Direkt auf das Feld Name kann ich nicht zugreifen und jedes Dokument öffnen, damit der Titel = Name wird ist auch sehr umständlich. :o(

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Juni 2014 15:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Diese berechnete Spalte erzeugt aber auch nur einen Link, mit dem die Datei dann geöffnet wird. Unter einer Preview verstehe ich etwas anderes (mit der maus drüberfahren und sofort erscheint das Bild).

Wie man den Namen sonst in den Titel bekommt, weiß ich nicht, aber man kann den Link auch durch Bearbeiten des XSLT der Ansicht dorthin bekommen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 30 Juni 2014 16:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die berechnete Spalte zeigt dann eine Lupe und wenn man mit der Maus drüber geht, sieht man die Vorschau. Dazu gehört natürlich noch ein Javascript, dass ich bei bedarf gerne poste bzw. den Link wo ich es her habe hier hinterlege.

[quote user="Andi Fandrich"]aber man kann den Link auch durch Bearbeiten des XSLT der Ansicht dorthin bekommen.[/quote]

Mmh, halte mich jetzt bitte nicht für blöd, aber was meinst du damit?
Könnte ich über das Bearbeiten des XSLT einen Link erzeugen, der mit dem Namen des Dokuments arbeitet, anstatt mit dem Titel?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 1 Juli 2014 08:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tiac"]Könnte ich über das Bearbeiten des XSLT einen Link erzeugen, der mit dem Namen des Dokuments arbeitet, anstatt mit dem Titel?[/quote]

Ja, kannst Du. Das ist eh sicherer. Öffne einfach die Ansicht in SharePoint Designer. Hier steht, wie man an das XSL herankommt und was man beachten muß: http://blogs.evocom.de/af/archive/2011/03/02/änderungen-am-xslt-einer-datenansicht-werden-nicht-übernommen.aspx

Dann kannst Du einfach in der Designansicht in ein Feld klicken und dann in die Codeansicht umschalten und Du bist an der richtigen Stelle (manchmal muß man zweimal hin und her schalten). Dort kannst Du dann direkt das HTML erzeugen:

<xsl:value-of select="concat('<a href=""', @FileRef, '"">Lupe</a>')" />

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 1 Juli 2014 13:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Ja, kannst Du. Das ist eh sicherer. Öffne einfach die Ansicht in SharePoint Designer. Hier steht, wie man an das XSL herankommt und was man beachten muß: http://blogs.evocom.de/af/archive/2011/03/02/änderungen-am-xslt-einer-datenansicht-werden-nicht-übernommen.aspx[/quote]

Das war schon einmal ein super Link und sehr hilfreich. Ich hab es jetzt wenigstens schon mal hinbekommen, dass der Dateiname in einer anderen Spalte übernommen wird. (<xsl:value-of select="$thisNode/@FileLeafRef"/>)

Also habe ich dann meine berechnete Spalte auf genau diese Spalte zugreifen lassen, doch leider ist der Wert leer. In der Ansicht sehe ich nun den "kopierten" Dateinamen, allerdings ist dieses Feld beim Öffnen der Eigenschaften leer. 

Ich bin leider nicht so form in der xsl Anpassung, aber könnte ich jetzt auch eine ganze Formel ="<DIV><a href='..\"&Titel&"....></a></DIV>" da reinpacken?

Hatte es so versucht, aber leider ist dabei ein Fehler aufgetreten:
<xsl:value-of select="concat( '<a href='..\"&@FileLeafRef&"' class='screenshot' rel='..\"&@FileLeafRef&"' ><img border='0' src='/_layouts/images/MAGNIFY.GIF' alt='' style='padding-right: 5px; padding-left: 5px; vertical-align:bottom'></a>')"/> 
 
Folgende Meldung erscheint dann in meiner Ansicht, mit der ich leider gar nichts anfangen kann: "This Web Part does not have a valid XSLT stylesheet: Error: Das Zeichen '<' kann in einem Attributwert nicht verwendet werden. (Dann ein Bild meiner Lupe) ')"/>

Vielleicht habt ihr einen Tipp, was ich falsch gemacht habe. Das wäre super...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 1 Juli 2014 13:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tiac"]könnte ich jetzt auch eine ganze Formel ="<DIV><a href='..\"&Titel&"....></a></DIV>" da reinpacken?[/quote]

So war es von mir auch gedacht ;-) Das berechnete Feld brauchst Du dann gar nicht mehr.

Zum Fehler:

Dein gesamter Text steht innerhalb eines XML-Attributs select="..." und das macht jetzt ein paar Probleme. Man darf dort keine < und > verwenden, sondern muß sie kodieren als &lt; bzw. &gt;

Außerdem mußt Du jetzt Strings zusammensetzen. Diese schließt Du am Besten in einfache Hochkomma ' ein (weil Anführungszeichen bereits um alles andere herum sind). Wenn ein String selbst wieder Anführungszeichen oder Hochkomma enthalten soll, kannst Du diese auch kodieren als &quot; bzw. &apos;

Mit der XSL-Funktion concat() baust Du jetzt das Gesamtergebnis zusammen. Der Funktion kannst Du beliebig viele Parameter mitgeben und dabei feste Strings mit Variablen mischen concat('Präfix', $thisNode/@FileRef, 'Suffix')

Viel Spaß beim Basteln :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 1 Juli 2014 14:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen, vielen Dank für deine hilfreichen Tipps... dann werde ich mich mal ans Werk machen...;o)

Ohne Rang
367 Beiträge
Tiac Als Antwort am 4 Juli 2014 15:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Leider bin ich es schon wieder. Ich habe mir jetzt meine "Formel" in xslt umgebastelt. Beim Speichern erhalten ich dann allerdings die Meldung: 
"Failed setting processor stylsheet . 0x80004005 : Ungültige Anzahl an Argumenten."

Hat vielleicht jemand eine Idee, was damit gemeint sein soll/kann? Leider kann ich in Google nicht wirklich etwas zu meinem genannten Problem finden.

Über jeden Tipp bin ich sehr dankbar.

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Juli 2014 15:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Fehlermeldung sagt mal grundsätzlich, daß Du bei irgendeinem Funktionsaufruf eine ungültige Anzahl Argumente angegeben hast. Die concat() Funktion nimmt z.B. jede beliebige Anzahl Argumente entgegen (solange es merh als eins ist). Der Fehler kann aber auch viele andere Ursachen haben, z.B. ein falsches oder fehlendes Komma, eine fehlende Klammer oder eine zuviel, ein falsches oder fehlendes Anführungszeichen u.v.m.

Kannst Du mal Deine Formel hier posten? Vielleicht findet jemand mit scharfen Augen das Problem...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 07:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Formel sieht nun so aus: 

<xsl:value-of select="concat('&amp;lt;DIV&amp;gt;&amp;lt;a href=&quot;..\&quot;&amp;@FileLeafRef&amp;&quot;.pdf&quot;; class=&quot;screenshot&quot;rel=&quot;..\&quot;&amp;@FileLeafRef&amp;&quot;.pdf&quot; &amp;gt;&amp;lt;img border=&quot;0&quot; src=&quot;/_layouts/images/MAGNIFY.GIF&quot;; alt=&quot;&quot; style=&quot;padding-right: 5px; padding-left: 5px; vertical-align:bottom&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/DIV&amp;gt;&quot;')"/>

Vielleicht hat ja wirklich jemand ein gutes Auge und kann mir irgendwie helfen...;o)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 08:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da wurde bei der Kodierung etwas doppelt gemoppelt ;-)

Es reicht, wenn Größer-/Kleinerzeichen mit &lt; bzw. &gt; kodiert werden. In Deinem Fall wurde dann zusätzlich auch noch das Ampersand & mit &amp; kodiert. Mache das mal wieder rückgängig. Ich hab's nicht so genau analysiert, aber evtl. gilt dasselbe auch noch für Anführungszeichen &quot;

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 11:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So, jetzt habe ich die Formel wieder etwas umgestellt. Sieht nun so aus: 

 <xsl:value-of select="concat(&lt;DIV&gt;&lt;a href=&quot;..\&quot;@FileLeafRef&quot;.pdf&quot;; class=&quot;screenshot&quot;rel=&quot;..\&quot;@FileLeafRef&quot;.pdf&quot; &gt;&lt;img border=&quot;0&quot; src=&quot;/_layouts/images/MAGNIFY.GIF&quot;; alt=&quot;&quot; style=&quot;padding-right: 5px; padding-left: 5px; vertical-align:bottom&quot;&gt;&lt;/a&gt;&lt;/DIV&gt;)"/>

Diesmal bekomme ich die Meldung:"...Ausdruck erwartet. concat (--><<--DIV> [Bild der Lupe]) "

Leider kann ich damit nichts anfangen. Ich habe auch die ganze concat in ' oder einem " eingeschlossen, allerdings bekomme ich auch dort Fehler.

Bei ' bekomme ich die Meldung: "...Ungültige Anzahl an Argumenten. -->concat('')<--

Und bei " die Meldung: "...This Web Part does not have a valid XSLT stylsheet: Error: ein erforderliches Leerzeichen fehlt."

Da ich ein kompletter Neuling bin, hoffe ich sehr das mir jemand irgendwie helfen kann.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 11:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich versuch's mal. Testen mußt Du aber selbst ;-)

<xsl:value-of select="concat('&lt;DIV&gt;&lt;a href=&quot;..\',@FileLeafRef,'&quot; class=&quot;screenshot&quot; rel=&quot;..\',@FileLeafRef,'&quot; &gt;&lt;img border=&quot;0&quot; src=&quot;/_layouts/images/MAGNIFY.GIF&quot; alt=&quot;&quot; style=&quot;padding-right: 5px; padding-left: 5px; vertical-align:bottom;&quot;&gt;&lt;/a&gt;&lt;/DIV&gt;')"/>

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 12:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So, ich habe es jetzt mit deiner Formel getestet. Jetzt bin ich der Sache schon einen Schritt näher gekommen, da es keine Fehlermeldung mehr gibt. In meiner Ansicht wird nun in der gewünschten Spalte  

<DIV><a href="..\" class="screenshot" rel="..\" ><img border="0" src="/_layouts/images/MAGNIFY.GIF" alt="" style="padding-right: 5px; padding-left: 5px; vertical-align:bottom;"></a></DIV> 

angezeigt. 

href und rel sind beide leer. Kann es sein, dass das gar nicht mit FileLeafRef funktioniert? :o(

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 12:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da bist Du doch jetzt einiges weiter und es gilt nur noch den richtigen Kontex zu finden. Das hängt ein bißchen davon ab, wo genau im XSL die Funktion ist.

Versuche mal $thisNode/@FileLeafRef

Übrigens liefert FileLeafRef nur den Dateinamen. Den gesamten Pfad bekommst Du mit FileRef. Und falls notwendig den Ordner mit FileDirRef.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 13:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Okay, das mit [quote user="Andi Fandrich"]$thisNode/@FileLeafRef[/quote] hat funktioniert. :o) Du bist echt super...

Jetzt verstehe ich nur nicht so ganz, warum in der Spalte der ganze Inhalt der Formel angezeigt wird und nicht die Lupe, die ich dann nutzen kann.

Ich weiß, ich geht dir bestimmt auf die Nerven mit meinen blöden Fragen, aber leider habe ich gar keinen Durchblick mit dem xslt Zeug's. 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 13:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tiac"]warum in der Spalte der ganze Inhalt der Formel angezeigt wird und nicht die Lupe[/quote]

Das liegt daran, daß value-of standardmäßig nochmal den Inhalt kodiert. Das kann man mit einem zusätzlichen disable-output-escaping abschalten:

<xsl:value-of select="..." disable-output-escaping="yes" />

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 13:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Super, genial... Jetzt funktioniert es!!!!!!!!!!!!!! 

Vielen, vielen Dank für deine Hilfe ;o)

 

Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 14:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe doch noch einmal eine Frage. 

Ich würde gerne href= erweitern, da ich auf einen Webpart und nicht direkt auf die Bibliothek zugreife. Meine Idee war nun href=&quot;..\',[Name der Bibliothek],'\',$thisNode/@FileLeafRef,'&quot doch das funktioniert leider nicht. Der Link hat dann an der Stelle des Name, den ich mitgegeben habe // stehen.

Könnte mir da bitte noch mal jemand einen Tipp geben?

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 14:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Du den Namen einfach als weiteren parameter ohne Anführungszeichen angibst, wird er als XPath-Ausdruck angesehen (der natürlich kein Ergebnis liefert. Mache es also so:

href=&quot;../NameDerBibliothek/',$thisNode/@FileLeafRef

Noch besser wäre allerdings, wenn Du wie oben schon beschrieben statt FileLeafRef einfach FileRef verwendest. Das enthält bereits den ganzen Pfad zur Datei und Du kannst es deshalb an jeder beliebigen Stelle verwenden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Tiac Als Antwort am 7 Juli 2014 14:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich kann mich erneut bei dir bedanken...;o)

So läuft jetzt alles wie ich es brauche!! DANKESCHÖN

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2014 15:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tiac"]jetzt alles wie ich es brauche!![/quote]

Prima. Dann hast Du ja Deinen ersten XSLT-Lehrgang erfolgreich absolviert. Und in SharePoint 2013 kannst Du das alles wieder über Bord werfen, weil man da mit Client Side Rendering (JavaScript) noch viel tollere Sachen machen kann  :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
611 Beiträge
Florian Adler Als Antwort am 1 Juli 2014 08:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Unter anderem dafür kann man Ontolica (von Surfray) nutzen. Wir sind seit einiger Zeit deren Partner in der DACH-Region. Vorteil dabei: Es beschränkt sich nicht nur auf PDF oder MS-Formate, sondern unterstützt noch einige mehr.

Ich bin wieder (sporadisch) hier!