Página 1 de 2
Problemas com falta da HBOLE.LIB
Enviado: 30 Jan 2019 15:04
por momente
Amigos,
Boa tarde!
Estou com um problema para gerar PDF a partir de um xml de Nota Fiscal Eletrônica com a BioPDF (Impressora Virtual), sempre utilizei esta Função em xHarbour/Console e MiniGUI Ext./Harbour, sempre funcionou bem, porém, agora com a atualização da MinGUI Ext., verifiquei que a HBOLE.LIB foi descartada e fiz uma atualização de minha função para manter a compatibilidade com a MiniGUI. Mas esta causando erro de Método não Exportado na PrinterName. Segue o Código:
#define SET_PROGID "biopdf.PDFSettings"
#define UTIL_PROGID "biopdf.PDFUtil"
Function ConfigPDF(cArquivoPDF)
LOCAL prtidx,sPrinterName,oSettings,oUtil,cArqPDF
LOCAL lOk
If ( oUtil := win_oleCreateObject( UTIL_PROGID ) ) != NIL
sPrinterName = oUtil:defaultprintername
// Configuração do documento a ser impressão em PDF
If ( oSettings = win_oleCreateObject(SET_PROGID) ) != NIL
oSettings:PrinterName( sPrinterName )
oSettings:setValue("Output" , cArquivoPDF )
oSettings:setValue("ConfirmOverwrite" , "no" )
oSettings:setValue("ShowSaveAS" , "never" )
oSettings:setValue("ShowSettings" , "never" )
oSettings:setValue("ShowPDF" , "no" )
oSettings:setValue("RememberLastFileName" , "no" )
oSettings:setValue("RememberLastFolderName", "no" )
oSettings:WriteSettings(.T.)
Else
MsgInfo("Erro na configuração do PDF","ATENÇÃO")
Return NIL
Endif
Else
MsgInfo("Erro ao gerar PDF","ATENÇÃO")
Return NIL
Endif
Return nil
Já tentei de tudo, mas não estou conseguindo resolver, será que alguém poderia me ajudar?
Obrigado desde já pela atenção meus amigos!
Problemas com falta da HBOLE.LIB
Enviado: 31 Jan 2019 21:30
por momente
Amigos,
Desculpe pela insistência, eu utilizo a xDevstudio, depois que atualizei minha MiniGUI, não consegui mais resolver. :'( . Não consigo entender o que esta acontecendo. Segui as instruções para utilizar a hbwin e xhb, mas o erro continua. E agora tentando voltar nas edições anteriores e nada.
Seguindo as instruções da atualização da erro Método não Exportado: PrinterName (BioPDF)
Será que alguém poderia me dar uma luz?
Valeu pessoal! :xau
Rogério Momente
LookSystem
Problemas com falta da HBOLE.LIB
Enviado: 01 Fev 2019 08:14
por asimoes
sPrinterName está retornando alguma coisa ?
Problemas com falta da HBOLE.LIB
Enviado: 01 Fev 2019 17:54
por momente
olá asimoes,
Sim, retorna o nome da Impressora virtual no caso, a BioPDF, até a versão 18.4 gerava normalmente o PDF, utilizo o UNIDANFE. Ontem consegui voltar para esta versão e voltou a funcionar normalmente, mas com a atualização não deu mais certo. Eles pedem para não utilizar mais a HBOLE.LIb. Mas não funciona ou não estou sabendo fazer funcionar :|
Obrigado pelo retorno
Problemas com falta da HBOLE.LIB
Enviado: 03 Fev 2019 11:53
por tales
Bom dia, estou com um prolema parecido. Depois da atualização a minha impressora virtual PDF parou de funcionar. Só que eu uso a Bullzip ....
Grato
Tales
Problemas com falta da HBOLE.LIB
Enviado: 04 Fev 2019 10:53
por momente
Tales,
Poste aqui pra gente parte do seu código para analisarmos, eu utilizava a HBOLE.LIB, porém ela foi dada como obsoleta, indicaram para este caso utilizar xhb.lib e a hbwin.lib. Mas não funciona assim mesmo.
Problemas com falta da HBOLE.LIB
Enviado: 04 Fev 2019 20:12
por asimoes
Tem esse exemplo na HbWin usando PDFCreator
Código: Selecionar todos
/*
* Demonstration code for generating .pdf documents using PDFCreator
* COM interface.
*
* You should install PDFCreator to be able to run this test
*
* COM interface docs:
* https://www.pdfforge.org/pdfcreator/manual/com-interface
*
* Copyright 2010 Mindaugas Kavaliauskas <dbtopas / at / dbtopas.lt>
*
*/
#require "hbwin"
PROCEDURE Main()
LOCAL oPC, nTime, cDefaultPrinter, oPrinter, nEvent := 0
IF Empty( oPC := win_oleCreateObject( "PDFCreator.clsPDFCreator" ) )
? "Could not create PDFCreator COM object"
RETURN
ENDIF
/* Setup event notification */
oPC:__hSink := __axRegisterHandler( oPC:__hObj, {| X | nEvent := X } )
oPC:cStart( "/NoProcessingAtStartup" )
oPC:_cOption( "UseAutosave", 1 )
oPC:_cOption( "UseAutosaveDirectory", 1 )
oPC:_cOption( "AutosaveDirectory", hb_DirSepDel( hb_DirBase() ) )
oPC:_cOption( "AutosaveFilename", "pdfcreat.pdf" )
oPC:_cOption( "AutosaveFormat", 0 )
cDefaultPrinter := oPC:cDefaultPrinter
oPC:cDefaultPrinter := "PDFCreator"
oPC:cClearCache()
/* You can do any printing here using WinAPI or
call a 3rd party application to do printing */
#if 1
oPrinter := win_Prn():New( "PDFCreator" )
oPrinter:Create()
oPrinter:startDoc( "Harbour print job via PDFCreator" )
oPrinter:NewLine()
oPrinter:NewLine()
oPrinter:TextOut( "Hello, PDFCreator! This is Harbour :)" )
oPrinter:EndDoc()
oPrinter:Destroy()
#else
oPrinter := NIL
? "Do some printing to PDFCreator printer and press any key..."
Inkey( 0 )
#endif
oPC:cPrinterStop := .F.
nTime := hb_MilliSeconds()
DO WHILE nEvent == 0 .AND. hb_MilliSeconds() - nTime < 10000
hb_idleSleep( 0.5 )
/* The following dummy line is required to allow COM server to send event [Mindaugas] */
oPC:cOption( "UseAutosave" )
ENDDO
SWITCH nEvent
CASE 0
? "Print timeout"
EXIT
CASE 1
? "Printed successfully"
EXIT
CASE 2
? "Error:", oPC:cError():Description
EXIT
OTHERWISE
? "Unknown event"
ENDSWITCH
oPC:cDefaultPrinter := cDefaultPrinter
oPC:cClose()
RETURN
Problemas com falta da HBOLE.LIB
Enviado: 04 Fev 2019 21:03
por asimoes
Talvez seja case sensitive
settings.printerName = sPrinterName
Vendo um exemplo:
http://www.biopdf.com/guide/examples/vb6/
O seu código está assim:
oSettings:
PrinterName( sPrinterName )
Eu trocaria por
oSettings:printerName := sPrinterName
Problemas com falta da HBOLE.LIB
Enviado: 05 Fev 2019 21:15
por momente
asimoes,
Não havia pensado nisso, Testei, mas deu Error BASE/1004 Método não exportado: PRINTERNAME
Coloquei assim:
osettings:printerName(sPrinterName)
Muito estranho! :(Neg
Problemas com falta da HBOLE.LIB
Enviado: 05 Fev 2019 22:29
por asimoes
Pode ser algum problema de registro desse objectcom
Problemas com falta da HBOLE.LIB
Enviado: 05 Fev 2019 22:33
por asimoes
Esse recurso que está tentando usar é free?
Problemas com falta da HBOLE.LIB
Enviado: 06 Fev 2019 07:49
por momente
asimoes,
Eu instalo a BioPDF, uma impressora virtual, já utilizo a bastante tempo, utilizo com xharbour console e aplicativos com a MiniGUI, sempre funcionou e funciona muito bem. Como disse, passei a ter este problema com as atualizações da MiniGUI de um tempo pra cá.
Problemas com falta da HBOLE.LIB
Enviado: 06 Fev 2019 07:53
por asimoes
Só testando, onde tem pra instalar e Free?
Problemas com falta da HBOLE.LIB
Enviado: 06 Fev 2019 15:36
por momente
aSimoes,
Pode baixar e instalar deste
http://www.biopdf.com/download.php
Ele vai instalar uma impressora virtual, vc pode direcionar as impressões pra ela, normalmente, que irá pedir a pasta para salvar o arquivo PDF. Similar ao PDFCreator
Valeu meu amigo!
Problemas com falta da HBOLE.LIB
Enviado: 06 Fev 2019 20:46
por asimoes
Momente,
Baixei a impressora pdf
e funcionou.
Código: Selecionar todos
cArquivoPDF := Hb_DirBase() + "TESTE.PDF"
oUtil := Win_OleCreateObject( UTIL_PROGID )
oSettings := Win_OleCreateObject(SET_PROGID)
sPrinterName := oUtil:defaultprintername
// Configuração do documento a ser impressão em PDF
With Object oSettings
:PrinterName := sPrinterName
:setValue("Output" , cArquivoPDF )
:setValue("ConfirmOverwrite" , "no" )
:setValue("ShowSaveAS" , "never" )
:setValue("ShowSettings" , "never" )
:setValue("ShowPDF" , "no" )
:setValue("RememberLastFileName" , "no" )
:setValue("RememberLastFolderName", "no" )
:WriteSettings(.T.)
End
With Object oPrinter := win_Prn():New( sPrinterName )
:Create()
:startDoc( "Harbour print job via PDFCreator" )
:NewLine()
:NewLine()
:TextOut( "Hello, " + sPrinterName + "! This is Harbour :)" )
:EndDoc()
:Destroy()
End
nEvent := 0
nTime := Hb_MilliSeconds()
DO WHILE nEvent == 0 .AND. Hb_MilliSeconds() - nTime < 10000
Hb_idleSleep( 0.5 )
/* The following dummy line is required to allow COM server to send event [Mindaugas] */
ENDDO
