I am new to VTK and try to set Arial font for a text. The final rendered text is not Arial; rather, it is only some kind of font close to Arial. Could anyone tell how to correctly set Arial font in VTK?
The code to set the font:
legendAxis->GetLabelTextProperty()->SetFontFamilyToArial();
I found the same problem in ParaView, where the default font is Arial, but the rendered font is only a font close to Arial (and some kind of not good-looking).
I have never been able to get vtkAxisActor to respond correctly to SetFontFamily as you have done.
Instead, try:
legendAxis->SetUseTextActor3D(1)
legendAxis->GetLabelTextProperty()->SetFontFile("C:\Windows\Fonts\arial.ttf");
To point it directly at the Arial font file available for your system. Of course, you'll have to tweak the path to fit your specific OS/platform.
Let me know if it works.
Related
That's it, I'm on Mac Mojave with weasyprint-44, python 3.6, and Cairo etc. versions match. The PDF renders nicely otherwise - symbols and letters are fine - just no numbers?
So weird.
Can anyone point me in the right direction?
I was able to fix this problem by eliminating the font "Segoe UI Emoji" from a font-family CSS declaration. Numbers started appearing again once this font was removed from CSS.
The bug seems to have started with some change on macOS 10.14.4.
I am on Mac (Mojave 10.14.5) and have the same problem. I managed to fix it by defining a different font family for print. In my case, I use:
font-family: "Open Sans", Calibri, Candara, Arial, sans-serif;
everything prints out nicely.
The same issue occurs on Sierra (10.12) and High Sierra (10.13), as well as Mojave (10.14), especially when using Bootstrap 4.
The default body definition looks as follows:
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
Where both Apple Color Emoji as well as Segoe UI Emojii can cause the final PDF to not display numbers properly.
Removing all mentions of the Emojii fonts brings the numbers back.
Note: The numbers are still there, you can copy and paste them, however, they are not actually visible.
I'm trying to convert an eps (created with Mathtype) to svg format.
I don't have any problems with math characteres, but I'm unable to get any special characters (aka àâä...)
I have tried on unix and windows, and none of those works.
The font used is Arial, and is installed properly(Default on Windows, manually added in fonts folder in unix)
I have oppened the Arial font in windows font manager and the non working character are in.
They just aren't converted.
Actually, to convert I use Inkscape (with ghostscript) like this :
inkscape -z -f in.eps -l out.svg
Thanks in advance,
Edit :
Added in.eps file
https://pastebin.com/vBtUVy69
The fact that you have installed Arial on your Windows box has little to do with the problem.
Does the EPS file include the embedded Arial font ? If not then you are dependent on font substitution. You should probably post a sample EPS file so that we can look at it.
My guess is that the Arial font is not embedded, so Ghostscript substittues Helvetica, and the Helvetica font doesn't have those glyphs, or they are not encoded at the character codes which the EPS file thinks they are.
[EDIT]
The EPS comments say DocumentNeededFonts: Arial-BoldMT", so the EPS does not include the font and you get font substitution.
I can't tell you immediately why the SVG says Arial. I can guess, but in the absence of a complete description as to how you are producing the SVG I can't (obviously) be sure.
Now... if the conversion path uses Ghostscript's pdfwrite device to create a PDF file from the EPS, and that PDF file is then somehow converted to Inkscape's internal format (or directly to SVG using something other than Ghostscript) then what is happening is that Ghostscript is substituting Helvetica for the missing Arial-BoldMT and when it produces the PDF file it embeds the Helvetica font, but calls it Arial-BoldMT (or whatever). That's a consequence of the font substitution, the font that gets substituted gets renamed to the expected name.
I think you can avoid that by setting -dEmbedAllFonts to false, though I haven't tested it. Even if you do, all that happens is that the PDF file then doesn't have the font, just the same as the EPS file. So the SVG creation will (presumably) have to use a substitute font instead. All you do is shove the problem further down.
The correct answer to this is 'always embed fonts'.
You can also make the Arial-BoldMT font available to Ghostscript by editing its fontmap.GS file in ghostpdl/Resource/Init for builds where the resources are not built into a ROM file system. For builds which do use a ROM file system (eg Windows) you must pick up a copy of the Resources (from the Ghostscript Git repository), modify the fontmap.GS file and then tell Ghostscript to use the modified resources by pointing to it with the -I switch.
This is still a hack, because its a TrueType font being used as a replacement for a PostScript font, so there's a certain amount of guesswork going on inside Ghostscript, but it usually works well enough, YMMV.
I have a problem rendering the "font-smoothing" CSS property with html2canvas on all browsers I have (FF/Chrome/Safari/0pera)
But trying desperately to solve that, I eventually wondered why I had to smooth the text in the first place and i noticed that only the fonts displayed on a dark background were causing problems.
So, I made a JSFiddle to make some tests (see the link below)
If you are on Mac (I don't know about PC's browsers), you can see with jsFiddle that:
the black font on a white background is totally ok.
the white version of the same font on a black background is now bolder and messier for whatever reason.
And this would be resolved only if I apply a css "font-smoothing" property to it.
Nothing changed in the css and the font is absolutely standard.
All that changed is the constrast: dark background with a bright font or the contrary.
So, clearly, it's not a problem related to the font or to a technically blocking issue. It just depends on the background and the font color.
I originally thought it was because of my fancy font but even the standard webfonts will generate the problem.
So, at the end of the day, it only seems to be a matter of contrast.
Black on white is ok while white on black is not.
Is there any (css) workaround to get the same results, whatever the background luminosity/contrast or font color, whitout using "font-smoothing" as a non standardized fix then?
The contrast thing is probably a known issue and I can't believe it has no standard fix or, at least, a workaround that would work without browser-specific css properties.
Applying a css property according to the background color seems very awkward.
Here is the html:
<div class="white_no_smoothing">Test of text 0123</div>
<div class="black_no_smoothing">Test of text 0123</div>
<div class="black_smoothing" >Test of text 0123</div>
Here is the CSS:
.white_no_smoothing{
background:#fff;
color:#000;
width:250px;
height:50px;
display:block;
font-size:36px;
}
.black_no_smoothing{
background:#000;
color:#fff;
width:250px;
height:50px;
display:block;
font-size:36px;
}
.black_smoothing{
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background:#000;
color:#fff;
width:250px;
height:50px;
display:block;
font-size:36px;
}
JSFiddle:
https://jsfiddle.net/Lzy4s4tw/3/
Thanks.
A quick question regarding the Chrome Badge/Browser Action API.
Is there a method to set the badge text colour? (much like you can with the back colour).
I'm sure I remember seeing a reference to a method such as SetBadgeTextColor() somewhere on the Internet (not sure where, mind).
Edit: Chromium Wiki - Browser Actions Proposal
The link above is where I saw a method to set the badge text colour. Was this proposal ever implemented?
You cannot change the text color directly.
What you can do is to paint the base image on a canvas, then draw the text using your desired color and finally use chrome.browserAction.setIcon to update the badge.
chrome ext detects badge bg color (light or dark) and set text color automatically (black or white). if your background color is around the boundary of those. try to increase or decrease your bg color code e.g your bg color is red #FF0000 then chrome will detects it as light but when you decrease the color code hex to #FE0000 it will detected as dark, and it's still solid red in our eyes
I have used font-family in css as simsun. But there is no font in my system called simsun but I have to know what the font is taken by a browser to display.
Try cutting and pasting into word (or another word processor), and then look at what font word is using.
It depends on browser. But you can set list of fonts in your css-file:
font-family:'Lucida Grande','Verdana',sans-serif;