如果源是 PDF,我无法在画布中加载 Konva Image 对象。
没有抛出错误,但画布在图像应该是空白的地方。是否有任何已知的解决方法?欢迎任何建议。
如果源是 PDF,我无法在画布中加载 Konva Image 对象。
没有抛出错误,但画布在图像应该是空白的地方。是否有任何已知的解决方法?欢迎任何建议。
HTML5 画布托管在浏览器中,浏览器负责将图像从文件数据转换为图像数据。根据经验,如果您可以在浏览器中打开图像,即通过 html img 标签而不需要任何特殊插件,那么它可能适用于画布,但这将取决于浏览器的功能。
PDF 不是一种图像格式,而是一种可编写脚本的富文本文档格式,可以包含不同类型的多媒体内容,包括矢量和位图图形、音频、视频、表格。
如果你碰巧让它工作,请非常小心跨设备和跨浏览器测试。
这不是 Konva 中的错误。
PDF 不是图像。这是一种非常复杂的文档格式。你不能直接使用它。
可能您可以使用类似https://mozilla.github.io/pdf.js/的东西来呈现 pdf,然后以某种方式使用它。
你能在fabricjs和mozilla的pdf之间尝试这个解决方案组合吗
/**
* Displays next page.
*/
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
prevPageNum = pageNum;
pageNum++;
queueRenderPage(pageNum);
}
document.getElementById('next').addEventListener('click', onNextPage);
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
// Adding a rectangle
jQuery(function($) {
$("#addRectangle").click(function() {
fCanvas.add(new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 20,
height: 20
}));
});
});
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<h1>PDF.js Previous/Next example</h1>
<div>
<input type="button" id="addRectangle" value="Add Signature">
<button id="prev">Previous</button>
<button id="next">Next</button>
<span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
</div>
<canvas id="the-canvas"></canvas>