package com.itextpdf.text.pdf; import static org.junit.Assert.assertEquals; import java.io.ByteArrayOutputStream; import java.util.HashMap; import java.util.List; import org.junit.Test; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; public class BookmarksTest { private static final String TITLE = "1.\u00a0Paragraph 1"; @Test public void testNoBreakSpace() throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, baos); document.open(); writer.setPageEvent(new PdfPageEventHelper() { public void onParagraph(PdfWriter writer, Document document, float position) { PdfContentByte cb = writer.getDirectContent(); PdfDestination destination = new PdfDestination(PdfDestination.FITH, position); new PdfOutline(cb.getRootOutline(), destination, TITLE); } }); document.add(new Paragraph("Hello World")); document.close(); // read bookmark back PdfReader r = new PdfReader(baos.toByteArray()); List bookmarks = SimpleBookmark.getBookmark(r); assertEquals("bookmark size", 1, bookmarks.size()); HashMap<String, Object> b = (HashMap<String, Object>)bookmarks.get(0); String title = (String) b.get("Title"); assertEquals("bookmark title", TITLE, title); } }