Aviss 0 Denunciar post Postado Abril 30, 2009 Eu estou criando um documento pra imprimir direto pra impressora utilizando o VDOPrint, está quase pronto, mas não sei como colocar alinhamento justificado, ou quebra de linha (se realmente for possível fazer as duas coisas) para ficar como uma formatação de documento do word. Alguém sabe? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Abril 30, 2009 Isso você mesmo terá de programar seu algoritmo para fazer, terá de calcular o número de caracteres por linha e então fazer a justificação. Compartilhar este post Link para o post Compartilhar em outros sites
Aviss 0 Denunciar post Postado Maio 4, 2009 Isso você mesmo terá de programar seu algoritmo para fazer, terá de calcular o número de caracteres por linha e então fazer a justificação. Marcio, o que eu fiz foi: var I, X : integer; texto : string; ... I := 1; X := 56; while I < length(texto) do begin print(03, copy(texto,I, X), true); I := I + 56; end; O texto fica justificado, mas o que quero é que ao chegar no fim da linha, ela seja quebrada certinha como acontece no word, sem que parte da palavra fique na linha de cima e outra parte na próxima linha. Por exemplo: texto := 'O rato roeu a roupa do rei de roma'; Se eu quebrar a linha na palavra roupa, ou roupa fica na mesma linha ou ela vai toda para a linha seguinte, não sendo dividida. Alguma dica? Compartilhar este post Link para o post Compartilhar em outros sites
Aviss 0 Denunciar post Postado Maio 6, 2009 Entrei em contato com o Vinicius e ele me disse que realmente não tem como colocar alinhamento justificado com o VDOPrint. Eu queria testar inicialmente em impressora laser, mas o objetivo mesmo é imprimir o texto numa matricial, a solução que encontrei foi essa que segue abaixo (caso alguém precise), que ainda to testando se pode ser adaptada às minhas necessidades: { A impressora Epson LX-300 dispõe de um comando que justifica o texto. Este recurso é interessante, pois com ele podemos continuar a enviar os comandos de formatação de caracteres como condensado, negrito, italico, expandido, etc. Para o exemplo abaixo: - Coloque um botão no form; - Altere o evento OnClick deste botão como abaixo: } procedure TForm1.Button1Click(Sender: TObject); const cJustif = #27#97#51; cEject = #12; { Tamanho da fonte } c10cpi = #18; c12cpi = #27#77; c17cpi = #15; cIExpandido = #14; cFExpandido = #20; { Formatação da fonte } cINegrito = #27#71; cFNegrito = #27#72; cIItalico = #27#52; cFItalico = #27#53; var Texto: string; F: TextFile; begin Texto := c10cpi + 'Este e um teste para impressora Epson LX 300. ' + 'O objetivo e imprimir texto justificado sem deixar ' + 'de usar formatacao, tais como: ' + cINegrito + 'Negrito, ' + cFNegrito + cIItalico + 'Italico, ' + cFItalico + c17cpi + 'Condensado (17cpi), ' + c10cpi + c12cpi + '12 cpi, ' + c10cpi + cIExpandido + 'Expandido.' + cFExpandido + ' Este e apenas um exemplo, mas voce podera adapta-lo ' + 'a sua realidade conforme a necessidade.'; AssignFile(F, 'LPT1'); Rewrite(F); try Writeln(F, cJustif, Texto); Writeln(F, cEject); finally CloseFile(F); end; end; Agradeço ao Marcio pelas dicas http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites