Although it is generally not recommended to open in Illustrator a PDF generated, for example, from InDesign or QuarkXPress, or simply generated from Illustrator but saved as PDF/X, we eventually end doing it at some point when the source file is not available and we simply want to pick up some graphic assets to reuse in a new design work. We can notice then that the paragraphs are always split into several left-aligned point texts, that some characters originally affected by an horizontal scale in the source file appear affected by an inverse vertical scale and a different point size, that some characters, especially dingbats, sometimes turn out converted to outlines, etc. This extension for Illustrator CC+ (html5 panel not compatible with old CS versions), baptized «Text rebuild tools», gathers a few functions, some of them already published here as separate jsx scripts, to help recreate and rebuild editable lines/paragraphs/stories from these items.

TextRebuildTools ai008 fit text to outline enYou will recognize the “Fit text to outline” function that enables to fit exactly a text item to the bounds of a vector item;
TextRebuildTools ai008 hv scale motionless change to 100 enalong with the Invert characters horizontal/vertical scale function enabling to change, for example, a 18pt character with a 111.11111% vertical scale to a visually identical 20pt character with a 90% horizontal scale & vice versa;
TextRebuildTools ai008 justification motionless change ena new function to change the paragraph alignment of a point text without moving it, in order to restore the alignment mode of a text line back to what it was in the original source file, systematically replaced with left-alignment when we open in Illustrator the generated pdf;
TextRebuildTools ai008 merge into one story enyou will also recognize the Rebuild broken text function enabling to rebuild editable text lines/paragraphs/stories from text split in several frames — frequently encountered case some others script were developed for such as John Wundes’s or Justin Putney’s.


TextRebuildTools ai008.13 fr param

“Fit text to outline” > You need to select both a text and one or more vector items and the script will fit the text to the items. [cf. 178-fit-a-text-to-an-outline]

Motionless [that is generally quite invisible] changes:

Redefine characters vertical or horizontal scale to 100%: invert characters horizontal/vertical scale while preserving the appearance [cf. 202-invert-characters-hv-scale]:

  • “vertical” > Set vertical scale to 100%, adjust horizontal scale and font size accordingly.
  • “horizontal” > Set horizontal scale to 100%, adjust vertical scale and font size accordingly.

Redefine selected character baselineShift to [value] > Using Text tool, select only one reference character with or w/o a baseline shift and the script will replace this shift value with the desired one, recalculate the baselineShift for every other character in the text, and move the text anchor to restore the characters initial visual position.

Redefine paragraph alignment to

  • “left” > Set paragraph alignment to left, then move the text anchor to restore the characters initial visual position.
  • “center” > Set paragraph alignment to center, then move the text anchor to restore the characters initial visual position.
  • “right” > Set paragraph alignment to right, then move the text anchor to restore the characters initial visual position.

Merge text parts into one single line/single paragraph/single story [cf. 187-rebuild-broken-text-in-illustrator]

  • “single line” > Attempts to merge all selected text frames into one single line, adding some “baseline shift” to the non-aligned texts parts in order to keep the aspect. Suitable for example when you want to merge on a same line several text frames including some offset split parts resulting from superscript or subscript.
  • “single paragraph” > Merges on a same line only actually vertically aligned text frames (with a tolerance defined using the “Same line threshold” parameter), then merges the (single or multi-line) texts items into one single paragraph (the joined texts will be separated by ¬ soft returns) in a single text item. The distribution of the joined texts will be reproduced wherever possible by seeking the paragraph alignment mode (left with optionally 1st line indent, center or right) that best preserves the initial horizontal distribution and the leading preserving the vertical distribution.
  • “single story” > Merges on a same line only actually vertically aligned text frames (with a tolerance defined using the “Same line threshold” parameter), then merges the (single or multi-line) texts items into one single story (the joined texts will be separated by ¶ carriage returns/end-of-paragraph) in a single text item. The distribution of the joined texts will be reproduced wherever possible using paragraph attributes, vertically using “space before/after” parameters, horizontally using “left/right indent” parameters.

↳ Parameters:

  • “Detected text rotation” > To simply inform you that a rotation was detected and the script will have to temporary cancel then restore this transformation to get correct results.
  • “Add space threshold” > If there is an horizontal gap between two consecutive text parts to merge: 1) for a gap width above this threshold (defined in thousandths of an em of the font size of the last character of the first text part), one or more spaces will be appended at the end of the first text part before appending the characters from the second text part; 2) for a gap width below this threshold, the tracking value of the last character from the first text part will be increased before appending the characters from the second text part [you might have to increase this threshold sometimes, for example to merge spaced caps without seeing spaces inserted between them].
  • “Add attribute threshold” > Threshold used to decide whether an existing horizontal/vertical offset between text parts to merge is enough significant to add/modify some character/paragraph attributes such as “baselineShift”, “left/right indent”, “1st line left indent” in order to preserve the characters distribution, or if this offset is insignificant and should better be ignored. For example if there is a vertical offset between two consecutive text parts to merge on a same line (when using the merge into one line button, or when the vertical offset remains below the “Same line threshold”): 1) for an offset above the “Add attribute threshold”, the baselineShift value of the characters from the second text part will be modified before appending these characters to the first text part; 2) an offset below this threshold will be simply ignored.
  • “Same line threshold” > Parameter for merging text parts into one multiline text (ignored when using the merge into one single line button): if the vertical offset between two text parts to merge is below this threshold, the text parts will be merged in a same line (note that consequently a series of an unlimited amount of consecutive text parts separated by vertical gaps below this threshold between them can end merged in a same line even if the offset between the highest and the lowest of the series is above this threshold).

Keep joined paragraphs vertical spacing using

  • “space before” > When joining two consecutive paragraphs, keep the vertical spacing between them by adjusting the “space before” parameter of the lower paragraph.
  • “space after” > When joining two consecutive paragraphs, keep the vertical spacing between them by adjusting the “space after” parameter of the upper paragraph.
  • “leading” > When joining two consecutive paragraphs, keep the vertical spacing between them by adjusting the character leading of the 1st line of the lower paragraph.

Keep joined paragraphs horizontal distribution using indents computed from

  • “leftest text” > When joining several text items whose anchors have different horizontal coordinates (with offsets beyond the “Add attribute threshold”), keep their horizontal distribution by adjusting the “left/right indent” parameters of the paragraphs, computing indents from the leftest joined text item. The anchor horizontal coordinate for the resulting text will then be the same as for the leftest joined text. Appropriate for left-aligned or justified paragraphs.
  • “rightest text” > When joining several text items whose anchors have different horizontal coordinates (with offsets beyond the “Add attribute threshold”), keep their horizontal distribution by adjusting the “left/right indent” parameters of the paragraphs, computing indents from the rightest joined text item. The anchor horizontal coordinate for the resulting text will then be the same as for the rightest joined text. Appropriate for right-aligned paragraphs.

“Set consistent kerning/tracking” > For use when the Character panel shows zero for kerning value and a different tracking value for every character of the selected text: This function tries to apply to the selected characters the different kerning modes (Metrics - Roman only, Auto, Optical, 0/No auto kern) and different consistent tracking and word spacing values, then selects those best matching the characters visual position.

↳ Parameter:

  • “Tolerance” > The attempt to set consistent kerning, tracking and word spacing to the selected text will be considered successful if the characters average horizontal resulting offset from their initial position remains below this tolerance threshold. Otherwise the modification will be cancelled.

“Equalize leading” > Apply an uniform leading to all characters in selection.

Add comment

0 # Elizbeth 2020-11-23 13:45
I loved as much as you'll obtain carried out right here.
The comic strip is attractive, your authored subject matter stylish.

nevertheless, you command get bought an impatience over that you would like be
delivering the following. sick definitely come more before once more as exactly the similar just about very frequently inside case
you protect this hike.

Feel free to visit my blog post car dent repair newport:
0 # Edwina 2020-11-23 12:07
Attractive component to content. I simply stumbled upon your weblog and in accession capital to claim that I get actually enjoyed account
your weblog posts. Any way I will be subscribing on your
feeds and even I fulfillment you get entry to constantly fast.

My web site ezyget:
0 # Jere 2020-11-23 11:10
Awsome blog! I am loving it!! Will be back later to read some more.
I am bookmarking your feeds also

my homepage - oreillys vancouver wa:
0 # Alex 2020-11-23 09:10
Try out your own reactions to might help to prevent first observe.
It's also good to pretend comprehend more than you begin doing.

Forum marketing is a well-known strategy for ramping your traffic.

Here is my web page: malaysian [spam] malaysia gamble:[spam]-malaysia ?page=1
0 # Rena 2020-11-23 08:57
Visitors in many cases get annoyed that they can enjoy encounter of visiting your website and just leave.

Create a good blog post, you must have to think in it and have something intelligent to exclaim.

Visit my web blog: download [spam] games
for android:
0 # Kareem 2020-11-22 22:33
hello there and thank you for your info - I have certainly picked up something new from
right here. I did however expertise a few technical issues using this site, since
I experienced to reload the website many times previous
to I could get it to load properly. I had been wondering if your web hosting is OK?
Not that I'm complaining, but sluggish loading instances times will
often affect your placement in google and could damage your high-quality
score if ads and marketing with Adwords. Anyway I am adding this RSS to my email and could look out for a lot more of your respective
interesting content. Make sure you update this
again soon..

Also visit my web page auto tire center near me:
0 # Twila 2020-11-22 20:05
I am regular visitor, how are you everybody? This piece of writing posted at this website is really

Also visit my blog; live
0 # Darrel 2020-11-22 19:15
Article writing is also a excitement, if you know after that you can write or else it is
difficult hop over to
this website: write. look at here:
visit this site right here: check out this site: Recommended Reading: my blog: click here to find out more: why not find out
more: click to
investigate: you can try here:
he has a good point: Get
More Info: you could try this out: Recommended Site:
check: click this link now:
0 # Kristie 2020-11-22 08:55
Everything is very open with a precise clarification of the challenges.

It was definitely informative. Your site is extremely helpful.
Thanks for sharing!

my web-site: z ocean hotel king spa suite:
0 # Jeramy 2020-11-22 05:47
You may have the appropiate product or website in earth but
without visitors your really just a nobody. Many times you will discover providing usefulness for others
can work like fantasy.

Feel free to visit my blog :: more
info here:
0 # Antje 2020-11-22 03:42
Have you ever thought about including a little
bit more than just your articles? I mean, what you say is
valuable and all. Nevertheless imagine if you added some great photos or videos to give your
posts more, "pop"! Your content is excellent but with
pics and video clips, this website could undeniably be one of the very best in its field.
Superb blog! pop over to these guys: check my blog:
Check Out Your URL: visit this website: this website: important link: you can check here: useful reference: this content: Recommended Reading: look at this website: check out the post right here:
blog link: pop over here: navigate to this site:

Here is my homepage special info:
0 # Maryellen 2020-11-22 02:37
Greetings! I've been reading your site for a long time now
and finally got the bravery to go ahead and
give you a shout out from New Caney Tx! Just wanted to say keep up the great job!

Also visit my blog post scr888
0 # Zita 2020-11-21 17:51
Look for shots of her mothering dispersed further or snuggling
with canine. Include little extras such as a tiny bandage,
a removed food label or classroom stickers. This can result to enormous traffic and
good page ranking.

Also visit my website: ocean king 100 yacht:
0 # Carmelo 2020-11-21 16:58
I do not know whether it's just me or if perhaps
everybody else experiencing problems with your blog.
It appearfs like some of the text in your posts are running off the screen. Can someone else please comment and let me know if this is happening to them too?
This could bee a problem with my internet browser because I've
had this happen previously. Thank you

Visit my website - 안전놀이터:
0 # Larhonda 2020-11-21 15:15
Anybody who gives dating relationship advice always emphasizes on having
good communication skills. The release of PSP abbreviated for Play station portable, was over in 2005 in Japan.

Feel free to surf to my site - m rollex11:
0 # Alvaro 2020-11-21 12:42
Hi, yup look at this site for more
info: paragraph is genuinely pleasant and I have learned lot of
things from it on the topic of blogging. thanks.
0 # Kian 2020-11-21 12:26
If you've got a good content on your website, Google will reward your website with
high rankings. Comissioning articles is most simplistic way to
obtain more traffic and thereby more prospective customers.

Feel free to surf to my web-site: look at this site:
0 # Flossie 2020-11-21 12:01
Thanks for finally writing about >Text Rebuild Tools
0 # Genia 2020-11-21 09:56
Hi, i believe that i saw you visited my web site thus i got here to return the favor?.I am attempting to to find
issues to improve my web site!I suppose its good enough to use a few of your ideas!!

Here is my web site: progressive jackpot games:
0 # Lashay 2020-11-21 00:07
Article writing is also a fun, if you be acquainted with after that you can write
if not it is complex to write.

Also visit my blog; mega 888:
0 # Lucinda 2020-11-19 22:20
Hello to all, it's actually a pleasant for me to go to see this website,
it consists of useful Information.

my blog sky 777 android:
0 # Katrin 2020-11-19 19:00
I like this weblog so much, bookmarked.

Here is my page oreillys auto parts near me 77087: http:///phpinfo/?
0 # Angeles 2020-11-19 17:56
Great items from you, man. I've have in mind your stuff prior to and you're just
extremely great. I actually like what you've obtained here, really like what you're
saying and the way by which you are saying it. You are making
it entertaining and you still care for to keep it sensible.
I can't wait to learn far more from you. This is really a tremendous website.

My website junkyard auto parts:
0 # Alonzo 2020-11-17 18:55
Hey! I could have sworn I've been to this site before but after reading through some of the post I realized it's new to me.
Anyways, I'm definitely happy I found it and I'll be bookmarking and checking back often!

Here is my page :: u pull it
0 # Nickolas 2020-11-16 18:55
I went over this web site and I conceive you have a lot of good information, saved
to fav (:.

Here is my homepage ... [url=http://www ption=com_bookl ibrary&task=vie w&catid=0&id=62 &Itemid=105"=>v 647sji=&lang=ar &fontstyle=f-la rger]advance auto north augusta
0 # Alisha 2020-11-15 03:51
My brother recommended I might like this blog. He was totally right.

This post truly made my day. You cann't imagine just how much time I had spent for this info!

my web page - 1972 honda civic:
0 # Gerardo 2020-11-14 22:08
Hello there, I discovered your web site by way of Google while searching for a comparable topic, your
website got here up, it seems to be great.
I have bookmarked it in my google bookmarks.

Look at my web-site sell my car for cash:
0 # Fred 2020-11-14 12:36
Thanks so much pertaining to giving me personally
an update on this matter on your web page.
Please realise that if a brand new post becomes available or in the event that any changes
occur to the current posting, I would be interested
in reading a lot more and understanding how to make good utilization of those strategies
you share. Thanks for your time and consideration of others by making this website available.

Look into my blog post :: north providence auto salvage:
0 # Tony 2020-11-14 08:44
Appreciating the persistence you put into your blog and detailed information you present.
It's great to come across a blog every once in a while that isn't the same old rehashed information. Great
read! I've saved your site and I'm adding your RSS
feeds to my Google account.

Feel free to visit my site ... local used auto parts:
0 # Cara 2020-11-12 05:26
Today, while I was at work, my cousin stole my iphone and tested to
see if it can survive a forty foot drop, just so she can be a youtube sensation. My apple ipad is now broken and she has
83 views. I know this is totally off topic but I had
to share it with someone!
0 # Lucinda 2020-11-12 04:23
It's very simple to find out any matter on web as compared to books, as I found
this article at this web site.

Feel free to surf to my website; kent junkyard:
0 # Billie 2020-11-11 23:12
Simply to follow up on the update of this theme on your website and would want to let you know simply how much I appreciated
the time you took to publish this beneficial
post. Inside the post, you spoke regarding
how to actually handle this thing with all ease.
It would be my own pleasure to build up some more tips from your web page and come up
to offer people what I have learned from you. Many thanks for your
usual terrific effort.

Look into my page ... marshall auto parts near me:
0 # Dorthy 2020-11-11 21:14
I do bbelieᴠe all of the concepts yyou hve offered ᧐n ypur ⲣost.

They're really convincing and can definitely work. Nonetheless, the posts are too quick fоr newbies.

May y᧐u please extend them a little from next time?
Thanks for the post.

My web page ... golden beet joker123 (Lucie:
0 # Lon 2020-11-11 10:43
Hey There. I found your blog using msn. This is an extremely well written article.
I will be sure to bookmark it and return to
read more of your useful info. Thanks for the post.
I'll certainly return.

Here is my homepage ... western auto inc:
0 # Carma 2020-11-10 01:26
I couldn?t resist commenting. Well written!

Review my web site navigate to bakersfield:
0 # Bessie 2020-11-09 00:28
Thanks for helping out, good info.

Here is my blog post :: friendly junkyard:
0 # Lelia 2020-11-08 18:50
This design is wicked! You most certainly know how to keep a
reader entertained. Between your wit and your videos, I was almost moved to start my own blog (well, almost...HaHa!) Wonderful job.

I really enjoyed what you had to say, and more than that, how you presented
it. Too cool!

my web-site :: junk yards elgin il:
0 # Betsey 2020-11-08 17:35
Тhiѕ is my fіrst time go to see at here and i am in fact pleassant to
rrad eνerthing at single pⅼace.

Herre iis my web blog joker123 wa:
0 # Lawrence 2020-11-07 04:47
I visited many sites however the audio quality for audio songs existing at this web page is truly marvelous.

Visit my webpage: cantley's auto salvage:
+1 # Matt 2020-01-08 05:30

Thank you so much, love this extension!

Follow Scriptopedia to Social Network

Scriptopedia sur facebook


An original idea from Loic Aigon, designed by Eddy.VH. It 's a scripts library for Desktop Publishing Adobe products. Find Javascript for Photoshop, Illustrator, inDesign and Acrobat or ATN scripts ( Photoshop actions ) you need.