Преобразовать байты [] в com.aspose.words.Документ — Java API

#java #spring #binary-data #aspose

#java #spring #двоичные данные #aspose

Вопрос:

Я пытаюсь создать конечную точку в Java API. Вызов должен будет передать файл word (который будет в байтах) для конечной точки. Затем мне нужно перевести эти байты в com.aspose.words.Документ, поэтому я применяю .getMailMerge().getFieldNames() к нему.

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

Вот что у меня есть до сих пор:

 @RequestMapping(value = "getFields", method = POST, produces = MediaType.APPLICATION_JSON_VALUE)
    public Fields getFieldsFromFile(@RequestBody byte[] file, @RequestHeader(value = "Authorization") String apiKey) {
        try {
            return myService.getFieldsFromFile(file, apiKey);
        } catch (Exception e) {
           ...handles error...
        }
    }
  
 public Fields getFieldsFromFile(bytes[] file, String apiKey) throws ServiceException {

       {THIS IS WHERE I NEED TO MAKE THE FILE VAR, WHICH IS CURRENTLY BYTES,
                       INTO A DOCUMENT(COM.ASPOSE.WORDS.DOCUMENT)}

        try {
            return new Fields(new HashSet<>(Arrays.asList(file.getMailMerge().getFieldNames())).toArray(new String[0]));
        } catch (Exception e) {
            ...throws error...
        }
    }
  

Ответ №1:

Если ваши байты уже находятся в хорошем формате, как я вижу в документации здесь https://apireference.aspose.com/words/java/com.aspose.words/Document

есть конструктор Document(java.io.InputStreamstream)

Итак, вы можете использовать это :

 public Fields getFieldsFromFile(bytes[] file, String apiKey) throws ServiceException {
        Document doc = new Document(new ByteArrayInputStream(file));
        try {
            return new Fields(new HashSet<>(Arrays.asList(file.getMailMerge().getFieldNames())).toArray(new String[0]));
        } catch (Exception e) {
            ...throws error...
        }
    }
  

Комментарии:

1. Да, это то, что мне было нужно. TY