generate.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. setlocale(LC_ALL, "ru_RU");
  3. require 'vendor/autoload.php';
  4. use Symfony\Component\Process\Process;
  5. $template = file_get_contents('template/43x25-2-label-case.svg');
  6. $content = [
  7. ['Стяжка', 'межсекционная'],
  8. ['Шкант', ''],
  9. ['КОНФИРМАТ', ''],
  10. ['ПОДШИПНИК', ''],
  11. ['Заклепка', 'вытяжная'],
  12. ['Болт', 'М3'],
  13. ['Болт', 'М4'],
  14. ['Болт', 'М5'],
  15. ['Болт', 'М6'],
  16. ['Болт', 'М8'],
  17. ['Болт', 'М10'],
  18. ['Гайка', 'М3'],
  19. ['Гайка', 'М4'],
  20. ['Гайка', 'М5'],
  21. ['Гайка', 'М6'],
  22. ['Гайка', 'М8'],
  23. ['Гайка', 'М10'],
  24. ['Винт', 'М3'],
  25. ['Винт', 'М4'],
  26. ['Винт', 'М5'],
  27. ['Винт', 'М6'],
  28. ['Винт', 'М8'],
  29. ['Винт', 'М10'],
  30. ['Шайба', 'М3'],
  31. ['Шайба', 'М4'],
  32. ['Шайба', 'М5'],
  33. ['Шайба', 'М6'],
  34. ['Шайба', 'М8'],
  35. ['Шайба', 'М10'],
  36. ];
  37. foreach($content as $item) {
  38. $tmpfile = './tmp/' . uniqid();
  39. $item[0] = mb_strtoupper($item[0]);
  40. $item = array_map(fn($v) => trim($v), $item);
  41. file_put_contents($tmpfile . '.svg', str_replace(['11111111', '22222222'], $item, $template));
  42. Process::fromShellCommandline('inkscape --export-filename=' . $tmpfile . '.pdf --export-overwrite --export-type=pdf --export-area-page --export-width=344 --export-height=200 --export-background=ffffff --export-background-opacity=255 ' . $tmpfile . '.svg')->run();
  43. Process::fromShellCommandline('convert -units PixelsPerCentimeter -density 203.2 ' . $tmpfile . '.pdf -interpolate integer -background white -monochrome ' . $tmpfile . '.png')->run();
  44. unlink($tmpfile . '.svg');
  45. unlink($tmpfile . '.pdf');
  46. }