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. No dia 12 de dezembro de 2017 às 12:11, Rui Cruz <[email protected]> escreveu: > Ah sim tens razão.. li por alto dsclpa > > No dia 12 de dezembro de 2017 às 12:08, Hugo Ferreira < > [email protected]> escreveu: > >> Penso que essa opção é similar à segunda que mencionei mas com a >> diferença que não colocas no PDF, penso eu. >> >> No dia 12 de dezembro de 2017 às 12:03, Rui Cruz <[email protected]> >> escreveu: >> >>> 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.. >>> >>> No dia 12 de dezembro de 2017 às 11:45, Hugo Ferreira < >>> [email protected]> escreveu: >>> >>>> 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 <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 < >>>> [email protected]> 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. >>>>> >>>>> No dia 12 de dezembro de 2017 às 11:20, João Fernandes < >>>>> [email protected]> escreveu: >>>>> >>>>>> 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. >>>>>> >>>>>> On Dec 11, 2017 11:11 AM, "Hugo Ferreira" <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> 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. >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> 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 [email protected]. >>>>>>> Para publicar uma mensagem neste grupo, envie um email para >>>>>>> [email protected]. >>>>>>> Visite este grupo em https://groups.google.com/group/riapt. >>>>>>> Para mais opções, visite https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>>>> 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 [email protected]. >>>>>> Para publicar uma mensagem neste grupo, envie um email para >>>>>> [email protected]. >>>>>> Visite este grupo em https://groups.google.com/group/riapt. >>>>>> Para mais opções, visite https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>>> 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 [email protected]. >>>>> Para publicar uma mensagem neste grupo, envie um email para >>>>> [email protected]. >>>>> Visite este grupo em https://groups.google.com/group/riapt. >>>>> Para mais opções, visite https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> 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 [email protected]. >>>> Para publicar uma mensagem neste grupo, envie um email para >>>> [email protected]. >>>> Visite este grupo em https://groups.google.com/group/riapt. >>>> Para mais opções, visite https://groups.google.com/d/optout. >>>> >>> >>> -- >>> 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 [email protected]. >>> Para publicar uma mensagem neste grupo, envie um email para >>> [email protected]. >>> Visite este grupo em https://groups.google.com/group/riapt. >>> Para mais opções, visite https://groups.google.com/d/optout. >>> >> >> -- >> 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 [email protected]. >> Para publicar uma mensagem neste grupo, envie um email para >> [email protected]. >> Visite este grupo em https://groups.google.com/group/riapt. >> Para mais opções, visite https://groups.google.com/d/optout. >> > > -- > 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 [email protected]. > Para publicar uma mensagem neste grupo, envie um email para > [email protected]. > Visite este grupo em https://groups.google.com/group/riapt. > Para mais opções, visite https://groups.google.com/d/optout. > -- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para [email protected]. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Visite este grupo em https://groups.google.com/group/riapt. Para mais opções, consulte https://groups.google.com/d/optout.
