Dapatkan, Perbarui, dan Perluas Sebuah Penanda Buku menggunakan Python

Dapatkan Penanda Buku

Koleksi OutlineCollection dari objek Document berisi semua penanda buku dari file PDF. Artikel ini menjelaskan cara mendapatkan penanda buku dari file PDF, dan bagaimana mengetahui pada halaman mana penanda buku tertentu berada.

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


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Iterasi melalui semua penanda buku
    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 dari Penanda Buku

Setelah Anda menambahkan penanda buku, Anda dapat mengetahui pada halaman mana penanda tersebut berada dengan mendapatkan PageNumber tujuan yang terkait dengan objek Bookmark.


    import aspose.pdf as ap

    # Buat PdfBookmarkEditor
    bookmarkEditor = ap.facades.PdfBookmarkEditor()
    # Buka file PDF
    bookmarkEditor.bind_pdf(input_pdf)
    # Ekstrak penanda buku
    bookmarks = bookmarkEditor.extract_bookmarks()
    for bookmark in bookmarks:
        str_level_seprator = ""
        for i in range(bookmark.level):
            str_level_seprator += "----"

        print(str_level_seprator, "Judul:", bookmark.title)
        print(str_level_seprator, "Nomor Halaman:", bookmark.page_number)
        print(str_level_seprator, "Aksi Halaman:", bookmark.action)

Mendapatkan Penanda Buku Anak dari Dokumen PDF

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


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Lakukan perulangan melalui semua penanda buku
    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("Penanda Buku Anak")
            # Terdapat penanda buku anak, maka lakukan perulangan melalui itu juga
            for j in range(len(outline_item)):
                child_outline_item = outline_item[i + 1]
                print(child_outline_item.title)
                print(child_outline_item.italic)
                print(child_outline_item.bold)
                print(child_outline_item.color)

Memperbarui Penanda Buku dalam Dokumen PDF

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


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Dapatkan objek penanda buku
    outline = document.outlines[1]

    # Dapatkan objek penanda buku anak
    child_outline = outline[1]
    child_outline.title = "Outline yang Diperbarui"
    child_outline.italic = True
    child_outline.bold = True

    # Simpan keluaran
    document.save(output_pdf)

Penanda Buku yang Diperluas saat melihat dokumen

Penanda buku disimpan dalam koleksi OutlineItemCollection objek Document, yang berada dalam koleksi OutlineCollection. Namun, kita mungkin memiliki persyaratan untuk memperluas semua penanda buku saat melihat file PDF.

Untuk memenuhi persyaratan ini, kita dapat mengatur status terbuka untuk setiap item garis besar/penanda buku sebagai Terbuka. Cuplikan kode berikut menunjukkan cara mengatur status terbuka untuk setiap penanda buku agar diperluas dalam dokumen PDF.


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Atur mode tampilan halaman yaitu tampilkan thumbnail, layar penuh, tampilkan panel lampiran
    document.page_mode = ap.PageMode.USE_OUTLINES
    # Telusuri setiap item Ouline dalam koleksi outlines dari file PDF
    for i in range(len(document.outlines)):
        item = document.outlines[i + 1]
        # Atur status terbuka untuk item outline
        item.open = True

    # Simpan keluaran
    document.save(output_pdf)