Exemple #1
0
def do_it():
    prof = jagpdf.create_profile_from_string(s_profile)
    stream = testlib.NoopStreamOut()
    doc = jagpdf.create_stream(stream)
    doc.page_start(5.9*72, 3.5*72)
    canvas = doc.page().canvas()
    # meat
    img = doc.image_load_file(s_jpeg_file)
    canvas.image(img, 50, 50)
    canvas.text(10, 10, 200 * 'a')
    canvas.move_to(10, 10)
    canvas.line_to(20, 20)
    canvas.path_paint("fs")
    font_ttf = testlib.EasyFontTTF(doc)(10)
    font_core = testlib.EasyFont(doc)(10)
    canvas.text_font(font_ttf)
    canvas.text(10, 10, 50 * 'x')
    font_ttf.advance('abcdefghijklmnopqrstuvwxyz')
    canvas.text_font(font_core)
    canvas.text(10, 10, 50 * 'y')
    font_core.advance('abcdefghijklmnopqrstuvwxyz')
    # finalize
    doc.page_end()
    doc.finalize()
    # touch the result
    s = 0
    for b in stream.content():
        s = s + ord(b)
Exemple #2
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()
Exemple #3
0
def create_tiling_pattern_inner(doc):
    fnt = testlib.EasyFont(doc, 'utf-8')
    pc = doc.canvas_create()
    pc.color_space("f", jagpdf.CS_DEVICE_GRAY)
    pc.color("f", 0.0)
    pc.text_font(fnt(8))
    pc.text_start(2, 9)
    pc.text("inner #1")
    pc.text_translate_line(0, 9)
    pc.text("inner #2")
    pc.text_end()
    spec = "step=50, 25"
    return doc.tiling_pattern_load(spec, pc)
Exemple #4
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()
Exemple #5
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()
Exemple #6
0
def do_page(writer):
    writer.page_start(3*72, 80)
    page = writer.page().canvas()
    font = testlib.EasyFont(writer)
    page.text_font(font())

    page.color_space("f", jagpdf.CS_DEVICE_RGB)
    page.color("f", .7, 0, 0)
    page.text(20, 20, "This text should be red!")
    page.state_save()
    page.color_space("f", jagpdf.CS_DEVICE_CMYK)
    page.color("f", 1, 1, 0, .45)
    page.text(20, 40, "This text should be dark blue!")
    page.state_restore()
    page.text(20, 60, "This text should be red again!")
    writer.page_end()
Exemple #7
0
def test_main(argv=None):
    doc = testlib.create_test_doc(argv, "basictxtfmt.pdf")
    g_fnt_1250 = testlib.EasyFont(doc, 'windows-1250')
    g_fnt_ttf_utf8 = testlib.EasyFontTTF(doc, 'utf-8')
    g_fnt_utf8 = doc.font_load("standard; name=Helvetica; size=12; enc=utf-8")
    txt = testlib.long_text
    utxt = testlib.long_unicode_text
    do_page(doc, utxt, g_fnt_ttf_utf8(12), "ttf pyunicode", align="justify")
    do_page(doc, txt, g_fnt_1250(12), "core cp1250")
    do_page(doc,
            txt,
            g_fnt_1250(12),
            "core cp1250 - justified",
            align="justify")
    do_page(doc,
            txt,
            g_fnt_1250(12),
            "core cp1250 - right align",
            align="right")
    do_page(doc,
            txt,
            g_fnt_1250(12),
            "core cp1250 - center align",
            align="center")
    do_page(doc,
            txt,
            g_fnt_1250(12),
            "core cp1250 - bottomup",
            direction='bottomup')
    do_page(doc,
            utxt.encode('windows-1250'),
            g_fnt_1250(12),
            "core cp1250 (from unicode)",
            baseline="top",
            align="justify")
    do_page(doc,
            utxt,
            g_fnt_utf8,
            "core unicode",
            baseline="top",
            align="justify")

    doc.finalize()
# Copyright (c) 2005-2009 Jaroslav Gresula
#
# Distributed under the MIT license (See accompanying file
# LICENSE.txt or copy at http://jagpdf.org/LICENSE.txt)
#

import os
import jag.testlib as testlib
import jag.imagemanip as imagemanip
import jagpdf

g_image_dir = os.path.expandvars('${JAG_TEST_RESOURCES_DIR}/images')
g_jpeg_file = os.path.join(g_image_dir, "lena.jpg")
g_png_file = os.path.join(g_image_dir, "lena_alpha.png")
g_font = testlib.EasyFont()


def get_pattern(doc):
    pcell = doc.canvas_create()
    pcell.color_space('f', jagpdf.CS_DEVICE_GRAY)
    pcell.color('f', 0.8)
    pcell.rectangle(0, 0, 10, 10)
    pcell.rectangle(10, 10, 10, 10)
    pcell.path_paint('f')
    return doc.tiling_pattern_load('step=20, 20', pcell)


def paint_background(doc, media):
    canvas = doc.page().canvas()
    canvas.state_save()
    canvas.color_space_pattern('f')
Exemple #9
0
def test_main(argv=None):
    test_faults()
    # 'save state' and 'restore state' operators should not be used within
    # text objects. Regarding the graphics state, only 'General graphics
    # state' operators are allowed.

    doc = testlib.create_test_doc(argv, "textstate.pdf")
    #doc = testlib.create_test_doc("/mnt/win/c/Temp/textstate.pdf")
    fnt = testlib.EasyFont(doc)

    paper = testlib.paperA5
    doc.page_start(*paper)
    canvas = doc.page().canvas()

    fid = fnt(32)
    canvas.text_font(fid)
    linespacing = fid.height()
    canvas.text_start(18, 36)

    def show_text_ex(canvas, text, action, *args):
        action(*args)
        canvas.text(text)
        canvas.text_translate_line(0, linespacing)

    #char spacing
    canvas.text("Character spacing normal")
    canvas.text_translate_line(0, linespacing)
    show_text_ex(canvas, "Character spacing: 1", canvas.text_character_spacing,
                 1)
    canvas.text_character_spacing(0)

    #horizontal scaling
    canvas.text("Horizontal scaling 100%")
    canvas.text_translate_line(0, linespacing)
    show_text_ex(canvas, "Horizontal scaling 50%",
                 canvas.text_horizontal_scaling, 50)
    show_text_ex(canvas, "Horizontal scaling 110%",
                 canvas.text_horizontal_scaling, 110)
    canvas.text_horizontal_scaling(100)

    # rise
    canvas.text_translate_line(0, linespacing)
    canvas.text("Rise ")
    canvas.text_rise(10)
    canvas.text("10")
    canvas.text_rise(-10)
    canvas.text("-10")

    canvas.text_end()
    doc.page_end()

    # text rendering modes
    doc.page_start(*paper)
    canvas = doc.page().canvas()

    canvas.color_space("s", jagpdf.CS_DEVICE_RGB)
    canvas.color("s", 0.0, 0.0, 1.0)

    canvas.translate(18, 36)
    canvas.text_font(fid)

    def clipped_obj(canvas):
        canvas.state_save()
        canvas.color_space("s", jagpdf.CS_DEVICE_RGB)
        canvas.color("s", 1.0, 0.0, 0.0)
        for i in range(1, int(paper[1]), 3):
            canvas.move_to(0, i)
            canvas.line_to(paper[0], i)
        canvas.path_paint("s")
        canvas.state_restore()

    modes = [("f", "fill", None), ("fs", "fill stroke", None),
             ("s", "stroke", None), ("i", "invisible", None),
             ("fc", "fill clip", clipped_obj),
             ("fsc", "fill stroke clip", clipped_obj),
             ("c", "clip", clipped_obj), ("sc", "stroke clip", clipped_obj)]
    curr_y = 0
    for mode, text, action in modes:
        canvas.state_save()
        canvas.text_start(0, curr_y)
        canvas.text_rendering_mode(mode)
        canvas.text(text)
        canvas.text_end()
        canvas.translate(0, -curr_y)
        if action:
            clipped_obj(canvas)
        canvas.state_restore()
        curr_y += linespacing

    # other tests and fault injection
    testlib.must_throw(canvas.text_rendering_mode, "a")
    testlib.must_throw(canvas.text_rendering_mode, "ic")
    canvas.text_rendering_mode("fFsScC")
    canvas.text_rendering_mode("iI")

    doc.page_end()
    doc.finalize()