NO IDEA HOW TO

Как упростить рутинные процессы, выгодные предложения и полезные советы

Меню

XObjects - это описание объектов (текста, графики, векторных элементов и т. д.) в файле PDF, которые могут многократно воспроизводиться на различных страницах или в разных местах одной страницы.

 

Пример загрузки изображения из XObject потока PDF:

$stream = $image['stream'];
$options = $image['options'];
$width = $options['Width'];
$height = $options['Height'];

$ColorSpace = is_array($options['ColorSpace']) ? $options['ColorSpace'][0] : $options['ColorSpace'];
if($ColorSpace == 'CalRGB' || $ColorSpace == 'DeviceRGB') {
	$bits = 3;
} elseif($ColorSpace == 'DeviceGray') {
	$bits = 1;
}

$im = imagecreatetruecolor($width, $height);
$scan_line_size = $bits * $width;

for($i = 0; $i < $height; $i++) {
	$l = $height - $i;
	$scan_line = substr($stream, (($scan_line_size) * $l), $scan_line_size);
	$j = 0; $n = 0; 
	while($j < $scan_line_size) {
		if($ColorSpace == 'CalRGB' || $ColorSpace == 'DeviceRGB') {
			
			$r = ord($scan_line{$j++});
			$g = ord($scan_line{$j++});
			$b = ord($scan_line{$j++});
			$col = imagecolorallocate($im, $r, $g, $b);
			
		} elseif($ColorSpace == 'DeviceGray') {
			
			$c = ord($scan_line{$j++});
			$col = imagecolorallocate($im, $c, $c, $c);
			
		}
		imagesetpixel($im, $n++, $l, $col);
		
	}  
}

 

PDF Reference