[英]Javascript - How to convert and download base64 pdf data as an png image?
I want to tricker a png file download with base64 pdf data.我想用 base64 pdf 数据欺骗 png 文件下载。 How to do so?怎么做? That's my script:那是我的脚本:
var base64pdfData = atob(
'JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0KPj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAgL1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KPj4KZW5kb2JqCgo1IDAgb2JqICAlIHBhZ2UgY29udGVudAo8PAogIC9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8sIHdvcmxkISkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4gCjAwMDAwMDAwNzkgMDAwMDAgbiAKMDAwMDAwMDE3MyAwMDAwMCBuIAowMDAwMDAwMzAxIDAwMDAwIG4gCjAwMDAwMDAzODAgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9TaXplIDYKICAvUm9vdCAxIDAgUgo+PgpzdGFydHhyZWYKNDkyCiUlRU9G');
var obj = document.createElement('object');
obj.style.width = '100%';
obj.style.height = '842pt';
obj.type = 'image/png';
obj.data = 'data:image/png;base64,' + base64pdfData;
document.body.appendChild(obj);
var link = document.createElement('a');
link.innerHTML = 'Download PNG file';
link.download = 'file.png';
link.href = 'data:application/octet-stream;base64,' + base64pdfData;
document.body.appendChild(link);
//var a = document.createElement("a"); //Create <a>
//a.href = "data:image/png;base64," + base64pdfData; //Image Base64 Goes here
//a.download = "Image.png"; //File name Here
//a.click();
Here is a fiddle:这是一个小提琴:
https://jsfiddle.net/duejg9n3/ https://jsfiddle.net/duejg9n3/
Do I need to use this pdf.js library?我需要使用这个 pdf.js 库吗? https://jsfiddle.net/pdfjs/cq0asLqz/ https://jsfiddle.net/pdfjs/cq0asLqz/
You basically need to do two things before you can download a PNG image:在下载 PNG 图像之前,您基本上需要做两件事:
One way to do this is through using something like the LEADTOOLS Document Library (which is what I am familiar with since I work for the vendor of this toolkit).一种方法是使用LEADTOOLS 文档库之类的东西(自从我为该工具包的供应商工作以来,我就很熟悉它)。
Using this library, you can be implement the DocumentConverter class in a server-side C# code that decodes the base64 string, converts PDF to PNG, then returns the PNG output in a base64 string:使用此库,您可以在服务器端 C# 代码中实现 DocumentConverter class,解码 base64 字符串,将 PDF 转换为 PNG,然后在 base64 字符串中返回 PNG output:
MemoryStream ms = new MemoryStream(Convert.FromBase64String(pdfStr));
using (DocumentConverter documentConverter = new DocumentConverter())
using (LEADDocument document = DocumentFactory.LoadFromStream(ms, new LoadDocumentOptions()))
{
MemoryStream outputStream = new MemoryStream();
DocumentConverterJobData jobData = new DocumentConverterJobData();
jobData.Document = document;
jobData.RasterImageFormat = RasterImageFormat.Png;
jobData.OutputDocumentStream = outputStream;
jobData.JobName = "Convert to PNG Job";
DocumentConverterJob job = documentConverter.Jobs.CreateJob(jobData);
documentConverter.Jobs.RunJob(job);
pngStr = Convert.ToBase64String(outputStream.ToArray());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.