最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - converting HTML page into base64 - Stack Overflow

programmeradmin1浏览0评论

I have a fetch request that returns an HTML doc

<!DOCTYPE html><html lang="en"><head>..../body></html>

The next thing I'm trying to do is pass it to an API that will let me download it as a PDF

fetch("data:application/pdf;base64,"+encoded_data...)

I saw that I can use window.btoa() to encode a string into base64. However I'm stuck trying to turn the HTML file into a string, to pass into btoa()

fetch(";})
.then(resp => {return resp.text()})
.then(data => {
   //this is the HTML file
    var x = String(data)
    console.log(x)
    var base64 = window.btoa(x)
    // console.log(base64)
})

I'm getting this error:

Uncaught (in promise) DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
    at <anonymous>:21:25

I'm assuming this is because what I'm passing btoa isn't a string?

I have a fetch request that returns an HTML doc

<!DOCTYPE html><html lang="en"><head>..../body></html>

The next thing I'm trying to do is pass it to an API that will let me download it as a PDF

fetch("data:application/pdf;base64,"+encoded_data...)

I saw that I can use window.btoa() to encode a string into base64. However I'm stuck trying to turn the HTML file into a string, to pass into btoa()

fetch("https://www.website./cap/people/streamPdf/1214192793"})
.then(resp => {return resp.text()})
.then(data => {
   //this is the HTML file
    var x = String(data)
    console.log(x)
    var base64 = window.btoa(x)
    // console.log(base64)
})

I'm getting this error:

Uncaught (in promise) DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
    at <anonymous>:21:25

I'm assuming this is because what I'm passing btoa isn't a string?

Share Improve this question edited Sep 13, 2020 at 17:32 dropWizard asked Sep 13, 2020 at 17:24 dropWizarddropWizard 3,55812 gold badges69 silver badges92 bronze badges 2
  • How exactly are you stuck trying to turn the HTML file into a string? – shreyasm-dev Commented Sep 13, 2020 at 17:26
  • updated my question to be more clear – dropWizard Commented Sep 13, 2020 at 17:32
Add a ment  | 

2 Answers 2

Reset to default 4

Replace the html content with a string and try encoding it with base64.

btoa() //base64 encoding
atob() //base64 decoding

Does this answer your question?

fetch("https://example.")
.then(response => {
    return response.text()  
})
.then(html => {
    return window.btoa(html)
})
.then(base64 => {
    return "data:text/html;base64," + base64
})
.then(result => {
    console.log(result)
})
发布评论

评论列表(0)

  1. 暂无评论