2016-11-20 79 views
0

我打算从用户输入后,从asp.net页面生成PDF文件。PDFKit使用快递(节点)

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

什么是目前正在

目前的PDF脚本的产生( 'pdf.js')工作。 即。

运行下面的命令生成的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上的“测试”按钮不会生成out.pdf。 我需要帮助。

+0

在nuget.org上搜索'pdf netcore'返回在.NET Core上工作的PDF库。你的方法似乎非常复杂,容易出错。将来你会遇到很多麻烦。 – iPDFdev

回答

0

1)设定明确的应用程序监听端口像

app.listen(27724, function() { 
    console.log('Example app listening on port 27724!'); 
}); 

2)你忘了

var doc = new PDFDocument(); 

3)运行

node pdf.js 

4)设置正确的URL像

Ajax请求 ​​
+0

谢谢。一般来说,这是行得通的。 :) –

+0

将学习如何使用jquery + json通过express传递信息 –