PDFKit 使用 express(节点)

PDFKit using express (Node)

我打算在收到用户的输入后从 asp.net 页面生成 PDF 文件。

我现在使用的一种方法是允许用户运行浏览器调用服务器来创建 pdf。为此,我在 Node.js 中选择了 PDFKit 和 Express。我想找到 C# 等效项 - 但是 asp.net 核心无法引用我使用所需的外部库。我只能使用 Nuget 包管理器来下载库,并且 asp.net 核心(还)不支持大多数预期的库。

当前的工作

目前正在生成 pdf 脚本 ('pdf.js')。 IE。

运行 以下命令生成 PDF

node pdf.js

pdf.js

var doc = new PDFDocument();
doc.pipe(fs.createWriteStream('out.pdf'));
doc.save()
   .moveTo(100, 150)
   .lineTo(100, 250)
   .lineTo(200, 250)
   .fill("#FF3300")
doc.end()

我需要的

我打算从客户端浏览器调用节点脚本。 我目前使用客户端脚本 (client.js) 来调用 pdf.js 脚本。我现在将 pdf.js 脚本更改为以下内容:

已更新(pdf.js)

var express = require('express')
var PDFDocument = require('pdfkit');
var fs = require('fs');
var app = express()

app.post('/', function(req,res)
{
  doc.pipe(fs.createWriteStream('out.pdf'));
  doc.save()
   .moveTo(100, 150)
   .lineTo(100, 250)
   .lineTo(200, 250)
   .fill("#FF3300")
  doc.end()
})

client.js

$('#some-button').click(function() {
  $.ajax({
    type: 'POST',
    url: 'http://localhost:27724/js/pdf.js'
  });
});

startClient.cshtml

 <td>
       <button id='some-button'>Test</button>
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
       <script src='~/js/client.js'></script>
       </td>
 </td>

单击 cshtml 上的按钮 "Test" 不会按我的预期生成 out.pdf。 我在这里需要帮助。

1) 像

一样设置 express 应用监听端口
app.listen(27724, function () {
     console.log('Example app listening on port 27724!');
});

2) 你忘记了

var doc = new PDFDocument();

3) 运行

node pdf.js

4) 将正确的 url 设置为 ajax 请求,如

$('#some-button').click(function() {
   $.ajax({
        type: 'POST',
        url: 'http://localhost:27724'
   });
});