Share-n-dipity

SharePoint serendipity is the effect by which one accidentally discovers something fortunate, especially while looking for something else entirely. In this case, it is the occassional musings, observations, and Ouija board readings about the phabulously

Create An Easy PDF Preview for Search Results in SharePoint 2013

Create An Easy PDF Preview for Search Results in SharePoint 2013

  • Comments 16
  • Likes

I saw this question flying around the other day and thought it was kind of interesting.  Someone was asking about the cool new thumbnail previews you get for items in search results in SharePoint 2013.  They really liked how Microsoft Office documents work and wanted to be able to do the same thing with PDF files.  There was an answer, which is a good one, that you could create a custom WOPI extension that would render PDF files using Office Web Apps.  The drawback to that is that it requires someone to do some coding and testing (using full trust code), then deploy it to your OWA farm, then create a new WOPI binding in the SharePoint farm.  Again, an entirely reasonable response if your requirements dictate that.

I, however, representing all that is good about being lazy and cheap, decided to take a different approach to this.  Without digging into the particulars of how all the plumbing works, at the end of the day a search results preview for Office documents are just done via an iFrame.  So why not do the same thing for PDF documents?  Why not indeed - that's exactly what I did.  Here's all I did to make this work:

  1. I went to my search center site and download a copy of the Item_PDF.html, which is the out ofthe box display template for a PDF item in SharePoint 2013.  I made the following changes to it:
    1. Changed the Title to "PDF by Steve"
    2. Changed the hoverUrl variable in the javascript to "~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Site_HoverPanel.js"
  2. I saved it as PDF_Default.html and went back to my SharePoint search center site, then navigated to Site Settings...Master pages and page layouts...Display Templates...Search and uploaded it.
  3. I went back to Site Settings and selected Search Result Types in the Site Collection Administration section.
  4. I created a Search Result Type and configured it as follows:
    1. Name:  PDF Viewer
    2. What types of content should match? :  PDF
    3. What should these results look like?  :  PDF by Steve

That's it - now you're ready to go.  One thing to point out here - in step 1b I configured the display template to use the hover panel that comes out of the box for sites.  It is configured to use an iFrame and render it nice and pretty, so I didn't even have to create a hover panel for it.  As a side note I actually DID do that when I was fooling around, but the out of the box stuff looks so much better than what I can do I figured why fight it - graphical beauty ain't my thing.  Once it's done I get a nice preview for my PDF documents in search results, which you can see here:


That's all there is too it.  I've attached my display template here, just in case you are as lazy and cheap as I am.  :-)   Hope everyone has a Merry Christmas and Happy New Year.

UPDATE:  I did discover one big limitation with this approach - it only works if your PDF documents are in the same host as your search center, i.e. if they are in the same web application is the easiest example.  So if you have your search center at http://www.foo.com, but your PDFs are in http://www.bar.com then they will not be displayed as preview items.  That's because of some X-Frame-Options headers that we send down with SharePoint now. If you are following our new recommendations for SharePoint 2013 to use a single web application for your farm then you will be fine, but if you have multiple web applications or are crawling content from non-SharePoint sites then it will not render in the preview.

 

Couple other possible gotchas to be aware of - 1) make sure you have installed the Adobe reader on the machine on which you are viewing the previews and 2) I've got at least one report saying this doesn't work in a non Internet Explorer browser.

 

Attachment: PDF_Default.html
Comments
  • I could be missing something here but all I get for preview is standard '

    PDF

    We didn't find any more information about this result.'

    Regards,

    B

  • Thanks for this solution. One thing I noticed is the pdf icon next to the link in the search results has disappeared. Any way to get this back?

  • Hey @Mike, yeah I noticed that too.  I just changed my base template from Item_Default.html to Item_PDF.html.  It only takes about 30 seconds to create a new one so it wasn't a big deal.  After doing that the PDF icon starts showing up for it again.

  • I tried this but the browser ends up prompting for PDF download on hover?

  • Augustine: The reason why you are prompted on hover is because your web application is configured with strict "Browser File Handling". Go to Central Admin, Web Applications, <Your web app>, General Settings and set Browser File Handling to Permissive.

    Verify that you can click a PDF in a document library to open it without being prompted. If the PDF is shown in the browser when you click it, hovering will work too.

  • Hi, Great tip for PDF documents in SP2013.  I did almost the same thing for SP2010 Search Results, using an iFrame on mouse-over displays the first page of the PDF.

    sharepoint2020.wordpress.com/.../display-pdf-thumbnail-preview-on-hover-in-search-results-web-part

  • This solution works for SharePoint 2010?

  • Steve,

    This works great in the search results but does not work in a Document Library preview. Is this something that can be adapted to work in the Document Library?

  • If you're using Office Web Apps 2013, the March 2013 update includes capability to preview PDF files in the browser. Just another option in case you're interested.

  • Btw, this product also shows previews in document libraries: www.harepoint.com/Products/HarePointThumbnails/Default.aspx

  • This works great, but if running IE10 it looks like you need Adobe Reader 10 or higher installed to render the preview correctly. I had 8 and got no preview, moved to 9, no preview, updated to 10 and got the preview, same with 11.

    Dave Kuehling

    Codesigned

    www.codesigned.com

  • Hey guys, following the above instruction, I seem to have run into issues when searching for a PDF in the search. It displays 'Sorry, somethng went wrong." showing the following error message...

    Display Error: The display template had an error. You can correct it by fixing the template or by changing the display template used in either the Web Part properties or Result Types.

    Template '~sitecollection/_catalogs/masterpage/Display Templates/Search/PDF_Default.js' not found or has syntax errors. (LoadTemplate: ~sitecollection/_catalogs/masterpage/Display Templates/Search/Group_Default.js)

    Cannot set property 'innerHTML' of null (OnPostRender:

    Anyone got any ideas?

  • Luke - I actually just helped someone with this today. You need to make sure you publish the PDF_Default.html page.

  • Seems I have recently encountered the same "something went wrong error" - however it is only for non-admins.  Is there a security consideration?

  • I have received the same error message "The display template had an error" when I test site permissions. Anything lower than designer recieves the error.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment