From: Alex R. <sh...@gr...> - 2005-07-05 20:44:11
|
Eero, On 07/05/2005 02:38:34 PM, Eero Tamminen wrote: >=20 > > > * Although I select 1x1 pages for the output, the report generates 4 > > > pages (of which 3 have *very* little content). This happens with > > > margins set to zero. If I set the margins to one, then there's only > > > one page of output. A possible explanation for this could be that wit= h > > > zero margins set in the GUI, the generated dot file still seems to li= st > > > margin as 0.5 (and have only one margin value...): > > > ----- > > > * margins top/bottom : 0.0 > > > * left/right : 0.0 > > > * pages horizontal : 1 > > > * vertical : 1 > > > * page width : 8.26771653543in > > > * height : 11.6929133858in > > > ... > > > center=3D1; > > > margin=3D0.5; > > > size=3D"8.3,11.7"; > > > page=3D"8.3,11.7"; > > > ------ > > > > The dot format seem to want one margin value, default is 0.5 in. > > The GUI-provided margins are used to calculate the height/width > > in "size" compared to "page". Zero margins mean that size equals > > page. > > > > I am not certain what is the role of "margin" value >=20 > Dot man page says: > "sets the page margin (included in the page size)." >=20 > Report "page" .dot setting AFAIK comes from the Gramps/printing page > setting. "size" sets bounding box of drawing, i.e. the "virtual" page siz= e > (which can span multiple physical pages). >=20 > So... "margin" is associated with "page", whereas the margin settings i= n > the UI dialog are associated with the "size" (drawing bounding box). >=20 >=20 > > -- should we=20 > > specify left/right or top/bottom margin? I thought of making it > > min(left_right,top_bottom), but I am not sure. >=20 > I tested setting: > margin=3D0.0 > in the .dot file and that fixed the output for single page with top/botto= m > and left/right margins set to 0.0 in the UI (both for single and multiple > pages). >=20 > However, when looking at the code: > self.f.write("margin=3D0.5;\n") > self.f.write("size=3D\"%3.1f,%3.1f\";\n" % ( > (self.width*self.hpages)-(self.lr_margin*2) > -((self.hpages-1)*1.0), > (self.height*self.vpages)-(self.tb_margin*2) > -((self.vpages-1)*1.0)) > ) >=20 > I'm not sure what the "-((self.hpages-1)*1.0)" is for. > Is "*1.0" supposed to be "*2*margin"? >=20 > For printing you probably need a page margin in addition to the bounding = box > margin as all printers (e.g. my deskjet) cannot print to the full page > size... I.e. unfortunately it cannot be zero. In some printers some mar= gin > (bottom?) can be as large as one inch. All of this makes perfect sense, however I am as clueless as before: What would be the proper "margin" value, if I know physical page size and the user-entered left_right and top_bottom margins? > While testing this, I noticed another oddity: > - After setting the margins once to zero, changing them to another value, > OK'ing the dialog and reopening the dialog still presented the margins = as > zero. Don't they get saved properly? They should be, so I guess it's a bug. I'll take a look, Alex --=20 Alexander Roitman http://www.gramps-project.org |