Copy and paste across Google Slides
I wanted to copy slides from one Google Slide document to another. Half-expecting it to not work, I just copied slides in one document, switched to a different tab, hit paste… and it worked! Seamless and perfect.
It looks like when you copy slides, your clipboard actually saves a special payload that contains information about the slides you are copying, rather than the raw content. Then when you paste that into a Slides document, it retrieves the slide data from its servers and imports them to the second document. I imagine you have to be logged into the same Google account in both tabs for it to work properly.
You can actually look at the raw clipboard data by using a custom HTML page like below:
<!DOCTYPE html>
<html>
<head><title>Clipboard Viewer</title></head>
<body>
<h1>Paste clipboard contents here (Ctrl+V)</h1>
<pre id="output"></pre>
<script>
document.body.addEventListener('paste', async (event) => {
const output = document.getElementById('output');
output.textContent = '';
const clipboardItems = event.clipboardData.items;
for (let i = 0; i < clipboardItems.length; i++) {
const item = clipboardItems[i];
const type = item.type;
output.textContent += `MIME Type: ${type}\n`;
if (item.kind === 'string') {
item.getAsString((str) => {
output.textContent += `Content:\n${str}\n\n`;
});
} else if (item.kind === 'file') {
const file = item.getAsFile();
const text = await file.text();
output.textContent += `File Content:\n${text}\n\n`;
}
}
});
</script>
</body>
</html>
After copying slide data and pasting it to this page, I saw:
MIME Type: text/html
MIME Type: text/plain
Content:
<head><meta charset="UTF-8"></head><b id="docs-internal-guid-2b163f80-7fff-e9cd-4022-54d9d4edcc57" style="font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-weight: normal;"><span> </span></b>
Content:
That docs-internal-guid-*
looks like the important bit. Copying multiple slides also results in a single guid, so I guess this is just a catch-all hash that saves all information about whatever it is that you had copied. Pretty cool.
Did you like this post, or have any thoughts to share? Please send me an email!