Alexander Sviridenkov
-
Content Count
260 -
Joined
-
Last visited
-
Days Won
26
Posts posted by Alexander Sviridenkov
-
-
What's new video:
Demos used in video:
Map Viewer (OpenGL canvas., SVG, PDF, etc) https://delphihtmlcomponents.com/MapView.zip
Fast blur: https://delphihtmlcomponents.com/blur.zip
HTML Editor (VCL), print preview window https://delphihtmlcomponents.com/htedit.zip
Office file viewer and print preview window https://delphihtmlcomponents.com/FileBrowser.zipWhat's new:
Core
- Precise text rendering and measurement for all windows canvases: now text has the same layouot in GDI, GDI+, DX and Skia canvases on screen and printer and doesn't depend on scaling.
- Skia canvas for VCL.
- PDF export using Skia canvas - works from any canvas, not only Skia
- OpenGL canvas - useful for fast rendering of very large SVG (don't use as default canvas - it requires window handle).
- GDI canvas: improved graphics rendering speed.
- CSS var() support.
- function htmlpars.GetHTMLEncoding - determine codepage of HTML (TBytes).
- function for converting stylesheet to dark theme - TCSSStyleSheet.LighttoDark
- Support for UTF8 encoded inline SVG images.
- Optimized SVG paths seialization (smaller size)
- Optimized drawing of large SVG
- Support for individual glyph positioning in SVG text (DX attribute).
- THtCustomPath: CurveTo record now do not have initial point, all curves are defined by 3 points.
- HtPanel/Editor: support for horizontal mouse wheel
- HtPanel/Editor: Smooth scrolling in both direction
- HtPanel/Editor: Fast zoom in / zoom out in OpenGL canvas.
- Library now contains fastest native blur implementation (10-50 times faster than other). See htcanvas.FastBlur()
- Fast Base64Encode function (5-10 times faster than standard): htutils.Base64EncodeNoLF()
- THtBitmapData bitness conversion and masking methods are optimized using SIMD, f.e. Convert24to32.
- TSVGElement has GetStats methods for retrieving number of primitives, points, etc.
- Added support for system colors from CSS 4 color module: canvas, canvastext, field, fieldtext, etc.
- Bitmap images are now supported in GDI+, DX and Skia canvases.
- FontAwesome is upgraded to version 6.4. Now it contains regular (fa) and solid (fa-solid) icons.
- Support for CSS variables.
- Optimized displaying of documents containing many SVG images - like converted PDF documents (2000+ pages).
- Support for outlined and filled text (SVG).
- Support for relative image paths ('.\..')
- Improved flexbox layout.
- THtImageConverter now have CanvasClass propery - used in HTMLtoPNG conversion.
- HtPanel: OnScroll event
- New core classes documentation - /docs/HTML Library.chm/pdf https://delphihtmlcomponents.com/help/
- New demos - MapView, Blur, Skia
Editor
- Words suggestions/prediction while typing - see Words prediction section in Editor manual.
- New icons in context toolbar.
- Context and selection toolbars has acrylic background.
- All toolbars (selection, spellcheck) can be closed by pressing Esc.
- Add/edit image button in context toolbar
- Copy image button in selection toolbar
- Print preview button in context toolbar
- Add Symbol button in context toolbar.
- Spellcheck button in context toolbar.
- Windows ISpell implementation - htspellwin unit. Simply add it to uses list for spellcheking and word correction.
- Inline word correction - click on misspelled word to see suggestions.
- Windows spellecher is also used for autocorrection, suggection selection is based on Levenshtein distance. Cancelled autocorrections are remembered - words are added to exceptions list.
- Inline image cropping - use shift + resize handles
Reports and Scripts
- New preview window for VCL and FMX (OSX, Linux) - float toolbar, smooth scroll and zoom, page selection and reorder, text search, text editing and moving.
- Preview window store its maximized/normal state and position for normal state even when maximized.
- Support for var parameters of all types.
- Fixed repeat - until bug.
- Default indexed properties now workind for object proprties, f.e. property Strings: TStringList; Obj.Strings := 'test';
- 9
- 1
-
Bitmaps usually have premultiplied alpha - RGB values should be multiplied to alpha (0-1) value.
-
You can create explicit IOHandler, set it as IOHandler for client component and set MaxLineLength property for IOHandler instance.
-
HTML Office Library can display PDF, Word, Excel, Powerpoint, EPUB and other formats from any source and on any platform.
-
delphihtmlcomponents.com - create complex UI in Delphi using HTML/CSS. All native, no external dependencies.
-
IMHO such tasks should not depend on graphic library and should not require low-level graphics knowlege. What you need is object manipulation library, like vector diagram editor.
Here is simple implementation using HTML Component Library (compiled and project source). 20 minutes, 50 lines of code. You can drag images from lbrary at right side, select it, resize, rotate, delete (Del key):
https://delphihtmlcomponents.com/ImageMove.zip
It can use Direct2d or GDI+ or FMX canvas on any platform - doesn't matter.
- 1
-
A tool to simplify source code search.
Find where class or function is declared, where class descendants are declared, search only in comments or in strings, etc.
Build for Delphi and written in Delphi from scratch.
Detailed description: https://delphihtmlcomponents.com/codefinder.html
- 5
-
By default TObjectList owns contained objects. So create it with False parameter in constructor or use Extract to remove object from list.
-
It is better to use HTML parser for this.
- 1
-
Use any FMX reporting library that works on Android.
-
17 minutes ago, John Kouraklis said:Ah, thanks Alex. I will check.
Do you also have a converter from HTML to MD?
No, it general case this is not possible, only for very limited set of tags,.
-
Your HCL version has MD to HTML converter in htmarkdown unit, please use
MD := TMDParser.Create(..);
s := MD.Render;
There is also THtMardown panel which displays MD placed to HTML property.
IDE from version 11.2 uses this component for MD files and code hints.
-
Please use coupon code CS2022 (valid until end of the week).
https://delphihtmlcomponents.com/order.html
- 1
- 1
-
Code is not simple, you shoud implement IDWriteFontCollectionLoader, IDWriteFontFileEnumerator, IDWriteFontFileStream, IDWriteFontFileLoader interfaces and use Factory.CreateCustomFontCollection.
-
DirectWrite has own methods for loading custom fonts from memory.
-
9 hours ago, ErikP said:Hi, is the a developer license for HTML Office Lib ?
I only see site licence.
Thank you
Sorry, currently only Site license is available.
-
https://delphihtmlcomponents.com/office.html
Please use coupon code BFO2022
HTML Office Library is a cross platform and 100% native solution for reading and displaying MS Office files (RTF, XLS, XLSX, XLSB, DOC. DOCX, PPT, PPTX), PDF, EPUB, MD, FB2, WMF, EMF, PICT, MSG, EML, OutLook (PST and OST) and The Bat mailboxes. For Word formats (DOC, DOCX, RTF) it supports both paged and web layout.
Converted document can be displayed in VCL or FMX application (using included part of HTML Component Library) or browser. Conversion is threadsafe and do not use system API so can be used in Web serverrs. Embedded WMF/EMF/PICT vector images are converted to SVG.
Library also contains full text search engine (also 100% written in Delphi) which is faster and requires less memory than other well-know solutions.
Test on 8000 EPUB documents, 3.5 Gb.
Application Indexing Time Index Size Mem used
DocFetcher 3 min 476Mb 600Mb
dtSearch 8 min 727Mb 1000Mb
X1 Search 59 min 1260 Mb 600Mb
Copernic 13 min 1150 Mb 500Mb
Office Demo 1m 30s 145 Mb 300 Mb
There are two compiled demos available:
-
Simple document viewer: allows to view any document on hard drive using file tree on left side and HtPanel on right.
https://delphihtmlcomponents.com/FileBrowser.zip -
Search Engine demo: create full text search index for documents located in selected folders and find any document from application or Web.
https://delphihtmlcomponents.com/SearchEngine.zip
No installation required. How to use: Run application (SearchEngine.exe). Click Add folder and select folder containing office documents or Outlook PST/OST databases. Click Start indexing, wait until it is completed. Search for documents using one of the following: a) Go to Search tab and enter search query (any words). b) Click Web interface icon and enter search query.
- 2
-
Simple document viewer: allows to view any document on hard drive using file tree on left side and HtPanel on right.
-
TZipFile has RegisterCompressionHandler method so you can register custom compression class that will call libdeflate for compression. Delphi headers for Libdeflate can be found on this forum.
-
You can register own ZCompression stream implementation based on libdeflate, it will be much faster than default implementation.
-
You can add it in OnCommang* event handler
AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin: *'); AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
-
round(pos/2.55)
-
This may be related to incorrect font information returned by WinAPI for new fonts in W10/11. AFIR latest HCL versions contains workaround for this.
Whole rendering in one control is performed using single canvas class. You can set canvas class separately for each control but they cannot be mixed.
-
Default is THtCanvasGP (GDI+).
Current version works fine on Windows10/11, so I don't know what may cause this issue in 3.7.
Have you tried different fonts (Arial, Tahoma, etc)?
-
Is it present when using all canvas classes (THtCanvasGDI, THtCanvasDX, THtCanvasGP)?
Also does simple test project (form and HtPanel created at design time) has the same issue?
ANN HTML Library 4.7 released
in Delphi Third-Party
Posted
Thank you.
Processing of documents with many SVG images is improved for all platforms and doesn't depend on canvas. But fast rendering of single large SVG image is for VCL OpenGL canvas only.