Measuring text width/height without rendering

Please check this. is a solution using canvas function get_tex_width(txt, font) { this.element = document.createElement(‘canvas’); this.context = this.element.getContext(“2d”); this.context.font = font; return this.context.measureText(txt).width; } alert(‘Calculated width ‘ + get_tex_width(“Hello World”, “30px Arial”)); alert(“Span text width “+$(“span”).width()); Demo using EDIT The solution using canvas is not the best, each browser deal different canvas size. Here is … Read more

How to show HTML or Markdown in a SwiftUI Text?

iOS 15 Text now supports basic Markdown! struct ContentView: View { var body: some View { VStack { Text(“Regular”) Text(“*Italics*”) Text(“**Bold**”) Text(“~Strikethrough~”) Text(“`Code`”) Text(“[Link](”) Text(“***[They]( ~are~ `combinable`***”) } } } Result: Update: If you store markdown as a String, it won’t render — instead, set the type to be LocalizedStringKey. struct ContentView: View { @State … Read more

C# Extract text from PDF using PdfSharp

Took Sergio’s answer and made some extension methods. I also changed the accumulation of strings into an iterator. public static class PdfSharpExtensions { public static IEnumerable<string> ExtractText(this PdfPage page) { var content = ContentReader.ReadContent(page); var text = content.ExtractText(); return text; } public static IEnumerable<string> ExtractText(this CObject cObject) { if (cObject is COperator) { var cOperator … Read more

Limited selection in a JTextField/JTextComponent?

You can use a NavigationFilter for this. Here is an example to get you started: import java.awt.event.*; import javax.swing.*; import javax.swing.text.*; public class NavigationFilterPrefixWithBackspace extends NavigationFilter { private int prefixLength; private Action deletePrevious; public NavigationFilterPrefixWithBackspace(int prefixLength, JTextComponent component) { this.prefixLength = prefixLength; deletePrevious = component.getActionMap().get(“delete-previous”); component.getActionMap().put(“delete-previous”, new BackspaceAction()); component.setCaretPosition(prefixLength); } public void setDot(NavigationFilter.FilterBypass fb, int … Read more