Copy link to clipboard
Copied
Hello,
We have an InDesign/InCopy SDK plug-in that adds special text adornments such as insert or delete marks to text characters and runs.
These appear on prinitng or on export to interactive pdf but I cannot find a way to make the export to idml aware of my special text adornments. ? I feel I must be missing something obvious, can anyone help?
Bit of code showing some of the special adornments and pic of how these appear in an interactive pdf attached.
// Responder service implementation
DECLARE_PMID (kImplementationIDSpace, kBLUserEditResponderImpl, kBlackLining_Prefix + 45)
DECLARE_PMID (kImplementationIDSpace, kBLTextAttrDeletedTextReportImpl, kBlackLining_Prefix + 46)
DECLARE_PMID (kImplementationIDSpace, kBLTextAttrDeletedTextAdornmentImpl, kBlackLining_Prefix + 47)
DECLARE_PMID (kImplementationIDSpace, kBLTextAttrInsertedTextReportImpl, kBlackLining_Prefix + 48)
DECLARE_PMID (kImplementationIDSpace, kBLTextAttrInsertedTextAdornmentImpl, kBlackLining_Prefix + 49)
// Responder Class ids
DECLARE_PMID (kClassIDSpace, kBLDeleteTextCmdResponderBoss, kBlackLining_Prefix + 26)
DECLARE_PMID (kClassIDSpace, kBLTextAttrDeletedTextBoss, kBlackLining_Prefix + 28)
DECLARE_PMID (kClassIDSpace, kBLTextAttrDeletedTextAdornmentBoss, kBlackLining_Prefix + 29)
DECLARE_PMID (kClassIDSpace, kBLTextAttrInsertedTextBoss, kBlackLining_Prefix + 30)
DECLARE_PMID (kClassIDSpace, kBLTextAttrInsertedTextAdornmentBoss, kBlackLining_Prefix + 31)
DECLARE_PMID (kClassIDSpace, kBLUserEditTextCmdResponderBoss, kBlackLining_Prefix + 32)
Copy link to clipboard
Copied
One of the purposes of export to IDML is to write the file in absolutely standard, basic code that can be read by any fairly recent version of InDesign, and by other apps (such as translation tools) that do not have the capability of importing a specific, current INDD file. The process is so... sturdy that exporting a corrupted INDD file to IDML and then reopening it often fixes many document structural problems, especially with things like links.
What this means, though, is that IDML (more or less by design) does not accommodate plugins or add-ons, but strips their markers and content out as excess or faulty elements.
There may be exceptions, but I don't think you can use a plugin like this and export the file to IDML.
Copy link to clipboard
Copied
Hello James,
That's a swift and logical reply! Although I take your point about the idml format needing to be a 'clean' xml standard, I'm really hoping you're wrong! The InDesign- idml pages seeem to imply that they make it possible in idml to allow for special requirements for workflow autiomation such as mine.
https://helpx.adobe.com/uk/indesign/automation.html
I realise I missed out an important point though. Yes the idml export function must be able to detect the adornments and act on them but when representing them in idml stories these would be in the form of <tags> e.g. <kdeletedtextstart>. I should have also added that this is for a 'closed' workflow, for the indd -> idml -> indd round trips none of these files will be travellijg outside of their homeland.
If there really is no way of detectng the adornments I may have to come up with some horrible method extracting the stories with marks first, then exporting the file into idml, then forcing those stories into a completed idml export file as a custom text stream which then replaces the existing stories. Ugh!
Here's hoping this finds its way to some InDesign idml specialist engineers!
Many thanks for responding !
Copy link to clipboard
Copied
I'm not really an XML expert and there could be details about my suggestion that are wrong, but it's in line with what I know of how IDML export is used and managed. I am not sure what your workflow and purpose is, here, but IDML is not generally seen or used as a primary document format; it's an exchange format something like RTF. So if you're trying to use it outside that purpose, you may or may not succeed in finding any way to "extend" it, XML-style, to include non-native elements like your text markup.
I suggest that if XML, or something like it, is the basis for your workflow, FrameMaker might be a better platform, since it was reengineered to be highly XML/DITA supportive a number of years ago. But I wouldn't place any bets on InDesign's XML compliance, or anything like it, through IDML or any other standard doc format.
Copy link to clipboard
Copied
Hi @vossbark ,
Your analysis is correct.
Your Adornment will automatically work if IDML exports tracking changes such as Deleted Text, Inserted Text etc.
It seems you have InDesign/InCopy workflow where you have enabled tracking changes (RedLine Changes) and then you are displaying your own text adornment highlighting inserted/deleted text.
If IDML does not export tracking changes such as Deleted Text/Inserted Text then you can't do anything and you will have to look for your own business logic solutions.
- Rahul Rastogi
Adobe InDesign SDK Plugin Architect
Copy link to clipboard
Copied
Plug-ins (the C++ kind indicated by above source excerpt) can definitely add their share to IDML, ICML, snippet, library and so forth. Been there, done that.
The obvious you are missing is scriptability. Towards InDesign all these file formats use the scripting architecture, so you add appropriate properties and object classes to the scripting object model by means of scriptinfo resources for the declaration; you'd also write script providers to handle the calls and rebuild your persistent data.
You can withhold your scripting features from regular scripting languages by explicit resource statements, e.g. if you don't want it in UXPScript, want different names in AppleScript, or you can add them only to those script languages that you really want to support (e.g. IDML only, but none of the real ones). Prominent example (but unrelated here) are the font family details in IDML, also parameters for QR codes.
Unlike real scripting languages IDML and friends also make plenty use of metadata directives (again in the scriptinfo resource, unrelated to XMP metadata) where you e.g. influence the order within the document, or whether you want a separate file within the IDML zip the same way spreads and stories are handled.
As Raul vaguely notes "If IDML does not export tracking changes", it might be necessary to run your "own business logic". Or you can get along using the existing change tracking features - I did not try either. Such an investigation easily burns a few days.