Documentation for the Acrobat Document object model

Hello

I'm trying to move my first not in this area, I hope you can bear with my naïve questions.

I'm trying to find documentation for the Acrobat Document object model. To my surprise, a search in the archives of the forum failed.

I remember download out of curiosity some Adobe's PDF documents on the execution of JavaScript in Acrobat, ADOM precisely about one (but I could be wrong it was a few years ago and I'm getting old): these documents of the are a thing of the past?

Thank you very much.

Giordano

Advertisement

Have a look here:

http://www.Adobe.com/devnet/Acrobat/JavaScript.html

The link is for reference in version 9, which is generally pretty good.

But if you want the last being (PDF form), you can find it inside the

Package Acrobat X SDK, here:

http://www.Adobe.com/devnet/Acrobat/SDK/EULA.html

Tags: Acrobat

Similar Questions

  • Hello.. I have adobe document cloud free 5 GB of storage. I added documents inside. But I don't see them in Adobe acrobat reader section of cloud for the DC document. I connected with the same ID

    Hello.. I have adobe document cloud free 5 GB of storage. I added documents inside. But I don't see them in Adobe acrobat reader section of cloud for the DC document. I connected with the same ID

    Document cloud does not work in some locations of Acrobat Reader. So I used this method.

  • HP Photosmart 3110 referred to the documentation for the printer. Error 0xe18a001

    HP Photosmart 3110 referred to the documentation for the printer. Error 0xe18a001

    Hello caromuna,

    It seems that other users have found a way to completely reset the printer back to the default settings, which can help with this question.

    The reset is discussed in this forum thread and seems to be a bit difficult to fill. Let me know if it helps to solve your problem.

    Photosmart 3310 ink system failure

  • Cannot save settings: unable to create a configuration file for the required configuration object

    When I try to open the application in the administrator account it say - could not save the settings: unable to create a configuration file for the required configuration object

    Thanks for the reply.i think that a virus changed I scan my computer and discovered C:\users\jason\AppData\local\temp\low\temporary internet files\content. IE5\TLIFXGRH\ why is Task Manager disabled people [1]

  • use Image catalog script for the current document

    Is it possible to use the script to image catalogue for the current document in which we work instead of leaving the mark of script a new document fees for placed images?

    use,

    //ImageCatalog.jsx
    //An InDesign CS6 JavaScript
    /*
    @@@[email protected]@@ "ImageCatalog.jsx" 3.0.0 15 December 2009
    */
    //Creates an image catalog from the graphic files in a selected folder.
    //Each file can be labeled with the file name, and the labels are placed on
    //a separate layer and formatted using a paragraph style ("label") you can
    //modify to change the appearance of the labels.
    //
    //For more information on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting/index.html
    //Or visit the InDesign Scripting User to User forum at http://www.adobeforums.com .
    //
    //The myExtensions array contains the extensions of the graphic file types you want
    //to include in the catalog. You can remove extensions from or add extensions to this list.
    //myExtensions is a global. Mac OS users should also look at the file types in the myFileFilter function.
    main();
    function main(){
      var myFilteredFiles;
      //Make certain that user interaction (display of dialogs, etc.) is turned on.
      app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
      myExtensions = [".jpg", ".jpeg", ".eps", ".ps", ".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"]
      //Display the folder browser.
      var myFolder = Folder.selectDialog("Select the folder containing the images", "");
      //Get the path to the folder containing the files you want to place.
      if(myFolder != null){
      if(File.fs == "Macintosh"){
      myFilteredFiles = myMacOSFileFilter(myFolder);
      }
      else{
      myFilteredFiles = myWinOSFileFilter(myFolder);
      }
      if(myFilteredFiles.length != 0){
      myDisplayDialog(myFilteredFiles, myFolder);
      alert("Done!");
      }
      }
    }
    //Windows version of the file filter.
    function myWinOSFileFilter(myFolder){
      var myFiles = new Array;
      var myFilteredFiles = new Array;
      for(myExtensionCounter = 0; myExtensionCounter < myExtensions.length; myExtensionCounter++){
      myExtension = myExtensions[myExtensionCounter];
            myFiles = myFolder.getFiles("*"+ myExtension);
      if(myFiles.length != 0){
      for(var myFileCounter = 0; myFileCounter < myFiles.length; myFileCounter++){
      myFilteredFiles.push(myFiles[myFileCounter]);
      }
      }
      }
      return myFilteredFiles;
    }
    function myMacOSFileFilter(myFolder){
      var myFilteredFiles = myFolder.getFiles(myFileFilter);
      return myFilteredFiles;
    }
    //Mac OS version of file filter
    //Have to provide a separate version because not all Mac OS users use file extensions
    //and/or file extensions are sometimes hidden by the Finder.
    function myFileFilter(myFile){
      var myFileType = myFile.type;
      switch (myFileType){
      case "JPEG":
      case "EPSF":
      case "PICT":
      case "TIFF":
      case "8BPS":
      case "GIFf":
      case "PDF ":
      return true;
      break;
      default:
      for(var myCounter = 0; myCounter-1){
      return true;
      break;
      }
      }
      }
      return false;
    }
    function myDisplayDialog(myFiles, myFolder){
      var myLabelWidth = 112;
      var myStyleNames = myGetParagraphStyleNames(app);
      var myLayerNames = ["Layer 1", "Labels"];
      var myDialog = app.dialogs.add({name:"Image Catalog"});
      with(myDialog.dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Information:"});
      }
      with(borderPanels.add()){
      with(dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Source Folder:", minWidth:myLabelWidth});
      staticTexts.add({staticLabel:myFolder.path + "/" + myFolder.name});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Images:", minWidth:myLabelWidth});
      staticTexts.add({staticLabel:myFiles.length + ""});
      }
      }
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Options:"});
      }
      with(borderPanels.add()){
      with(dialogColumns.add()){
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Rows:", minWidth:myLabelWidth});
      var myNumberOfRowsField = integerEditboxes.add({editValue:3});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Number of Columns:", minWidth:myLabelWidth});
      var myNumberOfColumnsField = integerEditboxes.add({editValue:3});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Horizontal Offset:", minWidth:myLabelWidth});
      var myHorizontalOffsetField = measurementEditboxes.add({editValue:12, editUnits:MeasurementUnits.points});
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:"Vertical Offset:", minWidth:myLabelWidth});
      var myVerticalOffsetField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
      }
      with (dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Fitting:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myFitProportionalCheckbox = checkboxControls.add({staticLabel:"Proportional", checkedState:true});
      var myFitCenterContentCheckbox = checkboxControls.add({staticLabel:"Center Content", checkedState:true});
      var myFitFrameToContentCheckbox = checkboxControls.add({staticLabel:"Frame to Content", checkedState:true});
      }
      }
      with(dialogRows.add()){
      var myRemoveEmptyFramesCheckbox = checkboxControls.add({staticLabel:"Remove Empty Frames:", checkedState:true});
      }
      }
      }
      with(dialogRows.add()){
      staticTexts.add({staticLabel:""});
      }
      var myLabelsGroup = enablingGroups.add({staticLabel:"Labels", checkedState:true});
      with (myLabelsGroup){
      with(dialogColumns.add()){
      //Label type
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Type:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelTypeDropdown = dropdowns.add({stringList:["File name", "File path", "XMP description", "XMP author"], selectedIndex:0});
      }
      }
      //Text frame height
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Height:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelHeightField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
      }
      }
      //Text frame offset
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Offset:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelOffsetField = measurementEditboxes.add({editValue:0, editUnits:MeasurementUnits.points});
      }
      }
      //Style to apply
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Label Style:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLabelStyleDropdown = dropdowns.add({stringList:myStyleNames, selectedIndex:0});
      }
      }
      //Layer
      with(dialogRows.add()){
      with(dialogColumns.add()){
      staticTexts.add({staticLabel:"Layer:", minWidth:myLabelWidth});
      }
      with(dialogColumns.add()){
      var myLayerDropdown = dropdowns.add({stringList:myLayerNames, selectedIndex:0});
      }
      }
      }
      }
            var myResult = myDialog.show();
            if(myResult == true){
      var myNumberOfRows = myNumberOfRowsField.editValue;
      var myNumberOfColumns = myNumberOfColumnsField.editValue;
      var myRemoveEmptyFrames = myRemoveEmptyFramesCheckbox.checkedState;
      var myFitProportional = myFitProportionalCheckbox.checkedState;
      var myFitCenterContent = myFitCenterContentCheckbox.checkedState;
      var myFitFrameToContent = myFitFrameToContentCheckbox.checkedState;
      var myHorizontalOffset = myHorizontalOffsetField.editValue;
      var myVerticalOffset = myVerticalOffsetField.editValue;
      var myMakeLabels = myLabelsGroup.checkedState;
      var myLabelType = myLabelTypeDropdown.selectedIndex;
      var myLabelHeight = myLabelHeightField.editValue;
      var myLabelOffset = myLabelOffsetField.editValue;
      var myLabelStyle = myStyleNames[myLabelStyleDropdown.selectedIndex];
      var myLayerName = myLayerNames[myLayerDropdown.selectedIndex];
      myDialog.destroy();
      myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle,  myLayerName);
            }
      else{
      myDialog.destroy();
      }
      }
    }
    function myGetParagraphStyleNames(myDocument){
      var myStyleNames = new Array;
      var myAddLabelStyle = true;
      for(var myCounter = 0; myCounter < myDocument.paragraphStyles.length; myCounter++){
      myStyleNames.push(myDocument.paragraphStyles.item(myCounter).name);
      if (myDocument.paragraphStyles.item(myCounter).name == "Labels"){
      myAddLabelStyle = false;
      }
      }
      if(myAddLabelStyle == true){
      myStyleNames.push("Labels");
      }
      return myStyleNames;
    }
    function myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle,  myLayerName){
      var myPage, myFile, myCounter, myX1, myY1, myX2, myY2, myRectangle, myLabelStyle, myLabelLayer;
      var myParagraphStyle, myError;
      var myFramesPerPage = myNumberOfRows * myNumberOfColumns;
      var myDocument = app.activeDocument;
      myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
      myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
      var myDocumentPreferences = myDocument.documentPreferences;
      var myNumberOfFrames = myFiles.length;
      var myNumberOfPages = Math.round(myNumberOfFrames / myFramesPerPage);
      if ((myNumberOfPages * myFramesPerPage) < myNumberOfFrames){
      myNumberOfPages++;
      }
      //If myMakeLabels is true, then add the label style and layer if they do not already exist.
      if(myMakeLabels == true){
      try{
      myLabelLayer = myDocument.layers.item(myLayerName);
      //if the layer does not exist, trying to get the layer name will cause an error.
      myLabelLayer.name;
      }
      catch (myError){
      myLabelLayer = myDocument.layers.add({name:myLayerName});
      }
      //If the paragraph style does not exist, create it.
      try{
      myParagraphStyle = myDocument.paragraphStyles.item(myLabelStyle);
      myParagraphStyle.name;
      }
      catch(myError){
      myDocument.paragraphStyles.add({name:myLabelStyle});
      }
      }
      myDocumentPreferences.pagesPerDocument = myNumberOfPages;
      myDocumentPreferences.facingPages = false;
      var myPage = myDocument.pages.item(0);
      var myMarginPreferences = myPage.marginPreferences;
      var myLeftMargin = myMarginPreferences.left;
      var myTopMargin = myMarginPreferences.top;
      var myRightMargin = myMarginPreferences.right;
      var myBottomMargin = myMarginPreferences.bottom;
      var myLiveWidth = (myDocumentPreferences.pageWidth - (myLeftMargin + myRightMargin)) + myHorizontalOffset
      var myLiveHeight = myDocumentPreferences.pageHeight - (myTopMargin + myBottomMargin)
      var myColumnWidth = myLiveWidth / myNumberOfColumns
      var myFrameWidth = myColumnWidth - myHorizontalOffset
      var myRowHeight = (myLiveHeight / myNumberOfRows)
      var myFrameHeight = myRowHeight - myVerticalOffset
      var myPages = myDocument.pages;
      // Construct the frames in reverse order. Don't laugh--this will
      // save us time later (when we place the graphics).
      for (myCounter = myDocument.pages.length-1; myCounter >= 0; myCounter--){
      myPage = myPages.item(myCounter);
      for (var myRowCounter = myNumberOfRows; myRowCounter >= 1; myRowCounter--){
      myY1 = myTopMargin + (myRowHeight * (myRowCounter-1));
      myY2 = myY1 + myFrameHeight;
      for (var myColumnCounter = myNumberOfColumns; myColumnCounter >= 1; myColumnCounter--){
      myX1 = myLeftMargin + (myColumnWidth * (myColumnCounter-1));
      myX2 = myX1 + myFrameWidth;
      myRectangle = myPage.rectangles.add(myDocument.layers.item(-1), undefined, undefined, {geometricBounds:[myY1, myX1, myY2, myX2], strokeWeight:0, strokeColor:myDocument.swatches.item("None")});
      }
      }
      }
      // Because we constructed the frames in reverse order, rectangle 1
      // is the first rectangle on page 1, so we can simply iterate through
      // the rectangles, placing a file in each one in turn. myFiles = myFolder.Files;
      for (myCounter = 0; myCounter < myNumberOfFrames; myCounter++){
      myFile = myFiles[myCounter];
      myRectangle = myDocument.rectangles.item(myCounter);
      myRectangle.place(File(myFile));
      myRectangle.label = myFile.fsName.toString();
      //Apply fitting options as specified.
      if(myFitProportional){
      myRectangle.fit(FitOptions.proportionally);
      }
      if(myFitCenterContent){
      myRectangle.fit(FitOptions.centerContent);
      }
      if(myFitFrameToContent){
      myRectangle.fit(FitOptions.frameToContent);
      }
      //Add the label, if necessary.
      if(myMakeLabels == true){
      myAddLabel(myRectangle, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle, myLayerName);
      }
      }
      if (myRemoveEmptyFrames == 1){
      for (var myCounter = myDocument.rectangles.length-1; myCounter >= 0;myCounter--){
      if (myDocument.rectangles.item(myCounter).contentType == ContentType.unassigned){
      myDocument.rectangles.item(myCounter).remove();
      }
      else{
      //As soon as you encounter a rectangle with content, exit the loop.
      break;
      }
      }
      }
    }
    //Function that adds the label.
    function myAddLabel(myFrame, myLabelType, myLabelHeight, myLabelOffset, myLabelStyleName, myLayerName){
      var myDocument = app.documents.item(0);
      var myLabel;
      var myLabelStyle = myDocument.paragraphStyles.item(myLabelStyleName);
      var myLabelLayer = myDocument.layers.item(myLayerName);
      var myLink =myFrame.graphics.item(0).itemLink;
      //Label type defines the text that goes in the label.
      switch(myLabelType){
      //File name
      case 0:
      myLabel = myLink.name;
      break;
      //File path
      case 1:
      myLabel = myLink.filePath;
      break;
      //XMP description
      case 2:
      try{
      myLabel = myLink.linkXmp.description;
      if(myLabel.replace(/^\s*$/gi, "")==""){
      throw myError;
      }
      }
      catch(myError){
      myLabel = "No description available.";
      }
      break;
      //XMP author
      case 3:
      try{
      myLabel = myLink.linkXmp.author
      if(myLabel.replace(/^\s*$/gi, "")==""){
      throw myError;
      }
      }
      catch(myError){
      myLabel = "No author available.";
      }
      break;
      }
      var myX1 = myFrame.geometricBounds[1];
      var myY1 = myFrame.geometricBounds[2] + myLabelOffset;
      var myX2 = myFrame.geometricBounds[3];
      var myY2 = myY1 + myLabelHeight;
      var myTextFrame = myFrame.parent.textFrames.add(myLabelLayer, undefined, undefined,{geometricBounds:[myY1, myX1, myY2, myX2], contents:myLabel});
      myTextFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.leadingOffset;
      myTextFrame.parentStory.texts.item(0).appliedParagraphStyle = myLabelStyle;
    }
    
  • Documentation for the automation plugins

    Hello

    I'm new with Oracle OSM 7.2.2 and trying to find documentation for the feature that is available in automation_plugins.jar

    I see that there are many classes available that can be used in XQuery Automators, for example:

    declare namespace context = "java:com.mslv.oms.automation.TaskContext";
    declare variable $context external;
    context:completeTaskOnExit($context, "success")
    

    There is nothing in Oracle Communications order and Service Management Documentation that describes what classes are available in automation_plugins.jar and how they can be used. Is there a javadoc or other documentation somewhere?

    Thanks in advance

    Hello

    Yes, there are java documentation available. It will come with SDK during installation of the OSM.

    Check your default folder: C:\Program Files\OSM\SDK\osm7.2.2.1.x.x-javadocs.zip.

    Hope this helps you.

    Concerning

    Srinivas

  • Have the disk for the Acrobat Pro disc. Installed, but only the trial opens

    Have the disk for the Acrobat Pro disc. Installed, but only the trial opens

    Hi clanhansen,

    Please enter the serial number purchased in the trial version to activate the software.

    To find the serial number, please visit: http://helpx.adobe.com/x-productkb/global/find-serial-number.html

    Kind regards

    Rave

  • Incomplete reference of connection for the scott connection object

    Hello

    my application works fine in JDev 11.1.2.1 when deployed to integrated WS
    at the same time to the stand-alone deployment, I see an error:
    Incomplete reference of connection for the scott connection object
    Houston-26061 something wrong with JDBC

    the connection that Scott is defined as a data source
    where can be a problem?

    John is right. Configure the jdbc data source in wls and reference him module of your application configuration.
    If you look at the example of my blog and check the configuration, you will see that I have to refer to as "jdbc/DDH" jdbc data source My WLS I put in place since a data source with exactly this pointing to the BD JNDI name I want.

    Timo

  • Documentation for the conversion of virtual and physical memory

    Are there any decent documentation for the conversion of virtual and physical memory?

    Any help would be appreciated.

    Yes I do, I'll send you my notes!

    Matthew

    Kaizen!

  • HP slate 10: unlocking for the hp slate 10 model

    I have hp slate 10 jacquard as lock code, but I have made several attempts without success. Even the email through username and password option is bot answer. The WiFi option might not turn on because the screen could not change. Please what can I do.

    Please see this link for the factory reset instructions:

    http://support.HP.com/us-en/product/HP-slate-10-HD-Tablet/5447840/model/6569569/document/c04016480/

    WyreNut

  • Function documentation for the SignalExpress project

    I use the function 'project documentation' LabView SignalExpress 2009 in my application project.

    The draft measure a pressure signal permanently in different situations. I want to present my project document is a list of locations of the siganl of pressure taken under different situation, with a plot for each situation so that readers can easily compare the plots.

    For example, I want the document states:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    At 10:00 at low flow:

    ground pressure siganl

    At 11:00 with increased flow

    the same pressure signal ground

    etc.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    What I did was flirting with the pressure signal in my documentation of the data acquisition phase in the project tree, but in doing so, I could only show the last parcel of this signal in my documentation, the plot is in real time, just like what shows in the display of the data.

    Is there a way to show the same siganl taken at different times in a documentation?

    Thank you!

    Hello

    You can totally do this by using a feature called "instant."

    Rather than drag the step signal directly in your project document, first create a snapshot of your data using the menu option "use > create snapshot...". (Ctrl + Shift + T) »

    A dialogue will appear asking you what signals you want to instant. After selecting / them and clicked on Ok, your new snapshots will appear in the section overview of the application (in the left corner below, by default).

    Drag these signals on your project document. When you are ready to create your next snapshots after changing the configuration, you can select "Operate > repeat the last Snapshot (Ctrl + T) ' to simplify your process.

    For more information about the snapshot, see using LabVIEW SignalExpress found under "Help > LabVIEW SignalExpress Help" and search on the keyword "snapshots."

    I hope this helps!

    Phil

  • 7280 all-in-one message says print cartridge alignment failed. see the documentation for the product?

    My 7280 all-in-one printer message indicates the alignment of the failed print cartridge.  See the product documentation.  I tried to do a literature search and landed on this link.  Where can I find documentation for my printer?

    This is the document that you are looking for.  You can find all documents and even more for your printer here.  Let me know what happens.

  • PowerCli script to generate the report for the VM and ESXi model

    Hello

    I'm trying to generate a report for the virtual machines to a domain controller that includes the operating system, Cluster and host of brand and model of ESXi, but for some reason any the ESXi info does not come through. Any help is greatly appreciated.

    Get-data center 'TEST ' |

    Get - vm |

    WHERE-object {$_.} PowerState - eq "Receptor"} |

    Select Name, @{N = "OS"; e = {$_.}} Extensiondata.Guest.GuestFullName}},

    @{N = "Cluster"; E={$_. VMHost.Parent}},

    @{N = 'Esxi model'; E = {Get-VMHost - VM $_.} VM | {{Select model}}

    The virtual machine has the properties of the host.  For your information "Model ESXi" use $_. VMhost.Model, $_ is the current information for pipeline for the virtual machine.  You did for the section "cluster".

  • How can I put bleeds for individual images (not for the entire document)?

    Hello everyone,

    I have a ready brochure for printing and now I had information on some images ago 3 mm lack of bleed. How can I fix this? The entire document should be set to this purge, but they always tell me that, in some places (images), he is still missing.

    Thank you much in advance.

    You must bring your images for objects that purge leave the allocation of purge and make sure that the image is big enough to fill this area.

  • Paid for the PDF Document Cloud services, but no service

    My bank account shows payment paid Adobe $ 23.88 for annual services two weeks ago, but to connect to convert PDF to Word - applications from Adobe that I 'sign up now' for the account that has already been paid. Apparently, no one is available at the customer service on weekends to help - with the exception of the Forum. Despite the Adobe 'Chat' option - available 24 hours, 7 days a week, it says "Currently closed cat" Huh?

    Does anyone have any ideas how I can fix this administrative problem?

    Hi Betsy,

    We are sorry for the inconvenience caused to you.
    Please use the following link to access the Document PDF service clouds: http://cloud.acrobat.com/ . Please make sure that you sign same Adobe ID that you used for the subscription.

    You can also use the service if you have Adobe Reader installed DC, ( Adobe - Adobe Acrobat Reader DC Distribution ).

    If you're still having trouble, feel free to message/email me.

    Kind regards
    Rahul

Maybe you are looking for


HashFlare