Posts

Showing posts with the label document

SharePoint - Spostare Document Set di grandi dimensioni

Per lo spostamento di Document Set da una libreria ad un'altra occorre tenere conto del contesto in cui si implementa la procedura di spostamento, in particolare se esiste la possibilità che i Document Set contengano documenti di dimensioni superiori ai 10 Mb. Export/Import In rete è la soluzione più consigliata, ma  attenzione: per file di grandi dimensioni (superiori a 10Mb) , funziona solo nel caso di Event Receiver (o Console Application). Utilizzato in un Timer Job si riceve un errore decisamente incomprensibile, in fase di Export: " Unable to determine the identity of domain ". Questo messaggio ci ha fatto penare un bel po' ed è riferito ad una classe utilizzata dal package di gestione dello stream in fase di esportazione del Document Set (class IsolatedStorage). //get Document Set Source DocumentSet documentSet = DocumentSet.GetDocumentSet(itemToMove.Folder); //get Target List SPList targetList = web.Lists[docSetListTargetName]; //get content type i...

SharePoint - Il Check-Out e i Documenti Fantasma!

Image
Lo scenario spettrale nel quale i Documenti scompaiono alla vista di tutti, compreso il System Account, ha una spiegazione (quasi logica) e anche una soluzione! Il Cliente segnala l'impossibilità di salvare un nuovo Documento (nuovo), creato con Word, con un dato nome. L'utente X accede alla Document Library su cui è impostato check-in/out per modifica. Clicca su Nuovo Documento, apre Word, modifica il file e, per qualche ragione, NON esegue Check-in. Chiude Word, oppure si pianta (non raro), o il browser va in errore (ancora meno raro), o qualsiasi altro motivo per cui non viene archiviato il file. In questo scenario, gli altri utenti non vedono il documento. Nessuno. Solo l'utente X. L'utente Y crea un nuovo file e lo vuole salvare, chiamandolo come il file creato (e non archiviato) dall'utente X. MA riceve un messaggio: Non è possibile salvare il file perché l'utente X sta già modificando un documento con quel nome. Il sistema dice che c'è que...

SharePoint - Check File Name in Upload form in Document Library with Javascript

Image
If you want to check file name of new document in Upload form, you can do with Javascript! I created a custom js that check filename then disables button OK if condition is not verified. I override the function CheckAssetLibMediaExtension on event "onchange" of input file control in Upload.aspx. If you see HTML Source of Upload.aspx (rendered by browser) you see: <input name="ctl00$PlaceHolderMain$UploadDocumentSection$ctl05$InputFile" type="file" id="ctl00_PlaceHolderMain_UploadDocumentSection_ctl05_InputFile" class="ms-fileinput ms-fullWidth" size="35" onfocus="ResetSpFormOnSubmitCalled();" onchange="CheckAssetLibMediaExtension()" title="Scegliere un file" /> Search for function in HTML Source, you find: function CheckAssetLibMediaExtension() { } So, you can override it! Create in masterpage reference to jQuery and add function below : function CheckAssetLibMediaEx...

SharePoint 2010 - Inserire come Title il Name del documento caricato con javascript!

Quante volte mi sono trovato in difficoltà a .. giustificare il perché SharePoint non mette come Title del Documento caricato il Name dello stesso..!? Lo fa, certo, se si tratta di un documento Office correttamente compilato (ad es. un file Word con la proprietà Title, o un PDF..) Ma non lo fa sempre, o non sempre i documenti sono correttamente compilati. Una strada è l'Event Receiver, ma occorre compilare del codice, non sempre possibile, su tutti gli ambienti dei nostri clienti. Così, la strada del javascript (o con più facilità, con jquery). Nota : questa strada è possibile SE tutti i nuovi documenti sono caricati tramite la form di upload o modificando le proprietà da browser! Per upload massivi o creazione di nuovi documenti da template, questo discorso non è valido ed è necessario intervenire con l'Event Receiver! Modifichiamo la master page, con il richiamo alle librerie jquery e con l'inseriemto del codice sottostante: function SetFieldTitleFromNameAut...

Sharepoint 2010 - Advanced Settings for Document library in SharePoint 2010 using PowerShell

Image
In this article we will be seeing how to change the Advanced Settings for Document library in SharePoint 2010 using PowerShell and c#. Go to Document Library => Library Settings => General Settings =>Advanced Settings. Using C#: using  (SPSite site = new SPSite("http://serverName:1111/"))             {                 using (SPWeb web = site.RootWeb)                 {                     SPList docLibrary=web.Lists["Doc Library"];                      // Change the advanced settings          ...

Sharepoint 2010 - Ajax List Web Part

Image
I need web part that read from Site Collection, each Subsite, each Document Library, each Document, and return list of latest Documents of the entire Site Collection. Not very hard to develop, but it's very very bad in performance.. Web Part page take a long time to render. So the ajax idea. But how to? I found no way to expose ajax properties in tool panel of WP developed in VStudio. If you know how to.... write me, please! I checked out many posts, forums, articles about how to integrate Ajax Toolkit in Sharepoint. Then I do my way. I referenced Ajax Toolkit dll in my project. Download the right toolkit for Sharepoint here:  http://ajaxcontroltoolkit.codeplex.com/releases/view/33804 . To use the Ajax Control Toolkit in any web part control add the following lines to register the Ajax Control Toolkit namespace: <%@ Register Assembly="AjaxControlToolkit, Version=3.0.30930.28736,  Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" Namespace="AjaxCon...

Sharepoint 2010 - Set Editor (Modified By) for Document in Doc Lib

I found many problems to update the field "Modified By" in a document loaded programmatically in a Document Library. After several attempts I found my solution. Use the "vti_modifiedby" from ListItem.File.Properties. Therefore, you must run these lines of code: spListItem.File.Properties["vti_modifiedby"] = SPContext.CurrentWeb.CurrentUser.LoginName; //Properties wants string spListItem.File.Update(); It Works! It does not works for  Document Set. I have not found the correct procedure. If anyone knows, write me!

Sharepoint 2010 - Modify Documents Properties with ECMA Script

Finally I found the way to modify document properties with ECMA Script! It's not an hard work for Document Libraries with no mandatory check out. Here the script: function updateDocument(action, docLibId, docId, fieldName, fieldValue) {     var context = new SP.ClientContext.get_current();       var web = context.get_web();       var docLibGuid = new SP.Guid(docLibId);       var docLib = web.get_lists().getById(docLibGuid);       var doc = docLib.getItemById(docId);       doc.set_item(fieldName, fieldValue);         doc.update();       context.executeQueryAsync(Function.createDelegate(this, this.successUpdateDocument), Function.createDelegate(this, this.failed));  } function successUpdateDocument(sender, args) {       //reload page if success       location.reload(true); } But when we set check out mandatory, we ...

Estrarre immagini da PDF o convertire pagine PDF in immagini in C#

E' stata dura. Molto dura. Una nuova sfida: Estrarre immagini da un PDF o convertire una pagina PDF in una immagine. Con C#. Ho dovuto guardarmi parecchi forum e blog per arrivare ad una soluzione decente, free e con poco sforzo. Partiamo dal primo caso: Estrazione di una immagine da una pagina di un documento PDF. Ho utilizzato iTextSharp, che normalmente usiamo per generare PDF, ma che è stato utile per leggere il file e trovare in esso le immagini. Il metodo qui sotto ritorna lo stream dell'immagine.. perché a me serviva così. Vediamo il codice (dopo aver referenziato la DLL di iTextSharp): using iTextSharp.text; using iTextSharp.text.pdf; static Stream ExtractImagesFromPDF(string sourcePdf) { System.IO.MemoryStream streamImage = new MemoryStream(); // NOTE: This will only get the first image it finds per page. PdfReader pdf = new PdfReader(sourcePdf); RandomAccessFileOrArray raf = new iTextSharp.text.pdf.RandomAccessFileOrArray(sourcePdf); int numbOfPag...

Sharepoint 2010 - Aggiungere bottone al Ribbon : aprire nuovo Documento da Template

Image
Ecco una cosa interessante. Aggiungere nuovi bottoni al Ribbon di una lista, in Sharepoint 2010, è abbastanza semplice. Ho già scritto come farlo con ancora più facilità, tramite lo Sharepoint Designer 2010 ( clicca qui ). Ora, vediamo come aggiungere una azione personalizzata al bottone in modo che replichi le funzionalità di bottoni già esistenti. Lo scenario è questo. Siamo in una Document Library. Cliccando sulla lista, viene visualizzato il Ribbon della lista. Nella sezione Documents, a sinistra, abbiamo il bottone New. Se abbiamo più Content Type (e template) per i Documenti, vedremo una tendina con la scelta del nuovo Documento da creare. Se configurato per l'esecuzione sul Client dell'utente, al click su, ad es, New Template1, viene avviato MS Word con il template in oggetto. Ma se volessimo creare un nuovo bottone sul Ribbon che faccia da solo questo? In altre parole: non voglio cliccare su New, per poi selezionare dalla tendina quello che serve. Voglio ...

Sharepoint 2010 - Aggiungere bottone al Ribbon con Sharepoint Designer 2010

Image
Vediamo come aggiungere un bottone personalizzato al Ribbon di una lista o document library, utilizzando solo lo Sharepoint Designer 2010. Apriamo il sito con SPD2010, nelle liste, selezionamo la lista che vogliamo utilizzare. A fondo pagina, vediamo il blocco Azioni Personalizzate. Non clicchiamo su Nuovo, ma facciamo un clic con il mouse all'interno del blocco e dal menu contestuale, scegliamo Azione Personalizzata. Vediamo un menu a discesa con diverse opzioni: La traduzione italiana pessima rende oscura l'interpretazione delle voci... Provo a spiegarle. Menu voci elenco : il bottone è visualizzato nel menu a tendina sull'item Visualizza barra multifunzione modulo : il bottone è visualizzato nella scheda "View properties" Modifica barra multifunzione modulo : il bottone è visualizzato nella scheda "Edit properties" Nuova barra multifunzione modulo : il bottone è visualizzato nella scheda "New item" Visualizza barra multi...