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?

    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

  • 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 = filter "3673 &amp; 7432" = "classified" itemId = mo

    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?

  • Is it possible to add a description for each slide in the slide show as a slide to separate before each photo?

    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

  • I use Photoshop CC and I have problems to use the scanning feature PLC culture and the strraigten.  Other printing features work within the progrram, but no connection when I use don't automate.

    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.

    [email protected]

    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

    by [email protected]

    (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
    Robin

    There 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.table within a table.png

    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-descriptor

    Here 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

  • Can someone help me to implement my Add-ons to minimise blockages, suspended and the freezing of web pages?

    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

    https://forums.Adobe.com/thread/891337
    See also:

  • is it possible to create a new project exactly similar to the plugin Stamper project found in the acrobat sdk samples

    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 Reinhardt

    In 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