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:
- 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.
- 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");
}