Description: SVG export in LibreOffice Draw uses an older module for export from a macro than for manual export (SVG 1.1 versus 1.2). The older module does not adequately describe shapes made in Draw and exports only the formal draw area rather than the whole page. This behavior is seen both in Windows (11) and Linux (openSUSE) versions. Why it matters: Although LibreOffice has an import filter for Visio files, there is no export filter. Transfer to Visio currently relies on SVG 1v.2 files. But manual export of many pages takes much time. A LibreOffice macro can speed it up significantly. For those who are interested in importing SVG in Visio, I can make SVG import macros available. Steps to Reproduce: (A) Start from a LibreOffice Draw page with various drawing objects. Manually export the file to an SVG from the menu: File > Export… In the Export dialog, select SVG and enter a first file name. Press Save. Open the first saved file in a text editor. Its first three elements will be something like: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.2" width="297mm" height="210mm" viewBox="0 0 29700 21000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> The <svg> elements has attribute version="1.2" (B) Save the same page from a macro. Open this second saved file in a text editor. Its first three elements will be something like: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="280mm" height="175mm" viewBox="0 0 28000 17500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-width="28.222" stroke-linejoin="round" xml:space="preserve"> The macro I used for export: Sub ExportSVGPage dim oDoc, oPage, oFilter, i as integer dim args(1) as new com.sun.star.beans.PropertyValue dim msg as string, filename as string, path as string, c as string oDoc = ThisComponent path = oDoc.location path = replace(path, "%20", " ") path = replace(path, "\", "/") for i = len(path) to 1 step -1 c = mid(path, i, 1) if c = "/" then path = left(path, i) exit for end if next i filename = inputbox("Please enter the filename:", "SVG Automated Export", path & "LO examples B.svg") if filename = "" then exit sub filename = replace(filename, "\", "/") oPage = oDoc.getcurrentcontroller.getcurrentpage oFilter=CreateUnoService("com.sun.star.drawing.GraphicExportFilter") oFilter.setSourceDocument(opage) args(0).Name = "URL" args(0).Value = filename args(1).Name = "MediaType" args(1).Value = "image/svg+xml" oFilter.filter(args()) msg = "Exported " & filename msgbox msg End Sub Actual Results: SVG 1.2 when manually exported, SVG1.1 when exported by a macro Expected Results: Required behavior: Because the way that SVG export in LibreOffice has evolved between versions 1.1 and 1.2, it should always be in SVG version 1.2. Thus, the Uno service com.sun.star.drawing.GraphicExportFilter should use the current module, not the older one. Why it matters: Although LibreOffice has an import filter for Visio files, there is no export filter. Transfer to Visio currently relies on SVG 1v.2 files. But manual export of many pages takes much time. A LibreOffice macro can speed it up significantly. For those who are interested in importing SVG in Visio, I can make SVG import macros available. Reproducible: Always User Profile Reset: No OpenGL enabled: Yes Additional Info: If having both SVG1.1 and SVG1.2 export is seen as a feature rather than a bug, a user should be able to choose, both for manual export and for macro export. But I suggest focusing on SVG1.2 only and removing the older export filter.
Are you sure about the used version? The bug 105636.
(In reply to Regina Henschel from comment #1) > Are you sure about the used version? The bug 105636. Waiting for comment from Andy.
I'm using LibreOffice 7.4.4.2 (x64) on Windows 11 (and sometimes on OpenSUSE Leap 15.4). It is indeed the old version (1.1 instead of 1.2) of SVG when exported from a macro: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="196mm" height="259mm" viewBox="0 0 19600 25900" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-width="28.222" stroke-linejoin="round" xml:space="preserve"> The rest of the file is also quite different than when exported manually.
[Automated Action] NeedInfo-To-Unconfirmed
Andy: Regina was referring to the manual export, which reports a DOCTYPE of 1.1 and falsely has 1.2 for the <svg> element. I tested your macro, I gave it a path to the file to export (on Linux), but the file does not appear in the path.
Dear AndyG, To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from https://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://web.libera.chat/?settings=#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug