diff --git a/src/components/md-deck/PrintPreview.tsx b/src/components/md-deck/PrintPreview.tsx index a170bae..2bace3c 100644 --- a/src/components/md-deck/PrintPreview.tsx +++ b/src/components/md-deck/PrintPreview.tsx @@ -179,6 +179,56 @@ export function PrintPreview(props: PrintPreviewProps) { const visibleLayers = createMemo(() => store.state.layerConfigs.filter((l) => l.visible)); + // 渲染单个卡片的 SVG 内容(使用 foreignObject) + const renderCardInSvg = (card: { data: typeof store.state.cards[0]; x: number; y: number }, pageIndex: number) => { + const cardWidth = store.state.dimensions?.cardWidth || 56; + const cardHeight = store.state.dimensions?.cardHeight || 88; + const gridOriginX = store.state.dimensions?.gridOriginX || 0; + const gridOriginY = store.state.dimensions?.gridOriginY || 0; + const gridAreaWidth = store.state.dimensions?.gridAreaWidth || cardWidth; + const gridAreaHeight = store.state.dimensions?.gridAreaHeight || cardHeight; + const fontSize = store.state.dimensions?.fontSize || 3; + + return ( + + +
+ {/* 网格区域容器 */} +
+ {/* 渲染每个 layer */} + + {(layer) => ( +
+ )} + +
+
+ + + ); + }; + return (
{/* 打印样式:根据方向设置 @page 规则 */} @@ -268,125 +318,87 @@ export function PrintPreview(props: PrintPreviewProps) {
- {/* A4 纸张预览 */} + {/* A4 纸张预览:每页都是一个完整的 SVG */}