2017-06-07 7 views
0

私はsymfonyとangularでプロジェクトに取り組んでいます。私はjsonや別の方法でpdfファイルを送ってバックエンドからフロントエンドに送ることができます。jsonのpdfをsymfonyから角度へ

私はそれをサーバーに保存してアクセスするためのURLだけを送信しようとはしません。私が望むのは、それをjsonデータに送ることです。

詳細については、私はFPDFを使ってPDFファイルを生成しています。私はそれをjsonで使いたいと思っています。 この私のコントローラです:

/** 
    * @Get("/testt") 
    */ 
    public function test2Action() 
    { 
     $pdf = new \FPDF('P','mm','A4'); 
     $pdf->AddPage(); 
     $pdf->Image(__DIR__.'/../../../../web/assets/images/icons8-Calendar Filled-50.png'); 
     $pdf->SetFont('Arial','B',14); 
     $pdf->SetXY(25,12); 
     $pdf->Cell(40,10,utf8_decode('Evénements')); 
     $pdf->SetXY(10,25); 
     $pdf->Cell(40,10,utf8_decode("72eordre")); 
     $pdf->SetXY(12,42); 
     $pdf->Image(__DIR__.'/../../../../web/assets/images/icons8-Marker-50.png',null,null,-150); 
     $pdf->SetFont('Arial','B',10);$pdf->SetTextColor(110,110,110); 
     $pdf->SetXY(22,36); 
     $pdf->Cell(40,10,utf8_decode(" Grand Palais")); 
     $pdf->SetXY(22,41); 
     $pdf->Cell(40,10,utf8_decode("saada 458")); 
     $pdf->SetXY(22,46); 
     $pdf->Cell(40,10,utf8_decode("59000, marrakech-")); 
     $pdf->SetXY(12,61); 
     $pdf->Image(__DIR__.'/../../../../web/assets/images/calendar-gris.png',null,null,-150); 

     $pdf->SetXY(22,58); 
     $pdf->Cell(40,10,utf8_decode("Du 27 septembre 2017 à 08:00")); 
     $pdf->SetXY(22,63); 
     $pdf->Cell(40,10,utf8_decode("Au 29 semptembre 2017 à 18:00")); 

     $pdf->SetXY(10,80); 
     $pdf->SetFont('Arial','B',10);$pdf->SetFont('');$pdf->SetTextColor(110,110,110); 
     $pdf->Cell(40,10,utf8_decode("Cette carte")); 
     $pdf->SetXY(10,85); 
     $pdf->Cell(20,10,utf8_decode(" obtenir votre badge ")); 
     $pdf->SetXY(25,96); 
     $pdf->Image(__DIR__.'/../../../../web/assets/qrcode.png',null,null,-220); 
     $pdf->SetXY(25,160); 
     $pdf->SetFillColor(1,49,180); 
     $pdf->SetLineWidth(0.2835); 
     $pdf->Rect(12,160,85,20, "F"); 
     $pdf->SetXY(14,161); 
     $pdf->SetFont('Arial','B',14);$pdf->SetTextColor(255,255,255); 
     $pdf->Cell(20,10,utf8_decode("yassine ")); 
     $pdf->SetXY(14,168); 
     $pdf->SetFont('Arial','B',12);$pdf->SetTextColor(255,255,255);$pdf->SetFont(''); 
     $pdf->Cell(20,10,utf8_decode("CHEF DE PROJET ")); 
     $pdf->SetDrawColor(150,150,150); 
     $pdf->Line(10, 25, 100, 25); 
     $pdf->Line(10, 35, 100, 35); 
     $pdf->Line(15, 55, 100, 55); 
     $pdf->Line(10, 75, 100, 75); 
     return new Response($pdf->Output(), 200, array(
      'Content-Type' => 'application/pdf')); 
    } 

あなたが見ることができるように、FPDF APIのREPONSEタイプISBYデフォルト:アプリケーション/ PDF

ので、フロントエンドからこのファイルとアクセスを送信するための解決策は何ですか角度が2.3

+0

問題が何ですか。このPDFでAngularとは何が関係していますか? – COil

+0

これをダウンロードするか、ブラウザに表示してください –

答えて

1

PDFをJSONレスポンスに埋め込む安全な方法は、base64形式にエンコードすることです。その後、クライアント側でレスポンスを解析し、PDFデータをデコードして、PDFコンテンツで必要な処理を実行できます。

return new JsonResponse(['data' => base64_encode($pdf->Output())]); 
+0

これは動作していません。まだ応答のタイプのアプリケーション/ pdf –

+0

応答の代わりにJsonResponseを返すようにしてください。 JsonResponseは、デフォルトでapplication/jsonのコンテンツタイプを設定する必要があります。 –

+0

はい私はしますが、動作していません –

関連する問題