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.
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