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

エラーを修正して、コアの競合が表示されないようにする

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

lib/docverter-server/error-handler.rb

angularクライアント側について=>私は自分のスタックの質問でその修正をここに文書化します:

angular.js で $http または $resource を使用してテキスト blob をファイルとしてアップロードする - curl スタイルのマルチパート/フォーム アップロードを模倣する

于 2016-04-26T18:51:26.493 に答える