How to set ClientUrl in ChekInfoFile in MS WOPI Office Online using WebDav - webdav

I have developed MS WOPI that works on the browser, that is, we can view and edit documents stored in the database, in the browser. But I am unable to open the documents in MS Word desktop application.
I found in some answers here that we need to set the ClientUrl field of CheckFileInfo endpoint using WebDav.
I have no knowledge of WebDav, I tried to find more about it on the net but not able to fully understand it.
Just want to know what is the general format of the WebDav link for a specific file that we need to set in ClientUrl after we have set up a WebDav?
Is it something like this https://serverAddressLockToken/FileName.ext

The format of the WebDAV URL is not really important. A specific format of a URL won't make WebDAV work by itself. You need to implement a WebDAV server that will serve your files to client apps and will also define the format of accepted URLs.
WebDAV, similarly to WOPI, is quite a complex protocol and if you don't want to implement it from zero, I recommend using one of the available solutions, e.g. ITHit's WebDAV Server.
There are also Office URIs that might pose an acceptable alternative for you. Check out my other answer here.

Related

Sharing large files efficiently on web link

I would like to provide a link on my web site to download a large file. This should be done with scale in mind. What is best efficient way as of today?
Of course i can do a classic way:
<a href="//download.myserver.com/largefile.zip" title="Download via HTTP" >
The problem with this approach is: i dont want traffic to my server to explode with downloads. So I would rather redirect to external hosting for this large file. What is best way to host this file then?
If you want to avoid download traffic to your server, then I personally suggest using Azure Blob Storage. There is lots of documentation and client libraries for .Net. It removes download traffic from your site and the security concerns of hosting files and moves them to the Azure cloud which is very secure to say the least.
If you want the files to be publicly available to anyone, then make a public container, get the url of the file you want and place it in the anchor tag, otherwise you may need to familiarise yourself with the blob leasing (plenty of documentation too). Though like most things it is not free. The silver lining is you only pay for what you use.
You can get started here.
https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet
Disclaimer,
I do not work for Microsoft, nor I do not benefit form this. This is just a personal opinion based on previous experiences and projects.

How to serve a PDF file via a HTTP request

I'm working with some new SCADA software, which uses a browser environment to display everything. One component that the software has is a PDF viewer, however, since we're in a browser environment, it can only load files that are served up over HTTP. According to the forums, this means that the source of the PDF needs to be a URL.
The forum also notes that I can use one of their modules (WebDev) to "stream the PDF bytes over HTTP", and provides directions for how to do so. However, the WebDev module is outside the budget of my project (it's quite a high-powered module, I'd be paying a premium price and then using 1% of its functionality). So I'm wondering if it's possible to serve up a PDF via HTTP some other way.
I'm not an experienced programmer - I'm self taught out of necessity on a small handful of languages, and to a basic level only. As such, I don't fully understand the problem, nor do I know what search terms to use to find the sort of information I need to solve it.
If anyone's able to provide a partial solution, or even just able to help me understand what I'm asking for and where to go looking for some answers, I'd appreciate it!
The PC hosting the PDF files and the SCADA gateway is running Windows 10.
I had the same issue integrating .pdf report to our SCADA system having web interface and running node.js at backend.
The main point is:
Generate your pdf in client end (web interface)
Convert it to Base64 format as URi
Preview on DOM or send it to server!
Send excel and pdf to server side
hope that helps!

Open InDesign in/from Browser with the ability to save the document back

Microsoft Word and Microsoft Excel have the ability to open documents by URI (for instance pointing to a web server) and to save them back after they got edited. This functionality can also be invoked by a browser. This, for instance, is done in products like Atlassian Confluence and Microsoft Sharepoint.
Is it possible to open an Adobe InDesign (while InDesign is installed on the computer, ofc) document in a (similar) way like described above?
This means:
Invoke InDesign (embedded in browser or as separate application), but by the browser.
Open a document by specifying an URI (for instance on a web server), also by the browser.
After close or when the user presses save, InDesign will PUT or POST the document back to the URI. (Or use an alike way.)
The short answer is no.
You can build a system with web front-end and InDesign Server as a back-end. This will achieve the functionality you describe and user will not need a local copy of InDesign.
Another, simpler(and cheaper) option is to use one of the cloud services, like dropbox, or Adobe Creative Cloud with a shared folder and share the files for collaboration.
May be, there is a plugin capable of doing something similar, but I did not come across anything like this. So, another option is to build a plugin, although it will have to be distributed to every end-user and you will need your web service to server the files.

Edit in Word using Wopi and Office Online Server

I am working on a project where we have implemented content management with word.
We have some word files, that are being processed using OpenXML.
Users can open those files in two ways - download a copy or edit online. Online editing is implemented using Office Online Server and custom Wopi server, built based on this example.
Editing online works fine, but Word Online has limited features compared to desktop Word.
I am trying to build a functionality similar to Sharepoint, where user has 2 options - Edit in Word, Edit in Browser:
In Office Online Server I don't have such options, I can only edit in browser:
Even in edit mode Sharepoint provides a link for Edit in Word:
whereas Office Online Server does not have it:
My question is how it is implemented in Sharepoint?
In other words, am I missing something in Wopi server to enable it or Microsoft has built this functionality into Sharepoint, without the need of Wopi and/or OWA?
Any ideas would be appreciated!
To enable "Edit in Word" in Office Online Server when using a WOPI handler, you need to set the ClientUrl property in CheckFileInfo (and CheckFolderInfo if you implement that). ClientUrl should be set to a direct editable link for the document file, either WebDAV or FSHTTP, but you could even use a file:// link for testing.
When you set the ClientUrl property, Office Online behavior becomes very similar to OneDrive/SharePoint Online. The current WOPI documentation is a bit outdated, it lists this property under Unused and future properties, but there is nothing secret about it. I asked dochelp#microsoft.com, that is Microsoft's "Open Specifications Support" mailbox, mentioned in many of their presentations and publications about WOPI and Office Online.
Word Online Reading View:
Word Online Editing View after clicking OPEN IN WORD:
I'm pretty sure that the functionality (Edit in Word) is not part of the Office Online Server and that it doesn't utilize the WOPI protocol. In the previous versions of SharePoint, it was implemented using WebDAV and I guess this hasn't changed. If you want to support opening/editing/saving you should implement your own WebDAV server. You can save a lot of time if you use a pre-built server like one from ITHit. They also have a JS framework to support opening files from browser.
If you want a cheap, cross-browser alternative that will just invoke the editing apps I suggest you have a look at Office URIs.

How to access client's outlook in ASP.net?

What I want to do with my app is accessing client's outlook, getting some data, using them to get more data from the database, and then make a file ready for blackberry to sync. All of these are better done on the server, so at the clients' end, there is only one file with everything ready, so they can easily sync it. I have searched a little, and found it is possible if I access exchange server. Could any one explain in details? I know nothing about exchange servers. Also, is there any other possible solutions?
Thank you.
Ok,
As i said you have a number of options.
I assume that you want to run this from a IIS server as you title says "Asp.Net"
Also I will assume that you want to do this in managed code. i.e not write a com object or native code.
Your options then, are to speak to exchange via web DAV , Exchange Web Services (EWS) or use a great 3rd party tool called Redemption which has RDO objects.
If you are running exchange 2007 EWS is the way to go. if you running earlier versions Web Dav is the way to go both these ways are supported by MS. RDO can be used with both versions but is supported by Dmitry Streblechenko
As far as EWS and DAV there are quite allot of resources out on the net and information on stackoverflow.
Also there are a few libraries that wrap EWS and web Dav calls up which may get you up and productive quicker.
http://www.independentsoft.com/webdavex/index.html is a good example.
EWS Resources
http://msdn.microsoft.com/en-us/library/bb204119.aspx
http://msdn.microsoft.com/en-us/library/cc540447.aspx
http://blogs.visoftinc.com/archive/2008/03/20/Using-Exchange-Web-Services-2007-The-Basics.aspx
http://www.webreference.com/programming/asp/Ajax_WebService/
WebDav
http://msdn.microsoft.com/en-us/library/aa486282(EXCHG.65).aspx
http://www.msexchange.org/articles/Access-Exchange-2000-2003-Mailbox-WebDAV.html
http://blogs.technet.com/kclemson/archive/2004/01/23/62247.aspx
http://gsexdev.blogspot.com/2005/04/aspnet-and-exchange-tips-and-samples.html
For Redemeption go to the Redemption site http://www.dimastr.com/redemption/ there are loads of examples most of them in VBA/VB but you can easliy transpose then into C#
Personaly I think that you should go down the MS supported routes first.
Marcus

Resources