Export.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Tools;
  3. use Grpc\ChannelCredentials;
  4. use Illuminate\Support\Facades\Log;
  5. use Palm\Lily\V1\TexClient;
  6. use Palm\Lily\V1\TexToRequest;
  7. class Export
  8. {
  9. public static function ToPdf($tex)
  10. {
  11. return Export::tex2pdf_lily($tex);
  12. }
  13. private static function tex2pdf_lily($tex)
  14. {
  15. $request = new TexToRequest;
  16. foreach ($tex as $key => $value) {
  17. $request->getFiles()[$value['name']] = $value['content'];
  18. // Log::info($value['name']);
  19. // Log::info($value['content']);
  20. }
  21. $host = config('mint.server.rpc.lily.host').':'.config('mint.server.rpc.lily.port');
  22. $client = new TexClient($host, [
  23. 'credentials' => ChannelCredentials::createInsecure(),
  24. ]);
  25. [$response, $status] = $client->ToPdf($request)->wait();
  26. if ($status->code !== \Grpc\STATUS_OK) {
  27. echo 'ERROR: '.$status->code.', '.$status->details.PHP_EOL;
  28. return ['ok' => false,
  29. 'code' => $status->code,
  30. 'message' => $status->details,
  31. ];
  32. }
  33. return ['ok' => true,
  34. 'content-type' => $response->getContentType(),
  35. 'data' => $response->getPayload(),
  36. ];
  37. }
  38. }