Сохранение pdf полученного по api

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Сохранение pdf полученного по api

Сообщение Chelobaka »

Здравствуйте,

Запрос к api осуществляется через yii\httpclient\Client

Код: Выделить всё

try {
            /** @var Response $response */
            $response = $this->clientHttp->createRequest()
                ->setMethod($this->httpMethod)
                ->setUrl($this->getRequestUrl($this->methodName))
                ->addHeaders(['Content-Type' => 'application/pdf'])
                ->addHeaders(['Accept-Language' => 'en-US'])
                ->addHeaders(['Accept-Charset' => 'utf-8'])
                ->setData($this->data)
                ->setOptions([
                    'timeout' => self::TIMEOUT,
                ])
                ->send();

        } catch (\Throwable $e) {
            return false;
        }

Метод возвращает yii\httpclient\Response Object
GetContent() возвращает :

Код: Выделить всё

%PDF-1.5
2 0 obj
<< /Type /XObject
/Subtype /Image
/Width 561
/Height 100
/ColorSpace /DeviceGray/Matte[ 0 0 0] 
/BitsPerComponent 8
/Interpolate false
 /Length 56100 >>
stream
...........
Как сохранить данный ответ в pdf с размерами А6? Я использую file_put_contents но в итоге получаю A4.
В последствии я не знаю (кажется это невозможно) вырезать нужный фрагмент из этого файлы что бы скомпоновать 2 таких куска в один для экономии бумаги при печати.

Как можно сохранить данный pdf в файл заданного размера?
Я пробовал использовать FPDI но кроме записи потока как строки дальше не пошло.

Возможно данный поток можно сохранить в другом формате? JPEG и уже в html интегрировать данные картинки и печатать?

Как сделать максимально компактный pdf из полученного множества страниц А6 в виде потока PDF?

Сейчас все сохранённые файлы в формате А4 мержу FPDI и возвращаю точно такой же поток как получаю через api.
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Сохранение pdf полученного по api

Сообщение Chelobaka »

pdf буфер как сохранить? Или вы имеете ввиду сначала создать pdf, а потом в него записать буфер?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение pdf полученного по api

Сообщение yiiliveext »

Сохраняйте как обычно. Потом создавайте новый пдф нужного формата (А6) и импортируете как в примере.
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Сохранение pdf полученного по api

Сообщение Chelobaka »

yiiliveext писал(а): 2019.09.11, 10:36 Сохраняйте как обычно. Потом создавайте новый пдф нужного формата (А6) и импортируете как в примере.
Ага понял. Спасибо.
Изначально проблема была в возвращаемом значение. Просто присылали А4, а ожидалось А6(
Ответить