X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FXMLOutputDev.cc;h=d04e2bda3740b7526ed02a4766a7f64ac47f66ae;hb=20f395856f21739e79eeab275beec7a3d133d568;hp=d6f1d2d5c1f186b4cae85a80f1352c750b209c67;hpb=753c672c453d65155923a539472414a26ea4e445;p=swftools.git diff --git a/lib/pdf/XMLOutputDev.cc b/lib/pdf/XMLOutputDev.cc index d6f1d2d..d04e2bd 100644 --- a/lib/pdf/XMLOutputDev.cc +++ b/lib/pdf/XMLOutputDev.cc @@ -41,9 +41,9 @@ XMLOutputDev::~XMLOutputDev() fclose(out); } -void XMLOutputDev::startPage(int pageNum, GfxState *state, double x1,double y1,double x2,double y2) +void XMLOutputDev::startPage(int pageNum, GfxState *state) { - TextOutputDev::startPage(pageNum, state, x1, y1, x2, y2); + TextOutputDev::startPage(pageNum, state); fprintf(out, "\n", pageNum, state->getPageWidth(), state->getPageHeight()); } @@ -59,15 +59,25 @@ void XMLOutputDev::endPage() GString*fontname = new GString(); double fontsize = -99999; double base = -9999; + double color_r = -1; + double color_g = -1; + double color_b = -1; for(i=0;iget(i); GString*newfont = word->getFontName(); double newsize = word->getFontSize(); double newbase = word->base; + double newcolor_r = word->colorR; + double newcolor_g = word->colorG; + double newcolor_b = word->colorB; if((newfont && newfont->cmp(fontname)) || newsize != fontsize || - newbase != base) + newbase != base || + newcolor_r != color_r || + newcolor_g != color_g || + newcolor_b != color_b + ) { TextFontInfo*info = word->getFontInfo(); if(textTag) @@ -94,18 +104,29 @@ void XMLOutputDev::endPage() if(strstr(name, "serif")) serif = gTrue; } - fprintf(out, "", + fprintf(out, "", name, newbase, (word->rot&1)?word->yMin:word->xMin, + (word->rot&1)?word->yMin:word->xMin, + (word->rot&1)?word->xMin:word->yMin, + (word->rot&1)?word->yMax:word->xMax, + (word->rot&1)?word->xMax:word->yMax, info->isFixedWidth()?"fixed;":"", serif?"serif;":"", italic?"italic;":"", bold?"bold;":"", - newsize); + newsize, + ((int)(newcolor_r*255))&0xff, + ((int)(newcolor_g*255))&0xff, + ((int)(newcolor_b*255))&0xff + ); fontname = newfont->copy(); fontsize = newsize; base = newbase; + color_r = newcolor_r; + color_g = newcolor_g; + color_b = newcolor_b; } char*s = word->getText()->getCString(); while(*s) {