svgToPng.ts 1.1 KB

1234567891011121314151617181920212223242526272829
  1. // 将svg转成png
  2. export const getSvgPngToSize = (osmd: any) => {
  3. if (osmd) {
  4. if (osmd.Drawer.Backends.length > 0) {
  5. var imgList = []
  6. for (var idx = 0, len = osmd.Drawer.Backends.length; idx < len; idx++) {
  7. var backend = osmd.Drawer.Backends[idx]
  8. var state = backend.ctx.state;
  9. var width = backend.ctx.width / state.scale.x;
  10. var height = backend.ctx.height / state.scale.y;
  11. const textX = width - 90,textY = height - 90;
  12. const textDom = `<g><text x="${textX}" y="${textY}" stroke-width="3" fill="#000000" stroke="none" stroke-dasharray="none" font-family="Times New Roman" font-size="36px" font-weight="bold" font-style="none">${idx+1}/${len}</text></g>`
  13. backend.ctx.svg.innerHTML = backend.ctx.svg.innerHTML + textDom;
  14. var cont = new XMLSerializer().serializeToString(
  15. backend.ctx.svg
  16. )
  17. imgList.push({
  18. img: cont,
  19. width: width,
  20. height: height,
  21. })
  22. }
  23. return imgList
  24. }
  25. } else {
  26. console.log('没有OSMD')
  27. }
  28. }