Tenho o seguinte código import pdfkit options = { 'page-size': 'Letter', 'margin-top': '0.75in', 'margin-right': '0.75in', 'margin-bottom': '0.75in', 'margin-left': '0.75in', 'encoding': "UTF-8", 'custom-header' : [ ('Accept-Encoding', 'gzip') ], 'cookie': [ ('cookie-name1', 'cookie-value1'), ('cookie-name2', 'cookie-value2'), ], 'no-outline': None, #'load-error-handling': 'ignore' } def textToPdf(source, destiny): path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) pdfkit.from_file(source + '.txt', destiny, configuration=config, options=options) Fiz alguns testes utilizando arquivos com extensão 'txt' e funcionou muito bem, porem quando tento com outra extensão como por exemplo 'php' da a seguinte mensagem de erro: Failed loading page Pensei que poderia ser o arquivo, mas se eu pego o mesmo arquivo 'txt' e mudo a extensão para php para de funcionar, para solucionar eu fiz a seguinte gambiarra: def textToPdf(source, destiny): os.rename(source, source + '.txt') path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) pdfkit.from_file(source + '.txt', destiny, configuration=config, options=options) os.rename(source + '.txt', source) Que funciona muito bem, ele coloca a extensão 'txt' no arquivo e depois remove, mas não queria alterar o arquivo original, e querendo ou não é um processamento desnecessário. Estou utilizando este script para percorrer pastas e sub-pastas, outro problema ao utilizar este método de renomear é que se o script for finalizado no meio do processo algum arquivo pode ficar com a extensão txt. Como posso fazer para que o pdfkit ignore as extensões? Código completo Update def fileToString(file): with open(file, 'r') as f: return f.read().replace('\n', '<br/>') return '' def textToPdf(source, destiny): path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) pdfkit.from_string(fileToString(source), destiny, configuration=config, options=options) Desta forma também funcionou, convertendo antes o arquivo para string, mas queria jogar o arquivo diretamente para não ter dois processamentos. Outro problema de fazer desta forma é porque é perdida a formatação, no momento para solucionar eu estou criando um arquivo temporário e o convertendo. Update Para "resolver" o problema estou criando um arquivo temporário, copio o arquivo original para uma pasta com a extensão "txt", converto, e envio pdf para o destino com o nome certo. Continue reading...