def test_main(argv=None): doc = testlib.create_test_doc(argv, 'adobefonts.pdf') basic_page(doc) pages_with_encoding(doc) page_with_kun(doc) other_8bit_encodings(doc) doc.finalize()
def test_main(argv=None): doc_writer = testlib.create_test_doc(argv, 'tiling_patterns.pdf') do_colored_page(doc_writer) do_uncolored_page(doc_writer) doc_writer.finalize() check_errors() check_matrix(argv)
def do_file(argv, name, profile=None): doc = testlib.create_test_doc(argv, name, profile) outline = doc.outline() doc.page_start(600, 800) outline.item("first page") outline.item("rect", 'mode=XYZ; left=40; top=40') canvas = doc.page().canvas() canvas.text(20, 20, '1st') canvas.rectangle(40, 40, 50, 50) canvas.rectangle(100, 40, 50, 50) canvas.path_paint("s") doc.page().annotation_uri(40, 40, 50, 50, 'http://jagpdf.org') doc.page().annotation_goto(100, 40, 50, 50, 'page=1; mode=XYZ; left=40; top=40') doc.page_end() doc.page_start(600, 800) outline.item("second page") canvas = doc.page().canvas() canvas.text(20, 20, '2nd') canvas.rectangle(40, 40, 50, 50) canvas.path_paint("s") doc.page_end() doc.page_start(600, 800) doc.page_end() doc.finalize()
def test_main(argv=None): #http://www.lorem-ipsum.info/generator3 def do_page(font, txt): media = 597.6, 848.68 margin = 20 rect = margin, margin, media[0]-2*margin, media[1]-2*margin doc.page_start(*media) canvas = doc.page().canvas() canvas.color('s', 0.9) canvas.rectangle(*rect) canvas.path_paint('s') textfmt.format_text(rect, txt, doc, font, align='justify', para_spacing=0.5) doc.page_end() dejavu = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/fonts/DejaVuSans.ttf') textdir = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/text/') cfg = jagpdf.create_profile() cfg.set('doc.compressed', '1') doc = testlib.create_test_doc(argv, 'justified.pdf', cfg) font_1252 = doc.font_load('file=%s;size=8' % dejavu) # western font_1251 = doc.font_load('file=%s;size=8;enc=windows-1251' % dejavu) # cyrillic font_1253 = doc.font_load('file=%s;size=8;enc=windows-1253' % dejavu) # greek for font, fname, enc in [[font_1252, 'lipsum.txt', 'windows-1252'], [font_1251, 'russian-lipsum.txt', 'windows-1251'], [font_1253, 'greek-lipsum.txt', 'windows-1253']]: text_file = os.path.join(textdir, fname) do_page(font, unicode(open(text_file).read(), 'utf-8').encode(enc)) doc.finalize()
def test_main(argv=None): if 'win32' not in sys.platform: return doc = testlib.create_test_doc(argv, 'fontmatch-windows-only.pdf') doc.page_start(600, 600) canvas = doc.page().canvas() utf8 = 'P\xc5\x99\xc3\xadli\xc5\xa1 \xc5\xbelu\xc5\xa5ou\xc4\x8dk\xc3\xbd k\xc5\xaf\xc5\x88 \xc3\xbap\xc4\x9bl \xc4\x8f\xc3\xa1belsk\xc3\xa9 \xc3\xb3dy.' # utf-8 font = doc.font_load("name=Verdana; size=14; italic; enc=utf-8") canvas.text_font(font) canvas.text(20, 70, "Verdana Italic UTF-8: " + utf8) # unicode uni = utf8.decode('utf-8') canvas.text(20, 100, "Verdana Italic Unicode: " + uni) # cp 1250 text_1250 = unicode(utf8, 'utf8').encode('cp1250') font = doc.font_load("name=Verdana; size=14; italic; enc=windows-1250") canvas.text_font(font) canvas.text(20, 130, "Verdana Italic cp-1250: " + text_1250) # font mapping requires encoding; the error message should # express this testlib.must_throw_ex('requires an encoding', doc.font_load, "name=Verdana; size=14; italic") doc.page_end() doc.finalize()
def test_main(argv=None): profile = jagpdf.create_profile() profile.set("doc.topdown", "1") #profile.set("doc.compressed", "0") doc = testlib.create_test_doc(argv, 'compressed_pattern.pdf', profile) img = doc.image_load_file(image_path('logo.png')) p = doc.canvas_create() p.image(img, 0, 0) pattern = doc.tiling_pattern_load("step=109, 32", p) doc.page_start(8.3 * 72.0, 11.7 * 72.0) canvas = doc.page().canvas() canvas.color_space_pattern('f') canvas.pattern('f', pattern) canvas.rectangle(0, 0, 200, 200) canvas.rectangle(200, 200, 200, 200) canvas.path_paint('f') doc.page_end() doc.page_start(400, 400) canvas = doc.page().canvas() canvas.color_space_pattern('f') canvas.pattern('f', pattern) canvas.rectangle(0, 0, 200, 200) canvas.path_paint('f') doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'autodetectimg.pdf') imgs = [] imgs.append( doc.image_load_file(image_path('lena.jpg'), jagpdf.IMAGE_FORMAT_JPEG)) imgs.append( doc.image_load_file(image_path('logo.png'), jagpdf.IMAGE_FORMAT_PNG)) imgs.append( doc.image_load_file(image_path('lena.jpg'), jagpdf.IMAGE_FORMAT_AUTO)) imgs.append( doc.image_load_file(image_path('logo.png'), jagpdf.IMAGE_FORMAT_AUTO)) imgs.append(doc.image_load_file(image_path('lena.jpg'))) imgs.append(doc.image_load_file(image_path('logo.png'))) # tbd ~ imgspec spec1 = doc.image_definition() spec1.file_name(image_path('lena.jpg')) spec2 = doc.image_definition() spec2.file_name(image_path('logo.png')) imgs.append(doc.image_load(spec1)) imgs.append(doc.image_load(spec2)) doc.page_start(*paper) x, y = 100, 50 o = 0 for img in imgs: doc.page().canvas().image(img, x + o, y + o) o += 30 doc.page_end() doc.finalize()
def do_file(argv, name, profile=None): doc = testlib.create_test_doc(argv, name, profile) doc.page_start(*pageDim) canvas = doc.page().canvas() do_document(doc, canvas) doc.page_end() doc.finalize()
def test_main(argv=None): ## ## default text encoding: utf-8 ## font encoding: windows-1250 ## cfg = testlib.test_config() cfg.set("text.encoding", "utf-8") doc = testlib.create_test_doc(argv, "defaulttxtenc.pdf", cfg) #doc = testlib.create_test_doc("/mnt/win/c/Temp/basictxtfmt3.pdf", cfg) do_page( doc, testlib.EasyFont(doc, 'windows-1250'), testlib.long_unicode_text, "core font 1250, text utf-8") do_page( doc, testlib.EasyFontTTF(doc, 'windows-1250'), testlib.long_unicode_text, "ttf 1250, text utf-8") doc.finalize() ## ## default text encoding: windows-1250 ## font encoding: iso-8859-2 ## cfg = testlib.test_config() cfg.set("text.encoding", "windows-1250") doc = testlib.create_test_doc(argv, "defaulttxtenc2.pdf", cfg) #doc = testlib.create_test_doc("/mnt/win/c/Temp/defaulttxtenc2.pdf", cfg) do_page( doc, testlib.EasyFont(doc, 'iso-8859-2'), testlib.long_unicode_text.encode("windows-1250"), "core font iso-8859-2, windows-1250") do_page( doc, testlib.EasyFontTTF(doc, 'iso-8859-2'), testlib.long_unicode_text.encode("windows-1250"), "ttf iso-8859-2, windows-1250") doc.finalize()
def test_main(argv=None): writer = testlib.create_test_doc(argv, 'colorspaces.pdf') g_font.set_writer(writer) do_iccbased_spaces(writer) do_cie_spaces(writer) do_device_spaces(writer) do_indexed_spaces(writer) writer.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'jpeg_icc_gray.pdf') img = doc.image_load_file(os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/images/1279100_32.jpg')) doc.page_start(600, 600) c = doc.page().canvas() c.image(img, 10, 10) doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'basic.pdf') doc.page_start(5.9*72, 3.5*72) writer = doc.page().canvas() doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'clock.pdf') s_font.doc = doc doc.page_start(*s_page_dim) draw(doc) doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'basic.pdf') doc.page_start(5.9 * 72, 3.5 * 72) writer = doc.page().canvas() doc.page_end() doc.finalize()
def test_main(argv=None): profile = testlib.test_config() profile.set("info.title", "This title should be overwritten.") profile.set("doc.viewer_preferences", "DisplayDocTitle") doc = testlib.create_test_doc(argv, 'doctitle.pdf', profile) doc.page_start(100, 100) doc.title("A new title.") doc.page_end() doc.finalize()
def test_main(argv=None): profile = testlib.test_config() profile.set("doc.encryption", "standard") profile.set("doc.static_file_id", "1") profile.set("info.creation_date", "0") profile.set("info.static_producer", "1") doc = testlib.create_test_doc(argv, 'encrypted_indexed_cs.pdf', profile) do(doc) doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'piechart.pdf') font = doc.font_load('standard;name=Helvetica;size=12') font_title = doc.font_load('standard;name=Helvetica-Bold;size=28') doc.page_start(*paper) canvas = doc.page().canvas() draw_piechart(canvas, 300, 400, 250, 200, font, chart_data, 'World Population', font_title) doc.page_end() doc.finalize()
def test_main(argv=None): cfg = testlib.test_config() #cfg.set("doc.trace_level", "5") doc = testlib.create_test_doc(argv, 'annots.pdf', cfg) g_font.set_writer(doc) do_some(doc) do_goto_single_page(doc) do_goto_each_other(doc) do_outline_and_goto(doc) doc.finalize()
def test_main(argv=None): cfg = testlib.test_config() cfg.set('info.title', 'title: ' + 'p\xc5\x99\xc3\xadli\xc5\xa1') cfg.set('info.author', 'author: ' + 'p\xc5\x99\xc3\xadli\xc5\xa1') cfg.set('info.subject', 'subject: ' + 'p\xc5\x99\xc3\xadli\xc5\xa1') cfg.set('info.keywords', 'keywords: ' + 'p\xc5\x99\xc3\xadli\xc5\xa1') cfg.set('info.creator', 'creator: ' + 'p\xc5\x99\xc3\xadli\xc5\xa1') doc = testlib.create_test_doc(argv, 'infodict.pdf', cfg) doc.page_start(400, 400) doc.page_end() doc.finalize()
def do_doc(argv, docname, profile=None): doc = testlib.create_test_doc(argv, docname, profile) font = testlib.EasyFontTTF(doc) font_core = testlib.EasyFont(doc) basic(doc, font, font_core) merge(doc, font_core(12)) merge(doc, font(12)) format(doc, font_core(12), 'justify') format(doc, font_core(12), 'left') format(doc, font(12), 'justify') format(doc, font(12), 'left') doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'shading_patterns.pdf') for fn in [axial_diff2, axial_space_diff, axial_parametrized_spaces, axial_stitching, radial_shading_operator, function_multi, function_basic, axial_basic, axial_domain, axial_matrix, axial_extend, radial_basic, radial_bbox, radial_background]: doc.page_start(*dim) fn(doc, doc.page().canvas()) doc.page_end() doc.finalize() check_errors()
def test_main(argv=None): cfg = jagpdf.create_profile() cfg.set('doc.compressed', '1') doc = testlib.create_test_doc(argv, 'text_spiral.pdf', cfg) def get_angle(r, d): c = (d / 2.0) / r return math.pi - (2 * math.acos(c)) font = doc.font_load('standard;name=Helvetica;size=28') media = 500, 500 center = [c / 2.0 for c in media] doc.page_start(*media) canvas = doc.page().canvas() canvas.text_font(font) n = 70 r = 8 radius = 180 scale = 1.0 color = 0.0 # cross canvas.color('s', 0.9) canvas.move_to(0, center[1]) canvas.line_to(media[0], center[1]) canvas.move_to(center[0], 0) canvas.line_to(center[0], media[1]) canvas.path_paint('s') canvas.color('s', 1.0) #text txt_file = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/text/lipsum.txt') data = open(txt_file).read() di = 0 for j in range(r): for i in range(n): canvas.color('f', color) canvas.state_save() x = center[0] - (font.advance(data[0]) / 2.0) y = center[1] + radius canvas.translate(x, y) canvas.scale(scale, scale) canvas.text(0, 0, data[di]) canvas.state_restore() canvas.translate(*center) radius -= 0.3 scale -= 0.0015 angle = get_angle(radius, scale * font.advance(data[di])) canvas.rotate(-angle) canvas.translate(-center[0], -center[1]) color += 0.0015 di += 1 doc.page_end() doc.finalize()
def test_main(argv=None): tux_svg = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/images/tux.svg') cfg = jagpdf.create_profile() cfg.set('doc.compressed', '1') doc = testlib.create_test_doc(argv, 'tux.pdf', cfg) media = 450, 500 doc.page_start(*media) canvas = doc.page().canvas() canvas.translate(50, media[1]-50) canvas.scale(1.0, -1.0) svg.paint_to_canvas(canvas, tux_svg) doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'glyph_index.pdf') font = doc.font_load(os.path.expandvars(fspec)) font.glyph_width(74) font.glyph_width(0xfffe) doc.page_start(300, 200) canvas = doc.page().canvas() canvas.text_font(font) glyphs = [74, 79, 92, 83, 75, 86] canvas.text_glyphs(20, 20, glyphs) canvas.text_glyphs(20, 40, glyphs, [-130.0, -130.0], [2, 3]) doc.page_end() doc.finalize()
def test_main(argv=None): out_files = [ "png-test-suite15.pdf", "png-test-suite14.pdf", "png-test-suite13.pdf", "png-test-suite12.pdf" ] cfg = testlib.test_config() for i, ver in [(0, 5), (1, 4), (2, 3), (3, 2)]: cfg.set('doc.version', str(ver)) doc_writer = testlib.create_test_doc(argv, out_files[i], cfg) g_font.set_writer(doc_writer) do_suite(doc_writer) test_corrupted_files(doc_writer) doc_writer.finalize()
def test_main(argv=None): cfg = testlib.test_config() cfg.set("fonts.subset", "0") doc = testlib.create_test_doc(argv, 'nosubset.pdf', cfg) spec = 'enc=windows-1252; size=12; file=${JAG_TEST_RESOURCES_DIR}/fonts/DejaVuSansMono.ttf' fspec = os.path.expandvars(spec) fontid = doc.font_load(fspec) doc.page_start(3.5 * 72, 3.5 * 72) writer = doc.page().canvas() writer.text_font(fontid) writer.text(20, 20, "Monospaced font.") doc.page_end() doc.finalize()
def do_invalid_destinations(argv,cfg,name): invalid_dests = [\ "zoom=1.2", "mode=nonsense", "mode=XYZ;zoom=onan", "mode=FitR;left=1;top=1;bottom=1" ] for d in invalid_dests: doc = testlib.create_test_doc(argv, name, cfg) doc.page_start(10.0*72, 10.0*72) doc.outline().item("~", d) doc.page_end() testlib.must_throw(doc.finalize) doc = None syntax_err_dests = ["oom=1.2"] doc = testlib.create_test_doc(argv, name, cfg) doc.page_start(10.0*72, 10.0*72) for d in syntax_err_dests: testlib.must_throw(doc.outline().item, "~", d) doc.page_end() doc.finalize()
def test_main(argv=None): cfg = testlib.test_config() cfg.set('images.default_dpi', '92') doc_writer = testlib.create_test_doc(argv, 'img-jpeg.pdf', cfg) g_font.set_writer(doc_writer) do_jfif_96(doc_writer) do_exif_little_endian_srgb(doc_writer) do_exif_little_endian(doc_writer) do_lenghty_icc(doc_writer) do_jpeg_cmyk(doc_writer) do_simple_icc(doc_writer) do_basic_page(doc_writer) doc_writer.finalize()
def test_main(argv=None): cfg = testlib.test_config() cfg.set('images.default_dpi', '92') doc_writer = testlib.create_test_doc(argv, 'img-jpeg.pdf',cfg) g_font.set_writer(doc_writer) do_jfif_96(doc_writer) do_exif_little_endian_srgb(doc_writer) do_exif_little_endian(doc_writer) do_lenghty_icc(doc_writer) do_jpeg_cmyk(doc_writer) do_simple_icc(doc_writer) do_basic_page(doc_writer) doc_writer.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'shading_patterns.pdf') for fn in [ axial_diff2, axial_space_diff, axial_parametrized_spaces, axial_stitching, radial_shading_operator, function_multi, function_basic, axial_basic, axial_domain, axial_matrix, axial_extend, radial_basic, radial_bbox, radial_background ]: doc.page_start(*dim) fn(doc, doc.page().canvas()) doc.page_end() doc.finalize() check_errors()
def do_invalid_destinations(argv, cfg, name): invalid_dests = [\ "zoom=1.2", "mode=nonsense", "mode=XYZ;zoom=onan", "mode=FitR;left=1;top=1;bottom=1" ] for d in invalid_dests: doc = testlib.create_test_doc(argv, name, cfg) doc.page_start(10.0 * 72, 10.0 * 72) doc.outline().item("~", d) doc.page_end() testlib.must_throw(doc.finalize) doc = None syntax_err_dests = ["oom=1.2"] doc = testlib.create_test_doc(argv, name, cfg) doc.page_start(10.0 * 72, 10.0 * 72) for d in syntax_err_dests: testlib.must_throw(doc.outline().item, "~", d) doc.page_end() doc.finalize()
def test_main(argv=None): tux_svg = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/images/tux.svg') cfg = jagpdf.create_profile() cfg.set('doc.compressed', '1') doc = testlib.create_test_doc(argv, 'tux.pdf', cfg) media = 450, 500 doc.page_start(*media) canvas = doc.page().canvas() canvas.translate(50, media[1] - 50) canvas.scale(1.0, -1.0) svg.paint_to_canvas(canvas, tux_svg) doc.page_end() doc.finalize()
def test_main(argv=None): cfg = testlib.test_config() cfg.set("fonts.subset", "0") doc = testlib.create_test_doc(argv, 'nosubset.pdf', cfg) spec = 'enc=windows-1252; size=12; file=${JAG_TEST_RESOURCES_DIR}/fonts/DejaVuSansMono.ttf' fspec = os.path.expandvars(spec) fontid = doc.font_load(fspec) doc.page_start(3.5*72, 3.5*72) writer = doc.page().canvas() writer.text_font(fontid) writer.text(20, 20, "Monospaced font.") doc.page_end() doc.finalize()
def test_main(argv=None): out_files = ["png-test-suite15.pdf", "png-test-suite14.pdf", "png-test-suite13.pdf", "png-test-suite12.pdf"] cfg = testlib.test_config() for i, ver in [(0,5), (1,4), (2,3), (3,2)]: cfg.set('doc.version', str(ver)) doc_writer = testlib.create_test_doc(argv, out_files[i], cfg) g_font.set_writer(doc_writer) do_suite(doc_writer) test_corrupted_files(doc_writer) doc_writer.finalize()
def test_main(argv=None): cfg = jagpdf.create_profile() cfg.set("doc.compressed", "1") doc = testlib.create_test_doc(argv, 'transparent_cubes.pdf', cfg) img = doc.image_load_file(os.path.join(g_png_dir, 'cubes_transparent.png')) doc.page_start(*media) canvas = doc.page().canvas() canvas.color_space_pattern('f') canvas.pattern('f', get_pattern(doc)) canvas.rectangle(0, 0, *media) canvas.path_paint('f') canvas.image(img, *image_pos(img)) doc.page_end() doc.finalize()
def test_main(argv=None): cfg = jagpdf.create_profile() cfg.set('doc.compressed', '1') doc = testlib.create_test_doc(argv, 'text_spiral.pdf', cfg) def get_angle(r, d): c = (d / 2.0) / r return math.pi - (2 * math.acos(c)) font = doc.font_load('standard;name=Helvetica;size=28') media = 500, 500 center = [c/2.0 for c in media] doc.page_start(*media) canvas = doc.page().canvas() canvas.text_font(font) n = 70 r = 8 radius = 180 scale = 1.0 color = 0.0 # cross canvas.color('s', 0.9) canvas.move_to(0, center[1]) canvas.line_to(media[0], center[1]) canvas.move_to(center[0], 0) canvas.line_to(center[0], media[1]) canvas.path_paint('s') canvas.color('s', 1.0) #text txt_file = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/text/lipsum.txt') data = open(txt_file).read() di = 0 for j in range(r): for i in range(n): canvas.color('f', color) canvas.state_save() x = center[0] - (font.advance(data[0])/2.0) y = center[1] + radius canvas.translate(x, y) canvas.scale(scale, scale) canvas.text(0, 0, data[di]) canvas.state_restore() canvas.translate(*center) radius -= 0.3 scale -= 0.0015 angle = get_angle(radius, scale * font.advance(data[di])) canvas.rotate(-angle) canvas.translate(-center[0], -center[1]) color += 0.0015 di += 1 doc.page_end() doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, 'symbolswidth.pdf') sym_font = doc.font_load("standard; name=ZapfDingbats; size=15") doc.page_start(500, 100) canvas = doc.page().canvas() s = "".join(chr(i) for i in range(33,67)) w = sym_font.advance(s) canvas.text_font(sym_font) canvas.color("s", 0.5) canvas.rectangle(10, 10, w, 80) canvas.path_paint("s") canvas.text(10, 30, s) doc.page_end() doc.finalize()
def do_generic_bookmarks(argv, cfg, name): rl = 72 rt = 9*72 rr = 72+144 doc = testlib.create_test_doc(argv, name, cfg) outline = doc.outline() doc.page_start(10.0*72, 10.0*72) page = doc.page().canvas() page.rectangle(rl, 7*72, 144, 144) page.path_paint('s') page.rectangle(72+36, 7*72+36, 72, 72) page.path_paint('s') outline.item("Zoom 100%", "mode=XYZ;zoom=1.0") outline.item("Zoom 250%", "mode=XYZ;zoom=2.5") outline.item("Zoom 25%", "mode=XYZ;zoom=.25") outline.item("Rect top-left, retain zoom", "mode=XYZ;left=%lf;top=%lf" % (rl,rt) ) outline.item("Fit width, position rectangle top", "mode=FitH;top=%lf" % rt) outline.item("Fit width, retain y", "mode=FitH") outline.item("Fit height, position rectangle right", "mode=FitV;left=%lf" % rr) outline.item("Fit height, retain x", "mode=FitV") outline.item("Fit inner rectangle", "mode=FitR;left=%lf;top=%lf;bottom=%lf;right=%lf" %\ (72+36, 7*72+36+72, 7*72+36, 72+36+72 )) outline.item("Fit page", "mode=Fit") outline.item("Fit page bbox", "mode=FitB") outline.item("Fit bbox width, retain y", "mode=FitBH") outline.item("Fit bbox width, top 1/2 rect", "mode=FitBH;top=%lf" % (rt-72)) outline.item("Fit bbox height, retain x", "mode=FitBV") outline.item("Fit bbox height, left 1/2 rect", "mode=FitBV;left=%lf" % (rl+72)) outline.item("", "mode=XYZ;zoom=1.5") outline.item("^^ an empty bookmark that zooms to 150%", "mode=XYZ;zoom=1.0") doc.page_end() doc.finalize()
def test_main(argv=None): ## ## default text encoding: utf-8 ## font encoding: windows-1250 ## cfg = testlib.test_config() cfg.set("text.encoding", "utf-8") doc = testlib.create_test_doc(argv, "defaulttxtenc.pdf", cfg) #doc = testlib.create_test_doc("/mnt/win/c/Temp/basictxtfmt3.pdf", cfg) do_page(doc, testlib.EasyFont(doc, 'windows-1250'), testlib.long_unicode_text, "core font 1250, text utf-8") do_page(doc, testlib.EasyFontTTF(doc, 'windows-1250'), testlib.long_unicode_text, "ttf 1250, text utf-8") doc.finalize() ## ## default text encoding: windows-1250 ## font encoding: iso-8859-2 ## cfg = testlib.test_config() cfg.set("text.encoding", "windows-1250") doc = testlib.create_test_doc(argv, "defaulttxtenc2.pdf", cfg) #doc = testlib.create_test_doc("/mnt/win/c/Temp/defaulttxtenc2.pdf", cfg) do_page(doc, testlib.EasyFont(doc, 'iso-8859-2'), testlib.long_unicode_text.encode("windows-1250"), "core font iso-8859-2, windows-1250") do_page(doc, testlib.EasyFontTTF(doc, 'iso-8859-2'), testlib.long_unicode_text.encode("windows-1250"), "ttf iso-8859-2, windows-1250") doc.finalize()
def test_main(argv=None): doc = testlib.create_test_doc(argv, "canvas.pdf") fnt = testlib.EasyFont(doc) # create a canvas # canvas = doc.create_canvas() # canvas.rectangle(36, 36, 72, 72) # canvas.path_paint("s") for i in range(5): doc.page_start(144, 144) # doc.page().add_canvas(0, 0, canvas) pg_canvas = doc.page().canvas() pg_canvas.text_font(fnt()) pg_canvas.text(72, 72, "page %i" % i) doc.page_end() doc.finalize()
def graphics_state(argv): # do not send unnecessary set font operators profile = testlib.test_config() profile.set("doc.compressed", "0") doc = testlib.create_test_doc(argv, 'adobefont_grstate.pdf', profile) fnt = doc.font_load("standard; name=Helvetica; size=12; enc=utf-8") doc.page_start(200, 200) canvas = doc.page().canvas() canvas.text_font(fnt) canvas.text_start(20,50) canvas.text('first') canvas.text(' second') canvas.text_end() doc.page_end() doc.finalize()
def graphics_state(argv): # do not send unnecessary set font operators profile = testlib.test_config() profile.set("doc.compressed", "0") doc = testlib.create_test_doc(argv, 'adobefont_grstate.pdf', profile) fnt = doc.font_load("standard; name=Helvetica; size=12; enc=utf-8") doc.page_start(200, 200) canvas = doc.page().canvas() canvas.text_font(fnt) canvas.text_start(20, 50) canvas.text('first') canvas.text(' second') canvas.text_end() doc.page_end() doc.finalize()
def basic_test(argv): lines = [ "Jag kan äta glas utan att skada mig.", "Rødgrød med mælk og fløde på.", "Příliš žluťoučký kůň úpěl ďábelské ódy.", "Single encoding." ] profile = testlib.test_config() profile.set("doc.trace_level", "2") doc = testlib.create_test_doc(argv, 'adobefont_unicode.pdf', profile) fnt = doc.font_load("standard; name=Helvetica; size=12; enc=utf-8") doc.page_start(500, 500) canvas = doc.page().canvas() canvas.text_font(fnt) # n texts for line, y in zip(lines, [110, 90, 70, 50]): canvas.text(50, y, line) # single multiline text canvas.text_start(50, 150) for line in lines: canvas.text(line) canvas.text_translate_line(0, 15) canvas.text_end() # all in one line fnt_8 = doc.font_load("standard; name=Helvetica; size=8; enc=utf-8") canvas.text_font(fnt_8) joined = " ".join(lines) rect_w = fnt_8.advance(joined) # enable the following lines to see BANG canvas.state_save() canvas.color('s', 0.5) canvas.rectangle(10, 250, rect_w, 100) canvas.path_paint('s') canvas.state_restore() canvas.text(10, 300, joined) # full justification t = unicode(lines[1] + ' ' + lines[2], 'utf-8') w = fnt_8.advance(t) spaces = [i for i in range(len(t)) if t[i] == u' '] nr_spaces = len(spaces) padd = -(1000 / fnt_8.size()) * (rect_w - w) / nr_spaces positions = [padd for i in range(nr_spaces)] canvas.text(10, 320, t, positions, spaces) # canvas.text(10, 400, "Cyrillic >\xd0\x96\xd1\x86\xd0\xba<") # check_font_metrics(doc) doc.page_end() doc.finalize()
def test_main(argv=None): writer = testlib.create_test_doc(argv, 'grstate.pdf') writer.page_start(2 * 72, 300) page = writer.page().canvas() page.alpha("s", 0.5) page.circle(72, 72, 36) page.path_paint("s") page.alpha("s", 0.6) page.circle(72, 120, 36) page.path_paint("s") page.alpha("s", 0.6) page.circle(72, 162, 36) page.path_paint("s") writer.page_end() writer.finalize()
def do_document(argv, name, cfg_opts): cfg = testlib.test_config() for k, v in cfg_opts.iteritems(): cfg.set(k, v) doc = testlib.create_test_doc(argv, name + '.pdf', cfg) doc.page_start(400, 400) canvas = doc.page().canvas() canvas.text_start(20, 380) l = [(k, v) for k, v in cfg_opts.iteritems()] l.sort() for k, v in l: canvas.text("%s : %s" % (k, v)) canvas.text_translate_line(0, -15) canvas.text_end() doc.page_end() doc.finalize()
def test_main(argv=None): cfg = testlib.test_config() # normal functionality cfg.set('doc.version', "3") writer = testlib.create_test_doc(argv, 'color-space-str-def.pdf', cfg) g_font.set_writer(writer) do_page(writer) writer.finalize() # expected failures cfg.set('doc.version', "2") writer = jagpdf.create_stream(testlib.NoopStreamOut(), cfg) g_font.set_writer(writer) do_failures_v2(writer) writer.finalize()