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
15 August, 2025


face

En el mundo digital, los formatos de documentos son esenciales. Los formatos privativos, como DOCX de Microsoft Word o XLSX de Excel, dominan el lugar de trabajo, pero al mismo tiempo obligan a los usuarios a utilizar un proveedor específico …


face

In the digital world, document formats are essential. Proprietary formats such as Microsoft Word’s DOCX or Excel’s XLSX dominate the workplace, but at the same time they lock users into a specific vendor and its business strategies, which tend to exploit users to the maximum in every way. The Open Document Format (ODF) offers an open, standard alternative that protects users and their privacy, promotes interoperability, long-term access and data ownership.

Migrating documents from proprietary formats to ODF is the solution, and although vendors who rely on proprietary formats – not only Microsoft, but also its freeware clones such as OnlyOffice or WPS Office – do everything they can to prevent it, it is very easy and represents a fundamental step forward for users in terms of privacy and digital sovereignty (i.e., ownership of their own content).

This guide breaks down the migration process to make the transition smooth, efficient and sustainable, both at the individual level (where problems are virtually non-existent) and at the enterprise level, where problems exist due to the lock-in strategies of proprietary formats.

Step 1: Understand ODF and its advantages

  • No dependence on a single vendor: freedom to use any compatible software
  • Better long-term accessibility, robustness and stability of storage
  • Transparency and security, thanks to full compliance with open specifications
  • Better interoperability between platforms and tools

Step 2: Document inventory to define conversion priorities and estimate the effort required for migration

  • Identification of file types (DOCX, XLSX, PPTX) and their number
  • Analysis of documents to distinguish between active (used periodically) documents, those that can be archived and obsolete documents
  • Analysis of documents with complex formatting or embedded multimedia content

Step 3: plan the migration workflow

  • Convert documents in bulk or gradually as needed?
  • Pilot phase with a small group of users to identify any issues with the documents before the mass conversion
  • User training on the migration and creation of a support service for conversions and backup management

Step 4: Converting documents to ODF format

  • Use the LibreOffice export function (‘Save As’)
  • Use batch conversion tools for large volumes (LibreOffice command line scripts)
  • Validate converted files to ensure formatting and data integrity
  • Back up original files until migration is successfully completed

Step 5: Monitoring the migration

  • Updating internal policies to make ODF the default format for document creation and sharing, and to prevent a return to proprietary formats
  • Monitoring user feedback and trends in document creation, and resolving issues in a timely manner
  • Integrating ODF support into enterprise software platforms, and using automatic conversions where possible

Conclusion

Migrating from proprietary formats to ODF is a strategic move, both individually and for businesses, towards openness, content control and document protection for the future. In a business environment, it requires careful planning and user involvement, but the benefits in terms of flexibility, interoperability and cost savings are well worth the effort.


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).


Thursday
14 August, 2025


[en] Michael Meeks: 2025-08-14 Thursday

21:00 UTC

face
  • Out walking with Richard, Chris, M & J through Chatsworth Country Park - lovely time, lunch by a lake, ice-cream. Headed back to Beeley.
  • Home, hot-tub, out shopping with N, babes cooked a pasta tea, video round-up, learned Bridge with Anne & the babes until late.

Wednesday
13 August, 2025


[en] Michael Meeks: 2025-08-13 Wednesday

21:00 UTC

face
  • Out to see the National Stone Centre, which had a lot of stone. A volunteer guide showed us the millennium (dry-stone) wall, played wall building with babs while having lunch and admired quarries.
  • The team published the next TORF strip: Time & Materials
    The Open Road to Freedom - strip#30 - Time and Materials
  • Back, slugged variously; Richard & Sharon made a fine salmon dinner; celebrated Mum's birthday with toasts, speeches, cake, songs, dancing, and more.

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 to for playback of common codecs, fixed Calc’s MATCH function returning an incorrect result with inline arrays and fixed an issue

Friday
08 August, 2025


face

Seguir estas pautas puede mejorar la productividad y garantizar que los documentos sigan siendo coherentes, sólidos y accesibles a lo largo del tiempo, independientemente de la plataforma.

En primer lugar, utilice un editor como LibreOffice que admita el formato de …


Tuesday
29 July, 2025


face

LibreOffice 25.8 will be released as final on August, 20, 2025 (check the Release Plan). LibreOffice 25.8 Release Candidate 2 (RC2) brings us closer to the final version, which will be preceded by Release Candidate 3 (RC3). Since the previous release, LibreOffice 25.8 RC1, 70 commits have been submitted to the code repository and 34 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.8 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.

In case you find any problem in this pre-release, please report it in Bugzilla (you just need a legit email account in order to create a new account).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test, we appreciate your contribution! Happy testing!!!

Download it now!


Friday
25 July, 2025


face

You know what: Microsoft became miserably incompetent in IT.

I develop open-source code. But that never made me one of the “I hate proprietary software or IT giant corporations” types. I always saw the nice things that Microsoft offered to its users; I saw not only downsides in its products. And I also used (and continue to use) things created by it: Windows to start with (and I develop there, being able to debug and address issues specific to the platform that most of our users use); but also its email service for personal mail.

This Monday, I decided to send something to LibreOffice dev mailing list. Something I do from time to time, you know. Not too fascinating, right?

Well, this time, it turned out, Microsoft decided to teach me to fear them. Thunderbird shown me a message, that the mail couldn’t be sent (well, not a problem: will re-try again…), but then I found myself logged off, with “Your account has been blocked” message. They decided, that I violated their service agreement!

FTR: here is the mail. I was able to send it using another tech giant’s mail service. You may see that it’s full of links. Yes, that’s true; I prefer to provide references to my words. But tell me where was it violating anything in MS agreement?

OK, they have a stupid AI that is worse than good old filters. OK, they made it react immediately, as an undoubted authority. But that’s not a big problem, right? They provide a way to appeal! Let me do that.

And of course, they ask for the phone, and I provide it, just to get a nice reply:

And guess what: there is no other method!

OK! Let’s ask their support. (I am approaching to the point that fascinated me most.) I found a link to “Contact Microsoft Support” on the “Troubleshooting verification code issues” page; and after some automatic answers there, which didn’t answer my problem, I finally got a button telling me … tada …

Yes, you got it right. “Here is a page where we discuss problems signing in. You attempted our FAQ suggestions? You still can’t sign in? No problem! Contact our Support team, and we will solve your problem is a minute! But first, please sign in to continue.”

Heh. I used my wife’s account to contact support. And then I was given a very secret link to an appeal form, where I could file a support ticket. And the next morning, I got a message! Yay! It told me to do something! Let me try! What is that they tell me to do? Reading… hmm… go to sign-in page, and when they tell me that my account is blocked, provide a phone number? Wasn’t it exactly the thing I attempted and failed, and told them about that? But hey, they obviously fixed that problem overnight, they couldn’t just send me the useless instructions, right


Thursday
17 July, 2025


face

LibreOffice 24.8 ha llegado al final de su vida útil, por lo que todos los usuarios deben actualizar su suite ofimática gratuita a la última versión.

Berlín, 17 de julio de 2025 – The Document Foundation anuncia el lanzamiento de …


Thursday
10 July, 2025


face

LibreOffice 25.8 will be released as final at the end of August, 2025 ( Check the Release Plan ) being LibreOffice 25.8 Release Candidate 1 (RC1) the third pre-release since the development of version 25.8 started at the beginning of December, 2024. Since the previous release, LibreOffice 25.8 Beta1, 178 commits have been submitted to the code repository and 101 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.8 RC1 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Tuesday
08 July, 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 first 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, a few areas were still lacking: we didn't have UI for all cases where the DOCX import was possible already; combining tracked changes (redlines) were not complete (so you don't have to reject all parts of a logical redline one by one) and some of the undo/redo code didn't work as expected.

Results so far

Here is a sample case where the UI was missing to create something that was possible to import from DOCX: a format redline on top of an insert redline.

If you had a document with an insert:

Interdependent tracked change: just insert

And you selected BBB to mark those characters as bold, we just updated the existing insert redline to be bold:

Interdependent tracked change: old, format is not tracked separately

But now we track a format change on top of the insert separately:

Interdependent tracked change: new, format is tracked separately

This is also visible if you open the track changes dialog, which explains that now you have part of the insert redline covered by a format redline:

Interdependent tracked change: UI dialog now showing multiple redlines

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 (25.8).


Monday
07 July, 2025


face

General Activities

  1. LibreOffice 25.2.4 was announced on June 6
  2. Olivier Hallot (TDF) added help for compact layout Pivot Tables, Writer table formula MOD and improved the help for Writer’s Send menu commands, font colour, text attributes for drawing objects, Calc shortcut keys, Calc’s LOOKUP function, Of-Pie charts and file conversion filters
  3. Pierre F. added help for Writer table formula INT
  4. Gábor Kelemen (Collabora) simplified code for VCL settings and did many other code cleanups
  5. Tomaž Vajngerl (Collabora) continued polishing support for embedded fonts in PowerPoint files
  6. Marco Cecchetti (Collabora) worked on LOKit used by Collabora Online
  7. Jaume Pujantell (Collabora) improved the import of ref fields in DOCX files
  8. Parth Raiyani (Collabora) makde it so the Layouts panel in Impress Sidebar now uses a native IconView widget instead of the ValueSet widget
  9. Miklós Vajna (Collabora) fixed a Writer list indent removal issue, implemented RTF export of section breaks right sections, fixed an issue with images inside shapes being sized incorrectly in RTF files and continued improving the handling of tracked changes that depend on each other
  10. Xisco Faulí (TDF) implemented Writer table formula MOD, added support for transparent fill colour in SVGs, removed the Euro converter wizard, added several new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  11. Michael Stahl (Collabora) continued working on multi-user editing based on a conflict-free replicated data type (CRDT) and improved the stability of handling Writer comments within the Navigator
  12. Mike Kaganski (Collabora) fixed invisible tree view expansion triangles in Python script organizer, fixed an issue with storing selected encodings in the Text Import dialog, fixed a document read error, fixed an issue with accessing VBScript objects in macros, made menu command code more robust, fixed display of Cyrillic text in RTF files, fixed issues with pasting shapes between LibreOffice applications, fixed Manage Changes dialog not enabling Accept / Reject buttons initially, improved the display of Calc’s Number format dialog in the case of a selection containing different number locales, fixed an RTF table width issue, made bracketing of selected text more robust, fixed a Skia/Vulkan rendering issue affecting line numbers in Basic IDE, fixed an issue with Basic IIf function when used with array indexes, reduced console message noise when running LibreOffice from the command line and fixed several crashes. He also did many code cleanups and optimisations
  13. Caolán McNamara (Collabora) helped Heiko with vertical tabs, fixed crashes and many issues found by static analysers and did code cleanups and optimisations
  14. Stephan Bergmann (Collabora) worked on the WASM build
  15. László Németh added an indicator for justified lines with overly large word spacing
  16. Noel Grandin (Collabora) improved rendering speed of transparent shape fills dramatically, fixed a Windows GDI backend resource use issue seen in documents with lots of styles when the style preview is visible, made Skia rendering backend mandatory on macOS and improved the performance of style handling in Calc. He also did many code cleanups and optimisations
  17. Justin Luth (Collabora

Friday
04 July, 2025


face

por Italo Vignoli

En mi último artículo, mencioné XML varias veces, dando por sentado quizá que todos los usuarios tenían un conocimiento básico del mismo. Al releerlo, me di cuenta de que era necesaria una introducción a XML para …


Saturday
28 June, 2025


face

por Italo Vignoli

Para escribir este artículo, he ido más allá de los límites de mis conocimientos técnicos, que son los de un usuario avanzado que ha estudiado a fondo los formatos estándar y sus características, para entender por qué …


Friday
13 June, 2025


face

LibreOffice 25.8 will be released as final at the end of August, 2025 ( Check the Release Plan ) being LibreOffice 25.8 Beta1 the second pre-release since the development of version 25.8 started at the beginning of December, 2024. Since the previous release, LibreOffice 25.8 Alpha1, 782 commits have been submitted to the code repository and 154 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.8 Beta1 can be downloaded for Linux, macOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Tuesday
10 June, 2025


face

General Activities

  1. LibreOffice 24.8.7 was announced on May 8
  2. Olivier Hallot (TDF) added a help page for Page Layout, expanded help for paragraph justification, updated menu paths in Help, added help pages for newly-added Calc functions and of-pie charts, updated help for Business cards and Labels, improved extended tooltips and error messages for Manage Names dialog, corrected an example spreadsheet used for Calc Data Statistics help and improved help for IsNull BASIC function among many other Help cleanups and updates
  3. Gábor Kelemen (allotropia) did many code cleanups
  4. Tomaž Vajngerl (Collabora) continued polishing support for embedded fonts in PowerPoint files and fixed unexpected changing of background images upon saving and reloading in Draw
  5. Darshan Upadhyay, Szymon Kłos, Michael Meeks and Jaume Pujantell (Collabora) worked on LOKit used by Collabora Online. Szymon also implemented saving checkbox state to XLSX files
  6. Gökay Şatır (Collabora) fixed an issue in Draw with connector text disappearing when “Adjust to contour” option was active
  7. Marco Cecchetti (Collabora) added a feature to select colour palettes for chart data series
  8. Pranam Lashkari (Collabora) fixed an issue with unwanted expansion of reference mark fields after insertion and typing
  9. Miklós Vajna (Collabora) continued improving the handling of tracked changes that depend on each other
  10. Xisco Faulí (TDF) implemented new Calc functions TEXTSPLIT, TEXTBEFORE and TEXTAFTER, made it so glue points in PowerPoint shapes are imported, fixed an issue with connectors in PPTX files becoming misaligned due to negative rotation, added some new automated tests, upgraded many dependencies, fixed crashes and did many code cleanups and optimisations
  11. Michael Stahl (allotropia) worked on multi-user editing based on a conflict-free replicated data type (CRDT) leveraging yrs, a Rust port of Yjs
  12. Mike Kaganski (Collabora) fixed an error when accessing cells via BASIC methods after deleting cells with the RemoveRange method, made it so BASIC’s Time() function returns a Date type, greatly improved the loading time of Writer documents with lots of bookmarks and lots of tables, made it so empty Writer paragraphs correctly follow proportional line spacing smaller than 100%, fixed an issue preventing the export of Draw / Impress documents to SVG from Basic IDE context, improved BASIC error messages, fixed incorrect width in SVG text with “fit-to-size” attribute, fixed an issue with macros not pausing for the duration of executing dialogs and helped Heiko with the new Welcome dialog
  13. Caolán McNamara (Collabora) fixed an issue with expanding the list of events in the Events tab of Customize dialog, fixed crashes and many issues found by static analysers and did code cleanups and optimisations
  14. Stephan Bergmann (allotropia) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  15. Noel Grandin (Collabora) improved the loading speed of XLSX files with lots of customFormat attributes in rows, dramatically improved the rendering speed of documents with large page fills when hardware acceleration is used, greatly improved the loading speed of XLSX files with lots of formulas, conditional formatting and comments and improved

Monday
02 June, 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. While there were some working cases, handling of many combinations were missing. I started to make systematic improvements in this area in the recent past, this post gives you an overview what's done so far.

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

Motivation

DOCX files in Word can often have overlapping tracked changes: Writer tries to split these up to make sure there is only one tracked change under the cursor at the same time. Still, it's possible that you have a tracked change with multiple types: e.g. a delete on top of an insert.

The focus in on 3 combinations which appear in DOCX files a lot: "insert, then delete", "insert, then format" and "delete, then format".

This mostly affects the UI and import/export filters of ODT and DOCX.

Results so far

Given an insert, then delete:

Interdependent tracked change: insert, then delete

Most operations worked nicely here, but in case your cursor was in the middle of AAA and you did a reject, followed by an undo, proper handling of that was missing, now implemented.

But then given an insert, then a format:

Interdependent tracked change: insert, then format

Then a handling of more actions were missing:

  1. DOCX import is now implemented.
  2. ODT import is now implemented.
  3. Accepting when you're inside AAA is now implemented: the insert is accepted for BBB but the format stays unchanged.
  4. Rejecting when you're inside AAA is now implemented: the insert is rejected and BBB is also removed, together with the format on top of it.
  5. Accepting the BBB now correctly operates on the insert type, so the format type remains after accept.
  6. If you accept BBB, now the surrounding AAA and CCC also get accepted as well, as expected.
  7. Now if you reject BBB, then it gets removed from the document, since you rejected an insert.
  8. When you reject BBB, the surrounding AAA and CCC also get rejected.

The combined implementation of these should give you a smooth feeling in case you're used to how Word works: if there is a format redline combined with an insert, then the operations act on the insert type, and format is only accepted/rejected when there is no insert "under" the format.

Similarly: it's a bit of an implementation detail that Writer splits redlines on DOCX import: so if you e.g. accept AAA then we combine that with BBB and CCC when it makes sense, so you need to click a lot less.

Finally, given a delete, then a format:

Interdependent tracked change: delete, then format

Then again handling of some actions were missing:

  1. DOCX import is now implemented.
  2. ODT import is now implemented.
  3. ODT export is now implemented.
  4. Accepting AAA now correctly operates on the delete type of BBB.
  5. Rejecting AAA

Wednesday
28 May, 2025


face

This deal unites the largest team of corporate Office engineers to deliver on Collabora Productivity’s mission to restore Digital Sovereignty to its users, while making Open Source Office Rock. It supercharges Collabora’s Online Office products and services portfolio with rich German language capability, deeper experience of vertical applications, new Web Assembly skills, and a wider unified partner ecosystem. Through improved product richness this sharpens the competitive edge of FLOSS Office productivity against mass-market proprietary alternatives.

CAMBRIDGE, UK – May 28th 12:00 CEST – 2025

Collabora Productivity, the world’s leading provider of collaborative Open Source Office editors have completed a merger with allotropia. Collabora has invested heavily in building Collabora Online (COOL) – a market leading, on-premise, secure, interoperable, open-source solution for document editing and collaboration deployed to any modern browser. This is complemented by desktop and mobile apps across Linux, Windows, Mac, Android, iOS and Chrome-OS. Collabora provides support subscriptions to enterprise customers worldwide via a network of hundreds of trusted partners. This is now augmented by allotropia’s partner and customer base. Together with our partners we deliver document and productivity excellence integrated with our partners product and service offerings.

allotropia’s expertise around Web Assembly combined with Collabora Online will we expect, in time, enable customer use-cases such as well as office-as-component embedding scenarios in vertical applications as well as off-line and end-to-end encrypted editing, and. This work builds on some visionary prototype funding from the Bundesministerium des Inneren (BMI) for a collaboration between the companies to enable the use of Collabora Online off-line in the browser.

Further details of product investment, and direction will be announced and decided in workshops with our key customers and partners at our annual COOL Days conference in Budapest next week where staff, community and our customer and partner-ecosystem meet, swap ideas, and hear about the latest work in our upcoming major release featuring improved performance, usability, interoperability and much more.

“Collabora is excited to welcome each member of the allotropia team today!” said Michael Meeks, CEO, Collabora Productivity, “We are excited to work together to accelerate our product development, enjoy our first COOL Days together, and plan the next features and possibilities to delight our customers.”

Collabora has invested in building a network of hundreds of partners and is approaching one hundred million docker image downloads of its document editing server software, with millions of paying users of its products, all of whom will start to benefit from this merger from today.We expect to bring the experience that allotropia has from it’s relationship with CIB around vertical desktop applications (Fachverfahren) to help partners and customers migrate their Windows & Microsoft Office based business process to easy to deploy multi-platform web applications.

“With our awesome team of engineers, and our WebAssembly know how, we can add significantly to Collabora’s powerhouse of Office engineering prowess & their product offerings”, says Thorsten Behrens, CEO of allotropia, “we’ve worked with them as partners for many years, and align perfectly in our goals


Monday
26 May, 2025


face

Yesterday I merged a fix for Writer’s tdf#165094. Not that it was something exceptional; something that often happens when we change the huge code: a regression. Something that we try to do for them: a fix. Why mention it here?

It happens to show something, that people underestimate. The complexity of what they call “proper testing” – you know, that “I found a bug! Do you even try to test your software???” rant you often see in discussions. Let’s look at this case.

The problem was, that in some specific document, where there was a manually inserted page break, that page break, defined in a hidden paragraph, disappeared after an upgrade. Sounds easy? Should be caught immediately in the release testing? But other page breaks weren’t lost.

Debugging showed, that the bug would only occur when all of the following happened:

  • The page break was defined in a hidden paragraph (something already known from the reporter – thank you Gabor!), and
  • There were at least 26 paragraphs before that hidden paragraph, all on the same page, and
  • The page break defined a paragraph style, and
  • That page break defined a page number, and
  • That assigned new page number happened to be the same “oddity” as the current one (i.e., either the number of that page with 26+ paragraphs was odd, and the new page number was odd; or the number of that page with 26+ paragraphs was even, and the new page number was even), and
  • After the hidden paragraph (which defined the page break), a table immediately followed.

I suppose, that’s a combination of factors, that any QA engineer would naturally test first, don’t you agree? (Disclaimer: no I don’t think so.)

Note that the complexity of this constellation of causing factors is, again, not uncommon in our codebase. In fact, it only needed less than ten features to take their specific forms, from thousands of features and options that the suite offers.

But it is completely unsurprising, that the bug, that requires such a constellation of factors, actually appeared in our bug tracker. Given the tens of millions of users, who work with who knows how many documents, every low-probability event will happen, sooner or later. This is good; and we are thankful to everyone who files bugs.

And let me say, that we at Collabora Productivity are glad to do many good things to make the office suite better for everyone.


Tuesday
20 May, 2025


face

LibreOffice 25.8 will be released as final at the end of August, 2025 ( Check the Release Plan ) being LibreOffice 25.8 Alpha1 the first pre-release since the development of version 25.8 started at the beginning of December, 2024. Since then, 3918 commits have been submitted to the code repository and 533 bugs were set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.8 Alpha1 can be downloaded for Linux, macOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Friday
09 May, 2025


face

General Activities

  1. Olivier Hallot (TDF) fixed displaying help for a particular module from the command line, updated help after changes to object boundaries options, improved help on BASIC format codes and added type information to BASIC help pages, added help about multithreading in Calc, added help on saving only active sheet in Calc, explained case sensitivity in the help for Calc’s Validity and improved help for CSV import
  2. Gábor Kelemen (allotropia) worked on the script for finding unneeded includes and did many code cleanups
  3. Alain Romedenne fixed some Python code examples in Help
  4. Tomaž Vajngerl (Collabora) added support for embedded fonts in PowerPoint files, made graphics handling code more efficient and continued reworking slideshow rendering code
  5. Gökay Şatır, Marco Cecchetti, Pranam Lashkari, Parth Raiyani, Ashod Nakashian, Gülşah Köse, Szymon Kłos and Jaume Pujantell (Collabora) worked on LOKit used by Collabora Online. Jaume also added support for annotationRef elements in DOCX export to preserve the order of comments.
  6. Karthik Godha added all 3 Spotlight commands (Paragraph Style, Character Style, Direct Formatting) to Style Inspector, made it possible to rename objects from the Writer Navigator and fixed extended help tooltips being too wide in the Navigator
  7. Miklós Vajna (Collabora) continued polishing per-user change tracking in Writer, improved compatibility with DOCX’s character properties defined for “paragraph markers”, improved the handling of tracked changes that depend on each other and added support for reinstating changes
  8. Xisco Faulí (TDF) fixed exporting Writer table formulas with a sum of a range to DOCX, added a bunch of new automated tests, upgraded many dependencies, fixed crashes and did some code cleanups
  9. Michael Stahl (allotropia) made the line height for paragraphs that are empty due to hidden text compatible with MS Word and made replying to Writer comments and recovering broken ZIP files more robust
  10. Mike Kaganski (Collabora) did many code cleanups and optimisations
  11. Caolán McNamara (Collabora) fixed crashes and many issues found by static analysers and did code cleanups and optimisations
  12. Stephan Bergmann (allotropia) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  13. Noel Grandin (Collabora) made handling large charts in Calc much faster when loading, toggling edit mode and switching sheets, improved the loading speed of large RTL Writer documents, improved the speed of calculating optimal row heights in Calc and improved the speed of image processing with Skia. He also did many code cleanups and optimisations
  14. Justin Luth (Collabora) made it so table cell margins get exported to PPTX, improved the DOCX compatibility of padding and border spacing in table cells and paragraph margins, improved object positioning in DOCX import and made it so preview thumnails are displayed for DOTX templates
  15. Michael Weghorn (TDF) continued cleaning up and reorganising accessibility-related code and fixed a crash in Qt-based UIs when inserting videos into Impress. He also worked on using native widgets in Qt UIs
  16. Balázs Varga (allotropia) polished the implementation of Calc’s XLOOKUP() function, fixed

Thursday
08 May, 2025


face

Writer has the concept of rejecting tracked changes: if a proposed insertion or deletion is not wanted, then one can reject it to push back on the proposal. So far such an action left no trace in the document, which is sometimes not wanted. Calling reinstate on a change behaves like reject, but with history: it reinstates the original state, with the rejected change preserved in the document.

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

Motivation

When Alice works on a document to insert e.g. new conditions for a contract, then perhaps Bob is not happy with the proposal. But just rejecting the change "silently" would not be polite: the tracked change then disappears, so possibly Alice thinks it was accepted and Bob didn't communicate the pushback explicitly in the resulting document, either.

Reinstate is meant to improve this interaction: if an insert is reinstated, then an explicit delete is created on top of the insert, so Alice can see that Bob was not happy with the proposal. Or in case Alice proposed a delete, Bob can reinstate that by adding the same content again to the document, without typing the text manually after the delete.

This is a UI feature: the resulting model still only contains inserts and deletes, so it works even with DOCX files.

Results so far

Given an insert:

Reinstate: an insert

Now you can easily create a delete on top of the insert:

Reinstate: a reinstated insert

And given a delete:

Reinstate: a delete

Now you can easily create an insert right after the delete, preserving complex content:

Reinstate: a reinstated delete

As you can see, this creates the opposite of the original change as a new tracked change, so it will in the end still reject the change, but without deleting the original change.

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:

Online side:

Want to start using this?

You can get a development edition of Collabora Online 25


Wednesday
30 April, 2025


face

This FirebirdSQL pull request introduces support for Windows ARM64 builds to the Firebird project. The changes cover updates to build scripts, configuration files, and Visual Studio solution/project files to accommodate ARM64 architecture, ensuring compatibility and enabling compilation and functionality on Windows ARM64 platforms.


face

This FirebirdSQL pull request introduces SQL-compliant aliases GREATEST and LEAST for the existing MAXVALUE and MINVALUE functions. These aliases align with the SQL:2023 standard and provide a more intuitive and widely recognized syntax. The changes include updates to documentation, keywords, parser tokens, and system function definitions to support these new aliases.


Friday
18 April, 2025


face

As a LibreOffice user, you have certainly seen the LibreOffice splash screen. It is displayed when you open LibreOffice, it has a progress bar, and when loading the application is finished it goes away. Here we discuss a suggested improvement for this splash screen.

Current Implementation Approach

Currently, the splash screen is implemented by creating a custom widget with a custom painting mechanism that draws the splash image and also the progress bar and moves the progress indicator.

This has some drawbacks:

1. The splash screen does not always scale to the same size as the main LibreOffice Window.

2. The style of the progress bar is somehow different from other UI elements, looks mostly like gen interface.

3. It needs and uses a custom paint code.

4. It does not conform to the dark/light theme.

5. It is not easily localize-able. In fact, the only text is from the displayed image, in English. When you build from sources, the image file is instdir/program/intro.png.

LibreOffice splash screen bitmap

LibreOffice splash screen bitmap

6. It is a separate binary (oosplash). You may run it with:

$ ./instdir/program/oosplash
LibreOffice dev splash screen

LibreOffice dev splash screen

VCL Weld Mechanism

I have previously written about VCL weld mechanism, which is based on creating user interface files (.ui) and loading them inside the application.

The weld mechanism greatly reduces the complexity of creating user interfaces, and also improves other aspects of the user interface, including the consistency.

Code Pointers

Most of the code for the current implementation resides in:
desktop/source/splash/splash.cxx.

The SplashScreenWindow class has an custom paint method, SplashScreenWindow::Paint(), which draws the bitmap, and also the progress. A new UI file is needed for this purpose, which should use GtkProgressBar, which will be considered a weld::ProgressBar. VCL then uses appropriate progress bar widget in different graphical plugins of VCL.

You may look into some dialogs like tip of the day to get some insight:

It would be interesting to avoid a separate binary, but it is fine to keep things as is, and just change to use .ui file.

Final Words

The above issue is tdf#166128. If you would like to work on fixing it, you can just follow the Bugzilla link to see more information.

You may also use ideas from a minimal weld application here:

VCL weld: create LibreOffice GUI from design files


Friday
11 April, 2025


face

General Activities

  1. LibreOffice 25.2.2 and LibreOffice 24.8.6 were announced on March 27
  2. Stanislav Horáček updated and improved UI and help texts
  3. Gábor Kelemen (allotropia) documented a new field that displays the page count for a range until the next numbering reset
  4. Alain Romedenne expanded help for ScriptForge and other scripting topics
  5. Tomaž Vajngerl (Collabora) reworked slideshow rendering code for robustness and simplicity
  6. Gökay Şatır, Marco Cecchetti and Szymon Kłos (Collabora) worked on LOKit used by Collabora Online
  7. Miklós Vajna (Collabora) implemented per-user change tracking in Writer and fixed unexpected list level change on inserting a new bullet in Writer
  8. Olivier Hallot (TDF) improved the UI and help pages for Calc’s Data Provider and improved help for Calc’s Duplicates command
  9. Xisco Faulí (TDF) added a bunch of new automated tests, upgraded many dependencies and did some code cleanups
  10. Michael Stahl (allotropia) improved the Accessibility Checker, improved MS Word compatibility with hiding empty paragraphs before tables in certain scenarios and fixed an issue with installing custom default templates via extensions
  11. Mike Kaganski (Collabora) greatly improved the performance of font preview in Calc, fixed Calc’s COUNTA() function returning 1 for empty ranges, fixed integer overflow in Writer’s Find & Replace match count, improved the loading speed of Writer documents with lots of bookmarks and tables and made the code for Underline Trailing Spaces compatibility option more robust
  12. Caolán McNamara (Collabora) improved spellchecking performance in multi-language spreadsheets, fixed many issues found by static analysers and did code cleanups and optimisations
  13. Stephan Bergmann (allotropia) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  14. Noel Grandin (Collabora) made canvas rendering in Draw more robust, updated Skia through several versions, fixed slow switching of sheets in Calc when lots of drawing objects or lots of formatted cells are involved, improved spellchecking speed in Writer, made it faster to load complex XLSX spreadsheets, made it faster to delete very large tables in Writer, made it faster to load Writer documents with change tracked moves and improved the loading time of certain DOC files. He also did many code cleanups and optimisations
  15. Justin Luth (Collabora) fixed a line spacing issue in table cell content in PPTX files and fixed endnotes and footnotes data becoming lost when roundtripping glossary relations to DOCX
  16. Michael Weghorn (TDF) continued cleaning up and reorganising accessibility-related code, made Quick Find more accessible and made gtk4 file dialog show all the extra controls. He also worked on using native widgets in Qt UIs
  17. Balázs Varga (allotropia) worked on the WASM build, fixed unwanted table border lines in PPTX export, added an accessibility check for links and references in header/footer, fixed Quickstarter being visible in options even if the feature is not installed and made it so the Online Update page is not visible, if the feature was not selected to be installed
  18. Patrick Luby made the macOS Start Center displaying logic more

Tuesday
08 April, 2025


face

Here is the description : "The range-based FOR statement is used to iterate over a range of numeric values. The iteration is performed in increasing order when used with TO clause and in decreasing order when used with DOWNTO clause"Syntax[<label> :]  FOR <variable> = <initial value> {TO | DOWNTO} <final value> [BY <by value>] DO      &


Monday
07 April, 2025


face

We are happy to announce the release of Jaybird 6.0.1 and Jaybird 5.0.7. Both releases provide a number of performance improvements to blob handling, and some bug fixes.We plan to offer more blob performance improvements in upcoming releases of Jaybird 5 and 6, for Firebird 5.0.3 and higher (see also New Article: Data access methods used in Firebird).


Wednesday
02 April, 2025


face

Writer has the concept of recording tracked changes or not: if recording, typing into a document or deleting content will create tracked changes of type insertion or deletion. So far this was a per-document setting, but now individual users can enable or disable this as they wish.

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

Motivation

When Alice keeps typing and Bob enables change tracking, then surprisingly the typed characters of Alice will form a tracked insertion, which is surprising, since that was not the case a second ago and Alice didn't do anything other than typing.

Giving users a choice if they enable recording for just this user or for all users fixes this problem.

Results so far

Here is how the per-user (technically per-view) tracked changes recording looks like:

Per-view tracked changes recording

As you can see, the user on the left has recording turned on and this doesn't influence the user on the right, while this was not possible before.

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:

Online 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 (25.8).

<- Current blog entries