+ return fileName;
+}
+
+int embeddedids[128];
+int embeddedt1ids[128];
+int embedded_mappos = 0;
+int embedded_maxpos = 128;
+
+void SWFOutputDev::updateFont(GfxState *state)
+{
+ double m11, m12, m21, m22;
+ char * fontname = 0;
+ GfxFont*gfxFont = state->getFont();
+
+ if (!gfxFont) {
+ return;
+ }
+
+ if(swfoutput_queryfont(&output, gfxFont->getID().num))
+ {
+ swfoutput_setfont(&output, gfxFont->getID().num, -1);
+ return;
+ }
+
+ // look for Type 3 font
+ if (!type3Warning && gfxFont->getType() == fontType3) {
+ type3Warning = gTrue;
+ showFontError(gfxFont, 2);
+ }
+ //dumpFontInfo ("<notice>", gfxFont);
+
+ Ref embRef;
+ GBool embedded = gfxFont->getEmbeddedFontID(&embRef);
+ if(embedded) {
+ int t;
+ for(t=0;t<embedded_mappos;t++)
+ if(embeddedids[t] == embRef.num)
+ break;
+ if(t==embedded_mappos)
+ {
+ char*fileName;
+ if (!gfxFont->is16Bit() &&
+ (gfxFont->getType() == fontType1 ||
+ gfxFont->getType() == fontType1C)) {
+
+ fileName = writeEmbeddedFontToFile(gfxFont);
+ if(!fileName)
+ return ;
+ }
+ else {
+ showFontError(gfxFont,0);
+ return ;
+ }
+ t1id = T1_AddFont(fileName);
+ embeddedids[embedded_mappos] = embRef.num;
+ embeddedt1ids[embedded_mappos] = t1id;
+ if(embedded_mappos < embedded_maxpos-1)
+ embedded_mappos++;