• Announce: tresvg released

    From Nicolas ROBERT@user10104@newsgrouper.org.invalid to comp.lang.tcl on Wed Oct 29 17:10:27 2025
    From Newsgroup: comp.lang.tcl


    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command.

    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Arjen@user153@newsgrouper.org.invalid to comp.lang.tcl on Thu Oct 30 09:52:35 2025
    From Newsgroup: comp.lang.tcl


    Nicolas ROBERT <user10104@newsgrouper.org.invalid> posted:


    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command.

    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    Is it also possible to store a canvas with some drawing as an SVG file?
    I now use Peter Spjuth's pdf4tcl package to store such a drawing as a PDF file, but I can imagine that a similar facility for SVG files might be useful.

    Regards,

    Arjen
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Harald Oehlmann@wortkarg3@yahoo.com to comp.lang.tcl on Thu Oct 30 11:34:42 2025
    From Newsgroup: comp.lang.tcl

    Am 30.10.2025 um 10:52 schrieb Arjen:

    Nicolas ROBERT <user10104@newsgrouper.org.invalid> posted:


    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering. >>
    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command.

    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    Is it also possible to store a canvas with some drawing as an SVG file?
    I now use Peter Spjuth's pdf4tcl package to store such a drawing as a PDF file,
    but I can imagine that a similar facility for SVG files might be useful.

    Regards,

    Arjen

    To my knowledge, the canvas replacement tkpath has the ability to save
    as svg and pdf. Take the androwish variant.

    Take care,
    Harald


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Arjen@user153@newsgrouper.org.invalid to comp.lang.tcl on Thu Oct 30 11:56:52 2025
    From Newsgroup: comp.lang.tcl


    Harald Oehlmann <wortkarg3@yahoo.com> posted:

    Am 30.10.2025 um 10:52 schrieb Arjen:

    Nicolas ROBERT <user10104@newsgrouper.org.invalid> posted:


    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command. >>
    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    Is it also possible to store a canvas with some drawing as an SVG file?
    I now use Peter Spjuth's pdf4tcl package to store such a drawing as a PDF file,
    but I can imagine that a similar facility for SVG files might be useful.

    Regards,

    Arjen

    To my knowledge, the canvas replacement tkpath has the ability to save
    as svg and pdf. Take the androwish variant.

    Take care,
    Harald



    Hm, I must look into tkpath again. I have no particular need for SVG support at this moment, I was just thinking of the possibilities.

    Regards,

    Arjen
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Nicolas ROBERT@user10104@newsgrouper.org.invalid to comp.lang.tcl on Thu Oct 30 15:25:02 2025
    From Newsgroup: comp.lang.tcl


    Arjen <user153@newsgrouper.org.invalid> posted:


    Harald Oehlmann <wortkarg3@yahoo.com> posted:

    Am 30.10.2025 um 10:52 schrieb Arjen:

    Nicolas ROBERT <user10104@newsgrouper.org.invalid> posted:


    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command. >>
    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    Is it also possible to store a canvas with some drawing as an SVG file?
    I now use Peter Spjuth's pdf4tcl package to store such a drawing as a PDF file,
    but I can imagine that a similar facility for SVG files might be useful.

    Regards,

    Arjen

    To my knowledge, the canvas replacement tkpath has the ability to save
    as svg and pdf. Take the androwish variant.

    Take care,
    Harald



    Hm, I must look into tkpath again. I have no particular need for SVG support at this moment, I was just thinking of the possibilities.

    Regards,

    Arjen
    "
    "Is it also possible to store a canvas with some drawing as an SVG file?"

    You would like this to be exported in Tk canvas format ? If I understand the question correctly,
    no, that is not planned for my package.

    However, it would be possible to export to XML for sure.
    The C API does not expose this function in public, side resvg. But it would be possible
    to include this in my package like this :
    resvg_tree_to_xml $tree
    <path fill="#000000" stroke="none" d="M 57.03125 57.625 L 57.5...Z"/>
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From meshparts@alexandru.dadalau@meshparts.de to comp.lang.tcl on Sun Nov 2 12:14:32 2025
    From Newsgroup: comp.lang.tcl

    Am 29.10.2025 um 18:10 schrieb Nicolas ROBERT:

    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command.

    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    This sound very good!
    I'm not sure I want to try to compile it though, as my limitted
    knowledge allways created issues with compile actions.
    It would be great if tresvg would be part of the BAWT framework.
    I sure would want to test this package.

    Regards
    Alex

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Nicolas ROBERT@user10104@newsgrouper.org.invalid to comp.lang.tcl on Sun Nov 2 13:59:52 2025
    From Newsgroup: comp.lang.tcl


    meshparts <alexandru.dadalau@meshparts.de> posted:

    Am 29.10.2025 um 18:10 schrieb Nicolas ROBERT:

    I'm pleased to announce the release of tresvg, a Tcl library SVG rendering.

    What is tresvg ?
    tresvg package is a wrapper around *resvg* (https://github.com/linebender/resvg)

    /*resvg* is an SVG rendering library. It can be used as a Rust library, as a C library, and as a CLI application to render static SVG files.
    The core idea is to make a fast, small, portable SVG library with the goal to support the whole SVG spec./

    Use *tresvg* if :

    - You need full SVG specification compliance.
    - You work with complex, modern SVG files.
    - Rendering quality and accuracy are priorities.
    - You need reliable text rendering.
    - You can accommodate with the build requirements.

    _Requirements_:

    Tcl 8.6 or higher.
    *tcl-cffi* >= 2.0
    *critcl* and *Tk* are optional for rendering SVG image to photo command.

    _Building_:

    You can either build the library yourself (if you have Rust installed or if you want to install it),
    or use my repository’s GitHub Actions to automatically build platform-specific binaries for you (See detail here: https://github.com/nico-robert/tresvg?tab=readme-ov-file#building-).

    _Links_:

    GitHub: https://github.com/nico-robert/tresvg

    Regards
    Nicolas

    This sound very good!
    I'm not sure I want to try to compile it though, as my limitted
    knowledge allways created issues with compile actions.
    It would be great if tresvg would be part of the BAWT framework.
    I sure would want to test this package.

    Regards
    Alex


    Yes, that is one of the requirements.
    You need to have Rust installed.
    Compiling is not very complicated, but I can understand that it might be a problem.
    If you have a GitHub account, there is another solution: fork my project and run the compilation via GitHub Actions.
    You will then be able to download the artefact for your OS.
    Otherwise, in a few days I will publish another release with the compiled libraries, which will allow you to test it.
    I will keep you informed on this forum.
    But please, I hardly ever come here, so feel free to post an issue via GitHub.

    Thank you.
    --- Synchronet 3.21a-Linux NewsLink 1.2