Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!sdd.hp.com!mips!sgi!shinobu!fido.wpd.sgi.com!marktwain.rad.sgi.com!linton From: linton@marktwain.rad.sgi.com (Mark Linton) Newsgroups: comp.windows.interviews Subject: Re: figures in doc Message-ID: <1991May10.155828.7175@fido.wpd.sgi.com> Date: 10 May 91 15:58:28 GMT References: <9105091907.AA19327@lurch.Stanford.EDU> Sender: news@fido.wpd.sgi.com (Usenet News Admin) Reply-To: linton@marktwain.rad.sgi.com (Mark Linton) Organization: sgi Lines: 82 In article <9105091907.AA19327@lurch.Stanford.EDU>, garry@alice.att.com writes: |> This is the third time I've asked this. Has it been ignored |> or just never made it through? |> |> I've been playing with the doc in 3.0 beta. It looks like a |> real nice package. However, I cannot seem to get the figures |> within a document to print. When I print, for example, intro.doc |> from lib/all/doc-samples, the document prints fine but there is |> just blank space where the figures should be. I've tried |> various combinations of draft and final modes, with no good |> results. What am I doing wrong? Having seen the Glyph paper, |> I assume this can be done... You need fix3 for iv/src/lib/InterViews/printer.c, included below. *** printer.c.orig Mon Apr 15 10:52:49 1991 --- printer.c Tue Apr 23 15:18:16 1991 *************** *** 193,198 **** --- 193,199 ---- } void Printer::push_transform() { + Canvas::push_transform(); PrinterRep* p = rep_; flush(); int depth = p->info_->count(); *************** *** 207,215 **** --- 208,218 ---- int depth = p->info_->count(); p->info_->remove(depth - 1); *p->out_ << "grestore\n"; + Canvas::pop_transform(); } void Printer::transform(Transformer& t) { + Canvas::transform(t); PrinterRep* p = rep_; flush(); float a00, a01, a10, a11, a20, a21; *************** *** 219,235 **** *p->out_ << " " << a20 << " " << a21 << "] concat\n"; } - /* - * The current transform push/pop just saves and restores state, - * so we can use it for clipping as well. - */ - void Printer::push_clipping() { ! push_transform(); } void Printer::pop_clipping() { ! pop_transform(); } void Printer::new_path() { --- 222,242 ---- *p->out_ << " " << a20 << " " << a21 << "] concat\n"; } void Printer::push_clipping() { ! PrinterRep* p = rep_; ! flush(); ! int depth = p->info_->count(); ! PrinterInfo info = p->info_->item(depth - 1); ! p->info_->insert(depth, info); ! *p->out_ << "gsave\n"; } void Printer::pop_clipping() { ! PrinterRep* p = rep_; ! flush(); ! int depth = p->info_->count(); ! p->info_->remove(depth - 1); ! *p->out_ << "grestore\n"; } void Printer::new_path() {