PHP-获取PDF标准、isoname、cmyk元数据
我的目标是获得额外的pdf元数据,如标准、isoname、cmyk 我已经尝试过TCPDF、Imagick、GD和其他LIB,但没有成功。 Imagick有“getColorspace”方法,但不幸的是,它不能与PDF一起正常工作,因为在PDF中,我们必须查看每一层PHP-获取PDF标准、isoname、cmyk元数据,php,pdf,metadata,tcpdf,imagick,Php,Pdf,Metadata,Tcpdf,Imagick,我的目标是获得额外的pdf元数据,如标准、isoname、cmyk 我已经尝试过TCPDF、Imagick、GD和其他LIB,但没有成功。 Imagick有“getColorspace”方法,但不幸的是,它不能与PDF一起正常工作,因为在PDF中,我们必须查看每一层 function check_image_is_cmyk($image_file_path) { $imagick_file_contents = file_get_contents($image_file_path);
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)
例如:
如果我打开一个pdf文件,我可以得到以下信息:
任何人都知道我如何提取这些附加数据。您需要知道的一切都在这里:例如,“标准”和“ISO”信息都在XMP元数据中。“Quark Generic”可能在信息字典中,也可能在XMP中,不确定该应用程序正在检查/显示什么。您的问题的一个大问题是,单个PDF页面可以包含许多颜色空间。没有单一的颜色空间。如果您不是在寻找一个通用的解决方案,而只是对分析一组特定的PDF文件感兴趣然后在这里发布示例。您的问题的一个大问题是,一个PDF页面可以包含许多颜色空间-这正是问题所在,我想检查每个可用的颜色空间是否为cmyk-还有信息字典或XMP->是否可以使用PHP获取这些值?感谢“这正是问题所在,我想检查每个可用的颜色空间是否为cmyk”-然后您需要解析页面内容流,并检查任何图像资源。“还有信息字典或XMP->甚至可以用PHP获取这些值吗?”-当然,这绝对是你问题中最简单的部分。我认为您需要首先选择一个PHP PDF库,然后用您尝试过的内容更新您的问题。现在你的问题似乎是一个软件推荐问题,这是不被允许的。
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;
}