View

React 환경에서 화면을 만들고 html2canvas, jsPDF 모듈로 이미지를 PDF 파일로 만드는 작업을 했다.

이전에도 많이 했던 작업이었는데, 처음으로 격은 난관이라 기록하려고 한다.

 

html2canvas로 canvas 객체를 만들어 이미지를 만든 후 화면에 뿌려 확인해보니 Material-UI로 만든 체크박스가 안보였다.

계속 구글링해서 찾아보니 SVG의 문제였다. Canvas을 만들면서 svg을 처리하지 못하는 모양이다.

 

그래서 html2canvas 옵션을 확인해 적용해봤지만 영향을 주지 않았다.

방법은 Material-UI Checkbox props 명세를 보면 icon, checedIcon이 있다.

이  두개의 props에 이미지 컴포넌트를 넘겨서 해결했다.

 

직접적인 해결 방법이 아닌것 같아 찝찝하긴 했지만 결과적으로 차이는 없는 것 같다.

const CheckedImg = require('../../assets/image/icon/checked.png')
const UnCheckedImg = require('../../assets/image/icon/unchecked.png')

const CheckedBox = () => {
  return <img src={CheckedImg} />
}

const UnCheckedBox = () => {
  return <img src={UnCheckedImg} />
}

const PDFCheckBox = withStyles(theme => ({
  root: {
    '& img': {
      width: 18,
      height: 18
    }
  }
}))(props => {
  return <Checkbox icon={<UnCheckedBox/>} checkedIcon={<CheckedBox/>} {...props}/>
})

'develop > react' 카테고리의 다른 글

CRA에 Redis와 Socket.io 적용하기  (0) 2021.03.13
Typescript, NextJS 스터디  (0) 2021.01.29
#5 Apollo 환경에 Prisma 끼얹기  (0) 2020.11.10
#4 NextJS, 드디어 Apollo 적용하기  (0) 2020.09.28
#3 NextJS에 PostgreSQL 연동하기  (0) 2020.09.25
Share Link
reply
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31