diff --git a/utils/HtmlOutputDev.cc b/utils/HtmlOutputDev.cc
index 22acbd7..947b5c5 100644
--- a/utils/HtmlOutputDev.cc
+++ b/utils/HtmlOutputDev.cc
@@ -63,6 +63,10 @@
int HtmlPage::pgNum=0;
int HtmlOutputDev::imgNum=1;
GooList *HtmlOutputDev::imgList=new GooList();
+GooList *HtmlOutputDev::imgTopList=new GooList();
+GooList *HtmlOutputDev::imgLeftList=new GooList();
+GooList *HtmlOutputDev::imgWidthList=new GooList();
+GooList *HtmlOutputDev::imgHeightList=new GooList();
extern double scale;
extern GBool complexMode;
@@ -646,8 +650,18 @@ void HtmlPage::dumpAsXML(FILE* f,int page){
int listlen=HtmlOutputDev::imgList->getLength();
for (int i = 0; i < listlen; i++) {
GooString *fName= (GooString *)HtmlOutputDev::imgList->del(0);
- fprintf(f,"%s\n",fName->getCString());
+ int *top = (int*)HtmlOutputDev::imgTopList->del(0);
+ int *left = (int*)HtmlOutputDev::imgLeftList->del(0);
+ int *width = (int*)HtmlOutputDev::imgWidthList->del(0);
+ int *height = (int*)HtmlOutputDev::imgHeightList->del(0);
+ fprintf(f,"%s\n",
+ *top, *left, *width, *height,
+ fName->getCString());
delete fName;
+ delete top;
+ delete left;
+ delete width;
+ delete height;
}
HtmlOutputDev::imgNum=1;
@@ -1232,7 +1246,17 @@ void HtmlOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str,
fclose(f1);
- if (fName) imgList->append(fName);
+ if (fName){
+ int* x0p = new int[1]; *x0p = x0;
+ int* y0p = new int[1]; *y0p = y0;
+ int* w1p = new int[1]; *w1p = w1;
+ int* h1p = new int[1]; *h1p = h1;
+ imgList->append(fName);
+ imgTopList->append(y0p);
+ imgLeftList->append(x0p);
+ imgWidthList->append(w1p);
+ imgHeightList->append(h1p);
+ }
}
else {
OutputDev::drawImageMask(state, ref, str, width, height, invert, interpolate, inlineImg);
@@ -1321,7 +1345,17 @@ void HtmlOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
fclose(f1);
- if (fName) imgList->append(fName);
+ if (fName) {
+ int* x0p = new int[1]; *x0p = x0;
+ int* y0p = new int[1]; *y0p = y0;
+ int* w1p = new int[1]; *w1p = w1;
+ int* h1p = new int[1]; *h1p = h1;
+ imgList->append(fName);
+ imgTopList->append(y0p);
+ imgLeftList->append(x0p);
+ imgWidthList->append(w1p);
+ imgHeightList->append(h1p);
+ }
}
else {
#ifdef ENABLE_LIBPNG
@@ -1387,7 +1421,15 @@ void HtmlOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
fclose(f1);
free(row);
+ int* x0p = new int[1]; *x0p = x0;
+ int* y0p = new int[1]; *y0p = y0;
+ int* w1p = new int[1]; *w1p = w1;
+ int* h1p = new int[1]; *h1p = h1;
imgList->append(fName);
+ imgTopList->append(y0p);
+ imgLeftList->append(x0p);
+ imgWidthList->append(w1p);
+ imgHeightList->append(h1p);
++imgNum;
imgStr->close();
delete imgStr;
diff --git a/utils/HtmlOutputDev.h b/utils/HtmlOutputDev.h
index 24ccfd1..c6b11e0 100644
--- a/utils/HtmlOutputDev.h
+++ b/utils/HtmlOutputDev.h
@@ -319,6 +319,10 @@ private:
int maxPageHeight;
static int imgNum;
static GooList *imgList;
+ static GooList *imgTopList;
+ static GooList *imgLeftList;
+ static GooList *imgWidthList;
+ static GooList *imgHeightList;
GooString *Docname;
GooString *docTitle;
GooList *glMetaVars;
diff --git a/utils/pdf2xml.dtd b/utils/pdf2xml.dtd
index 2a5ed22..dc594b8 100644
--- a/utils/pdf2xml.dtd
+++ b/utils/pdf2xml.dtd
@@ -27,3 +27,9 @@
+