<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FPDF%2FBookmarks</id>
		<title>Java Tutorial/PDF/Bookmarks - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FPDF%2FBookmarks"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/PDF/Bookmarks&amp;action=history"/>
		<updated>2026-04-24T09:02:59Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/PDF/Bookmarks&amp;diff=5498&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/PDF/Bookmarks&amp;diff=5498&amp;oldid=prev"/>
				<updated>2010-06-01T05:21:12Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:21, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/PDF/Bookmarks&amp;diff=5497&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/PDF/Bookmarks&amp;diff=5497&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add bookmark ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import com.lowagie.text.PageSize;&lt;br /&gt;
import com.lowagie.text.Rectangle;&lt;br /&gt;
import com.lowagie.text.pdf.BaseFont;&lt;br /&gt;
import com.lowagie.text.pdf.PdfAnnotation;&lt;br /&gt;
import com.lowagie.text.pdf.PdfContentByte;&lt;br /&gt;
import com.lowagie.text.pdf.PdfReader;&lt;br /&gt;
import com.lowagie.text.pdf.PdfStamper;&lt;br /&gt;
import com.lowagie.text.pdf.SimpleBookmark;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);&lt;br /&gt;
    PdfReader reader = new PdfReader(&amp;quot;test.pdf&amp;quot;);&lt;br /&gt;
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(&amp;quot;my.pdf&amp;quot;));&lt;br /&gt;
    stamper.insertPage(1, PageSize.A4);&lt;br /&gt;
    PdfContentByte cb = stamper.getOverContent(1);&lt;br /&gt;
    cb.beginText();&lt;br /&gt;
    cb.setFontAndSize(bf, 18);&lt;br /&gt;
    cb.setTextMatrix(36, 770);&lt;br /&gt;
    cb.showText(&amp;quot;Inserted Title Page&amp;quot;);&lt;br /&gt;
    cb.endText();&lt;br /&gt;
    List list = SimpleBookmark.getBookmark(reader);&lt;br /&gt;
    HashMap&amp;lt;String, String&amp;gt; map = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    map.put(&amp;quot;Title&amp;quot;, &amp;quot;Title Page&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;Action&amp;quot;, &amp;quot;GoTo&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;Page&amp;quot;, &amp;quot;1 FitH 806&amp;quot;);&lt;br /&gt;
    list.add(0, map);&lt;br /&gt;
    stamper.setOutlines(list);&lt;br /&gt;
    stamper.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Copy book mark ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import com.lowagie.text.Chapter;&lt;br /&gt;
import com.lowagie.text.Document;&lt;br /&gt;
import com.lowagie.text.PageSize;&lt;br /&gt;
import com.lowagie.text.Paragraph;&lt;br /&gt;
import com.lowagie.text.Section;&lt;br /&gt;
import com.lowagie.text.pdf.PdfCopy;&lt;br /&gt;
import com.lowagie.text.pdf.PdfReader;&lt;br /&gt;
import com.lowagie.text.pdf.PdfWriter;&lt;br /&gt;
import com.lowagie.text.pdf.SimpleBookmark;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Document document = new Document(PageSize.A4);&lt;br /&gt;
    Paragraph hello = new Paragraph(&amp;quot;(English:) hello, &amp;quot;);&lt;br /&gt;
    PdfWriter.getInstance(document, new FileOutputStream(&amp;quot;HelloWorld1.pdf&amp;quot;));&lt;br /&gt;
    document.open();&lt;br /&gt;
    Chapter universe = new Chapter(&amp;quot;asdf&amp;quot;, 1);&lt;br /&gt;
    Section section;&lt;br /&gt;
    document.add(universe);&lt;br /&gt;
    document.close();&lt;br /&gt;
    document = new Document(PageSize.A4);&lt;br /&gt;
    PdfWriter.getInstance(document, new FileOutputStream(&amp;quot;HelloWorld2.pdf&amp;quot;));&lt;br /&gt;
    document.open();&lt;br /&gt;
    Chapter people = new Chapter(&amp;quot;asdf&amp;quot;, 2);&lt;br /&gt;
    section = people.addSection(&amp;quot;B&amp;quot;);&lt;br /&gt;
    section.add(hello);&lt;br /&gt;
    document.add(people);&lt;br /&gt;
    document.close();&lt;br /&gt;
    document = new Document(PageSize.A4);&lt;br /&gt;
    PdfWriter.getInstance(document, new FileOutputStream(&amp;quot;HelloWorld3.pdf&amp;quot;));&lt;br /&gt;
    document.open();&lt;br /&gt;
    Chapter animals = new Chapter(&amp;quot;asdf&amp;quot;, 3);&lt;br /&gt;
    section = animals.addSection(&amp;quot;B&amp;quot;);&lt;br /&gt;
    section.add(hello);&lt;br /&gt;
    document.add(animals);&lt;br /&gt;
    document.close();&lt;br /&gt;
    ArrayList bookmarks = new ArrayList();&lt;br /&gt;
    PdfReader reader = new PdfReader(&amp;quot;HelloWorld1.pdf&amp;quot;);&lt;br /&gt;
    document = new Document(reader.getPageSizeWithRotation(1));&lt;br /&gt;
    PdfCopy copy = new PdfCopy(document, new FileOutputStream(&amp;quot;HelloWorldCopyBookmarks.pdf&amp;quot;));&lt;br /&gt;
    document.open();&lt;br /&gt;
    copy.addPage(copy.getImportedPage(reader, 1));&lt;br /&gt;
    bookmarks.addAll(SimpleBookmark.getBookmark(reader));&lt;br /&gt;
    reader = new PdfReader(&amp;quot;HelloWorld2.pdf&amp;quot;);&lt;br /&gt;
    copy.addPage(copy.getImportedPage(reader, 1));&lt;br /&gt;
    List tmp = SimpleBookmark.getBookmark(reader);&lt;br /&gt;
    SimpleBookmark.shiftPageNumbers(tmp, 1, null);&lt;br /&gt;
    bookmarks.addAll(tmp);&lt;br /&gt;
    reader = new PdfReader(&amp;quot;HelloWorld3.pdf&amp;quot;);&lt;br /&gt;
    copy.addPage(copy.getImportedPage(reader, 1));&lt;br /&gt;
    tmp = SimpleBookmark.getBookmark(reader);&lt;br /&gt;
    SimpleBookmark.shiftPageNumbers(tmp, 2, null);&lt;br /&gt;
    bookmarks.addAll(tmp);&lt;br /&gt;
    copy.setOutlines(bookmarks);&lt;br /&gt;
    document.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Pdf SimpleBookmark ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import com.lowagie.text.Chapter;&lt;br /&gt;
import com.lowagie.text.Document;&lt;br /&gt;
import com.lowagie.text.PageSize;&lt;br /&gt;
import com.lowagie.text.Paragraph;&lt;br /&gt;
import com.lowagie.text.Rectangle;&lt;br /&gt;
import com.lowagie.text.Section;&lt;br /&gt;
import com.lowagie.text.pdf.BaseFont;&lt;br /&gt;
import com.lowagie.text.pdf.PdfAnnotation;&lt;br /&gt;
import com.lowagie.text.pdf.PdfContentByte;&lt;br /&gt;
import com.lowagie.text.pdf.PdfReader;&lt;br /&gt;
import com.lowagie.text.pdf.PdfStamper;&lt;br /&gt;
import com.lowagie.text.pdf.PdfWriter;&lt;br /&gt;
import com.lowagie.text.pdf.SimpleBookmark;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Document document = new Document();&lt;br /&gt;
    PdfWriter.getInstance(document, new FileOutputStream(&amp;quot;2.pdf&amp;quot;));&lt;br /&gt;
    document.open();&lt;br /&gt;
    Paragraph hello = new Paragraph(&amp;quot;asdf&amp;quot;);&lt;br /&gt;
    Chapter universe = new Chapter(&amp;quot;A&amp;quot;, 1);&lt;br /&gt;
    Section section;&lt;br /&gt;
    section = universe.addSection(&amp;quot;B&amp;quot;);&lt;br /&gt;
    section.add(hello);&lt;br /&gt;
    section = universe.addSection(&amp;quot;C&amp;quot;);&lt;br /&gt;
    section.add(hello);&lt;br /&gt;
    document.close();&lt;br /&gt;
    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);&lt;br /&gt;
    PdfReader reader = new PdfReader(&amp;quot;2.pdf&amp;quot;);&lt;br /&gt;
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(&lt;br /&gt;
        &amp;quot;HelloWorldManipulateBookmarks.pdf&amp;quot;));&lt;br /&gt;
    stamper.insertPage(1, PageSize.A4);&lt;br /&gt;
    PdfContentByte cb = stamper.getOverContent(1);&lt;br /&gt;
    cb.beginText();&lt;br /&gt;
    cb.setFontAndSize(bf, 18);&lt;br /&gt;
    cb.setTextMatrix(36, 770);&lt;br /&gt;
    cb.showText(&amp;quot;Inserted Title Page&amp;quot;);&lt;br /&gt;
    cb.endText();&lt;br /&gt;
    stamper.addAnnotation(PdfAnnotation.createText(stamper.getWriter(), new Rectangle(30f, 750f,&lt;br /&gt;
        80f, 800f), &amp;quot;inserted page&amp;quot;, &amp;quot;This page is the title page.&amp;quot;, true, null), 1);&lt;br /&gt;
    List list = SimpleBookmark.getBookmark(reader);&lt;br /&gt;
    HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;
    map.put(&amp;quot;Title&amp;quot;, &amp;quot;Title Page&amp;quot;);&lt;br /&gt;
    ArrayList kids = new ArrayList();&lt;br /&gt;
    HashMap&amp;lt;String, String&amp;gt; kid1 = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    kid1.put(&amp;quot;Title&amp;quot;, &amp;quot;top&amp;quot;);&lt;br /&gt;
    kid1.put(&amp;quot;Action&amp;quot;, &amp;quot;GoTo&amp;quot;);&lt;br /&gt;
    kid1.put(&amp;quot;Page&amp;quot;, &amp;quot;1 &amp;quot;);&lt;br /&gt;
    kids.add(kid1);&lt;br /&gt;
    HashMap&amp;lt;String, String&amp;gt; kid2 = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    kid2.put(&amp;quot;Title&amp;quot;, &amp;quot;bottom&amp;quot;);&lt;br /&gt;
    kid2.put(&amp;quot;Action&amp;quot;, &amp;quot;GoTo&amp;quot;);&lt;br /&gt;
    kid2.put(&amp;quot;Page&amp;quot;, &amp;quot;6&amp;quot;);&lt;br /&gt;
    kids.add(kid2);&lt;br /&gt;
    map.put(&amp;quot;Kids&amp;quot;, kids);&lt;br /&gt;
    list.add(0, map);&lt;br /&gt;
    SimpleBookmark.exportToXML(list, new FileOutputStream(&amp;quot;manipulated_bookmarks.xml&amp;quot;),&lt;br /&gt;
        &amp;quot;ISO8859-1&amp;quot;, true);&lt;br /&gt;
    stamper.setOutlines(list);&lt;br /&gt;
    stamper.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Read PDF File to retrieve the bookmarks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import com.lowagie.text.pdf.PdfReader;&lt;br /&gt;
import com.lowagie.text.pdf.SimpleBookmark;&lt;br /&gt;
public class HelloWorldBookmarks {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    PdfReader reader = new PdfReader(&amp;quot;HelloWorldRead.pdf&amp;quot;);&lt;br /&gt;
    List list = SimpleBookmark.getBookmark(reader);&lt;br /&gt;
    for (Iterator i = list.iterator(); i.hasNext();) {&lt;br /&gt;
      showBookmark((Map) i.next());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void showBookmark(Map bookmark) {&lt;br /&gt;
    System.out.println(bookmark.get(&amp;quot;Title&amp;quot;));&lt;br /&gt;
    ArrayList kids = (ArrayList) bookmark.get(&amp;quot;Kids&amp;quot;);&lt;br /&gt;
    if (kids == null)&lt;br /&gt;
      return;&lt;br /&gt;
    for (Iterator i = kids.iterator(); i.hasNext();) {&lt;br /&gt;
      showBookmark((Map) i.next());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Set bookmark title ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import com.lowagie.text.ChapterAutoNumber;&lt;br /&gt;
import com.lowagie.text.Document;&lt;br /&gt;
import com.lowagie.text.Phrase;&lt;br /&gt;
import com.lowagie.text.Section;&lt;br /&gt;
import com.lowagie.text.pdf.PdfWriter;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Document document = new Document();&lt;br /&gt;
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(&amp;quot;2.pdf&amp;quot;));&lt;br /&gt;
    writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);&lt;br /&gt;
    document.open();&lt;br /&gt;
    Phrase text = new Phrase(&amp;quot;test. &amp;quot;);&lt;br /&gt;
    ChapterAutoNumber chapter1 = new ChapterAutoNumber(&amp;quot;This is a sample sentence:&amp;quot;);&lt;br /&gt;
    chapter1.setBookmarkTitle(&amp;quot;The fox&amp;quot;);&lt;br /&gt;
    chapter1.setBookmarkOpen(false);&lt;br /&gt;
    Section section1 = chapter1.addSection(&amp;quot;Quick&amp;quot;);&lt;br /&gt;
    section1.add(text);&lt;br /&gt;
    document.add(chapter1);&lt;br /&gt;
    ChapterAutoNumber chapter2 = new ChapterAutoNumber(&amp;quot;Jumps&amp;quot;);&lt;br /&gt;
    Section section = chapter2.addSection(&amp;quot;Over&amp;quot;);&lt;br /&gt;
    section.add(text);&lt;br /&gt;
    document.add(chapter2);&lt;br /&gt;
    document.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>