Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
Abrir pdf en nueva ventana de electrones

Tengo una aplicación angular que tiene algunos botones para descargar datos PDF a la PC. Convertí la aplicación web en una aplicación de escritorio con electron. Pero la funcionalidad para abrir documentos en pestañas nuevas ( window.open(url, "_blank"); ) no funciona con electron.

Probé con mainWindow.webContents.setWindowOpenHandler(...) pero esto solo abrirá una ventana en blanco y un diálogo con dónde guardar el archivo...

Lo más cerca que llegué a mostrar una nueva ventana con electron con PDF dentro es usar el siguiente código:

 mainWindow.webContents.session.on('will-download', (event, item, webContents) => { my_url = app.getPath("temp") + "/" + item.getFilename(); log.info(`item: ${item.getFilename()}\tURL: ${my_url}`); item.setSavePath(my_url); item.once('done', (event, state) => { let subWindow = new BrowserWindow({ title: item.getFilename(), x: width - mWidth - 3, y: height - mHeight - 3, width: mWidth, height: mHeight, minWidth: mWidth, minHeight: mHeight, useContentSize: false, icon: __dirname + '/src/logo.ico', minimizable: false, maximizable: true, fullscreen: false, frame: true, resizable: true, movable: true, alwaysOnTop: false, webPreferences: { nodeIntegration: true, zoomFactor: 1.0 } }); subWindow.removeMenu(null); subWindow.loadURL(my_url); }); });

Básicamente, esto guarda el documento en la carpeta temporal del usuario y luego lo muestra dentro de una ventana, pero por eso crea 2 ventanas, 1 vacía y 1 con el archivo descargado.

Mi pregunta es, ¿cómo podría abrir mi documento dentro de una nueva ventana?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Después de un tiempo, encontré una solución que funciona bien por ahora:

 mainWindow.webContents.session.on('will-download', (event, item, webContents) => { my_url = app.getPath("temp") + "/" + item.getFilename(); log.info(`item: ${item.getFilename()}\tURL: ${my_url}`); item.setSavePath(my_url); item.once('done', (event, state) => { let w = BrowserWindow.getAllWindows().reduce((max, current) => max.id > current.id = max : current); w.loadUrl(my_url); }); });

Básicamente, la ventana principal obtiene el valor de ID 1 y todas las demás ventanas creadas serán n+1. Así que con esto pondré los datos del PDF en la última ventana creada.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda