Hi guys,

        So - I just checked some initial QR code integration into the
feature/barcode branch; it sort of works ;-) but it raises a number of
interesting questions and/or opportunities; and I'd love some quick
directional input from someone clueful =)

        First - what is it so far:

        * I hacked an existing smiley to add the (existing but
          apparently un-used / buggy) custom draw:engine pieces thus:

    <draw:custom-shape draw:style-name="gr1" draw:text-style-name="P1"
draw:layer="layout" svg:width="8.128cm" svg:height="6.35cm"
svg:x="5.445cm" svg:y="5.064cm"

   draw:engine="org.libreoffice.draw.barcode" draw:data="LibreOffice
prototype, native QR code rendering, thanks to Collabora">
...
    </draw:custom-shape>

        It -looks- like this code was intended to add a rather sexy extension
point for custom shapes via the drawing::XCustomShapeEngine IDL file.
Usually I love to hate UNO - but in this case it looks like what could
be possible there is rather sexy.

        My -hope- is that this with minimal tweaking would allow me to have
arbitrary python plugins rendering interesting document content - and
also serializing their rendered state as an OLE-style preview to the
XML.

        Of course - I'd love to have some feedback on my sanity - quite
possibly this is utterly crazy; quite possibly there are 3x easier &
better ways to achieve the same thing (?) =)

        Known problems:

        * for QR codes (but prolly not bar-codes) the idea of
          representing a bitmap as a ton of polypolygons is prolly
          not the greatest idea.
                + but while you can put arbitrary XShape's in there
                  I suspect serializing that into an attribute is
                  unlikely to work well.

        * no UI yet you need to

        * script-ability - I guess we'd want some field / data-driven
          / easy-automation magic:
                + would this work better as a field ?
                + how about as a general draw shape (the svx draw shapes
                  seem pretty horrible).

        * bar-code specifications:
                + some of the spec's are a bit strict: "no less
                  than 2mm between X and Y"
                + that gives some UI / rendering / unit constraints
                + currently not captured.

        * zint
                + software quality appears to be dire
                        + hint if you are conditionally replacing
                          malloc with "alloca" on some platforms
                          with no other associated changes - something
                          is wrong.
                + horribly un-maintained: pick the best of at least 3x
                  under-loved forks.
                  http://users.freedesktop.org/~michael/zint.tar.bz2
                  has a snapshot. 
                + at least it renders more kinds of bar-codes than
                  is sensible

        Known bugs:

        * ODF / back-compatibility - we re-export the original (in my
          case smiley) custom-shape which shows up as an unhelpful
          fallback for older LibreOffice'n.

        * zint is sufficiently bad & closely tied to layout / text
          rendering etc. it's prolly easier to re-write

        * no system-zint: we're internal / static only - and this is not
          a good idea; but I'll list it here anyway for completeness.

        I have a blog entry with obligatory screenshot here:

        https://people.gnome.org/~michael/blog/2015-01-25.html

        I'd love to have some clue on how best to fiddle with this / re-work it
somewhere that it fits.

        And yes I have seen this plugin:

        http://extensions.openoffice.org/en/project/qr-code-generator

        which appears to use some google web plugin to render bitmaps
remotely ;-) not great if they contain confidential data etc.

        Thanks !

                Michael.

-- 
 michael.me...@collabora.com  <><, Pseudo Engineer, itinerant idiot


_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to