TLF - imagens

0 views
Skip to first unread message

Hugo Ferreira

unread,
Dec 11, 2017, 6:11:04 AM12/11/17
to ri...@googlegroups.com
Bom dia,

Estou a desenvolver um pequeno processador de texto dentro da minha aplicação utilizando TLF.

A parte do suporte a imagens está a dar luta e queria ver se tinha a sorte de encontrar aqui alguém que tenha trabalhado com isto e conheça estes problemas ou num contexto geral do Flex consiga ajudar.

Problema 1:
Para inserir imagens, estou a usar o método insertInlineGraphic do EditManager e funciona como o esperado, ou seja, insere uma imagem no local onde o cursor estiver a piscar (a imagem é um binário renderizado num Sprite).
Para editar imagens, dou um clique direito na imagem (menu de contexto) e escolho a opção de editar (permito alterar a largura, altura e se faz wrap texto à direita ou à esquerda).
Ao tentar editar, o curso tem de estar a piscar (posicionado) imediatamente antes da imagem, o que não é nada conveniente e o utilizador não se vai aperceber e assim a edição não vai produzir resultados.

Problema 2:
Uma vez que a edição da imagem é na própria imagem, não queria que o cursor fica-se com um ícone de edição como acontece no texto. Para tal mexi em várias propriedade da imagem sem sucesso: "useHandCursor = true", "mouseChildren = false" e "buttonMode = true".

O problema 2 é mais um pormenor mas o 1 é mais gravoso.
Acho que uma possível solução passaria por encontrar a imagem e mover o cursor mas assim não sei como.

Cumprimentos,
Hugo.


João Fernandes

unread,
Dec 12, 2017, 6:20:26 AM12/12/17
to ri...@googlegroups.com
Gostava de te ajudar Hugo mas já não uso Flex há mais de 2 anos e o TLF sempre foi uma dor de cabeça. 

--
Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para riapt+unsubscribe@googlegroups.com.
Para publicar uma mensagem neste grupo, envie um email para ri...@googlegroups.com.
Visite este grupo em https://groups.google.com/group/riapt.
Para mais opções, visite https://groups.google.com/d/optout.

Rui Cruz

unread,
Dec 12, 2017, 6:25:35 AM12/12/17
to ri...@googlegroups.com
E eu TLF só textos e apenas com TextFlow, Imagens é uma dor de cabeça porque tens de contar com os dpi's que vais imprimir pois vai-se reflectir na qualidade de impressão, tens também de ter em atenção os perfis de cor das imagens. Provavelmente mais te vale usares o AlivePDF.

Hugo Ferreira

unread,
Dec 12, 2017, 6:45:16 AM12/12/17
to ri...@googlegroups.com
João:
Obrigado na mesma.

Da vasta checklist de funcionalidades tenho, não tem dado dor de cabeça, exceto a parte das imagens.
Acabei por perceber que o que está implementado não serve de todo para mim.
Se fornecer um URI dá para exportar e importar porque é uma string mas como estava a fazer, simplesmente tenta converter para string ficando na exportação [Sprite object] e naturalmente depois na importação um quadrado branco.

Já analisei o código do TLF e estou a proceder ao patch para tentar suportar base64 string. Assim irei passar apenas um base64 ou bytearray, na exportação em XML ou HTML irá exportar como base64 e na importação irá criar o objecto visual, pelo menos espero eu.
Isto irá também melhor imenso a exportação para HTML.

Rui:
Antes de começar isto, fiz uma checklist de todas as funcionalidades que pretendo implementar, esperando alguns problemas no terreno e para meu grande espanto só mesmo as imagens é que me obrigaram a entrar dentro do código fonte do TLF. Consegui implementar tudo (paginação automática, formação de texto, corretor ortográfico, etc, etc), exceto isto mas espero vir a conseguir (tem mesmo de ser).
Da minha lista, só uma funcionalidade (importantíssima) é que foi difícil encontrar solução: Impressão.
O Flex suporta impressão de objetos e consegue-se reproduzir a impressão de todas as páginas com pouco esforço mas não é preciso um olho clínico para perceber que o Flex (independentemente da antiguidade da tecnologia), é muito bom em muita coisa mas péssimo na impressão.
A melhor impressão que se pode ter é por PDF e isso já está mais do que estudado.
Para imprimir para PDF, analisei as diversas opções que tenho e cheguei a 3 possibilidades:
  • Criar um novo exportador para o textflow para PDF-A usando o AlivePDF: Um esforço de gigante para ficar perfeito mas ficará um PDF-A perfeito (ou não) vectorial e com seleção de texto;
  • Exportar o textflow para PDF (não norma A) usando o AlivePDF (ou qualquer outro): Prints de cada página não vectorial (quanto maior a densidade da imagem, melhor a qualidade e maior o tamanho do ficheiro), não selecionável mas penso que se implementa isto em poucas horas - vale o esforço do teste;
  • Exportar para HTML usando o exportador de HTML do TLF (que não é perfeito) e dai converter para PDF usando isto localmente: https://wkhtmltopdf.org (este é o conversão "de facto" que criar PDF-A com qualidade praticamente perfeita num único binário existente para os 3 OS) e depois seria invocar o executável a partir da aplicação.
Estou a considerar a segunda opção para impressão e eventualmente no futuro com mais tempo (se é que algum dia o vou fazer), a primeira opção.
Caso falhe nos testes, a terceira opção sei que irá funcionar.

No dia 12 de dezembro de 2017 às 11:25, Rui Cruz <info.r...@gmail.com> escreveu:
E eu TLF só textos e apenas com TextFlow, Imagens é uma dor de cabeça porque tens de contar com os dpi's que vais imprimir pois vai-se reflectir na qualidade de impressão, tens também de ter em atenção os perfis de cor das imagens. Provavelmente mais te vale usares o AlivePDF.

Rui Cruz

unread,
Dec 12, 2017, 7:03:48 AM12/12/17
to ri...@googlegroups.com
Há uma 4 opção (feia), que é renderizares o TLF (grande) com scale necessário mediante os dpi's de impressão (terias depois a nível de tamanho das fontes dividir a escala), depois tirar snapshot e guardar jpg/png..

Hugo Ferreira

unread,
Dec 12, 2017, 7:08:23 AM12/12/17
to ri...@googlegroups.com
Penso que essa opção é similar à segunda que mencionei mas com a diferença que não colocas no PDF, penso eu.

Rui Cruz

unread,
Dec 12, 2017, 7:12:16 AM12/12/17
to ri...@googlegroups.com
Ah sim tens razão.. li por alto dsclpa

Hugo Ferreira

unread,
Dec 13, 2017, 5:16:09 AM12/13/17
to ri...@googlegroups.com
Já resolvi o problema da persistência de imagens.

O exportar do TLF, sempre que encontrar uma imagem que seja um objeto, passou a converter em string base64.
Se enviar o xml de volta para o motor de TLF, passou a renderizar todas as strings base64 de volta em imagens, perfeitamente idêntico ao original.

Se por acaso alguém vir a precisar, diga. 

Reply all
Reply to author
Forward
0 new messages