Skip to main content
Participant
April 11, 2022
Question

How to use document Export function from MATLAB

  • April 11, 2022
  • 3 replies
  • 972 views

I am manipulating an InDesign docment from MATLAB:

a = actxserver('InDesign.Application');
doc = a.Open('C:\TEMP\Test-3.indd');
 % make changes then export
 
I've tried different ways to export (example below), but none of them work, because I can't find a way to specify the export format.
b = doc.Export('InDesign.idExportFormat.idInteractivePDF', 'C:\TEMP\Test-2.pdf', false)
 
Any ideas would be appreciated.
 
 
This topic has been closed for replies.

3 replies

Participant
October 12, 2022

The following code works for me:

doc.Export('Adobe PDF', 'C:\TEMP\Test-2.pdf', false);
But I don't know which string I have to use for an Interattive PDF.
Any ideas?
Legend
October 12, 2022

The choice of "interactive PDF" is not a different format to export. It is a choice in your PDF export settings. If you can't specify settings programmatically, then try changing them first in the UI.

Participant
October 12, 2022

I believe that they are different. Infact, InDesign UI has two different set of export settings, one for PDF and one for interattive PDF.

Anyway after many attempts I found the code that works (if you have italian version of InDesign):

doc.Export('Adobe PDF (interattivo)', 'C:\TEMP\Test-2.pdf', false);

I think that for the English version it is:

doc.Export('Adobe PDF (interactive)', 'C:\TEMP\Test-2.pdf', false);

Community Expert
April 12, 2022

The method to export is called exportFile for the JS interface, I am not sure if it's named Export for the COM interface. You can check this out

https://www.indesignjs.de/extendscriptAPI/indesign-latest/#Document.html#d1e49413__d1e53790

Another thing that I see could be a potential issue is that according to the link below

https://www.mathworks.com/help/matlab/ref/actxserver.html

It says that "The MATLAB COM Interface does not support invoking functions with optional parameters". So if this means that we need to explicitly pass on all the params then you seem to be lacking some parameters, try passing them on.

-Manan

Participant
April 13, 2022

Thanks for the input. For the COM interface (and Visual Basic Script) the funciton is Export. Even when I add all the optional parameters, there is still an issue with the first parameter: idExportFormat.idInteractivePDF.

 

Participant
April 14, 2022

I don't have anything setup to test it out personally. But what is the error message that you get, maybe that provides us with a hint. Try doing the same thing using VB, probably the syntax and the constants are the same in both.

-Manan


This form of the Export function, below, works in VBScript, but gives this error in MATLAB: "Unable to resolve the name idExportFormat.idInteractivePDF."

 

b = doc.Export(idExportFormat.idInteractivePDF, 'C:\TEMP\Test-2.indd', false)

 

The form below, with single quotes, should work similarly to the VBScript version, but errors.

 

b = doc.Export('idExportFormat.idInteractivePDF', 'C:\TEMP\Test-2.indd', false)
Error using Interface.1A5E8DB4_3443_11D1_803C_0060B03C02E4/Export
Invoke Error, Dispatch Exception:
Source: C:\Program Files\Adobe\Adobe InDesign 2022\InDesign.exe
Description: The specified object does not support the desired export format.

 

I get the same error when specifying all the arguments.

 b = doc.Export('idExportFormat.idInteractivePDF', To, showingOptions, 'InDesign.Document.PDFExportPresets', 'InDesign.Document.PDFComments', false)

These arguments are okay: 'InDesign.Document.PDFExportPreset',  'InDesign.Document.PDFComments'. Accessing objects under Documents is not a problem. But accessing the idExportFormat enum in the InDesign namespace doesn't work.

 

I also tried variations of the above with 'InDesign.idExportFormat.idInteractivePDF' as the first argument, but get the same error: "The specified object does not support the desired export format.".

 

Thanks

Community Expert
April 12, 2022

Which language is this?

 

Participant
April 13, 2022

MATLAB is the language.  It makes use of the COM Interface for InDesign.