PdfWriter.reorderPages failure 2006-07-27 - By Scott Tomer
Back I am trying to reorder the pages in a PDF document after adding some extra pages. The following code fails saying that the integer array must be the same size as the number of pages in the document. When I step into the code, I see that it believes that the number of pages in the PdfWriter is 0 (zero).
Help?
---code--- public boolean go(String pdfFile, String newFile, boolean duplexLate) { try { PdfStamper stamp = null; PdfReader reader = new PdfReader(pdfFile); int pageCount = reader.getNumberOfPages();
stamp = new PdfStamper(reader, new FileOutputStream(newFile)); if (duplexLate) { //Add an extra page after the address page stamp.insertPage(2, PageSize.LETTER); pageCount++; } int mod = pageCount % 2; if (mod != 0) { //not even number of pages, add one stamp.insertPage(pageCount+1, PageSize.LETTER); pageCount++; } int[] newOrder = new int[pageCount]; for (int i=1, j=0; i<pageCount;i+=2, j+=2) { newOrder[j] = i+1; newOrder[j+1] = i; } stamp.getWriter().reorderPages(newOrder); stamp.close(); return true; } catch (Exception de) { return false; } } ---end code---
Thanks, Scott Tomer
<pre>I am trying to reorder the pages in a PDF document after adding some <br >extra pages. The following code fails saying that the integer array <br>must be the same size as the number of pages in the document. When I <br> step into the code, I see that it believes that the number of pages in <br>the PdfWriter is 0 (zero).<br><br>Help?<br><br>---code---<br>public boolean go (String pdfFile, String newFile, boolean duplexLate) {<br> try {<br> PdfStamper stamp = null;<br> PdfReader reader = new PdfReader (pdfFile);<br> int pageCount = reader.getNumberOfPages();<br><br> stamp = new PdfStamper(reader, new FileOutputStream(newFile));<br> if (duplexLate) { <br> //Add an extra page after the address page<br> stamp.insertPage(2, PageSize.LETTER);<br> pageCount++;<br> }<br> int mod = pageCount % 2;<br> if (mod != 0) { //not even number of pages, add one <br> stamp.insertPage(pageCount+1, PageSize.LETTER);<br> pageCount++;<br> }<br> int[] newOrder = new int[pageCount];<br> for (int i=1, j=0; i<pageCount;i+=2, j+=2) {<br> newOrder[j ] = i+1; <br> newOrder[j+1] = i;<br> }<br> stamp.getWriter() .reorderPages(newOrder);<br> stamp.close();<br> return true;<br> }<br> catch (Exception de) {<br> return false;<br> }<br> }<br>---end code---<br><br>Thanks,<br>Scott Tomer</pre>
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV __ ____ ____ ____ ____ ____ ____ ____ ____ ____ iText-questions mailing list iText-questions@(protected) https://lists.sourceforge.net/lists/listinfo/itext-questions
|
|