Get, Update and Expand a Bookmark

Dapatkan Bookmark

Koleksi OutlineCollection dari objek Document berisi semua bookmark dari file PDF. Artikel ini menjelaskan cara mendapatkan bookmark dari file PDF, dan cara mendapatkan halaman mana yang ditandai oleh bookmark tertentu.

Untuk mendapatkan bookmark, lakukan iterasi melalui koleksi OutlineCollection dan dapatkan setiap bookmark dalam OutlineItemCollection. The OutlineItemCollection menyediakan akses ke semua atribut penanda buku. Cuplikan kode berikut menunjukkan cara mendapatkan penanda buku dari file PDF.

    public static void GettingBookmarks() {
        // Buka dokumen
        Document pdfDocument = new Document(GetDataDir() + "UpdateBookmarks.pdf");
        // Loop melalui semua penanda buku
        for (OutlineItemCollection outlineItem : (Iterable<OutlineItemCollection>) pdfDocument.getOutlines()) {
            System.out.println("Judul :- " + outlineItem.getTitle());
            System.out.println("Miring :- " + outlineItem.getItalic());
            System.out.println("Tebal :- " + outlineItem.getBold());
            System.out.println("Warna :- " + outlineItem.getColor());
        }
    }

Mendapatkan Nomor Halaman Penanda Buku

Setelah Anda menambahkan penanda buku, Anda dapat mengetahui halaman mana yang terdapat penanda buku tersebut dengan mendapatkan PageNumber tujuan yang terkait dengan objek Penanda Buku.

    public static void GettingBookmarksPageNumber() {
        // Buat PdfBookmarkEditor
        PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor();
        // Buka file PDF
        bookmarkEditor.bindPdf(GetDataDir() + "UpdateBookmarks.pdf");
        // Ekstrak penanda buku
        Bookmarks bookmarks = bookmarkEditor.extractBookmarks();
        for (Bookmark bookmark : (Iterable<Bookmark>) bookmarks) {
            String strLevelSeprator = "";
            for (int i = 1; i < bookmark.getLevel(); i++) {
                strLevelSeprator += "---- ";
            }
            System.out.println("Judul :- " + strLevelSeprator + bookmark.getTitle());
            System.out.println("Nomor Halaman :- " + strLevelSeprator + bookmark.getPageNumber());
            System.out.println("Aksi Halaman :- " + strLevelSeprator + bookmark.getAction());
        }
    }

Memperbarui Penanda Buku dalam Dokumen PDF

Untuk memperbarui penanda buku dalam file PDF, pertama, dapatkan penanda buku tertentu dari koleksi OutlineCollection objek Dokumen dengan menentukan indeks penanda buku. Setelah Anda mendapatkan penanda buku ke dalam objek OutlineItemCollection, Anda dapat memperbarui propertinya dan kemudian menyimpan file PDF yang telah diperbarui menggunakan metode Save. Potongan kode berikut menunjukkan bagaimana memperbarui penanda buku dalam dokumen PDF.

    public static void UpdateBookmarksInPDFDocument() {
        // Buka dokumen
        Document pdfDocument = new Document(GetDataDir() + "UpdateBookmarks.pdf");
        // Dapatkan objek penanda buku
        OutlineItemCollection pdfOutline = pdfDocument.getOutlines().get_Item(1);

        // Perbarui objek penanda buku
        pdfOutline.setTitle("Updated Outline");
        pdfOutline.setItalic(true);
        pdfOutline.setBold(true);
        // Tetapkan halaman tujuan sebagai 2
        pdfOutline.setDestination(new GoToAction(pdfDocument.getPages().get_Item(2)));

        // Simpan output
        pdfDocument.save(GetDataDir() + "Bookmarkupdated_output.pdf");
    }

Memperbarui Bookmark Anak dalam Dokumen PDF

Untuk memperbarui bookmark anak:

  1. Ambil bookmark anak yang ingin Anda perbarui dari file PDF dengan terlebih dahulu mendapatkan bookmark induk dan kemudian bookmark anak menggunakan nilai indeks yang sesuai.
  2. Simpan file PDF yang telah diperbarui menggunakan metode Save.

Cuplikan kode berikut menunjukkan cara memperbarui bookmark anak dalam dokumen PDF.

    public static void UpdateChildBookmarksInPDFDocument() {
        // Buka dokumen
        Document pdfDocument = new Document(GetDataDir() + "UpdateBookmarks.pdf");
        // Dapatkan objek bookmark
        OutlineItemCollection pdfOutline = pdfDocument.getOutlines().get_Item(1);
        // Dapatkan objek bookmark anak
        OutlineItemCollection childOutline = pdfOutline.get_Item(1);

        // Perbarui objek bookmark
        childOutline.setTitle("Updated Outline");
        childOutline.setItalic(true);
        childOutline.setBold(true);
        // Tetapkan halaman target sebagai 2
        childOutline.setDestination(new GoToAction(pdfDocument.getPages().get_Item(2)));

        // Simpan output
        pdfDocument.save(GetDataDir() + "Bookmarkupdated_output.pdf");
    }

Bookmark Diperluas saat melihat dokumen

Bookmark disimpan dalam koleksi OutlineItemCollection dari objek Dokumen, yang merupakan bagian dari koleksi OutlineCollection. Namun, kita mungkin memiliki persyaratan untuk memperluas semua bookmark saat melihat file PDF.

Untuk memenuhi persyaratan ini, kita dapat mengatur status terbuka untuk setiap item outline/bookmark sebagai Terbuka. Cuplikan kode berikut menunjukkan cara mengatur status terbuka untuk setiap bookmark sebagai diperluas dalam dokumen PDF.

    public static void ExpandedBookmarks() {    
        Document doc = new Document(GetDataDir()+"UpdateBookmarks.pdf");
        // atur mode tampilan halaman yaitu tampilkan thumbnail, layar penuh, tampilkan panel lampiran
        doc.setPageMode(PageMode.UseOutlines);
        // cetak jumlah total Bookmark dalam file PDF
        System.out.println(doc.getOutlines().size());
        // menelusuri setiap item Outline dalam koleksi outline file PDF
        for (int counter = 1; counter <= doc.getOutlines().size(); counter++) {
            // atur status terbuka untuk item outline
            doc.getOutlines().get_Item(counter).setOpen(true);
        }
        // simpan file PDF
        doc.save(_dataDir+"Bookmarks_Expanded.pdf");
    }