Search  
Friday, February 10, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Office Automation  Cum pot inchide...
 Cum pot inchide Pdfcreator print monitor?
 
 7/11/2010 4:41:53 PM
User is offlinemadalinsuny
21 posts


Cum pot inchide Pdfcreator print monitor?
 (N/A)
Buna ziua! Folosesc VFP 9.0 SI Pdf Creator 1.0.1 . Vreau sa fac un 'listare.prg' care sa transforme un fisier .doc in pdf. Este prima data cand folosesc Pdf Creator, asa ca, codul este rezultatul combinarii a 2 coduri gasite pe net (printarea unui .doc indiferent ce program folosim pentru editare si report to pdf utilizand PdfCreator).


Am urmatorul cod:

Local PrinterNow, PrinterOld,ldirector,nume,locatie,fisier
nume=""
locatie=""
fisier=""
ldirector=""

fisier="rex.doc" && denumire fisier ce va fi transformat in pdf
ldirector="C:\temp\" && directorul unde se salveaza pdf-ul
nume="madalin" && denumire fisier pdf
locatie=ALLTRIM(ldirector)+ALLTRIM(nume)+".pdf"


PrinterNow = "pdfcreator"

If( !Empty(m.PrinterNow) )
=Printer_Set(m.PrinterNow, @m.PrinterOld)
* Report Form ctssaisonnier Noconsole To Printer
=printpdf(ldirector, nume, locatie, fisier)
=Printer_Set(m.PrinterOld)
Endif



*-------------------------------------------------------------------------------

#Define TRUE .T.

#Define FALSE .F.

Function Printer_Set(PrinterNew, PrinterOld)

PrinterOld = WindowsPrinter_Get()

If( Upper(m.PrinterOld ) <> Upper(m.PrinterNew) )

=WindowsPrinter_Set(m.PrinterNew)

Set Printer To Default && to avoid error 1958, not sure we need this

Set Printer To Name (m.PrinterNew)

Endif

Endfunc

*-------------------------------------------------------------------------------

Function WindowsPrinter_Get()

Return Set('Printer', 2)

Endfunc

*-------------------------------------------------------------------------------

Function WindowsPrinter_Set(PrinterNew, PrinterOld)


Local wsh, sError

sError = On('error')

PrinterOld = WindowsPrinter_Get()


Do Case

Case Lower(m.PrinterOld) <> Lower(m.PrinterNew)

Private HadError

HadError = FALSE

On Error HadError = TRUE


wsh = Createobject('WScript.Network') && error on win95

=m.wsh.SetDefaultPrinter(m.PrinterNew)

On Error &sError


wsh = Null


Return !m.HadError


Endcase

Endfunc

*-------------------------------------------------------------------------------
procedure printpdf

parameters ldir,lnume,llocatie,lfisier

declare integer ShellExecute in SHELL32.DLL ;
INTEGER nWinHandle ,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow


IF FILE(llocatie)
DELETE FILE(llocatie)
ENDIF

Local loPDFCreator As PDFCreator.clsPDFCreator
loPDFCreator = Createobject("PDFCreator.clsPDFCreator")
If loPDFCreator.cStart("/NoProcessingAtStartup")
With loPDFCreator
Local loOptions As PDFCreator.clsPDFCreatorOptions
loOptions = loPDFCreator.cOptions
With loOptions
.UseAutosave = 1
.PrinterStop = 1
.UseAutosaveDirectory = 1
.AutosaveDirectory = ldir
.AutosaveFilename = lnume
.AutosaveFormat=0
Endwith
loPDFCreator.cOptions = loOptions
.cDefaultPrinter = "PDFCreator"
.cClearCache()
ENDWITH
ENDIF


ShellExecute(0,'Print',lfisier,'','',0)

loPDFCreator.cPrinterStop= .f.
Release loPDFCreator


ENDPROC

Codul rezultat se comporta bine, cu o singura exceptie;daca schimb valorile ldirector, nume (ca sa pot salva fisierul rezultat sub alta denumire sau in alta locatie), fsierul pdf se creaza folosind vechile valori ale parametrilor (chiar daca inchid si redeschid VFP ) atata timp cat nu inchid PDFCreator Print monitor.

Cum il pot inchide, sau banuiesc ca este vb de un fel de cash memory de la PDFCreator ce trebuie golit.
Ce pot face pentru a rezolva aceasta problema?
 7/14/2010 1:26:37 PM
User is offlinemadalinsuny
21 posts


Re: Cum pot inchide Pdfcreator print monitor?
 (N/A)
Vazand ca nu am primit nici un raspuns, si nici pe net nu am gasit vreo rezolvare, am decis sa renunt a mai folosi PDFCreator.
Am incercat Bullzip PDF Printer si vad ca se comporta bine, chiar si pe windows7
  Visual FoxPro  Office Automation  Cum pot inchide...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement