Re: [Evolution-hackers] GnuCash print problem patch
On Tuesday 17 April 2007 14:55, Srinivasa Ragavan wrote: > On Mon, 2007-04-16 at 22:14 +1000, Paul Andreassen wrote: > > On Friday 13 April 2007 16:54, Paul Andreassen wrote: > > > On Friday 13 April 2007 03:13, Srinivasa Ragavan wrote: > > > > Paul, > > > > > > > > Yes. Before getting into the patch, can you let us know the issue the > > > > patch is addressing? It would be helpful while reviewing the patch. > > > > > > > > -Srini > > > > > > > > On Thu, 2007-04-12 at 21:41 +1000, Paul Andreassen wrote: > > > > > Hello, > > > > > > > > > > Is this where gtkhtml is maintained? If so could someone look at > > > > > this patch and tell me if it acceptable for inclusion. I'm not > > > > > sure I understand how all the library code goes together. > > > > > > Thanks for the reply. > > > > > > When printing or print previewing of a GnuCash report the font changes > > > from the screen font to an unset and unchangeable one. In my case it > > > changes from the screen font of "San Regular 10" to "Serf Regular 12". > > > This results in very large printed reports. > > Quoting your previous patch. > > > --- gtkhtml-3.10.3/src/htmltext.c.old 2007-04-12 21:09:20.259210176 > > +1000 > > +++ gtkhtml-3.10.3/src/htmltext.c 2007-04-12 21:20:36.621387496 > > +1000 > > @@ -1214,12 +1214,16 @@ html_text_prepare_attrs (HTMLText *text, > > pango_attr_list_insert (attrs, attr); > > } > > } else { > > - if (fabs (painter->font_manager.magnification - 1.0) > > > 0.001) { > > - attr = pango_attr_size_new > > (painter->font_manager.var_size*painter->font_manager.magnification); > > + if (painter->font_manager.variable.face != NULL) { > > + attr = pango_attr_family_new > > (painter->font_manager.variable.face); > > attr->start_index = 0; > > attr->end_index = text->text_bytes; > > pango_attr_list_insert (attrs, attr); > > } > > Im not clear why you you have to insert another attribute here. Also you > dont check for fabs as it was doing earlier. >From my testing the size is actual set a few lines down with html_text_change_attrs using html_pango_attr_font_size_calc which takes into account font style size. EXCEPT if default size. Also the font is never set if default font face. This result in gnome_print using its default of "Serf Regular 12" instead of "San Regular 10" or anything else. The gnome_print default font has to be set for every print page but it still didn't work. This is then a patch to fix a broken gnome_print. Maybe the gtk_print API works and this is unneeded. > > + attr = pango_attr_size_new > > (painter->font_manager.var_size*painter->font_manager.magnification); > > + attr->start_index = 0; > > + attr->end_index = text->text_bytes; > > + pango_attr_list_insert (attrs, attr); > > pango_attr_list_splice (attrs, text->attr_list, 0, 0); > > } > > > > > This patch sets the font for text areas during printing but I don't > > > understand why it already does the right thing for the screen. My > > > patch still has a placement problem for some characters. The C and T > > > in the follow pngs show the problem. > > > > > > Thanks again, > > > Paul > > > > The GnuCash report print bug is listed at > > http://bugzilla.gnome.org/show_bug.cgi?id=350408 > > > > After looking further into the problem, it appears that GnomePrint > > doesn't have a setable default font. And because the pango attrs don't > > set a font face or size if the required font is the default, the result > > is the items are printed in GnomePrint default of "Serf Regular 12". My > > patch changes this to explicitly set the pango attrs resulting with the > > items printed in that font. > > > > As for the character placement problem, it appears to be a problem only > > with the [Dejavu] Sans and [Dejavu] Serf fonts at point sizes 9 and 10 > > when printing. This maybe a Ubuntu 6.06 problem. > > > > Looking at gtkhtml-3.14.0/src/htmlprinter.c from the most recent source, > > it appears that the new gtk_print allows the setting of a default font. > > Please make this user accessable even if its in a gconf file. > > HTMLPainter * > > html_printer_new (GtkWidget *widget, GtkPrintContext *context) > > { > > const PangoFontDescription *desc; > > HTMLPrinter *printer; > > HTMLPainter *painter; > > > > printer = g_object_new (HTML_TYPE_PRINTER, NULL); > > printer->context = g_object_ref (context); > > > > painter = HTML_PAINTER (printer); > > html_painter_set_widget (painter, widget); > > desc = pango_font_description_from_string ("sans 8");/* FIXME > > font hardcoded*/ > > IIRC the widget is the GtkHTML widget. It can be easy to get the widget > style / font description from GtkHTML widget an
Re: [Evolution-hackers] GnuCash print problem patch
On Mon, 2007-04-16 at 22:14 +1000, Paul Andreassen wrote: > On Friday 13 April 2007 16:54, Paul Andreassen wrote: > > On Friday 13 April 2007 03:13, Srinivasa Ragavan wrote: > > > Paul, > > > > > > Yes. Before getting into the patch, can you let us know the issue the > > > patch is addressing? It would be helpful while reviewing the patch. > > > > > > -Srini > > > > > > On Thu, 2007-04-12 at 21:41 +1000, Paul Andreassen wrote: > > > > Hello, > > > > > > > > Is this where gtkhtml is maintained? If so could someone look at this > > > > patch and tell me if it acceptable for inclusion. I'm not sure I > > > > understand how all the library code goes together. > > > > Thanks for the reply. > > > > When printing or print previewing of a GnuCash report the font changes from > > the screen font to an unset and unchangeable one. In my case it changes > > from the screen font of "San Regular 10" to "Serf Regular 12". This > > results in very large printed reports. Quoting your previous patch. > --- gtkhtml-3.10.3/src/htmltext.c.old 2007-04-12 21:09:20.259210176 > +1000 > +++ gtkhtml-3.10.3/src/htmltext.c 2007-04-12 21:20:36.621387496 > +1000 > @@ -1214,12 +1214,16 @@ html_text_prepare_attrs (HTMLText *text, > pango_attr_list_insert (attrs, attr); > } > } else { > - if (fabs (painter->font_manager.magnification - 1.0) > > 0.001) { > - attr = pango_attr_size_new > (painter->font_manager.var_size*painter->font_manager.magnification); > + if (painter->font_manager.variable.face != NULL) { > + attr = pango_attr_family_new > (painter->font_manager.variable.face); > attr->start_index = 0; > attr->end_index = text->text_bytes; > pango_attr_list_insert (attrs, attr); > } > Im not clear why you you have to insert another attribute here. Also you dont check for fabs as it was doing earlier. > + attr = pango_attr_size_new > (painter->font_manager.var_size*painter->font_manager.magnification); > + attr->start_index = 0; > + attr->end_index = text->text_bytes; > + pango_attr_list_insert (attrs, attr); > pango_attr_list_splice (attrs, text->attr_list, 0, 0); > } > > > > This patch sets the font for text areas during printing but I don't > > understand why it already does the right thing for the screen. My patch > > still has a placement problem for some characters. The C and T in the > > follow pngs show the problem. > > > > Thanks again, > > Paul > > The GnuCash report print bug is listed at > http://bugzilla.gnome.org/show_bug.cgi?id=350408 > > After looking further into the problem, it appears that GnomePrint doesn't > have a setable default font. And because the pango attrs don't set a font > face or size if the required font is the default, the result is the items are > printed in GnomePrint default of "Serf Regular 12". My patch changes this to > explicitly set the pango attrs resulting with the items printed in that font. > > As for the character placement problem, it appears to be a problem only with > the [Dejavu] Sans and [Dejavu] Serf fonts at point sizes 9 and 10 when > printing. This maybe a Ubuntu 6.06 problem. > > Looking at gtkhtml-3.14.0/src/htmlprinter.c from the most recent source, it > appears that the new gtk_print allows the setting of a default font. Please > make this user accessable even if its in a gconf file. > HTMLPainter * > html_printer_new (GtkWidget *widget, GtkPrintContext *context) > { > const PangoFontDescription *desc; > HTMLPrinter *printer; > HTMLPainter *painter; > > printer = g_object_new (HTML_TYPE_PRINTER, NULL); > printer->context = g_object_ref (context); > > painter = HTML_PAINTER (printer); > html_painter_set_widget (painter, widget); > desc = pango_font_description_from_string ("sans 8");/* FIXME font > hardcoded*/ IIRC the widget is the GtkHTML widget. It can be easy to get the widget style / font description from GtkHTML widget and set it here instead of GCONF something else. That way, it may be consistent from what is shown also. Does that suffice you? -Srini. > painter->pango_context = gtk_print_context_create_pango_context > (context); > pango_context_set_font_description (painter->pango_context, desc); > return painter; > > } > > My web page on this problem with fixes is at > http://members.iinet.com.au/~paulone/gnucash/ > > Thanks, > Paul ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] GnuCash print problem patch
On Friday 13 April 2007 16:54, Paul Andreassen wrote: > On Friday 13 April 2007 03:13, Srinivasa Ragavan wrote: > > Paul, > > > > Yes. Before getting into the patch, can you let us know the issue the > > patch is addressing? It would be helpful while reviewing the patch. > > > > -Srini > > > > On Thu, 2007-04-12 at 21:41 +1000, Paul Andreassen wrote: > > > Hello, > > > > > > Is this where gtkhtml is maintained? If so could someone look at this > > > patch and tell me if it acceptable for inclusion. I'm not sure I > > > understand how all the library code goes together. > > Thanks for the reply. > > When printing or print previewing of a GnuCash report the font changes from > the screen font to an unset and unchangeable one. In my case it changes > from the screen font of "San Regular 10" to "Serf Regular 12". This > results in very large printed reports. > > This patch sets the font for text areas during printing but I don't > understand why it already does the right thing for the screen. My patch > still has a placement problem for some characters. The C and T in the > follow pngs show the problem. > > Thanks again, > Paul The GnuCash report print bug is listed at http://bugzilla.gnome.org/show_bug.cgi?id=350408 After looking further into the problem, it appears that GnomePrint doesn't have a setable default font. And because the pango attrs don't set a font face or size if the required font is the default, the result is the items are printed in GnomePrint default of "Serf Regular 12". My patch changes this to explicitly set the pango attrs resulting with the items printed in that font. As for the character placement problem, it appears to be a problem only with the [Dejavu] Sans and [Dejavu] Serf fonts at point sizes 9 and 10 when printing. This maybe a Ubuntu 6.06 problem. Looking at gtkhtml-3.14.0/src/htmlprinter.c from the most recent source, it appears that the new gtk_print allows the setting of a default font. Please make this user accessable even if its in a gconf file. HTMLPainter * html_printer_new (GtkWidget *widget, GtkPrintContext *context) { const PangoFontDescription *desc; HTMLPrinter *printer; HTMLPainter *painter; printer = g_object_new (HTML_TYPE_PRINTER, NULL); printer->context = g_object_ref (context); painter = HTML_PAINTER (printer); html_painter_set_widget (painter, widget); desc = pango_font_description_from_string ("sans 8");/* FIXME font hardcoded*/ painter->pango_context = gtk_print_context_create_pango_context (context); pango_context_set_font_description (painter->pango_context, desc); return painter; } My web page on this problem with fixes is at http://members.iinet.com.au/~paulone/gnucash/ Thanks, Paul -- ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] GnuCash print problem patch
On Friday 13 April 2007 03:13, Srinivasa Ragavan wrote: > Paul, > > Yes. Before getting into the patch, can you let us know the issue the > patch is addressing? It would be helpful while reviewing the patch. > > -Srini > > On Thu, 2007-04-12 at 21:41 +1000, Paul Andreassen wrote: > > Hello, > > > > Is this where gtkhtml is maintained? If so could someone look at this > > patch and tell me if it acceptable for inclusion. I'm not sure I > > understand how all the library code goes together. Thanks for the reply. When printing or print previewing of a GnuCash report the font changes from the screen font to an unset and unchangeable one. In my case it changes from the screen font of "San Regular 10" to "Serf Regular 12". This results in very large printed reports. This patch sets the font for text areas during printing but I don't understand why it already does the right thing for the screen. My patch still has a placement problem for some characters. The C and T in the follow pngs show the problem. Thanks again, Paul -- ___ Evolution-hackers mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] GnuCash print problem patch
Paul, Yes. Before getting into the patch, can you let us know the issue the patch is addressing? It would be helpful while reviewing the patch. -Srini On Thu, 2007-04-12 at 21:41 +1000, Paul Andreassen wrote: > Hello, > > Is this where gtkhtml is maintained? If so could someone look at this patch > and tell me if it acceptable for inclusion. I'm not sure I understand how > all the library code goes together. > > Thanks, > Paul > ___ > Evolution-hackers mailing list > [EMAIL PROTECTED] > http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] GnuCash print problem patch
Hello, Is this where gtkhtml is maintained? If so could someone look at this patch and tell me if it acceptable for inclusion. I'm not sure I understand how all the library code goes together. Thanks, Paul -- --- gtkhtml-3.10.3/src/htmltext.c.old 2007-04-12 21:09:20.259210176 +1000 +++ gtkhtml-3.10.3/src/htmltext.c 2007-04-12 21:20:36.621387496 +1000 @@ -1214,12 +1214,16 @@ html_text_prepare_attrs (HTMLText *text, pango_attr_list_insert (attrs, attr); } } else { - if (fabs (painter->font_manager.magnification - 1.0) > 0.001) { - attr = pango_attr_size_new (painter->font_manager.var_size*painter->font_manager.magnification); + if (painter->font_manager.variable.face != NULL) { + attr = pango_attr_family_new (painter->font_manager.variable.face); attr->start_index = 0; attr->end_index = text->text_bytes; pango_attr_list_insert (attrs, attr); } + attr = pango_attr_size_new (painter->font_manager.var_size*painter->font_manager.magnification); + attr->start_index = 0; + attr->end_index = text->text_bytes; + pango_attr_list_insert (attrs, attr); pango_attr_list_splice (attrs, text->attr_list, 0, 0); } ___ Evolution-hackers mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/evolution-hackers