PHP - Получить стандарт PDF, isoname, метаданные cmyk - PullRequest
0 голосов
/ 21 января 2020

Моя цель - получить дополнительные метаданные 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-файл, я могу получить следующую информацию:

enter image description here

У любого есть идея, как мне извлечь эти дополнительные данные.

...