Go を使用して権限を取得する

パスワードで保護された PDF ドキュメントの権限を取得する

この例では、Aspose.PDF for Go via C++ を使用して、Go でパスワードで保護された PDF ドキュメントからアクセス権限を取得し、解釈し、表示する方法を示します。 PDF は所有者パスワードで開かれ、権限フラグが読み取られ、許可されている各権限は人間が読める説明に変換され、コンソールに出力されます。

  1. 権限名のマッピングを定義します。
  2. 権限フラグを読みやすいテキストに変換します。
  3. OpenWithPassword を使用して、所有者のパスワードでドキュメントのセキュリティ情報にアクセスします。
  4. 適切なリソースのクリーンアップが行われていることを確認します。
  5. GetPermissions を呼び出して、PDF に割り当てられている現在の権限ビットフラグを取得します。
  6. 権限を表示します。

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