https://bugs.documentfoundation.org/show_bug.cgi?id=145322
--- Comment #10 from Mark Hung <mark...@gmail.com> --- @himajin100000 Printing in vertical layout always uses ExTextOutRenderer[1]. That is, it uses ancient, magical, messy Win32 API, ExtTextOutW, to render the text. To render CJK upright text in vertical writing with ExtTextOutW, one has to prepend a '@' to the font name and call CreateFontIndirectW to create a different font. But for some other characters, one needs to create different font with altered escapement and orientation to force 90 degree rotation. Those were removed in bibisected fault commit[2]. Even if the commit is reverted, I still don't know how to make offset correct for ExtTextOutW. Positions from HarfBuzz doesn't work well with ExtTextOutW. More correct way other than tweaking the position by experiments: - Make DWriteTextOutRednerer works with a printing DC, maybe by create a compatible DC and bitbliting it, or create command list feature introduce in Windows8. - Make Skia works with printing. Check with Luboš Luňák, maybe he has an idea how to print on SKia. - Treat different logical font created with CreateFontIndirectW(), as fallback font. ( i.e. Glyphs that needs a force rotated font has to be renered in fallback layout with the rotated font. ) Non of them are easy for me, but I'll try to come out a commit that revert[2], that at least improves character orienation. [1] https://opengrok.libreoffice.org/xref/core/vcl/win/gdi/winlayout.cxx?r=677434a5#276 [2] https://cgit.freedesktop.org/libreoffice/core/commit/?id=5686c1aca40beb9514d40c86b4a3780a8a1334ba [3] https://docs.microsoft.com/en-us/windows/win32/direct2d/printing-and-command-lists -- You are receiving this mail because: You are the assignee for the bug.