Exemple #1
0
def make(args):
    from hwp5.plat import get_xslt
    from hwp5.importhelper import pkg_resources_filename
    from tempfile import mkstemp
    from hwp5.xmlmodel import Hwp5File

    hwp5_filename = args['<hwp5file>']
    rootname = os.path.basename(hwp5_filename)
    if rootname.lower().endswith('.hwp'):
        rootname = rootname[0:-4]
    txt_path = rootname + '.txt'

    xslt = get_xslt()
    plaintext_xsl = pkg_resources_filename('hwp5', 'xsl/plaintext.xsl')

    hwp5file = Hwp5File(hwp5_filename)
    try:
        xhwp5_fd, xhwp5_path = mkstemp()
        try:
            xhwp5_file = os.fdopen(xhwp5_fd, 'w')
            try:
                hwp5file.xmlevents().dump(xhwp5_file)
            finally:
                xhwp5_file.close()

            xslt(plaintext_xsl, xhwp5_path, txt_path)
        finally:
            os.unlink(xhwp5_path)
    finally:
        hwp5file.close()
Exemple #2
0
def make(args):
    from hwp5.plat import get_xslt
    from hwp5.importhelper import pkg_resources_filename
    from tempfile import mkstemp
    from hwp5.xmlmodel import Hwp5File

    hwp5_filename = args['<hwp5file>']
    rootname = os.path.basename(hwp5_filename)
    if rootname.lower().endswith('.hwp'):
        rootname = rootname[0:-4]
    txt_path = rootname + '.txt'

    xslt = get_xslt()
    plaintext_xsl = pkg_resources_filename('hwp5', 'xsl/plaintext.xsl')

    hwp5file = Hwp5File(hwp5_filename)
    try:
        xhwp5_fd, xhwp5_path = mkstemp()
        try:
            xhwp5_file = os.fdopen(xhwp5_fd, 'w')
            try:
                hwp5file.xmlevents().dump(xhwp5_file)
            finally:
                xhwp5_file.close()

            xslt(plaintext_xsl, xhwp5_path, txt_path)
        finally:
            os.unlink(xhwp5_path)
    finally:
        hwp5file.close()
Exemple #3
0
    def convert(self):
        from hwp5 import plat
        from hwp5.hwp5odt import Converter

        xslt = plat.get_xslt()
        assert xslt is not None, 'no XSLT implementation is available'
        relaxng = plat.get_relaxng()
        return Converter(xslt, relaxng)
Exemple #4
0
    def convert(self):
        from hwp5 import plat
        from hwp5.hwp5odt import ODTPackageConverter

        xslt = plat.get_xslt()
        assert xslt is not None, 'no XSLT implementation is available'
        relaxng = plat.get_relaxng()
        return ODTPackageConverter(xslt, relaxng)
Exemple #5
0
def make_converter(args):
    xslt = plat.get_xslt()
    if xslt is None:
        logger.error("no XSLT implementation is available.")
        sys.exit(1)

    rng = plat.get_relaxng()
    if rng is None:
        logger.warning("no RelaxNG implementation is available.")

    if args["--document"]:
        return ODTSingleDocumentConverter(xslt, rng, not args["--no-embed-image"])
    elif args["--styles"]:
        return ODTStylesConverter(xslt, rng)
    elif args["--content"]:
        return ODTContentConverter(xslt, rng, args["--embed-image"])
    else:
        return ODTPackageConverter(xslt, rng, args["--embed-image"])
Exemple #6
0
def make_converter(args):
    xslt = plat.get_xslt()
    if xslt is None:
        logger.error('no XSLT implementation is available.')
        sys.exit(1)

    rng = plat.get_relaxng()
    if rng is None:
        logger.warning('no RelaxNG implementation is available.')

    if args['--document']:
        return ODTSingleDocumentConverter(xslt, rng,
                                          not args['--no-embed-image'])
    elif args['--styles']:
        return ODTStylesConverter(xslt, rng)
    elif args['--content']:
        return ODTContentConverter(xslt, rng, args['--embed-image'])
    else:
        return ODTPackageConverter(xslt, rng, args['--embed-image'])
Exemple #7
0
def main():
    import os
    import sys
    from hwp5 import __version__ as version
    from hwp5.proc import rest_to_docopt
    from hwp5.proc import init_logger
    from hwp5 import plat
    from hwp5.errors import InvalidHwp5FileError
    from docopt import docopt
    doc = rest_to_docopt(__doc__)
    args = docopt(doc, version=version)
    init_logger(args)

    if 'PYHWP_XSLTPROC' in os.environ:
        from hwp5.plat import xsltproc
        xsltproc.executable = os.environ['PYHWP_XSLTPROC']
        xsltproc.enable()

    if 'PYHWP_XMLLINT' in os.environ:
        from hwp5.plat import xmllint
        xmllint.executable = os.environ['PYHWP_XMLLINT']
        xmllint.enable()

    xslt = plat.get_xslt()
    if xslt is None:
        logger.error('no XSLT implementation is available.')
        sys.exit(1)

    rng = plat.get_relaxng()
    if rng is None:
        logger.warning('no RelaxNG implementation is available.')

    convert = Converter(xslt, rng)

    from hwp5.dataio import ParseError
    try:
        make(convert, args)
    except ParseError, e:
        e.print_to_logger(logger)
Exemple #8
0
def generate_htmldir_files(hwp5file, base_dir):
    import os
    from tempfile import mkstemp
    from hwp5.plat import get_xslt

    xslt = get_xslt()
    fd, path = mkstemp()
    try:
        xhwp5 = os.fdopen(fd, 'w')
        try:
            hwp5file.xmlevents(embedbin=False).dump(xhwp5)
        finally:
            xhwp5.close()

        html_path = os.path.join(base_dir, 'index.xhtml')
        generate_html_file(xslt, path, html_path)

        css_path = os.path.join(base_dir, 'styles.css')
        generate_css_file(xslt, path, css_path)
    finally:
        os.unlink(path)

    bindata_dir = os.path.join(base_dir, 'bindata')
    extract_bindata_dir(hwp5file, bindata_dir)
Exemple #9
0
def hwpToHTML(hwp5file, base_dir):
	import os
	from tempfile import mkstemp
	from hwp5.plat import get_xslt
	from hwp5.hwp5odt import hwp5_resources_filename

	xslt = get_xslt()
	
	fd, path = mkstemp()
	try:
		xhwp5 = os.fdopen(fd, 'w')
		try:
			hwp5file.xmlevents(embedbin=False).dump(xhwp5)			
			
			htmlXSL = hwp5_resources_filename('xsl/hwp5html.xsl')
			cssXSL = hwp5_resources_filename('xsl/hwp5css.xsl')
			
			htmlxslTree = etree.XML(open(htmlXSL).read())
			cssxslTree = etree.XML(open(cssXSL).read())
			
			transformHTML = etree.XSLT(htmlxslTree)
			transformCSS = etree.XSLT(cssxslTree)
						
			file = open(path)
			
			originHTML = etree.XML(file.read())
			css = transformCSS(originHTML)
			html = transformHTML(originHTML)
			
			html = str(html).replace("</head>", "\t<style>" + str(css) + "</style>\n</head>")
			
			return str(html)
		finally:
			xhwp5.close()
	finally:
		os.unlink(path)
Exemple #10
0
 def xslt(self):
     return get_xslt()
Exemple #11
0
 def xslt(self):
     from hwp5.plat import get_xslt
     return get_xslt()
Exemple #12
0
 def xslt(self):
     return get_xslt()
Exemple #13
0
 def xslt(self):
     from hwp5.plat import get_xslt
     return get_xslt()