# Perspective Screenshot Capture

**URL:** <https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [April 23, 2019, 1:32am UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312 "2019-04-23T01:32:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![roger\_larson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/roger_larson/32/8574_2.png) [@roger\_larson](https://forum.inductiveautomation.com/u/roger_larson)\
**Post date:** [April 23, 2019, 1:32am UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/1 "2019-04-23T01:32:08Z")

</div>

Hi all,

Is there a way to take screen shots / screen captures in Perspective as we did in Vision with system.print functions? I’m thinking of using the system.perspective.download function to print out a byte array of an image/png to a file. It looks like system.file and system.print do not function with Perspective, however.

Any ideas here? And would you have to grab the session as the Vision equivalent of a parent window’s parent?

Best,  
Roger

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 23, 2019, 3:05pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/2 "2019-04-23T15:05:44Z")

</div>

This would currently require a custom module - capturing screenshots from web browsers is a surprisingly complicated problem. Your best bet in the short term might be to try to train users to use built-in browser tools - new versions of Firefox, for instance, have a very powerful built in screenshotting tool.

What’s the use case of these screenshots, out of curiosity?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 23, 2019, 3:19pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/3 "2019-04-23T15:19:05Z")

</div>

> [@paul-griffith](#):
>
> Firefox, for instance, have a very powerful built in screenshotting tool.

I hadn't [noticed this](https://screenshots.firefox.com/)... nice tip!

---

<div class="post-metadata">

**Author:** ![roger\_larson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/roger_larson/32/8574_2.png) [@roger\_larson](https://forum.inductiveautomation.com/u/roger_larson)\
**Post date:** [April 23, 2019, 3:20pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/4 "2019-04-23T15:20:16Z")

</div>

Really? That’s super interesting that the problem is more complicated than it seems!

The screenshots are to be used for a “Support Ticket” type functionality, where if an operator or someone sees something wrong with something (e.g. a value is wrong, or something is mislabeled or misspelled), finds a weird bug, or has a feature request, they can submit some details and it automatically snaps an image of the current screen.

So it works on Vision for sure, but our client is pushing to move things to Perspective now and I advised of some loss of functionality, this potentially being one.

If we were to do a custom module, what packages would likely be needed?

Best,  
Roger

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 23, 2019, 3:42pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/5 "2019-04-23T15:42:37Z")

</div>

Internally, we use [`html2canvas`](https://html2canvas.hertzen.com/) to generate the view thumbnails used in the designer.

---

<div class="post-metadata">

**Author:** ![roger\_larson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/roger_larson/32/8574_2.png) [@roger\_larson](https://forum.inductiveautomation.com/u/roger_larson)\
**Post date:** [April 23, 2019, 3:49pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/6 "2019-04-23T15:49:24Z")

</div>

Cool, thanks! I’m going to play around with this and a few other things to see the feasibility of taking screenshots in Perspective. Looks like a few python packages could potentially do this as well, but I have to verify that.

---

<div class="post-metadata">

**Author:** ![Steve\_Laubach](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/steve_laubach/32/60900_2.png) [@Steve\_Laubach](https://forum.inductiveautomation.com/u/Steve_Laubach)\
**Post date:** [May 6, 2020, 1:50pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/7 "2020-05-06T13:50:37Z")

</div>

Wow, I hadn’t noticed that Firefox option either. Nice.

I have a customer that would like to screenshot their charts from a timeseries chart. They asked about taking screenshots within a perspective app. An image export method on the time series chart would satisfy their wants.

---

<div class="post-metadata">

**Author:** ![Sanderd17](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sanderd17/32/8735_2.png) [@Sanderd17](https://forum.inductiveautomation.com/u/Sanderd17)\
**Post date:** [May 6, 2020, 2:28pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/8 "2020-05-06T14:28:14Z")

</div>

> [@roger\_larson](#):
>
> Really? That’s super interesting that the problem is more complicated than it seems!

There are some security considerations to make with screenshots (for the browser vendors that is). In the old days, you could have an iframe. If you take a screenshot of that, it could potentially show data from a logged in user on a different site.

Today, you have the shadow dom which is encapsulated. This can also be used to log in somewhere else and show private data. Though AFAIK, it's less automatic than iframe login.

So just saving the actual rendering will be a security issue. Taking the already accessible DOM, and rendering it somewhere (on the server or on a canvas) is not an issue.

There are however newer APIs that enable screen sharing, even of apps outside the browser. But those require explicit permission from the user. [Using the Screen Capture API - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API/Using_Screen_Capture)

---

<div class="post-metadata">

**Author:** ![nader.chinichian](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nader.chinichian/32/9261_2.png) [@nader.chinichian](https://forum.inductiveautomation.com/u/nader.chinichian)\
**Post date:** [January 8, 2021, 8:56am UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/9 "2021-01-08T08:56:21Z")

</div>

Hi Paul  
With the new workstation is it now possible to add screenshot of current page in perspective?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 8, 2021, 3:57pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/10 "2021-01-08T15:57:44Z")

</div>

Not presently, although it looks like it might be possible to expose a JxBrowser method. I’d suggest an [ideas.inductiveautomation.com](http://ideas.inductiveautomation.com) post, so we can gauge community interest in the feature.

---

<div class="post-metadata">

**Author:** ![franklepkowski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/franklepkowski/32/4808_2.png) [@franklepkowski](https://forum.inductiveautomation.com/u/franklepkowski)\
**Post date:** [January 31, 2023, 9:49pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/11 "2023-01-31T21:49:15Z")

</div>

Hello,  
Has this gotten any traction? I would like to be able to screen shot a portion of a perspective view. This would be running in workstation in kiosk mode.

Thanks,

Frank

---

<div class="post-metadata">

**Author:** ![roger\_larson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/roger_larson/32/8574_2.png) [@roger\_larson](https://forum.inductiveautomation.com/u/roger_larson)\
**Post date:** [February 24, 2023, 1:00am UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/12 "2023-02-24T01:00:15Z")

</div>

OP here. I'm also still interested in this feature, but it looks like it hasn't moved anywhere. I would still like this for easier end-user use of a "Support Portal" type tool. For now, we're just having the user take a snippet and then upload the file. It works, but auto-screenshots would be much nicer with just one simple click.

Cheers,  
Roger

---

<div class="post-metadata">

**Author:** ![Leandro\_Garcia\_Carva](https://avatars.discourse-cdn.com/v4/letter/l/6f9a4e/32.png) [@Leandro\_Garcia\_Carva](https://forum.inductiveautomation.com/u/Leandro_Garcia_Carva)\
**Post date:** [June 1, 2023, 11:01pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/13 "2023-06-01T23:01:02Z")

</div>

HI I converted several projects from vision to Perspective and I`m really need a Button script to print current screenshot to default printer.  
No Idea how to make it. Any news about this topic?

Regards,

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 1, 2023, 11:56pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/14 "2023-06-01T23:56:51Z")

</div>

Same answer as before; you can't at the moment (and probably won't be able to in the near future either), unless someone writes a module to do it

---

<div class="post-metadata">

**Author:** ![Ryan\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_allen/32/47013_2.png) [@Ryan\_Allen](https://forum.inductiveautomation.com/u/Ryan_Allen)\
**Post date:** [June 2, 2023, 12:53am UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/15 "2023-06-02T00:53:06Z")

</div>

You could probably use autohotkey or something similar to create a script for this. Obviously outside the scope of the Ignition forums though

---

<div class="post-metadata">

**Author:** ![Leandro\_Garcia\_Carva](https://avatars.discourse-cdn.com/v4/letter/l/6f9a4e/32.png) [@Leandro\_Garcia\_Carva](https://forum.inductiveautomation.com/u/Leandro_Garcia_Carva)\
**Post date:** [June 2, 2023, 12:34pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/16 "2023-06-02T12:34:33Z")

</div>

Sorry, no deep knolege about it. Do you know someone who could help me?

---

<div class="post-metadata">

**Author:** ![Leandro\_Garcia\_Carva](https://avatars.discourse-cdn.com/v4/letter/l/6f9a4e/32.png) [@Leandro\_Garcia\_Carva](https://forum.inductiveautomation.com/u/Leandro_Garcia_Carva)\
**Post date:** [June 2, 2023, 12:39pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/17 "2023-06-02T12:39:10Z")

</div>

But I`m not able to call it to de Ignition project, right? I should make it outside of Ignition and use it outside of Ignition, isn`it?  
Sorry, but I`m not so skilled in this kind of thing.  
Regards,

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 2, 2023, 1:06pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/18 "2023-06-02T13:06:59Z")

</div>

There's no way to actually call this to run though from Perspective

---

<div class="post-metadata">

**Author:** ![Ryan\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_allen/32/47013_2.png) [@Ryan\_Allen](https://forum.inductiveautomation.com/u/Ryan_Allen)\
**Post date:** [June 2, 2023, 1:07pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/19 "2023-06-02T13:07:21Z")

</div>

I would think you could use [system.util.execute - Ignition User Manual 8.1 - Ignition Documentation](https://docs.inductiveautomation.com/display/DOC81/system.util.execute) to run the ahk script. But I could be wrong as I've never tried.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 2, 2023, 1:07pm UTC](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312/20 "2023-06-02T13:07:45Z")

</div>

You could, but it would run on the gateway, not the client

[Next page](https://forum.inductiveautomation.com/t/perspective-screenshot-capture/24312.md?page=2)
