Hi all,
I talked with Carl a bit more today about the PDF functionality with Cairo and what it'd take to use it with Inkscape. Here's some additional info. Carl, correct me if I've captured any of this wrong.
Some clarification on libsvg, when Carl said he wasn't supporting it, I interpreted this to mean it needed another maintainer. He clarified this; the reasons he had forked libsvg from librsvg originally was to try out replacing its libart backend with a cairo backend. Now that librsvg uses cairo as it's back end, there's no reason for libsvg to be used, and in fact it lacks capabilities that are in librsvg.
So... The plan going forward would be this. svg2pdf as it exists now is probably ok for a start; it's at least better than we got now, and fits within our existing system. I think it's mainly going to be a packaging issue to hook it into our extension framework.
Beyond that, svg2png needs to be modified to use librsvg instead of libsvg. This is probably a fairly simple task, as svg2png is a really short bit of code.
I told Carl about UberConverter. He wasn't sure if the design of Cairo's PDF functionality would match UberConverter's structure, so a crs2pdf via Cairo may not be the right approach.
Carl also mentioned something called Poppler(?) which does PDF _import_, that works in conjunction with Cairo, and that would give us a good round-trip to and from PDF. This sounds worth checking out.
Bryce
On 12/2/05, Bryce Harrington <bryce@...961...> wrote:
Hi all,
I talked with Carl a bit more today about the PDF functionality with Cairo and what it'd take to use it with Inkscape. Here's some additional info. Carl, correct me if I've captured any of this wrong.
Some clarification on libsvg, when Carl said he wasn't supporting it, I interpreted this to mean it needed another maintainer. He clarified this; the reasons he had forked libsvg from librsvg originally was to try out replacing its libart backend with a cairo backend. Now that librsvg uses cairo as it's back end, there's no reason for libsvg to be used, and in fact it lacks capabilities that are in librsvg.
So... The plan going forward would be this. svg2pdf as it exists now is probably ok for a start; it's at least better than we got now, and fits within our existing system. I think it's mainly going to be a packaging issue to hook it into our extension framework.
Beyond that, svg2png needs to be modified to use librsvg instead of libsvg. This is probably a fairly simple task, as svg2png is a really short bit of code.
I told Carl about UberConverter. He wasn't sure if the design of Cairo's PDF functionality would match UberConverter's structure, so a crs2pdf via Cairo may not be the right approach.
Carl also mentioned something called Poppler(?) which does PDF _import_, that works in conjunction with Cairo, and that would give us a good round-trip to and from PDF. This sounds worth checking out.
Bryce
Poppler is the freedesktop engine for rendering PDFs. It is a friendly fork of XPDF with some hacks from KPDF. Evince uses it. The end goal is that anybody can write a frontend and not have to work about the backend. It may also do other things that I am not aware of.
Corey
On Fri, 2 Dec 2005 15:13:09 -0800, Corey Burger wrote:
Poppler is the freedesktop engine for rendering PDFs. It is a friendly fork of XPDF with some hacks from KPDF. Evince uses it. The end goal is that anybody can write a frontend and not have to work about the backend. It may also do other things that I am not aware of.
The point is that poppler provides PDF parsing in a nice library. It's got multiple backends for rendering already, (cairo, splash, etc.), so hooking up a new backend to "render" to inkscape's internal data structure shouldn't be too much work.
-Carl
On 12/3/05, Bryce Harrington <bryce@...961...> wrote:
Carl also mentioned something called Poppler(?) which does PDF _import_, that works in conjunction with Cairo, and that would give us a good round-trip to and from PDF. This sounds worth checking out.
http://poppler.freedesktop.org/
It's used by Evince
Alexandre
On Fri, 2005-12-02 at 15:06 -0800, Bryce Harrington wrote:
Carl also mentioned something called Poppler(?) which does PDF _import_, that works in conjunction with Cairo, and that would give us a good round-trip to and from PDF. This sounds worth checking out.
I thought I read somewhere that there was an SVG backend to Cairo... that'd probably work the best :)
Also, since there is a SVG backend to GNOME-Print, and Evince uses gnome-print, we should be able to work out something with them to get decent PDF import. I think the biggest difficultly will be handing multiple pages... we need to figure out how we want to handle that in Inkscape in general.
--Ted
I think this is a good idea and worth at least trying as a first step of a Cairo based Inkscape, assuming the Cairo PDF or Gnome-Print extensions now work okay. In my own experience, Cairo libsvg rendering works okay in c++ but it is not very fast compared to the current Inkscape canvas and maybe not as rendering complete as lib"r"svg (but I'm using an older version of Cairo). I believe the next version of Cairo is due out around 12/15 ? A totally Cairo based Inkscape would be nice but might depend on: a) development of a Cairo based drawing canvas b) the transition of the SVG surface from libsvg to librsvg c) speed increases in Cairo.
ps: I've knocked off some of the individual addresses on the mail, since I think they're on the list anyway.
Ted Gould wrote:
On Fri, 2005-12-02 at 15:06 -0800, Bryce Harrington wrote:
Carl also mentioned something called Poppler(?) which does PDF _import_, that works in conjunction with Cairo, and that would give us a good round-trip to and from PDF. This sounds worth checking out.
I thought I read somewhere that there was an SVG backend to Cairo... that'd probably work the best :)
Also, since there is a SVG backend to GNOME-Print, and Evince uses gnome-print, we should be able to work out something with them to get decent PDF import. I think the biggest difficultly will be handing multiple pages... we need to figure out how we want to handle that in Inkscape in general.
--Ted
participants (6)
-
Alexandre Prokoudine
-
Bryce Harrington
-
Carl Worth
-
Corey Burger
-
John Taber
-
Ted Gould