htmlToPdf.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import domtoimage from 'dom-to-image';
  2. import JsPDF from 'jspdf';
  3. import './simfang-normal';
  4. /**
  5. * @param ele
  6. * @param pdfName
  7. * */
  8. function createPDF(ele, pdfName, other) {
  9. // 生成base64图片码
  10. domtoimage
  11. .toPng(ele, {})
  12. .then(function (dataUrl) {
  13. console.log('生成成功');
  14. getPDF(ele, dataUrl, pdfName, other);
  15. })
  16. .catch(function (error) {
  17. console.error('生成失败', error);
  18. });
  19. }
  20. function getPDF(ele, url, name, other) {
  21. // a4纸大小
  22. var imgWidth = 595;
  23. var imgHeight = 842;
  24. var pdf = new JsPDF('', 'pt', 'a4');
  25. // 添加字体
  26. pdf.setFont('simfang');
  27. // 水印
  28. if (other && other.is_water == true) {
  29. const pageHeight = pdf.getPageHeight();
  30. pdf.saveGraphicsState();
  31. pdf.setGState(pdf.GState({ opacity: 0.5 }));
  32. pdf.setFontSize(18);
  33. pdf.text(other.water, 100, pageHeight / 2, 42);
  34. pdf.text(other.water, 110, pageHeight / 1.5, 42);
  35. pdf.restoreGraphicsState();
  36. }
  37. pdf.addImage(url, 'JPEG', 0, 0, imgWidth, imgHeight);
  38. pdf.save(name);
  39. }
  40. export default {
  41. createPDF,
  42. };