Моя цель - получить дополнительные метаданные pdf, такие как standard, isoname, cmyk ...
Я уже безуспешно пробовал TCPDF, Imagick, GD и другие библиотеки. У Imagick есть метод «getColorspace», но, к сожалению, он не работает должным образом с PDF-файлами, так как в PDF-файлах мы должны просматривать каждый слой?
function check_image_is_cmyk($image_file_path) {
$imagick_file_contents = file_get_contents($image_file_path);
$imagick_file = new Imagick();
$imagick_file->readImageBlob($imagick_file_contents);
$image_color_space = $imagick_file->getimagecolorspace();
/* BEGIN - ALL AVAILABLE COLORSPACE CONSTANTS
Imagick::COLORSPACE_UNDEFINED; //0
Imagick::COLORSPACE_RGB; //1
Imagick::COLORSPACE_GRAY; //2
Imagick::COLORSPACE_TRANSPARENT; //3
Imagick::COLORSPACE_OHTA; //4
Imagick::COLORSPACE_LAB; //5
Imagick::COLORSPACE_XYZ; //6
Imagick::COLORSPACE_YCBCR; //7
Imagick::COLORSPACE_YCC; //8
Imagick::COLORSPACE_YIQ; //9
Imagick::COLORSPACE_YPBPR; //10
Imagick::COLORSPACE_YUV; //11
Imagick::COLORSPACE_CMYK; //12
Imagick::COLORSPACE_SRGB; //13
Imagick::COLORSPACE_HSB; //14
Imagick::COLORSPACE_HSL; //15
Imagick::COLORSPACE_HWB; //16
Imagick::COLORSPACE_REC601LUMA; //17
Imagick::COLORSPACE_REC601YCBCR; //18
Imagick::COLORSPACE_REC709LUMA; //19
Imagick::COLORSPACE_REC709YCBCR; //20
Imagick::COLORSPACE_LOG; //21
Imagick::COLORSPACE_CMY; //22
Imagick::COLORSPACE_LUV; //23
Imagick::COLORSPACE_HCL; //24
Imagick::COLORSPACE_LCH; //25
Imagick::COLORSPACE_LMS; //26
Imagick::COLORSPACE_LCHAB; //27
Imagick::COLORSPACE_LCHUV; //28
Imagick::COLORSPACE_SCRGB; //29
Imagick::COLORSPACE_HSI; //30
Imagick::COLORSPACE_HSV; //31
Imagick::COLORSPACE_HCLP; //32
Imagick::COLORSPACE_YDBDR; //33
END - ALL AVAILABLE COLORSPACE CONSTANTS */
if ($image_color_space === Imagick::COLORSPACE_CMYK) {
return true;
}
return false;
}
Так я уже получаю PDF-версию, но, к сожалению, не стандартную (например, PDF / X-3)
function check_pdf_version($image_file_path) {
$imagick_file_contents = file_get_contents($image_file_path);
$imagick_file = new Imagick();
$imagick_file->readImageBlob($imagick_file_contents);
$exif_array = $imagick_file->getImageProperties();
$pdf_version = "";
if (!empty($exif_array['pdf:Version'])) {
$pdf_version = str_replace('PDF-', "", $exif_array['pdf:Version']);
}
if (!empty($exif_array['pdf:Version']) && floatval($pdf_version) > 1.2) {
return true;
}
return false;
}
Пример: если я открою PDF-файл, я могу получить следующую информацию:
У любого есть идея, как мне извлечь эти дополнительные данные.