Creating Link to a Specific Powerpoint Slide via Add-in - powerpoint

If you right click on a Powerpoint slide in the online web app, you can use the "Link to this slide" menu to get a URL. That URL can be used to take you back to that specific slide.
We have a Powerpoint add-in and there does not appear to be a way to access that URL programmatically so I would like to try and generate it.
I have found that the URL contains a URL parameter called "nav" and this is a base64 encoded string. Here is what it looks like when decoded:
{"sId":258,"cId":649829976}
I know the sID is the slide ID and I can obtain this programmatically within the add-in.
Does anyone know what the "cId" is? For each slide, it is different so I don't think it is something using to the document itself, but rather it is tied to the slide.

Related

Insert HTML in PowerPoint document with a content add-in

I am looking to develop an Office content add-in for PowerPoint. The purpose of this add-in is to embed HTML(an iframe) into a slide. Something similar to Web Video Player.
Looking at the docs, the way you would implement this is via Document.setSelectedDataAsync, however the HTML coercion type is not supported in PowerPoint.
Is there another way to insert/embed HTML content into PowerPoint, seeing as the add-in linked above is able to do it?
Web video player shows the HTML directly in the content pane for the add-in instead of inserting it into the document. For example, you could use something like:
document.body.innerHTML = myCustomSlideHTML;
-Michael (developer of Web Video Player)

Umbraco - how to insert clickable images into page?

I am a beginner with Umbraco. I am able to upload images to the Media Library and then put them onto the page, but for my sidebars I want the images to be clickable links to other parts of my site and other sites.
At the moment I am using the Rich Text Editor to write an anchor tag etc. but this seems ridiculous and I don't want content authors [attempting to be] writing HTML.
It seems like there should be a built-in data type for this, or a property on the image but I see nothing. Do I need to write my own Razor code as a DataType? This seems like such a common thing that I'm surprised there is not a built-in solution.
I'm using 7.2.8
If you're already using the RTE, you can just select the image and click the Link button, then whatever you have selected (in this case the image) should become a link. No need to make your own HTML :-)

XPINC launch an attachment instead of downloading it

Is there a way to launch (open without saving) an attachment through XPINC? Something like the popup in web browser that ask you whether to open the attachment using a program or just save it first. Or maybe there's some setting in the notes client that I've yet to found that will launch an attachment?
I tried to built my own file download control so that I can built the URL to directly launch the attachment. It consist of a repeat control bounded to the attachment field and just a link control within it with URL computed as curRow.getHref()
And that worked fine but still it ask for me to save instead of launching the attachment directly. Changing the above code to curRow.getHref() + "?Open" also yield the same result. Any workaround?
The only way that I could find to do this was to construct a notes url that opened a conventional Notes form that had the launch property "Launch First Attachment" and only a single attachment.
It worked well but is obviously limited to documents with a single attachment. It also prevents the form from being opened as xpages by default but that is usually manageable.
You could construct documents on the fly and open them but that seems rather clumsy.
This is the formula for my XPage link in a repeat
var repIDVar = database.getReplicaID();
"notes://"+#Name("[CN]",#Subset(#DbName(),1))+"/"+repIDVar+"/0/"+rowData.getUniversalID()

Outlook 2012 signature with image without attachment

I am trying to create an email signature in outlook 2010 with the company logo embedded.
As i am working my way trough this, i find it very strange that the included image is sent as an attachment.
It doesn't show as attachment on Outlook from other users. But it does on Mac, hotmail and so on..
I have already tried to include it via HTML, thus placing the image on a FTP and loading it from there, and i have tried including it trough the signature editor, both won't make it work..
Is there a code to make this function?
Why do you find it strange that the image is included as an attachment? Without it, there is no way for the recipient to view the image, as the email itself is text only. I imagine the only reason it doesn't show as an attachment in outlook is because outlook is smart enough to know that it's not a "real attachment" per se, but just the signature. Even then, I remember recieving signature images as attachments in older versions of outlook.
That said, it should be possible to use a linked image in your signature. This link explains how to do it.
Creating an Outlook signature with an image or picture located on the Internet requires changing Outlook’s behavior on how to deal with linked images and also adding the image in a specific way. Once the image is inserted, you can use the Signature Editor to turn the image into a hyperlink to a website.
Set Outlook to link to pictures instead of embedding them
The first step is to change Outlook’s behavior on how to deal with linked pictures. By default Outlook will embed them with the message, but this would mean that your picture would be a reflection of when you created the message instead of when the the recipient is reading (or even re-reading) your message.
Depending on how often you change your picture, this might be a non-issue but it would also mean that the picture gets added each time and thus making each message quite a bit larger. In several cases this could also result in your picture being added as an attachment and/or show the message with a paperclip icon.
These are all things that you should want to avoid; if not for you, then definitely for the recipient’s sake.
In Outlook 2003 and previous you can change this behavior via;
Tools-> Options…-> tab Mail Format-> button Internet Format-> option: When an HTML message contains pictures located on the Internet , send a copy of the pictures instead of the reference to their location.
In Outlook 2007 and 2010, this can behavior can only be changed via the Registry.
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\\Outlook\Options\Mail
Value name; Send Pictures With Document
Value: 0
For more info about this registry key see; Where did "HTML options" go in Outlook 2007/2010?
Insert image as link
When inserting the image into your signature, you must again make sure that the image is linked. If you do not do this, then the current image will be downloaded and saved within your signature and wouldn’t update when you change it on-line.
Outlook 2003
Right click in the Signature Editor (do not use Advanced Edit) and choose; Insert Image…
Type the Internet address (URL) to the image in full when prompted for the Picture Source.
Click OK
Outlook 2007 and Outlook 2010
Click on the Picture icon in the Signature Editor
As the file name, type the Internet address (URL) to the image in full.
Instead of clicking on Insert, click on the little down arrow on the Insert button and choose; Link to File
Create a hyperlink
Once the image has been added, you can make it clickable and point it to a website via the the Hyperlink function.
Outlook 2003
Right click on the inserted image and choose; Edit Hyperlink
Outlook 2007 and Outlook 2010
Select the image and click on the Hyperlink icon
It seems to be more a matter of how the client displays it. Different clients are going to deal with the image in different ways, especially from a security standpoint. Have you tried linking to an image directly from the Web?
Here's some additional info:
http://www.howto-outlook.com/faq/imagesignature.htm

Firefox Extension that copies HTML link to current web page to clipboard and not just the URL

The Situation
I need to automate the copying of a HTML link to the current page that
is viewed in the current Firefox Tab into other WYSIWYG editors. This
is not the same as copying just the plain-text of the URL, nor is it
the same as pasting just the plain-text of the web pages title. This
is also not the same thing as navigating to some other web page that
has the HTML link to the page of interest, selecting the text with the
mouse cursor, and typing CTRL-C to copy it into the current operating
systems clipboard (both Linux and Windows, should not make any
difference). Only the update to the clipboard is to be automated; the
pasting from the clipboard into the target application will be done
manually.
The desired use case is as follows:
The user browses to any web page from within Firefox.
The user types some user-specified key sequence that is not
in conflict with standard Firefox built-in key bindings.
Firefox will then do only part of what Copy Link Bookmarklet
does: Instead of opening up a new separate window/tab and
constructing and rendering the HTML for the link, and then
requiring the user to waste motion in selecting and copying the
link into the clipboard, the extension will then format the HTML
itself and copy that into the clipboard directly.
The user then selects any of the targets described below and
types CTRL-V to paste the formatted text.
The user then sees the link as a link in that target area, and does
not see anything literal like http://...
For example, if the webpage browsed to was http://www.google.com, and
the user clicked the user-defined key sequence, and if the user pasted
it into some Google Document, what they would see in that document is
not http://www.google.com nor would they see Google, but instead
would see what you would see when you read this in StackOverflow in a
web browser: Google
Now, there are Firefox extensions and bookmarklets that come close,
but they all involve no net reduction in mouse motion and/or key press
overhead, which is the most time-wasting aspect of this frequently
occuring use case. My searches for an existing extension turned
up nothing that exactly meets my needs (see Research section
below). Therefore, I think I may need to roll my own extension (or
modify an existing one), unless someone can point me to an existing
extension that provides this functionality.
The extension I have in mind should work in Firefox version 11 or
greater running on either Linux or any version of Windows. Only
Firefox and a suitable Firefox extension should be needed, and not any
other special software.
Targets of the paste should be:
GMail compose text areas
Google Documents
Microsoft Word documents
Microsoft Outlook compose text areas.
Any other WYSIWYG editor such as the Blogger post editor.
Notepad (in which case it is the web page title that is pasted only
and not the URL, or both the web page title and URL as separate
plaintext; either way).
About user-specified key bindings: If there was an extension already
that did the above but without providing the ability to bind a
keybinding to it, then I would expect to be able to use the keyconfig
extension extension to handle that aspect. Actually, that might
even be preferable; I don't know yet.
Research
Below are approaches I investigated that came close to what I want,
but did not exactly meet the need:
Hacking on Copy Link Bookmarklet won't work because, from what I can tell, there is no way to update the OS's clipboard from a bookmarklet, hence why I think that a Firefox extension is required.
In a Firefox extension, how can I copy rich text / links to the clipboard?
3 FireFox Addons to Easier Copy Links and Anchor Texts -- None of the extensions listed do what I want because they force you to use the right mouse button and navigate down one or two levels of context menu, which is wasted motion.
Copy Link Text (CoLT) -- CoLT also supports copying a hyperlink and it’s associated text as a rich-text formatted link, however it does not include a default keybinding. It looks like someone else is attempting to tie keyconfig to CoLT, which might be an option as a solution.
Copy URL Plus -- Looks like it has the copy-to-clipboard logic, but doesn't look like it has been maintained since Firefox 1.x timeframe.
I am answering my own question:
The CTRL-SHIFT-F11 binding will silently stop working if both keysnail and keyconfig are installed into the same Firefox browser. The fix for me was to simply uninstall keysnail as I don't use it.
I did not actually need to write my own Firefox extension, but I did
need to scrape out a bit of code that copies the richtext link from
the Copy Link Text (CoLT) extension and apply it directly as a
binding into the keyconfig extension as follows:
Install the keyconfig extension.
Restart Firefox.
After Firefox loads up, type CTRL-SHIFT-F12 to bring up the keyconfig configuration menu.
On the bottom of the page, click on the Add a new key button.
In the Name field, type in some suitable name such as Copy Rich Text Link to Current Page.
Type in the following chunk of Javascript code (This code I carved
out of the objCoLT.CopyBoth function inside the content/colt.js
file inside the Copy Link Text (CoLT) extension):
var url = content.document.location.href;
var text = content.document.title;
// Use the users selection instead of the title if text is selected:
var selection = document.commandDispatcher.focusedWindow.getSelection().toString();
if (selection != "")
{
text = selection;
}
var richText = "" + text + "";
var xfer = Components.classes["#mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
xfer.addDataFlavor("text/html");
var htmlString = Components.classes["#mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
htmlString.data = richText;
xfer.setTransferData("text/html", htmlString, richText.length * 2);
var clipboard = Components.classes["#mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
clipboard.setData(xfer, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
Click Ok.
Back in the main Keyconfig dialog, <disabled> should be shown in the text field to the left of the Apply button.
Click in that text field, and type the keybinding you want to associate with it, such as CTRL-SHIFT-F11.
Click the Apply button.
Click the Close button to close the Keyconfig configuration dialog box.
To test this out, proceed as follows:
In Firefox, navigate to some arbitrary page.
Type in CTRL-SHIFT-F11 (or whatever keybinding you chose above).
Notice that no dialog boxes popup; that is intentional.
Open up Google Documents, and Create a new document.
Click in the new document, and type CTRL-V.
You should see the HTML/rich-text form of the link pasted in.
Click on the link and then click on the URL to the left of Change.
The browser should open up the original page corresponding to that URL.
I have been able to copy URL as HTML with the following bookmark:
javascript: navigator.clipboard.write([new ClipboardItem({ ["text/html"]: new Blob([`${document.title}`], { type: "text/html" }) })]);
Unfortunately in firefox the Clipboard write API still requires to set thedom.events.asyncClipboard.clipboardItem to true in about:config.
Several extensions exist that offer copying of title and URL but few seem to support Rich Text creation. The key is that the copied text needs to be formatted in html with a href and it needs to be copied as a text/html type.
The extension I went with in the end is CopyTabTitleUrl. (GitHub) It supports both requirements and also has a keybind feature along with a toolbar button that can also function as a single-click copy.
Set the Format option to:
${title}
Then Activate Extended Mode and make sure to check the "Copy in text/html format" option in Other. After that, using the format copy, the result can be correctly pasted into Office applications. And Stack Exchange evidently as the links above were created by the add-on.
Note that the Edge implementation of URL copying seems to be somewhat different still. With a default plaintext paste, Edge will just paste in the URL while this approach will of course paste unformatted HTML. But it's close enough.

Resources