Bom dia Simoes.
Eu estou com o mesmo problema que vc, tenho relatorios comprimidos para lx-300 com mais de 132 colunas, e qualquer configuração que eu faça na win32prn no setfont continua imprimindo apenas 132 colunas fazendo com que o resto caia para linha debaixo, ja mudei que consegui imprimir pequeno mais ainda mesmo assim não faz mais de 132 colunas.
Código: Selecionar todos
Function ImpWIN32PRN(cArq,tamrel) // arquivo e tamanho da linha
Local cTexto, nLinhas, nA, cLinha, oPrinter:=win32prn()
oPrinter:New(cPrinter) //pega a escolhida
oPrinter:Landscape:=.F. //VERTICAL .T. HORIZONTAL
oPrinter:FormType :=1 //9 //1 //9 //9 //12 // letter
oPrinter:Copies :=1
oPrinter:SetPrintQuality(1) // qualidade da impressÆo 1 rascunho 2 normal 3 media 4melhor
oPrinter:Create()
oPrinter:StartDoc()
oPrinter:SetFont("Courier New",12,{3,-55},700,.F.,.F.) //1,18 -50 //7,1,18
nCol:=oPrinter:GetCharWidth() // largura da fonte em pixels
nLin:=oPrinter:GetCharHeight() // altura da fonte em pixels
//abaixo tudo que ja tentei
//oPrinter:SetFont("Courier New",12,{3,-55},700,.F.,.F.) //1,18 -50
//oPrinter:SetFont("Courier New",8,{3,-60},700,.F.,.F.) //1,18 -50
//oPrinter:SetFont("Arial Narrow",8,{3,-60},700,.F.,.F.) //1,18 -50
//oPrinter:SetFont("Courier New",7,{0,15}) //1,18
//oPrinter:SetFont("Courier New",10,10) //10,10 normal
//oPrinter:SetFont("Courier New",7,14) //07,14 comprimido
//oPrinter:SetFont("Courier New",7,{0,18}) //1,18
//oPrinter:SetFont('Courier New',7,{3,-50}) // Compressed print //
//oPrinter:SetFont("Courier New",7,{1,18}) //1,18
//oPrinter:SetFont("ARIAL",2,{1,18}) //1,18
//If TamRel>80
// oPrinter:SetFont('Courier New',7,{1,18})
// oPrinter:SetFont(,,16,,,,255)
//Else
// oPrinter:SetFont('Courier New',7,{1,18})
// oPrinter:SetFont(,,06,,,,255)
//EndIf
oPrinter:TextOut(Space(tamrel),.T.)
cTexto :=MemoRead(cArq)
nLinhas :=mLCount(cTexto,tamrel,1,.F.)
For nA:= 1 To nLinhas
cLinha:=MemoLine(cTexto,tamrel,nA,1,.F.)
If Left(AllTrim(cLinha),1)==Chr(12) //SALTO_PAGINA
oPrinter:NewPage() //eject
ElseIf Left(AllTrim(cLinha),80)==Repl("Ä",80) //se for 196
oPrinter:TextOut(Repl(hb_oemTOansI("-"),136),.T.)
Else
oPrinter:TextOut(hb_oemTOansI(cLinha),.T.)
// oPrinter:TextOutAt(oPrinter:MM_TO_POSX(nA),oPrinter:MM_TO_POSY(005),cLinha)
// oPrinter:TextOutAt(0*nCol,nA*nLin,hb_oemTOansI(cLinha))
EndIf
Next
oPrinter:EndDoc()
oPrinter:Destroy()
Return NIL