У меня есть проблема, но я не могу найти способ ее решить: я генерирую файл word или файл excel, используя код java. Но я не знаю, как защитить его метаданные.
Я делаю щелчок правой кнопкой мыши на файле, выбираю Свойства, выбираю Детали для просмотра метаданных. Там каждый может удалить Свойства, Добавить, Изменить, Удалить значение Заголовок, Тема, Категории, Авторы, Компания, ... Я не знаю, как заблокировать файлы значений, установить пароль или любой другой ... так, чтобы никто не мог Удалить Свойства, Добавить, Изменить, Удалить значение Заголовок, Тема, Категории, Авторы, Компания, ...
Код для создания я использую:
public static void main(String[] args) {
try {
Excel();
} catch(Exception ex) {
System.out.println(ex);
}
}
public static void Excel() throws IOException {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Java Books");
Object[][] bookData = {
{"Head First Java", "Kathy Serria", 79},
{"Effective Java", "Joshua Bloch", 36},
{"Clean Code", "Robert martin", 42},
{"Thinking in Java", "Bruce Eckel", 35},
};
int rowCount = 0;
for (Object[] aBook : bookData) {
XSSFRow row = sheet.createRow(++rowCount);
int columnCount = 0;
for (Object field : aBook) {
XSSFCell cell = row.createCell(++columnCount);
if (field instanceof String) {
cell.setCellValue((String) field);
} else if (field instanceof Integer) {
cell.setCellValue((Integer) field);
}
}
}
POIXMLProperties prop = workbook.getProperties();
POIXMLProperties.CoreProperties coreProp = prop.getCoreProperties();
coreProp.setCreator("reu");
coreProp.setCategory("reu title");
PackagePropertiesPart ctProp = coreProp.getUnderlyingProperties();
try (FileOutputStream outputStream = new FileOutputStream("E:\\Working\\TProjects\\MetaSecu\\JavaBooks.xlsx")) {
workbook.write(outputStream);
}
}
-> Может пожалуйста, помогите мне дать несколько способов решить эту проблему?