aboutsummaryrefslogtreecommitdiff
path: root/xpdf/HTMLGen.h
diff options
context:
space:
mode:
authorCalvin Morrison <calvin@pobox.com>2023-04-05 14:13:39 -0400
committerCalvin Morrison <calvin@pobox.com>2023-04-05 14:13:39 -0400
commit835e373b3eeaabcd0621ed6798ab500f37982fae (patch)
treedfa16b0e2e1b4956b38f693220eac4e607802133 /xpdf/HTMLGen.h
xpdf-no-select-disableHEADmaster
Diffstat (limited to 'xpdf/HTMLGen.h')
-rw-r--r--xpdf/HTMLGen.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/xpdf/HTMLGen.h b/xpdf/HTMLGen.h
new file mode 100644
index 0000000..66ee2d2
--- /dev/null
+++ b/xpdf/HTMLGen.h
@@ -0,0 +1,113 @@
+//========================================================================
+//
+// HTMLGen.h
+//
+// Copyright 2010-2021 Glyph & Cog, LLC
+//
+//========================================================================
+
+#ifndef HTMLGEN_H
+#define HTMLGEN_H
+
+#include <aconf.h>
+
+#ifdef USE_GCC_PRAGMAS
+#pragma interface
+#endif
+
+class GString;
+class PDFDoc;
+class TextOutputDev;
+class TextFontInfo;
+class SplashOutputDev;
+class HTMLGenFontDefn;
+
+//------------------------------------------------------------------------
+
+class HTMLGen {
+public:
+
+ HTMLGen(double backgroundResolutionA, GBool tableMode);
+ ~HTMLGen();
+
+ GBool isOk() { return ok; }
+
+ double getBackgroundResolution() { return backgroundResolution; }
+ void setBackgroundResolution(double backgroundResolutionA)
+ { backgroundResolution = backgroundResolutionA; }
+
+ double getZoom() { return zoom; }
+ void setZoom(double zoomA) { zoom = zoomA; }
+
+ void setVStretch(double vStretchA) { vStretch = vStretchA; }
+
+ GBool getDrawInvisibleText() { return drawInvisibleText; }
+ void setDrawInvisibleText(GBool drawInvisibleTextA)
+ { drawInvisibleText = drawInvisibleTextA; }
+
+ GBool getAllTextInvisible() { return allTextInvisible; }
+ void setAllTextInvisible(GBool allTextInvisibleA)
+ { allTextInvisible = allTextInvisibleA; }
+
+ void setExtractFontFiles(GBool extractFontFilesA)
+ { extractFontFiles = extractFontFilesA; }
+
+ void setConvertFormFields(GBool convertFormFieldsA)
+ { convertFormFields = convertFormFieldsA; }
+
+ void setEmbedBackgroundImage(GBool embedBackgroundImageA)
+ { embedBackgroundImage = embedBackgroundImageA; }
+
+ void setEmbedFonts(GBool embedFontsA)
+ { embedFonts = embedFontsA; }
+
+ void startDoc(PDFDoc *docA);
+ int convertPage(int pg, const char *pngURL, const char *htmlDir,
+ int (*writeHTML)(void *stream, const char *data, int size),
+ void *htmlStream,
+ int (*writePNG)(void *stream, const char *data, int size),
+ void *pngStream);
+
+private:
+
+ int findDirSpan(GList *words, int firstWordIdx, int primaryDir,
+ int *spanDir);
+ void appendSpans(GList *words, int firstWordIdx, int lastWordIdx,
+ int primaryDir, int spanDir,
+ double base, GBool dropCapLine, GString *s);
+ void appendUTF8(Unicode u, GString *s);
+ HTMLGenFontDefn *getFontDefn(TextFontInfo *font, const char *htmlDir);
+ HTMLGenFontDefn *getFontFile(TextFontInfo *font, const char *htmlDir);
+ HTMLGenFontDefn *getSubstituteFont(TextFontInfo *font);
+ void getFontDetails(TextFontInfo *font, const char **family,
+ const char **weight, const char **style,
+ double *scale);
+
+ double backgroundResolution;
+ double zoom;
+ double vStretch;
+ GBool drawInvisibleText;
+ GBool allTextInvisible;
+ GBool extractFontFiles;
+ GBool convertFormFields;
+ GBool embedBackgroundImage;
+ GBool embedFonts;
+
+ PDFDoc *doc;
+ TextOutputDev *textOut;
+ SplashOutputDev *splashOut;
+
+ GList *fonts; // [TextFontInfo]
+ double *fontScales;
+
+ GList *fontDefns; // [HTMLGenFontDefn]
+ int nextFontFaceIdx;
+
+ TextFontInfo *formFieldFont;
+ GList *formFieldInfo; // [HTMLGenFormFieldInfo]
+ int nextFieldID;
+
+ GBool ok;
+};
+
+#endif