diff --git a/src/components/exam/ExamSignPanel.tsx b/src/components/exam/ExamSignPanel.tsx index ba70c18..9bd9c97 100644 --- a/src/components/exam/ExamSignPanel.tsx +++ b/src/components/exam/ExamSignPanel.tsx @@ -445,7 +445,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { // 清空容器 canvasContainerRef.current.innerHTML = ''; - const scale = 3.0; + const scale = 3; for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) { const page = await pdf.getPage(pageNum); @@ -460,6 +460,8 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { canvas.width = viewport.width; canvas.style.display = 'block'; canvas.style.marginBottom = '10px'; + canvas.style.maxWidth = '100%'; + canvas.style.height = 'auto'; canvas.className = 'mx-auto border rounded-lg shadow-sm'; canvasContainerRef.current.appendChild(canvas); @@ -552,6 +554,8 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { canvas.width = viewport.width; canvas.style.display = 'block'; canvas.style.marginBottom = '10px'; + canvas.style.maxWidth = '100%'; + canvas.style.height = 'auto'; canvas.className = 'mx-auto border rounded-lg shadow-sm'; daojiandanCanvasContainerRef.current.appendChild(canvas); @@ -644,6 +648,8 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { canvas.width = viewport.width; canvas.style.display = 'block'; canvas.style.marginBottom = '10px'; + canvas.style.maxWidth = '100%'; + canvas.style.height = 'auto'; canvas.className = 'mx-auto border rounded-lg shadow-sm'; addItemBillCanvasContainerRef.current.appendChild(canvas); @@ -700,6 +706,8 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { canvas.width = viewport.width; canvas.style.display = 'block'; canvas.style.marginBottom = '10px'; + canvas.style.maxWidth = '100%'; + canvas.style.height = 'auto'; canvas.className = 'mx-auto border rounded-lg shadow-sm'; container.appendChild(canvas); @@ -762,6 +770,8 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { canvas.width = viewport.width; canvas.style.display = 'block'; canvas.style.marginBottom = '10px'; + canvas.style.maxWidth = '100%'; + canvas.style.height = 'auto'; canvas.className = 'mx-auto border rounded-lg shadow-sm'; container.appendChild(canvas); @@ -791,7 +801,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { }, [showAddItemBillPreview, addItemBillUrl]); const handlePrint = () => { - if (!pdfBlobUrl || !pdfReady || !canvasContainerRef.current) return; + if (!pdfBlobUrl || !pdfReady || !canvasContainerRef.current || !previewPdf) return; // 创建打印窗口 const printWindow = window.open('', '_blank'); @@ -805,13 +815,16 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { - 知情同意书打印 + ${previewPdf.pdf_name || '知情同意书打印'} +
+ + +
`); // 将每个 canvas 转换为图片并添加到打印窗口 @@ -869,7 +917,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { // 渲染PDF到临时canvas const pdf = await pdfjsLib.getDocument({ data: arrayBuffer }).promise; - const scale = 3.0; + const scale = 1.0; const canvasImages: string[] = []; for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {