lily-demo.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. require dirname(__FILE__) . '/vendor/autoload.php';
  3. function tex2pdf($host, $request)
  4. {
  5. $client = new Palm\Lily\V1\TexClient($host, [
  6. 'credentials' => Grpc\ChannelCredentials::createInsecure(),
  7. ]);
  8. list($response, $status) = $client->ToPdf($request)->wait();
  9. if ($status->code !== Grpc\STATUS_OK) {
  10. echo "ERROR: " . $status->code . ", " . $status->details . PHP_EOL;
  11. exit(1);
  12. }
  13. echo $response->getContentType() . '(' . strlen($response->getPayload()) . ' bytes)' . PHP_EOL;
  14. }
  15. $request = new Palm\Lily\V1\TexToRequest();
  16. $request->getFiles()['main.tex'] = <<<'EOF'
  17. % 导言区
  18. \documentclass[a4paper, 12pt, fontset=ubuntu]{article} % book, report, letter
  19. \usepackage{ctex} % Use chinese package
  20. \title{\heiti 一级标题}
  21. \author{\kaishu 半闲}
  22. \date{\today}
  23. % 正文区
  24. \begin{document}
  25. \maketitle % 头部信息在正文显示
  26. \tableofcontents % 显示索引列
  27. \include{section-1.tex}
  28. \include{section-2.tex}
  29. \end{document}
  30. EOF;
  31. $request->getFiles()['section-1.tex'] = <<<'EOF'
  32. \section{章节1 标题}
  33. 章节1 正文
  34. \subsection{子章节1.1 标题}
  35. 子章节1-1 正文
  36. \subsection{子章节1.2 标题}
  37. 子章节1-2 正文
  38. EOF;
  39. $request->getFiles()['section-2.tex'] = <<<'EOF'
  40. \section{章节2 标题}
  41. 章节2 正文
  42. \subsection{子章节2.1 标题}
  43. 子章节2-1 正文
  44. \subsection{子章节2.2 标题}
  45. 子章节2-2 正文
  46. EOF;
  47. tex2pdf('localhost:9999', $request);