.webp diretamente do arquivo de texto para impressãojson de plataforma cruzada e personalizada suportada Em primeiro lugar, você deve baixar handwriter.py ou copiar seu código -fonte para seu IDE. Se você deseja usar configuração personalizada ou predefinições de fontes, basta clonar o Handwriter diretamente:
gitclone https://github.com/Unbinilium/Handwriter.git
Em segundo lugar, instale dependências que o Handwriter-Python3 é necessário:
pip3 install uuid pillow twine setuptools wheel tox pytest handright
Em terceiro lugar, digite o caminho do manuscrito e execute handwriter.py por python3 handwriter.py , siga as dicas exibidas no console. Ele gera arquivo de saída .webp usando a configuração padrão.
Por último, mas não menos importante, para evitar alguns erros raros, garantir que o nome do seu arquivo de texto seja *.txt e o nome e o texto sejam codificados com UTF-8 . Para fontes personalizadas, use o arquivo TruetyPefont , qual extensão é .ttf e eu recomendo usar fontes de valor de manuscrito por padrão. O Remmber OutfilePath é um caminho de diretório, mas não um caminho de arquivo, o nome de outfilen é gerado automaticamente pelo UUID .
Para maior personalização, edite o arquivo de configuração do Handwriter-Python3 chamado handwriter.json manualmente, o exemplo padrão está aqui:
{
"text_file_path" : " ~/*.txt " ,
"font_file_path" : " ~/*.ttf " ,
"output_path" : " ~/ " ,
"background_color" : " white " ,
"background_width" : 2480 ,
"background_hight" : 3500 ,
"font_color" : " black " ,
"font_size" : 80 ,
"font_size_sigma" : 2 ,
"perturb_x_sigma" : 2 ,
"perturb_y_sigma" : 2 ,
"perturb_theta_sigma" : 0.05 ,
"line_spacing" : 80 ,
"line_spacing_sigma" : 3 ,
"word_spacing" : -30 ,
"word_spacing_sigma" : 3 ,
"left_margin" : 150 ,
"top_margin" : 150 ,
"right_margin" : 150 ,
"bottom_margin" : 150 ,
"end_chars" : " ,。》?;:’”】}、!%),.>?;:]}!%)′″℃℉ "
} Todo o *_path deve ser especializado. Em seguida, execute handwriter.py com o caminho do arquivo de configuração do argumento por python3 handwriter.py <configuration file path> .
A definição de parâmetros de configurações de tipo básico está aqui. Para fortalecer a nitidez e a clareza do texto, usando o tamanho grande do papel ( background_width , background_hight ) e Big font_size é sempre recomendado. Observe que o parâmetro line_spacing deve sempre maior que font_size . Se você considerando que o espaçamento das palavras é muito grande, defina -a como um número negativo.
- ______________________________________________________
^ | Paper ^ |
| | word_spacing | top_margin |
b | left_margin |< --- >| v |
a | < --- > |-----------------------------| - |
c | - ------------ ------------ ^ |
k | ^ | ******** | | ******** | | line_ |
g | font_ | | ** | | ** ** | | |
r | size | | ** | | ** ** | | spacing |
o | v | ** | | ******** | v |
u | - ------------ ------------ - |
n | |-----------------------------|< -------- > |
d | ------------ right_margin |
| | | ******** | |
h | | *** ** | |
i | | ** | |
g | | ** char | |
h | ------------ |
t | ^ |
| | | bottom_margin |
v | v |
- |____________________________________________________ |
|<------- background_width -------> | Normalmente, o parâmetro font_color é definido como black e background_color é definido como white , usando o perfil de cores RGBA e sinta -se à vontade para definir a cor especializando o nome da cor. Além disso, o background_color pode ser um caminho de arquivo de imagem , neste caso background_color significa um caminho de arquivo de imagem em segundo plano , tente isso se desejar usar uma imagem de fundo personalizada.
O parâmetro *_sigma significa intervalo de perturbação aleatória e é sempre determinada pela fonte que você usou, sempre altere-a a que corresponde perfeitamente à sua fonte personalizada manualmente. Por exemplo, "font_size_sigma":2 significa tamanho do caractere perturbador aleatoriamente no range font_size ± 2 . Da mesma forma, "perturb_theta_sigma":0.05 significa raio de rotação de traço de caracteres de caracteres, perturbador aleatoriamente, no alcance horizontal ± 0.05 . Para evitar um caractere especial como ,。》?;:'”】}、!%),.>?;:]}!%)′″℃℉ aparece no recuo da linha, que não está seguindo em geral as convenções de escrever que parecem estranhas, é necessário um parâmetro end_chars especializado.
Em primeiro lugar, você deve baixar handwriter.cpp ou copiar seu código -fonte para seu IDE. Se você deseja usar as predefinições de fontes padrão, basta clonar o Handwriter diretamente:
gitclone https://github.com/Unbinilium/Handwriter.git
Em segundo lugar, execute handwriter.cpp com argumentos configurados , e os argumentos devem seguir o exemplo do modelo abaixo:
handwriter.cpp <TEXT PATH> <OUT PUT PATH> <FONT(1) PATH> <FONT(2) PATH> ... <FONT(n) PATH>
Cada argumento é dividido pelo espaço e siga a sequência de exemplo, o arquivo de texto em <TEXT PATH> não pôde estar vazio e <OUT PUT PATH> deve conter o nome do arquivo com extensão de arquivo .html , o número do caminho das fontes é limitado pelo tamanho int . Tenha cuidado para o manuscritor requer pelo menos 1 caminho da fonte.
Por exemplo, podemos usar 4 fontes personalizadas para simular a caligrafia em /usr/local/example.txt :
handwriter.cpp "/handwriter-master/example.txt" "/handwriter-master/example.html" "/handwriter-master/font/font1.ttf" "/handwriter-master/font/font2.otf" "/handwriter-master/font/font3.woff" "https://fonts.gstatic.com/example.woff2"
Ele simplesmente converte example.txt em example.html com o estilo de fonte querido, por isso é conveniente usar diferentes tipos de fontes que apenas determinadas pelo seu navegador. Além disso, o formato do caminho é flexível, o caminho local ou o URL estão ok. Caso contrário, eu recomendo usar fontes de valor manual por padrão. Para uma personalização adicional, como o título HTML , o tamanho da fonte e o espaço da margem , edite o #define in handwriter.cpp :
# define HTML_TITLE " Handwriter "
# define FONT_SIZE_MIN 21
# define FONT_SIZE_MAX 25
# define FONT_SIZE_PRECISON 0.1
# define MARGIN_MIN 5.0
# define MARGIN_MAX 5.5
# define MARGIN_PRECISION 0.01Por fim, clique duas vezes para abrir o HTML gerado no seu navegador e imprimi -lo com sua impressora, a letra falsa!
Atualmente, o Handwriter-CPP é apenas uma idéia muito simples e, em um nível muito baixo de conclusão, na verdade, com um algoritmo muito desajeitado. Para quem como seu professor pode ver através do seu truque facilmente.
Para uma geração de manuscrito, mais graus de transformação de liberdade é necessária, como posição horizontal, posição vertical e tamanho da fonte. E toda a palavra deve ser perturbada aleatoriamente, incluindo seu ângulo de rotação do AVC. Também é necessário algoritmo aleatório, mas não temporariamente aleatório, para pressão da caneta, a velocidade de movimentação do NIT e assim por diante. E é melhor usar o braço mecânico para simular a caligrafia em vez da impressora.
Eu escrevi este programa apenas para se divertir e aprender personagens codificam um princípio mais profundo ao praticar. Obviamente, para tornar isso perfeito, o uso de C ++ e HTML não é uma boa ideia, tente o manuscrito-python3 .
Manuscritor escrito por Unbinilium. Todas as predefinições de fontes são da Internet, uma fonte chinesa de Hanyi.