[cairo] Cairo, Fonts and Illustrator

Gerdus van Zyl gerdusvanzyl at gmail.com
Fri Dec 21 01:15:16 PST 2007


I can only offer solutions to your first question:
1)
$cr -> rectangle(10,10,50,50);
$cr -> fill;
$cr -> rectangle(10,10,50,50);
$cr -> stroke

can be achieved using:
$cr -> rectangle(10,10,50,50);
$cr -> fill_preserve;
$cr -> stroke

My thoughts on your font problem.
2)
Try replacing 'monospace' with the exact font you want.
Try using Pango for rendering text.
What kind of experience does Illustrator give with the other cairo
vector outputs PS and SVG?
Lastly try compiling and using the latest cairo version, you don't
specify what cairo version you are using. There has been many
improvements in PDF.

~Gerdus

On Dec 20, 2007 5:06 PM, Davide Rambaldi
<davide.rambaldi at ifom-ieo-campus.it> wrote:
>  Hi all,
>
> First of all sorry for my bad english.
>
> I am new of the Cairo graphics library and I have a question/problem that I
> try to explain:
>
> I am developing a small project (web server) with cairo-perl binding to
> generate images from biological data in Cairo, the Idea is that the user can
> generate a first version of the image and modify it with his favorite
> software (usally in my field the software is Illustrator... sigh!)
> The Web Server with Cairo run on a Linux server 2.6.17 gentoo ia64, I made
> the Illustrator test on a laptop G4 with OSX 1.4.11
>
> So the idea is that the software generate a PDF that can be opened with
> illustrator and modified.
>
> THE QUESTIONS:
>
> 1) for lines, rectangles and filled rectangle the problem is that the fill
> and the stroke of a rectangle are separeted objects for Illustrator (so the
> user must delete the fill of an object and reapply another fill inside
> illustrator).
>
> May be I call fill and stoke function in the wrong way, actually I am doing
> something like this (in Perl):
>
> $cr -> rectangle(10,10,50,50);
> $cr -> fill;
> $cr -> rectangle(10,10,50,50);
> $cr -> stroke
>
>  Do you thinking that recycling the Path can solve this problem?
>
> 2)... the real problem are FONTS, consider this small script:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use Cairo;
> my $output  = $ARGV[0];
> my $pdfsurf = Cairo::PdfSurface->create($output, 256,256);
> my $pdfcr   = Cairo::Context->create ($pdfsurf);
> $pdfcr -> select_font_face('monospace','normal','normal');
> $pdfcr -> set_font_size (40);
> $pdfcr->move_to(70,70);
> $pdfcr->show_text('HELLO');
> $pdfcr->show_page;
>
> On my Web server (linux gentoo) I got the output in attachment
> (linux_hello.pdf),
>
>
>
>
>
>
> the glyphs are rendered with the font BitStreamVeraSansMono, my Preview
> software (and also Acrobat) on the laptop can see the font, while loading in
> Illustrator I got the message:
>
> "The font BitstreamVeraSansMono is missing.  Affected text will be displayed
> using a substitute font."
>
> The font is rendered with a series of ??????? and is recognized by
> Illustrator as <BitStreamVeraSansMono ◊>.
>
> I have installed the very same true type font on my laptop just taking from
> the server the file Vera.ttf and installing into my FontBook on the laptop.
> Problem is the Illustrator recognized this new font as "Bitstream Vera Sans"
> type "Roman" and doesn't recognize the font.
>
> I then made another test: Installing Cairo and cairo-perl on my laptop and
> generating PDF from the laptop (so I am sure that the font used by Cairo is
> inside my system). I run the same script as before and I get this output:
>
>
>
>
>
> Now the "default font" for monospace family should be a courier. I open the
> file in Illustrator and... similar behavior, HELLO is not there, there are a
> series of ?, even if the was no error as before (the file open without
> raising a "font missing" error) and seems that Illustrator can recognize the
> font this time.
>
>
> To conclude seems that the text written with the function show_text doesn't
> maintain the "string information" or something like this....
>
> Please note that if I use something like:
>
> $cr -> text_path('HELLO')
> $cr -> fill
>
> It works but in Illustrator the text is now rendered as a series of vector
> paths, so can't be modifiable by the user with the TEXT TOOL.
>
> Finally I should say that personally I hate Adobe Illustrator, so please
> don't answer me: "why are you using Illustrator?"
> I am not an Illustrator user but I want to make an output that can be
> modifiable by a Illustrator user (scientist love Adobe Illustrator)
>
> Any solution/trick for this? If exist, else I will just use cr_fill to fill
> the text path.
>
> Many Thanks in advance
>
>
>
> Davide Rambaldi,
> Bioinformatics PhD student.
> -----------------------------------------------------
> Bioinformatic Group IFOM-IEO Campus
> Via Adamello 16, Milano
> I-20139 Italy
> [t] +39 02574303 066
> [e] davide.rambaldi at ifom-ieo-campus.it
> [i] http://ciccarelli.group.ifom-ieo-campus.it/fcwiki/DavideRambaldi
> (homepage)
> [i] http://www.semm.it             (PhD school)
>
> [i] http://www.btbs.unimib.it/     (Master)
>
> -----------------------------------------------------
>
>
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
>


More information about the cairo mailing list