Articolo originale pubblicato venerdì 21 dicembre 2012

Qualche giorno fa mi è capitato di sentire una domanda che ha catturato la mia attenzione. Alcune persone stavano chiedendo qualcosa sulle nuove anteprime degli elementi nei risultati di ricerca in SharePoint 2013. Dicevano che i documenti di Microsoft Office funzionavano benissimo in questo senso, e volevano sapere come ottenere lo stesso per i file PDF. Una buona soluzione è quella che prevede la creazione di un'estensione WOPI personalizzata, che consente di visualizzare i file PDF usando Office Web Apps. Una soluzione simile richiede però la scrittura di codice e l'esecuzione di test, la distribuzione nella farm di OWA e la creazione di un nuovo binding WOPI nella farm di SharePoint. Una soluzione assolutamente ragionevole, se se ne ha davvero bisogno.

Io, però, che sono pigro nel senso buono del termine, ho scelto di cercare un diverso approccio. Senza scendere troppo nei particolari di tutto il funzionamento, le anteprime dei risultati di ricerca per quanto riguarda i documenti di Office sono effettuate attraverso un iFrame. E allora, perché non fare la stessa cosa per i documenti PDF? È esattamente ciò che ho fatto. Ed ecco come sono riuscito a farlo funzionare:

  1. Ho visitato il sito Centro ricerche e ho scaricato una copia di Item_PDF.html, il modello di visualizzazione pronto all'uso per gli elementi PDF in SharePoint 2013. L'ho modificato in questo modo:
    1. Ho cambiato il titolo in "PDF by Steve"
    2. Ho cambiato la variabile hoverUrl in javascript in "~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Site_HoverPanel.js"
  2. L'ho salvato come PDF_Default.html e sono tornato al sito Centro ricerche di SharePoint. Da qui sono passato alle impostazioni del sito, Pagine master, Layout di pagina, Modelli di visualizzazione, e l'ho caricato.
  3. Sono tornato alle impostazioni del sito, e da qui ho selezionato Tipi di risultati della ricerca nella sezione Amministrazione raccolta siti.
  4. Ho creato un tipo di risultato della ricerca e l'ho configurato in questo modo:
    1. Nome: PDF Viewer
    2. A quale tipo di contenuto si applica? : PDF
    3. Come devono apparire i risultati? : PDF by Steve

Tutto qua: ora potete farlo anche voi. Un'ultima cosa. Nel passaggio 1b ho configurato il modello di visualizzazione in modo tale da usare il riquadro al passaggio del mouse disponibile e già pronto per i siti. È configurato in modo tale da usare un iFrame e ha un aspetto piacevole, quindi non ho dovuto creare un nuovo riquadro. In realtà, tanto per provare, avevo creato un nuovo riquadro, ma quello pronto era molto più bello: la grafica non è il mio punto forte! Una volta fatto, ottengo una bella anteprima per i miei documenti PDF nei risultati di ricerca, che potete vedere qui:


Non c'è altro. Ho allegato il mio modello di visualizzazione qui, per tutti i pigroni come me.  :-)   Un felice Natale e un buon anno nuovo a tutti!

AGGIORNAMENTO: Ho scoperto una grande limitazione di questo approccio: funziona solo se i documenti PDF si trovano nello stesso host del centro di ricerca, ovvero, ad esempio, se si trovano nella stessa applicazione Web. Quindi, se il centro di ricerca è in http://www.foo.com ma i PDF sono in http://www.bar.com, non saranno visualizzati come anteprime. Ciò è dovuto ad alcune intestazioni X-Frame-Options di SharePoint. Se seguite i nostri suggerimenti relativi a SharePoint 2013 di usare un'applicazione Web singola per la farm, non dovrebbero esserci problemi. Se però avete applicazioni Web multiple e state effettuando la ricerca per indicizzazione di contenuto di siti non-SharePoint, l'anteprima non è visualizzata.

Un paio di cosette ancora alle quali prestare attenzione: 1) assicuratevi che nel computer che usate per visualizzare le anteprime sia installato Adobe Reader e 2) Più di qualcuno mi ha detto che questa procedura non funziona in browser diversi da Internet Explorer.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Create An Easy PDF Preview for Search Results in SharePoint 2013