pdf creator monitor

123 views
Skip to first unread message

dr. G. Dell'Acqua

unread,
Oct 13, 2010, 9:34:00 AM10/13/10
to Foxpro Italia
ho provato la routine postata da Gianni per generare i PDF con pdf
creator e funziona egregiamente, però ogni volta che viene utilizzata
viene aperto (in icona sulla barra degli strumenti) il pdf creator
monitor che non viene chiuso automaticamente alla uscita del programma
chiamante; in tal modo i settaggi (path e nome file) passati al prg
rimangono memorizzati e se poi si utilizza una stampa di pdf creator
per un altro lavoro i dati di default non vengono ripristinati ma
tutto rimane come settato col prg.
Dovrebbe essere sufficiente, a programma, chiudere l'icona del Pdf
craetor Monitor (facendolo a mano tutto ritorna come prima)... però
non so come fare.. mi potete aiutare???
grazie e ciao a tutti

Gianni

unread,
Oct 13, 2010, 1:48:03 PM10/13/10
to foxpro...@googlegroups.com
Hai ragione, tiene i settaggi di AutoSave.

Non so come chiudere l'icona ma ha provato a salvare ed a ripristinare le impostazioni che vengono modificate e sembra funzionare.

Facendo riferimento al mio codice postato il 15 settembre, colloca i due segmenti di codice nei punti seguenti:
il primo appena dopo l'istruzione Createobject()
il secondo alla fine.

<code>

public ;
m.s_pdf_save_AutosaveFormat, ;
m.s_pdf_save_UseAutosave, ;
m.s_pdf_save_UseAutosaveDirectory, ;
m.s_pdf_save_AutosaveDirectory, ;
m.s_pdf_save_AutosaveFilename, ;
m.s_pdf_save_StandardTitle, ;
m.s_pdf_save_PDFOwnerPasswordString, ;
m.s_pdf_save_PDFOwnerPass, ;
m.s_pdf_save_PDFUseSecurity, ;
m.s_pdf_save_PDFDisallowCopy

with loPDFCreator
m.s_pdf_save_AutosaveFormat = .cOption("AutosaveFormat")
m.s_pdf_save_UseAutosave = .cOption("UseAutosave")
m.s_pdf_save_UseAutosaveDirectory = .cOption("UseAutosaveDirectory")
m.s_pdf_save_AutosaveDirectory = .cOption("AutosaveDirectory")
m.s_pdf_save_AutosaveFilename = .cOption("AutosaveFilename")
m.s_pdf_save_StandardTitle = .cOption("StandardTitle")
m.s_pdf_save_PDFOwnerPasswordString = .cOption("PDFOwnerPasswordString")
m.s_pdf_save_PDFOwnerPass = .cOption("PDFOwnerPass")
m.s_pdf_save_PDFUseSecurity = .cOption("PDFUseSecurity")
m.s_pdf_save_PDFDisallowCopy = .cOption("PDFDisallowCopy")
endwith

</code>

<code>

with loPDFCreator
.cOption("AutosaveFormat") = m.s_pdf_save_AutosaveFormat
.cOption("UseAutosave") = m.s_pdf_save_UseAutosave
.cOption("UseAutosaveDirectory") = m.s_pdf_save_UseAutosaveDirectory
.cOption("AutosaveDirectory") = m.s_pdf_save_AutosaveDirectory
.cOption("AutosaveFilename") = m.s_pdf_save_AutosaveFilename
.cOption("StandardTitle") = m.s_pdf_save_StandardTitle
.cOption("PDFOwnerPasswordString") = m.s_pdf_save_PDFOwnerPasswordString
.cOption("PDFOwnerPass") = m.s_pdf_save_PDFOwnerPass
.cOption("PDFUseSecurity") = m.s_pdf_save_PDFUseSecurity
.cOption("PDFDisallowCopy") = m.s_pdf_save_PDFDisallowCopy
endwith

release ;
m.s_pdf_save_AutosaveFormat, ;
m.s_pdf_save_UseAutosave, ;
m.s_pdf_save_UseAutosaveDirectory, ;
m.s_pdf_save_AutosaveDirectory, ;
m.s_pdf_save_AutosaveFilename, ;
m.s_pdf_save_StandardTitle, ;
m.s_pdf_save_PDFOwnerPasswordString, ;
m.s_pdf_save_PDFOwnerPass, ;
m.s_pdf_save_PDFUseSecurity, ;
m.s_pdf_save_PDFDisallowCopy

</code>

Gianni

dr. G. Dell'Acqua

unread,
Oct 14, 2010, 4:24:19 AM10/14/10
to Foxpro Italia
ok così funziona, molte grazie!

pippo

unread,
Oct 14, 2010, 5:36:27 AM10/14/10
to Foxpro Italia
Questo non influenza i settaggi e non lascia l'icona. Forse il trucco
sta nel mettere tutto in un unico ciclo WITH ENDWITH compreso
il .cClose finale. Ho pescato un po' da Gianni e un po' dagli esempi
di PDFCreator perchè
volevo includere anche .cCombineAll(). Tutto_ok è un parametro che
devo passare ad altre parti del prg.
Win 7 VFP 9 SP2 PDFCreator 1.0.2

A proposito della lentezza di PDFCreator potrei aver esagerato coi
timeout, però così funziona. Con XP usavo http://spacefold.com/articles/PDFPower.aspx
che è molto più veloce e non usa terze parti, ma con 7 bisogna fare
delle modifiche documentate nell'articolo ma abbastanza complesse (per
me). Se qualcuno più bravo ci vuol provare ...

=SYS(2002) && nasconde il cursore
SET CONSOLE OFF
LOCAL old_print, my_dir_out, my_file_out, PDFCreator, my_timeout,
my_step
my_timeout = 60 && 1 minuto
old_print = SET("PRINTER", 2)
my_dir_out = SET("DIRECTORY")
my_file_out = "Pippo.pdf"
my_step = 0

PDFCreator = CreateObject("PDFCreator.clsPDFCreator","PDFCreator_")
IF ! PDFCreator.cStart("/NoProcessingAtStartup")
PDFCreator.cStart("/NoProcessingAtStartup", 1)
ENDIF
WAIT TIMEOUT 1
IF ! INLIST(PDFCreator.cError.Number, 0, 2)
This.tutto_ok = .F.
MESSAGEBOX("Errore " + LTRIM(STR(PDFCreator.cError.Number)) + ;
chr(13) + chr(13) + PDFCreator.cError.Description, "Errore di
PDFCreator" )
ENDIF
IF This.tutto_ok
WITH PDFCreator
.cPrinterStop = .T.
.cDefaultprinter = "PDFCreator"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveFormat") = 0
.cOption("AutosaveDirectory") = my_dir_out
.cOption("AutosaveFilename") = my_file_out
.cOption("PDFDisallowCopy") = 0
.cOption("StandardTitle") = juststem(.cOption("AutosaveFileName"))
IF !EMPTY(my_password)
.cOption("PDFOwnerPasswordString") = my_password
.cOption("PDFOwnerPass") = 1
.cOption("PDFUseSecurity") = 1
ENDIF
.cClearcache

SET PRINTER TO NAME "PDFCreator"

REPORT FORM My_report_1.frx TO PRINTER
WAIT TIMEOUT 1
REPORT FORM My_report_2.frx TO PRINTER
WAIT TIMEOUT 1

.cCombineAll()
DO WHILE .cCountOfPrintjobs > 1 .OR. my_step >= my_timeout
my_step = my_step + 1
WAIT TIMEOUT 1
ENDDO
IF my_step >= my_timeout
This.tutto_ok=.F.
ELSE
.cPrinterStop = .F.
WAIT TIMEOUT 1
ENDIF
.cDefaultprinter = m.old_print
.cClose
ENDWITH
ENDIF && Tutto_ok
=SYS(2002, 1)
SET CONSOLE ON

Gianni

unread,
Oct 14, 2010, 7:23:52 AM10/14/10
to foxpro...@googlegroups.com
Bravo Pippo,

non so come abbia fatto a sfuggirmi il metodo .cClose ...

Effettivamente pare risolva tutto senza bisogno di salvare e ripristinare nulla.
Nei miei test, nel mio codice, sembra sia sufficente mettere alla fine l'istruzione

loPDFCreator.cClose

Gianni

unread,
Feb 16, 2011, 4:48:56 AM2/16/11
to foxpro...@googlegroups.com
Ciao Mimmo,

a me funziona perfettamente e non da le anomalie da te riscontrate.

Ci puoi dare dettagli sul pc su cui hai il problema?
Te lo da su diversi pc o solo su uno?
Tipo di pc e sistema operativo.

Verifica di avere installata l'ultima versione di PDFCreator e, se così non fosse, disinstallalo (riavvia il pc) e poi installa la versione più recente.
La versione corrente è la 1.2.0.

L'aggiornamento automatico potrebbe non funzionare, quindi scaricalo da qui:
http://sourceforge.net/projects/pdfcreator/

Dopo l'installazione crea un PDF usando PDFCreator come stampante da un programma tipo Word:
su un computer nuovo con Windows 7 Home Premium 64bit di un mio clente è stato necessario perché si mettesse a funzionare correttamente il suo uso automatizzato.

Se modifichi le sue impostazioni predefinite dicci quali modifichi, potrebbe dipendere anche da questo.

In ultimo, se si potesse vedere il VERO codice da te usato magari ci salta all'occhio qualcosa.

Gianni

On Tue, 15 Feb 2011 11:26:03 -0800 (PST), Mimmo <cin...@libero.it> wrote:

Ho provato ad utilizzare il metodo 'cclose' ma in questo modo
PdfCreator mi apre il suo pannello con le varie opzioni di output
perdendo l'automatismo precedente.
Purtroppo ho provato a rettificare il mio codice seguendo i vari
esempi compreso il vostro ma non sono riuscito a risolvere.
Il problema del monitor stampante diventa importante quando si prova a
utilizzare pdfcreator direttamente come stampante ,anche da altre
applicazioni ,nel qual caso il pannello con le opzioni di salvataggio
non viene fuori. Bisogna chiudere il print monitor affinche esso
funzioni correttamente. A voi succede la stessa cosa?
Peccato che non si riesca a trovare qualche documentazione che ci
risolva questi problemi.

Mimmo

unread,
Feb 16, 2011, 2:05:14 PM2/16/11
to Foxpro Italia
Grazie Gianni, per avermi risposto.
Ho copiato integralmente il tuo codice di sopra e sembra funzionare
bene senza le anomalie.
Non mi resta che analizzare le differenze con la mia procedura per
scovare il problema.
Grazie ancora,
Ciao.

Mimmo.


On 16 Feb, 10:48, Gianni <gianni...@gmail.com> wrote:
> Ciao Mimmo,
>
> a me funziona perfettamente e non da le anomalie da te riscontrate.
>
> Ci puoi dare dettagli sul pc su cui hai il problema?
> Te lo da su diversi pc o solo su uno?
> Tipo di pc e sistema operativo.
>
> Verifica di avere installata l'ultima versione di PDFCreator e, se così non fosse, disinstallalo (riavvia il pc) e poi installa la versione più recente.
> La versione corrente è la 1.2.0.
>
> L'aggiornamento automatico potrebbe non funzionare, quindi scaricalo da qui:http://sourceforge.net/projects/pdfcreator/
>
> Dopo l'installazione crea un PDF usando PDFCreator come stampante da un programma tipo Word:
> su un computer nuovo con Windows 7 Home Premium 64bit di un mio clente è stato necessario perché si mettesse a funzionare correttamente il suo uso automatizzato.
>
> Se modifichi le sue impostazioni predefinite dicci quali modifichi, potrebbe dipendere anche da questo.
>
> In ultimo, se si potesse vedere il VERO codice da te usato magari ci salta all'occhio qualcosa.
>
> Gianni
>
> >timeout, però così funziona. Con XP usavohttp://spacefold.com/articles/PDFPower.aspx
> >> > >grazie e ciao a tutti- Nascondi testo citato
>
> - Mostra testo citato -

Mimmo

unread,
Feb 25, 2011, 12:57:33 PM2/25/11
to Foxpro Italia
Ho scoperto il problema e ne rendo nota la soluzione se potrebbe
essere utile a qualcuno.
Il mio errore stava nella posizione dell'istruzione .cPrinterStop
= .F. che deve essere necessariamente esuguita nel ciclo di verifica
come sotto:

pippo

unread,
Feb 28, 2011, 4:32:17 AM2/28/11
to Foxpro Italia
Aproposito di PDF vi segnalo una cosa che magari la sapete tutti ma io
l'ho scoperta adesso.
Il formato PDF non è valido "per l'archiviazione nel lungo periodo di
documenti elettronici", cioè ad esempio per la fatturazione
elettronica. Bisogna usare il formato PDF/A che in PDFCreator si
ottiene sostituendo alla riga

PDFCreator.cOption("AutosaveFormat") = 0 && 0 = PDF

quest'altra
PDFCreator.cOption("AutosaveFormat") = 9 && 9 = PDF/A 1b

pippo
Reply all
Reply to author
Forward
0 new messages