diff mupdf-source/thirdparty/extract/src/odt.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/extract/src/odt.h	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,100 @@
+#ifndef ARTIFEX_EXTRACT_ODT_H
+#define ARTIFEX_EXTRACT_ODT_H
+
+/* Only for internal use by extract code.  */
+
+/* Things for creating odt files. */
+
+typedef struct extract_odt_style_t extract_odt_style_t;
+
+typedef struct
+{
+    extract_odt_style_t*    styles;
+    int                     styles_num;
+} extract_odt_styles_t;
+
+void extract_odt_styles_free(extract_alloc_t* alloc, extract_odt_styles_t* styles);
+
+int extract_document_to_odt_content(
+        extract_alloc_t*    alloc,
+        document_t*         document,
+        int                 spacing,
+        int                 rotation,
+        int                 images,
+        extract_astring_t*  o_content,
+        extract_odt_styles_t* o_styles
+        );
+/* Makes *o_content point to a string containing all paragraphs in *document in
+odt XML format.
+
+Also writes style definitions to <o_styles>.
+
+<o_content> and <o_styles> can be passed to extract_odt_content_item() or
+extract_odt_write_template() to be inserted into an odt archive. */
+
+
+int extract_odt_write_template(
+        extract_alloc_t*    alloc,
+        extract_astring_t*  contentss,
+        int                 contentss_num,
+        extract_odt_styles_t* styles,
+        images_t*           images,
+        const char*         path_template,
+        const char*         path_out,
+        int                 preserve_dir
+        );
+/* Creates a new odt file using a provided template document.
+
+Uses the 'zip' and 'unzip' commands internally.
+
+contents
+contentss_num
+    Content to be inserted into word/document.xml.
+document
+    .
+images
+    Information about images.
+path_template
+    Name of odt file to use as a template.
+path_out
+    Name of odt file to create. Must not contain single-quote, double quote,
+    space or ".." sequence - these will force EINVAL error because they could
+    make internal shell commands unsafe.
+preserve_dir
+    If true, we don't delete the temporary directory <path_out>.dir containing
+    unzipped odt content.
+*/
+
+
+int extract_odt_content_item(
+        extract_alloc_t*    alloc,
+        extract_astring_t*  contentss,
+        int                 contentss_num,
+        extract_odt_styles_t* styles,
+        images_t*           images,
+        const char*         name,
+        const char*         text,
+        char**              text2
+        );
+/* Determines content of <name> in odt archive.
+
+content
+content_length
+    Text to insert if <name> is word/document.xml.
+styles
+    Text containing style definitions.
+images
+    Information about images. If <name> is word/document.xml we insert
+    relationship information mapping from image ids to image names;
+    <text> should already contain reference ids for images. If <name> is
+    [Content_Types].xml we insert information about image types.
+name
+    Path within the odt zip archive.
+text
+    Content of <name> in template odt file.
+text2
+    Out-param. Set to NULL if <text> should be used unchanged. Otherwise set to
+    point to desired text, allocated with malloc() which caller should free.
+*/
+
+#endif