SVG图片toDataURL的路径

时间:2019-02-21 16:22:41

标签: javascript canvas base64 jspdf

我想将SVG图片加载为pdf。

以下是我的代码

 function toDataURL(url, callback) {
 var xhr = new XMLHttpRequest();
 xhr.onload = function() {
 var reader = new FileReader();
 reader.onloadend = function() {
  callback(reader.result);
 }
 reader.readAsDataURL(xhr.response);
 };
 xhr.open('GET', url);
 xhr.responseType = 'blob';
 xhr.send();
 }

var svgImg = document.createElementNS('http://www.w3.org/2000/svg','svg');
svgImg.setAttribute('xmlns:xlink','http://www.w3.org/1999/xlink');
svgImg.setAttribute('height','200');
svgImg.setAttribute('width','230');
svgImg.setAttribute('id','test');

var svgimg = document.createElementNS('http://www.w3.org/2000/svg','image');
svgimg.setAttribute('height','185');
svgimg.setAttribute('width','230');
svgimg.setAttribute('id','testimg');

// convert image and add to svg image object
toDataURL('/opt/data/APP_DATA/Pictures/Picture1.jpg', function(dataUrl) {
svgimg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', dataUrl);
});
svgimg.setAttribute('x','40');
svgimg.setAttribute('y','410');

svgImg.appendChild(svgimg);

如果我在下面的行中给出路径

如果我将图片声明为

toDataURL('http://www-1234.com/Project/Pictures/Picture1.jpg', function(dataUrl) {

它正在显示图像。

如果我给出为

toDataURL('/opt/Data/APP_DATA/Pictures/Picture1.jpg', function(dataUrl) {

它没有显示图像

我必须获取src后一个目录中的图像。

在控制台中显示为“ http://www-12344.com/opt/DATA/APP_DATA/Pictures/Picture1.jpg

不支持带有外部资源链接的图像!

您能指导我如何以pdf格式显示图像吗?如果从浏览器中给出图像的直接URL,它也会以pdf的形式加载,而不是从给定目录中加载

0 个答案:

没有答案