3.3.4.6. Метод PrintDocument
 
Федеральной налоговой службой для некоторых финансовых документов установлены стандартизованные форматы представления на бумаге. В системе Такском-Доклайнз и  .NET SDK такие стандартизованные форматы используются при создании PDF файлов следующих документов:
счёт-фактура и корректировочный счёт-фактура;
акт о выполнении работ (оказании услуг);
товарная накладная (ТОРГ-12);
неформализованный документ в формате PDF, Microsoft Excel  (*.xls/*.xlsx) или Microsoft Word (*.doc/*.docx).
Метод PrintDocument экземпляра класса TaxcomApi используется для получения данных  для формирования PDF файла.
Если сотрудник не имеет прав доступ к указанному документу, то ему возвратится информация об ошибке 2120.
Данные для PDF генерируется асинхронно на сервере системы Такском-Доклайнз. Метод PrintDocument инициирует запрос для данных на сервере и помещает этот запрос в очередь. После того как данные для печатной формы готовы, следует использовать метод PrintDocument для получения этих данных с сервера системы Такском-Доклайнз.
Подготовка печатной формы документа обычно занимает от 10 секунд до нескольких минут, в зависимости от текущей нагрузки на сервер и длины очереди.
IPrintResult PrintDocument(string ID);
 
ID
атрибут internal ID электронного документа в системе Такском-Доклайнз, который может быть получен с помощью метода GetDocflowsList, или идентификатор документооборота (docflow_id)
 
Метод возвращает объект следующего вида:
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IPrintResult
{
  /// <summary>
  /// Sign that data is ready on the server
  /// </summary>
  bool HasContent { get; }
  /// <summary>
  /// The data for preparing a E-document hard copy
  /// </summary>
  byte[] PrintFormContent { get; }
}
Поскольку метод работает асинхронно, для того, чтобы получить PDF  документа, должен быть реализован следующий алгоритм:
1.
Вызов метода PrintDocument для запуска подготовки данных на сервере.
2.
Периодический вызов метода PrintDocument с интервалом 30 секунд для того же документа и проверка логического значения параметра HasContent. Цикл завершается, когда параметр HasContent примет значение true.
3.
Получение PDF из PrintFormContent.
 
 
Метод PrintDocument PrintDocument может вызывать следующие исключения:
WebException со стандартными кодами ответов HTTP 500, 403, 401, 400 (некорректный id), и 404 (документ не найден).
NotSupportedException – Такском-Доклайнз не поддерживает формирование PDF для данного типа документа.