У меня есть интерактивный html-файл, созданный с использованием Bokeh. Я пытаюсь преобразовать html-файл в pdf, используя xhtml2pdf, но изображения в html-файле не отображаются в pdf с помощью xhtml2pdf или pdfkit.
Я попробовал PyQt для создания PDF-файлов, и он работал нормально, но были проблемы с преобразованием в исполняемый файл, и pdfcrowd тоже работал, но это платная библиотека. Я просмотрел все другие решения в Интернете, но ни одно из них не работает.
Это генерация html файла:
source = ColumnDataSource(data=dict(x=xx, y=yy, z=val))
surface1 = Surface3d1(x="x", y="y", z="z", data_source=source, width=600, height=600)
surface2 = Surface3d2(x="x", y="y", z="z", data_source=source, width=600, height=600)
surface3 = Surface3d3(x="x", y="y", z="z", data_source=source, width=600, height=600)
surface4 = Surface3d4(x="x", y="y", z="z", data_source=source, width=600, height=600)
l1 = gridplot([[Div(text = 'Side View 1'), Div(text = 'Front View')], [surface1, surface2]])
l2 = gridplot([[Div(text = 'Side View 2'), Div(text = 'Top View')], [surface3, surface4]])
filename = filename_out.split("\\")
layout = column(Div(text = str(filename[-1].replace('_', ' '))),Div(text = 'Absolute Warpage = ' + str(warpage)),l1,l2)
output_file(filename_out[:-1]+'.html', title = 'CMM Scan', mode = 'inline')
save(layout)
Это код для конвертации в pdf
def convert_html_to_pdf(source_html, output_filename):
from xhtml2pdf import pisa
# open output file for writing (truncated binary)
result_file = open(output_filename, "w+b")
# convert HTML to PDF
pisa_status = pisa.CreatePDF(
source_html, # the HTML to convert
dest=result_file) # file handle to recieve result
# close output file
result_file.close() # close output file
# return True on success and False on errors
return pisa_status.err
convert_html_to_pdf(str(filename_out+'.html'),str(filename_out+'.pdf'))