EMF problems on import into Powerpoint
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Low
|
David Mathog |
Bug Description
MS Powerpoint 2003
Inkscape 0.48.2 r9819
Windows XP SP3
Here are two possibly related problems when exporting to EMF and then importing into powerpoint:
1. Bounding lines which are invisible in Inkscape become visible when the image is exported as EMF
and then imported into powerpoint. This occurs in two steps inside powerpoint, and the issue might be better
generalized as bounding line widths are not maintained.
In the following table first the width of the line is set, then the stroke is either set to "X" or the solid square:
SVG SVG width visible width visible width set line color
stroke width imported ungrouped ungrouped ungrouped
solid 2 <1.75 1.75 1.75 black
X 2 0 >0 0 black
X 0 0 >0 0 black
solid 0 >0 >0 0 black
solid 4 <3.63 3.63 3.63 blue
The last two columns are from the "format autoshape" line information in powerpoint.
Initially on import (as a picture) 4 of the 5 cases look as they should, in terms of lines being there or not and general relative width, with only the 4th case showing a bounding line when it shouldn't . However, once the image is ungrouped none of the bounding lines are correct. Powerpoint has a "no line" option for "line color", and that seems to be what it is using before the ungrouping occurs, but afterwards that uniformly converts to black, and PPT draws a 0 point line as the thinnest possible line (I believe).
Moreover, before ungrouping the bounding lines are even thinner than they are after ungrouping, and after ungrouping they are neither at the original point size, nor are they related to it by a constant multiplicative factor:
1.75/2 = .875
3.63/4 = .908
2. Font sizes change when an imported picture is ungrouped. All sizes are in points:
SVG Imported Ungrouped
40 <28 28
20 <14 14
10 <7 7
4 <3+ 3+
Unfortunately it is almost always necessary to ungroup the imported picture because many effects do not
import. For instance, rotated text in Inkscape always shows up as horizontal in powerpoint. The imported sizes are estimated by eye compared to the ungrouped sizes. The ungrouped sizes were read off the Powerpoint font toolbar.
Related branches
- Martin Owens: Approve (merge)
-
Diff: 48503 lines (+46736/-372) (has conflicts)83 files modifiedpackaging/win32/languages/Hebrew.nsh (+113/-0)
po/POTFILES.in (+2/-1)
share/extensions/Makefile.am (+1/-0)
share/extensions/fontfix.conf (+55/-0)
share/extensions/hershey.inx (+86/-0)
share/extensions/hershey.py (+109/-0)
share/extensions/hersheydata.py (+58/-0)
share/extensions/render_gear_rack.inx (+21/-0)
share/extensions/render_gear_rack.py (+105/-0)
share/extensions/text_merge.inx (+34/-0)
share/extensions/text_merge.py (+199/-0)
src/2geom/generic-rect.h (+1/-1)
src/Makefile.am (+5/-4)
src/attributes-test.h (+3/-0)
src/attributes.cpp (+3/-0)
src/attributes.h (+4/-1)
src/display/drawing-context.h (+15/-0)
src/display/drawing-text.cpp (+286/-16)
src/display/drawing-text.h (+12/-3)
src/display/nr-style.cpp (+58/-0)
src/display/nr-style.h (+37/-0)
src/extension/CMakeLists.txt (+11/-4)
src/extension/init.cpp (+9/-9)
src/extension/internal/Makefile_insert (+20/-4)
src/extension/internal/emf-inout.cpp (+3549/-0)
src/extension/internal/emf-inout.h (+211/-0)
src/extension/internal/emf-print.cpp (+2202/-0)
src/extension/internal/emf-print.h (+138/-0)
src/extension/internal/emf-win32-inout.h (+0/-57)
src/extension/internal/text_reassemble.c (+2884/-0)
src/extension/internal/text_reassemble.h (+386/-0)
src/extension/internal/uemf.c (+5523/-0)
src/extension/internal/uemf.h (+2889/-0)
src/extension/internal/uemf_endian.c (+1783/-0)
src/extension/internal/uemf_endian.h (+37/-0)
src/extension/internal/uemf_print.c (+2358/-0)
src/extension/internal/uemf_print.h (+169/-0)
src/extension/internal/uemf_utf.c (+552/-0)
src/extension/internal/uemf_utf.h (+53/-0)
src/extension/internal/uwmf.c (+6880/-0)
src/extension/internal/uwmf.h (+2492/-0)
src/extension/internal/uwmf_endian.c (+1772/-0)
src/extension/internal/uwmf_endian.h (+39/-0)
src/extension/internal/uwmf_print.c (+1616/-0)
src/extension/internal/uwmf_print.h (+48/-0)
src/extension/internal/wmf-inout.cpp (+3235/-0)
src/extension/internal/wmf-inout.h (+213/-0)
src/extension/internal/wmf-print.cpp (+1994/-0)
src/extension/internal/wmf-print.h (+147/-0)
src/helper/action-context.cpp (+84/-0)
src/helper/action-context.h (+89/-0)
src/helper/geom.cpp (+310/-0)
src/helper/geom.h (+5/-0)
src/layer-model.cpp (+259/-0)
src/layer-model.h (+104/-0)
src/libnrtype/FontInstance.cpp (+35/-0)
src/libnrtype/Layout-TNG-Compute.cpp (+172/-62)
src/libnrtype/Layout-TNG-Output.cpp (+264/-50)
src/libnrtype/Layout-TNG.h (+4/-0)
src/libnrtype/font-instance.h (+2/-0)
src/libunicode-convert/Makefile_insert (+5/-0)
src/libunicode-convert/README (+1/-0)
src/libunicode-convert/makefile.in (+17/-0)
src/libunicode-convert/unicode-convert.c (+1008/-0)
src/libunicode-convert/unicode-convert.h (+51/-0)
src/splivarot.cpp (+280/-0)
src/splivarot.h (+2/-0)
src/style.cpp (+306/-88)
src/style.h (+49/-6)
src/text-editing.cpp (+38/-20)
src/ui/dialog/new-from-template.cpp (+59/-0)
src/ui/dialog/new-from-template.h (+39/-0)
src/ui/dialog/template-load-tab.cpp (+281/-0)
src/ui/dialog/template-load-tab.h (+102/-0)
src/ui/dialog/template-widget.cpp (+117/-0)
src/ui/dialog/template-widget.h (+48/-0)
src/ui/widget/unit-tracker.cpp (+263/-0)
src/ui/widget/unit-tracker.h (+74/-0)
src/widgets/connector-toolbar.cpp (+3/-0)
src/widgets/dash-selector.cpp (+75/-11)
src/widgets/dash-selector.h (+5/-0)
src/widgets/eraser-toolbar.cpp (+168/-0)
src/widgets/eraser-toolbar.h (+0/-35)
tags: | added: emf exporting win32 |
Changed in inkscape: | |
status: | New → In Progress |
assignee: | nobody → David Mathog (mathog) |
importance: | Undecided → Low |
Changed in inkscape: | |
status: | Fix Committed → Fix Released |
The scaling on lines is even odder than I thought. Attached is a modified SVG example with lines at various powers of two widths (in points). This is the conversion table after it is ungrouped:
SVG -> PPT = ratio
32 -> 28.8 = .900
16 -> 14.38 = .898
8 -> 7.25 = .906
4 -> 3.63 = .908
2 -> 1.75 = .875
1 -> .88 = .880
0.5 -> .38 = .760
.25 -> .25 =1.00
,125 -> .13 =1.04
It starts out for small point sizes nearly linear 1:1, then goes off the rails at 0.5 pt and up.