2016-11-20 4 views
0

사용자로부터 입력을받은 후 asp.net 페이지에서 PDF 파일을 생성하려고합니다.express (node)를 사용하여 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의 "Test"버튼은 의도 한대로 out.pdf를 생성하지 않습니다. 여기에 도움이 필요합니다. 명시 응용 프로그램 설정

+0

nuget.org에서 'pdf netcore'를 검색하면 .NET Core에서 작동하는 PDF 라이브러리가 반환됩니다. 위의 접근 방식은 매우 복잡하고 오류가 발생할 수 있습니다. 앞으로도 계속 두통을 겪게 될 것입니다. – iPDFdev

답변

0

1)는

var doc = new PDFDocument(); 

3)

같은 아약스 요청에

node pdf.js 

4) 설정 올바른 URL을 실행

잊었 포트)

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

이 같이 듣고

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

감사합니다. 일반적으로 이것은 작동합니다. :) –

+0

익스프레스를 통해 jquery + json을 사용하여 정보를 전달하는 방법을 배우게됩니다. –

관련 문제