Я подозреваю, что упускаю что-то простое, но я занимаюсь этим часами, так что вот так.
Мне нужно получить 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?