Verarbeitung von passwortgeschützten PDFs mit jadice server 5

Unterstützung für verschlüsselte PDFs

jadice server ist ab der Version 5 in der Lage, passwortgeschütze PDFs mittels der jadice document platform 5 zu verarbeiten.
Zur Verwendung dieser Funktionalität wird eine Implementierung des Interfaces CryptoMaterialProvider benötigt. Zu finden ist dieses Interface im Maven-Artefakt jadice-format-pdf .

Folgendes Beispiel zeigt eine mögliche Implementierung:

Beispielcode für PasswordProvider
public class SimplePasswordProvider implements CryptoMaterialProvider<PasswordMaterial> {
  List<String> candidates;
  public List<String> getCandidates() {
    return candidates;
  }
  public void setCandidates(List<String> candidates) {
    this.candidates = candidates;
  }
  @Override
  public void provide(CryptoMaterialReceiver<PasswordMaterial> receiver) {
    for (String s : candidates) {
      boolean success = receiver.receive(new PasswordMaterial(s));
      if (success)
        return;
    }
    receiver.cancel();
  }
}

Dem so implementierten CryptoMaterialProvider wird mittels der Methode setCandidates(…) eine Liste von Passwörtern übergeben, die beim Versuch ein passwortgeschütztes PDF zu öffnen verwendet werden sollen.
Dem ReshapeNode kann dann der entsprechende CryptoMaterialProvider über die PDFStandardSecurityHandlerSettings gesetzt werden:

Verwendung in ReshapeNode
(...)
reshapeNode.getReshapeControls().getSettings(PDFStandardSecurityHandlerSettings.class)
   .setCryptoMaterialProvider(new SimplePasswordProvider(Arrays.asList("foo","bar")));
job.attach(sin.appendSuccessor(reshaperNode).appendSuccessor(son));
(...)

Weitere Informationen

Weitere Information zur Verarbeitung von verschlüsselten PDFs finden Sie im jadice knowledge base-Artikel "Verschlüsselte PDFs" sowie in der Dokumentation der jadice document platform 5 als  "Beispiel zur Verwendung der PDF Security API"

Verwandte Artikel