All Projects → Dani3lSun → Apex Plugin Apexscreencapture

Dani3lSun / Apex Plugin Apexscreencapture

Licence: mit
Oracle APEX Dynamic Action Plugin - APEX Screen Capture

Labels

Projects that are alternatives of or similar to Apex Plugin Apexscreencapture

Learning Library
Learning Material for Oracle Technologies
Stars: ✭ 512 (+3313.33%)
Mutual labels:  oracle
Blog
Everything about database,business.(Most for PostgreSQL).
Stars: ✭ 6,330 (+42100%)
Mutual labels:  oracle
Experdb Db2pg
eXperDB-DB2PG is a data migration solution that transfers data extracted from various DBMSs to eXperDB or PostgreSQL. Currently, Oracle and Oracle Spatial, MySQL, SQL Server(MS-SQL) and Sybase data can be transferred.
Stars: ✭ 24 (+60%)
Mutual labels:  oracle
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+176960%)
Mutual labels:  oracle
Laravel Oci8
Oracle DB driver for Laravel 4|5|6|7|8 via OCI8
Stars: ✭ 639 (+4160%)
Mutual labels:  oracle
K8cscan
K8Cscan大型内网渗透自定义插件化扫描神器,包含信息收集、网络资产、漏洞扫描、密码爆破、漏洞利用,程序采用多线程批量扫描大型内网多个IP段C段主机,目前插件包含: C段旁注扫描、子域名扫描、Ftp密码爆破、Mysql密码爆破、Oracle密码爆破、MSSQL密码爆破、Windows/Linux系统密码爆破、存活主机扫描、端口扫描、Web信息探测、操作系统版本探测、Cisco思科设备扫描等,支持调用任意外部程序或脚本,支持Cobalt Strike联动
Stars: ✭ 693 (+4520%)
Mutual labels:  oracle
Openrecord
Make ORMs great again!
Stars: ✭ 474 (+3060%)
Mutual labels:  oracle
Node Odp
A node library that wraps the odp.net dll to provide bindings to oracle on windows
Stars: ✭ 9 (-40%)
Mutual labels:  oracle
Vagrant Projects
Vagrant projects for Oracle products and other examples
Stars: ✭ 642 (+4180%)
Mutual labels:  oracle
Phila Airflow
Stars: ✭ 16 (+6.67%)
Mutual labels:  oracle
Mormot
Synopse mORMot ORM/SOA/MVC framework
Stars: ✭ 607 (+3946.67%)
Mutual labels:  oracle
Sqlinjectionwiki
A wiki focusing on aggregating and documenting various SQL injection methods
Stars: ✭ 623 (+4053.33%)
Mutual labels:  oracle
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (+5066.67%)
Mutual labels:  oracle
Tadpolefordbtools
Stars: ✭ 523 (+3386.67%)
Mutual labels:  oracle
Oracle Db Examples
Examples of applications and tool usage for Oracle Database
Stars: ✭ 843 (+5520%)
Mutual labels:  oracle
Docker Images
Official source for Docker configurations, images, and examples of Dockerfiles for Oracle products and projects
Stars: ✭ 5,120 (+34033.33%)
Mutual labels:  oracle
Zxw.framework.netcore
基于EF Core的Code First模式的DotNetCore快速开发框架,其中包括DBContext、IOC组件autofac和AspectCore.Injector、代码生成器(也支持DB First)、基于AspectCore的memcache和Redis缓存组件,以及基于ICanPay的支付库和一些日常用的方法和扩展,比如批量插入、更新、删除以及触发器支持,当然还有demo。欢迎提交各种建议、意见和pr~
Stars: ✭ 691 (+4506.67%)
Mutual labels:  oracle
Odb Task
A task runner for VSC based on atom-build-oracle implementation
Stars: ✭ 11 (-26.67%)
Mutual labels:  oracle
Apex App Crappybird
Oracle APEX Application - CrappyBird / Social Game
Stars: ✭ 8 (-46.67%)
Mutual labels:  oracle
Ezsql
PHP class to make interacting with a database ridiculusly easy
Stars: ✭ 804 (+5260%)
Mutual labels:  oracle

Oracle APEX Dynamic Action Plugin - APEX Screen Capture

APEX Community APEX Plugin APEX Built with Love

This plugin allows you to take "screenshots/captures" of pages or parts of it, directly on the users browser. The screenshot is based on the DOM and as such may not be 100% accurate to the real representation as it does not make an actual screenshot, but builds the screenshot based on the information available on the page.

Works best in modern browsers For more informations visit html2canvas

Changelog

1.9.5 - Added option to export screenshot as a PDF file

1.9.4 - get proper width/height of elements if JQuery Selector != body

1.9.3 - added support for capturing SVG

1.9.2 - fixed a bug there the DOM Selector picked the wrong region

1.9.1 - added option to choose the mime type (PNG or JPEG) of the image which gets saved to DB

1.9 - performance improvements when saving image / added wait spinner to visualize progress / fixed error when opening image in new tab in IE

1.8 - added APEX events to plugin, so you can react with other DA on this (for saved to DB & error saving to DB)/ cleaned up js code with own namespace

1.7 - added minified css/js files for normal mode and full files for debug mode

1.6 - performance improvements(removed redundant AJAX call) / split the clob into a 30k param array (OHS 32k limit for params)

1.5 - removed the save to item functionality / instead added a AJAX function which saves the resulting image to Database using custom PL/SQL code

1.4 - Added options to pick a border color of your choice / fill the selector´s content with light transparent color (based on border color)

1.3 - Added options to choose a filter of graphical DOM selector / Hide label of graphical DOM selector

1.2 - Added possibility to capture part of screen with a graphical DOM selector (Choose DIV with your mouse cursor)

1.1 - Set default width/height to browser dimensions for JQuery selectors

1.0 - Initial Release

Install

  • Import plugin file "dynamic_action_plugin_de_danielh_apexscreencapture.sql" from source directory into your application
  • (Optional) Deploy the JS files from "server" directory on your webserver and change the "File Prefix" to webservers folder.

Plugin Settings

The plugin settings are highly customizable and you can change:

  • DOM UI Selector - Choose if a graphical selector should be used or not.
  • DOM Filter - A selector that an element should match in order to be outlined and clicked. Default is 'div'. No value means no filter is enabled and all elements would be outlined.
  • Hide Label - Shows/Hides a label above the visual indicator. The label contains the element's name, id, class name, and dimensions.
  • Selector Border Color - Color of the DOM selector outline
  • Selector Fill Content - Whether the content of a selected area is filled with color or not. (30% darker than selector´s border color)
  • JQuery Selector - Enter the JQuery Selector that should be captured
  • Open image in new tab (or save to DB) - Choose whether the image should be opened in a new window or saved to DB using custom PL/SQL (for BLOBs)
  • PLSQL Code - PLSQL code which saves the image to database tables or collections
  • Background color - Canvas background color, if none is specified in DOM. Set undefined for transparent
  • Width - Width in pixels (default screen width)
  • Height - Height in pixels (default screen height)
  • Output-Type - Output-Type of the resulting screenshot image (e.g. PNG, JPEG, PDF)
  • Letter rendering - Whether to render each letter separately
  • Allow taint - Whether to allow cross-origin images to taint the canvas
  • Logging - Whether to log events in the console

Plugin Events

  • Screen Capture - Saved to DB - DA event that fires when the image is successfully saved to DB
  • Screen Capture - Error saving to DB - DA event that fires when saving to DB had an error

How to use

  • Create for example a new Dynamic Action with event "on button click"
  • As action choose "APEX Screen Capture".
  • Choose best fitting plugin attributes (help included)

Convert image to BLOB in PL/SQL / save to DB

For saving the screenshot (base64 png) to DB you can use a PL/SQL function like this:

DECLARE
  --
  l_collection_name VARCHAR2(100);
  l_blob            BLOB;
  l_filename        VARCHAR2(100);
  l_mime_type       VARCHAR2(100);
  l_token           VARCHAR2(32000);
  --
BEGIN
  -- get defaults
  l_mime_type := nvl(apex_application.g_x01,
                     'image/png');
  l_filename  := 'screenshot_' || to_char(SYSDATE,
                                          'YYYYMMDDHH24MISS');
  -- file name based on mime type
  IF l_mime_type = 'image/png' THEN
    l_filename := l_filename || '.png';
  ELSIF l_mime_type = 'image/jpeg' THEN
    l_filename := l_filename || '.jpg';
  ELSIF l_mime_type = 'application/pdf' THEN
    l_filename := l_filename || '.pdf';
  END IF;
  -- build CLOB from f01 30k Array
  dbms_lob.createtemporary(l_blob,
                           FALSE,
                           dbms_lob.session);
  FOR i IN 1 .. apex_application.g_f01.count LOOP
    l_token := wwv_flow.g_f01(i);
    IF length(l_token) > 0 THEN
      dbms_lob.append(l_blob,
                      to_blob(utl_encode.base64_decode(utl_raw.cast_to_raw(l_token))));
    END IF;
  END LOOP;
  --
  -- create own collection (here starts custom part (for example a Insert statement))
  -- collection name
  l_collection_name := 'SCREEN_CAPTURE';
  -- check if exist
  IF NOT apex_collection.collection_exists(p_collection_name => l_collection_name) THEN
    apex_collection.create_collection(l_collection_name);
  END IF;
  -- add collection member (only if BLOB not null)
  IF dbms_lob.getlength(lob_loc => l_blob) IS NOT NULL THEN
    apex_collection.add_member(p_collection_name => l_collection_name,
                               p_c001            => l_filename, -- filename
                               p_c002            => l_mime_type, -- mime_type
                               p_d001            => SYSDATE, -- date created
                               p_blob001         => l_blob); -- BLOB img content
  END IF;
  --
END;

Excluding page areas from getting rendered

If you would like to exclude some areas from getting rendered to the resulting image, just add

data-html2canvas-ignore="true"

to a element or a region or something else. If you would like to exclude a complete region add the "data-html2canvas-ignore" attribute to the "Custom Attributes" field of a region in APEX Page Designer.

Demo Application

https://apex.oracle.com/pls/apex/f?p=APEXPLUGIN

Preview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].