Devido à necessidade de trabalhar, estudei recentemente a função da conversão de HTML em PDF. A tecnologia principal do HTML para PDF é como lidar com o estilo CSS complexo na página da web. Ao coletar dados on -line, verifica -se que a solução de conversão de HTML atual é dividida principalmente em três categorias:
Modo do cliente : ligue para o programa do cliente na recepção e use a função do programa cliente para preencher a conversão do arquivo PDF. Esta ferramenta de teste é: wkhtmltopdf e phantomjs. Java Jar Package Solution Analysis Modo: Java Código Análise de CSS Estilo, Tradução O arquivo HTML é o arquivo PDF. Esta categoria de teste é: Itext, Saluser voador, PD4ML. JS FRONT -END Modo de análise: JS FRONT -END ANÁLISE O arquivo HTML é o arquivo PDF.Para as soluções introduzidas na Internet desta vez, combine as necessidades dos projetos reais, faça um por um para fazer a seguinte análise em termos de desempenho e função.
1. Introdução à página de testeAo visualizar a introdução de cada caso de conversão na Internet, o estilo HTML simples, o estilo de tabela geral é suportado pelos esquemas acima ao fazer a conversão do arquivo PDF. No entanto, considerando as necessidades do negócio real, esse teste usa especialmente o estilo CSS de bootstrap (v 3.3.6), e a página também aplica os novos recursos do CSS3. Com base nesse novo recurso, escreva uma página estática HTML.
2.wkhtmltopdf testeO WKHTMLTOPDF é uma ferramenta desenvolvida usando o mecanismo de renderização da página da webkit para converter o HTML em PDF, que pode ser integrado com vários idiomas de script para converter documentos. Endereço oficial do site http://wkhtmltopdf.org/
Recursos técnicos: o WKHTMLTOPDF pode converter diretamente a página da web navegar no navegador em um PDF. Ao usar o código Java, você pode chamar a instrução CMD para concluir a função da página da Web para PDF.
Teste de função: insira a instrução de teste diretamente no CMD para visualizar o progresso do processamento.
O primeiro parâmetro: o caminho em que wkhtmltopdf.exe está localizado
O segundo parâmetro: precisa ser convertido na página HTML de PDF
O terceiro parâmetro: caminho do arquivo pdf e nome do arquivo
O efeito de exportação da página é o seguinte:
Descrição do teste:
Verificou -se que o WKHTMLTOPDF tem melhor suporte ao estilo CSS do BootStap como um todo. Os novos recursos do CSS3 não são bem suportados para fotos redondas. Alguns estilos de página falharão. Para a exibição do gráfico, o programa de exportação do gráfico de EverAart relatará um erro e não o suportará. No entanto, a ECHART tem um gráfico convertido em uma interface de imagem, que pode ser exportada para o PDF, obtendo o endereço da imagem.
3. Phantomjs TestePhantomjs é um navegador sem cabeça baseado no kernel do Webkit, ou seja, não há interface da interface do usuário, ou seja, é um navegador, mas é um clique, giro de página etc. para operações relacionadas ao projeto do procedimento. Ele fornece a interface da API JavaScript, ou seja, ao escrever o programa JS, você pode interagir diretamente com o kernel do Webkit. C/C ++ pode ser melhor desenvolvido com base no desenvolvimento do WebKit. Ele também fornece instalação e usa pacotes de diferentes instalações do sistema operacional, como Windows, Linux, Mac, ou seja, pode desenvolver e coletar projetos ou testes automáticos de projetos em diferentes plataformas. Endereço oficial do site http://phantomjs.org/
Phantomjs pode ser usado como uma página da web. O teste em CMD é o seguinte:
A página de teste é guiada da seguinte forma:
Descrição do teste:
Verificou -se que Phantomjs suporta o estilo do BootStap. Os novos recursos do CSS3 não são bem suportados para fotos redondas. Alguns estilos de página falharão. Para a exibição de gráficos de Echart, ele também pode ser exportado diretamente. O efeito é o seguinte:
3.ItExt e Sauser voadorO iText implementa o HTML2PDF, velocidade rápida, baixa capacidade de correção de erros e suporta chineses (exigindo que o HTML use a codificação Unicode), mas a China suporta uma fonte chinesa, código aberto. O Flying Sausser implementa HTML2PDF, baixa capacidade de correção de erros, suporta uma variedade de fontes chinesas (alguns estilos não podem ser reconhecidos), de código aberto.
Recursos técnicos: Análise e processamento do estilo HTML CSS com base na programação Java, atualmente suporta apenas páginas e estilos mais simples. Para o estilo de CSS3 e a complexa compatibilidade do estilo CSS, o CSS3 é extremamente ruim. Quando o conteúdo da página é longo, o tempo de processamento é lento. Endereço de referência: https://code.google.com/archive/p/flying-saucer/
Resultados do teste: A página de teste deste experimento não pode ser lançada.
Descrição do teste:
Verificou -se que os dois projetos de código aberto do ITEXT e SAUSER Flying não são basicamente compatíveis com o CSS3. Para tabelas simples, exportações de dados estatísticos e tecnologias atualizadas incluem a tabela de bootstrap, a tabela de dados easgrid exportação. Este esquema introduzido on -line não é recomendado.
Teste 4.PD4MLO PD4ML é uma biblioteca de classe de Java Pure. Site de referência: http://www.pd4ml.com
A vantagem do software é:
Os atributos HTML e CSS suportados são relativamente cheios e a distorção de conversão é relativamente pequena. A tolerância de falhas das tags de arquivos da Web e erros gramaticais CSS é melhor. Sem controle adicional, suporte a saída de transformação da figura.
A desvantagem do software é:
Sem código aberto, a mais recente versão demo, após o download e teste, verifica -se que a conversão chinesa não é suportada. Você deve comprar uma versão comercial. (Aqui estão muito bem. Testando problemas de iluminação não podem estar disponíveis e verifica -se que ele não é suportado posteriormente). Algumas das versões antigas após a rachadura podem resolver o problema ilegível, mas o estilo CSS suportado não está completo.
Resultados do teste:
Descrição do teste:
A nova versão do chinês iluminou, mas suporta alguns estilos de CSS. Após o decipador da versão antiga, a compatibilidade de estilo da interface é ruim e o suporte ao BootsRTAP é baixo. Considerando que é um software de carregamento e o desempenho não é perfeito.
5.html2Canvas TesteHTML2CANVAS é uma boa biblioteca de classe JavaScript. O HTML2Canvas usa as informações de estilo DOM e elemento da página e a transforma em uma imagem de tela para alcançar a função da captura de tela da página. Ele não precisa de nenhuma renderização do servidor. Quando o navegador não suporta tela, flashCanvas ou ExplorerCanvas será usado. Os seguintes navegadores podem muito bem suportar o script: Firefox 3.5+, Google Chrome, nova versão da Opera, IE9 acima do navegador. Como cada navegador renderiza as maneiras diferentes, as imagens geradas não são as mesmas. Embora ainda esteja em fase de desenvolvimento, ainda vale a pena esperar. Este plugue -in depende do plugue jQuery -in, é recomendável usar a versão mais recente.
Não suporta imagens cruzadas -domínio e não pode usar parte do plugue do navegador -in sem suportar imagens SVG, não suportar flash, não suporta ifream (pode modificar o código original de js, suportar ifream)
Ao usar o HTML2Canvas para esse tempo, descobri que muitas páginas de itens podem levar capturas de tela normalmente, incluindo gráficos de ECHART. Somente os novos recursos de uma pequena quantidade de CSS3 não são suportados. O efeito da captura de tela é melhor. No entanto, ao testar, um problema fatal foi encontrado. Após a análise de rastreamento, verificou -se que a função JS do HTML2Canvas para lidar com o estilo CSS que ele não pode reconhecer. Especialmente para módulos ocultos e exibidos, ele suporta hostis.
O efeito da captura de tela da página é o seguinte:
No entanto, o CSS da página original é inválido, a página parece anormal, o estilo oculto, a tela de estilo exibida é caótica.
Descrição do teste:
Verificou -se que o HTML2Canvas suporta melhor o estilo do BootStap. Os novos recursos do CSS3 não são bem suportados para fotos redondas. Sua principal vantagem é o front end.
6. ResumoAtravés do teste dos casos acima, a maioria dos HTML comumente usados para converter para o PDF introduzido on -line. Ao analisar o princípio desses métodos, podem ser obtidas as seguintes conclusões:
A página da Web HTML é completamente convertida em PDF e todas as soluções são insuficientes. Se for apenas uma página de formulário, o estilo HTML não adota o atributo do CSS3 o máximo possível. O estilo frontal HTML está se desenvolvendo rapidamente, os novos recursos do CSS3 têm bons efeitos, o CSS define novas regras e gramática. As aulas de conversão Java, como o ITEXT e o Flying Sauser, não podem ser compatíveis com essas alterações, porque não podem escrever as funções de conversão no tempo, e esses projetos de código aberto são a tecnologia mais antiga. A essência do PD4ML também é o estilo de processamento Java. Mas também não suporta um pequeno número de estilos CSS. E o problema chinês ilegal é inconveniente. Para o modo de navegador do cliente, o Phantomjs e o WKHTMLTOPDF são mais poderosos. O modo de captura de tela do HTML2Canvas é flexível e é uma ferramenta de captura de tela frontal leve e leve. Atualmente, algumas das funções são incompletas, mas o efeito geral não é ruim. Captura de tela para o PDF.
O acima é o conteúdo deste artigo.