You're experiencing a fairly common issue. I suggest you take a look at Bruce Robinson's Virtual List technique. There are a lot of applications of it, but in this particular situation, what you'd do is assign chunks of your text (as divided by carriage returns) to individual records on a List View layout. Here are the basics (at least one way of accomplishing the goal):
1) Create a table in your database apart from the rest of the database. This table will contain at least one field: A calculation set to GetValue ( $$var ; Get ( RecordNumber )). You can assign additional fields if you need them, but I don't know offhand that you would.
2) Create a number of records at least equal to the number of paragraphs you expect ever to need. (Although you can create new ones on the fly if you need to.)
3) In the script you're currently using for the printing routine, take your very large field and set $$var equal to its contents.
4) Go to a List View layout where you have your calculation field. Omit any records above the number of records in the $$var list (go to record ValueCount + 1, then Omit Multiple Records, say, 1000 or so). Print.
So how does this work? By using GetValue, you're telling FileMaker to extract the text between carriage returns and insert it into the field. By using Get ( RecordNumber ), your basically telling FileMaker, "Whatever number record I'm on, that's the paragraph from the source text I want."
So, record 1 contains the first paragraph, record 2 contains the second paragraph, etc. All generated in real time, on the fly. There's not even a need to sort the records, because FileMaker already knows 1 comes before 2, which comes before 3.
You'll need to make your List View layout field large enough to hold an individual paragraph, but that shouldn't be a problem. Let us know if this doesn't make sense.
Mike, I experimented with 150 records with a section or paragraph on each one. Then in preview they all slided up and looked fine. I am going to take a look at your suggestion to see if that adds something to the solution. Thanks, Ken