我有一个任务,需要在点击画布(PDF)的区域上放置矩形。我正在使用React,在使用react-pdf模块上传pdf文件后,该文件被转换为canvas元素。我想要在多次点击后删除先前绘制的矩形,以便矩形会更改位置,而不会在屏幕上重复出现。到目前为止,我尝试过以下方法:
After I choose pdf file that file is being translated into canvas and viewed on page using react-pdf module that I mentioned earlier
<Document className={classes.pdf_document} file={file} onLoadSuccess={handleOnPdfLoad} > <Page onClick={drawRectangle} width={400} pageNumber={currentPage}> </Page> </Document>
drawRectangle function is drawing red rectangle on clicked area
const setCoordinatesOnClick = (e) => { const rect = e.target.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const marker = e.target.getContext("2d"); const drawRect = () => { marker.beginPath(); marker.lineWidth = "3"; marker.strokeStyle = "red"; marker.strokeRect(x, y, 70, 50); marker.stroke(); } if (!rectDrawn) { drawRect(); setRectDrawn(true); } else { marker.clearRect(0, 0, e.target.width, e.target.height); drawRect(); } }
I also have rectDrawn that is true or false
const [rectDrawn, setRectDrawn] = React.useState(false);
When marker.clearRect happens red rectangle reappears on newly clicked area but I loose all other pdf data on that canvas ( text and everything else ) it just becomes blank.