Tutorial: Controllare l'accesso alla stampa con Doconut
21/08/2026

Tutorial: Controllare l'accesso alla stampa con Doconut

Pianifica l'accesso alla stampa di Doconut con risorse ufficiali del prodotto, permessi gestiti dall'applicazione, operazioni protette, UX chiara e test pratici.

L'ufficiale catalogo delle funzionalità di Doconut elenca la stampa dal browser e l'esportazione PDF come capacità del visualizzatore. Controllare l'accesso a queste funzionalità richiede comunque due decisioni separate: se Doconut mostra l'azione pertinente e se l'applicazione host autorizza quell'operazione per l'utente e il documento correnti.

Un percorso di stampa del documento che termina a un cancello di autorizzazione controllato
Un percorso di stampa del documento che termina a un cancello di autorizzazione controllato

Per conoscere i controlli esatti supportati dalla tua build installata, inizia con la documentazione di Doconut e i campioni confezionati disponibili sulla ufficiale pagina di download di Doconut. Non copiare chiavi di configurazione o codice sorgente da una versione non correlata o da un articolo non verificato.


1. Definisci prima la politica di stampa

Annota chi può stampare e in quali condizioni prima di modificare la barra degli strumenti. Una politica utile risponde a domande come:

  • La stampa è consentita per tutti i visualizzatori, solo per ruoli specifici o per documenti particolari?
  • La decisione dipende da tenant, stato del caso, classificazione del documento o scadenza?
  • È necessario un watermark sull'output stampabile?
  • Gli eventi di stampa devono essere auditati?
  • Un utente può stampare una revisione più vecchia del documento?
  • Cosa succede quando i permessi cambiano mentre l'anteprima è aperta?

Evita un singolo Boolean globale quando la regola reale è contestuale. Modella la stampa come una propria operazione così da poterla autorizzare indipendentemente dalla visualizzazione e dal download.

2. Separa lo stato UI dall'autorizzazione

La pagina host può decidere se mostrare un controllo di stampa dopo aver ricevuto il risultato di un permesso gestito dall'applicazione. Questo migliora la chiarezza per gli utenti a cui la stampa non è consentita.

Tuttavia, nascondere un controllo non costituisce un confine di autorizzazione. Un utente può ancora chiamare direttamente un endpoint noto, ripetere una richiesta precedente o invocare la stampa del browser sul contenuto visibile. Ogni rotta server che produce output stampabile deve applicare la stessa politica.

Usa stati distinti nell'interfaccia:

StatoComportamento del visualizzatoreComportamento del server
Stampa consentitaMostra l'azione di stampa supportataAutorizza e genera l'output richiesto
Stampa negataNascondi o disabilita l'azione con una spiegazione chiaraRestituisci una risposta forbidden
Politica sconosciutaMantieni l'azione non disponibile finché il permesso è in caricamentoNon generare output
Sessione scadutaChiedi all'utente di ri-autenticarsiRifiuta la richiesta obsoleta

3. Proteggi l'endpoint di stampa

Proteggi l'operazione dell'applicazione che invoca la stampa o restituisce l'output stampabile. La decisione di autorizzazione dovrebbe tenere conto dell'appartenenza al tenant, della proprietà, della classificazione, dello stato del flusso di lavoro e della revisione del documento. Risolvi il documento sul server invece di accettare un percorso o un URL di storage fornito dal client.

Se la tua applicazione stampa tramite una rotta specifica del visualizzatore anziché creare un PDF, applica la stessa autorizzazione prima di invocare quella rotta.

4. Configura la versione del visualizzatore installata

Una volta definita la regola server, configura l'interfaccia Doconut usando l'opzione esatta documentata per il pacchetto e i file di esempio forniti con la tua versione. Le demo live di Doconut ti permettono di osservare il comportamento supportato del visualizzatore prima di impegnarti in un'integrazione specifica. Verifica:

  1. Dove è impostata l'opzione: configurazione server, view model o inizializzazione client.
  2. Se nasconde un elemento della barra degli strumenti, disabilita un'azione o influisce sull'output generato.
  3. Se il valore si applica per istanza del visualizzatore o globalmente.
  4. Se stampa ed esportazione sono operazioni separate.
  5. Se un aggiornamento ha cambiato il nome dell'opzione o il valore predefinito.

Considera il campione ufficiale come fonte di verità. Un nome di proprietà apparentemente plausibile non è prova sufficiente che il visualizzatore installato lo riconosca.

5. Gestire onestamente la stampa del browser

Una impostazione del visualizzatore non può garantire che le informazioni visibili non vengano mai stampate o catturate. Il browser può stampare la pagina host e gli utenti possono fare screenshot o fotografie. L'intercettazione della tastiera e i CSS specifici per la stampa possono migliorare l'esperienza prevista, ma sono misure lato client aggirabili.

Se la pagina host non dovrebbe produrre una copia cartacea utile, la tua applicazione può utilizzare una presentazione specifica per la stampa per sostituire l'anteprima con un messaggio esplicativo. Mantieni quel comportamento della pagina host separato dai controlli del visualizzatore documentati da Doconut.

Non descrivere questo come protezione del documento. Usa il rendering lato server, l'autorizzazione, esportazioni controllate e filigrane visibili quando la tua valutazione del rischio richiede una deterrenza più forte.

6. Tenere separati Download, Export e Stampa

Utenti e sviluppatori spesso trattano questi come un unico interruttore “sola lettura”, ma rappresentano flussi di dati diversi:

  • View visualizza il contenuto renderizzato.
  • Download restituisce la sorgente o un altro file memorizzato.
  • Export crea un formato derivato.
  • Print produce una rappresentazione stampabile o invoca la stampa del browser.

Autorizza esplicitamente ogni operazione. Un utente che non può stampare può comunque essere autorizzato a scaricare, o viceversa. La tua barra degli strumenti dovrebbe riflettere le decisioni del server piuttosto che definirle.

7. Aggiungere eventi di audit utili

Se la stampa è sensibile, registra la decisione senza loggare il documento stesso. Un evento può includere l'utente, il tenant, l'identificatore del documento, la revisione, l'esito della politica, il timestamp e l'ID di correlazione.

Registra sia i tentativi riusciti che quelli negati. Se il servizio di stampa crea un file temporaneo, registra anche se la sua pulizia è stata completata. Mantieni percorsi dei file, token, titoli dei documenti contenenti dati personali e contenuti stampabili fuori dai log di routine.

8. Testare oltre il pulsante mancante

La barra degli strumenti è solo la prima asserzione. Aggiungi test per l'intera operazione:

Utente autorizzato

  • L'azione di stampa prevista è visibile.
  • La richiesta di stampa ha successo per un documento consentito.
  • Viene utilizzata la revisione corretta.
  • I marcatori richiesti appaiono sull'output generato.
  • L'evento di audit registra il successo.

Utente non autorizzato

  • L'azione è assente o disabilitata.
  • Una richiesta diretta al percorso di stampa restituisce una risposta proibita.
  • Modificare l'ID del documento non aggira la regola.
  • Un URL copiato da una sessione autorizzata non può essere riutilizzato in modo improprio.
  • Il rifiuto non rivela se un altro tenant possiede il documento.

Modifiche di stato

  • Il permesso revocato durante una sessione è applicato alla successiva richiesta di stampa.
  • Una sessione scaduta non può stampare.
  • Un documento eliminato o sostituito produce un errore controllato.
  • L'output di stampa temporaneo segue la regola di conservazione configurata.

L'automazione del browser può verificare lo stato visibile e il codice di risposta. I test di integrazione dovrebbero verificare l'applicazione della politica e l'autorizzazione a livello di documento in modo indipendente.

Domande comuni

Nascondere il pulsante di stampa impedisce la scorciatoia di stampa del browser?
No. Rimuove un'azione prevista del visualizzatore solo se il visualizzatore installato implementa tale comportamento. La stampa del browser e la cattura dello schermo richiedono considerazioni separate e non possono essere completamente prevenute dal codice lato client.

Il permesso di stampa dovrebbe essere incluso nell'URL di visualizzazione?
Preferisci una decisione di autorizzazione lato server legata all'utente autenticato, al documento e all'operazione. Se un riferimento temporaneo trasporta permessi, limitane la portata, proteggilo da log e referrer, e rivaluta le azioni sensibili.

Disabilitare la stampa è sufficiente per i documenti riservati?
No. È un controllo di usabilità o deterrenza. I flussi di lavoro riservati richiedono anche protezione dello storage, autorizzazione a livello di oggetto, esportazioni controllate, regole di conservazione, monitoraggio e un modello di rischio residuo accettato.

Conclusione

Un'implementazione affidabile del controllo di stampa di Doconut inizia dal server e termina nell'interfaccia. Definisci la politica, proteggi l'operazione, configura solo l'opzione documentata per il visualizzatore installato, spiega il risultato agli utenti e testa le richieste dirette così come la visibilità della barra degli strumenti. Usa la pagina delle funzionalità ufficiale, la documentazione, i download e le demo come fonti di implementazione invece di ricreare il codice del prodotto nell'articolo.