Obtener permisos usando Go

Obtener permisos de un documento PDF protegido con contraseña

Este ejemplo muestra cómo recuperar, interpretar y mostrar los permisos de acceso de un documento PDF protegido con contraseña en Go usando Aspose.PDF for Go via C++. El PDF se abre con la contraseña de propietario, sus indicadores de permiso se leen, y cada permiso habilitado se convierte en una descripción legible por humanos antes de imprimirse en la consola.

  1. Definir asignaciones de nombres de permisos.
  2. Convertir indicadores de permisos a texto legible.
  3. Usar OpenWithPassword con la contraseña del propietario para obtener acceso a la información de seguridad del documento.
  4. Asegurar la limpieza adecuada de recursos.
  5. Llama al método GetPermissions para obtener la bandera de bits de permiso actual asignada al PDF.
  6. Mostrar los permisos.

    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))
    }