Somewhere in your program, you've always had an unbalanced number of BT/ET
pairs. If you take one of your old PDFs (that was built by the older
iTextSharp) and run it through Acrobat Pro's syntax checker, you'll find you
have a problem. Adobe's smart enough to Figure It Out, but there are quite a
few other PDF viewers floating around these days that are not.
That's why I added the code to catch the unbalanced pairs, and why the rest of
the team agreed that it was a good idea. IIRC, the same sort of error is
thrown with unbalanced q/Q pairs, though the verbage may be different...
And now I can't find where I put the check for BT/ET...
Ah yes... sanityCheck(). And because it's throwing during a newPage(), that
means you have a BT without an ET somewhere in your page's text stream. Not in
the direct content, and changing that won't affect the text ContentByte one way
or the other.
It's technically possible that we are throwing in error. For Example:
q
BT
(blah)Tj
Q
I'm not sure how the PDF spec handles this Weird Case, or even if it has
anything to say on the matter. Lets see...
"A text object begins with the BT operator and ends with the ET operator, as
shown in the Example, and described in Table 107. "
So the above content example is either illegal, or still inside a text object
after the Q. We're fiine... but there's some wiggle room here in the spec that
makes me uncomfortable. "Alarmed" even. Leonard, am I reading this right?
Text state is also kinda independant of the regular graphic state. Text
attributes within a BT/ET pair are local to that text object. BT/ET is kind of
text's version of q/Q. I would therefore hope that q BT Q parses as an
unclosed text object, but a retentive reading of the quoted line would make q
BT Q ET legal... like I said, "alarming". I'm poking around in the q/Q verbage
for something to support/reject this interpretation, to no avail.
These operators have been around since PDF 1.0... I'd be shocked if this
question hasn't come up before.
--Mark Storer
Senior Software Engineer
Cardiff.com
import legalese.Disclaimer;
Disclaimer<Cardiff> DisCard = null;
________________________________
From: Paulo Soares [mailto:psoa...@glintt.com]
Sent: Monday, August 30, 2010 9:16 AM
To: Post all your questions about iText here
Subject: Re: [iText-questions] Error: Unbalanced begin/end
textoperatorssinceiText 5
The only problem I can see here is that you are still ignoring the
request for a simple, complete, standalone example. I'm ok you that, it's your
problem, not mine.
Paulo
----- Original Message -----
From: alrts <mailto:edition-b...@swissonline.ch>
To: itext-questions@lists.sourceforge.net
Sent: Monday, August 30, 2010 4:59 PM
Subject: Re: [iText-questions] Error: Unbalanced begin/end text
operatorssinceiText 5
Referring back to my first example with ColumnText(), the
internal buffer of
the ColumnText ct reads just before the document is closed:
Canvas = {BT
1 0 0 1 163.67 479.06 Tm
/F1 26 Tf
(Astrologisches Porträt)Tj
ET
}
This looks pretty much ok, BT being short for BeginText(), then
comes the
SetSimpleColumn(...), followed by the phrase (preceded by the
chunk's font)
and ET for endText(). But, upon CloseDocument() the
Unbalanced begin/end text operators
error appears. Can anybody see a problem here ?
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.851 / Virus Database: 271.1.1/3091 - Release Date:
08/29/10 11:34:00
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://www.itextpdf.com/book/
Check the site with examples before you ask questions:
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/