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.

Responder a