Dapatkan, Perbarui, dan Perluas Penanda Buku PDF di Python

Dapatkan Penanda Buku

The Document objek OutlineCollection koleksi berisi semua penanda buku sebuah file PDF. Artikel ini menjelaskan cara mendapatkan penanda buku dari file PDF, dan cara mengetahui halaman mana sebuah penanda buku berada.

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

from os import path
import sys
import aspose.pdf as ap

def get_bookmarks(input_pdf):
    document = ap.Document(input_pdf)
    for i in range(len(document.outlines)):
        outline_item = document.outlines[i + 1]
        print(outline_item.title)
        print(outline_item.italic)
        print(outline_item.bold)
        print(outline_item.color)

Mendapatkan Nomor Halaman Bookmark

Setelah Anda menambahkan bookmark, Anda dapat mengetahui halaman apa yang berisi bookmark tersebut dengan mendapatkan PageNumber tujuan yang terkait dengan objek Bookmark.

from os import path
import sys
import aspose.pdf as ap

def get_bookmark_page_number(input_pdf):
    # Create PdfBookmarkEditor
    bookmark_editor = ap.facades.PdfBookmarkEditor()
    # Open PDF file
    bookmark_editor.bind_pdf(input_pdf)
    # Extract bookmarks
    bookmarks = bookmark_editor.extract_bookmarks()
    for bookmark in bookmarks:
        str_level_separator = ""
        for i in range(bookmark.level):
            str_level_separator += "----"

        print(str_level_separator, "Title:", bookmark.title)
        print(str_level_separator, "Page Number:", bookmark.page_number)
        print(str_level_separator, "Page Action:", bookmark.action)

Dapatkan Bookmark Anak dari Dokumen PDF

Bookmark dapat diatur dalam struktur hierarki, dengan induk dan anak. Untuk mendapatkan semua bookmark, lakukan perulangan melalui koleksi Outlines dari objek Document. Namun, untuk juga mendapatkan bookmark anak, lakukan perulangan juga melalui semua bookmark di setiap OutlineItemCollection objek yang diperoleh pada perulangan pertama. Potongan kode berikut menunjukkan cara mendapatkan bookmark anak dari dokumen PDF.

from os import path
import sys
import aspose.pdf as ap

def get_child_bookmarks(input_pdf):
    document = ap.Document(input_pdf)
    for i in range(len(document.outlines)):
        outline_item = document.outlines[i + 1]
        print(outline_item.title)
        print(outline_item.italic)
        print(outline_item.bold)
        print(outline_item.color)
        count = len(outline_item)
        if count > 0:
            print("Child Bookmarks")
            # There are child bookmarks then loop through that as well
            for j in range(len(outline_item)):
                child_outline_item = outline_item[j + 1]
                print(child_outline_item.title)
                print(child_outline_item.italic)
                print(child_outline_item.bold)
                print(child_outline_item.color)

Perbarui Penanda dalam Dokumen PDF

Untuk memperbarui bookmark dalam file PDF, pertama, dapatkan bookmark tertentu dari koleksi OutlineColletion objek Document dengan menentukan indeks bookmark tersebut. Setelah Anda mengambil bookmark ke dalam OutlineItemCollection objek, Anda dapat memperbarui propertinya dan kemudian menyimpan file PDF yang diperbarui menggunakan metode Save. Potongan kode berikut menunjukkan cara memperbarui bookmark dalam dokumen PDF.

from os import path
import sys
import aspose.pdf as ap

def update_bookmarks(input_pdf, output_pdf):
    # Open document
    document = ap.Document(input_pdf)

    # Get a bookmark object
    outline = document.outlines[1]

    # Get child bookmark object
    child_outline = outline[1]
    child_outline.title = "Updated Outline"
    child_outline.italic = True
    child_outline.bold = True

    # Save output
    document.save(output_pdf)

Bookmark yang Diperluas saat melihat dokumen

Bookmark disimpan dalam objek Document OutlineItemCollection koleksi, itu sendiri di OutlineCollection koleksi. Namun, kami mungkin memiliki kebutuhan untuk menampilkan semua bookmark dalam keadaan diperluas saat melihat file PDF.

Untuk memenuhi kebutuhan ini, kita dapat mengatur status terbuka untuk setiap item outline/bookmark menjadi Open. Potongan kode berikut menunjukkan cara mengatur status terbuka setiap bookmark menjadi diperluas dalam dokumen PDF.

from os import path
import sys
import aspose.pdf as ap

def expanded_bookmarks(input_pdf, output_pdf):
    document = ap.Document(input_pdf)
    document.page_mode = ap.PageMode.USE_OUTLINES
    for i in range(len(document.outlines)):
        item = document.outlines[i + 1]
        item.open = True
    document.save(output_pdf)

Topik Bookmark Terkait