I have a problem with the bookmarks with Acrobat 5.0 (windows).
When i choose some bookmarks, i see the next page.
 
With Acrobat 4.0, no problem.
                                                            Alain.
 
 
Example : chapitre 1 and 2 = KO,  chapitre 3 = OK
 
 
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.io.*;
 
public class bookmark {
 
    static int page = 0;
 
    public static void main(String[] args) {
 
        Document document = new Document(PageSize.A4);
 
        try {
 
            PdfWriter writer = PdfWriter.getInstance(document,
                                                     new FileOutputStream(
                                                             "c:/bookmark.pdf"));
            document.open();
 
            Font fonttitre = new Font(Font.TIMES_NEW_ROMAN, 30);
            Phrase titre = new Phrase("\n\n\n\n ESSAI  \n\n", fonttitre);
            Paragraph ptitre = new Paragraph(titre);
            ptitre.setAlignment(Element.ALIGN_CENTER);
            document.add(ptitre);
            document.setPageSize(PageSize.A4.rotate());
            document.newPage();
            loadDocument(document);

        } catch (Exception e2) {
            System.out.println(e2);
        }
 
        document.close();
    }
 
    public static void loadDocument(Document document) {
 
        String[] bogusData = {
            "ADDADA", "10", "EEEEE", "SSSSS", "NULL", "3", "1", "RFRF", "10",
            "1", "TTTTT", "OOOO"
        };
        int NumColumns = 12;
 
        try {
 
            PdfPTable datatable = new PdfPTable(NumColumns);
            datatable.getDefaultCell().setPadding(3);
 
            int[] headerwidths = {
                15, 8, 10, 8, 10, 10, 10, 10, 10, 10, 19, 10
            }; // percentage
            datatable.setWidths(headerwidths);
            datatable.setWidthPercentage(100); // percentage
            datatable.getDefaultCell().setBorderWidth(2);
            datatable.getDefaultCell().setHorizontalAlignment(
                    Element.ALIGN_CENTER);
 
            String[] sentete = {
                "AAA", "BBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHHH",
                "IIIII", "JJJJ", "KKKKK", "LLLLLL"
            };
 
            for (int i = 0; i < sentete.length; i++) {
                datatable.addCell(new Phrase(sentete[i],
                                             new Font(Font.TIMES_NEW_ROMAN, 10)));
            }
 
            datatable.setHeaderRows(1); // this is the end of the table header
            datatable.getDefaultCell().setBorderWidth(1);
            page++;
 
            int max = 100;
 
            for (int i = 1; i < max; i++) {
 
                if (i % 2 == 1) {
                    datatable.getDefaultCell().setGrayFill(0.9f);
                }
 
                for (int x = 0; x < NumColumns; x++) {
                    datatable.addCell(new Phrase(bogusData[x],
                                                 new Font(Font.TIMES_NEW_ROMAN,
                                                          10)));
                }
 
                if (i % 2 == 1) {
                    datatable.getDefaultCell().setGrayFill(0.0f);
                }
            }
 
            Font fonttitre2 = new Font(Font.TIMES_NEW_ROMAN, 15, Font.BOLD);
            Phrase nomchapitre = new Phrase("CHAPITRE 1", fonttitre2);
            Paragraph parchap = new Paragraph(nomchapitre);
            Chapter chapter = new Chapter(parchap, 1);
            Font fontsection2 = new Font(Font.HELVETICA, 14, Font.UNDERLINE);
            Phrase nomsection = new Phrase("sous chapitre 1", fontsection2);
            Paragraph parsect = new Paragraph(nomsection);
            Section section = chapter.addSection(parsect, 2);
            Paragraph para1 = new Paragraph("blbbla");
            para1.setAlignment(Element.ALIGN_CENTER);
            section.add(para1);
            section.add(datatable);
            document.add(chapter);
            nomchapitre = new Phrase("CHAPITRE 2", fonttitre2);
            parchap = new Paragraph(nomchapitre);
            chapter = new Chapter(parchap, 2);
            nomsection = new Phrase("sous chapitre 1", fontsection2);
            parsect = new Paragraph(nomsection);
            section = chapter.addSection(parsect, 2);
            section.add(new Paragraph("blabla"));
            section.add(datatable);
            document.add(chapter);
 
            document.newPage();
            document.setPageSize(PageSize.A4);
 
            nomsection = new Phrase("sous chapitre 2", fontsection2);
            parsect = new Paragraph(nomsection);
            section = chapter.addSection(parsect, 2);
            section.add(new Paragraph("blabla"));
            document.add(section);
            document.newPage();
            nomchapitre = new Phrase("CHAPITRE 3", fonttitre2);
            parchap = new Paragraph(nomchapitre);
            chapter = new Chapter(parchap, 3);
            nomsection = new Phrase("sous chapitre 1", fontsection2);
            parsect = new Paragraph(nomsection);
            section = chapter.addSection(parsect, 2);
            section.add(new Paragraph("blabla"));
            document.add(chapter);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
-------------------------------------------------------------------------------------------------------------- END

Reply via email to