Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

441
Visualizações
¿Cómo imprimir solo un componente vue específico?

Estoy haciendo un diploma que debe ser descargable.

Así que hice un componente vue específico (diploma en sí) que está en el dom pero oculto con v-show (display: none).

Ahora solo necesito que se imprima ese componente específico (o se guarde como pdf) y no una página completa. Por lo tanto, no puedo iniciar window.print(), pero de alguna manera necesito aislar un componente específico, así que pensé que podría usar el iframe oculto y cargar el componente allí e iniciar la impresión en iframe.contentWindow.print() .

Un problema es que no veo cómo puedo cargar el componente en un iframe.

Una forma sería usar algo como

 iframe.srcdoc = downloadRef.value.$el.innerHTML;

pero no tengo estilo de esta manera.

También probé algo en la línea de

 iframe.srcdoc = ` ${css} ${downloadRef.value.$el.innerHTML}`;

donde css es una cadena de etiquetas de estilo con estilos, pero nuevamente no todos los estilos son aplicables.

¿Hay alguna otra forma de cargar el componente vue en iframe y representarlo como tal (con vue naturalmente), o hay alguna otra forma de hacer que cierto componente se pueda imprimir con todos los estilos necesarios aplicados, sin usar iframe en absoluto?

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que hay una manera más fácil de lograr lo que necesita sin usar iframe.

¿Qué pasaría si pudiera aplicar cierto estilo css para ese componente, lo que haría que ocupara toda la página y cubriera todo el resto del contenido?

 <style> .overlay { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1000; } </style>
  • El crédito es para ¿Cómo hacer un div a pantalla completa y encima de todos los demás elementos con jQuery?

Entonces podrá agregar una clase condicional en su componente especial:

 <special-component :class="{'overlay': isPrintModeEnabled}"> ...

Entonces, todo lo que queda es habilitar la propiedad isPrintModeEnabled según sus requisitos.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda