Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.


Friday
28 November, 2025


face

Conference logo and picture of Japan

Tokyo, Japan – The LibreOffice Asia Conference 2025 is scheduled to take place on December 13-14, 2025, at the Internet Initiative Japan Inc. headquarters in Iidabashi Grand Bloom, Tokyo. The event will bring together the Asian Open Source community to discuss developments in LibreOffice, the OpenDocument Format (ODF), and related technologies.

The conference features a diverse lineup of international speakers covering various technical and community-oriented topics. Below is an overview of the sessions organized by the speakers’ regions.

🇮🇩 Indonesia: Massive Contribution and Regeneration

The Indonesian delegation brings a strong spirit of sharing. Diah Asyanti will recount the inspiring journey of open document adoption by educators in Indonesia, a significant step for the education sector. Community sustainability is also a key focus for Ahmad Haris, who will thoroughly explore the challenges and strategies for regenerating young talent in FOSS projects.

Equally engaging, Rania Amina invites participants to dive into the fun side of contributing to LibreOffice, debunking the myth that contribution is difficult or boring. For technical enthusiasts, Sartika Lestari is ready to share practical tips on LibreOffice automation using Python ScriptForge.

🇯🇵 Japan: Host with Technical and Community Focus

As the host, the Japanese community presents topics highly relevant for both new users and developers. Kenta Ito & Yuichi Kojima will lead a beginner-friendly session designed to help users transition smoothly to LibreOffice Writer.

On the innovation front, Koji Annoura will introduce “Dana Language,” an intriguing new approach to intent-driven automation. Meanwhile, Saburo Yoshida will open perspectives on how contributing to LibreOffice is inclusive and not limited to programming skills alone.

🇩🇪 Germany: Standards and Business

Perspectives from Europe, specifically Germany, will enrich participants’ understanding of standards and business. Svante Schubert will emphasize why the OASIS OpenDocument Format (ODF) standard is crucial for long-term interoperability. Complementing this, Lothar K. Becker will dissect how Open Source has become a strategic competitive factor for the private sector.

🇹🇼 Taiwan: Customization and Debugging

Experts from Taiwan are set to share deep technical techniques. Jia, Jun Xu will demonstrate how customizing key components can significantly boost productivity. For those who love problem-solving, Buo-ren Lin & Po-Yen Huang will introduce the unique “Vibe-debugging” method to tackle bugs in LibreOffice.

🌏 Other International Participation

The conference is further colored by speakers from around the globe. From India, Manish Bera will share effective strategies for growing the LibreOffice community. Tomaž Vajngerl from Slovenia will showcase cutting-edge features in Collabora Online.

Important updates regarding the community and ODF status in South Korea will be delivered by DaeHyun Sung. Finally, Eyal Rozenberg will raise vital issues regarding non-Western script support, uniting the interests of RTL and CJK language communities.

The LibreOffice Asia Conference 2025 aims to foster collaboration among Asian communities and promote the advancement of free and open-source office software.

Registration and Participation Details

Participation in the conference is free of charge, but advance registration is required via the Connpass platform.

  • Registration Link
  • Fee: Free
  • Venue: Internet Initiative Japan Inc. Head Office, Iidabashi Grand Bloom, Tokyo

Important Notice for International Participants

The Connpass registration system


Thursday
27 November, 2025


[en] Michael Meeks: 2025-11-27 Thursday

21:00 UTC

face
  • Tech. planning call, admin, lunch, sync with Laser, pulled more pieces together.
  • Published the next strip: Changing the guard:
    The Open Road to Freedom - strip#45 - changing the guard
  • Sync with Lily, J. off to see B. in hospital. Dinner with E. Ordered parts to replace and upgrade extractor fans.

Wednesday
26 November, 2025


face

Just a short personal note to say how super excited I am to get our very first release of a new Collabora Office out that brings Collabora Online's lovely UX - created by the whole team to the desktop. You can read all about it in the press release. Please note - this is a first release - we expect all manner of unforseen problems, but still - it edits documents nicely.

Collaborative development

The heros behind the scenes

There has been a huge amount of work behind the scenes, and people to say thank-you to. Let me try to get some of them:

  • First off - thanks to Jan 'Kendy' Holesovsky and Tor Lillqvist (who came out of retirement to create yet another foundational heavy-lift for FLOSS Office. I can't say how grateful we are for your hard work here on Mac and Windows respectively.
  • Then after the allotropia merger we had Thorsten Behrens to lead the project, and Sarper Akdemir to drive the Linux front-end.
  • Towards the end of the project we were thrilled to expand things to include a dream-team of FLOSS engineers to fix bugs and add features ...
  • Thanks to Rashesh Padia for the lovely first-start WebGL slideshow presentation added to Richard Brock's content skills.
  • Thanks to Vivek Javiya for building a new file creation UI with Pedro Silva's design skills here and elsewhere.
  • Lots of bug fix and polishing work from Parth Raiyani, and Jeremy Whiting (who also did multi-tabbed interface on Mac), and to Stephan Bergmann for digging out and clobbering the most hard-core races and horror bugs that we had hidden, Caolán McNamara too who made multiple documents work, and fixed crashes and multi-screen bits.
  • With Hubert Figuière making the flatpak beautiful, and of course the indomitable Andras Timar doing so much amazing work getting all of the CI, release-engineering, app-store, translation pieces and also bug-fixing done and completed in time.
  • Thanks too to our marketing team: from Chris Thornett getting the press briefing into a good state and multiplexing quotes left and right, to Richard Brock creating beautiful blog output, to Asja Čandić socializing it all, with Naomi Obbard leading the charge.
  • Thanks also to Darshan Upadhyay for packing the community website with hard-working-beaver goodness, updated community page, as well as new build instructions, FAQ, supported pages, and much more.
  • Thanks to all of our supporters who say nice things about us, and of course to so many translators who contribute to making Collabora Online great - hopefully now the strings are all public it should be easy to expand coverage.

This is an outstanding result from so many - thank you!

What is next technically ?

There are lots of things we plan to do next, but there is so much that can be done. First - merging the work into our main product branches - and at the same time sharing much more of the code across platforms. We have some features in the pipeline already - starting to take more advantage of platform APIs for much


[en] Michael Meeks: 2025-11-26 Wednesday

21:00 UTC

face
  • Mail chew, something of a frenzy of activity. Wrote up some under-the-hood-ness for the new Collabora Office.
  • Wrote up the Collabora Office release pieces, multiplexed lots of E-mail and chat around it.
  • Band practice in the evening.

Tuesday
25 November, 2025


[en] Michael Meeks: 2025-11-25 Tuesday

21:00 UTC

face
  • Up early, breakfast, exciting day at the (packed) Nextcloud Enterprise Day, lots of great questions, handed out dozens of hard-working beaver mascots, quick-start guides, and showed off the great work the team has been doing.
  • Caught up with lots of old friends, got introduced to PechaKucha as a concept: 75 slides in 20 minutes is perhaps extreme: if only we did less interesting stuff, we could have fewer slides.
  • Train to AMS, worked on new Collabora Office pieces with the team before the flight; flew, drove, worked at home, bed.

Monday
24 November, 2025


[en] Michael Meeks: 2025-11-24 Monday

21:00 UTC

face
  • Up early, various calls and preparation work around the new Collabora Office release.
  • Drove to STN in terrible weather, flight & train to The Hague for tomorrow's conference.

Sunday
23 November, 2025


[en] Michael Meeks: 2025-11-23 Sunday

21:00 UTC

face
  • Lead music at All Saints in the morning with Cedric; fun.
  • Back to make a Pizza lunch with only E. (J. with her parents). Rested - exhaustedly.

Saturday
22 November, 2025


[en] Michael Meeks: 2025-11-22 Saturday

21:00 UTC

face
  • J. out to see B&A, worked on new Collabora Office pieces though much of the day. Somehow got into Alex Rider in the evening.

Wednesday
19 November, 2025


face

LibreOffice US community banner

LibreOffice is made by hundreds of people around the world. In many countries, we have active communities that organise events, do local marketing, and help users in their local language.

But while we have many users and contributors in the United States of America, so far we haven’t built up an active local community. Of course, part of this is due to the size of the country – the US is huge, so getting people together isn’t easy.

Nonetheless, we want to try! There are many things we’d like to do in the US with LibreOffice, such as:

  • Creating merchandise designs for events and giveaways
  • Working on local marketing materials and advocacy projects
  • Organising meetups to bring contributors and users together

To get things going, we’ve created some communication groups and a social media channel. Our Discord server has a few channels which are also bridged to Matrix, so join one of those and let’s start discussing ideas. We also have the LibreOfficeUS Mastodon account where we’ll be posting updates.

We look forward to seeing you there 😊


Monday
17 November, 2025



face

Month of LibreOffice banner

We’re just over half-way through the Month of LibreOffice, November 2025. And already, 219 contributors have won cool LibreOffice sticker packs! Details on how to claim them will be provided at the end of the month, but if you don’t see your name (or username) on that page, it’s not too late to join…

How to take part

There are many ways you can help out – and you don’t need to be a developer. For instance, you can be a:

  • Handy Helper, answering questions from users on Ask LibreOffice. We’re keeping an eye on that site so if you give someone useful advice, you can claim your shiny stickers.
  • First Responder, helping to confirm new bug reports: Go to our Bugzilla page and look for new bugs. If you can recreate one, add a comment like “CONFIRMED on Windows 11 and LibreOffice 25.8.3”.
  • Drum Beater, spreading the word: Tell everyone about LibreOffice on Mastodon, Bluesky or X (Twitter)! Just say why you love it or what you’re using it for, add the #libreoffice hashtag, and at the end of the month you can claim your stickers.
  • Globetrotter, translating the user interface: LibreOffice is available in a wide range of languages, but its interface translations need to be kept up-to-date. Or maybe you want to translate the suite to a whole new language? Get involved here.
  • Docs Doctor, writing documentation: Whether you want to update the online help or add chapters to the handbooks, here’s where to start.

So, two more weeks to go! We’ll be posting more updates on this blog and our Mastodon, Bluesky and X (Twitter) accounts…


Sunday
16 November, 2025


face

La soberanía digital, o la capacidad de naciones, organizaciones e individuos para controlar su propio destino digital, es un tema fundamental del siglo XXI. En el centro de este desafío se encuentra una pregunta aparentemente trivial: ¿quién …


face

avtor: Italo Vignoli (objavljeno 14. novembra 2025 v LibreOffice, Open Document Format)

Digitalna suverenost ali sposobnost narodov, organizacij in posameznikov, da nadzirajo svojo digitalno usodo je temeljno vprašanje 21. stoletja. V središču tega izziva je na vi dez nepomembno vprašanje: kdo nadzira vrsto zapisa dokumentov, ki vsebujejo našo intelektualno lastnino ali osebne podatke?


V tem kontekstu je standardni in odprti zapis Open Document Format (ODF) – izvorni zapis dokumentov LibreOffice, ki ga podpirajo tudi drugi paketi – temeljna tehnologija za tiste, ki si prizadevajo za resnično digitalno neodvisnost.
Digitalna suverenost vključuje sposobnost nadzora dostopa do lastnih informacij brez odvisnosti od tretjih oseb, neodvisno izbiro tehnologije na podlagi lastnih potreb, zagotavljanje neodvisnega dostopa do strateških podatkov brez odvisnosti od komercialnih interesov velikih tehnoloških podjetij in ohranjanje te tehnološke samoodločbe kljub konsolidaciji trga.
Ko vladne agencije, podjetja ali državljani shranjujejo svoje dokumente v lastniških zapisih, ki jih nadzirajo velika tehnološka podjetja, se odpovedujejo delu svoje suverenosti in so odvisni od teh zunanjih subjektov za dostop do lastnih informacij.

Zakaj so zapisi dokumentov pomembni za suverenost

Oblika zapisa dokumentov je infrastruktura, ki je – podobno kot ceste, električna omrežja ali telekomunikacijska omrežja – temeljna za delovanje sodobnih družb. Premislite, kaj se zgodi, ko strateški dokumenti obstajajo le v zapisih, ki jih nadzira en sam ponudnik:
  • zavezanost ponudniku: organizacije se znajdejo v pasti, saj ne morejo preiti na alternativno programsko opremo brez dragih procesov pretvorbe in morebitne izgube podatkov.
  • izguba nadzora: oblike zapisa se lahko spremenijo brez predhodnega obvestila in brez nadzora uporabnikov, kar poveča učinek zavezanosti ponudniku.
  • ranljivost dostopa: če dobavitelj, ki nadzira obliko zapisa, spremeni zapis ali preneha z njegovo podporo, kot se je zgodilo v primeru Windows 10, dostop do dokumentov postane problematičen ali nemogoč.
  • ekonomska odvisnost: stroški licence, potrebne za izvajanje posodobitev programske opreme, ustvarjajo odnos ekonomske odvisnosti za dostop do lastnih podatkov in dejansko prenašajo lastništvo nad podatki na dobavitelja, ki nadzira obliko zapisa.

Zakaj je ODF edino orodje za digitalno suverenost?

Z ODF upravlja OASIS, mednarodna organizacija za standardizacijo, ki varuje njegov pregleden razvoj. Objavljen je kot standard ISO/IEC 26300-2015 (in kmalu ISO/IEC 26300-2025). Za razliko od lastniških oblik zapisa so specifikacije ODF javne in se lahko prosto izvajajo, razvijajo se v preglednem procesu, v katerem sodelujejo različne zainteresirane strani, ne nadzira jih ena sama vlada ali podjetje in so predmet mednarodnih organov za standardizacijo.
Izvajanje politik, usmerjenih v digitalno suverenost, zahteva jasno zavezo vodstva, ki mora dati prednost dolgoročni neodvisnosti pred kratkoročno udobnostjo.
Vse te izzive je mogoče obvladati in se sčasoma zmanjšujejo, medtem ko omejitve in stroški odvisnosti od lastniških oblik zapisov postajajo vse hujši.
To pomeni, da lahko vlade in podjetja sodelujejo pri opredeljevanju specifikacij oblike zapisa, namesto da so prisiljena pasivno sprejemati spremembe, ki jih vsiljuje en sam prodajalec na podlagi svojih poslovnih strategij.
Tako specifikacije ODF omogočajo komur koli, da

Friday
14 November, 2025


face

Digital sovereignty, or the ability of nations, organisations and individuals to control their own digital destiny, is a fundamental issue of the 21st century. At the heart of this challenge lies a seemingly trivial question: who controls the format of the documents that contain our intellectual property or personal information?

In this context, the standard and open Open Document Format (ODF) – the native format of LibreOffice documents, also supported by other suites – is the fundamental technology for those seeking true digital independence.

Digital sovereignty includes the ability to control access to one’s own information without depending on third parties, to make independent technological choices based on one’s own needs, to ensure independent access to strategic data without depending on the commercial interests of Big Tech, and to maintain this technological self-determination in the face of market consolidation.

When government agencies, businesses, or citizens store their documents in proprietary formats controlled by Big Tech, they surrender part of their sovereignty and depend on these external entities to access their own information.

Why document formats are important for sovereignty

Document formats are infrastructure, which—like roads, power grids, or telecommunications networks—are fundamental to the functioning of modern societies. Consider what happens when strategic documents exist only in formats controlled by a single vendor:

  • Vendor Lock-In: Organisations find themselves trapped, unable to switch to alternative software without costly conversion processes and potential data loss.
  • Loss of Control: formats can and do change without notice and beyond the control of users, increasing the effect of vendor lock-in.
  • Fragility of Access: if the vendor controlling the format changes the format or discontinues support, as was the case with Windows 10, access to documents becomes problematic or impossible.
  • Economic Dependency: The cost of the licence required to perform software updates creates a relationship of economic dependency in order to access one’s own data, and effectively transfers ownership of the data to the vendor that controls the format.

Why ODF is the only tool for digital sovereignty

ODF is governed by OASIS, an international standardisation organisation that protects its transparent development, and is published as ISO/IEC 26300-2015 (and soon ISO/IEC 26300-2025). Unlike proprietary formats, ODF specifications are public and can be freely implemented, are developed through a transparent, multi-stakeholder process, are not controlled by a single government or company, and are subject to international standardisation bodies.

This means that governments and companies can participate in defining the format specifications, rather than being forced to passively accept changes imposed by a single vendor based on its commercial strategies.

Thus, ODF specifications allow anyone to create an office suite that natively supports the format and promotes digital sovereignty, without any authorisation, licence fees or fear of legal action, while supporting the local software industry.

ODF enables true interoperability, not only between different software packages, but also between countries, languages and political systems. A document created in Brazil can be opened and edited in India, Germany or Japan using locally developed software. This breaks


Thursday
06 November, 2025


face

General Activities

  1. LibreOffice 25.8.2 was announced on October 9
  2. LibreOffice 25.2.7 was announced on October 30
  3. Olivier Hallot (TDF) added help pages for R1C1 Calc formula syntax and DOI citation recognition and improved and updated help on dimension lines, form properties, master documents, command line operations, online update, text boundaries and VBA constants. He also adapted the helper script used for patch submission to a version that works with Help
  4. Gábor Kelemen (Collabora) improved the script for finding unneeded includes in the code and did many code cleanups
  5. Tomaž Vajngerl (Collabora) continued working on sheet view functionality in Calc
  6. Pranam Lashkari, Dennis Francis, Szymon Kłos, Jaume Pujantell and Gülşah Köse (Collabora) worked on LOKit/jsdialog used by Collabora Online
  7. Rashesh Padia (Collabora) made the revamped Impress transition list more robust
  8. Michael Meeks (Collabora) did code cleanups and optimisations in PPTX export code
  9. Miklós Vajna (Collabora) improved image handling in Markdown import and export, continued improving the handling of tracked changes that depend on each other and fixed issues with handling of bulleted lists in PPTX files
  10. Xisco Faulí (TDF) added sqlite3, dbm and pythonw.exe to the internal Python, fixed an Impress printing crash, added a few new automated tests and upgraded many dependencies
  11. Michael Stahl (Collabora) implemented per-line paragraph properties for Word Compatibility Mode, fixed a PDF export issue involving variable fields and hidden text and fixed automatic captioning of images in Writer in the case of a single pasted image
  12. Mike Kaganski (Collabora) improved help for inserting page numbers and accessing remote files, made Google Drive two-factor authentication work on Windows, made date and time arithmetic more robust, made the loading of macro class modules happen in the correct order, preventing name conflicts, made it so the automatic updater does not run in headless mode, made the display of empty hidden paragraphs between tables match that of Microsoft Word, improved text property handling in PPTX files, reduced console noise in debug builds by marking menu items without icons, fixed an issue with Writer column separator colour sometimes not being saved, made shape identification in ODF export more robust and improved the behaviour of conditional hiding of sections. He also did many code cleanups and optimisations
  13. Caolán McNamara (Collabora) added Adobe Font Development Kit for OpenType (AFDKO) library for converting and merging Type 1 fonts to OTF when importing PDFs via pdfium and fixed an (unreleased) issue with scrolling the Calc formula input box. He also fixed crashes and many issues found by static analysers and did code cleanups and optimisations
  14. Stephan Bergmann (Collabora) did build fixes, adapted the code to compiler changes and did code cleanups
  15. Noel Grandin (Collabora) made it faster to reject tracked changes in Calc, export EPUB files and render SVGs with pattern fills. He also did many code cleanups and optimisations, especially in the area of transparency handling
  16. Justin Luth (Collabora) made it so undoing an autocorrection triggered by a newline does not

Tuesday
04 November, 2025


face

Writer has some support for interdependent (or hierarchical) tracked changes: e.g. the case when you have a delete on top of an insert. See the third post for background.

This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.

Motivation

Interdependent changes mean that the UI shows one type of change on top of another change, e.g. formatting on top of insert. Writer knows the priority of each type, so in case you have an insert or delete change and on top of that you have a formatting, then the UI will look "through" the formatting and work on the underlying insert or delete when you navigate with your cursor to a position with multiple changes and you press Accept on the Review tab of the notebookbar.

Usually this is what you mean, but what if you want to work on the formatting at the top, directly? You can now open the Manage Changes dialog using the Manage button on the Review tab of the notebookbar and if you go to the formatting change row of the dialog, then pressing Accept there will accept the formatting change, not the insert or delete change. This is possible, because the dialog gives you a way to precisely select which tracked change you want to work with, even if a specific cursor position has multiple tracked changes.

Results so far

Here is a sample ins-then-format.docx document from the core.git testcases, the baseline has an insertion, and part of that is covered by an additional formatting change on top:

Interdependent tracked change: baseline

If you just go in the middle of the document and press Accept, that will work with the more important insert change, so the result looks like this:

Interdependent tracked change: default accept result

But now you can also open the Manage Changes dialog, to be more specific by directly selecting the formatting change:

Interdependent tracked change: direct accept via the dialog

And when you accept the formatting change directly, the result will be just the insert change:

Interdependent tracked change: direct accept result

You can save and load the results in both DOCX and ODT, as usual.

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

As usual, the high-level problem was addressed by a series of small changes. Core side:

Want to start using this?

You can get a development edition of Collabora Online 25.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (26.2).


Wednesday
22 October, 2025


face

In LibreOffice C++ code, there are many cases where developers have string literals that should be used in the code. If these are messages in the graphical user interface (GUI), they should be added to the translatable messages. But, there are many cases where the string literals has nothing to do with other languages, and they should be used as they are. In this case, enumarray is helpful. Although they are not limited to string literals, and can be used for any data.

Using Symbolic Constants

In old C code, using #define was the preferred way one could give a name to a string literal or other kinds of data. For example, consider this code:

const char[] FRAME_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER = "DispatchRecorderSupplier";
const char[] FRAME_PROPNAME_ASCII_ISHIDDEN = "IsHidden";
inline constexpr OUString FRAME_PROPNAME_ASCII_LAYOUTMANAGER = "LayoutManager";
const char[] FRAME_PROPNAME_ASCII_TITLE = "Title"_ustr;
const char[] FRAME_PROPNAME_ASCII_INDICATORINTERCEPTION = "IndicatorInterception";
const char[] FRAME_PROPNAME_ASCII_URL = "URL";

And also, the relevant states:

#define FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER 0
#define FRAME_PROPHANDLE_ISHIDDEN 1
#define FRAME_PROPHANDLE_LAYOUTMANAGER 2
#define FRAME_PROPHANDLE_TITLE 3
#define FRAME_PROPHANDLE_INDICATORINTERCEPTION 4
#define FRAME_PROPHANDLE_URL 5

Although this C code still works in C++, it is not the desired approach in modern C++.

Using enumarrays

In modern C++ code, you can use enumarry, which is defined in o3tl in LibreOffice. The above code becomes:

enum class FramePropNameASCII
{
    DispatcherRecorderSupplier,
    IsHidden,
    LayoutManager,
    Title,
    IndicatorInterception,
    URL,
    LAST=URL
};

And also, the string literal definitions:

constexpr o3tl::enumarray<FramePropNameASCII, OUString> FramePropName = {
    u"DispatchRecorderSupplier"_ustr,
    u"IsHidden"_ustr,
    u"LayoutManager"_ustr,
    u"Title"_ustr,
    u"IndicatorInterception"_ustr,
    u"URL"_ustr
};

Why an enumarray?

The names are much more readable, as they do not have to be ALL_CAPPS, as per convention for symbolic constants in C. Their usage is also quite easy. For example, one can use [] to access the relevant string literal:

- xPropSet->getPropertyValue( FRAME_PROPNAME_ASCII_LAYOUTMANAGER ) >>= xLayoutManager;
+ xPropSet->getPropertyValue( FramePropName[FramePropNameASCII::LayoutManager] ) >>= xLayoutManager;

Final Notes

In LibreOffice, enumarrays are not limited to string literals, and they can be used with other data. This task is filed as tdf#169155, and if you like, you may try finding some instances in the code and modernize it using enumarrays.

To learn more about LibreOffice development, you can refer to TDF Wiki. You may follow this blog to read about EasyHacks, tutorials and announcements related to LibreOffice development.


Tuesday
21 October, 2025


face

General Activities

  1. LibreOffice 25.2.6 was announced on September 8
  2. Olivier Hallot (TDF) improved the help for Select Function in Calc’s formula bar, expanded help for the selection of chart data sources, added AutoFilter and Pivot Table/Chart to the help page on sheet protection, added information about summary above/below to the help of Calc’s SUBTOTAL() function, documented sensitivity in the help page for Solver and added the description meta element to the Help page templates
  3. Gábor Kelemen (Collabora) improved the script for finding unneeded includes in the code and did many code cleanups
  4. Tomaž Vajngerl (Collabora) implemented a sheet view functionality in Calc allowing to manipulate AutoFilters in one view without affecting other views
  5. Pranam Lashkari, Maya Stephens, Gökay Şatır, Rashesh Padia and Mohit Marathe (Collabora) worked on LOKit used by Collabora Online. Maya also fixed an issue with Ctrl+clicking hyperlinked objects
  6. Miklós Vajna (Collabora) expanded Writer Markdown export support, worked on change tracking of formatting, continued improving the handling of tracked changes that depend on each other and fixed bullet list style going missing with PPTX export
  7. Xisco Faulí (TDF) implemented right-to-left text direction and bidirectional text support in SVG import, added venv to the internal Python, fixed crashes, added several new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  8. Michael Stahl (Collabora) improved the DOCX compatibility of floating tables, helped Miklós with interdependent change tracking in Writer and fixed an issue with document compression
  9. Mike Kaganski (Collabora) fixed Help for BASIC’s Str function, adapted Writer’s change tracking to DOCX’s inability to track the deletion of comments, made date handling code more robust, improved the Visual Studio IDE integration, made the handling of double variables in BASIC more robust, replaced dtoa library with fast_float for faster string-to-float parsing and fixed an RTF import issue with some paragraphs appearing outside of their frames. He also did many code cleanups and optimisations
  10. Caolán McNamara (Collabora) fixed many issues found by static analysers and did code cleanups and optimisations
  11. Stephan Bergmann (Collabora) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  12. Noel Grandin (Collabora) fixed an (unreleased) issue with image fills disappearing at lower zoom levels, improved the performance of spreadsheets with thousands of shapes, improved the performance of 3D charts, fixed a performance issue with importing SVGs with small scaling, improved the performance of Calc’s Remove Duplicates, implemented Skia native rendering of bitmap tiling to improve the performance of filled polygons and fixed an issue with Insert Special Character dialog not being available with mergedlibs builds (Windows releases). He also did many code cleanups and optimisations, especially in the area of transparency handling
  13. Justin Luth (Collabora) fixed an issue with the alignment setting in Page Number Wizard, fixed localised accelerator shortcut conflicts, fixed many issues with page styles, page breaks and spell checking, improved the Bullets and Numbering dialog by showing the currently

Thursday
16 October, 2025


face

Since C++11 when enum class (also named scoped enum) is introduced, it is preferred to plain enum which is inherited from C programming languages. The task here is to convert the old enum instances to enum class.

Rationale

enum class has many benefits when compared to plain enum, as it provides better type safety among other things. Implicit conversion to integers, lack of ability to define the underlying data type and compatibility issues were some of the problems with plain enum that enum class solved in C++11. Although since then enum has improved and one can specify underlying type in the scoped enumerations.

Plain enums pollute namespace, and you have to pick names that are too long, and have to carry the context inside their names. For example: INETMSG_RFC822_BEGIN inside enum _ImplINetRFC822MessageHeaderState. With an enum class, it is simply written as HeaderState::BEGIN. When placed inside a file/class/namespace that makes it relevant, it is much easier to use: it is more readable, and causes no issues for other identifiers with possible similar names.,

See this change:

You can read more about that in:

Finding Instances

You may find some of the instances with:

$ git grep -w enum *.cxx *.hxx|grep -v "enum class"

When you count it with wc -l, it shows something more than 2k instances.

Examples Commits

You can see some of the previous conversions here, which is around 1k changes:

$ git log --oneline -i -E --grep="convert enum|scoped enum"

This is a good, but lengthy example of such a conversion:

Implementation

First of all, please choose good names for the new enum class and values. For example, you may convert APPLICATION_WINDOW_TITLE into Application::WindowTitle. Therefore, do not use the old names as they were.

Converting enum to enum class is not always straightforward. You should try to understand the code using the enum, and then try to replace it with enum class. You may need to add extra state/values for situations where 0 or -1 or some default value was used. There are cases where a numerical value is used for different conflicting purposes, and then you have to do some sort of conflict resolution to separate those cases.

You may end up modifying more and more files, and a few static_casts where they are absolutely necessary because you are interpreting some integer value read from input. These are the places where you should check the values yourself in the code. You have to make sure that the numerical value is appropriate before casting it to the enum class.

If you want to do bitwise operations, you should use o3tl::typed_flags, for example:

enum class FileViewFlags
{
    None = 0x00,
    MultiSelection = 0x02,
    ShowType = 0x04,
    ShowNone = 0x20,
};

template<> struct o3tl::typed_flags : o3tl::is_typed_flags<FileViewFlags, 0x26> {}

Then, you may use it like this:

    if (nFlags & FileViewFlags::MULTISELECTION)
        mxTreeView->set_selection_mode(SelectionMode::Multiple 

Tuesday
07 October, 2025


face

Writer recently got a Markdown import & export filter and there were a number of improvements to that.

This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.

Motivation

Ujjawal Kumar contributed a markdown import to Writer, as part of Google Summer of Code (GSoC) this summer. Mike Kaganski of Collabora also created a minimal markdown export in Writer. I looked at the feature differences between the two, and filled in various gaps in the markdown export. I also added a few general markdown import/export improvements relevant for normal Writer documents, like embedded image support.

Results so far

Here is a sample case of a document using inline code spans:

Code span: baseline

Exporting this to markdown & loading back to Writer, the code span was lost:

Code span: old result

And now it's preserved:

Code span: new result

This also works with code blocks.

Second, here is a document with lists:

Lists: baseline

Exporting this to markdown & loading back to Writer, the lists were lost:

Lists: old result

And now they are preserved:

Lists: new result

This also works with nested lists.

Third, here is a document with an image:

Image: baseline

Exporting this to markdown & loading back to Writer, the image was lost:

Image: old result

And now it's preserved:

Image: new result

This also works with embedded and anchored images.

Fourth, here is a document with a table:

Table: baseline

Exporting this to markdown & loading back to Writer, the table was lost:

Table: old result

And now it's preserved:

Table: new result

This also works with table alignments and nested tables (to the extent the markdown markup allows that).

Fifth, here is a document with a quote block:

Quote: baseline

Exporting this to markdown & loading back to Writer, the quote's paragraph indentation was lost:

Quote: old result

And now it's preserved:

Quote: new result

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

As usual, the high-level problem was addressed by a series of small changes. Core side:

Want to start


Thursday
18 September, 2025


face

If you are working with LibreOffice code, trying to understand the code, fix bugs, or implement new features, you will need to debug the code at some point. Here are some general tips for a good debugging experience. Let’s start from the platform

Choose the Right Debug Platform

Choosing a platform to debug usually depends on the nature of the problem. If the problem is Windows-only, you need a Windows environment to build and debug the problem. But, if the problems can be reproduced everywhere, then you can choose the platform of your choice with the debugging tools that you prefer to debug the problem.

On Linux, it matters if you are running X11 or Wayland. Also, as there are multiple graphical back-ends available for LibreOffice, it matters if you are using X11, GTK3/4, or Qt5/6 back-end for your debugging. Some bugs are specific to GTK, then you should use GTK3 UI for testing. In 2025, GTK4 UI of LibreOffice is still experimental, so it is better to work with GTK3. For making the debugging easier, many developers work on X11 (gen) UI for debugging.

Debugging Tools

Various debugging tools can be used to debug the soffice.bin/soffice.exe LibreOffice binary that you have built. For the common debuggers, you can use GDB on Linux, lldb on macOS, and WinDbg or Visual Studio on Windows.

For using the above debuggers, you can use the IDE or front-end that support them. Various IDEs are usable with LibreOffice code. For a detailed explanation, refer to this Wiki article:

Make sure that you can build and debug a simple program before trying to build and debug LibreOffice.

Environment Variables

To have a better debugging experience, or to avoid problems you may have to customize the debugging session with environment variables. A complete article of the TDF Wiki is dedicated to discuss the environment variables that can be used with LibreOffice:

Here is some of the most important ones:

1) Using the X11 user interface:

If you want to use the X11 back-end that is simpler, and usually easier to work with on debug sessions, you have to set SAL_USE_VCLPLUGIN environment variable:

export SAL_USE_VCLPLUGIN=gen
That is specially useful when you are debugging graphical problems. But in some cases, you may need to avoid it or at least customize it. For example, while debugging mouse-related problems you may need to tell LibreOffice to avoid mouse grabbing this way:

export SAL_NO_MOUSEGRABS=1

2) Using GTK user interface

If you are using GTK user interface, then you may use GTK inspector to interactively debug LibreOffice GUI. You can use it this way:

export GTK_DEBUG=interactive

Pretty Printers

In solenv/gdb/ inside LibreOffice source code, you may find pretty printers for GDB. This is helpful when debugging LibreOffice with GDB, to be able to see data in a more readable way.

Dumping Data

Sometimes when you debug a LibreOffice application, it is easier to


Tuesday
16 September, 2025


face

General Activities

  1. LibreOffice 25.8.0 and LibreOffice 25.8.1 were announced on August 20 and August 29 respectively
  2. Olivier Hallot (TDF) updated help for the option to load printer settings with document, sorting blocks of cells in Calc, hyphenation, statistical functions, number of lines in charts, exponentiation operator in Calc, remote files, Edit menu in Calc, object rotation, Math options and MATCH function in Calc
  3. Celia Palacios added help for the new Intersect() method in ScriptForge
  4. Gábor Kelemen (Collabora) did many code cleanups
  5. Tomaž Vajngerl (Collabora) did many code cleanups and added OOXML test documents for text fitting / scaling
  6. Pranam Lashkari and Marco Cecchetti (Collabora) worked on LOKit used by Collabora Online. Marco also made it so hovering with the mouse over Chart data range colour palette entries in the Sidebar shows a live preview in the active chart
  7. Miklós Vajna (Collabora) added list and inline code block support for Markdown export and continued improving the handling of tracked changes that depend on each other
  8. Xisco Faulí (TDF) fixed crashes, added over a dozen new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  9. Michael Stahl (Collabora) made it so pasted anchored objects are no longer selected by default while adding an expert configuration option for the behaviour, added overline support to XHTML export and worked around a dbus bug affecting the build process on some Linux systems
  10. Mike Kaganski (Collabora) fixed an issue with embedded fonts getting dropped from opened files in certain scenarios on Windows, made it so the user can choose to either discard license-restricted embedded fonts in an opened document or switch to read-only mode, improved PPTX compatibility with trailing empty lines in automatically shrinking text boxes, fixed long links getting truncated when exporting to XLSX, fixed issues with inserting hyperlinks in Calc via the API, made Calc text insertion API methods more robust, fixed inserting PDFs into spreadsheets, fixed a string handling issue in Basic’s Format function, fixed a VBA macro issue with dates and fixed processing of escaped backslashes in RTF files. He also did many code cleanups and optimisations
  11. Caolán McNamara (Collabora) fixed many issues found by static analysers and did code cleanups and optimisations
  12. Stephan Bergmann (Collabora) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  13. Noel Grandin (Collabora) improved the scrolling speed in Writer documents with lots of comments. He also did many code cleanups and optimisations, especially in the area of transparency handling
  14. Justin Luth (Collabora) improved DOCX compatibility with margins of aligned floating objects, fixed right/left only page breaks going missing with DOC/DOCX export, fixed a DOCX indentation issue, fixed column breaks going missing in certain DOCX files, fixed an issue with numbered lists created by AutoCorrect, made it so justified text with section breaks in saved DOC files no longer triggers an MS Word bug and fixed numbering or bullets getting lost when applying a paragraph style
  15. Michael Weghorn

Monday
15 September, 2025


face

Once upon a time, there was a girl, who used WhatsApp in her iPhone. She was rather active there, and collected quite some important data in the app over time. But some things in her iPhone were inconvenient; and the phone was slowly aging. So she wanted to change her phone some day.

For her birthday, a fairy, who learned somehow about the girl’s wish, presented her a new Android phone. That was a nice new phone, and the girl was so happy! She decided to move everything from the old phone to the new one immediately.

She was worrying about how to move the precious data between the devices; but she felt a huge relief, when the phone spoke: “The fairy told me how important your data is to you; and I have magic powers to handle it all. Just connect the old phone to me with a cord”. So she did.

The new phone started its work; and the girl could see how the progress bar was gradually moving to completion; but suddenly it stopped; minutes passed, but the bar was motionless. The girl was impatient to start using her new shiny device, but she knew that she needs to wait. And she waited; and waited; but after an hour passed, she noticed something horrible: the old phone was sucking the life out of the new device through the cable!

The scared girl could only hope that the process would resume, and finish before the new phone is out of power. She searched and learned, that iPhones are known for their insatiable hunger, and whenever they are connected to anything with energy, they start sucking it. She couldn’t even ask the new phone to shine less brightly to save the energy – because it wasn’t ready for such things yet. She used her wireless charger, but its powers were fewer than the hunger of iPhone, combined with the hard work done by Android. The energy level still decreased too fast.

In the end, when the hope almost vanished, the progress resumed moving! But immediately, the new phone said: “When I collected your data from your old phone, something bad happened, and I failed to collect something. I will continue, but please check later, what’s missing!”.

Only a couple of energy drops were remaining in the new phone, when it finished its task, and could be disconnected from the vampire. But the girl was terrified, when she opened WhatsApp, connected to it (using a magic SMS confirmation), only to see that all her data is lost! She tried to open WhatsApp on the old phone to check if something is still there, and saw that the app had disconnected her. So she used the SMS magic again, and – to her great relief – everything was there!

She askes WhatsApp, how to move the data; and it answered, that if she moved from iPhone to iPhone, or from Android to Android, she could use a backup; but from


Thursday
11 September, 2025


face

C++ Standard library, which resides in std:: namespace provides common classes and functions which can be used by developers. Among them, Standard Template Library (STL) provides classes and functions to better manage data through data structures named containers. Here I discuss how to use STL functions for better processing of data, and avoid loops.

Checking Conditions

To iterate over a container to see if some specific condition is valid for all, any, or none of the elements in that container, C/C++ developers traditionally used loops.

On the other hand, since C++11, there are functions that can handle such cases: all_of, any_of and none_of. These functions process STL containers, and can replace loops. If you want to know if a function returns true for all, any, or none of the items of the container, then you can simply use these functions. This is the EasyHack dedicated to such a change:

Here is an example patch which uses any_of instead of a loop:

-    bool bFound = false;
     // convert ASCII apostrophe to the typographic one
     const OUString aText( rOrig.indexOf( '\'' ) > -1 ? rOrig.replace('\'', u'’') : rOrig );
-    size_t nCnt = aVec.size();
-    for (size_t i = 0;  !bFound && i < nCnt;  ++i)
-    {
-        if (aVec[i] == aText)
-            bFound = true;
-    }
+    const bool bFound = std::any_of(aVec.begin(), aVec.end(),
+        [&aText](const OUString& n){ return n == aText; });

As you can see, the new code is more concise, and avoids using loops.

Conditional Copying, Removing and Finding

If you want to copy, remove or simply find a value in a container which conforms to a specific functions, you may use copy_if, remove_if or find_if.

Again, this is an example patch:

-  for ( size_t i = 0; i < SAL_N_ELEMENTS( arrOEMCP ); ++i )
-        if ( arrOEMCP[i] == codepage )
-            return true;
-
-    return false;
+    return std::find(std::begin(arrOEMCP), std::end(arrOEMCP), codepage) != std::end(arrOEMCP);

Final Words

Refactoring code is a good way to improve knowledge on LibreOffice development. The above EasyHacks are among EasyHacks that everyone can try.

More information about EasyHacks, and how to start working on them can be found on TDF Wiki:


Tuesday
09 September, 2025


face

Writer has some support for interdependent (or hierarchical) tracked changes: e.g. the case when you have a delete on top of an insert. See the second post for background.

This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.

Motivation

With the already mentioned improvements in place, the area of format redlines with character style or direct formatting changes were still lacking: Writer's original model here was just marking a text range as "formatted" and then either accept the format redline as-is, or reject reverting back to the paragraph style (default formatting), losing the old character style or old direct formatting.

Results so far

Here is a sample case of a document where the old character style is Strong (~bold) and the font size is 24pt, while the new character style is Quote (~italic) and the font size is 36pt. The rest of the document uses no specific character styles and has the font size of 12pt:

Interdependent tracked change: improved format, after document load

Rejecting that format redline resulted in just the defaults, i.e. no character style and 12pt font size:

Interdependent tracked change: old reject, lost character style / direct format

But now we track the old character style & direct format:

Interdependent tracked change: new reject, handled character style / direct format

This required changes in the DOCX import, ODF import and ODF export, too.

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

As usual, the high-level problem was addressed by a series of small changes. Core side:

Want to start using this?

You can get a development edition of Collabora Online 25.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (26.2).


Monday
01 September, 2025


face

LibreOffice 25.8 krepi digitalno suverenost

LibreOffice 25.8: strateška dobrina za vlade in podjetja, usmerjena v digitalno suverenost in zasebnost

Pregled

V času, ko geopolitične napetosti, zakoni o lokalizaciji podatkov in tveganja v zvezi s skladnostjo spreminjajo IT-okolje, se LibreOffice 25.8 (izšel je konec avgusta 2025) izkazuje kot strateška izbira. Gre za popolnoma odprtokodni, krajevno delujoč pisarniški paket, zasnovan za organizacije, ki potrebujejo popoln nadzor nad svojo programsko opremo, podatki in infrastrukturo.

Ta različica neposredno temelji na prednostnih nalogah, ki so jih izrazile javne uprave in velika podjetja po vsem svetu: zaščita podatkov uporabnikov, zmanjšanje odvisnosti od tujih dobaviteljev in krepitev digitalne avtonomije.

Zakaj je digitalna suverenost pomembna?

Za vlade in podjetja digitalna suverenost ni le filozofija. Gre za:

  • nacionalno varnost: zmanjšanje izpostavljenosti ekstrateritorialnemu nadzoru in varnostnim luknjam v programski opremi;
  • skladnost z zakonodajo: izpolnjevanje zakonskih zahtev, kot so GDPR, nacionalni zakoni o javnih naročilih in predpisi o lokalizaciji IT;
  • neodvisnost od dobaviteljev: izogibanje prisilnim migracijam, agresivnim modelom licenciranja ali nepredvidljivim cenam dobaviteljev lastniške opreme;
  • strateško odpornost: ohranjanje delovanja sistemov, ki so ključni za poslovanje, brez odvisnosti od oblaka.

LibreOffice 25.8 je bil razvit posebej za te namene.

Ključne prednosti LibreOffice 25.8 za ustanove

Arhitektura, ki daje prednost zasebnosti

  • Brez telemetrije: brez zbiranja podatkov v ozadju. LibreOffice je popolnoma transparenten in deluje neopazno.
  • Popolna zmogljivost brez internetne povezave: vse funkcije delujejo brez internetne povezave, kar je idealno za varna, izolirana ali kritična okolja.
  • Šifriranje OpenPGP: dokumente je mogoče šifrirati s ključi, ki jih upravlja uporabnik, kar zagotavlja skladnost z notranjimi varnostnimi politikami.

Odprti standardi in medsebojna povezljivost

  • Domorodna podpora za odprti zapis dokumentov (ODF), standard ISO, ki zagotavlja dolgoročen dostop in odpravlja lastniško vezanost.
  • Izboljšana združljivost z zapisi Microsoft Office/365 (.docx, .xlsx, .pptx) in zapisi OpenOffice (.doc, .xls, .ppt).

Prilagodljiva namestitev in integracija

  • Na voljo je za Windows, Linux in macOS: podpira heterogena IT-okolja.
  • Brezhibna integracija z Nextcloud, ownCloud in samostojnimi platformami za sodelovanje.
  • Skalabilen od ene same varne delovne postaje do celovitih namestitev v podjetju s centralizirano konfiguracijo in izvajanjem politik.

Strateške prednosti za javni in podjetniški IT

  • Nadzor stroškov: brez licenčnin. LibreOffice lahko zmanjša IT-stroške in je hkrati skladen z javnimi naročili, ki zahtevajo odprte standarde in pošteno konkurenco.
  • Revizijska sledljivost: popolnoma odprtokoden. Vsaka vrstica kode je vidna in preverljiva, kar podpira revizijske zahteve in zmanjšuje tveganja v dobavni verigi.
  • Lokalna opolnomočenost: spodbuja nacionalne in regionalne IT-ekosisteme z omogočanjem pogodb za lokalno podporo, prilagajanjem in strokovnimi storitvami, kar spodbuja domači tehnološki sektor.

Uporaba v praksi

Vlade in velike institucije po Evropi, Latinski Ameriki in Aziji so LibreOffice sprejele kot del pobud za digitalno suverenost. Vladni organi v Nemčiji, na Danskem in v Franciji ter nacionalna ministrstva v Italiji in Braziliji so se obrnili k LibreOffice, da bi ponovno prevzeli nadzor nad svojo digitalno infrastrukturo. LibreOffice podpira The Document Foundation, nevtralna, neprofitna organizacija z globalno


Thursday
28 August, 2025


face

LibreOffice handles different input and output formats, and also displays text and graphics alongside inside the GUI on computer displays. This requires LibreOffice to understand various different measurement units, and convert values from one to another.

Unit selection

Unit selection

The unit conversion can be done by writing extra code, where one should know the units, and calculate factor to convert them to each other.

For example, consider that we want to convert width from points into 1/100 mm, which is used in page setup.

We know that:

1 point = 1/72 inch
1 inch = 25.4 mm = 25400 microns
factor = 25400/(72*10) ≈ 35.27777778

Then, it is possible to write the conversion as:

static int PtTo10Mu( int nPoints )
{
return static_cast<int>((static_cast<double>(nPoints)*35.27777778)+0.5);
}

A separate function that casts integer nPoints to double, then multiplies it by the factor which has 8 decimal points, and then rounds the result by adding 0.5 and then truncates it and stores it in an integer. This approach is not always desirable. It is error-prone, and lacks enough accuracy. For big values, it can calculates values off by one.

Another approach is to use o3tl (OpenOffice.org template library) convert function. It is as simple as writing:

int nResult = o3tl::convert(nPoint, o3tl::Length::pt, o3tl::Length::mm100)

As you can see, it is much cleaner, and gives the output, properly rounded as an integer!

You need a double? No problem! You can use appropriate template to achieve that:

double fResult = o3tl::convert<double>(nPoint, o3tl::Length::pt, o3tl::Length::mm100)

These are the supported units, defined in the header include/o3tl/unit_conversion.hxx:

mm100 – 1/100th mm = 1 micron

mm10 – 1/10 mm

mm – millimeter

cm – centimeter

m – meter

km – kilometer

emu – English Metric Unit (1/360000 cm)

twip – Twentieth of a point (1/20 pt)

pt – Point (1/72 in)

pc – Pica (1/6 in)

in1000 – 1/1000 in

in100 – 1/100 in

in10 – 1/10 in

in – inch

ft – foot

mi – mile

master – PPT Master Unit (1/576 in)

px – Pixel unit (15 twip, 96 ppi)

ch – Char unit (210 twip, 14 px)

line – Line unit (312 twip)

Handling Overflows

If you are doing a conversion, it is possible that the result overflows. With o3tl::convert() you can handle it this way:

sal_Int64 width = o3tl::convert(nPoint, o3tl::Length::pt, o3tl::Length::mm100, overflow, 0);
if (overflow)
{
...
}

Code Pointers

To to find instances to change, one can try finding some magic numbers listed here. For example, consider measuring a line based on twips:

line – Line unit (312 twip)

If you search for 312, you may find some examples:

$ git grep -w 312 *.cxx

Final Words

The task described here is filed as tdf#168226:

EasyHacks are well-defined small tasks that are designed to help newcomers begin LibreOffice programming. If you like it, you can start working on it!

Using o3tl::convert() not only simplifies the


Wednesday
20 August, 2025


face

Najboljši odprto-kodni pisarniški paket se še naprej razvija, hkrati pa ohranja svoj poudarek na zasebnosti in digitalni suverenosti


LibreOffice 25.8 je tukaj

Berlin, 20. avgust 2025 – TDF (The Document Foundation) objavlja izid izdaje LibreOffice 25.8. Ta najnovejša različica brezplačnega odprto-kodnega pisarniškega paketa, ki je vodilni na trgu, se še naprej osredotoča na digitalno suverenost in zaščito zasebnosti Posameznikom, organizacijam in vladam ponuja popoln nadzor nad njihovimi podatki in najobsežnejša orodja za produktivnost.

V globalnem kontekstu naraščajoče zaskrbljenosti glede zasebnosti podatkov, zaklepanja v oblaku in kapitalizma nadzorovanja ravno LibreOffice 25.8 ponuja konkretne rešitve.

Odprta koda: Izvorna koda je na voljo za pregled in je popolnoma brez lastniških tehnoloških omejitev.

Zasebnost in nadzor: LibreOffice ne zbira osebnih podatkov, metrik uporabe ali diagnostičnih informacij in je v skladu s predpisi o varstvu podatkov, ki jih zahtevajo implementacije javne uprave (GDPR).

Krajevno izvajanje: vse funkcije se izvajajo krajevno na uporabnikovem računalniku, brez potrebe po internetni ali oblačni povezavi.

Sodelovanje ob lastnem gostovanju: integracija s krajevnimi rešitvami v oblaku, kot je Nextcloud, omogoča ekipam, da sodelujejo, ne da bi delile svoje informacije z velikimi tehnološkimi podjetji.

LibreOffice 25.8: nove zmogljivosti in funkcije

Uporabniški vmesnik: pogovorno okno Dobrodošli/Novosti zdaj ponuja dostop do izbirnika uporabniškega vmesnika in možnosti videza, kar novim uporabnikom omogoča, da izkoristijo prilagodljiv uporabniški vmesnik LibreOffice in prilagodijo videz in uporabnost glede na svoje želje.

Zmogljivost: vse je hitrejše, od zagona do pomikanja po velikih dokumentih – z znatnim povečanjem hitrosti na manj zmogljivih računalnikih.

  • Glede na primerjalne preizkuse Writer in Calc odpreta datoteke do 30 % hitreje.
  • Optimizirano upravljanje pomnilnika omogoča nemoteno delovanje na virtualnih namizjih in tankih odjemalcih.

Boljša medopravilnost z datotekami Microsoft Office, z natančnejšo obdelavo datotek DOCX, XLSX in PPTX ter manj težav z oblikovanjem, zahvaljujoč spremembam, kot so:

  • popolna prenova deljenja besed in razmika;
  • upravljanje pisav v programu Impress, ki je združljivo z datotekami PowerPoint;
  • dodane nove funkcije v Calc: CHOOSECOLS, CHOOSEROWS, DROP, EXPAND, HSTACK, TAKE, TEXTAFTER, TEXTBEFORE, TEXTSPLIT, TOCOL, TOROW, VSTACK, WRAPCOLS in WRAPROWS.

Seveda ponuja tudi druge pomembne nove funkcije, kot je možnost izvoza v zapisu PDF 2.0 in več novih storitev knjižnice ScriptForge. Seznam vseh novosti se nahaja tukaj: https://wiki.documentfoundation.org/ReleaseNotes/25.8/sl

Kar zadeva spremembe podpore za operacijske sisteme, LibreOffice 25.8 ne bo več deloval v sistemih Windows 7, 8/8.1 ali (32-bitnih) različicah x86. To je tudi zadnja različica, ki jo lahko izvajate na macOS 10.15.

LibreOffice 25.8 za poslovno rabo

Organizacija TDF sodeluje z globalno mrežo certificiranih partnerjev, ki nudijo podporo in vzdrževanje za poslovno rabo v podjetjih, prilagojene funkcije in integracije ter pomoč pri migraciji in usposabljanju uporabnikov. Celoten seznam partnerjev najdete tukaj: https://sl.libreoffice.org/po-pomoc/profesionalna-podpora/

Kam se umešča LibreOffice 25.8?


25.8

LibreOffice 25.8 je popolnoma brezplačen

Friday
15 August, 2025


face

This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the 11th post for the previous part.

Motivation

Previous posts described the hardest part of multi-page floating tables: making sure that text can wrap around them and they can split across pages. In this part, we'll look at a conflicting requirement. On one hand, headings want their text to not split across pages (and shapes anchored into paragraphs are considered part of the paragraph, too). On the other hand, it should be OK to have a floating table at the bottom of a page and the following heading to go to the next page.

It turns out, Writer gave "keep together" a priority, while Word gave "floating tables are OK to split to a previous page" a priority.

Note that if you have a shape (e.g. a triangle) and not a floating table, then both Word and Writer prevents the move of that shape to a previous page (if the shape is anchored in a heading); this difference was there just for floating tables.

Results so far

Here is how the tdf#167222 bugdoc looks like now in Writer:

Floating table, followed by heading: new Writer render

And here is how it used to look like:

Floating table, followed by heading: old Writer render

And here is the reference rendering:

Floating table, followed by heading: reference render

This means that we leave layout for shapes unchanged in general: shapes anchored in headings are still considered to be part of headings and don't split. But for floating tables, we now allow them to split and use space at a previous page if they fit there.

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

As usual, the high-level problem was addressed by a series of small changes:

Want to start using this?

You can get a development edition of Collabora Online 25.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (26.2).


Monday
11 August, 2025


face

General Activities

  1. LibreOffice 25.2.5 was announced on July 17
  2. Olivier Hallot (TDF) updated help for CSV import, explained Property Mapping in help for Charts and improved help for Calc’s FILTERXML function and AutoFilter
  3. Gábor Kelemen (Collabora) did many code cleanups
  4. Tomaž Vajngerl (Collabora) made internal hyperlinks in a table of contents accessible when exported to PDF/UA
  5. Pranam Lashkari, Szymon Kłos and Hubert Figuière (Collabora) worked on LOKit used by Collabora Online
  6. Parth Raiyani (Collabora) did reorganisations in some dialogs
  7. Miklós Vajna (Collabora) polished the support for floating tables in Writer, fixed some crashes and continued improving the handling of tracked changes that depend on each other
  8. Xisco Faulí (TDF) added Albanian and Moldovan locale, fixed short weekdays in Romanian locale, improved the translation checker script, added some new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  9. Michael Stahl (Collabora) fixed an issue with expansion of list level numbering formats with repeated levels and fixed a column width issue in RTF tables
  10. Mike Kaganski (Collabora) implemented Markdown export, fixed not being able to apply colour to Chart walls via Sidebar, fixed an issue with paragraph numbering in RTF files, helped Miklós with floating table polishing, fixed an issue with date conversion in Base, made URL handling more robust in Extension updating code, fixed and issue with spacing in lists in RTF files, fixed RTF export issues causing loss of bullet fonts and “No character border” explicit formatting and fixed some crashes. He also did many code cleanups and optimisations
  11. Caolán McNamara (Collabora) fixed many issues found by static analysers and did code cleanups and optimisations
  12. Stephan Bergmann (Collabora) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  13. Noel Grandin (Collabora) made Skia rendering backend mandatory on Windows and greatly improved the import time of CSV data with trailing newline characters. He also did many code cleanups and optimisations, especially in the area of transparency handling
  14. Justin Luth (Collabora) made it so failed command line operations return exit status 1, allowing for automated bisecting of command line issues among other things, fixed an issue with spellchecking and the option “Check uppercase words” and fixed a style continuity issue with page breaks in DOCX files
  15. Michael Weghorn (TDF) continued cleaning up and reorganising accessibility-related code, made the orientation radio buttons in Envelope dialog accessible, fixed an issue with unwanted focus accessibility events being fired in Borders tab page of Writer’s Paragraph dialog, made the border preset selection be clearly indicated when focused, implemented support for native colour pickers in GTK and Qt UIs and did cleanups and reorganisations in Android, vcl and report design code. He also worked on using native widgets in Qt UIs
  16. Balázs Varga (Collabora) implemented support for Microsoft Media Foundation APIs on Windows for playback of common codecs, fixed Calc’s MATCH function returning an incorrect result with inline arrays and fixed an issue with

<- Current blog entries