Как сохранить несколько веб-страниц в виде файлов PDF или скриншота с помощью макроса Excel? - PullRequest
0 голосов
/ 18 сентября 2018

Я опробовал приведенный ниже код, но он только сохраняет HTML-контент страницы и в итоге исключает большую часть важного контента на странице.

Если кто-нибудь может мне помочь с сохранением этих веб-страниц в формате pdf или png, было бы замечательно.

Sub SaveWebpage()
    Dim objHTTP As Object, _
        objFSO As Object, _
        objFil As Object, _
        lngRow As Long, _
        strURL As String, _
        strPath As String, _
        strFilename As String
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'On the next line change the file path as desired.  Make sure the path ends with \
    strPath = "C:\Users\Pradyumna\Desktop\Save Webpages"
    For lngRow = 2 To Application.ActiveSheet.UsedRange.Rows.Count
        strFilename = strPath & lngRow & ".htm"
        strURL = Application.ActiveSheet.Cells(lngRow, 1).Value
        objHTTP.Open "GET", strURL, False
        objHTTP.send ""
        Set objFil = objFSO.CreateTextFile(strFilename)
        objFil.Write objHTTP.responseText
        objFil.Close
    Next
    Set objHTTP = Nothing
    Set objFSO = Nothing
    Set objFil = Nothing
    MsgBox "All done!"
End Sub

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете сохранить веб-страницу в формате PDF просто , используя Chrome без головы через командную строку:

lRet = CreateObject("WScript.Shell").Run("""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"" --headless --disable-gpu --print-to-pdf=""C:\Test\Sample.pdf"" https://api.myip.com", 1, True)
MsgBox "Ret code: " & lRet

Вам необходимо указать фактический путь к Chrome и файлу PDF, который необходимо сохранить. Обратите внимание, что для запуска кода в Windows требуется версия Chrome 60 или выше.

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