在 Javascript 中将 PDF 转换为 Base64 编码的字符串

Posted

技术标签:

【中文标题】在 Javascript 中将 PDF 转换为 Base64 编码的字符串【英文标题】:Convert PDF to a Base64-encoded string in Javascript 【发布时间】:2012-11-12 09:27:31 【问题描述】:

我需要使用 javascript 将 PDF 文件编码为 Base64。我可以在 Javascript 中创建 Base64 编码的 jpeg 或 png 图像,但我找不到任何方法或示例代码来从 PDF 文件创建 Base64 编码的字符串。

有没有使用 html5 画布的解决方案?

谢谢。

【问题讨论】:

***.com/questions/12092633/… and .window.open("data:application/pdf;base64," + Base64.encode(out)); 【参考方案1】:

试试这个:-

<input id="inputFile" type="file" onchange="convertToBase64();" />

<script type="text/javascript">
    function convertToBase64() 
        //Read File
        var selectedFile = document.getElementById("inputFile").files;
        //Check File is not Empty
        if (selectedFile.length > 0) 
            // Select the very first file from list
            var fileToLoad = selectedFile[0];
            // FileReader function for read the file.
            var fileReader = new FileReader();
            var base64;
            // Onload of file read the file content
            fileReader.onload = function(fileLoadedEvent) 
                base64 = fileLoadedEvent.target.result;
                // Print data in console
                console.log(base64);
            ;
            // Convert data to base64
            fileReader.readAsDataURL(fileToLoad);
        
    
</script>

【讨论】:

此解决方案适用于各种浏览器和文件类型【参考方案2】:

这是一个人的做法:

http://blogs.adobe.com/formfeed/2009/08/base64_encode_a_pdf_attachment.html

这里有一个链接,它提供了其他几种可能的解决方案:

Base64 encoding and decoding in client-side Javascript

【讨论】:

我之前看过这个链接,并在你也建议了这个链接之后试了一下blogs.adobe.com/formfeed/2009/08/… 这个适用于 txt 文件,但不适用于 pdf。当我写 var inputStream = event.target.getDataObjectContents("1.pdf"); document.getElementById('data2').value = inputStream;它不返回任何值。此外,您共享的第二个链接不包含任何关于 pdf 到字符串转换的内容。它只显示了base64编码,我对base64编码图像或字符串没有问题。 我的意思是获取 pdf 文件的 base64 编码字符串表示形式。 @onuryilmaz 你找到答案了吗?我也有同样的问题。

以上是关于在 Javascript 中将 PDF 转换为 Base64 编码的字符串的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 python 中将包含 JavaScript 图表的 html 文件转换为 PDF?

在 Javascript 中将 PDF 转换为 Base64 编码的字符串

在Javascript中将PDF拆分为单独的文件

在 Python 中将 HTML 字符串转换为图像 [关闭]

在Javascript中将数组转换为嵌套的JSON?

能否像在 Javascript 中将函数转换为字符串一样,将方法转换为 Java 中的字符串?