У меня есть несколько PDF-файлов, мне нужно добавить основной язык (который для нас всегда английский, поэтому (en-us) в качестве словарной статьи каталога) и поля заголовка, чтобы эти PDF-файлы могли проходить проверки ADA.
Мне немного повезло в PDF версии 1.4 с заменой строк во всем документе (через file_get_contents) и переписыванием файла, чтобы я не потерял его, но в 1.5 и 1.6 стандарт PDFвнутренности равны даже пробелам и чувствительны к табуляциям.
Я пытался использовать exiftool через shell_exec (), но, похоже, это работает только в PDF версии 1.4, все остальное будет установлено внутри PDF, но все равно не удастсянаши сканы из-за флагов типа /Type/Catalog/ViewerPreferences<</DisplayDocTitle true>>
, которые, кажется, установлены случайным образом внутри документа на 1.6.
Кто-нибудь пытался заняться этим перед веб-сайтом?Я надеялся создать что-то, что решило бы некоторые проблемы, чтобы сократить необходимость открывать каждый из них в Adobe и сохранять их заново.
Я попытался найти API-интерфейс Adobe или библиотеку, которую я мог бы подключитьчтобы сделать эти незначительные правки.Все фреймворки, которые я видел, создают новые PDF-файлы, а это значит, что все теги и альт-тексты, которые мы вставили, будут потеряны, поэтому я, конечно же, не хочу идти по пути Zend или чего-либо, что НЕ ПРОСТО редактирует метаданные.
<?php
$dir = getcwd();
$files = scandir($dir);
foreach($files as $file)
{
if(strpos($file, '.pdf') !== false)
{
$pdf = file_get_contents($dir.'/'.$file);
// This seems to work for 1.4, but not anything else
if(strpos($pdf,'/Lang') === false)
{
echo "Changing Lang on " .$file.PHP_EOL;
$pdf_str = preg_replace("/\/Type \/Catalog/", "/Type /Catalog\n/Lang (en-us)", $pdf);
file_put_contents($dir.'/'.$file, $pdf_str);
}else{
echo "Lang passed on ".$file.PHP_EOL;
}
}
}
?>