https://bugs.freedesktop.org/show_bug.cgi?id=44135

--- Comment #44 from jwoithe <jwoi...@just42.net> ---
(In reply to comment #41)
> This is a minimal ODT file which illustrates this bug. ...

I have compiled pdf2svg from http://www.cityinthesky.co.uk/opensource/pdf2svg
and used it on the two minimal test case PDFs (attachment 75024 and attachment
75026). I shall attach these following this message.

A "diff -u" between these two SVGs gave the following.

diff -u transparency_test-oo-3.2.1.svg transparency_test-lo-4.0.0.svg
--- transparency_test-oo-3.2.1.svg      2013-05-11 10:20:38.404892277 +0930
+++ transparency_test-lo-4.0.0.svg      2013-05-11 10:20:47.860891890 +0930
@@ -1,17 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg xmlns="http://www.w3.org/2000/svg";
xmlns:xlink="http://www.w3.org/1999/xlink"; width="612pt" height="792pt"
viewBox="0 0 612 792" version="1.1">
 <defs>
+<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%"
height="100%">
+  <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 1 0"/>
+</filter>
+<mask id="mask0">
+  <g filter="url(#alpha)">
+<rect x="0" y="0" width="612" height="792"
style="fill:rgb(0%,0%,0%);fill-opacity:0.5;stroke:none;"/>
+  </g>
+</mask>
+<clipPath id="clip2">
+  <path d="M 0.601562 22.800781 L 57.5 22.800781 L 57.5 0.300781 L 0.601562
0.300781 Z M 0.601562 22.800781 "/>
+</clipPath>
 <clipPath id="clip1">
-  <path d="M 277.601562 84.800781 L 334.5 84.800781 L 334.5 62.300781 L
277.601562 62.300781 Z M 277.601562 84.800781 "/>
+  <rect width="58" height="23"/>
 </clipPath>
+<g id="surface6" clip-path="url(#clip1)">
+<g clip-path="url(#clip2)" clip-rule="nonzero">
+<path style="
stroke:none;fill-rule:evenodd;fill:rgb(72.155762%,27.842712%,0%);fill-opacity:1;"
d="M 0.601562 0.398438 L 57.398438 0.398438 L 57.398438 22.699219 L 0.601562
22.699219 Z M 0.601562 0.398438 "/>
+</g>
+</g>
 </defs>
 <g id="surface1">
-<g clip-path="url(#clip1)" clip-rule="nonzero">
-<path style="
stroke:none;fill-rule:evenodd;fill:rgb(72.155762%,27.842712%,0%);fill-opacity:0.5;"
d="M 277.601562 62.398438 L 334.398438 62.398438 L 334.398438 84.699219 L
277.601562 84.699219 Z M 277.601562 62.398438 "/>
-</g>
-<path style="
stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M
277.601562 84.800781 L 277.699219 84.800781 L 277.699219 62.398438 L 277.601562
62.398438 Z M 277.601562 84.800781 "/>
-<path style="
stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M
334.398438 84.800781 L 334.5 84.800781 L 334.5 62.398438 L 334.398438 62.398438
Z M 334.398438 84.800781 "/>
-<path style="
stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M
277.601562 62.5 L 334.5 62.5 L 334.5 62.398438 L 277.601562 62.398438 Z M
277.601562 62.5 "/>
-<path style="
stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M
277.601562 84.800781 L 334.5 84.800781 L 334.5 84.699219 L 277.601562 84.699219
Z M 277.601562 84.800781 "/>
+<use xlink:href="#surface6" transform="matrix(1,0,0,1,277,62)"
mask="url(#mask0)"/>
+<path
style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:1;"
d="M 277.699219 729.5 L 277.699219 707.300781 "
transform="matrix(1,0,0,-1,0,792)"/>
+<path
style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:1;"
d="M 334.398438 729.5 L 334.398438 707.300781 "
transform="matrix(1,0,0,-1,0,792)"/>
+<path
style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:1;"
d="M 277.699219 729.5 L 334.398438 729.5 " transform="matrix(1,0,0,-1,0,792)"/>
+<path
style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:1;"
d="M 277.699219 707.300781 L 334.398438 707.300781 "
transform="matrix(1,0,0,-1,0,792)"/>
 </g>
 </svg>

Obviously this document is much simpler than the one used for the comparison in
comment 32 since it contains only the single semi-transparent frame.  Does this
make it any easier to work out what's going on?

I am completely unfamiliar with both PDF and SVG formats.  To my inexperienced
eyes, it seems the older file relies on the use of a path with an explicit fill
opacity setting of 0.5, while the newer one defines an alpha mask / filter pair
to produce the same effect.  If this is indeed the fundamental issue, the
question becomes whether the use of the alpha mask is essential given that it
is evidently not handled correctly by some important rasterisers like CUPS (see
comment 34 for a a survey of different programs and their behaviour).

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
Libreoffice-bugs@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to