Как получить PDF, созданный с помощью jspdf в Excel VBA - PullRequest
0 голосов
/ 21 марта 2019

Я подозреваю, что упускаю что-то простое, но я занимаюсь этим часами, так что вот так.

Мне нужно получить PDF, который динамически генерируется на сайте интрасети с использованием JSPDF, и сохранить его в определенном месте. Этот код успешно запускает построение динамического HTML для создания PDF.

Как мне запустить его и получить PDF вместо HTML?

VBA:

Sub DownloadMap(WO As String, Mch As String)

Dim myurl As String
myurl = "http://intranetsite/page?workOrderString=" & WO & "&mchString=" & Mch

Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myurl, False
WinHttpReq.send

myurl = WinHttpReq.responseBody

If WinHttpReq.Status = 200 Then
    Set ostream = CreateObject("ADODB.Stream")
    ostream.Open
    ostream.Type = 1
    ostream.Write WinHttpReq.responseBody
    ostream.SaveToFile "C:\build\file.html", 2
    ostream.Close
End If
End Sub

Урезанная версия HTML, которая генерируется и сохраняется в "c: \ build \ file.html". Открытие этого HTML-файла вручную немедленно приводит к правильной загрузке PDF.

<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
    </head>
    <Body>
        <script>
            var pdf = new jsPDF('l');   
            //bunch of script to generate the PDF         
            pdf.save('625419' + ' - ' + 'T02' + '.pdf')
        </script>
    </body>
</html>

Как я могу заставить VBA выполнить сгенерированный HTML и получить PDF, вместо того, чтобы захватывать сгенерированный HTML?

...