PrintPruna (2026)
Extensió per a Chrome i Firefox que permet marcar blocs HTML d'una pàgina per netejar-la abans d'imprimir-la a PDF.

PrintPruna (2026)
Extensió per a Chrome i Firefox que permet marcar blocs HTML de la pàgina actual per netejar-la abans d'imprimir-la a PDF. Sense servidor, sense dades que surtin del navegador: tot passa dins la mateixa pestanya.
Què fa?
En fer clic a la icona de l'extensió s'obre un petit menú amb tres opcions:
- Selecciona: marca el bloc que vulguis conservar; la resta de la pàgina s'amaga. El bloc seleccionat es reajusta (~90% d'ample, centrat) perquè no perdi llegibilitat si depenia d'un layout flex/grid amb els germans ara amagats.
- Elimina: marca un bloc concret i el fa desaparèixer, mantenint la resta de la pàgina intacta. Es pot fer servir diverses vegades seguides per eliminar més d'un bloc.
- Imprimeix: obre el diàleg d'impressió del navegador directament (
window.print()), sense passar pel teclat. Útil en pàgines que bloquegenCtrl+P/Cmd+Pamb JavaScript.
En els modes "Selecciona" i "Elimina", el cursor canvia a una creueta i els elements es ressalten en passar-hi el ratolí (blau per "Selecciona", vermell per "Elimina"). Fes clic sobre l'element desitjat per aplicar l'acció, o prem Esc en qualsevol moment per sortir del mode de marcatge sense fer cap canvi. Per tornar a l'estat original de la pàgina, n'hi ha prou amb recarregar-la (F5).
Bypass del bloqueig de Ctrl+P
Algunes pàgines bloquegen la drecera d'impressió amb JavaScript per evitar que l'usuari imprimeixi o desi el contingut en PDF. Quan s'activa qualsevol opció del menú, PrintPruna instal·la un listener de keydown a nivell de window en fase de captura, que s'avança als listeners que la pàgina hagi enganxat a document. Com que la fase de captura recorre window → document → ..., el listener de l'extensió s'executa sempre primer i atura la propagació sense cridar preventDefault(), deixant que el navegador faci la seva acció per defecte.
És una mitigació "best effort": si la pàgina enganxa el seu listener directament a window abans que s'injecti l'extensió, aquest mètode no el pot superar. Per a aquests casos hi ha l'opció "Imprimeix" del menú, que crida window.print() des de l'"isolated world" de l'extensió i no es veu afectada encara que la pàgina hagi sobreescrit window.print.
Arquitectura
Manifest V3 compartit entre Chrome i Firefox, amb només dos permisos (activeTab, scripting):
manifest.json Manifest V3, compartit entre Chrome i Firefox
src/popup.html Menú de la icona amb les opcions "Selecciona", "Elimina" i "Imprimeix"
src/popup.js Injecta el content script (si cal) i envia el mode triat
src/content.js Lògica de hover, selecció/eliminació de blocs
src/content.css Estils del ressaltat en hover i el cursor de marcatge
Instal·lació en mode desenvolupador
Chrome / Edge / Brave: obre chrome://extensions, activa "Mode desenvolupador" i clica "Carrega l'extensió sense empaquetar", seleccionant la carpeta del projecte.
Firefox: obre about:debugging#/runtime/this-firefox i clica "Carrega el complement temporal", seleccionant el fitxer manifest.json. La càrrega és temporal i es perd en tancar el navegador; per una instal·lació permanent caldria signar l'extensió via addons.mozilla.org.
Stack tecnològic
- Manifest V3
- Chrome Extensions API (
activeTab,scripting) - JavaScript vanilla, sense dependències
Codi font: github.com/albertsarle/print-pruna
Tecnologies
Assoliments
- Extensió sense dependències, compatible amb Chrome, Edge, Brave i Firefox amb el mateix manifest
- Mode "Elimina" reutilitzable diverses vegades seguides per netejar més d'un bloc
- Bypass del bloqueig de Ctrl+P: window.print() cridat des de l'"isolated world" de l'extensió, no interceptable per la pàgina
- Listener de teclat en fase de captura que s'avança als scripts de la pàgina que intenten bloquejar la drecera d'impressió