示例#1
0
文件: logic.py 项目: ak1394/bookshelf
    def format_fop(self, config):
        fontWriter = self.bookshelf.platform.fontWriter
        font = self.bookshelf.font_fabric.loadFont(config['font_name'])
        font.color = config['color']
        font.background = config['background']

        bookWriter = BookWriter(dimension)
        bookWriter.setFont(font)
示例#2
0
文件: logic.py 项目: ak1394/bookshelf
    def format(self, config):
        fontWriter = self.bookshelf.platform.fontWriter
        font = self.bookshelf.font_fabric.loadFont(config['font_name'])
        font.color = config['color']
        font.background = config['background']

        dimension = self.bookshelf.platform.canvasDimension
        bookWriter = BookWriter(dimension)
        bookWriter.setFont(font)

        fopFormatter = FopFormatter()
        fopFormatter.setFont(font)
        fopFormatter.format(self.fo_file, bookWriter)

        self.book = bookWriter.getBook()
        self.book.setTitle(config['title'])
        return self.book
示例#3
0
文件: logic.py 项目: ak1394/bookshelf
    def format(self, config):
        fontWriter = self.bookshelf.platform.fontWriter
        font = self.bookshelf.font_fabric.loadFont(config['font_name'])
        font.color = config['color']
        font.background = config['background']
        
        dimension = self.bookshelf.platform.canvasDimension
        line_height = (font.getHeight() + config['interline'])
        dimension.height = (dimension.height / line_height) * line_height

        bookWriter = BookWriter(dimension)
        bookWriter.setFont(font)
        
        paragraphSource = ParagraphSource(self.text_file, config['encoding'], font, config['para_start'], config['para_indent'])

        if config['hyphenate']:
            formatter = HyphenatingFormatter()
            formatter.setHyphenator(Hyphenator(config['language'], "-"))
        else:
            formatter = SimpleFormatter()
        
        formatter.setWidth(bookWriter.getPageSize().width)
        formatter.setSpace(2)
        if config['screen_border']: formatter.setMargin(1)

        paginator = Paginator()
        paginator.setFormatter(formatter)
        paginator.setParagraphSource(paragraphSource)
        paginator.setInterline(config['interline'])

        if config['justify']:
            lineJustifier = LineJustifier();
            lineJustifier.setWidth(bookWriter.pageSize.width);
            paginator.decorator = lineJustifier
        
        paginator.write(bookWriter)
        self.book = bookWriter.getBook()
        self.book.setTitle(config['title'])
        return self.book