Ochrona plików PDF za pomocą PDFBox
Naprawdę zmagam się z dokumentacją PDFBox. Dla takiej popularnej biblioteki informacje wydają się być trochę cienkie na ziemi (dla mnie!).
W każdym razie problem związany jest z ochroną pliku PDF. W tej chwili chcę tylko kontrolować uprawnienia dostępu użytkowników. w szczególności chcę uniemożliwić użytkownikowi modyfikowanie pliku PDF.
Jeśli pominę kod dostępu, wszystko działa doskonale. Czytam w pliku PDF z zewnętrznego zasobu. Następnie czytam i zapełniam pola, dodając kilka zdjęć przed zapisaniem nowego pliku PDF. To wszystko działa doskonale.
Problem pojawia się, gdy dodam następujący kod do zarządzania dostępem:
/* Secure the PDF so that it cannot be edited */
try {
String ownerPassword = "DSTE$gewRges43";
String userPassword = "";
AccessPermission ap = new AccessPermission();
ap.setCanModify(false);
StandardProtectionPolicy spp = new StandardProtectionPolicy(ownerPassword, userPassword, ap);
pdf.protect(spp);
} catch (BadSecurityHandlerException ex) {
Logger.getLogger(PDFManager.class.getName()).log(Level.SEVERE, null, ex);
}
Gdy dodaję ten kod, cały tekst i obrazy są rozbierane z wychodzącego pliku pdf. Pola są nadal obecne w dokumencie, ale wszystkie są puste, a cały tekst i obrazy, których część oryginalnego pliku PDF i które zostały dodane dynamicznie w kodzie nie ma.
UPDATE: Ok, najlepiej jak mogę powiedzieć, że problem pochodzi z błędu związanego z polami formularza. Spróbuję innego podejścia bez pól formularza i zobaczę, co daje.