in our custom QtWebKit browser users can print their html e-mails and other html pages. It works good for unicode(utf-8) htmls with standard characters in german, english, russian and over languages. But if there is any special unicode symbols or if html contains chinese or japanese language characters, printer output is totally broken. We have tested this with standard windows printing system(XPS printer), with some over physical printers and with pdf printer too(PDFCreator).
Output is broken only for QPrinter::NativeFormat and QPrinter::PostScriptFormat. Using QPrinter::PdfFormat outputs file without errors. Also, it is broken only on windows systems(tested on Windows XP and Windows 7 32-/64-bit). Printer output on linux doesn't have this problem. Mac OS isn't tested.
If you zoom printed with XPS or pdf printer document you can see what chinese/japanese and special symbols are printer atop of previous standard characters. I have added zoomed screenshot named printing_nativeformat_zoom.jpeg to archive for clarity.
Attached archive contains simple test project which prints html page two time:
first time with native format
second time with pdf format to the file
Other files included:
print.html - is an example html page with some special symbols and japanese symbols.
printing_nativeformat.jpeg - is an screenshot of broken printout with native format and Microsoft XPS printer.
printing_nativeformat_zoom.jpeg - zoomed printout of native format with Microsoft XPS printer.
printing_pdfformat.jpeg - screenshot of file created with QPrinter::PdfFormat which contains no error.
printing_webview.jpeg - screenshot of QWebView widget with print.html file loaded.
P.S.: For included Qt project: make sure you have copied print.html file into the same folder where the created executable is. pdf file will be created in the same folder with following filename: print.html.pdf
Thank you in advance!