Пример #1
0
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()
Пример #2
0
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)
Пример #3
0
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()
Пример #4
0
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()
Пример #5
0
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()
Пример #6
0
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)
Пример #7
0
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()
Пример #8
0
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()
Пример #9
0
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()
Пример #10
0
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()
Пример #11
0
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()
Пример #12
0
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()
Пример #13
0
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()
Пример #14
0
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()
Пример #15
0
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()
Пример #16
0
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()
Пример #17
0
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()
Пример #18
0
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()
Пример #19
0
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()
Пример #20
0
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()
Пример #21
0
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()
Пример #22
0
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()
Пример #23
0
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()
Пример #24
0
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()
Пример #25
0
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()
Пример #26
0
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()
Пример #27
0
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()
Пример #28
0
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()
Пример #29
0
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()
Пример #30
0
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()
Пример #31
0
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()
Пример #32
0
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()
Пример #33
0
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()
Пример #34
0
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()
Пример #35
0
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()
Пример #36
0
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()
Пример #37
0
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()
Пример #38
0
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()
Пример #39
0
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()
Пример #40
0
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()
Пример #41
0
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()
Пример #42
0
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()
Пример #43
0
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()
Пример #44
0
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()
Пример #45
0
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()
Пример #46
0
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()
Пример #47
0
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()
Пример #48
0
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()
Пример #49
0
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()
Пример #50
0
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()
Пример #51
0
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()
Пример #52
0
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()
Пример #53
0
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()
Пример #54
0
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()