---
title: "PDF и RAW-языки принтеров"
description: "Выберите PDF или явный RAW-язык — ZPL, TSPL, CPCL либо ESC/POS — и отправляйте задание только на совместимый принтер."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">Документация CloudPrint</a><span aria-hidden="true">/</span><span>Print API</span></nav>

# PDF и RAW-языки принтеров

<p class="docs-lead">CloudPrint принимает готовые PDF и четыре явных RAW-языка принтеров: ZPL, TSPL, CPCL и ESC/POS. Интегратор указывает язык документа, агент определяет возможности каждого принтера, а API не позволяет направить несовместимое задание.</p>

## Выберите правильный тип данных

| Данные | `document_format` | `document_raw_language` | Обычный сценарий |
| --- | --- | --- | --- |
| PDF | `pdf` | не передавать | счета, накладные и постраничные этикетки |
| ZPL | `raw` | `zpl` | термоэтикетки |
| TSPL / TSPL-EZ | `raw` | `tspl` | термоэтикетки |
| CPCL | `raw` | `cpcl` | мобильные и компактные принтеры этикеток |
| ESC/POS | `raw` | `escpos` | чеки и кассовые принтеры |

В API используются точные значения из таблицы. Устройство с TSPL-EZ может объявить несколько совместимых профилей — выбирайте только тот язык, который вернул конкретный принтер.

## Доверяйте найденным возможностям

Получите принтеры через `GET /api/v1/printers` и проверьте `capabilities.language_profiles` вместе с `endpoint.raw_passthrough_available`. Агент определяет эти возможности по данным самого принтера. Не делайте вывод по бренду, модели или названию очереди и не предлагайте оператору назначать язык вручную.

## Загружайте RAW явно

Укажите оба поля RAW и передайте исходные команды принтера без преобразования:

```bash
RAW_LANGUAGE=tspl
curl -sS https://public-api.cloudprint.me/api/v1/documents \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F 'file=@label.prn;type=application/octet-stream' \
  -F 'document_format=raw' \
  -F "document_raw_language=$RAW_LANGUAGE"
```

Допустимые значения: `zpl`, `tspl`, `cpcl`, `escpos`. CloudPrint сверяет выбранный язык с возможностями принтера, но не переводит команды из одного языка в другой.

## Не смешивайте PDF и RAW

Для готового PDF передайте `document_format=pdf` и не указывайте `document_raw_language`. Очереди потребуется системная печать или поддерживаемое агентом преобразование. Нельзя помечать байты PDF как RAW. Кабинет принимает PDF и те же явные RAW-языки, что и API: ZPL, TSPL, CPCL и ESC/POS.

## Проверяйте реальное оборудование

Перед запуском протестируйте каждую используемую модель, драйвер или очередь, язык, DPI и носитель. При ошибке сохраните `print_job_id`, `X-Request-Id`, причину и объявленные возможности. Если результат смещён или нечитаем, проверьте исходные команды, размер носителя, калибровку датчика, плотность и скорость на физическом устройстве. Не записывайте содержимое документов в журнал.

## Следующие шаги

<div class="docs-card-grid"><a class="docs-card" href="/docs/api/documents/"><strong>Загрузка PDF и RAW-документов</strong><span>Выберите multipart, публичный HTTPS URL или Base64 и подготовьте PDF либо RAW-данные языка принтера для CloudPrint.</span></a>
<a class="docs-card" href="/docs/guides/label-printing/"><strong>Печать этикеток, ценников и штрихкодов по API</strong><span>Отправляйте готовые этикетки, ценники и коды маркировки Data Matrix в PDF, ZPL, TSPL или CPCL на совместимый локальный принтер.</span></a>
<a class="docs-card" href="/docs/guides/receipt-printing/"><strong>Печать чеков ESC/POS из приложения</strong><span>Передавайте готовые ESC/POS-данные из кассовой системы, интернет-магазина или 1С на совместимый локальный чековый принтер.</span></a></div>

<nav class="docs-resource-links" aria-label="Следующие шаги"><a href="https://cloudprint.by/status/">Статус сервиса</a><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Кабинет разработчика</a><a href="https://my.cloudprint.by">Открыть кабинет</a><a href="/docs/legal/privacy/">Политика конфиденциальности</a><a href="/docs/legal/terms/">Условия использования</a><a href="/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Соглашение об уровне сервиса</a></nav>