Example #1
0
 def write(self, *ignored):
     
     self.init_document_data()
     
     if self.config.pdf_verbosity > 1:
         rst2pdf.log.log.setLevel(logging.DEBUG)
     elif self.config.pdf_verbosity > 0:
         rst2pdf.log.log.setLevel(logging.INFO)
 
     for entry in self.document_data:
         try:
             docname, targetname, title, author = entry[:4]
             # Custom options per document
             if len(entry)>4 and isinstance(entry[4],dict): 
                 opts=entry[4]
             else:
                 opts={}
             self.info("processing " + targetname + "... ", nonl=1)
             
             class dummy:
                 extensions=self.config.pdf_extensions
                 
             createpdf.add_extensions(dummy())
             
             self.page_template=opts.get('pdf_page_template',self.config.pdf_page_template)
             
             docwriter = PDFWriter(self,
                             stylesheets=opts.get('pdf_stylesheets',self.config.pdf_stylesheets),
                             language=opts.get('pdf_language',self.config.pdf_language),
                             breaklevel=opts.get('pdf_break_level',self.config.pdf_break_level),
                             breakside=opts.get('pdf_breakside',self.config.pdf_breakside),
                             fontpath=opts.get('pdf_font_path',self.config.pdf_font_path),
                             fitmode=opts.get('pdf_fit_mode',self.config.pdf_fit_mode),
                             compressed=opts.get('pdf_compressed',self.config.pdf_compressed),
                             inline_footnotes=opts.get('pdf_inline_footnotes',self.config.pdf_inline_footnotes),
                             splittables=opts.get('pdf_splittables',self.config.pdf_splittables),
                             default_dpi=opts.get('pdf_default_dpi',self.config.pdf_default_dpi),
                             page_template=self.page_template,
                             invariant=opts.get('pdf_invariant',self.config.pdf_invariant),
                             srcdir=self.srcdir,
                             config=self.config
                             )
             
             tgt_file = path.join(self.outdir, targetname + self.out_suffix)
             destination = FileOutput(destination=open(tgt_file,'wb'), encoding='utf-8')
             doctree = self.assemble_doctree(docname,title,author, 
                 appendices=opts.get('pdf_appendices', self.config.pdf_appendices) or [])
             doctree.settings.author=author
             doctree.settings.title=title
             self.info("done")
             self.info("writing " + targetname + "... ", nonl=1)
             docwriter.write(doctree, destination)
             self.info("done")
         except Exception, e:
             rst2pdf.log.log.error(str(e))
             print_exc()
             self.info(red("FAILED"))
Example #2
0
    def write(self, *ignored):

        self.init_document_data()

        if self.config.pdf_verbosity > 1:
            log.setLevel(logging.DEBUG)
        elif self.config.pdf_verbosity > 0:
            log.setLevel(logging.INFO)

        for entry in self.document_data:
            try:
                docname, targetname, title, author = entry[:4]
                # Custom options per document
                if len(entry)>4 and isinstance(entry[4],dict):
                    opts=entry[4]
                else:
                    opts={}
                self.spinx_logger.info("processing " + targetname + "... ")
                self.opts = opts
                class dummy:
                    extensions=self.config.pdf_extensions

                createpdf.add_extensions(dummy())

                self.page_template=opts.get('pdf_page_template',self.config.pdf_page_template)

                docwriter = PDFWriter(self,
                                stylesheets=opts.get('pdf_stylesheets',self.config.pdf_stylesheets),
                                language=opts.get('pdf_language',self.config.pdf_language),
                                breaklevel=opts.get('pdf_break_level',self.config.pdf_break_level),
                                breakside=opts.get('pdf_breakside',self.config.pdf_breakside),
                                fontpath=opts.get('pdf_font_path',self.config.pdf_font_path),
                                fitmode=opts.get('pdf_fit_mode',self.config.pdf_fit_mode),
                                compressed=opts.get('pdf_compressed',self.config.pdf_compressed),
                                inline_footnotes=opts.get('pdf_inline_footnotes',self.config.pdf_inline_footnotes),
                                splittables=opts.get('pdf_splittables',self.config.pdf_splittables),
                                repeat_table_rows=opts.get('pdf_repeat_table_rows',self.config.pdf_repeat_table_rows),
                                default_dpi=opts.get('pdf_default_dpi',self.config.pdf_default_dpi),
                                page_template=self.page_template,
                                invariant=opts.get('pdf_invariant',self.config.pdf_invariant),
                                real_footnotes=opts.get('pdf_real_footnotes',self.config.pdf_real_footnotes),
                                use_toc=opts.get('pdf_use_toc',self.config.pdf_use_toc),
                                toc_depth=opts.get('pdf_toc_depth',self.config.pdf_toc_depth),
                                use_coverpage=opts.get('pdf_use_coverpage',self.config.pdf_use_coverpage),
                                use_numbered_links=opts.get('pdf_use_numbered_links',self.config.pdf_use_numbered_links),
                                fit_background_mode=opts.get('pdf_fit_background_mode',self.config.pdf_fit_background_mode),
                                baseurl=opts.get('pdf_baseurl',self.config.pdf_baseurl),
                                section_header_depth=opts.get('section_header_depth',self.config.section_header_depth),
                                srcdir=self.srcdir,
                                style_path=opts.get('pdf_style_path', self.config.pdf_style_path),
                                config=self.config,
                                )

                tgt_file = path.join(self.outdir, targetname + self.out_suffix)
                destination = FileOutput(destination=open(tgt_file,'wb'), encoding='utf-8')
                doctree = self.assemble_doctree(docname,title,author,
                    appendices=opts.get('pdf_appendices', self.config.pdf_appendices) or [])
                doctree.settings.author=author
                doctree.settings.title=title
                self.spinx_logger.info("done")
                self.spinx_logger.info("writing " + targetname + "... ")
                docwriter.write(doctree, destination)
                self.spinx_logger.info("done")
            except Exception as e:
                log.exception(e)
                self.spinx_logger.info(red("FAILED"))
Example #3
0
    def write(self, *ignored):

        self.init_document_data()

        if self.config.pdf_verbosity > 1:
            log.setLevel(logging.DEBUG)
        elif self.config.pdf_verbosity > 0:
            log.setLevel(logging.INFO)

        for entry in self.document_data:
            try:
                docname, targetname, title, author = entry[:4]
                # Custom options per document
                if len(entry)>4 and isinstance(entry[4],dict):
                    opts=entry[4]
                else:
                    opts={}
                self.info("processing " + targetname + "... ", nonl=1)
                self.opts = opts
                class dummy:
                    extensions=self.config.pdf_extensions

                createpdf.add_extensions(dummy())

                self.page_template=opts.get('pdf_page_template',self.config.pdf_page_template)

                docwriter = PDFWriter(self,
                                stylesheets=opts.get('pdf_stylesheets',self.config.pdf_stylesheets),
                                language=opts.get('pdf_language',self.config.pdf_language),
                                breaklevel=opts.get('pdf_break_level',self.config.pdf_break_level),
                                breakside=opts.get('pdf_breakside',self.config.pdf_breakside),
                                fontpath=opts.get('pdf_font_path',self.config.pdf_font_path),
                                fitmode=opts.get('pdf_fit_mode',self.config.pdf_fit_mode),
                                compressed=opts.get('pdf_compressed',self.config.pdf_compressed),
                                inline_footnotes=opts.get('pdf_inline_footnotes',self.config.pdf_inline_footnotes),
                                splittables=opts.get('pdf_splittables',self.config.pdf_splittables),
                                default_dpi=opts.get('pdf_default_dpi',self.config.pdf_default_dpi),
                                page_template=self.page_template,
                                invariant=opts.get('pdf_invariant',self.config.pdf_invariant),
                                real_footnotes=opts.get('pdf_real_footnotes',self.config.pdf_real_footnotes),
                                use_toc=opts.get('pdf_use_toc',self.config.pdf_use_toc),
                                toc_depth=opts.get('pdf_toc_depth',self.config.pdf_toc_depth),
                                use_coverpage=opts.get('pdf_use_coverpage',self.config.pdf_use_coverpage),
                                use_numbered_links=opts.get('pdf_use_numbered_links',self.config.pdf_use_numbered_links),
                                fit_background_mode=opts.get('pdf_fit_background_mode',self.config.pdf_fit_background_mode),
                                baseurl=opts.get('pdf_baseurl',self.config.pdf_baseurl),
                                section_header_depth=opts.get('section_header_depth',self.config.section_header_depth),
                                srcdir=self.srcdir,
                                style_path=opts.get('pdf_style_path', self.config.pdf_style_path),
                                config=self.config,
                                )

                tgt_file = path.join(self.outdir, targetname + self.out_suffix)
                destination = FileOutput(destination=open(tgt_file,'wb'), encoding='utf-8')
                doctree = self.assemble_doctree(docname,title,author,
                    appendices=opts.get('pdf_appendices', self.config.pdf_appendices) or [])
                doctree.settings.author=author
                doctree.settings.title=title
                self.info("done")
                self.info("writing " + targetname + "... ", nonl=1)
                docwriter.write(doctree, destination)
                self.info("done")
            except Exception, e:
                log.error(str(e))
                print_exc()
                self.info(red("FAILED"))
Example #4
0
def convert_pdf(path):
    import logging
    from rst2pdf import createpdf

    parser = createpdf.parse_commandline()
    options, args = parser.parse_args(None)

    # loglevel
    createpdf.log.setLevel(logging.CRITICAL)

    # infile
    filename = path.decode('utf-8').encode('mbcs')
    options.basedir = os.path.dirname(os.path.abspath(filename))
    options.infile = open(filename)
    if filename.endswith('.tmp'):
        outfile = filename[:-4] + '.pdf'
    else:
        outfile = filename + '.pdf'
    options.outfile = outfile

    # style
    options.style = ['ja.style']
    #, 'ja.style''styles.style',
    # stylepath
    options.stylepath = [os.path.join(MISC_DIR, 'styles')]

    # fontpath
    #options.fpath = [os.path.join(os.environ.get('windir', 'C:\\WINDOWS'), 'Fonts')]
    options.fpath = [os.path.join(MISC_DIR, 'Fonts')]

    if options.invariant:
        createpdf.patch_PDFDate()
        createpdf.patch_digester()

    createpdf.add_extensions(options)

    createpdf.RstToPdf(stylesheets=options.style,
                       language=options.language,
                       header=options.header,
                       footer=options.footer,
                       inlinelinks=options.inlinelinks,
                       breaklevel=int(options.breaklevel),
                       baseurl=options.baseurl,
                       fit_mode=options.fit_mode,
                       smarty=str(options.smarty),
                       font_path=options.fpath,
                       style_path=options.stylepath,
                       repeat_table_rows=options.repeattablerows,
                       footnote_backlinks=options.footnote_backlinks,
                       inline_footnotes=options.inline_footnotes,
                       def_dpi=int(options.def_dpi),
                       basedir=options.basedir,
                       show_frame=options.show_frame,
                       splittables=options.splittables,
                       blank_first_page=options.blank_first_page,
                       breakside=options.breakside).createPdf(
                           text=options.infile.read(),
                           source_path=options.infile.name,
                           output=options.outfile,
                           compressed=options.compressed)

    options.infile.close()