AccessPermissionでいろいろと設定した後にStandardProtectionPolicyでOwnerパスワードを設定して、PDDocumentに渡せば良い。
try (PDDocument document = PDDocument.load(new File("input.pdf"))) {
AccessPermission ap = new AccessPermission();
ap.setCanAssembleDocument(false);
ap.setCanExtractContent(false);
ap.setCanExtractForAccessibility(false);
ap.setCanFillInForm(false);
ap.setCanModify(false);
ap.setCanModifyAnnotations(false);
ap.setCanPrint(false);
ap.setCanPrintDegraded(false);
// ap.setReadOnly();
StandardProtectionPolicy spp = new StandardProtectionPolicy("12345", "", ap);
spp.setEncryptionKeyLength(128);
document.protect(spp);
document.save(new File("output.pdf"));
} catch (IOException e) {
logger.error("Failed to write info.", e);
}