如何使用AngularJS/NodeJS中的Docverter将GENERATED html转换为pdf进行下载



docverter的API是以curl格式提到的,如下所示

curl 
  http://c.docverter.com/convert 
  -F from=html 
  -F to=pdf 
  -F input_files[]=@<(echo hello)

API指出input_files[]值应该是multipart/form-data file上传,但在我的AngularJS应用程序中,我动态生成报告(在特定路由上),这意味着它不是可以使用文件上传控制上传的html文件。

我的问题可能有点模糊,因为通过查看docverter API,我无法知道什么代码在客户端上,什么代码在服务器上。

总的来说,我正在寻找一个解决方案,将生成的HTML(以及样式表)转换为PDF文件,然后将该PDF文件下载到浏览器。

在服务器端,我使用的是Node.js。如果你能澄清这种转换是如何发生的,我将不胜感激。

好的,这里是服务器端的修复程序,可以用docverter解决cors问题。

实际上,启动和运行它只需要很少的代码。

这些变化发生在lib/docverter-server/app.rb

class DocverterServer::App < Sinatra::Base
# added code starts here ==>
before do
  headers 'Access-Control-Allow-Origin' => '*', 
          'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST'] ,
          'Access-Control-Allow-Headers' => 'Content-Type',
          'Content-Disposition'  => 'attachment',
          'Content-Type' => 'application/octet-stream'
end
# <=== added ends starts here
set :show_exceptions, false

修复错误,使其不只是显示cors冲突

[500, {'Content-Type' => 'application/json', 'Access-Control-Allow-Origin' => '*'}, [MultiJson.dump(hash)]]

lib/docverter-server/error-handler.rb

至于有角度的客户端=>我在这里用我自己的堆栈问题解决了这个问题:

使用angular.js使用$http或$resource上传文本blob作为文件-模仿curl风格的multipart/form上传

相关内容

  • 没有找到相关文章

最新更新