Dapatkan Izin menggunakan Go

Dapatkan izin dari dokumen PDF yang dilindungi password

Contoh ini menunjukkan cara mengambil, menginterpretasikan, dan menampilkan izin akses dari dokumen PDF yang dilindungi password dalam Go menggunakan Aspose.PDF untuk Go melalui C++. PDF dibuka dengan kata sandi pemilik, flag izin‑nya dibaca, dan setiap izin yang diaktifkan diubah menjadi deskripsi yang dapat dibaca manusia sebelum dicetak ke konsol.

  1. Tentukan pemetaan nama izin.
  2. Ubah bendera izin menjadi teks yang dapat dibaca.
  3. Gunakan OpenWithPassword dengan kata sandi pemilik untuk mendapatkan akses ke informasi keamanan dokumen.
  4. Pastikan pembersihan sumber daya yang tepat.
  5. Panggil GetPermissions untuk mendapatkan flag bit izin saat ini yang ditetapkan pada PDF.
  6. Tampilkan izin.

    package main

    import "github.com/aspose-pdf/aspose-pdf-go-cpp"
    import (
        "fmt"
        "log"
        "strings"
    )

    var permissionNames = map[asposepdf.Permissions]string{
        asposepdf.PrintDocument:                  "Allow printing",
        asposepdf.ModifyContent:                  "Allow modifying content (except forms/annotations)",
        asposepdf.ExtractContent:                 "Allow copying/extracting text and graphics",
        asposepdf.ModifyTextAnnotations:          "Allow adding/modifying text annotations",
        asposepdf.FillForm:                       "Allow filling interactive forms",
        asposepdf.ExtractContentWithDisabilities: "Allow content extraction for accessibility",
        asposepdf.AssembleDocument:               "Allow inserting/rotating/deleting pages or changing structure",
        asposepdf.PrintingQuality:                "Allow high-quality / faithful printing",
    }

    func PermissionsToString(p asposepdf.Permissions) string {
        var result []string
        for flag, name := range permissionNames {
            if p&flag != 0 {
                result = append(result, name)
            }
        }
        if len(result) == 0 {
            return "None"
        }
        return strings.Join(result, ", ")
    }

    func main() {
        // OpenWithPassword(filename string, password string) opens a password-protected PDF-document
        pdf, err := asposepdf.OpenWithPassword("sample_with_permissions.pdf", "ownerpass")
        if err != nil {
            log.Fatal(err)
        }
        // Close() releases allocated resources for PDF-document
        defer pdf.Close()
        // GetPermissions() gets current permissions of PDF-document
        permissions, err := pdf.GetPermissions()
        if err != nil {
            log.Fatal(err)
        }
        // Print permissions
        fmt.Println("Permissions:", PermissionsToString(permissions))
    }