YouPrint - Diseñador

Youprint Designer

Creá tu diseño personalizado en 3 simples pasos

Paso 1: Elegí el formato de tu impresión

Horizontal

Cuadrado

Vertical

`); newWindow.document.close(); if (loading) loading.style.display = 'none'; showStatus('¡Imagen lista! Mantén presionada la imagen para guardarla', 'success', 5000); } else { const link = document.createElement('a'); link.href = dataURL; link.download = fileName; document.body.appendChild(link); link.click(); document.body.removeChild(link); if (loading) loading.style.display = 'none'; showStatus('Imagen descargada. Revisa tu carpeta de Descargas', 'success', 5000); } } else { finalCanvas.toBlob(function(blob) { if (!blob) { throw new Error('No se pudo generar la imagen'); } const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `youprint_${selectedFormat}_${Date.now()}.png`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); if (loading) loading.style.display = 'none'; showStatus('¡Imagen descargada correctamente!', 'success'); }, 'image/png', 1.0); } } catch (error) { console.error('Error al generar la descarga:', error); showStatus('Error al generar la descarga', 'error'); if (loading) loading.style.display = 'none'; } }, 100); } catch (error) { console.error('Error en downloadDesign:', error); showStatus('Error al iniciar la descarga', 'error'); } } function shareWhatsApp() { try { if (!canvas || !ctx || !canvasObjects || canvasObjects.length === 0) { showStatus('No hay diseño para compartir', 'error'); return; } const loading = document.getElementById('loadingIndicator'); if (loading) loading.style.display = 'block'; showStatus('Preparando imagen para WhatsApp...', 'info'); setTimeout(() => { try { const format = formats[selectedFormat]; if (!format) { throw new Error('Formato no válido'); } const finalCanvas = document.createElement('canvas'); const finalCtx = finalCanvas.getContext('2d'); if (!finalCtx) { throw new Error('No se pudo crear contexto de canvas temporal'); } const maxSize = 1800; const aspectRatio = format.ratio; let finalWidth, finalHeight; if (aspectRatio > 1) { finalWidth = maxSize; finalHeight = Math.round(maxSize / aspectRatio); } else if (aspectRatio === 1) { finalWidth = maxSize; finalHeight = maxSize; } else { finalHeight = maxSize; finalWidth = Math.round(maxSize * aspectRatio); } finalCanvas.width = finalWidth; finalCanvas.height = finalHeight; const scaleX = finalWidth / canvas.width; const scaleY = finalHeight / canvas.height; finalCtx.fillStyle = '#ffffff'; finalCtx.fillRect(0, 0, finalWidth, finalHeight); canvasObjects.forEach((obj, index) => { try { if (obj.type === 'image' && obj.image) { finalCtx.drawImage( obj.image, Math.round(obj.x * scaleX), Math.round(obj.y * scaleY), Math.round(obj.width * scaleX), Math.round(obj.height * scaleY) ); } else if (obj.type === 'text' && obj.text) { const lines = obj.lines || [obj.text]; const lineHeight = Math.round(obj.size * scaleY * 1.3); finalCtx.font = `${Math.round(obj.size * scaleY)}px ${obj.font || 'Arial'}`; finalCtx.fillStyle = obj.color || '#000000'; finalCtx.textAlign = 'center'; finalCtx.textBaseline = 'top'; lines.forEach((line, lineIndex) => { if (line && typeof line === 'string') { const yPosition = Math.round(obj.y * scaleY) + (lineIndex * lineHeight); finalCtx.fillText(line, Math.round(obj.x * scaleX), yPosition); } }); } } catch (objError) { console.error(`Error renderizando objeto ${index} para WhatsApp:`, objError); } }); const dataURL = finalCanvas.toDataURL('image/png', 0.9); const fileName = `youprint_whatsapp_${Date.now()}.png`; if (isMobileDevice()) { const newWindow = window.open('', '_blank'); if (newWindow) { newWindow.document.write(` Tu Diseño para WhatsApp - YouPrint

🎉 ¡Tu diseño está listo para WhatsApp!

Tu diseño YouPrint para WhatsApp

📱 CÓMO GUARDAR EN TU GALERÍA:

📱 Android:
1. Mantén presionada la imagen de arriba
2. Toca "Guardar imagen" o "Descargar imagen"
3. ✅ Se guarda AUTOMÁTICAMENTE en tu GALERÍA
🍎 iPhone/iPad:
1. Mantén presionada la imagen de arriba
2. Toca "Guardar en Fotos" o "Añadir a Fotos"
3. ✅ Aparece DIRECTAMENTE en tu app FOTOS
⚠️ IMPORTANTE:
NO uses el botón de descarga de abajo
Solo guarda en "Descargas" (difícil de encontrar)
DESPUÉS DE GUARDAR:
1. Abre WhatsApp
2. Toca el clip 📎 → "Galería" o "Fotos"
3. Busca tu imagen (será la más reciente)
4. ¡Envía tu diseño! 🚀

✅ MÉTODO RECOMENDADO:

Mantén presionada la imagen de arriba ☝️

Esto la guarda directamente en tu galería/fotos
📥 Descarga alternativa (solo si falla lo anterior)
📥 Descargar a carpeta Descargas

⚠️ Nota: Esto guarda en "Descargas", no en la galería.
Tendrás que mover la imagen manualmente.



📱 Abrir WhatsApp
`); newWindow.document.close(); if (loading) loading.style.display = 'none'; showStatus('¡Imagen lista para WhatsApp!', 'success', 5000); } else { const link = document.createElement('a'); link.href = dataURL; link.download = fileName; document.body.appendChild(link); link.click(); document.body.removeChild(link); if (loading) loading.style.display = 'none'; showStatus('Imagen guardada. Abriendo WhatsApp...', 'success'); setTimeout(() => { window.open('https://wa.me/59899252525?text=¡Hola!%20Quiero%20imprimir%20mi%20diseño%20personalizado', '_blank'); }, 2000); } } else { finalCanvas.toBlob(function(blob) { try { if (!blob) { throw new Error('No se pudo generar imagen para WhatsApp'); } const imageUrl = URL.createObjectURL(blob); const downloadLink = document.createElement('a'); downloadLink.href = imageUrl; downloadLink.download = fileName; downloadLink.style.display = 'none'; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); if (loading) loading.style.display = 'none'; showStatus('Imagen guardada. Abriendo WhatsApp...', 'success'); setTimeout(() => { window.open('https://wa.me/59899252525?text=¡Hola!%20Quiero%20imprimir%20mi%20diseño%20personalizado', '_blank'); URL.revokeObjectURL(imageUrl); }, 1500); } catch (blobError) { console.error('Error procesando imagen para WhatsApp:', blobError); if (loading) loading.style.display = 'none'; showStatus('Error al preparar imagen para WhatsApp', 'error'); } }, 'image/png', 0.9); } } catch (error) { console.error('Error generando imagen para WhatsApp:', error); if (loading) loading.style.display = 'none'; showStatus('Error al preparar imagen para WhatsApp', 'error'); } }, 100); } catch (error) { console.error('Error en shareWhatsApp:', error); const loading = document.getElementById('loadingIndicator'); if (loading) loading.style.display = 'none'; showStatus('Error al compartir por WhatsApp', 'error'); } }
Scroll al inicio
×