Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task 15: Text Improvements #18

Open
paulushub opened this issue Nov 29, 2017 · 13 comments
Open

Task 15: Text Improvements #18

paulushub opened this issue Nov 29, 2017 · 13 comments
Assignees

Comments

@paulushub
Copy link
Contributor

paulushub commented Nov 29, 2017

Complete the support of vertical texts
Complete the support of text paths
Complete multi-position and multi-angle-rotation of characters.

This work item was migrated from CodePlex

CodePlex work item ID: '421'
Vote count: '1'

@paulushub
Copy link
Contributor Author

[jonfrost@2011/02/24]
This would be a great feature - down the road I will want this.

@paulushub
Copy link
Contributor Author

[SelormeyPaul@2011/02/24]
Jon, you forgot to vote for it!

@paulushub
Copy link
Contributor Author

[UnknownUser@2011/02/24]

@paulushub
Copy link
Contributor Author

[jonfrost@2011/02/24]
I have done some work in this area - I can take this on after I finish the other task.

@paulushub
Copy link
Contributor Author

[UnknownUser@2013/02/14]

@Pat28
Copy link

Pat28 commented Sep 30, 2021

Improve vertical text support, glyph-orientation-vertical has been replaced by CSS text-orientation.
writing-mode: tb is no vertical-rl etc...

https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty

to

https://www.w3.org/TR/css-writing-modes-3/#text-orientation

`


Sorry, your browser does not support inline SVG.

Hello 日㌀㌃

Hello 24 world1 日㌀㌃ Hello 24 world2 日㌀㌃ ` ![vertical_cjk](https://user-images.githubusercontent.com/2316171/135474409-451f3d84-9bd1-4b08-b22c-75a150c7168b.jpg)

@paulushub
Copy link
Contributor Author

@Pat28 I am really preparing for this feature. There is a real work involved here since much has changed; I have just added the WOFF2 support, will need direct parsing of the the font files to support both vertical metrics and emojis.
The main problem is I need to drop a feature in the current source; support for text rendering without converting the glyphs to path. This limits the current text rendering mode, but dropping it will break current applications, so I am planning to move these features SharpVectors 2.x.

@Pat28
Copy link

Pat28 commented Sep 30, 2021

vertical_sample

Do notice CJK characters can be rendered differently in vertical mode, there are specific glyphs for these 'words'.

afbeelding

@Pat28
Copy link

Pat28 commented Sep 30, 2021

@Pat28 I am really preparing for this feature. There is a real work involved here since much has changed; I have just added the WOFF2 support, will need direct parsing of the the font files to support both vertical metrics and emojis. The main problem is I need to drop a feature in the current source; support for text rendering without converting the glyphs to path. This limits the current text rendering mode, but dropping it will break current applications, so I am planning to move these features SharpVectors 2.x.

will you include rendering support for both GDI+ and WPF etc?

@paulushub
Copy link
Contributor Author

@Pat28 will you include rendering support for both GDI+ and WPF etc?

Yes, that is the plan. The GDI+ renderer uses only path geometry for text rendering, but limited by GDI+ font features support.
WPF has a better font support through DirectWrite, but lacking colored font or emoji (available on DirectWrite for Windows 10+, but not supported by WPF) and vertical text.
GDI+ has vertical text support, which works well for the vertical Japanese texts.

By directly parsing the font files, we can have a simple shaping framework for any graphics.

@Pat28
Copy link

Pat28 commented Sep 30, 2021

Did you also have a look at SkiaSharp which is a lot faster on Windows in multi-threaded environments; it does not use GDI+ but its own in-memory rendering.
It seems to be using something called HarfBuzzSharp for rendering texts.

@paulushub
Copy link
Contributor Author

@Pat28 Did you also have a look at SkiaSharp which is a lot faster on Windows in multi-threaded environments;

Yes, I have look into it. The initial support for SVG in the Skia library is limited, but there is a recent effort to extend it. I still do not know how far they will go with this.
There is also, Svg.Skia based on the SVG.NET and SkiaSharp.Extended. But I have not used any of these and cannot tell their feature sets.

I was considering the SkiaSharp to enable uses in web development, since MS stopped allowing WPF for such applications, but may go first with SharpDX (Direct2D + DirectWrite is faster than Skia + HarfBuzz) for Windows/Server applications.
SkiaSharp + HarfBuzzSharp is quite large, only those using Linux server may be interested.

Finally, I am following the progress on .NET 6.x and it graphics system to evaluate supports. Lots of work to do 🤣

@valhentai
Copy link

Hi, has there been any progress on the rendering of vertical text ?
I grabbed the 1.8.3 version to convert a Svg to a XAML drawing but the text with text-orientation:upright is still displayed horizontaly.
Do you have any idea of when it will be implemented ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants