Hi,
I'm trying to generate a document from a single long text paragraph that needs 
to have different margins for odd and even pages (not necessarily in a mirrored 
fashion)Since I have no control of what page will the text render in,  the 
obvious route was to code a page event to change margins at the end of every 
page and let iTextPDF handle the text flow.
So far I've almost succeeded, but I'm getting and odd behavior from the 
generated pdf: The first line of every page after changing margins, preserve 
the same margins as the previous page.
I'm attaching both the test text and the resulting PDF. I'll appreciate your 
help.
Regards.
This is the code I'm using that triggers the behavior:
public class TestClass {
        public static void main(String[] args) throws DocumentException, 
IOException{           Document doc = new Document(PageSize.LEGAL, 92f, 43f, 
113f, 57f);               PdfWriter writer = PdfWriter.getInstance(doc, new 
FileOutputStream("/tmp/test.pdf"));           TestPageEvent event = new 
TestPageEvent();              event.setCurrentSide(1);                
writer.setPageEvent(event);             Paragraph para = new 
Paragraph(readFileAsString("/tmp/loremipsum.txt"));                
para.setLeading(25);            para.setAlignment(Element.ALIGN_JUSTIFIED);     
        doc.open();             doc.add(para);          doc.close();    }
}
This is the page event:
public class TestPageEvent extends PdfPageEventHelper { private int 
CurrentSide;                public void setCurrentSide(int currentSide) {       
    CurrentSide = currentSide;      }
        public void toggleSide() {              CurrentSide = (CurrentSide == 
1)? 2 : 1;        }               public void onEndPage(PdfWriter writer, 
Document doc) {         toggleSide();           if (CurrentSide == 1) {         
                doc.setMargins(92f, 43f, 113f, 57f);            }               
else if (CurrentSide == 2) {                    doc.setMargins(43f, 92f, 57f, 
99f);             }
        }}                                        
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia 
vehicula erat sit amet bibendum. In nibh dolor, gravida vel posuere at, pretium 
a diam. Nam rutrum sapien eget nibh feugiat sit amet laoreet tortor vehicula. 
Aenean in mattis nisi. Vivamus in lorem tellus. Phasellus vitae nunc lacus. 
Donec semper massa quis leo pellentesque dapibus tincidunt justo posuere. Sed 
arcu eros, consequat ut fringilla ut, venenatis quis massa. Quisque eget libero 
dolor, ut aliquam risus. Nulla bibendum, orci ac dapibus consequat, est ante 
pellentesque turpis, et molestie quam ligula sit amet quam. Vestibulum varius 
tristique elit nec condimentum. Praesent fringilla neque vitae enim venenatis 
vel rhoncus purus imperdiet. Vestibulum ante ipsum primis in faucibus orci 
luctus et ultrices posuere cubilia Curae; Donec varius posuere orci, pulvinar 
tempor lacus blandit ac. Quisque fermentum, arcu id euismod fringilla, nibh 
orci consequat lectus, vel venenatis dolor velit ac metus. Nunc vitae turpis at 
urna hendrerit pellentesque vitae sed nisl. Praesent et velit ut tellus 
pulvinar mattis. Vivamus vitae nisi id odio adipiscing volutpat in vitae 
turpis. Sed facilisis imperdiet ante, vel condimentum neque feugiat eu. 
Praesent volutpat ultricies odio, in molestie est convallis non. Ut lobortis 
eleifend tincidunt. Curabitur tincidunt, sapien non dictum porta, mi augue 
pharetra nibh, et posuere dolor lectus ut tellus. Aenean feugiat nisi non eros 
convallis posuere. Suspendisse sed elit urna. Proin tristique, enim eu faucibus 
convallis, ligula lectus dignissim leo, a placerat nibh dui eu massa. Etiam 
vitae nisl justo. Duis sagittis egestas commodo. Sed et dignissim ante. Ut 
molestie iaculis gravida. Etiam massa libero, gravida eu interdum tincidunt, 
lacinia ac purus. Mauris sit amet hendrerit diam. Pellentesque ante leo, 
consectetur hendrerit tincidunt posuere, gravida sed ipsum. Praesent pharetra 
justo et orci ultrices porttitor. Morbi et augue dolor, at cursus metus. Nulla 
et nulla quis turpis lacinia cursus id vitae sem. Nam in ultricies tortor. 
Aenean sit amet tellus nisi. Nulla iaculis facilisis risus nec volutpat. Nam 
nec eros eu orci viverra molestie. Duis eget tellus tellus. Nunc massa sem, 
rhoncus at molestie sit amet, posuere vitae lorem. Proin tortor est, hendrerit 
nec commodo at, fermentum non diam. Nunc sit amet nulla libero. Nam enim nisl, 
dignissim et blandit ut, malesuada vel metus. Praesent consectetur viverra dui, 
sit amet venenatis ipsum pharetra in. Etiam orci felis, convallis ac ultrices 
sed, volutpat in erat. Fusce vitae nibh odio, et tincidunt ipsum. Morbi 
sagittis lacinia eros, ut accumsan lorem viverra bibendum. Cras lacus turpis, 
cursus vel congue id, dapibus ac turpis. Ut nec malesuada urna. Sed eros est, 
laoreet a mattis a, porta ac dui. Ut dolor dui, sodales quis commodo ac, 
commodo a turpis. Fusce venenatis, lorem vitae elementum molestie, dui diam 
malesuada ante, sed pulvinar nisl tellus quis leo. Fusce at quam bibendum neque 
aliquam eleifend. Aenean vehicula sollicitudin tempor. Curabitur quis arcu 
ipsum, sit amet tempor risus. Nam molestie, leo a semper elementum, est enim 
commodo mi, at tincidunt metus nibh hendrerit magna. Vivamus laoreet 
ullamcorper felis sed volutpat. Pellentesque lacus justo, porttitor sed luctus 
sit amet, hendrerit quis orci. Sed mollis velit et eros viverra vitae sodales 
turpis ullamcorper. Etiam at risus urna. Proin tristique magna dapibus velit 
facilisis iaculis. Nam sit amet mi dui, sit amet consectetur elit. Integer ut 
massa non odio ornare aliquet. Pellentesque adipiscing lectus sit amet mi 
ultrices rutrum eu sed neque. Phasellus sit amet nibh mauris. Etiam eget nulla 
ipsum. In tincidunt egestas volutpat. Nam ornare blandit est ut tincidunt. 
Fusce sed lacus sed nunc tempor iaculis sed ut lorem. Suspendisse in dui vitae 
ligula pulvinar cursus. Donec et risus in ante feugiat molestie congue nec 
nunc. Duis dolor libero, ullamcorper ut volutpat non, rhoncus vel mauris. 
Mauris sagittis tellus orci. Etiam luctus gravida arcu non suscipit. Vivamus 
tincidunt malesuada magna, quis vulputate ligula lacinia ac. Praesent at 
aliquam ante. Ut laoreet posuere rutrum. Praesent non dignissim magna. Ut 
consequat pellentesque mi, eget placerat orci luctus in. Nulla fermentum 
molestie porttitor. Nunc porta ultrices nulla, at vulputate sapien congue 
interdum. Aliquam erat volutpat. Cras nunc arcu, dapibus id pretium quis, 
pharetra malesuada purus. Lorem ipsum dolor sit amet, consectetur adipiscing 
elit. Aliquam congue dolor non eros placerat a mattis orci interdum. 
Suspendisse aliquet nisi vel sapien laoreet eu faucibus erat iaculis. Mauris 
venenatis nibh fermentum lorem elementum posuere. Nulla eleifend adipiscing 
auctor. Integer sed pretium justo.Suspendisse potenti. Nam vulputate ante in 
elit iaculis suscipit. Cras molestie scelerisque orci, at commodo massa 
vehicula non. Quisque nec iaculis massa. Fusce ut erat condimentum velit 
volutpat dapibus ac vel lacus. Suspendisse est felis, laoreet vel accumsan at, 
ornare interdum ipsum. Aliquam molestie odio nisl. Aenean convallis feugiat mi, 
non elementum elit rutrum eu. Ut porta erat ac nulla viverra aliquam. Vivamus 
sollicitudin, ipsum id sodales adipiscing, erat dui lobortis purus, id 
vulputate felis mauris ut ipsum. Aliquam quis dui diam. Sed ultrices commodo 
euismod. Proin dictum tempus felis id hendrerit. Cras libero metus, aliquet sit 
amet elementum egestas, aliquet porttitor lectus. Nulla dignissim metus in erat 
semper ut convallis elit sodales. Aenean quis ultricies urna. Curabitur 
consectetur sollicitudin mi in congue. Morbi nec nunc est, ut suscipit leo. 
Fusce risus ipsum, interdum lobortis aliquam a, eleifend sed enim. Nunc augue 
sem, tristique in interdum quis, blandit in est. In varius arcu ut lectus 
lobortis blandit. Maecenas pharetra orci non ante elementum adipiscing. Quisque 
ante tortor, vestibulum at convallis ut, imperdiet sit amet tortor. Mauris a 
augue risus, sed bibendum sapien. Phasellus pharetra massa a nisl mattis in 
consectetur lacus auctor. Maecenas dictum diam nec mauris dapibus vulputate 
aliquam mi mollis. Vivamus convallis dui nec tortor consectetur ornare. 
Pellentesque sodales pharetra nibh, et eleifend ante pulvinar et. Cum sociis 
natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc 
eros ante, eleifend eget congue nec, luctus sit amet lacus. Donec quis urna in 
ligula feugiat porta. Curabitur enim orci, accumsan a hendrerit quis, venenatis 
sit amet enim. Aliquam erat volutpat. Vestibulum pretium malesuada felis, vel 
posuere magna laoreet vitae. Ut non metus sem. Nulla facilisi. Phasellus 
laoreet, ipsum non imperdiet auctor, nisi libero volutpat tellus, in blandit 
velit massa nec urna. Morbi et lacus a nunc mollis viverra a vel erat. Morbi 
dignissim facilisis luctus. Integer hendrerit orci est. Sed sed elit arcu. 
Suspendisse turpis quam, semper nec blandit vel, vehicula nec sapien. Donec a 
semper dolor. Vestibulum dignissim sapien vel sem dictum tristique. Vestibulum 
suscipit tempus placerat. Maecenas quis magna at felis tincidunt aliquam at in 
felis. Aliquam dapibus elit consectetur sem elementum aliquam. Vestibulum ante 
ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 
Curabitur vulputate velit eu ante sollicitudin tempus. Donec dui dolor, semper 
nec vestibulum ut, volutpat eu justo. Praesent bibendum blandit dolor ut 
facilisis. Duis aliquam mauris laoreet augue sagittis sodales. Donec ut tellus 
sed arcu ultricies consectetur. Aliquam ut turpis nisl, non congue lectus. 
Praesent at velit quis metus sollicitudin faucibus. Donec egestas adipiscing 
eleifend. Duis imperdiet nunc cursus ipsum laoreet egestas. Etiam pulvinar 
auctor aliquet. Aliquam pharetra, neque scelerisque mollis venenatis, enim 
libero fermentum metus, at consectetur nisi purus ac erat. Cum sociis natoque 
penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer a 
risus a eros suscipit vestibulum quis vitae tortor. Pellentesque fermentum 
porta porta. Nunc sit amet neque risus, vel venenatis risus. Phasellus arcu 
orci, ornare pretium tincidunt ut, imperdiet at arcu. Donec elementum accumsan 
pretium. Ut vel magna in dolor condimentum scelerisque. Curabitur at accumsan 
odio. Pellentesque vitae condimentum felis. Morbi nec lacus nulla, ac laoreet 
erat. Nam lorem eros, sagittis sit amet eleifend in, rhoncus sed est. Vivamus 
sed dui odio. Vestibulum quis ante eu justo semper lacinia sed sit amet elit. 
Donec cursus, elit fringilla aliquet vulputate, massa erat elementum eros, et 
tincidunt arcu mauris posuere mauris. Maecenas venenatis ornare luctus. 
Phasellus varius faucibus sagittis. Vestibulum bibendum lacinia sagittis. 
Curabitur posuere felis in dui interdum quis venenatis risus semper. Fusce 
sollicitudin pharetra rhoncus. Duis in tristique turpis. Nunc eu tellus at leo 
faucibus vestibulum vel auctor arcu. Proin elementum arcu non dui posuere nec 
mattis justo molestie. Cras tincidunt consequat interdum. Nam lacinia tellus 
non mauris blandit vel aliquet purus consequat. Sed eget nisi id quam ornare 
gravida vel in nulla. Duis lobortis tempus enim, at sodales mauris condimentum 
id. Nulla facilisi. Morbi dapibus, ipsum at tristique faucibus, nibh justo 
tincidunt arcu, ut tristique sapien purus vel tellus. Sed eget magna eget ipsum 
ultricies dignissim. Aliquam suscipit venenatis nisl, a tempus mauris faucibus 
at. Donec ac sapien odio. Integer consequat risus vel augue faucibus eget 
pretium enim molestie. Vivamus a mauris non arcu fermentum tincidunt. Maecenas 
vel imperdiet orci. Aliquam est lectus, aliquet a varius quis, pellentesque 
euismod orci. Nullam non eros neque, sed ultricies elit. Duis sagittis odio 
urna. Nulla facilisi. Pellentesque ac sem dolor. Integer viverra eros vel felis 
aliquet aliquet. Nam purus quam, suscipit id pretium eget, rhoncus ultrices 
sem. Sed eu sapien arcu, ac mollis eros. Duis eu enim velit, a pretium enim. 
Curabitur vulputate mattis purus eget varius. Phasellus dictum lobortis purus 
vitae sagittis. Cras faucibus, nibh ut dapibus tincidunt, sapien lectus semper 
nibh, quis volutpat tellus purus id turpis. Sed non leo risus, gravida volutpat 
sapien. Aliquam sit amet pretium magna. Curabitur vitae quam at eros blandit 
faucibus. Sed et dolor lectus, nec tincidunt enim. Integer quis leo sed velit 
pellentesque luctus ac et nulla. Quisque molestie auctor sem aliquet sodales. 
Aliquam ullamcorper enim accumsan dui luctus in posuere lorem iaculis. Aenean 
sem velit, blandit sit amet elementum ac, interdum nec nunc. In vel nisi 
hendrerit velit tempus lacinia. Ut sodales purus non massa molestie molestie. 
Donec at ipsum ligula, at congue leo. Vestibulum sodales, nibh eu convallis 
ultrices, augue elit dignissim enim, a egestas lorem neque sodales elit. 
Pellentesque ultricies aliquam arcu, at ornare nibh lobortis eget. Nullam 
lacinia volutpat leo, eu condimentum sem consectetur eget. In ultrices orci sed 
erat condimentum cursus. Curabitur pretium dui ac justo ullamcorper nec 
dignissim eros dignissim. Phasellus at fermentum nulla. Integer fringilla 
adipiscing tempus. In felis leo, eleifend a porttitor vel, placerat nec magna. 
Pellentesque mollis tincidunt rhoncus. Nam sit amet tempus purus. Mauris 
condimentum nulla ac lacus mollis feugiat. Ut ullamcorper egestas neque, non 
suscipit leo aliquam at. Nullam consectetur dolor et eros cursus bibendum 
adipiscing massa accumsan. Ut dapibus lectus ut justo malesuada dignissim. 
Donec venenatis ipsum a lectus convallis viverra. Sed aliquam scelerisque felis 
in vulputate. Nullam quis justo vitae lacus posuere aliquet vel eget enim. 
Quisque varius, nisl in interdum semper, dui enim pharetra nisi, nec semper 
mauris metus a metus. Nunc vel felis ligula, quis iaculis felis. Aenean turpis 
est, sollicitudin venenatis placerat non, fermentum a leo. Maecenas fringilla 
quam vitae lacus iaculis ut molestie elit porta. Aenean ligula arcu, viverra ac 
condimentum id, dignissim fringilla augue. Donec lobortis, neque vitae luctus 
vestibulum, sem sem iaculis lectus, id mollis neque erat in tellus. Nulla vitae 
mattis orci. In sit amet est vitae dui sollicitudin aliquam. Pellentesque 
ullamcorper feugiat tempor. Aenean eget velit in dolor mollis pulvinar nec id 
risus. Fusce non orci in mauris ullamcorper porttitor nec tristique elit. Etiam 
molestie luctus dolor, eget commodo magna pulvinar ultricies. Nullam bibendum 
dictum ligula, adipiscing vulputate purus luctus vel. Maecenas euismod purus in 
diam pharetra convallis. Lorem ipsum dolor sit amet, consectetur adipiscing 
elit. Aliquam mauris tortor, gravida nec mattis ac, dignissim id magna. 
Praesent sit amet malesuada dolor. Donec ante lorem, lobortis nec venenatis et, 
accumsan in lectus. Donec tellus metus, rhoncus sed fringilla viverra, pharetra 
ut est. Duis ac condimentum nunc. Vivamus scelerisque ullamcorper urna, ac 
interdum tellus porta ut. Proin posuere iaculis dolor nec tempus. Vivamus 
posuere felis quis nibh volutpat at vehicula sem porta. Praesent eleifend 
tempus lacus, eu rhoncus sem faucibus sed. Donec purus metus, dignissim quis 
varius ac, tincidunt non ipsum. Class aptent taciti sociosqu ad litora torquent 
per conubia nostra, per inceptos himenaeos. Suspendisse potenti. Sed 
condimentum adipiscing arcu sit amet mollis. Duis massa ligula, aliquet 
convallis feugiat et, gravida sed dui. Donec velit erat, dictum nec condimentum 
eu, vestibulum non diam. Vestibulum volutpat sagittis turpis ut aliquet. 
Vivamus faucibus sem sed felis.

Attachment: test.pdf
Description: Adobe PDF document

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to