Как мне ссылаться на размещенный 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-файла.
Если что-то из этого не имеет смысла, просто дайте мне знать.