Is it possible to add Javascript (native!) features with plugins and the Acrobat SDK kit?
Hello!
I would like to add a feature on the Adobe Reader script engine using the plugin system. So what I want to do is: Javascript call < myfunction > and < myfunction > should be in a < myplugin.api > plugin. I know that it is possible to extend the functionality of the player by adding pure Javascript (JavaScript file) functions, but I need the function to run NATIVE code, that's why I need to be part of < myplugin >. The plugin is supposed to 'register' of the native function that can be called subsequently.
I downloaded the SDK from Adobe Reader, but I don't see anything like that.
Is is usually possible to do with the kit of development (or by any other means)?
Thank you!
Sebastian
You cannot add methods. Indirect Tricis as a menu item might work if setting less.
Tags: Acrobat
Similar Questions
-
I formatted and reinstalled xp to correct some problems and my multimedia audio and video vga drivers were lost. I do not have a CD with info and the Add Hardware Wizard cannot find the drivers. How can I fix it?
You may be able to download the drivers from the web site of the manufacturer of the computer.
-
Is it possible to watch video remotely using an ipad and the Camcorder HDR-CX330 wireless?
Is it possible to watch video remotely using an ipad and the Camcorder HDR-CX330 wireless? I could see the pictures, but really want to see videos? I use the PlayMemories application for remote control. Any suggestions?
Hi bill54107,
Welcome to the community of Sony!
Unfortunately, you can not view videos recorded wireless using your mobile device. You can transfer videos on your iPad, but only if they are saved in the format. Mp4 format AVCHD files can be transferred wireless to a tablet or a smartphone. Enable the video double setting Rec to shoot AVCHD and Mp4 format at the same time.
You can only use the transfer of photos and AVCHD videos wireless when you download Wireless Auto Import (for Mac) and the House of PlayMemories.
If my post answered your question, please mark it as "accept as a Solution. Thanks_Mitch
-
Hello
Is it possible to take 2 web apps with both having the same element name (IE: titreArticle, short) and display them in a list in chronological order.
For example something like that {module_webapps id = "3673& 7432" filter = 'class' itemId = "71755" template="/new/partnernewstemp.tpl" sortType = 'date'}
Thank you
Angela Borden
This is not possible, I'm afraid, you must list each of the webapps separately and then combine and re - sort the two lists.
-
Is it possible to add an icon to a control of the enum?
Hi all.
I know that it is possible to customize controls, for example, you can add an icon (stickers) to a button:
http://www.NI.com/Tutorial/14131/en/
Is it possible to add an icon/decal to a control of the enum?
Or do I me XControls for this?
Thank you
BR
EWiebe
Hi Wiebe,
What about pictrings?
-
I am trying to create a descriptive slideshow with explanatory text before each slide.
Can you suggest the smart way to do it quickly?
Hi graceplight,
It is not possible to add descriptions to individual slides in Lightroom.
Please take a look at the article, it may be useful: https://helpx.adobe.com/lightroom/help/playing-exporting-slide-shows.html
Please let us know if it helps.
Kind regards
Tanuj Sandal
-
Is it possible to add a small image to view from the list of the press article?
Hello
I would like to ask a small image next to the link for my ad on my homepage - www.sunnysideinstantlawn.com.au - is it possible?
Thank you
Tammy
Using the function of the news of the scrap and build your news with the web application instead.
You can have multiple views of different lists, you can have a custom field multiline text box short introduction, title, date of the course and your image. With this, you can retrieve the value only of an image with the _value option in the image tag.
You can then thumbnails of BC have only one large image and then small image from your listing.
You have the detail view friendly of complete SEO for the web application as well as for the full article.
You can do a lot, it's just how you feel you want and what you do with the installation and layout of it. Much better than the news Module
-
Can I add a new page with editing in the browser in Muse?
Is it possible to add a new page in the browser by using capacities within the Muse of edition?
Lol you can only edit existing pages within the existing limits.
Mylenium
-
Am I missing a configuration of PLC to allow me to crop and scan several photos?
With the help of 8.1 with canon MX340 wireless and final version of Photoshop CC.
Help.
VIC
I plugged a usb cable and I was able to use the WIA import feature and
the menu of the controller,
He gave me the opportunity to select the printer and scan using the automaton
function.
When I removed the cable, it would not recognize the printer scanner in the
Wireless mode.
I tried to restart the system, no luck.
In fact, when the cable is removed, the function to automate is
"grayed out" which would explain why it cannot find the scanner.
Any ideas?
VIC Ouellette
K1CGI... QRZ?
In a message dated 12/09/2015 11:41:18 eastern standard time,
[email protected] wrote:
You talked
(https://forums.adobe.com/people/[email protected]?et=notification.mention//forums.adobe.com/people/ [email protected]? and = notification.mention) in Re: I use Photoshop CC and I
problems to use the scanning feature strraigten and the cultures of the automaton. Another impression
features work within the progrram, but no connection when I use don't automate.
in Adobe Community - view [email protected]of reference for you
(https://forums.adobe.com/message/8274458?et=notification.mention#8274458)
-
Possible to add a new language in addition to the reconstruction of an application in HFM?
Hi all - if I want to add a new language in a 9.3.1.4 HFM application, I understand the only way to achieve this is to recreate the application from scratch, by changing the language options in the application profile (file .alternance).
Anyone know if there is there any utility to do this in the rear part (i.e. to create the records of the table / / necessary DESC), similar to the new utility created to change the number of periods?
Thank you
RobinThere is no support for public services or workarounds to do this. It is unlikely to see improvement not work either since the EPMA is the orientation of the product.
-
Is it possible to add a table in a table and how to proceed?
I created an If / then table and I want to insert another table that contains the steps within this larger table. See picture attached.
Plan b:
Create the initial table so that all the rows and the columns needed for the main table and the subtable (s).
Overlaps lets merge the excess rows and columns outside the subtable.
Note: You do not like this response.
Plan C:
Do the subtable in a worksheet.
Export the selection to PDF.Import the chart as an object in a cell of the main table.
Plan d:
Submit a request for improvement to Adobe.
To twiddle their thumbs until it is released.
Brush the cobwebs.
Insert a table inside the table... How can it be difficult?
-
Native of filebrowse using and the cascading Save dialog box
In my application I need to open file and file save dialog box when a specific button is clicked. I looked at the docs of stunts, but I found that the native options. Tried the native alert dialog, change of filebrowse dialog type. It displays well on Simulator, but could not get any output file that will be used in the Qt code.
I pass these parameters
int * num = NULL;
char * folder [1024];
dialog_update (alert_dialog);to dialog_event_get_filebrowse_filepaths(event,file,num), but it always returns BPS_FAILURE.
In addition,
access_shared is present in the bar-descriptorHere is my code:
//slot function void App::fileOpen(){ //=========================== dialog_instance_t alert_dialog = 0; bps_initialize(); dialog_request_events(0); //0 indicates that all events are requested if (dialog_create_filebrowse(&alert_dialog) != BPS_SUCCESS) { fprintf(stderr, "Failed to create alert dialog."); return ; } const char* extensions[] = {"*.*","*.jpg","*.jpeg","*.mp3","*.wav","*.mp4","*.txt","*.doc","*.pdf"}; int items = 9; if(dialog_set_filebrowse_filter(alert_dialog, extensions,items) != BPS_SUCCESS){ fprintf(stderr, "Failed to set alert dialog message text."); dialog_destroy(alert_dialog); alert_dialog = 0; return ; } if( dialog_set_filebrowse_multiselect(alert_dialog,FALSE)!=BPS_SUCCESS){ fprintf(stderr, "Failed to set alert dialog message text."); dialog_destroy(alert_dialog); alert_dialog = 0; return ; } if (dialog_show(alert_dialog) != BPS_SUCCESS) { fprintf(stderr, "Failed to show alert dialog."); dialog_destroy(alert_dialog); alert_dialog = 0; return ; } int shutdown =0; while (!shutdown) { bps_event_t *event = NULL; bps_get_event(&event, -1); // -1 means that the function waits // for an event before returning if (event) { if (bps_event_get_domain(event) == dialog_get_domain()) { int selectedIndex = dialog_event_get_selected_index(event); const char* label = dialog_event_get_selected_label(event); const char* context = dialog_event_get_selected_context(event); char **fileArray[]={}; int *numFiles = NULL; // if(selectedIndex == 0){ shutdown = 1;//user press the cancel button on dialog; close the dialog } else if(selectedIndex == 1){ if(dialog_event_get_filebrowse_filepaths(event,file,num)!=BPS_SUCCESS){ fprintf(stderr,"File open fail"); } else{
//debug purposes fprintf(stderr,"File array: %d/n",sizeof(file)*1024); fprintf(stderr,"Num files: %n",num); //fprintf(stderr,"Files int: %d",files); } } } } } if (alert_dialog) { dialog_destroy(alert_dialog); } //=========================== }
Native Subforums have no useful information on this subject. Any help is greatly appreciated
Hello again, here's the example as promised.
To use the native filebrowse dialog box, the native code must run in its own thread to prevent the user interface in the Cascades to block. This is achieved by encapsulating all the dialog box code in a class derived from QThread. The class I wrote is called FileBrowseDialog
FileBrowseDialog.hpp
#ifndef FILEBROWSEDIALOG_HPP_ #define FILEBROWSEDIALOG_HPP_ #include
#include #include /* * The file browse dialog displays a dialog to browse and select * files from shared folders on the system. */ class FileBrowseDialog : public QThread { Q_OBJECT /* * QML property to allow multiple selection */ Q_PROPERTY(bool multiselect READ getMultiSelect WRITE setMultiSelect) /* * QML property to read the selected filenames */ Q_PROPERTY(QVariant filepaths READ getFilePaths) /* * QML property to set or get the file filters. This is an * list array variant. */ Q_PROPERTY(QVariant filters READ getFilters WRITE setFilters) public: /* * Ctor and Dtor */ FileBrowseDialog(QObject* parent = 0); virtual ~FileBrowseDialog(); /* * Exposed to QML to start the run loop which creates and displays the dialog. * The dialog is shown until a button is clicked. */ Q_INVOKABLE void show(); public: /* * Getter for the selected filenames QML property */ QVariant getFilePaths() const; /* * Setter and Getter for the filters QML property */ QVariant getFilters() const; void setFilters(QVariant const& value); /* * Getter and Setter for the multiselect QML property */ bool getMultiSelect() const; void setMultiSelect(bool value); signals: /* * Signal emitted when the OK button has been clicked on the browse dialog * The OK button is not enabled unless a file is selected */ void selectionCompleted(); /* * Signal emitted when the cancel button has been clicked on the browse dialog */ void selectionCancelled(); protected: /* * Implements the run loop. Dialog stays open until a button is clicked. */ virtual void run(); protected: dialog_instance_t m_dialog; bool m_multiSelect; QVariantList m_filePaths; QVariantList m_filters; }; #endif /* FILEBROWSEDIALOG_HPP_ */ FileBrowseDialog.cpp
#include "FileBrowseDialog.hpp" #include
#include FileBrowseDialog::FileBrowseDialog(QObject* parent) : QThread(parent) , m_multiSelect(false) { m_filters.push_back(QString("*.*")); } FileBrowseDialog::~FileBrowseDialog() { } void FileBrowseDialog::show() { if (!isRunning()) { m_filePaths.clear(); start(); } } QVariant FileBrowseDialog::getFilePaths() const { return m_filePaths; } bool FileBrowseDialog::getMultiSelect() const { return m_multiSelect; } void FileBrowseDialog::setMultiSelect(bool value) { m_multiSelect = value; } QVariant FileBrowseDialog::getFilters() const { return m_filters; } void FileBrowseDialog::setFilters(QVariant const& value) { m_filters = value.toList(); qDebug() << "filter count: " << m_filters.count(); } void FileBrowseDialog::run() { bps_initialize(); //request all dialog events dialog_request_events(0); if (dialog_create_filebrowse(&m_dialog) != BPS_SUCCESS) { qDebug() << "Failed to create file browse dialog."; emit selectionCancelled(); return; } //set the selection filters if (m_filters.count() > 0) { char** ext = (char**)new char[m_filters.count()*sizeof(char*)]; int i = 0; for (QVariantList::iterator it = m_filters.begin(); it != m_filters.end(); ++it, ++i) { QString filter = it->toString(); if (!filter.trimmed().isEmpty()) { int length = (filter.length() + 1) * sizeof(char); ext[i] = new char[length]; strncpy(ext[i], filter.toAscii(), length); } } if (dialog_set_filebrowse_filter(m_dialog, (const char**)ext, m_filters.count()) != BPS_SUCCESS) { qDebug() << "unable to set file browse dialog extensions"; } for (i = 0; i < m_filters.count(); i++) { delete ext[i]; } delete ext; } if (dialog_show(m_dialog) != BPS_SUCCESS) { qDebug() << "Failed to show file browse dialog."; dialog_destroy(m_dialog); m_dialog = 0; emit selectionCancelled(); return; } bool shutdown = false; while (!shutdown) { bps_event_t* event = NULL; bps_get_event(&event, -1); // -1 means that the function waits // for an event before returning if (event) { if (bps_event_get_domain(event) == dialog_get_domain()) { //0=ok, 1=cancel int selectedIndex = dialog_event_get_selected_index(event); if (selectedIndex == 1) { int count; char** filepaths; if (BPS_SUCCESS == dialog_event_get_filebrowse_filepaths(event, &filepaths, &count)) { for (int i = 0; i < count; i++) { qDebug() << "selected file: " << filepaths[i]; m_filePaths.push_back(QString(filepaths[i])); } bps_free(filepaths); } emit selectionCompleted(); } else { emit selectionCancelled(); } qDebug() << "Got file browse dialog click"; shutdown = true; } } } if (m_dialog) { dialog_destroy(m_dialog); } } This class derives from QObject (by QThread) which means that it can be used by QML when it exposes properties and signals. The FileBrowseDialog class has 3 properties
-multiple selection: a Boolean flag indicating if single or multiple selection is allowed
-filepaths: a read only value that returns the list of files selected
-Filters: a read/write value is where you can specify one or more filters to file (for example, ".doc", "*.jpg") etc.
The next part is how you call the FileBrowseDialog through the QML. To do this, we must inform the QML of the FileBrowseDialog page. This is done in the App class via the qmlregistertype code.
App.cpp
#include
#include #include #include "app.hpp" #include "FileBrowseDialog.hpp" using namespace bb::cascades; App::App() { qmlRegisterType ("Dialog.FileBrowse", 1, 0, "FileBrowseDialog"); QmlDocument *qml = QmlDocument::create("main.qml"); qml->setContextProperty("cs", this); AbstractPane *root = qml->createRootNode (); Application::setScene(root); } The QML is now ready to be able to use the FileBrowseDialog. The example below is a page complete qml which has a button and a label. When we click on the FileBrowseDialog button is open, and all selected files will appear in the label.
Main.QML
import bb.cascades 1.0 import Dialog.FileBrowse 1.0 Page { content: Container { Label { id: filebrowseDialogLabel } Button { text : "File Browse Dialog" onClicked: { filebrowseDialog.show(); } } attachedObjects: [ FileBrowseDialog { id: filebrowseDialog multiselect : true filters : ["*.doc","*.jpg","*.txt"] onSelectionCompleted: { if(filebrowseDialog.filepaths.length>0) filebrowseDialogLabel.text = filebrowseDialog.filepaths[0]; else filebrowseDialogLabel.text = "no file selected"; } onSelectionCancelled: { filebrowseDialogLabel.text = "file browse dialog was cancelled"; } } ] } }
And it's pretty much just invoke the native dialog file navigation in stunts. Please note save the file would follow a similar model, but I found that this dialog box was not particularly useful because it displays only a simple dialogbox with a text file name entry.
See you soon
Swann
-
Here is a screenshot of my computer properties. I know that my PC is old. I confess, that I should know more about this kind of things I do, but I am so frustrated, I'm ready to everything simply uninstall Firefox and come back to Chrome. Basically, I don't do online, read the news, Sports, and play a few games. I can't help but feel that I have conflicting modules causing me all these questions, but for the life of me, I can't understand the right combination of them to get my browser to work correctly.
Constantly Debugging Script box appears, or Shockwave breaks down or the page I simply implemented site, suspended and freezing. I wouldn't need to be clear my history/cache every day, but I do, and this is only a temporary solution. After half an hour, I'm again right back to all questions. Thanks in advance!
The report of incidents reported these programs;
Signature block
Process Type plugin Shockwave Flash Version: 19.0.0.226
Check this box:
- see if there are updates for your graphics card disk drivers
https://support.Mozilla.org/KB/upgrade-graphics-drivers-use-hardware-acceleration
- Disable protected mode in the plugin Flash (Flash 11.3 + on Windows Vista and later versions)
https://forums.Adobe.com/message/4468493#TemporaryWorkaround
- turn off hardware acceleration in the Flash plugin
-
I want to create a similar to the stamper plugin plugin in Acrobat sdk sample. Or create a menu 'more' point below "annotations Stamper" and when clicked it should paste the text I've defined.
That's it should work exactly similar to the stamper plugin. I created the menu in the plugin, but not items not to do stamping. Kindly help. How to on this subject.
If you want to reproduce the plugin functionality of Stamper, copy the
Plugin directory, then rename the project. I usually also rename all
project files (making sure that they are always referenced by the project).
Rename the name of the plugin and all global resources (for example all the menu items) by
using your own prefix of developer. To find the items that need to be renamed,
Search for ADBE in the project.
This should create a new plug-in with the same functionality.
-
Add Javascript action to your Favorites
I would like to add an action to a bookmark to open a link in a new window. I tried the following without success
Set AVDoc = CreateObject ("AcroExch.AVDoc")
If AVDoc.Open(myFolder & myPDFFile, "") then
AVDoc.BringToFront
"The value of the PDDoc object.
Set PDDoc = AVDoc.GetPDDoc
'Set the JS - Script Java object object.
Define the JSO = PDDoc.GetJSObject
Define the BMR = JSO. BookMarkROot
vBookmark = BMR. Children
End If
For k = UBound (vBookmark) in step 0-1
If vBookmark (k). Name then as "Hyp."
"What is the URL for the word document.
"This allows to determine the URL for the bookmark.myAddress = GetHyperlinkAddress (myDoc, vBookmark (k). Name, LinkWithinDoc)
' Selects the bookmark
vBookmark (k). Run"I would like to add the javascript code for this bookmark.
Monaction = "app.launchurl ('" & myAddress & "', True).
' Does not have this part
Monaction .setAction vBookmark (k)
End If
Next
I'd appreciate any help you can provide.
Thank you
Barb ReinhardtIn addition to what TSN has just said, you can set the action to a link, you do not what is the current action. If you define a new action, you are wiping out all other actions. And the action must be a JavaScript action. You want to set a JavaScript action, so that the room is OK, but you don't find this as the current action (or in the case of a URL) or target.
You can do it with a plug-in Acrobat, but it's a different kind of programming (requires C or C++ and a much deeper understanding of the Acrobat SDK kit and the PDF file format).
Maybe you are looking for
-
Setting the resolution for S1931 LCD screens
Installed S1931 monitor has a maximum resolution of 1366 X 768 at 60 hz. My XP system will be higher in 1024 X 768. Image is stretched and round objects are oval. Is it possible to improve the resolution? Or is it not compatible with my computer?
-
"Windows Explorer has stopped working".
Whenever I try to look at the photos I have in the files, I get the message: "Windows Explorer has stopped working" it restarts and continues to repeat the same thing whenever I try to look at my pictures in a slide show. Can someone help me with thi
-
Installation of a wireless printer
I am trying to install a HP Photoshop wireless printer. I tried to run the installation on my laptop with the Vista operating system with the HP cd and I get an error window stating "consent UI for administrative applications stopped working and was
-
WebWorks compile example sketches - stuck!
Hello try to start with the sketchPadStandard.zip example On Mac OS X, it is registered:
-
ASA ASA from Site to Site VPN IPSec Tunnel
Any help would be greatly appreciated... I have two devices Cisco ASA with a Site for the configuration of the tunnel VPN IPSec Site as follows: -. Site #1 - Cisco ASA running version 8.2 (1) with an internal range of 10.0.0.x/24 Site #2 - Cisco ASA