В PHP я должен удалить метаданные автора из файла DOCX. Прежде всего, я разархивирую документ и после того, как отредактирую метаданные автора, установив его пустым, используя библиотеку чтения XML.
$file = 'document.docx';
$filename = 'path/'.$file;
// Unzip the docx
$unzipped = md5($filename);
if (file_exists($unzipped)) {
rmdir($unzipped);
mkdir($unzipped);
}
$zip = new ZipArchive;
$res = $zip->open($filename);
if ($res === true) {
extractFolder($zip, "word/media", $unzipped);
$zip->extractTo($unzipped);
$zip->close();
} else {
die("The docx file appears to be corrupt (i.e. it can't be opened using Zip).\n");
}
Проблема возникает, когда я пытался повторно заархивировать документ. Фактически, когда повторная архивация завершена, файл docx кажется поврежденным, когда я открываю его в Word.
create_docx($unzipped,'_zips/'.$file );
Как я могу изменить метаданные автора (установив анонимность документа) и сохранить правильный файл docx?
Я не знаю php, но я предполагаю, что проблема заключается в том, что вы должны сжимать в папке $ unzipped, а не в самой папке. Так что это своего рода рекурсивный «$ unzipped / *» в качестве источника вместо «$ unzipped».
Других решений пока нет …