Как мне ссылаться на размещенный docx, а не отправлять его каждый раз при создании pdf (api для создания документов)

Я задал этот вопрос на https://community.adobe.com/ и не получил ответа. Если я это сделаю, я включу ответ здесь.

Я могу создать PDF-файл, используя базовый подход, описанный Adobe на странице https://developer.adobe.com/document-services/docs/overview/document-generation-api/ .

В идеале я не хочу отправлять базовый текстовый документ docx в вызове API каждый раз, когда я создаю новый PDF-файл. Я бы предпочел разместить docx, который можно получить во время создания документа. Одним из подходов может быть ссылка на docx, размещенный на acrobat.adobe.com. На данный момент мне нужно отправить docx, а также данные json, что кажется неэффективным.

Я использую https://cpf-ue1.adobe.io/ops/:create

"cpf:inputs":{ "documentIn":{ "dc:format":"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "cpf:location":"InputFile0" },

Я думаю, если это невозможно сделать, то все в порядке, я просто хотел бы знать, чтобы я мог реализовать это соответствующим образом.

Спасибо

1 ответ

упомянутая вами конечная точка API устарела, и у нас есть новый набор конечных точек REST, которые ее поддерживают. Документацию по нашим новым REST API можно найти здесь: https://developer.adobe.com/document-services/docs/apis/ . Вступительную публикацию в блоге можно найти здесь: https://blog.developer.adobe.com/announcing-the-new-adobe-document-services-rest-apis-8d85951176cf .

Теперь, в вашем конкретном случае повторного использования документа Word, вы можете делать это до 24 часов с одним ресурсом. По сути, вы загружаете документ Word, а затем используете идентификатор актива для нескольких вызовов создания документа.

Я подробно описываю этот процесс здесь, https://medium.com/adobetech/multiple-performant-operations-with-the-new-adobe-document-services-rest-apis-7e56bec336af, но поскольку SO не любит связывать к существующим подобным вещам, я немного повторю это здесь. :)

Итак, после аутентификации вы:

  • Запросите URL-адрес загрузки, указав тип, в данном случаеapplication/vnd.openxmlformats-officedocument.wordprocessingml.document.
  • Получив URL-адрес, вы отправляете туда свой документ Word.
  • Затем вы создаете задание создания документа, которое включает в себя использование идентификатора актива из первого шага и передачу данных JSON. Вот пример функции, которая оборачивает это:
      async function createDocumentGenerationJob(asset, outputFormat, data, clientId, token) {
    let body = {
        'assetID': asset,
        'outputFormat': outputFormat, 
        'jsonDataForMerge':data
    };
    body = JSON.stringify(body);

    let req = await fetch(REST_API+'operation/documentgeneration', {
        method:'post',
        headers: {
            'X-API-Key':clientId,
            'Authorization':`Bearer ${token}`,
            'Content-Type':'application/json'
        },
        body: body
    });

    return req.headers.get('location');
}
  • Результатом конечной точки API создания задания является URL-адрес, статус которого можно проверить, поэтому продолжайте проверять его...
  • По завершении вам будет предоставлен URL-адрес для загрузки полученного PDF-файла.

Если что-то из этого не имеет смысла, просто дайте мне знать.

Другие вопросы по тегам