def filter(self, mediadesc): from hwp5.dataio import ParseError from hwp5_uno import HwpFileFromInputStream from hwp5_uno import load_hwp5file_into_doc logger.debug('Importer filter') desc = propseq_to_dict(mediadesc) logger.debug('mediadesc: %s', str(desc.keys())) for k, v in desc.items(): logger.debug('%s: %s', k, str(v)) statusindicator = desc.get('StatusIndicator') inputstream = desc['InputStream'] hwpfile = HwpFileFromInputStream(inputstream) try: load_hwp5file_into_doc(hwpfile, self.target, statusindicator) except ParseError as e: e.print_to_logger(logger) return False except Exception as e: logger.exception(e) return False else: return True
def test_basic(self): from unokit.services import css import unokit.util from hwp5.xmlmodel import Hwp5File from hwp5_uno import load_hwp5file_into_doc desktop = css.frame.Desktop() doc = desktop.loadComponentFromURL('private:factory/swriter', '_blank', 0, tuple()) hwp5path = self.get_fixture_path('sample-5017.hwp') hwp5file = Hwp5File(hwp5path) load_hwp5file_into_doc(hwp5file, doc) text = doc.getText() paragraphs = list(self.get_paragraphs(text)) p = paragraphs[0] text_portions = list(self.get_text_portions(p)) tp = text_portions[0] self.assertEqual('Text', tp.TextPortionType) self.assertEqual(u'한글 ', tp.String) p = paragraphs[-1] tp = list(self.get_text_portions(p))[-1] self.assertEqual('Frame', tp.TextPortionType) tc = list(self.get_text_contents(tp))[-1] self.assertTrue('com.sun.star.drawing.GraphicObjectShape' in tc.SupportedServiceNames) table = paragraphs[6] self.assertTrue('com.sun.star.text.TextTable' in table.SupportedServiceNames) drawpage = doc.getDrawPage() shapes = list(unokit.util.enumerate(drawpage)) self.assertEqual(2, len(shapes)) self.assertEqual(1, shapes[0].Graphic.GraphicType) self.assertEqual('image/jpeg', shapes[0].Graphic.MimeType) self.assertEqual(2, shapes[0].Bitmap.GraphicType) self.assertEqual('image/x-vclgraphic', shapes[0].Bitmap.MimeType) self.assertEqual(28254, len(shapes[0].Bitmap.DIB)) self.assertTrue(shapes[0].GraphicURL.startswith('vnd.sun.star.GraphicObject:')) print shapes[0].GraphicURL #self.assertEqual('vnd.sun.star.GraphicObject:10000000000001F40000012C1F9CCF04', # shapes[0].GraphicURL) self.assertEqual(None, shapes[0].GraphicStreamURL) self.assertEqual(1, shapes[1].Graphic.GraphicType) self.assertEqual('image/png', shapes[1].Graphic.MimeType) self.assertEqual(2, shapes[1].Bitmap.GraphicType) self.assertEqual('image/x-vclgraphic', shapes[1].Bitmap.MimeType) self.assertEqual(374, len(shapes[1].Bitmap.DIB)) self.assertTrue(shapes[1].GraphicURL.startswith('vnd.sun.star.GraphicObject:')) print shapes[1].GraphicURL #self.assertEqual('vnd.sun.star.GraphicObject:1000020100000010000000108F049D12', # shapes[1].GraphicURL) self.assertEqual(None, shapes[1].GraphicStreamURL)