我正在寻找一种方法来添加文本的顶部现有的PDF使用JavaScript。我把它想象成用户点击一个按钮下载PDF,然后收到一个包含原始PDF和在页面上写入的附加文本的文件。
这有没有可能呢?
使用现有的PDF以保留其上的原始设计是很重要的,而且PDF还包括以不同字体和各种unicode字形进行特殊排版的文本。
将此文本从网页生成到PDF中也很重要,因为生成的每个文本都会略有不同,从而为最终用户创建唯一的PDF。
我一直在网上研究这个话题,并找到了jsPDF库,但它似乎只生成PDF,而不是在现有PDF之上编写,而且我需要的PDF内容太复杂了,无法使用jsPDF生成所有内容。如果没有必要,我不想使用现有的PDF作为背景图像。
我还发现了一些像PDFKit这样的后端库,但我希望避免使用后端库,如果在所有可能的- and,它似乎也不会覆盖现有的PDF。
我在网上看到了一些关于文本域的东西,但有困难的是,如果这将是一个可行的路径采取- could有可能添加文本域,然后在用户下载之前从网页插入文本到这些域吗?
非常感谢。
发布于 2016-04-26 18:28:06
我猜您可以将PDF文件转换为html,或者至少在画布上绘制它。如果可以,您可以使用jsPDF将覆盖html添加到现有html之上,以生成新的PDF文件。
var doc = new jsPDF();
doc.addHTML(document.body, function() {
doc.text(20, 20, 'Hello world!');
doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
doc.addPage();
doc.text(20, 20, 'Do you like that?');
printData();
});
printData = function() {
var str = doc.output('datauristring');
console.log(str);
// window.open(str); Optional
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://html2canvas.hertzen.com/build/html2canvas.js"></script>
<script src="http://mrrio.github.io/jsPDF/dist/jspdf.debug.js"></script>
<div id="mypdf">
<div>
My Pdf Content Here
</div>
</div>
发布于 2020-09-10 14:53:11
https://pdf-lib.js.org/库支持修改现有的PDF文件。
const pdfDoc = await PDFDocument.load(...)
const pages = pdfDoc.getPages()
pages[0].drawText('You can modify PDFs too!')
const pdfBytes = await pdfDoc.save()
发布于 2014-05-03 09:17:45
PDF是只读的,所以一旦创建,就不能编辑,只能读。没有办法通过任何程序来做到这一点,更不用说Javascript了,除了完全从头开始生成pdf之外,使用与创建第一个pdf相同的步骤。
https://stackoverflow.com/questions/23438253
复制相似问题