Stampa di Report

di il
13 risposte

Stampa di Report

Buongiorno,

ho una domanda secca da porre. Ricorrendo ad esempio a:

DoCmd.OutputTo acOutputReport, "Nome_Report", acFormatPDF, filePath

Quale stampante virtuale viene utilizzata per la stampa? “Microsoft print to PDF”?

Grazie.

13 Risposte

  • Re: Stampa di Report

    Credo nessuna… dovrebbe essere stato inserito un PlugIn nel pacchetto, un po come faceva la DLL di Lebans, quindi dovresti essere indipendente dalle Stampanti Virtuali.

  • Re: Stampa di Report

    Ok. Ma se volessi utilizzare Microsoft print to PDF come stampante virtuale, a quale reference dovrei puntare? Non ho trovato nulla nella lista che possa fare pensare a Microsoft print to PDF.

  • Re: Stampa di Report

    Non devi usare quel metodo… per definire quale stampante usare vai a definire la Stampante di Default per il Report oppure la cambi aprendo il Report in Modalità Preview ed andando a definire la Printer.

    Secondo me stai facendo confusione…

  • Re: Stampa di Report

    A titolo di esempio cambiare la stampante per il Report specifico si può fare in 2 modi:

    Se devi stampare diretto senza Aprirlo in Preview:

    Sub SwitchPrinter()
        Dim prt As Printer
        ' Get current default printer
        Set prt = Application.Printer
        ' Set default printer
        Application.Printer = Application.Printers("TuaStampanteVirtuale")
        ' Print something, e.g.
        DoCmd.PrintOut
        ' Restore original printer
        Set Application.Printer = prt
    End Sub

    Se invece apri il report in preview, una volta aperto recuperi l'oggetto Report e su quello modifichi la priinter

    docmd.openreport Reportname, acViewPreview
    reports(ReportName).Printer = application.printers("TuaStampanteVirtuale")

    L'elenco stampanti usabili lo ottieni così:

    Sub ListPrinters()
        Dim prt As Printer
        For Each prt In Printers
            Debug.Print prt.DeviceName
        Next prt
    End Sub
  • Re: Stampa di Report

    Certo. Posso selezionare la stampante da utilizzare. Ma come faccio a salvare il report in PDF in una path specifica e con nome specifico?

  • Re: Stampa di Report

    Mi spiego meglio. Devo ciclare tutta una serie di report da stampare con nomi diversi e in path diverse.

    Posso ricorrere al metodo:

    DoCmd.OutputTo acOutputReport, "Nome_Report", acFormatPDF, filePath

    Ma vengono generati PDF con dimensione file > 200Kb. Troppo grandi.

    Con stampanti virtuali ottengo file PDF di dimensioni più contenute. Fino a qualche giorno fà ricorrevo a PDFCreator. Ora, però, non è più disponibile per poliche di security. Quindi pensavo di ricorrere a Microsoft print to PDF. 

  • Re: Stampa di Report

    17/07/2024 - Antony73 ha scritto:


    Mi spiego meglio. Devo ciclare tutta una serie di report da stampare con nomi diversi e in path diverse.

    Posso ricorrere al metodo:

    DoCmd.OutputTo acOutputReport, "Nome_Report", acFormatPDF, filePath

    Ma vengono generati PDF con dimensione file > 200Kb. Troppo grandi.

    Si lo so…

    Con stampanti virtuali ottengo file PDF di dimensioni più contenute. Fino a qualche giorno fà ricorrevo a PDFCreator. Ora, però, non è più disponibile per poliche di security. Quindi pensavo di ricorrere a Microsoft print to PDF. 

    Usa quello che ti ho proposto…!

    Prima di ciclare i Report da stampare imposti la nuova DefaultPrinter quella che vuoi “Microsoft Print to PDF” cicli e stampi e ripristini:

    Sub PrintALL()
        Dim prt As Printer
        ' Get current default printer
        Set prt = Application.Printer
        ' Set default printer
        Application.Printer = Application.Printers("Microsoft Print to PDF")
        'Ciclo di Stampa Report
        ' Ripristino original printer
        Set Application.Printer = prt
    End Sub

    Penso tuttavia che usando la “Microsoft Print to PDF” ti chieda ogni volta la destinazione…

  • Re: Stampa di Report

    Si ma come faccio a definire nome e destinatario del file?

  • Re: Stampa di Report

    Con quello non puoi… come ti ho indicato ti chiede ogni volta… non mi risulta sia possibile interagire.

    Per rendere tutto automatico senza problemi, hai 2 opzioni:

    1. Usi il processo nativo anche se il File diventa più grande;
    2. Installi una Virtual Printer con Interfaccia COM o parametrizzabile e la gestisci…(tipo appunto quella che ti hanno rimosso o Adobe)

    Per i miracoli credo sia ancora presto…

  • Re: Stampa di Report

    Ok. Grazie.

  • Re: Stampa di Report

    17/07/2024 - Antony73 ha scritto:

    Ok. Grazie.

    Avendo un po' di tempo a disposizione torno su qualche thread anche se non proprio recente nella speranza di dare qualche suggerimento buono.

    Hai provato con il parametro OutputQuality di DoCmd.OutputTo? magari guadagni qualcosina. Ho fatto un paio di prove e sembra che l'impostazione di default sia acExportQualityPrint e che con acExportQualityScreen si riesca a ridurre qualcosa. Nel mio caso la riduzione è ridicola, forse con il tuo report il beneficio è più evidente.

  • Re: Stampa di Report

    Ho fatto questa prova anch'io a suo tempo, ancora prima di ricorrere a pdfCreator. Uguale come nel tuo caso. Praticamente non c'è variazione.

  • Re: Stampa di Report

    21/08/2024 - Antony73 ha scritto:

    Ho fatto questa prova anch'io a suo tempo, ancora prima di ricorrere a pdfCreator. Uguale come nel tuo caso. Praticamente non c'è variazione.

    Uff! peccato.

Devi accedere o registrarti per scrivere nel forum
13 risposte