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

Per conoscere i controlli esatti supportati dalla tua versione installata, inizia con la documentazione di Doconut e i campioni forniti disponibili nella pagina ufficiale 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 determinati ruoli o per documenti specifici?
- La decisione dipende dal tenant, dallo stato del caso, dalla classificazione del documento o dalla scadenza?
- È necessario un watermark sull'output stampabile?
- Gli eventi di stampa dovrebbero essere registrati?
- Un utente può stampare una revisione più vecchia del documento?
- Cosa dovrebbe accadere quando i permessi cambiano mentre l'anteprima è aperta?
Evita un unico Boolean globale quando la regola reale è contestuale. Modella la stampa come un'operazione a sé stante in modo che possa essere autorizzata indipendentemente dalla visualizzazione e dal download.
2. Separare lo stato UI dall'autorizzazione
La pagina host può decidere se mostrare un controllo di stampa dopo aver ricevuto un risultato di permesso gestito dall'applicazione. Questo migliora la chiarezza per gli utenti che non possono stampare.
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 del server che produce output stampabile deve applicare la stessa politica.
Utilizza stati distinti nell'interfaccia UI:
| Stato | Comportamento del visualizzatore | Comportamento del server |
|---|---|---|
| Stampa consentita | Mostra l'azione di stampa supportata | Autorizza e crea l'output richiesto |
| Stampa negata | Nascondi o disabilita l'azione con una spiegazione chiara | Restituisci una risposta forbiddente |
| Politica sconosciuta | Mantieni l'azione non disponibile mentre il permesso viene caricato | Non creare output |
| Sessione scaduta | Chiedi all'utente di ri-autenticarsi | Rifiuta la richiesta obsoleta |
3. Proteggere l'endpoint di stampa
Proteggi l'operazione dell'applicazione che invoca la stampa o restituisce 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 archiviazione fornito dal client.
Se la tua applicazione stampa tramite una rotta specifica del visualizzatore invece di creare un PDF, applica la stessa autorizzazione prima di invocare quella rotta.
4. Configurare la versione del visualizzatore installata
Una volta che la regola del server esiste, 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 del visualizzatore supportato prima di impegnarti in una particolare integrazione. Verifica:
- Dove è impostata l'opzione: configurazione del server, modello di visualizzazione o inizializzazione del client.
- Se nasconde un elemento della barra degli strumenti, disabilita un'azione o influisce sull'output generato.
- Se il valore si applica per istanza del visualizzatore o globalmente.
- Se stampa ed esportazione sono operazioni separate.
- Se un aggiornamento ha modificato il nome o il valore predefinito dell'opzione.
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 watermark visibili quando la tua valutazione del rischio richiede una deterrenza più forte.
6. Mantenere separati Download, Esportazione e Stampa
Utenti e sviluppatori spesso trattano questi come un unico interruttore “sola lettura”, ma rappresentano flussi di dati differenti:
- Visualizza mostra il contenuto renderizzato.
- Download restituisce la sorgente o un altro file memorizzato.
- Esporta crea un formato derivato.
- Stampa 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 di file, token, titoli di 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 marchi richiesti compaiono sull'output generato.
- L'evento di audit registra il successo.
Utente non autorizzato
- L'azione è assente o disabilitata.
- Una richiesta diretta alla rotta di stampa restituisce una risposta forbiddente.
- 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.
Cambiamenti 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 indipendentemente la valutazione della politica e l'autorizzazione a livello di documento.
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 impedite 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 referer, e rivaluta le azioni sensibili.
Disabilitare la stampa è sufficiente per documenti riservati?
No. È un controllo di usabilità o deterrenza. I flussi di lavoro riservati richiedono anche protezione dell'archiviazione, autorizzazione a livello di oggetto, esportazioni controllate, regole di conservazione, monitoraggio e un modello di rischio residuo accettato.
Conclusione
Una implementazione affidabile del controllo di stampa Doconut parte 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 ufficiale delle funzionalità, la documentazione, i download e le demo come fonti di implementazione anziché ricreare il codice del prodotto nell'articolo.