Bartosz Kosiorek (@gang65) commented about dlls/gdiplus/graphics.c:
margin_x = stringFormat->generic_typographic ? 0.0 : font->emSize / 6.0; margin_x *= units_scale(font->unit, graphics->unit, graphics->xres, graphics->printer_display); transform_properties(graphics, NULL, TRUE, &args.rel_width, &args.rel_height, NULL); - scaled_rect.X = (layoutRect->X + margin_x) * args.rel_width; + if (stringFormat->align == StringAlignmentNear) + scaled_rect.X = (layoutRect->X + margin_x) * args.rel_width; + else + scaled_rect.X = layoutRect->X * args.rel_width;
Still missing correct `line_align` support. It was implemented in https://gitlab.winehq.org/wine/wine/-/merge_requests/9775/diffs -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10736#note_137681