• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/body/docx.php
  • Класс: BitrixDocumentGeneratorBodyDocx
  • Вызов: Docx::process
public function process(): Result
{
	$result = new Result();

	if (!$this->isFileProcessable())
	{
		return $result->addError(
			new Error(Loc::getMessage('DOCGEN_BODY_DOCX_ERROR_FILE_IS_NOT_PROCESSABLE'), 'FILE_NOT_PROCESSABLE')
		);
	}

	if($this->open() === true)
	{
		$this->fillInnerDocuments();
		foreach($this->innerDocuments as $path => $data)
		{
			/** @var DocxXml $document */
			$document = $data['document'];
			$documentResult = $document->process();
			if($documentResult->isSuccess())
			{
				$documentData = $documentResult->getData();
				$this->addContentToZip($document->getContent(), $path);
				$this->replaceImages($data['relationships'], $documentData['imageData']);
				$this->addNumberings($documentData['numberingIds']);
			}
			else
			{
				$result->addErrors($documentResult->getErrors());
			}
		}
		$this->zip->close();
		$this->content = $this->file->getContents();
	}
	else
	{
		$result->addError(new Error('Cant open zip archive'));
	}

	return $result;
}