1

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。感谢您能否清楚说明这种转换是如何发生的。

4

1 回答 1

0

好的,这是使用 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

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

使用 $http 或 $resource 和 angular.js 将文本 blob 作为文件上传 - 模仿 curl 样式的多部分/表单上传

于 2016-04-26T18:51:26.493 回答