我正在尝试使用 pdf.js 将 KineticJS 形状添加到现有的pdf 文件中。我遇到的问题是 KineticJS 创建了一个新画布并且不会使用由 pdf.js 创建的画布。我尝试在 KineticJS 中引用 pdf.js 画布,但这不起作用。关于如何将两者结合起来的任何想法?主要目的是为pdf提供注释。
问问题
652 次
1 回答
0
如果您对这个过程不太了解,您可以尝试生成 .pdf 的 Bytescout,它还包含一个挂钩,可将您的画布图像加载到您的 pdf 中。
一切都在客户端完成,因此您可以查看/编辑/查看/编辑您心中的内容。
他们在这里: http : //bytescout.com/products/developer/pdfgeneratorsdkjs/index.html(顺便说一句,这里没有推销——我没有以任何方式连接到bytescout!)
这是他们网站上显示嵌入式画布的示例:
function CreatePDF() {
// create BytescoutPDF object instance
var pdf = new BytescoutPDF();
// set document properties: Title, subject, keywords, author name and creator name
pdf.propertiesSet("Sample document title", "Sample subject", "keyword1, keyword 2, keyword3", "Document Author Name", "Document Creator Name");
// set page size
pdf.pageSetSize(BytescoutPDF.A4);
// set page orientation (BytescoutPDF.PORTRAIT = portrait, BytescoutPDF.LANDSCAPE = landscape)
pdf.pageSetOrientation(BytescoutPDF.PORTRAIT);
// add new page
pdf.pageAdd();
// create temporary canvas (you can also simply get existing canvas)
var canvas = document.createElement('canvas');
// set width and height
canvas.width = 320;
canvas.height = 240;
// get context from canvas (to draw on)
var context = canvas.getContext("2d");
// set white background color
context.fillStyle = "#FFFFFF";
// and fill the background with white color
context.fillRect(0, 0, 320, 240);
// draw the yellow circle
context.strokeStyle = "#000000";
context.fillStyle = "#FFFF00";
context.beginPath();
context.arc(100, 100, 50, 0, Math.PI * 2, true);
context.closePath();
context.stroke();
context.fill();
// load image from canvas into BytescoutPDF
pdf.imageLoadFromCanvas(canvas);
// place this image at given X, Y coordinates on the page
pdf.imagePlace(20, 40);
// return BytescoutPDF object instance
return pdf;
}
于 2013-03-22T20:25:25.827 回答