def test_001_empty(): "Test for empty EMF, with only header and EOF" emf = EMF(*_size) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes
def test_use_font(): emf = EMF(*_size) with emf.use_font(Size("10pt", _dpi)) as font: assert font == 1 data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _use_font_bytes
def test_use_pen(): emf = EMF(*_size) with emf.use_pen("solid", Size("1pt", _dpi), 0) as pen: assert pen == 1 data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _use_pen_bytes
def test_text_color(): for color in [0, 0xffffff, 0xff00ff]: emf = EMF(*_size) emf.text_color(color) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _text_color_bytes
def test_text_align(): for align in "lrc": emf = EMF(*_size) emf.text_align(align) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _text_align_bytes emf = EMF(*_size) with pytest.raises(TypeError): emf.text_align("X")
def test_rectangle(): emf = EMF(*_size) # it needs a pen with emf.use_pen("solid", Size("1pt", _dpi), 0): emf.rectangle(Size("0pt", _dpi), Size("0pt", _dpi), Size("1000pt", _dpi), Size("1000pt", _dpi)) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _use_pen_bytes + \ _rect_bytes
def test_text(): emf = EMF(*_size) # it needs a font with emf.use_font(Size("16pt", _dpi)): text = "abcd" emf.text(Size("0pt", _dpi), Size("0pt", _dpi), text) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _use_font_bytes + \ _text_bytes(text)
def test_polyline(): emf = EMF(*_size) # it needs a pen with emf.use_pen("solid", Size("1pt", _dpi), 0): emf.polyline([ (Size("1in", _dpi), Size("1in", _dpi)), (Size("1in", _dpi), Size("2in", _dpi)), (Size("2in", _dpi), Size("2in", _dpi)), (Size("2in", _dpi), Size("1in", _dpi)), ]) data = emf.data() assert isinstance(data, type(b"")) assert len(data) == _header_bytes + _EOF_bytes + _use_pen_bytes + \ _polyline_bytes(4)
#!/usr/bin/env python """Trivial script to debug content of EMF, just in case some poor schmuck decides to repeat this futile exercise. """ from ged2doc.dumbemf import EMF from ged2doc.size import Size dpi = 300 width = Size("5in", dpi) height = Size("2in", dpi) emf = EMF(width, height) # emf.text_color(0) with emf.use_pen("solid", Size("1pt", dpi), 0x000000): emf.rectangle( Size("1in", dpi), Size(".5in", dpi), Size("4in", dpi), Size("1.5in", dpi), ) emf.text_align("c") fontsize = Size("16pt", dpi) with emf.use_font(fontsize): emf.text(Size("2.5in", dpi), Size("1.25in", dpi), "Test1 Проверка1") with open("test.emf", "wb") as out: out.write(emf.data())