Monday, October 25, 2010

SP2010 forces users to save PDFs – Solution Found!

This wonderful information is given to us by cookie

We’ve recently deployed SP2010 at a new client .Things are dandy, except the users are complaining that they are prompted to save PDFs when they click on them, instead of the PDF opening up in Adobe Acrobat. What?? That seems insane, but it turns out it is “by design” as I found out on Sean’s blog: http://blog.brainlitter.com/archive/2010/05/19/sharepoint-2010-treats-pdf-and-other-file-types-as-insecure.aspx

This worked on the top level site collection ,but not on doc libs on other site collections in the web application, so I saw within this forum post: http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/80365b88-937a-4188-85ef-45cbdc2cd10d that someone suggested the following:

“The http header X-Download-Options: noopen is added by the Browser File Handling and the two setting that are in it.  But the Read-only and Edit prompt are driven by SharePoint and a setting in the DOCICON.XML file. If you have added PDF as a Document extension inside the DOCICON.XML you will need to also add an additional attribute in the line and that is opencontrol=”” this seems to stop SharePoint from applying it's header to open the document. <Mapping Key="pdf" Value="icpdf.gif" OpenControl=""/> “


I did this as well but we were still getting prompted.  Oddly enough, if you checked out the document, then you could open the PDF directly. Also, NEW doc libraries on these sites would open PDFs correctly. This is all very strange.

I then tried changing the document library setting to force documents to open in the the client application. (Settings > Advanced Settings > Opening Files in the Browser). Still no luck.

At this point, my instinct was that some setting on the document library, that I could not see from the UI, was not getting properly set when I changed the web application level setting. Well, thanks to Todd Klindt’s blog, http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=214, plus some Powershell wrangling, I was able to find a way to go to the properties of the doc lib and verify that it’s BrowserFileHandling property was still set to “Strict”! 

PS C:\ > Add-PSSnapin Microsoft.SharePoint.Powershell
PS C:\> $site = Get-SPSite(“http://mysubsitecollectionurl”)
PS C:\> $web = $site.OpenWeb()
PS C:\>  $list = $web.GetList(“http://mysubsitecollectionurl/List”);
PS C:\>  $list.browserfilehandling
Strict

No wonder we were still having issues! Using powershell, I was able to set this property to “Permissive”, and my PDFs immediately began opening in Adobe. Whoo hoo!

PS C:\> $list.browserfilehandling = “Permissive” ; $list.update();
PS C:\> $list.browserfilehandling
Permissive

Now I want to be able to go through all my existing doc libs and switch that property. Unfortunately there wasn’t any way to filter out which libraries needed to be switched (manually created ones) and ones that did not (default SharePoint doc libs), so I ended up going through the sites on a case by case basis, mostly driven off the doc lib names b/c we had used site templates to deploy the same doc libs to the different sites.

PS C:> foreach ($list in $rsrWeb.Lists) { if($list.title -match "Documents") { if($list.browserfilehandling -eq "Strict") { $list.browserfilehandling = "Permissive"; $list.update(); $site.url, $list.title, $list.browserfilehandling} }  }
Use the line above to copy into your Powershell window, but let me break it out down below:
foreach ($list in $web.Lists)
{    
     if($list.title -match "Documents")     //return any lists with a title containing “Documents”   
    {        
          if($list.browserfilehandling -eq "Strict")  //if the profile is set to strict       
         {            
               $list.browserfilehandling = "Permissive";           
               $list.update();           
               $site.url, $list.title, $list.browserfilehandling  //print the list url/name for verification        
          }    
     } 
}


Woo hoo!! Hope this helps you out when dealing with WHY THE HECK is SharePoint hating on PDFs??!!

This wonderful information is given to us by cookie

No comments:

Post a Comment