Class PdfExportService

java.lang.Object
it.uniupo.simnova.service.export.PdfExportService

@Service public class PdfExportService extends Object
Servizio per l'esportazione di scenari in formato PDF. Questo servizio utilizza la libreria Apache PDFBox per generare documenti PDF contenenti informazioni dettagliate sugli scenari, aggregando dati da vari servizi.
Version:
1.0
Author:
Alessandro Zappatore
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static org.apache.pdfbox.pdmodel.PDPageContentStream
    Lo stream di contenuto corrente utilizzato per disegnare elementi sulla pagina PDF.
    static float
    La posizione corrente sull'asse Y per il disegno del contenuto nella pagina PDF.
    static org.apache.pdfbox.pdmodel.font.PDFont
    Il font PDF utilizzato per il testo in grassetto.
    static org.apache.pdfbox.pdmodel.font.PDFont
    Il font PDF utilizzato per il testo in grassetto e corsivo.
    static org.apache.pdfbox.pdmodel.font.PDFont
    Il font PDF utilizzato per il testo in corsivo.
    static org.apache.pdfbox.pdmodel.font.PDFont
    Il font PDF utilizzato per il testo normale.
  • Constructor Summary

    Constructors
    Constructor
    Description
    PdfExportService(ScenarioService scenarioService, FileStorageService fileStorageService, MaterialeService materialeService, PatientSimulatedScenarioService patientSimulatedScenarioService, AzioneChiaveService azioneChiaveService, PazienteT0Service pazienteT0Service, EsameRefertoService esameRefertoService, EsameFisicoService esameFisicoService, AdvancedScenarioService advancedScenarioService)
    Costruisce una nuova istanza di PdfExportService.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    checkForNewPage(float neededSpace)
    Controlla se è necessario creare una nuova pagina nel documento PDF.
    byte[]
    exportScenarioToPdf(int scenarioId, boolean desc, boolean brief, boolean infoGen, boolean patto, boolean azioni, boolean obiettivi, boolean moula, boolean liqui, boolean matNec, boolean param, boolean acces, boolean fisic, boolean esam, boolean time, boolean scen)
    Esporta uno scenario e i suoi dati correlati in un documento PDF.
    static void
    Inizializza una nuova pagina all'interno del documento PDF.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • currentYPosition

      public static float currentYPosition
      La posizione corrente sull'asse Y per il disegno del contenuto nella pagina PDF. Viene aggiornata dinamicamente durante la generazione del documento.
    • currentContentStream

      public static org.apache.pdfbox.pdmodel.PDPageContentStream currentContentStream
      Lo stream di contenuto corrente utilizzato per disegnare elementi sulla pagina PDF.
    • FONTBOLD

      public static org.apache.pdfbox.pdmodel.font.PDFont FONTBOLD
      Il font PDF utilizzato per il testo in grassetto.
    • FONTBOLDITALIC

      public static org.apache.pdfbox.pdmodel.font.PDFont FONTBOLDITALIC
      Il font PDF utilizzato per il testo in grassetto e corsivo.
    • FONTREGULAR

      public static org.apache.pdfbox.pdmodel.font.PDFont FONTREGULAR
      Il font PDF utilizzato per il testo normale.
    • FONTITALIC

      public static org.apache.pdfbox.pdmodel.font.PDFont FONTITALIC
      Il font PDF utilizzato per il testo in corsivo.
  • Constructor Details

    • PdfExportService

      public PdfExportService(ScenarioService scenarioService, FileStorageService fileStorageService, MaterialeService materialeService, PatientSimulatedScenarioService patientSimulatedScenarioService, AzioneChiaveService azioneChiaveService, PazienteT0Service pazienteT0Service, EsameRefertoService esameRefertoService, EsameFisicoService esameFisicoService, AdvancedScenarioService advancedScenarioService)
      Costruisce una nuova istanza di PdfExportService. Inietta tutte le dipendenze dei servizi necessari per la generazione del PDF.
      Parameters:
      scenarioService - Il servizio per le operazioni sugli scenari.
      fileStorageService - Il servizio per lo storage dei file.
      materialeService - Il servizio per i materiali.
      patientSimulatedScenarioService - Il servizio per gli scenari simulati con paziente.
      azioneChiaveService - Il servizio per le azioni chiave.
      pazienteT0Service - Il servizio per i dati del paziente T0.
      esameRefertoService - Il servizio per gli esami e referti.
      esameFisicoService - Il servizio per l'esame fisico.
      advancedScenarioService - Il servizio per gli scenari avanzati.
  • Method Details

    • initNewPage

      public static void initNewPage() throws IOException
      Inizializza una nuova pagina all'interno del documento PDF. Questa operazione include la chiusura dello stream di contenuto precedente (se esistente), l'aggiunta di una nuova pagina al documento, l'apertura di un nuovo stream di contenuto e l'inserimento dei loghi (solo sulla prima pagina) e l'impostazione della posizione iniziale per il disegno del contenuto.
      Throws:
      IOException - se si verifica un errore durante la creazione della pagina o la gestione dello stream.
    • checkForNewPage

      public static void checkForNewPage(float neededSpace) throws IOException
      Controlla se è necessario creare una nuova pagina nel documento PDF. Se lo spazio rimanente sulla pagina corrente è inferiore allo spazio richiesto dal prossimo contenuto, viene invocato initNewPage() per passare a una nuova pagina.
      Parameters:
      neededSpace - Lo spazio in punti PDF necessario per il prossimo blocco di contenuto.
      Throws:
      IOException - se si verifica un errore durante la creazione della nuova pagina.
    • exportScenarioToPdf

      public byte[] exportScenarioToPdf(int scenarioId, boolean desc, boolean brief, boolean infoGen, boolean patto, boolean azioni, boolean obiettivi, boolean moula, boolean liqui, boolean matNec, boolean param, boolean acces, boolean fisic, boolean esam, boolean time, boolean scen) throws IOException
      Esporta uno scenario e i suoi dati correlati in un documento PDF. Il metodo consente di includere o escludere sezioni specifiche del contenuto tramite i flag booleani forniti.
      Parameters:
      scenarioId - L'ID dello scenario da esportare.
      desc - Flag per includere la descrizione dello scenario.
      brief - Flag per includere il brief dello scenario.
      infoGen - Flag per includere le informazioni generali.
      patto - Flag per includere la sezione "Patto".
      azioni - Flag per includere le azioni chiave.
      obiettivi - Flag per includere gli obiettivi.
      moula - Flag per includere la sezione "Moula".
      liqui - Flag per includere la sezione "Liquidi".
      matNec - Flag per includere i materiali necessari.
      param - Flag per includere i parametri del paziente.
      acces - Flag per includere gli accessi.
      fisic - Flag per includere l'esame fisico.
      esam - Flag per includere gli esami e referti.
      time - Flag per includere la timeline (per scenari avanzati/simulati).
      scen - Flag per includere la sceneggiatura (solo per scenari simulati).
      Returns:
      Un array di byte contenente il documento PDF generato.
      Throws:
      IOException - se si verifica un errore durante la generazione del PDF, ad esempio problemi di I/O o caricamento font/immagini.