当前位置: 首页>>代码示例>>Python>>正文


Python pdfmetrics.registerFont方法代码示例

本文整理汇总了Python中reportlab.pdfbase.pdfmetrics.registerFont方法的典型用法代码示例。如果您正苦于以下问题:Python pdfmetrics.registerFont方法的具体用法?Python pdfmetrics.registerFont怎么用?Python pdfmetrics.registerFont使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在reportlab.pdfbase.pdfmetrics的用法示例。


在下文中一共展示了pdfmetrics.registerFont方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def __init__(self, faceName='Helvetica', encodingName='WinAnsiEncoding',
                 charsPerRow=16, boxSize=14, hex=1):
        self.codePoints = 256
        self.faceName = faceName
        self.encodingName = encodingName
        self.fontName = self.faceName + '-' + self.encodingName
        self.charsPerRow = charsPerRow
        self.boxSize = boxSize
        self.hex = hex
        self.rowLabels = None
        pdfmetrics.registerFont(pdfmetrics.Font(self.fontName,
                                                self.faceName,
                                                self.encodingName)
                                )

        self.calcLayout() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:18,代码来源:codecharts.py

示例2: set_font

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def set_font(self, font):
        if font.path is None:
            msg = "Could not detect fonts, use --font opiton\n"
            raise RuntimeError(msg)

        if font.path not in self.fonts:
            path, index = parse_fontpath(font.path)
            if index:
                ttfont = TTFont(font.path, path, subfontIndex=index)
            else:
                ttfont = TTFont(font.path, path)
            pdfmetrics.registerFont(ttfont)

            self.fonts[font.path] = ttfont

        self.canvas.setFont(font.path, font.size) 
开发者ID:blockdiag,项目名称:blockdiag,代码行数:18,代码来源:pdf.py

示例3: _media_setup

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def _media_setup(self):
        "Get all of the media needed for the letterhead"
        # fonts and logo
        ttfFile = os.path.join(media_path, 'BemboMTPro-Regular.ttf')
        pdfmetrics.registerFont(TTFont("BemboMTPro", ttfFile))
        ttfFile = os.path.join(media_path, 'BemboMTPro-Bold.ttf')
        pdfmetrics.registerFont(TTFont("BemboMTPro-Bold", ttfFile))
        ttfFile = os.path.join(media_path, 'DINPro-Regular.ttf')
        pdfmetrics.registerFont(TTFont("DINPro", ttfFile))
        ttfFile = os.path.join(media_path, 'DINPro-Bold.ttf')
        pdfmetrics.registerFont(TTFont("DINPro-Bold", ttfFile))

        # graphic standards colours
        self.sfu_red = CMYKColor(0, 1, 0.79, 0.2)
        self.sfu_grey = CMYKColor(0, 0, 0.15, 0.82)
        self.sfu_blue = CMYKColor(1, 0.68, 0, 0.12)

        # translate digits to old-style numerals (in their Bembo character positions)
        self.digit_trans = {}
        for d in range(10):
            self.digit_trans[48+d] = chr(0xF643 + d)

        self.sc_trans_bembo = {}
        # translate letters to smallcaps characters (in their [strange] Bembo character positions)
        for d in range(26):
            if d<3: # A-C
                offset = d
            elif d<4: # D
                offset = d+2
            elif d<21: # E-U
                offset = d+3
            else: # V-Z
                offset = d+4
            self.sc_trans_bembo[65+d] = chr(0xE004 + offset)
            self.sc_trans_bembo[97+d] = chr(0xE004 + offset) 
开发者ID:sfu-fas,项目名称:coursys,代码行数:37,代码来源:letters.py

示例4: __init__

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def __init__(self, filename, **kw):
         self.allowSplitting = 1
         apply(SimpleDocTemplate.__init__, (self, filename), kw)
         pdfmetrics.registerFont(TTFont('arialuni', 'ARIALUNI.TTF'))

# Entries to the table of contents can be done either manually by
# calling the addEntry method on the TableOfContents object or automatically
# by sending a 'TOCEntry' notification in the afterFlowable method of
# the DocTemplate you are using. The data to be passed to notify is a list
# of three or four items countaining a level number, the entry text, the page
# number and an optional destination key which the entry should point to.
# This list will usually be created in a document template's method like
# afterFlowable(), making notification calls using the notify() method
# with appropriate data. 
开发者ID:awemulya,项目名称:kobo-predict,代码行数:16,代码来源:generatereport.py

示例5: load_font

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def load_font(self):
        cc = configer.Config()

        freeserif_font = cc.get_font_path()
        pdfmetrics.registerFont(TTFont("freeserif", freeserif_font)) 
开发者ID:yarox24,项目名称:attack_monitor,代码行数:7,代码来源:reporting.py

示例6: _setup

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def _setup():
    from reportlab.pdfbase import pdfmetrics, ttfonts
    pdfmetrics.registerFont(ttfonts.TTFont("Vera", "Vera.ttf"))
    pdfmetrics.registerFont(ttfonts.TTFont("VeraBd", "VeraBd.ttf"))
    pdfmetrics.registerFont(ttfonts.TTFont("VeraIt", "VeraIt.ttf"))
    pdfmetrics.registerFont(ttfonts.TTFont("VeraBI", "VeraBI.ttf"))
    F = ['Times-Roman','Courier','Helvetica','Vera', 'VeraBd', 'VeraIt', 'VeraBI']
    if sys.platform=='win32':
        for name, ttf in [
            ('Adventurer Light SF','Advlit.ttf'),('ArialMS','ARIAL.TTF'),
            ('Arial Unicode MS', 'ARIALUNI.TTF'),
            ('Book Antiqua','BKANT.TTF'),
            ('Century Gothic','GOTHIC.TTF'),
            ('Comic Sans MS', 'COMIC.TTF'),
            ('Elementary Heavy SF Bold','Vwagh.ttf'),
            ('Firenze SF','flot.ttf'),
            ('Garamond','GARA.TTF'),
            ('Jagger','Rols.ttf'),
            ('Monotype Corsiva','MTCORSVA.TTF'),
            ('Seabird SF','seag.ttf'),
            ('Tahoma','TAHOMA.TTF'),
            ('VerdanaMS','VERDANA.TTF'),
            ]:
            for D in ('c:\WINNT','c:\Windows'):
                fn = os.path.join(D,'Fonts',ttf)
                if os.path.isfile(fn):
                    try:
                        f = ttfonts.TTFont(name, fn)
                        pdfmetrics.registerFont(f)
                        F.append(name)
                    except:
                        pass
    return F 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:35,代码来源:testshapes.py

示例7: try_load

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def try_load(self, default=None):
        try:
            pdfmetrics.registerFont(TTFont(self.name, self.filename))
            return self.name
        except:
            return default 
开发者ID:bpsmith,项目名称:tia,代码行数:8,代码来源:font.py

示例8: prepare_fonts

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def prepare_fonts():
    global PREPARED_FONTS
    if PREPARED_FONTS:
        return
    pdfmetrics.registerFont(TTFont('Montserrat', font('Montserrat-Regular.ttf')))
    pdfmetrics.registerFont(TTFont('MontserratBold', font('Montserrat-Bold.ttf')))
    pdfmetrics.registerFont(TTFont('MontserratItalic', font('Montserrat-Italic.ttf')))
    pdfmetrics.registerFont(TTFont('MontserratBoldItalic', font('Montserrat-BoldItalic.ttf')))
    pdfmetrics.registerFontFamily(
        'Montserrat',
        normal='Montserrat',
        bold='MontserratBold',
        italic='MontserratItalic',
        boldItalic='MontserratBoldItalic'
    )

    pdfmetrics.registerFont(TTFont('NotoSans', font('NotoSans-Regular.ttf')))
    pdfmetrics.registerFont(TTFont('NotoSansBold', font('NotoSans-Bold.ttf')))
    pdfmetrics.registerFont(TTFont('NotoSansItalic', font('NotoSans-Italic.ttf')))
    pdfmetrics.registerFont(TTFont('NotoSansBoldItalic', font('NotoSans-BoldItalic.ttf')))
    pdfmetrics.registerFontFamily(
        'NotoSans',
        normal='NotoSans',
        bold='NotoSansBold',
        italic='NotoSansItalic',
        boldItalic='NotoSansBoldItalic'
    )
    PREPARED_FONTS = True 
开发者ID:OpenTechFund,项目名称:hypha,代码行数:30,代码来源:pdfs.py

示例9: pdf_write

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def pdf_write(generated_pdf_path):
    """
    生成pdf
    :return:
    """
    # 增加的字体,支持中文显示,需要自行下载支持中文的字体
    font_path = current_app.config.get("SIM_SUN")

    pdfmetrics.registerFont(TTFont('SimSun', os.path.join(font_path, 'SimSun.ttf')))
    styles = getSampleStyleSheet()
    styles.add(ParagraphStyle(fontName='SimSun', name='SimSun', leading=20, fontSize=12))
    data = list()
    # 添加一段文字
    paragraph = paragraph_model("测试添加一段文字")
    data.append(paragraph)
    data.append(PageBreak())  # 分页标识
    # 添加table和图片
    table = table_model()
    data.append(table)
    data.append(PageBreak())  # 分页标识
    img = image_model()
    data.append(img)

    # 设置生成pdf的名字和编剧
    pdf = SimpleDocTemplate(generated_pdf_path, rightMargin=0, leftMargin=0, topMargin=40, bottomMargin=0, )
    # 设置pdf每页的大小
    pdf.pagesize = (9 * inch, 10 * inch)

    pdf.multiBuild(data)
    return generated_pdf_path 
开发者ID:qzq1111,项目名称:flask-restful-example,代码行数:32,代码来源:report.py

示例10: test

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def test():
    # only works if you have cirrect encodings on your box!
    c = Canvas('test_japanese.pdf')
    c.setFont('Helvetica', 30)
    c.drawString(100,700, 'Japanese Font Support')

    pdfmetrics.registerFont(CIDFont('HeiseiMin-W3','90ms-RKSJ-H'))
    pdfmetrics.registerFont(CIDFont('HeiseiKakuGo-W5','90ms-RKSJ-H'))


    # the two typefaces
    c.setFont('HeiseiMin-W3-90ms-RKSJ-H', 16)
    # this says "This is HeiseiMincho" in shift-JIS.  Not all our readers
    # have a Japanese PC, so I escaped it. On a Japanese-capable
    # system, print the string to see Kanji
    message1 = '\202\261\202\352\202\315\225\275\220\254\226\276\222\251\202\305\202\267\201B'
    c.drawString(100, 675, message1)
    c.save()
    print('saved test_japanese.pdf')


##    print 'CMAP_DIR = ', CMAP_DIR
##    tf1 = CIDTypeFace('HeiseiMin-W3')
##    print 'ascent = ',tf1.ascent
##    print 'descent = ',tf1.descent
##    for cid in [1,2,3,4,5,18,19,28,231,1742]:
##        print 'width of cid %d = %d' % (cid, tf1.getCharWidth(cid))

    encName = '90ms-RKSJ-H'
    enc = CIDEncoding(encName)
    print(message1, '->', enc.translate(message1))

    f = CIDFont('HeiseiMin-W3','90ms-RKSJ-H')
    print('width = %0.2f' % f.stringWidth(message1, 10))


    #testing all encodings
##    import time
##    started = time.time()
##    import glob
##    for encName in _cidfontdata.allowedEncodings:
##    #encName = '90ms-RKSJ-H'
##        enc = CIDEncoding(encName)
##        print 'encoding %s:' % encName
##        print '    codeSpaceRanges = %s' % enc._codeSpaceRanges
##        print '    notDefRanges = %s' % enc._notDefRanges
##        print '    mapping size = %d' % len(enc._cmap)
##    finished = time.time()
##    print 'constructed all encodings in %0.2f seconds' % (finished - started) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:51,代码来源:cidfonts.py

示例11: __init__

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def __init__(self, args, margins):
        pageWidth, pageHeight = reportlab.lib.pagesizes.__dict__[args.media]
        if args.landscape:
            pageWidth, pageHeight = reportlab.lib.pagesizes.landscape(
                (pageWidth, pageHeight))
        self.author = args.author
        self.title = args.title
        self.keywords = args.keywords
        self.subject = args.subject
        self.canvas = Canvas(args.output, pagesize=(pageWidth, pageHeight))
        self.canvas.setCreator(self.appName)
        if len(args.author) > 0:
            self.canvas.setAuthor(args.author)
        if len(args.title) > 0:
            self.canvas.setTitle(args.title)
        if len(args.subject) > 0:
            self.canvas.setSubject(args.subject)
        if len(args.keywords) > 0:
            self.canvas.setKeywords(args.keywords)
        self.fontSize = args.font_size
        if args.font not in ('Courier'):
            self.font = 'myFont'
            pdfmetrics.registerFont(TTFont('myFont', args.font))
        else:
            self.font = args.font
        self.kerning = args.kerning
        self.margins = margins
        self.leading = (args.extra_vertical_space + 1.2) * self.fontSize
        self.linesPerPage = int(
            (self.leading + pageHeight
             - margins.top - margins.bottom - self.fontSize) / self.leading)
        self.lppLen = len(str(self.linesPerPage))
        fontWidth = self.canvas.stringWidth(
            ".", fontName=self.font, fontSize=self.fontSize)
        self.lineNumbering = args.line_numbers
        if self.lineNumbering:
            margins.adjustLeft(fontWidth * (self.lppLen + 2))
        contentWidth = pageWidth - margins.left - margins.right
        self.charsPerLine = int(
            (contentWidth + self.kerning) / (fontWidth + self.kerning))
        self.top = pageHeight - margins.top - self.fontSize
        self.filename = args.filename
        self.verbose = not args.quiet
        self.breakOnBlanks = args.break_on_blanks
        self.encoding = args.encoding
        self.pageNumbering = args.page_numbers
        if self.pageNumbering:
            self.pageNumberPlacement = \
               (pageWidth / 2, margins.bottom / 2) 
开发者ID:baruchel,项目名称:txt2pdf,代码行数:51,代码来源:txt2pdf.py

示例12: test

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def test():
    # only works if you have cirrect encodings on your box!
    c = Canvas('test_japanese.pdf')
    c.setFont('Helvetica', 30)
    c.drawString(100,700, 'Japanese Font Support')

    pdfmetrics.registerFont(CIDFont('HeiseiMin-W3','90ms-RKSJ-H'))
    pdfmetrics.registerFont(CIDFont('HeiseiKakuGo-W5','90ms-RKSJ-H'))


    # the two typefaces
    c.setFont('HeiseiMin-W3-90ms-RKSJ-H', 16)
    # this says "This is HeiseiMincho" in shift-JIS.  Not all our readers
    # have a Japanese PC, so I escaped it. On a Japanese-capable
    # system, print the string to see Kanji
    message1 = '\202\261\202\352\202\315\225\275\220\254\226\276\222\251\202\305\202\267\201B'
    c.drawString(100, 675, message1)
    c.save()
    print 'saved test_japanese.pdf'


##    print 'CMAP_DIR = ', CMAP_DIR
##    tf1 = CIDTypeFace('HeiseiMin-W3')
##    print 'ascent = ',tf1.ascent
##    print 'descent = ',tf1.descent
##    for cid in [1,2,3,4,5,18,19,28,231,1742]:
##        print 'width of cid %d = %d' % (cid, tf1.getCharWidth(cid))

    encName = '90ms-RKSJ-H'
    enc = CIDEncoding(encName)
    print message1, '->', enc.translate(message1)

    f = CIDFont('HeiseiMin-W3','90ms-RKSJ-H')
    print 'width = %0.2f' % f.stringWidth(message1, 10)


    #testing all encodings
##    import time
##    started = time.time()
##    import glob
##    for encName in _cidfontdata.allowedEncodings:
##    #encName = '90ms-RKSJ-H'
##        enc = CIDEncoding(encName)
##        print 'encoding %s:' % encName
##        print '    codeSpaceRanges = %s' % enc._codeSpaceRanges
##        print '    notDefRanges = %s' % enc._notDefRanges
##        print '    mapping size = %d' % len(enc._cmap)
##    finished = time.time()
##    print 'constructed all encodings in %0.2f seconds' % (finished - started) 
开发者ID:gltn,项目名称:stdm,代码行数:51,代码来源:cidfonts.py

示例13: drawOn

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def drawOn(self, canv, x, y, _sW=0):
        if _sW and hasattr(self, 'hAlign'):
            from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT, TA_JUSTIFY

            a = self.hAlign
            if a in ('CENTER', 'CENTRE', TA_CENTER):
                x = x + 0.5 * _sW
            elif a in ('RIGHT', TA_RIGHT):
                x = x + _sW
            elif a not in ('LEFT', TA_LEFT):
                raise ValueError("Bad hAlign value " + str(a))
        height = 0
        if HAS_MATPLOTLIB:
            global fonts
            canv.saveState()
            canv.translate(x, y)
            try:
                (
                    width,
                    height,
                    descent,
                    glyphs,
                    rects,
                    used_characters,
                ) = self.parser.parse(
                    enclose(self.s), 72, prop=FontProperties(size=self.fontsize)
                )
                for ox, oy, fontname, fontsize, num, symbol_name in glyphs:
                    if not fontname in fonts:
                        fonts[fontname] = fontname
                        pdfmetrics.registerFont(TTFont(fontname, fontname))
                    canv.setFont(fontname, fontsize)
                    col_conv = ColorConverter()
                    rgb_color = col_conv.to_rgb(self.color)
                    canv.setFillColorRGB(rgb_color[0], rgb_color[1], rgb_color[2])
                    canv.drawString(ox, oy, chr(num))

                canv.setLineWidth(0)
                canv.setDash([])
                for ox, oy, width, height in rects:
                    canv.rect(ox, oy + 2 * height, width, height, fill=1)
            except:
                # FIXME: report error
                col_conv = ColorConverter()
                rgb_color = col_conv.to_rgb(self.color)
                canv.setFillColorRGB(rgb_color[0], rgb_color[1], rgb_color[2])
                canv.drawString(0, 0, self.s)
            canv.restoreState()
        else:
            canv.saveState()
            canv.drawString(x, y, self.s)
            canv.restoreState()
        if self.label:
            log.info('Drawing equation-%s' % self.label)
            canv.bookmarkHorizontal('equation-%s' % self.label, 0, height) 
开发者ID:rst2pdf,项目名称:rst2pdf,代码行数:57,代码来源:math_flowable.py

示例14: generate_sheet

# 需要导入模块: from reportlab.pdfbase import pdfmetrics [as 别名]
# 或者: from reportlab.pdfbase.pdfmetrics import registerFont [as 别名]
def generate_sheet(makemeahanzi_path, working_dir, title, guide, stroke_order_color):
    if len(title) > MAX_TITLE_LENGTH:
        raise GenException('Title length exceeded (' + str(len(title)) + \
                '/' + str(MAX_TITLE_LENGTH) + ')');

    character_infos = [];
    words = [];

    character_infos = load_data_from_json_file(working_dir, CHARACTERS_FILE, \
                                                object_to_character_info);
    words = load_data_from_json_file(working_dir, WORDS_FILE, Word.fromJSON);
    words = filter_out_words_with_empty_definition(words);

    c = canvas.Canvas(os.path.join(working_dir, SHEET_FILE), PAGE_SIZE);
    pdfmetrics.registerFont(TTFont(FONT_NAME, FONT_NAME + '.ttf'));

    words_with_spanning_translation = get_spanning_translations( \
                                        character_infos, words);

    draw_header(c, title, HEADER_FONT_SIZE, \
            PAGE_SIZE[1]-HEADER_PADDING);
    for i in range(len(character_infos)):
        i_mod = i % CHARACTERS_PER_PAGE;
        page_number = int(i / CHARACTERS_PER_PAGE + 1);
        if i != 0 and i_mod == 0:
            draw_footer(c, FOOTER_FONT_SIZE, y-CHARACTER_ROW_HEIGHT - \
                    GRID_OFFSET/2);
            draw_page_number(c, i / CHARACTERS_PER_PAGE, PAGE_NUMBER_FONT_SIZE);
            draw_words(c, character_infos, words, page_number-1, \
                        words_with_spanning_translation);
            c.showPage();
            draw_header(c, title, HEADER_FONT_SIZE, \
                    PAGE_SIZE[1]-HEADER_PADDING);
        info = character_infos[i];
        create_character_svg(working_dir, info);
        create_radical_svg(makemeahanzi_path, working_dir, info);
        create_stroke_order_svgs(working_dir, info, stroke_order_color);
        convert_svgs_to_pngs(working_dir);
        y = FIRST_CHARACTER_ROW_Y-i_mod*CHARACTER_ROW_HEIGHT;
        draw_character_row(working_dir, c, info, y, guide);
        delete_files(working_dir, '.*\.svg');
        delete_files(working_dir, '.*\.png');
    
    y = PAGE_SIZE[1]-HEADER_PADDING-GRID_OFFSET/2 - \
        (CHARACTERS_PER_PAGE-1)*CHARACTER_ROW_HEIGHT;
    # TODO: extract
    draw_footer(c, FOOTER_FONT_SIZE, y-CHARACTER_ROW_HEIGHT - \
                    GRID_OFFSET/2);
    draw_page_number(c, page_number, PAGE_NUMBER_FONT_SIZE);
    draw_words(c, character_infos, words, page_number, \
            words_with_spanning_translation);
    c.setTitle(title);
    c.showPage();
    c.save(); 
开发者ID:lucivpav,项目名称:cwg,代码行数:56,代码来源:gen.py


注:本文中的reportlab.pdfbase.pdfmetrics.registerFont方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。