Como sabemos a PDFinclude.i é cheia de limitações.
Então pesquisando, descobri que é possível utilizar o PDFCreator para fazer esta tarefa sem dor de cabeça.
Atualmente estamos usamos outra forma de gerar relatórios em PDF de forma simples porém este recurso do PDFCreator pode acabar sendo útil para alguém em algum momento, por isso vale salvar essa informação.
Vou trazer mais detalhes futuramente.
Para usar este programa é necessário ter instalado o PDFCreator na maquina que irá imprimir em PDF. disponível em: http://www.pdfforge.org/.
Segue o Exemplo:
/*matar qualquer processo referente ao PDFCreator*/
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").
/*Variáveis de instancia*/
DEFINE VARIABLE pdf AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE pdfop AS COM-HANDLE NO-UNDO.
CREATE "PDFCreator.clsPDFCreator" pdf NO-ERROR.
CREATE "PDFCreator.PDFCreatorOptions" pdfop NO-ERROR.
/*configuração do PDFCreator*/
PDF:cStart(,).
ASSIGN
pdfop = PDF:cOptions
PDFop:AutosaveDirectory = "c:\"
PDFop:AutosaveFilename = "nome.pdf"
PDFop:UseAutosave = 1
PDFop:UseAutosaveDirectory = 1
PDFop:AutosaveFormat = 0
PDF:cOptions = PDFop
PDF:cDefaultPrinter = "PDFCreator"
PDF:cPrinterStop = FALSE.
/*comando para imprimir*/
PDF:cPrintFile("c:\teste.doc").
/*é possível imprimir do Excel, Word, etc.
basta substituir a linha acima pelo comando de impressão desejado */
/*encerrar processo*/
PDF:cClose.
RELEASE OBJECT pdf.
RELEASE OBJECT pdfop.
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").
Também descobri que é possível mesclar com outros componentes .ocx para gerar a impressão. Segue um exemplo usando o Excel:
/*matar qualquer processo referente ao PDFCreator*/
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").
/*Variáveis de instancia PDFCreator*/
DEFINE VARIABLE pdf AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE pdfop AS COM-HANDLE NO-UNDO.
CREATE "PDFCreator.clsPDFCreator" pdf NO-ERROR.
CREATE "PDFCreator.PDFCreatorOptions" pdfop NO-ERROR.
/*Variáveis de instância excel*/
DEFINE VARIABLE chExcelApplication as COM-HANDLE.
DEFINE VARIABLE arquivo AS COM-HANDLE.
DEFINE VARIABLE aba AS COM-HANDLE.
CREATE 'Excel.Application' chExcelApplication.
/*configurações excel*/
ASSIGN
chExcelApplication:VISIBLE = FALSE
chExcelApplication:DisplayAlerts = FALSE
chExcelApplication:ScreenUpdating = FALSE
arquivo = chExcelApplication:Workbooks:add("")
aba = arquivo:sheets:ITEM(1)
aba:cells(1,1):VALUE = "teste".
/*configuração do PDFCreator*/
PDF:cStart(,).
ASSIGN
pdfop = PDF:cOptions
PDFop:AutosaveDirectory = "c:\"
PDFop:AutosaveFilename = "nome.pdf"
PDFop:UseAutosave = 1
PDFop:UseAutosaveDirectory = 1
PDFop:AutosaveFormat = 0
PDF:cOptions = PDFop
PDF:cDefaultPrinter = "PDFCreator"
PDF:cPrinterStop = FALSE.
/*comando excel para imprimir*/
aba:PrintOut(,,,,,,,,).
/*while para aguardar a impressão do arquivo*/
DO WHILE SEARCH("c:\nome.pdf") = ?:
END.
/*encerrar processo*/
PDF:cClose.
RELEASE OBJECT pdf.
RELEASE OBJECT pdfop.
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").
chExcelApplication:QUIT.
RELEASE OBJECT arquivo.
RELEASE OBJECT aba.
RELEASE OBJECT chExcelApplication.