The Document Foundation Planet

 

December 24, 2016

December 23, 2016

Official TDF Blog

Advent Resource #23: OpenHub

OpenHub is a project sponsored by Black Duck, which provides an overview of open source software projects by parsing their repositories and transforming the results in numbers and/or charts. Although we have our own numbers, we have extensively used OpenHub as an independent source of information.

The LibreOffice page is here: https://www.openhub.net/p/libreoffice.

by Italo Vignoli at December 23, 2016 06:29 PM

December 22, 2016

Official TDF Blog

Advent Resource #22: PDF Forms Guide

The Leading English Education and Resource Network (LEARN) is a non-profit organization that primarily serves the public and private Anglophone, and Aboriginal, Youth and Adult Education sectors of Québec.

LEARN has developed a short guide for creating a PDF Form using LibreOffice, which has been originally published for version 4.0.5.2 [download PDF], and has been updated a first time for version 4.2.8.2 [download PDF] and a second time for version 5.0.5.2 [download PDF].

by Italo Vignoli at December 22, 2016 10:23 PM

Let’s celebrate with LibreOffice 5.2.4

Berlin, December 22, 2016 – The Document Foundation (TDF) announces the availability of LibreOffice 5.2.4still, the fourth minor release of the LibreOffice 5.2 family. Based on the upcoming announcement of LibreOffice 5.3, all users can start to update to LibreOffice 5.2.4 from LibreOffice 5.1.6 or previous versions.

TDF suggests deploying LibreOffice in large organizations, public administrations and enterprises with the backing of professional support by certified people (a list is available at: http://www.libreoffice.org/get-help/professional-support/).

Road to LibreOffice 5.3

With the availability of LibreOffice 5.3 RC1, the project has entered the last stage of the road to LibreOffice 5.3, which will be announced on February 1st, 2017. In the meantime, we have announced the UI concept: https://blog.documentfoundation.org/blog/2016/12/21/the-document-foundation-announces-the-muffin-a-new-tasty-user-interface-concept-for-libreoffice/.

Users can start learning about the new exciting features on LibreOffice 5.3 Release Notes page (https://wiki.documentfoundation.org/ReleaseNotes/5.3). The page will be updated until the very last minute.

Download LibreOffice

LibreOffice 5.2.4 is immediately available for download from the following link: http://www.libreoffice.org/download/libreoffice-fresh/.

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at http://donate.libreoffice.org.

Several companies sitting on TDF Advisory Board (http://www.documentfoundation.org/governance/advisory-board/) are providing either value added Long Term Supported versions of LibreOffice or consultancy services for migrations and trainings, based on best practices distilled by The Document Foundation.

by Italo Vignoli at December 22, 2016 12:04 PM

December 21, 2016

Official TDF Blog

Advent Resource #21: Solver Tutorial

Solver Tool has the capability to solve linear (and often nonlinear) programming problems, and is available in Microsoft Excel as well as LibreOffice.

edX, an online learning destination and MOOC provider founded by Harvard University and MIT in 2012 and offering high-quality courses from the world’s best universities and institutions to learners everywhere, has developed a tutorial which shows the user how to (1) load the solver into the spreadsheet, (2) define the problem and write out formulas for the objective and constraints, and (3) solve the problem.

edX tutorial is focused on Microsoft Excel (Mac and PC) and LibreOffice. At the end of the document there is a quick guide on how to debug the Solver.

by Italo Vignoli at December 21, 2016 11:17 PM

Tamas Zolnai

A short time spent on LibreOffice accessibility

LibreOffice and Orca

In the last months I have a short time period fixing accessibility issues mainly on Linux. LibreOffice has a bunch of this kind of issues (fdo#36549). This metabug is about those bugs which makes it difficult for Orca screen reader to make LO usable for visually impaired users. As I see Orca has a few workarounds in it's LO related code to handle these issues (e.g. ignoring false or duplicated events), but some times there is no such solution and we need to add improvements on LO side.

Small fixes

So I did some bug fixing on this area. Most of the bugs were about missing accessibility events, which are needed for Orca to handle events which are visible on the screen and so users should notice these changes. For example when the selection is changed on a Calc sheet (fdo#93825) or when the cursor moves inside a text portion (fdo#99687, fdo#71435). These issues can be frustrating for users who used to get feedback about the effect of their keyboard key pressing.

Fixing these issues needed small code changes, which shows LO accessibility code has a good structure in general, but as the code changes in time, some parts of this code just becomes broken, without maintanance.

Spellcheck dialog

A bit bigger change, I added, was related to the spellcheck dialog (fdo#93430). Spellcheck dialog shows the errors spellcheck algorithms find and shows some options to handle these errors (e.g. suggestions for correction). The problem with this dialog was with the text entry which shows the misspelled word. This text entry contains a small part of the text and highlights the misspelled word with red text color. Orca tried to get this small text part and find out which word is the erroneous one, but LO did not return the right text attributes and so Orca did not have the necessary information to handle this situation.

Now, after fixing this issue text color and also the boundaries of misspelled word are accessible for Orca. Great to see that Orca's developer, Joanmarie Diggs already adapted the code to handle these new information and so reading of this spellcheck dialog will be better in the next versions of the two softwares.

BeLin

I added these accessibility improvements working for IT Foundation for the Visually Impaired. One project of the Foundation is an Ubuntu based operating system for visually impaired users called BeLin ("Beszélő Linux", which is "Speaking Linux" in English). Since it's an Ubuntu based distribution it has LibreOffice as default office suite and uses Orca as screen reader.

Hopefully these change will make more comfortable to use LibreOffice and Orca both on BeLin and on other Linux distributions.

by Zolnai Tamás (noreply@blogger.com) at December 21, 2016 08:24 PM

LibreOffice Design Blog

Evolving Past the Restrictions of Toolbars

Toolbars are a common toolkit control that have been around since the dawn of GUI applications, providing direct access to an application’s most frequently used functions. But with increasing scope, the number of frequently used functions grows to an extent that can have a detrimental impact on quickly locating a particular item.

Human perception is limited, but we are perfect in the processing of information. Pieces of information are stored together and build a mental model. In case of the classic toolbars, you likely know where to look for the Undo and Redo buttons, not precisely but approximately, and also remember a few functions next to these buttons. This ‘chunking’ is supported by the elaborated grouping of buttons and with separators between them. But sometimes those tiny features are not enough to convey useful information to the user.

Some attempts have been made to overcome this problem; for example LibreOffice has done it before with the Sidebar and is doing it again with another approach. We’ve implemented a toolbar, that we call the Notebookbar, as a blank canvas where designers have all the freedom to do whatever they want with the space.

Delicious MUFFIN

With a blank canvas, a designer can place any UI widget on it, including the usual buttons with or without a label, a section label to identify the group of controls, or more advanced widgets like tabs. They also have the ability to define any dimension for buttons, so they serve as a visual attractor, and all together have a larger catalog of controls to choose from than couldn’t be found in classic toolbars. Furthermore, they can define that the main menu can be hidden, or whether it should have a particular icon theme, for instance.

Of course the classic toolbars will still remain and are enabled by default, so don’t be afraid of radical changes. Users interested in trying out the Notebookbar will be able to opt-in and will be able to try out multiple different implementations.

Contextual groups

For the contextual groups implementation, the Notebookbar is split into labeled sections (similar to classic toolbar separators but more prominent), i.e. file operations, clipboard interactions, text formatting functions, and a context dependent section. Last but not least a small section for configuration of the toolbar itself at the right.

Three icon sizes are utilized: large icons with a label below being a perceptual attractor for the most important section interactions. Furthermore medium sized icons, two in a column, and small icons with three positioned together. Since this layout targets beginners, we label all buttons.

Notebookbar in the contextual group layout.

Figure 1: Notebookbar in the contextual group layout.

The contextual groups Notebookbar aims for consistency, which means also that it has to be as static as possible. Thus, Formatting remains available in all contexts, but gets disabled for objects like images. We also want to promote styles as the primary formatting tool. Having large icons for this leads the user to this function, which is not only valid for text (big A in the mockup at the formatting section) but also other objects such as tables (big T for table styles which have been introduced recently). To bring this idea more forward, we added an image style here having color modes like grayscale or watermark in mind.

Of course, the price to pay for various sized icons and text labels is limited space, and we had to remove some functions. That includes, among others, Find and Replace, Spellchecking, Non-Printing Characters, as well as Insert page breaks, Fields, and Special characters. Some could be added into the tools section, wherein the chevron indicator (») exemplifies how small screens or resized main window would behave in case of more content. But basically this variant of the Notebookbar is designed for beginners or simple tasks and should be as plain as possible.

Another challenge is to find good labels that are short enough to fit into the section. In the Chart contextual section, some labels were shortened, for instance Horizontal Grid, Data Table, or Format Selection. This section also has chart styles in a similar place as the Table and Image sections.

The goal is to have various toolbars for different users and scenarios, at best easily user-editable, and the user choose the appropriate at the right hand configuration section. It has (unlabeled) access to the configuration, a drop-down selection with a label below what is active.

Not only consistency at the different contexts is our goal but also familiarity over the programs. The Notebookbar for Calc and Impress looks very similar compared to Writer.

Notebookbar for Calc and Impress.

Figure 2: Notebookbar for Calc and Impress.

Likely a context dependent section is not necessary for Calc and Impress – chart manipulation, for instance, is available in the sidebar. The idea of animation and transition for Impress is to show the recently used options in this drop-down only, five or so, that overrides the factory setting.

In case of Draw the focus is not the formatting of text but to position objects. While text can be added to almost all objects, the formatting is rather relevant for a text box. And even when a text box has no styling capability today the context dependent section would ideally correspond to what is known from Writer.

Notebookbar for Draw

Figure 3: Notebookbar for Draw.

Alternative layouts

As discussed in the introduction, we can also place tabs on the Notebookbar. This layout occupies a similar space as the main menu (which is hidden with this layout) and classic toolbars and organizes all menu functions across the tabs. An implementation similar to the single line toolbar is also possible, which can be contextual and horizontally centered.

Notebookbar in tabbed mode.

Figure 4: Notebookbar in tabbed mode.

And of course it should also be possible to set-up configurations where the Notebookbar focuses on a special workflow like scientific writing.

Notebookbar in scientific writing mode.

Figure 5: Notebookbar in scientific writing mode.

Some crazy ideas were made in the community how the UI may look in a bright future. While it was far-fetched at the time being created the Notebookbar allows also these fancy configurations now.

Mockup by T6Uni (CC by SA 3.0).

Figure 6: Mockup by T6Uni (CC by SA 3.0).

The only limit is your creativity and the available list of functions known as ‘uno:commands’.

Experimental state

At this year’s Google Summer of Code, the Notebookbar was worked on by Szymon Kłos (aka eszka), continuing the development begun by Jan Holešovský (aka Kendy) and Samuel Mehrbrodt. We also made some configurations, that is the contextual group presented here as well as a contextual single line variant and the tabbed version. The flexibility of its development will allow the easy creation and testing of multiple implementations during the development cycle, something that wasn’t possible during OpenOffice.org’s Project Renaissance days.

The current implementation is in an experimental state, which means that you will have to unlock the menu entry first. This allows to switch the toolbar mode under View > Toolbar layout to Notebookbar. While the mockups have a dedicated section for the configuration that also allows to quickly switch the mode, this feature has not been finished yet. The modes are switched under View > Notebookbar.

Some of the implemented controls do not work perfectly, in particular that toggle buttons don’t appear toggled unless they are hovered over, drop-down menu lists are sometimes not filled or have entries that don’t function, section headers can’t be styled to have a good background color, and accessibility needs improvements (tdf#102059).

The classic toolbars are customizable and users can add or delete items from the pool of functions. This option is not available for the Notebookbar in this first stage of development; the only means of configuration is to deal with the Glade UI files. Eventually we hope to have a similar customization option like we have in Tools > Customization or we may possibly have an inline UI edit mode similar to what Mozilla allows for Firefox.

We are looking forward to your comments and ideas on how to configure a collection of toolbars. With a good set of options the individual configuration is less relevant.

by The LibreOffice Design Team at December 21, 2016 01:00 PM

December 20, 2016

Miklos Vajna

PAdES support for PDF files in LibreOffice

Building on top of the previously mentioned signing of existing PDF files work, one more PDF feature coming in LibreOffice 5.3 is initial support for the PDF Advanced Electronic Signatures (PAdES) standard. First, thanks to the Dutch Ministry of Defense in cooperation with Nou&Off who made this work possible.

Results

PAdES is an extension of the ISO PDF signature with additional constraints, so that it conforms to the requirements of the European eIDAS regulation, which in turns makes it more likely that your signed PDF document will be actually legally binding in many EU member states.

The best way to check if LibreOffice produces such PDF signatures is to use a PAdES validator. So far I found two of them:

As it can be seen above, the PDF signature produced by LibreOffice 5.3 by default conforms to the PAdES baseline spec.

Implementation

I implemented the followings in LO to make this happen:

  • PDF signature creation now defaults to the stronger SHA-256 (instead of the previously used weaker SHA-1), and the PDF verifier understands SHA-256

  • the PDF signature creation now embeds the signing certificate into the PKCS#7 signature blob in the PDF, so the verifier can check not only the key used for the signing, but the actual certificate as well

  • the PDF signature import can now detect if such an embedded signing certificate is present in the signature or not

Note
Don’t get confused, LO does signature verification (checks if the digest matches and validates the certificate) and now shows if the signing certificate is present in the signature or not, but it doesn’t do more than that, the above mentioned DSS tool is still superior when it comes to do a full validation of a PAdES signature.

As usual, this works both with NSS and MS CryptoAPI. In the previous post I noted that one task was easier with CryptoAPI. Here I experienced the opposite: when writing the signing certificate hash, I could provide templates to NSS on how the ASN.1 encoding of it should happen, and NSS did the actual ASN.1 DER encoding for me. In the CryptoAPI case there is no such API, so I had to do this encoding manually (see CreateSigningCertificateAttribute()), which is obviously much more complicated.

Another pain was that the DSS tool doesn’t really separate the validation of the signature itself and of the certificate. The above screenshot was created using a non-self-signed certificate, hence the unclear part in the signed-by row.

If you want to try these out yourself, get a daily build and feel free to play with it. This work is part of both master or libreoffice-5-3, so those builds are of interest. Happy testing! :-)

December 20, 2016 11:08 AM

December 19, 2016

Lera Goncharuk

Creating a Tornado charts in LibreOffice Calc

Tornado charts help us to display opposite sides of one and the same process. This is not just a nice view, but the intuitive display of the process. In this article I will try to show a quick and easy way to build this type of charts in LibreOffice Calc.
Read more »

by Lera Goncharuk (noreply@blogger.com) at December 19, 2016 08:31 PM

December 17, 2016

>Marius Popa Adrian

LibreOffice bug #103074 : Implement Boolean Type for Firebird driver is now fixed

Bunth Tamás committed a patch related to issue #103074 : Implement Boolean Type for FB driver . It has been pushed to "master": It will be available in 5.4.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds

by Adrian Marius Popa (noreply@blogger.com) at December 17, 2016 12:45 PM

December 16, 2016

Florian Effenberger

LibreOffice bei Telegram

Die LibreOffice-Community ist wie eine große Familie, die rund um den Globus verteilt an einem gemeinsamen Ziel arbeitet. So vielfältig die Aufgaben, so vielfältig sind auch die Mitwirkenden – vom Schüler und Studenten über den Angestellten bis hin zum freischaffenden Künstler und Rentner, sie alle sind bei uns vertreten.

Während Open-Source-Projekte klassischerweise über IRC und Mailinglisten, mitunter aber auch per Telefon kommunizieren, steht seit einigen Jahren das Thema Social Media hoch im Kurs – Facebook, Google+, Twitter, Instagram, wer neue Leute erreichen will, der muss auch neue Kanäle ausprobieren und so sind auch wir vielerorts vertreten.

Populär sind in der letzten Zeit die zahlreichen Handy-Messenger geworden, die die Kommunikation grundlegend verändert haben. Um dem Rechnung zu tragen, haben wir jüngst einen Versuch gewagt, und beim Messenger Telegram eine englischsprachige Gruppe sowie einen Kanal eingerichtet, die sehr gut angenommen werden. Entstanden aus der Gruppe zur LibreOffice Conference 2016 ist das erklärte Ziel, der Community eine Plattform zu geben um insbesondere diejenigen ins Projekt zu integrieren, die sich mit den bestehenden Kommunikationskanälen nicht anfreunden können.

Nach positiver Rückmeldung zahlreicher Sprachprojekte haben wir nun auch in Deutschland eine eigene Telegram-Gruppe ins Leben gerufen, die du unter

https://telegram.me/LibreOfficeDE
(alternativ per Direktlink:
https://telegram.me/joinchat/CERr7T_1rRFTxQDH21AZTw)

findest. Ziel der Gruppe ist der Austausch der Anwender und Mitwirkenden untereinander. Für Supportanfragen sind andere Kanäle besser geeignet.

Gerade für ein Open-Source-Projekt ist das zweifelsohne ein ähnlicher Balanceakt wie die Nutzung sozialer Netzwerke: diejenigen, die populär sind, die sind in der Regel nicht komplett frei, und diejenigen, die als Open Source zum Selberhosten zur Verfügung stehen, werden meist nur von denjenigen Nutzern frequentiert, die man auch auf den bestehenden Kanälen bereits erreicht. Wichtig ist meiner Meinung nach, dass relevante Diskussionen und Entscheidungen stets auf den primären Kommunikationskanälen – insbesondere die Mailinglisten – stattfinden und Arbeiten innerhalb der Infrastruktur des Projekts erfolgen, die jeweils auf freier Software basieren. Plattformen bei Dritten können das Angebot stets nur ergänzen, jedoch nicht ersetzen.

Zur generellen Nutzung noch zwei Hinweise aus der Praxis:

  1. Jedes Gruppenmitglied kann bei Telegram standardmäßig anhand des Benutzernamens einem anderen Gruppenmitglied eine direkte Nachricht schicken, auch ohne dessen Handynummer zu kennen. Wenn ihr in einer öffentlichen Gruppe teilnehmt, besteht also die Möglichkeit, dass euch andere Teilnehmer direkt kontaktieren.
  2. Aufgrund der zu erwartenden Anzahl an Nachrichten empfehle ich, die Gruppe entweder komplett auf stumm zu schalten, oder aber die Benachrichtigung dezent zu konfigurieren. Telegram bietet zudem die Möglichkeit, sich innerhalb eines bestimmten Zeitraums nur einmalig über neue Nachrichten informieren zu lassen.

In diesem Sinne: Wir lesen uns! 🙂

 

by Florian Effenberger at December 16, 2016 02:14 PM

December 13, 2016

TDF Infrastructure Status

pootle upgrade starting Thu (16-12-15), 10:00 UTC

Starting Thursday morning at 10:00 UTC, our instance of pootle will be upgraded. The server will not be available for translators during that time.

While we plan for the upgrade to be done within a few hours, don't be alarmed if pootle is not available.

See also the announcement to the l10n list.

by The Document Foundation at December 13, 2016 11:00 PM

December 12, 2016

Cor Nouws

LibreOffice off course offers alternatives for users of all Microsoft user interfaces

One of the big advantages of LibreOffice has been, for a long time, that it offers the well known menu based user interface to its users. Less known, is that LibreOffice also has solutions for the group users that is quite well used to different interfaces: the Notebookbar!

Over time LibreOffice worked on the concept of the Notebookbar, and that got supported by the working with Glade-designer for the user interface. With it's tabbed view, it looks as a notebook ;)

The Notebookbar itself also has multiple forms: Tabbed, Contextual Single and Contextual Groups. It can easily be seen in the next 5.3 release, if experimental features are turned on. The official 5.3-release is end of January.


LibreOffice offers an ideal solution for people that prefer to work with either a menu, or with a side bar, or with a more block-like interfaces!

Settings


  • Tools > Options > LibreOffice General > Advanced … check Experimental features
  • View > Toolbar Layout > Default/Single toolbar/Sidebar/Notebookbar
  • View > Notebookbar > Tabbed/Contextual Single/Contextual Groups
  •   (activate from the setting Tabs the Menubar via the LibreOffice-icon top left)

    *) Info Glade-designer
    *) Download LibreOffice 5.3 bèta 1

    by Cor & OfficeBuzz (noreply@blogger.com) at December 12, 2016 06:02 PM

    Miklos Vajna

    Signing existing PDF files in LibreOffice

    TL;DR: see above — it’s now possible signing existing PDF files and also verify those signatures in LibreOffice 5.3.

    The problem

    LibreOffice already made it possible to digitally sign PDF files as part of the PDF export, so in case you had e.g. ODF documents and exported them to PDF, optionally a single digital signature could be added as part of the export process. This is now much improved. First, thanks to the Dutch Ministry of Defense in cooperation with Nou&Off who made this work possible.

    A user can already use an other application to verify that signature or sign an already existing PDF file. The idea is to allow doing these from inside LibreOffice, directly.

    Results

    As it can be seen above, now the Digital Signatures dialog not only works for ODF and OOXML files, but also for PDF files. If the file has been signed, then the dialog performs verifications of that signature. Signatures are also verified on opening any signed PDF file.

    I’ve also extended the user interface a bit, so that signing an existing PDF file is easy, similarly how exporting to PDF is easier than exporting to a random other file format. There is now a new File → Digital signatures → Sign exiting PDF menu item to open a PDF file for signing:

    When that happens the infobar has a dedicated button to open the Digital Signatures dialog, and also going into editing mode triggers a warning dialog, as going read-write is not needed to be able to sign a document:

    And that’s basically it, after you open a PDF file in Draw, you can do the usual digital signature operations on the file, just like it already works for previously supported file formats.

    Details

    What follows is something you can probably skip if you’re a user — however if you’re a developer and you want to understand how the above is implemented, then read on. ;-)

    PDF tokenizer

    The signing feature in ODF/OOXML is implemented by working directly on the ZIP storage in xmlsecurity/. This means that in the PDF case it’s necessary to work on the PDF file directly, except that we had no such PDF tokenizer ready to be used.

    Code under xmlsecurity/source/pdfio/ now is such a tokenizer that can extract info from PDF files and can also add incremental updates at the end of the file, this way we can make sure adding a signature to a file won’t loose existing content in the file. This is fundamentally different form the usual load-edit-save workflow, when we convert the file into a document model, and work on that.

    Verification of signatures

    Previously LO was only able to generate signatures, not verify them. I’ve implemented PDF signature verification using both NSS and CryptoAPI, so all Windows, Linux and macOS are covered. I have to admit that the initial verification was much easier with CryptoAPI. Until I hit corner-cases, I could use an API that’s well-documented and is higher level than NSS. (I don’t have to support different hash types explicitly, for example.)

    When I added support for non-detached signatures, that changed the situation a bit:

     1 file changed, 15 insertions(+), 11 deletions(-)

    was the NSS patch, and

     1 file changed, 104 insertions(+), 8 deletions(-)

    was the CryptoAPI patch.

    Signing existing files

    Signing an existing file means tokenizing a document, figuring out how an incremental update should look like for that file, writing an incremental update that has a placeholder for the actual signature (a PKCS#7 blob, where the input is just the non-placeholder parts of the document as binary data), and finally filling in the placeholder with the actual signature.

    For the last step, I could reuse code from the PDF export (modulo fixing bugs like tdf#99327). For the other steps, the tokenizer remembers the input offset / length for the given token, this way it’s relatively easy to create incremental updates. You can add new objects or update new objects in such an incremental update, and this source tracking feature allows copying even the unchanged parts of updated objects verbatim.

    PDF 1.5+

    Everything becomes a bit more complicated once I started to handle not only LO-generated PDF-1.4, but also newer PDF versions. I think this is important, as Adobe Acrobat creates PDF 1.6 by default today, which has a number of new features (I think all of them were actually introduced in PDF-1.5) that affects the tokenizer:

    • xref stream: instead of an ASCII xref table ("table of contents") at the end of the file, it’s now possible to write the binary equivalent of this as an xref stream. Because the binary version can describe more features we must also write an updated xref stream (and not an xref table) when the import already had an xref stream.

    • object streams: it’s now possible to write multiple objects inside the stream section of a single object in binary form. The tokenizer is necessary to be able to read these objects and also roundtripping (source tracking) should work not only with physical file offsets, but also inside such compressed streams where the offset is no longer just a number inside the input file. (It’s OK to write the updated objects outside object streams, still.)

    • stream predictors: this is a concept from the PNG format, but also used in PDF when compressing the xref stream. See the spec for the gory details, but in short it’s not enough that instead of plaintext you have to deal with binary compressed data, you also have to filter the data before actually parsing the file offsets, and the filter is defined not in terms of object IDs and file offsets, but in terms of adjacent pixels, since it’s documented in the PNG spec. :-) (To be close to the Adobe output, we also apply such predictors when writing compressed xref streams.)

    User Interface

    In addition to be UI changes already mentioned above, one more improvement I did is that now the Digital Signatures dialog has a new column to show the signature type. This is either XML-DSig (for ODF/OOXML) or PDF.

    Testing

    I’ve added an integration test in the existing CppunitTest_xmlsecurity_signing to have coverage for the small new code that calls into xmlsecurity/ from sfx2/ in case of PDF files. But fortunately because all other code in xmlsecurity/ was new, I could do unit testing in CppunitTest_xmlsecurity_pdfsigning for the rest of the features.

    Needless to say that invoking the PDF tokenizer + signature creator/verifier directly is much quicker than loading a full PDF file into Draw, just to see the signature status. ;-)

    Summary

    If you want to try these out yourself, get a daily build and play with it! This work is part of both master or libreoffice-5-3, so those builds are of interest. Happy testing! :-)

    December 12, 2016 09:11 AM

    December 11, 2016

    Mike Kaganski

    My first hack-(rest-of-the)-week at Collabora

    I must say that I’ve been attentive reader of TDF feeds almost from the very beginning of its history, when I couldn’t think to develop for LibreOffice. And reading posts of developers, where they described what they had done at their hack-weeks at SUSE, made me really envy them…

    So here is my first hack-(rest-of-the)-week at Collabora Productivity! That’s cool!

    And when it happened, it turned out that I need to finish a work that I started this week. What a pity! Well, the task itself was really interesting, and I’m glad that it is in a close-to-be-finished form in gerrit… but still. So, only hack-weekend🙂

    As I didn’t have that much time, I couldn’t afford doing something big and lengthy. So I turned to my favorite topic: SAXParseException.

    Here I need to tell you what is it. Until LibreOffice 5.0.4, many errors in XML that LibreOffice reads were simply silently ignored. Note that both LO’s native format, ODF, as well as its most popular competitor, OOXML, are XML formats. It means that the file could be read incorrectly, some data could be dropped, some bugs could go unnoticed, but file opened as if everything was OK. Data loss could go unnoticed.

    In January 2015, two days before my daughter’s 3rd birthday , a named hero Michael Stahl took required steps and committed a patch that put that madness to end. Now every error in the XML data that LO reads is reported to user as famous SAXParseException. This annoys users, but it yells loudly “Fix me!”, and it has already enabled us to find and fix quite a number of errors that previously went unnoticed.

    So, I must say that I like to hack on these bugs. But since I started to work full-time as developer, I had not that much time for them. And now I took bug 99227 for the rest of my hack-week.

    It turned out to be LibreOffice OOXML export filter fault, that caused loss of drawings in footnotes/endnotes. It also created an invalid XML, which was caught on following import, telling that it found “Extra content at the end of the document”.

    I’m happy to say that the patch is on its way (it’s on review, and after some rounds of fixing my evident mistakes pointed out by merciless reviewers, it will be pushed).

    It may seem odd that I feel so enthusiastic about changing hacking on LO by … hacking on LO.🙂 But actually, my daily work is so great, I really love it! and being able to choose tasks myself is the only part that I miss sometimes… and that I get now.

    Thanks to Collabora Productivity, to all fellow hackers, and thank you for reading this🙂


    by mikekaganski at December 11, 2016 07:05 PM

    Naruhiko Ogasawara

    LibreOffice Kaigi 2016.12 had finished successfully! (quick update)

    LibreOffice Kaigi 2016.12, Japanese annual LibreOffice conference, had finished yesterday with great success!

    LibreOffice Kaigi 2016.12 group photo

    The word "Kaigi" is a Japanese word "会議," means "conference."  The name means not only Japanese "regional," but also "Japanese users specific."

    Around 25 people gathered, and enjoyed several talks (ODF migration, LibreOffice/ODF and styles, maintaing Math and Japanese translation), Lightning talks and a panel discussion.

    At the same venue, Japanese Debian guys run their own mini Debian conference, and we had a party together!

    Both of Debian and LibreOffice folks enjoyed party

    I promise I will write a report in detail near future, but in this article, I want to let you know we totally enjoyed the Kaigi and everyone feels happy.

    Thank you for all speakers (especially Mr. Franklin Weng as the keynote speaker), attendees and staffs.  And many thanks to our wonderful sponsors:

    - Cybozu Inc. (venue)
    - i-Craft Corp. (party)

    by Naruhiko Ogasawara (noreply@blogger.com) at December 11, 2016 05:22 AM

    December 10, 2016

    Charles Schulz

    An ode to releasing software

    There is one particular moment in every Free and Open Source Software project: it’s the time when the software is about to get released. The software has been totally frozen of course, QA tests have been made, all the lights are green; the website still needs to be updated with the release notes, perhaps some new content and of course the stable builds have to be uploaded. The release time is always a special one.

    The very day of the release, there is some excitement and often a bit of stress. The release manager(s), as well as everyone working on the project’s infrastructure are busy making sure everything is ready when the upload of the stable version of the software, binaries and source, has been completed. In many cases, some attention is paid to the main project’s mirror servers so that the downloads are fluid and work (mostly) flawlessly as soon as the release has been pushed and published.

    The LibreOffice project has released it’s latest incarnation from its Fresh branch, the 5.2.3 somewhat recently and it is amazing to see the pace of improvements and changes that have been taking place not just since the beginning of the project in 2010, but from one major release to another. Needless to say, there’s always much excitement going on on a LibreOffice release day. Recently the project decided to communicate more about the upcoming changes and features in its next majro branch, the 5.3.x. It is a smart move, and it will be useful as it seems that we need to reinforce our message about new features and changes in user interface.

    Here again, one is amazed by looking at the sheer amount of changes and improvements brought by one major version to another. It is not only new features, interface changes, it is also an important number of bugs that have been squashed. On a more human point of view, this is also the collective adventure of a community of contributors that culminates the day of a release. To experience such a day is quite unique.

    Yet the joys and excitement of releasing a new version are not confined to the LibreOffice project. It really is a shared experience across the Free and Open Source world. This week for instance, the mu email “client” and indexer have been released in a new stable version. Many improvements both in the search and indexing capabilities as well as the interface have been integrated. The release is technically easier than LibreOffice. There is less code and disk space of course, but everything pretty much happens on GitHub. Then it is a matter of publishing the news and the release notes. But the excitement is stil there, still the same for the contributors. And to make before Christmas does also add something special to the season.

    “The Release date is coming, let it snow let it snow let it snow!”

    by Charles at December 10, 2016 09:56 AM

    December 08, 2016

    Michael Meeks

    2016-12-08 Thursday.

    • Mail chew; really encouraged to see Kolab's lovely integration with Collabora Online announced and available for purchase. Wonderful to have them getting involved with LibreOffice, doing testing, filing and triaging bugs up-stream and so on, not to mention the polished marketing.

    December 08, 2016 10:52 AM

    December 07, 2016

    Michael Meeks

    2016-12-07 Wednesday.

    • Prodded at mail, built ESC stats. Thrilled to have Collabora Online 2.0 released in conjunction with our partners. You can buy a LibreOffice based Collabora Online with collaborative editing and long term support now. We'll of course be releasing incremental improvements, updates and fixes approximately each month as we move forward. Thanks to all in the company & community - whose hard work & dedication made this possible.

    December 07, 2016 09:00 PM

    December 06, 2016

    Michael Meeks

    2016-12-06 Tuesday.

    • To work early; mail chew; finance planning call with Tracie & Julie & latterly Kendy, lunch. Commercial call, wrote up notes, sync. with Philippe.

    December 06, 2016 09:00 PM

    December 05, 2016

    Michael Meeks

    2016-12-05 Monday.

    • Mail chew; bug poke-age. Out to Colin Kavanah's funeral in Cambridge - a faithful and encouraging man of God; he will be missed. Played the Violin with Mick & John; to the wake for a fine lunch & to meet the family.
    • Back to work; customer call, TDF board call, dinner, put babes to bed, back to working on a contract.

    December 05, 2016 09:00 PM

    December 04, 2016

    Lera Goncharuk

    Command-line arguments in LibreOffice

    The last few weeks I've been doing a patch in the Help associated with the bug tdf#100836. It seems that there is a file that describes everything, and it need to only move into the code, but not everything is simple. First, this help appears in the console mode, and it had been very desolate. On Windows system, it opens in the window that does not have a scroll bar instead to show it in the console. Secondly, mistakes were found at the time of writing, and they should be corrected before placing in the Help. As a result, instead of a single patch was made already 3: I did two (1, 2) and one was done Mike Kaganski. And as a fact, it requires further improvement, but unfortunately, I already have tired from writing of it. And since this Help will appear only next summer in the LibreOffice 5.4, I give it here, as always, with minor explanations. I hope that someone else will improve this help to the release, and you can enjoy more good official Help.
    Read more »

    by Lera Goncharuk (noreply@blogger.com) at December 04, 2016 09:03 PM

    Michael Meeks

    2016-12-04 Sunday.

    • Up lateish; NCC - Tony spoke; back for lunch, relaxed through the afternoon. Julie over in the evening.

    December 04, 2016 09:00 PM

    December 03, 2016

    Eike Rathke

    Lesen! Big Data Psychometrik

    Es ist nicht so wie du denkst. Es ist schlimmer.
    Ich habe nur gezeigt, dass es die Bombe gibt über Psychometriken mit Hilfe von Big Data, den Big Five Persönlichkeitsdimensionen, das Ocean-Modell, und was die Strategic Communications Laboratories (SCL) und Cambridge Analytica mit Politmarketing, Microtargeting, Breitbart News und dem Brexit und Trump zu tun haben.

    Fake News war gestern, jetzt ist Dark Posts.

    by erAck (23@127.0.0.1) at December 03, 2016 07:47 PM

    >Marius Popa Adrian

    Firebird 3 by default in LibreOffice 5.4

    Lots of missing features & big bugs were fixed recently . All of the blockers that were initially mentioned on tracking bug are now fixed. Lionel mentioned that he added a few more blockers that needs to be fixed until Firebird will be switched by default : I went over https://bugs.documentfoundation.org/buglist.cgi?quicksearch=firebird and added a few open bugs to the blocker bug https://

    by Adrian Marius Popa (noreply@blogger.com) at December 03, 2016 03:30 PM

    Service for migrating Firebird 2.5 format to Firebird 3.0

    On Libreoffice Devel there is a thread about migration of the already created odb files with 2.5 databases inside (fdb) but also about the forward and backward compatibility of the Firebird backup archive (fbk). https://lists.freedesktop.org/archives/libreoffice/2016-November/075953.html Lionel added notes about upgrading in the wiki : People trade privacy for convenience or the other way

    by Adrian Marius Popa (noreply@blogger.com) at December 03, 2016 12:52 PM

    December 02, 2016

    Markus Mohrhard

    LibreOffice UI test tutorial (part 2): Improve the introspection library

    The last part of the UI test tutorial introduced the python part of the UI testing framework. In general most times you only need to care about the python part of the test but sometimes you actually need to extend the introspection part of the framework inside of the LibreOffice code. Many UI elements are already supported in the introspection library either directly or through one of its parent classes.

    This blog post will give a short summary of how the introspection code works and how support for new elements can be added. In contrast to the other three parts this blog post requires some understanding of the LibreOffice source code and an idea about VCL, our window toolkit.

    Overview

    The introspection library provides two simple UNO interfaces to the outside world. The XUITest interface provides access to static data in VCL. Currently this is limited to executing UNO commands and getting access to the current top level window. Access to this object is provided by UITestCase.xUITest in the python test code. In the future we might extend this interface to provide access to more VCL data that is not otherwise available and is useful for the UI testing.

    The more interesting one and the one that abstracts all the different UI objects is the XUIObject interface with the corresponding implementation on the LibreOffice side through UIObjectUnoObj, which just wraps a virtual class called UIObject.

    The two important methods are get_state and execute. The get_type and get_name methods should also be overridden but the other methods can often just be taken from the base class.

    Adding support for a new object

    For now we are just going to talk about UI elements that inherit from vcl::Window, so basically most of our GUI elements. On the introspection side the corresponding class is WindowUIObject, which provides the base class for all vcl::Window based introspection abstraction. All classes inheriting from vcl::Window provide the virtual method GetUITestFactory that returns a factory function for the introspection library.

    Adding support for a previously not well covered UI object – all have basic coverage through at least the WindowUIObject – normally requires three steps: First adding a GetUITestFactory method to the UI object class, secondly adding the corresponding factory method and finally implementing the introspection wrapper class.

    Most of the time the factory method just casts the passed in vcl::Window pointer to the correct type and create the introspection wrapper object. The actual work is in implementing the actual introspection class for the UI element, which should expose the properties that the tests need as well as the operations that can be done on the UI element.

    The inheritance from WindowUIObject or one of its subclasses already provides a number of properties as well as some common operations like typing text.

    An example for adding support for a previously unsupported object can be found at [1]. This one has a slightly more complicated factory method but does not add more than a basic property.

    Non vcl::Window UI objects

    Sometimes there are non-vcl::Window UI objects that need to be wrapped which makes everything a bit more complicated. Examples for this are e.g. tree lists or tables where we want to expose elements of the vcl::Window UI object like single tree entries as own objects. As these objects don’t correspond to actual UI objects in our code we have to employ some tricks to provide them to the introspection library. The basic idea behind supporting such pseudo objects is to hold a pointer to the corresponding vcl::Window based UI object through a VclPtr and a way to get the correct property that represents the object we want to cover. Additionally as these objects don’t have an ID we need to override the get_child and get_children methods inside of the the wrapper class for the vcl::Window. The get_children method should return all the IDs of descendants, and the get_child method should return for each of these IDs the corresponding wrapper object.

    Handling missing IDs

    As has been mentioned in the first part we identify UI elements through a locally unique ID. Normally this ID is loaded from the UI files that describe our dialogs. However for UI elements that are dynamically generated in the code we need to set the ID in the code. For this case the vcl::Window provides the set_id method.

    Next

    Hopefully this gave a short overview over the C++ part of the UI testing. The next tutorial will cover the directory layout of the python code together with some information about adding normal UNO code to the python tests.


    by Markus Mohrhard at December 02, 2016 02:51 AM

    December 01, 2016

    Lera Goncharuk

    Philosophical thinking about styles and templates, or "Where the iceberg basis is hidden?"

    Reading articles about working in LibreOffice on various websites, including blogs, I always meet with the lack of understanding, which makes these articles fit only for a basic use. However, for the office, and for people who often use LibreOffice and not want to think about how entry should be shown, but only what they are writing, the concept of styles and templates is very important. This article is not a lesson of use, but an attempt to give the rod, frame, idea, around which it will be possible to strengthen your knowledge. And I hope that it will help you to bring together existing and easier to accept new ones.
    Read more »

    by Lera Goncharuk (noreply@blogger.com) at December 01, 2016 08:42 PM

    Caolán McNamara

    Impress LibreOffice OpenGL Slide Transitions under Wayland via GTK3

    <iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/mVVh_R7R2f8" width="560"></iframe>
    Impress LibreOffice OpenGL Slide Transitions under Wayland via GTK3 (GtkGlArea).

    So I've implemented enough to get this working on my machine now. I've demoed "static", "glitter" and "honeycomb" above from my -O0 debugging build. I'll work on merging this to master now, patches are in our gerrit instance. Porting from glew to epoxy is a necessary step, I know it builds on Windows and Mac, but that's utterly untested.

    by Caolán McNamara (noreply@blogger.com) at December 01, 2016 04:58 PM

    November 28, 2016

    Florian Effenberger

    LibreOffice am LinuxDay Vorarlberg 2016

    Jedes Jahr kurz vor Weihnachten, meistens am Samstag vor dem ersten Advent, findet in Dornbirn der LinuxDay Vorarlberg statt, der zahlreiche Besucher aus Deutschland, Österreich, der Schweiz und aus Liechtenstein anzieht.

    Auch LibreOffice war in diesem Jahr natürlich wieder mit einem eigenen Stand von der Partie, betreut von Robert, Alex, Lothar und mir. Neben der aktuellen LibreOffice-Version hatten wir auch Bücher, Broschüren, Flyer, Sticker, unseren Jahresbericht und zahlreiche weitere Materialien im Gepäck. Insbesondere die Kulis rissen uns die Besucher förmlich aus der Hand, manch einer nicht ohne die Frage, ob man damit auch im OpenDocument-Format schreiben kann. 😉

    Stefan hat zudem einen Workshop abgehalten, bei dem er Anwender in die Tiefen der Textverarbeitung eingeführt hat.

    <figure class="wp-caption aligncenter" id="attachment_291" style="width: 840px">LibreOffice-Stand am LinuxDay Vorarlberg 2016<figcaption class="wp-caption-text">LibreOffice-Stand am LinuxDay Vorarlberg 2016</figcaption></figure>

    Für mich gehört der LinuxDay zum Jahresausklang mittlerweile einfach dazu und ich bin jedes Jahr gerne in Dornbirn zu Gast. Vielen Dank an alle Organisatoren für euren großartigen Einsatz und eine tolle Veranstaltung und natürlich an alle Helfer am Stand für euer Engagement – es war ein toller Tag!

    Ich freu mich schon darauf, 2017 wieder in Dornbirn zu Besuch zu sein.

    by Florian Effenberger at November 28, 2016 08:05 AM

    November 27, 2016

    Andreas Mantke

    New Extensions And Templates Website On The Way

    I worked with a Plone service provider on the setup of a new LibreOffice extensions and templates website and the migration of the content from the current site to the new site. We are currently short before we will move over to the new website. The new site will contain extensions and templates. We will not have to Plone sites for this purpose. Thus LibreOffice extension or/and template contributors will need only one account in the future. We migrated the user account from the current sites to the new one too. Thus all contributors will be able to login with their current credentials to the new website.

    liboextensiontemplateshomepage

    Above the home page of the new LibreOffice extensions and templates website.

    liboextensiontemplatesextensionscenterAnd above the extension part of the new website.

    More news on the new LibreOffice extensions and templates website will follow here during the next days.

    by andreasma at November 27, 2016 06:11 PM

    November 25, 2016

    Tamas Zolnai

    New pivot table function in Calc: Median

    After have some work with a pivot table related performance issue, I've got a request to implement a new function for pivot tables. It seemed a useful feature to have and also an easy thing to implement at the first sight.

    Pivot table functions

    Pivot tables are used to analyse a larger amount of data using different statistic functions for that. Both LibreOffice Calc and Microsoft Office Excel have the same function palette with 11 functions like average, sum, count and so on. These aggregate functions can be used for data fields and for row/column fields. Data fields determines which source field would be summarized and which function would be used for that. Row/column fields don't have a function by default, but with setting one user can calculate subtotals too.

    Median

    Why median? In psychology research pivot tables can be a useful thing to analyze data of the participants. It depends on the type of the data which functions can be used for aggregation. When we have interval variables we can use average, but for ordinal variables we would need median, which was missing from the function list.

    This was the starting point, but I've also found some user posts about missing this feature from MS Excel (see links below). It seems Excel users had to face the very same problem again and again over the last ten years. Well, it has some advantages if a software is open source, I guess.

    Good news

    In LibreOffice 5.3, median is available for pivot tables:

    Thanks

    ... to my professor, Attila Krajcsi (Department of Cognitive Psychology, Eötvös Loránd University) for supporting the LibreOffice project, with the idea to have this new function and also with some course credits!

    by Zolnai Tamás (noreply@blogger.com) at November 25, 2016 11:31 PM

    Lera Goncharuk

    Protecting Content in LibreOffice Writer form unpremeditated changes

    On last week Mike Kaganski (one form Russian developers) asks me to correct a few things in the Help. In the fact, the speech was about addition a few strings in an article about protection of contents in LibreOffice Writer. But, when I started to work with the article, I understood that the article must be completely rewritten. I pushed the patch to gerryt. And I hope that the article will be available already in the Help of 5.3 version. In the blog, I would like to give additional explanations and at the same time to tell about some things which was not appropriate for the Help, in my opinion.
    Read more »

    by Lera Goncharuk (noreply@blogger.com) at November 25, 2016 10:22 PM

    David Ostrovsky

    Adding OAuth authentication scheme for Gerrit

    I gave a talk on last FOSDEM about Gerrit User Authentication. Here are the slides. It was a long and interesting journey to add OAuth authentication scheme support in Gerrit Code Review. Luca spent a lot of time trying to get GitHub OAuth support in Gerrit core. After almost 1 year work on this change and countless reviews and addressed comments (57 patch set) it was abandoned. But the work wasn’t in vane. The lessons learned form this attempt was:

    • There must be support for multiple authentication providers
    • Because of the nature of the OAuth providers, the support cannot be done in Gerrit core, and must be done as a plugin
    • To write a plugin extension point must be exposed first (tja, keine Arme, keine Kekse!)

    However, in the past there were quite some attempts to implement generic pluggable auth scheme extension point, but they all were abandoned. So it was more or less clear if we would revamp the attempt to introduce something totally generic it would require a lot of efforts and would take another couple of years of work. Instead we should try to add KISS extension point, just for OAuth. Sure, some folks in the wild were disappointed, because they would prefer to see a big generic pluggable auth extension point in Gerrit, but we just wanted to get the job done for this specific use case.

    Another thing to solve, after the extension point was extracted and plugin support for the following OAuth providers Google, GitHub, CAS and BitBucket was introduced, was OpenID providers. That why I also added Hybrid OAuth+OpenID auth scheme support.

    I would like to thank Norbert Thiebaud from The Document Foundation for invaluable help in many discussions we had during my work on Hybrid OAuth+OpenID authentication.

    by admin at November 25, 2016 12:58 AM

    November 23, 2016

    >Marius Popa Adrian

    Lionel Elie Mamane committed a patch related to this issue tdf#101789 : Firebird 3 - fails to build on OSX 10.11.x with clang

    Lionel Elie Mamane committed a patch related to this issue tdf#101789 Firebird 3 - fails to build on OSX 10.11.x with clang. It has been pushed to "master": tdf#101789 work around DYLD_LIBRARY_PATH limitations on newer MacOS X. An alternative fix has been in place ever since Stephan Bergmann commit " Allow external/firebird to be built with a custom SHELL under Mac OS X 10.11".

    by Adrian Marius Popa (noreply@blogger.com) at November 23, 2016 04:33 PM

    November 22, 2016

    >Marius Popa Adrian

    Bunth Tamás commited a few patches related to Firebird driver

    Tamás committed a patch related to tdf#74172 issue. Ensure prepared while setting numeric It has been pushed to "master": It will be available in 5.3.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected

    by Adrian Marius Popa (noreply@blogger.com) at November 22, 2016 04:32 PM

    November 20, 2016

    Mike Kaganski

    Integrating LibreOffice with SharePoint – part 2

    In my previous post, I discuss LibreOffice‘s CMIS integration with SharePoint. This post, as promised, is dedicated to WebDAV method of accessing SharePoint servers from LibreOffice.

    Basic WebDAV support is already present in LibreOffice, which inherits it from OpenOffice.org. You may put SharePoint URL into OS’s File Open dialog, and browse and open documents as if they were on local file system. But to claim SharePoint WebDAV support, LibreOffice should provide ease of use no less than its competitors.

    Existing users of MS Office are used to access the documents on SharePoint server using web browser integration. This allows to navigate to a document and open it in associated office program simply clicking on its link on web page, or using the page’s options to check-out document, open it for reading, etc. A document that is open this way isn’t downloaded by browser to be opened by application locally, but is open by office application via WebDAV, thus presenting easy way to work with document, including saving your work to proper place automatically. This integration is now available for all modern browsers (the level of feature support vary, though).

    sp-webdav1

    There are two mechanisms used to enable such integration. The first (and older) one is using ActiveX control/browser plugin. This method works for IE (classic mode) using OpenDocuments ActiveX control (and also used to work for Firefox and Chrome using NPAPI plugin, but since NPAPI was deprecated, it doesn’t work there anymore). In essence, a JavaScript click handler on the page instantiates the control, and then uses its methods to open the document with corresponding application in required mode. With all implied security considerations.

    The second (newer) method is using custom URI schemes. This requires that corresponding URI handler be registered in OS/browser, and the handler application be able to recognize these URIs and extract actual WebDAV URIs required to access the document on server from them.

    Both methods were lately addressed in LibreOffice development by Collabora Productivity. To implement first method, a custom ActiveX control was coded, and is now awaiting review on gerrit.

    To utilize SharePoint custom URIs, LibreOffice was taught to recognize MS Office’s existing custom URIs. This is required to allow using LibreOffice to open MS Office’s documents from SharePoint on those computers that don’t have MS Office installed. But that’s not enough; we should be able to treat ODF independently, e.g. to allow for configurations where both LibreOffice and MS Office co-exist on a workstation, and must handle their respective native formats. To achieve that, we introduced our own custom URI scheme, vnd.libreoffice.command. Now LibreOffice can accept any of these URIs, and successfully open the document in proper mode.

    But for LibreOffice to open them, these URIs must be passed to it from the SharePoint web page. We added registration of our own custom URI handler into installer for Windows OS, and also we now register LibreOffice as MS Office URIs handler if user chooses to register MS formats to open with LibreOffice.

    If you choose to use the second (custom URI) integration method, and you don’t need MS Office as handler for DOCXs, PPTXs etc., then you don’t need to configure your SharePoint server for that to work. All that you need is to install recent enough LibreOffice (v.5.3+), and configure it at installation time to open MS Office files.

    But if you choose either first method (ActiveX), or second method with coexisting LibreOffice/MS Office workstations, then you will need to configure SharePoint server for that. In both cases, you will need to edit DOCICON.xml file, that  may be found in server’s %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\XX\TEMPLATE\XML. This is an XML file, and we should edit sub-elements of ByExtension element. Such sub-element has the following syntax:

    <Mapping Key="odt" Value="icodt.png" EditText="LibreOffice" OpenControl="LOSPSupport.OpenDocuments" OpenApp="vnd.libreoffice.command"/>
    • Key = file extension
    • Value = icon file
    • EditText = Text on “Edit with application” UI button – required for edit option. Optional.
    • OpenControl = ActiveX OpenDocuments control name (currently IE 32-bit only). Optional.
    • OpenApp = custom URI scheme to handle this. Independent from and appears to have priority over OpenControl. Available in 2013 SP1. Optional.

    You should use either OpenControl or OpenApp, depending on which integration method you have chosen. Do it for those extensions that you want to be handled by LibreOffice. Of course, you should backup the file prior to modifying it.

    After you have made all necessary modifications, to activate the settings, you need to restart IIS. To do that, you may execute command iisreset from the server’s administrator command line.

    That’s it, if you did everything right, LibreOffice should now seamlessly integrate with SharePoint website, and be automatically launched when you choose to open files from there, without downloading the file to local machine first.

    This is the second of two posts that discuss the current state of SharePoint integration support in LibreOffice. Thank you for reading, and enjoy the best free office suite ever!


    by mikekaganski at November 20, 2016 04:13 PM

    November 17, 2016

    Lera Goncharuk

    SUM, AutoSum and some other secrets of LibreOffice Calc

    When I started to write this article, I thought it would be brief note for beginners. But in the process of writing, I found quite a lot of information that was illuminated within this theme. As a result, the article grew to pretty large size. And I hope that the material presented here will be useful not only to people beginning their way into Calc, but also for people who have long enjoyed a spreadsheet.


    Read more »

    by Lera Goncharuk (noreply@blogger.com) at November 17, 2016 03:08 PM

    November 14, 2016

    Naruhiko Ogasawara

    LibreOffice Kaigi 2016.12


    Short notice,

    We, Japanese LibreOffice community, are preparing the"LibreOffice Kaigi 2016.12" on 10th Dec. (Sat), the annual LibreOffice meetup in Japan.

    • Date/Time: 10th Dec. (Sat), 13:00-18:00 JST
    • Venue: Cybozu Inc. (Tokyo Nihonbashi Tower 27F, Nihonbashi, Tokyo)
    • Fee: free (NOT includes the party at the same night)

    The name of the event was renewed, from "LibreOffice mini Conference Japan", to emphasize it is not only "geographically local" but "language local."  "Kaigi" is a Japanese word means "conference" or "meeting."

    We will invite Mr. Franklin Weng, who leads Taiwan government's ODF / LibreOffice migration, as the keynote speaker.   We believe that his talk will be a perfect gift for Japanese LibreOffice users.

    The whole programs will be in Japanese (except the keynote; we will prepare the Japanese slide though), but of course, every non-Japanese speakers are welcome.

    We'll co-organize the party after the conference with Debian Japanese community; they'll also have a conference exact a same venue :).  And we'll have a HackFest on 11th Dec. (Sun) at the same venue.

    See you at Nihonbashi!

    by Naruhiko Ogasawara (noreply@blogger.com) at November 14, 2016 04:43 AM

    November 12, 2016

    Miklos Vajna

    LibreOffice session at DevTalks Jr.

    (via DevTalksRo)

    Today I gave a Getting involved with LibreOffice Online and Android session at DevTalks Jr, Bucharest. The event had two tracks in parallel, with a total attendees of about 200 developers.

    Some photos I took after the event are available.

    Thanks the organizers and sponsors for the great event! :-)

    November 12, 2016 03:22 PM