Пример #1
0
WordConverter *WordConverterNew(DFDocument *html, const char *abstractPath,
                                const char *idPrefix, WordPackage *package,
                                DFBuffer *warnings)
{
    WordConverter *converter = (WordConverter *)calloc(1,sizeof(WordConverter));
    if ((abstractPath == NULL) || (strlen(abstractPath) == 0))
        abstractPath = ".";
    converter->html = DFDocumentRetain(html);
    converter->abstractPath = strdup(abstractPath);
    converter->concretePath = strdup(package->tempPath);
    converter->idPrefix = DFStrDup(idPrefix);
    converter->package = WordPackageRetain(package);
    converter->styles = WordSheetNew(converter->package->styles);
    converter->numbering = WordNumberingNew(converter->package);
    converter->theme = WordThemeNew(converter->package);
    converter->mainSection = WordSectionNew();
    converter->objects = WordObjectsNew(converter->package);
    converter->footnotes = WordNoteGroupNewFootnotes(converter->package->footnotes);
    converter->endnotes = WordNoteGroupNewEndnotes(converter->package->endnotes);
    converter->supportedContentTypes = DFHashTableNew((DFCopyFunction)strdup,free);
    DFHashTableAdd(converter->supportedContentTypes,"jpg","image/jpeg");
    DFHashTableAdd(converter->supportedContentTypes,"jpeg","image/jpeg");
    DFHashTableAdd(converter->supportedContentTypes,"tif","image/tiff");
    DFHashTableAdd(converter->supportedContentTypes,"tiff","image/tiff");
    DFHashTableAdd(converter->supportedContentTypes,"gif","image/gif");
    DFHashTableAdd(converter->supportedContentTypes,"bmp","image/bmp");
    DFHashTableAdd(converter->supportedContentTypes,"png","image/png");
    converter->warnings = DFBufferRetain(warnings);
    return converter;
}
Пример #2
0
ODFManifest *ODFManifestNewWithDoc(DFDocument *doc)
{
    ODFManifest *manifest = (ODFManifest *)calloc(1,sizeof(ODFManifest));
    manifest->doc = DFDocumentRetain(doc);
    manifest->entriesByPath = DFHashTableNew(NULL,NULL);
    ODFManifestParse(manifest);
    return manifest;
}
Пример #3
0
DFDocument *DFParseXMLString(const char *str, DFError **error)
{
    DFSAXParser *parser = DFSAXParserNew();
    DFSAXParserParse(parser,str,strlen(str));
    if (parser->fatalErrors->len > 0) {
        DFErrorFormat(error,"%s",parser->fatalErrors->data);
        DFSAXParserFree(parser);
        return NULL;
    }
    else if (parser->errors->len > 0) {
        DFErrorFormat(error,"%s",parser->errors->data);
        DFSAXParserFree(parser);
        return NULL;
    }
    else if (parser->document->root == NULL) {
        DFErrorFormat(error,"No root element");
        DFSAXParserFree(parser);
        return NULL;
    }

    DFDocument *result = DFDocumentRetain(parser->document);
    DFSAXParserFree(parser);
    return result;
}