Condividi tramite

Problema PDF

Anonimo
2016-02-26T20:17:13+00:00

Utilizzo questa routine per creare e salvare i report in formato PDF. Funziona perfettamente ma quando il report ha un formato orizzontale lo stampa comunque in verticale tagliandolo ovviamente:

percorso = "C:\YYY\DOC"

key = percorso & cartella

Call SalvaString(HKEY_CURRENT_USER, "Software\PDFCreator\Program", "AutosaveDirectory", key)

DoCmd.OpenReport nReport, acViewPreview, , strCriteri

Reports.Item(nReport).Caption = fCaption

Reports.Item(nReport).Printer = Application.Printers("PDFCreator")

DoCmd.SelectObject acReport, nReport

DoCmd.PrintOut acPrintAll, , , , , False

DoCmd.Close acReport, nReport

Utilizzando la routine che utilizzavo in precedenza il problema non si crea. La differenza fra le due è che con questa avevo bisogno una volta lanciata la stampa mi si apriva la Dialog nella quale dovevo selezionare come stampante il PDFCreator. Con l'altra routine, invece, non ho bisogno di farlo:

    percorso = "C:\YYY\DOC"

    key = percorso & cartella

    Call SalvaString(HKEY_CURRENT_USER, "Software\PDFCreator\Program", "AutosaveDirectory", key)

    DoCmd.OpenReport nReport, acViewPreview, , strCriteri

    Reports.Item(nReport).Caption = fCaption

    RunCommand acCmdPrint

    DoCmd.Close acReport, nReport

Sapreste dirmi come risolvere il problema?

Grazie.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2016-02-27T11:39:35+00:00

    Grazie Karl ma, forse, non mi sono espresso chiaramente. Utilizzavo da anni (Access2000) questo codice che come puoi vedere non è lunghissimo (7 banalissime righe) e non avrei nessuna difficoltà a riutilizzare perché funziona perfettamente. Mi crea il PDF e me lo archivia nella giusta cartella:

        percorso = "C:\YYY\DOC"

        key = percorso & cartella

        Call SalvaString(HKEY_CURRENT_USER, "Software\PDFCreator\Program", "AutosaveDirectory", key)

        DoCmd.OpenReport nReport, acViewPreview, , strCriteri

        Reports.Item(nReport).Caption = fCaption

        RunCommand acCmdPrint

        DoCmd.Close acReport, nReport

    Da non molto, utilizzando Access 2002, ho sfruttato il comando Application.Printers presente in A2002 e con solo 2 righe di codice in più evito che mi venga aperta la pop dialog dove dovevo selezionare PDFCreator. Il tutto funziona perfettamente ma, se il formato del report è in orizzontale, comunque mi fa il PDF in verticale. Chiedo se c'è un mio errore nel codice: 

    percorso = "C:\YYY\DOC"

    key = percorso & cartella

    Call SalvaString(HKEY_CURRENT_USER, "Software\PDFCreator\Program", "AutosaveDirectory", key)

    DoCmd.OpenReport nReport, acViewPreview, , strCriteri

    Reports.Item(nReport).Caption = fCaption

    Reports.Item(nReport).Printer = Application.Printers("PDFCreator")

    DoCmd.SelectObject acReport, nReport

    DoCmd.PrintOut acPrintAll, , , , , False

    DoCmd.Close acReport, nReport

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-02-26T21:53:53+00:00

    Ah, la versione non era chiara e siccome scrivi in un foro di Office 2013...

    Nelle versioni < 2007 sempre uso il tool di Stephen Lebans (vedi http://www.donkarl.com/it?FAQ5.17). perché non bisogna una grande installazione (solo copiare due dll) ed è semplice di gestire il nome del file pdf con codice.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-02-26T20:48:34+00:00

    Karl, perché A2002 non prevede acFormatPDF.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-02-26T20:37:28+00:00

    Salve,

    perché tutta questa roba con PDFCreator invece di usare l'esportazione PDF integrata? Se capisco bene le tue variabili sarebbe circa:

    DoCmd.OpenReport nReport, acViewPreview, , strCriteri

    DoCmd.OutputTo acOutputReport, nReport, acFormatPDF, percorso & cartella & fCaption & ".pdf"

    DoCmd.Close acReport, nReport

    La risposta è stata utile?

    0 commenti Nessun commento