Jump to content

Alexander Sviridenkov

  • Content Count

  • Joined

  • Last visited

  • Days Won


Alexander Sviridenkov last won the day on September 10

Alexander Sviridenkov had the most liked content!

Community Reputation

187 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Alexander Sviridenkov

    HTML Library 4.5 Released

    Thank you, it was compiled with last 11 pre-release build, looks like it is incompatible with release build.
  2. Alexander Sviridenkov

    HTML Library 4.5 Released

    Thank you for reporting, groupproj added. Do you get this error when using installer or when installing manually?
  3. Whats's new 1. Improved performance for all document types. 2. Special TextMode mode for fast extracting of text content. 3. Outlook message format support (.MSG) 4. Markdown format support (.MD). 5. New RTF document parser. 6. HTML to DOCX conversion (basic implementation). 7. Improved EMF and WMF to SVG conversion. 8. Creation amd modification of DOCX files. 9. Text bit index classes for fast document search/indexing. 10. OpenType font class now supports creating text layouts, applying OpentType features and text measurement. 11. Improved font glyph to SVG conversion. 12. Support for XLSB format. 13. Support for old Delphi versions (from Delphi 7). 14. Support for mobile platforms. 15. Delphi 11 Alexandria support. What is Office Library: native cross-platform Delphi library for converting all MS Office formats to HTML and displaying it in your application or browser. No external dependencies, support for all Delphi versions from Delphi 7, native classes for work with OpenType fonts, special classes for creating full text search document indexes. Supported formats: Rich Text Format (RTF) MS Word 6-2007 binary format (DOC) MS Word XML document (DOCX) MS Power Point binary format (PPT) MS Power Point XML format (PPTX) MS Excel binary format (XLS) MS Excel XML format (XLSX) MS Excel XML binary format (XLSB) Adobe PDF format (PDF) Supercalc format (SXC) EPUB (electronic books). Markdown. Outlook Message (MSG) More details: https://delphihtmlcomponents.com/office.html Compiled demo applications (documentation is included): https://delphihtmlcomponents.com/FileBrowser.zip https://delphihtmlcomponents.com/FontBrowser.zip 30% discount on Office Library Site License is available until end of September. Please use coupon code OFFICE2021
  4. Alexander Sviridenkov

    Custom text rendering

    Yes, font class can read and write TTF and WOFF, and also extract font of any format from PDF (CFF, PostScript, etc) and convert it to TTF (not simply wrap as CFF but convert outlines). Visual glyph editing can also be easily implemented using SVG. Please check http://delphihtmlcomponents.com/FontBrowser.zip compiled demo, it shows all capabilities - read, write, extract, and contains visual glyph editor (simple HtPanel). Only around 100 lines of code. BTW, font class can import glyphs from SVG path. This is part of Office library.
  5. Alexander Sviridenkov

    Custom text rendering

    Just made this for fun. Canvas for HTML library which uses no system text/font API. Everything is processed inside library. Fonts are loaded directly from TTF file/stream. Strings are converted into sequence of glyphs and transformed by various opentype features (kerming, glyph substitution/reposition, RTL, ligatures, etc.). After that glyphs are converted to graphics paths and rendered using D2D FillGeometry method. https://s9.gifyu.com/images/ownfont.gif
  6. Alexander Sviridenkov

    HTML Library 4.5 Released

    HTML Component Library, HTML Editor Library and HTML Report Library version 4.5 released. What's new: 1. RAD Studio 11 Alexandria support. 2. New THtMarkdownPanel component for displaying Markdown documents. 3. Improved Markdown support (tables, links, etc.) 4. Improved rending or large SVG images 5. Improved Flex support. 6. Improved handling of incorrect markup (tag order). 7. Added THtPanel.OnShowResizeHint event. 8. Added THtDocument.EmbedAllImages method for embedding images into document. 9. Added THtPanel.Script property for storing common scripts. 10. Added PrintScale parameter to Print method for scaling pages. 11. Added SplitBlocktoRoot method for splitting nested blocks (f.e. citation in emails). 12. Support for disablet attribute in inputs. 13. Added HighlightCheckedNodes property in THtVirtualXMLTree. 14. Improved scrolling of page with many input controls. 15. Added PNG encoding of pasted images for FMX. 16. New Editor event OnSurrogatePair. This event is called on second (low surrogate) char and when it returns true, default char processing is skipped. 17. SVG: added support for preserveAspectRatio with values none, meet and slice. 18. Faster rendering of large break-all blocks. 19. Support for type="number" in inputs. 20. Added Remove method to JQuery. 21. Addes support for attr!=value selector 22. Added support for summary and details elements. 23. DOCX to HTML conversion is now supported in Delphi 5 - 7. Fixed issues: https://delphihtmlcomponents.com/fixed45.html https://delphihtmlcomponents.com/
  7. Alexander Sviridenkov

    HTML Office Library: Font Browser Demo

    New compiled demo showing font management capabilities of HTML Office Library. it can: Open TTF or WOFF font. Extract embedded fonts of any type from PDF file. Save extracted font as TTF or WOFF. Show font glyphs. Show glyph control points. Copy glyph as SVG. 100 lines of Delphi code. Everything is cross platform (Win, Mac, Linux, iOS, Android) https://delphihtmlcomponents.com/FontBrowser.zip
  8. Alexander Sviridenkov

    Little teaser

  9. This is my fault, code for image should be <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="210mm" height="297mm"/> <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="210mm" height="297mm"/> because 100vh is calculated from inner page size. Using this code image covers page exactly. flexbox is supported in 4.4, but for paged media tables have better support (spliting across pages).
  10. As I wrote previously, this can be solved by image in page header (position: running(heading)). Please use the following HTML: <!DOCTYPE html> <html> <style> .page {page-break-before: always} @page {size: A4 portrait; margin: 0px} </style> <body> ...document content... <div style="position: running(heading);height:70px"> <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="100vw" height="100vh"/> </div> </body> </html> Result:
  11. Header and footer should be defined manually, library supports CSS position: running(heading/footer) Page background can be defined by image in header with fixed position and 100% width/height. To split document to pages add CSS page-break-before/after: always to any element. Finally call THtDocument.HTMLtoPDF
  12. Alexander Sviridenkov

    Parsing Text search expression

    It can. Just override GetDialect method (uses sqlparse) type TCustomExpression = class(TSQLExpression) private FDialect: TSQLDialect; public function GetDialect: TSQLDialect; override; destructor Destroy; override; end; destructor TCustomExpression.Destroy; begin FDialect.Free; inherited; end; function TCustomExpression.GetDialect: TSQLDialect; begin if FDialect = nil then FDialect := TSQLDialect.Create; Result := FDialect; end; procedure TForm67.Button1Click(Sender: TObject); var SE: TCustomExpression; begin SE := TCustomExpression.Create(nil); SE.ParseString('user=''john'' or user = ''peter'''); ShowMessage(SE.Node.Children[0].Children[1].Name); //=john end; Also there is pascal expression class in htscriptparse unit: var SE: TScriptExpression; begin SE := TScriptExpression.CreateAndParse('(user=''john'') or (user = ''peter'')'); SE.Variables['user'] := 'peter'; ShowMessage(SE.Calc)
  13. Alexander Sviridenkov

    Synedit Help

    Usually schema changing occurs rarely enough (much less frequently that typing in query editor) so reloading changed part right after change should not affect performance.
  14. Alexander Sviridenkov

    Synedit Help

    >>This is exactly what I would like to do. Very nice! Are you parsing the whole SQL text with each keypress? Yes, but it works very fast. >>In my project the database schema is "loaded on demand" in a background thread. Queries/Scripts/Batchmove runs in that background thread. And I store the metadata also in that thread. That's why I need to get call the completion form when receiving the message. But taking into account that schema is loaded only once, is there reason to fill autocomplete asynchronously? You can start background loading when necessary and fill autocomplete only if schema is already loaded.
  15. Alexander Sviridenkov

    Synedit Help

    Maybe to use preloaded database schema? In this case completion can be filled synchronously with no significant delay.