Copy link to clipboard
Copied
Hi all,
just found an oddity with InDesign's app.findTextPreferences.findWhat concerning special characters.
I wanted to find two special characters encoded as <FEFF> that are next to each other.
Did that with InDesign's UI Text Find/Replace function and typed <FEFF><FEFF> in the search field.
In my sample document there were two of them next to each other so the result was:
one single instance.
Now the scripting side:
app.findTextPreferences.findWhat = "<FEFF><FEFF>";
var result = app.documents[0].findText();
alert(result.length); // 2
"<FEFF><FEFF>" found two instances instead of one.
The special characters in my sample document contain one Note object each so I could read out the Note's id number and found that indeed the two notes were found twice!
My solution was to change the search string a bit:
app.findTextPreferences.findWhat = "<FEFF>"+"<FEFF>";
var result = app.documents[0].findText();
alert(result.length); // 1
That gave me the right number of results.
Tested with InDesign CS 6 v8.1.0 and CC 2017 v12.0.0.81 on OSX 10.10.5.
Did I detect a bug?
Or should special strings always be written on their own as substrings and concatenated when working with Text Find/Replace ?
Regards,
Uwe
Message was edited by: Uwe Laubender
Copy link to clipboard
Copied
Did further testing with very mixed results with more sample documents.
Sometimes even "<FEFF>"+"<FEFF>" in the search string resulted in doubles.
Also the position of the special characters in a text frame seems to be of importance.
E.g. if the two characters are positioned at the beginning or at the end of a story the results would not be doubled…
Since I'd like to get Note objects, that are next to each other, I came to the conclusion, that I would better gather the notes out from the special characters and inspect their id numbers instead of processing something like
var note1 = result
.notes[0]; var note2 = result
.notes[1];
directly.
More on that tomorrow or at the weekend.
Regards,
Uwe
Copy link to clipboard
Copied
FEFF are XmlTag characters. You cannot find these characters nor with the GREP UI or by scripting.
Thanks Stefan
Copy link to clipboard
Copied
Hi Stefan,
but you can find them. 🙂
Not with GREP UI, but by using TEXT Find/Change.
And also by using the script implementation of TEXT Find/Change.
And FEFF are not only XML-Tag special characters, but also—among others—ones that carry InDesign's Note Object.
Regards,
Uwe
Copy link to clipboard
Copied
Hello Uwe,
Isn't the problem these special characters are meant to be ignored?
I have some text with a note in the middle.
P.
Copy link to clipboard
Copied
Hi Pickory,
the matter is, if you want to find them, you can:
Two Note objects next to each other in layout and story view:
The two characters found by TEXT Find/Change:
Regards,
Uwe
Copy link to clipboard
Copied
Hello Uwe,
Just because you can, doesn't mean you should.
Why are you doing it? Or, are you just testing?
P.
Copy link to clipboard
Copied
Hi Pickory,
mainly for testing.
I have some ideas using Note objects in a special way.
And one key is to find two Notes adjacent to each other.
Since Note objects could be "anywhere"—in Stories, Bookmarks Footnotes* , Tables (nested or not), even Notes can contain Notes—I was looking for a quick way to find them. And two <FEFF> characters next to each other are likely candidates for containing two notes.
Furher testing with Text Find/Change of the UI and the search strings <FEFF> or <FEFF><FEFF> reveal some more oddities:
For example have two Notes placed next to each other in the middle of a Story, do a search for <FEFF><FEFF> and try to replace them with, let's say "N" that should stand for "Notes". The right Note of the two will be replaced with 4 times "N". The left Note is still there. Run the replacement again and another 4 "N"s are added, but one of the "N"s of the first replacement is removed, the left Note is still there…
I can only tell:
Something very strange is going on with <FEFF> special characters containing Note objects and Text Find/Change.
Regards,
Uwe
* EDIT: Meant "Footnotes" not "Bookmarks". Sorry.
Copy link to clipboard
Copied
Hello Uwe,
I think accessing those 'owned' items directly is dangerous. If you use the UI, InDesign takes care of keeping the notes intact. There are other instances of those owned items, index markers and hyperlink destinations.
P.
Copy link to clipboard
Copied
Now that I detected the oddities around searching <FEFF> I think I can live with it.
I am able to extract a unique Note object out of a found text with Text Find/Change by its unique id number and then refer to the Note object directly. So adding text, extracting text, doing a label or removing the Note object is no problem at all.
Thanks,
Uwe
Copy link to clipboard
Copied
Hello Uwe,
Ah, I thought you were going to try to modify the owned items / special characters.
I presume you are going to use the selection returned by your find to access the notes, clever!
P.