Получить массив байтов из текущего нового документа Word без сохранения на локальный диск - PullRequest
0 голосов
/ 09 июля 2020

Как я могу получить массив байтов открытого документа Word, не сохраняя его предварительно на локальный диск. Документ будет создан на тонком клиенте без локального диска. Когда пользователь хочет сохранить документ, мне нужно отправить документ в виде массива байтов в веб-службу для его обработки.

Dim filePath As String
Dim fileName As String
Dim fullFileName As String
filePath = ActiveDocument.Path
fileName = ActiveDocument.Name
fullFileName = ActiveDocument.FullName
  • значение filePath равно ''
  • значение fileName равно 'Document1'
  • значение fullFileName равно 'Document1'

Как я могу получить весь файл в виде массива байтов, чтобы я мог его отправить в веб-службу, например:

Dim bytFile() As Byte
Dim http
Dim userName As String
Dim url As String

Set http = CreateObject("MSXML2.ServerXMLHTTP")
userName = "Me"
 
'--- read file
bytFile = ?????????? 

'--- send the file to the API server
url = "http://localhost/DocWebApi/Post?fileName=" & fileName & "&userName=" & userName
 
http.Open "POST", url, False
http.Send (bytFile)
http.waitForResponse 4000 

Заранее спасибо!

РЕДАКТИРОВАТЬ: Для большей ясности => новый документ не может быть сохранен на локальном компьютере или сетевом диске .

1 Ответ

0 голосов
/ 09 июля 2020

Для получения байтового массива документ необходимо сохранить. Вы можете использовать метод SaveAs2 , который сохраняет указанный документ с указанным именем или форматом. Некоторые аргументы этого метода соответствуют параметрам в Save As dialog box (см. Вкладку File). По сути, вам нужно сначала сохранить файл на жестком диске в любом месте.

Затем вы можете прочитать массив байтов, используя Document.Path свойство возвращает дисковый путь к документу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...