本文整理匯總了Python中rapuma.core.tools.Tools.getPdfViewerCommand方法的典型用法代碼示例。如果您正苦於以下問題:Python Tools.getPdfViewerCommand方法的具體用法?Python Tools.getPdfViewerCommand怎麽用?Python Tools.getPdfViewerCommand使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rapuma.core.tools.Tools
的用法示例。
在下文中一共展示了Tools.getPdfViewerCommand方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: Pdftk
# 需要導入模塊: from rapuma.core.tools import Tools [as 別名]
# 或者: from rapuma.core.tools.Tools import getPdfViewerCommand [as 別名]
class Pdftk (Manager) :
# Shared values
xmlConfFile = 'pdftk.xml'
def __init__(self, project, cfg, cType) :
'''Do the primary initialization for this manager.'''
super(Pdftk, self).__init__(project, cfg)
# import pdb; pdb.set_trace()
# Create all the values we can right now for this manager.
# Others will be created at run time when we know the cid.
self.tools = Tools()
self.project = project
self.local = project.local
self.log = project.log
self.cfg = cfg
self.pid = project.projectIDCode
self.gid = project.gid
self.cType = cType
self.Ctype = cType.capitalize()
self.mType = project.projectMediaIDCode
self.renderer = 'pdftk'
self.manager = self.cType + '_' + self.renderer.capitalize()
self.managers = project.managers
self.pg_back = ProjBackground(self.pid, self.gid)
self.fmt_diagnose = ProjDiagnose(self.pid, self.gid)
self.proj_config = Config(self.pid, self.gid)
self.proj_config.getProjectConfig()
self.proj_config.getLayoutConfig()
# Get config objs
self.projectConfig = self.proj_config.projectConfig
self.layoutConfig = self.proj_config.layoutConfig
self.userConfig = self.project.userConfig
# Some config settings
self.pdfViewerCmd = self.tools.getPdfViewerCommand(self.userConfig, self.projectConfig)
self.useBackground = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useBackground'])
self.useDocInfo = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useDocInfo'])
# Get settings for this component
self.managerSettings = self.projectConfig['Managers'][self.manager]
for k, v in self.managerSettings.iteritems() :
if v == 'True' or v == 'False' :
setattr(self, k, self.tools.str2bool(v))
else :
setattr(self, k, v)
# Make any dependent folders if needed
if not os.path.isdir(self.local.projGidFolder) :
os.makedirs(self.local.projGidFolder)
# Log messages for this module
self.errorCodes = {
'0000' : ['MSG', 'Messages for the pdftk module.'],
'5010' : ['ERR', 'Subprocess failed with this error: <<1>>'],
'5020' : ['MSG', 'PDF merge was successful. Output = <<1>>'],
'5200' : ['ERR', 'Rendered file not found: <<1>>'],
'5210' : ['WRN', 'PDF viewing is disabled.'],
'5720' : ['MSG', 'Saved rendered file to: [<<1>>]'],
'5730' : ['ERR', 'Failed to save rendered file to: [<<1>>]']
}
###############################################################################
############################ Manager Level Functions ##########################
###############################################################################
######################## Error Code Block Series = 1000 #######################
###############################################################################
def sourceListFromCidList (self, cidList) :
'''Return a sourceList derived from a given cidList.'''
sourceList = []
for cid in cidList :
sourceList.append(self.sourceFromCid(cid))
return sourceList
def sourceFromCid (self, cid) :
'''Return the full path with file name derived from a valid cid.'''
return os.path.join(self.local.projComponentFolder, cid, cid + '.pdf')
###############################################################################
################################# Main Function ###############################
###############################################################################
######################## Error Code Block Series = 5000 #######################
###############################################################################
def run (self, gid, cidList, pgRange, override, save) :
'''This will check all the dependencies for a group and then
use pdftk to "render" the whole group or a subset of components
and even a page range in a single component.'''
#.........這裏部分代碼省略.........
示例2: Xetex
# 需要導入模塊: from rapuma.core.tools import Tools [as 別名]
# 或者: from rapuma.core.tools.Tools import getPdfViewerCommand [as 別名]
class Xetex (Manager) :
# Shared values
xmlConfFile = 'xetex.xml'
def __init__(self, project, cfg, cType) :
'''Do the primary initialization for this manager.'''
super(Xetex, self).__init__(project, cfg)
# import pdb; pdb.set_trace()
# Create all the values we can right now for this manager.
# Others will be created at run time when we know the cid.
self.tools = Tools()
self.project = project
self.local = project.local
self.log = project.log
self.cfg = cfg
self.pid = project.projectIDCode
self.gid = project.gid
self.cType = cType
self.Ctype = cType.capitalize()
self.mType = project.projectMediaIDCode
self.renderer = 'xetex'
self.manager = self.cType + '_' + self.renderer.capitalize()
self.managers = project.managers
self.pg_back = ProjBackground(self.pid, self.gid)
self.fmt_diagnose = ProjDiagnose(self.pid, self.gid)
self.proj_config = Config(self.pid, self.gid)
self.proj_config.getProjectConfig()
self.proj_config.getLayoutConfig()
self.proj_config.getFontConfig()
self.proj_config.getMacroConfig()
# Bring in some manager objects we will need
self.proj_font = ProjFont(self.pid)
self.proj_illustration = ProjIllustration(self.pid, self.gid)
self.proj_hyphenation = ProjHyphenation(self.pid, self.gid)
self.usfmData = UsfmData()
self.cidChapNumDict = self.usfmData.cidChapNumDict()
self.cidPtIdDict = self.usfmData.cidPtIdDict()
# Get config objs
self.projectConfig = self.proj_config.projectConfig
self.layoutConfig = self.proj_config.layoutConfig
self.fontConfig = self.proj_config.fontConfig
self.macroConfig = self.proj_config.macroConfig
self.userConfig = self.project.userConfig
self.macPackId = self.projectConfig['CompTypes'][self.Ctype]['macroPackage']
# Some config settings
self.pdfViewerCmd = self.tools.getPdfViewerCommand(self.userConfig, self.projectConfig)
self.sourceEditor = self.projectConfig['CompTypes'][self.Ctype]['sourceEditor']
self.useBackground = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useBackground'])
self.useDiagnostic = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useDiagnostic'])
self.useDocInfo = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useDocInfo'])
# Get settings for this component
self.managerSettings = self.projectConfig['Managers'][self.manager]
for k, v in self.managerSettings.iteritems() :
if v == 'True' or v == 'False' :
setattr(self, k, self.tools.str2bool(v))
else :
setattr(self, k, v)
# Set some Booleans (this comes after persistant values are set)
# Setting hyphenation is a 2 step process, first check global, then group
self.useHyphenation = False
if self.tools.str2bool(self.projectConfig['ProjectInfo']['hyphenationOn']) :
if self.tools.str2bool(self.projectConfig['Groups'][self.gid]['useHyphenation']) :
self.useHyphenation = True
# In case the macro is not installed we need to skip over this
try :
self.chapNumOffSingChap = self.tools.str2bool(self.macroConfig['Macros'][self.macPackId]['ChapterVerse']['omitChapterNumberOnSingleChapterBook'])
except :
self.chapNumOffSingChap = None
# Make any dependent folders if needed
if not os.path.isdir(self.local.projGidFolder) :
os.makedirs(self.local.projGidFolder)
# Record some error codes
# FIXME: much more needs to be done with this
self.xetexErrorCodes = {
0 : 'Rendering succeful.',
256 : 'Something really awful happened.'
}
# Log messages for this module
self.errorCodes = {
'1005' : ['ERR', 'PDF viewer failed with error: [<<1>>]'],
'1010' : ['ERR', 'Style file [<<1>>] could not be created.'],
'1040' : ['LOG', 'Created: [<<1>>]'],
'0420' : ['WRN', 'TeX settings file has been frozen for debugging purposes.'],
'0440' : ['LOG', 'Created: [<<1>>]'],
'0460' : ['LOG', 'Settings changed in [<<1>>], [<<2>>] needed to be recreated.'],
'0465' : ['LOG', 'File: [<<1>>] missing, created a new one.'],
'0470' : ['ERR', 'Macro package [<<1>>] is not recognized by the system.'],
#.........這裏部分代碼省略.........
示例3: ProjBinding
# 需要導入模塊: from rapuma.core.tools import Tools [as 別名]
# 或者: from rapuma.core.tools.Tools import getPdfViewerCommand [as 別名]
class ProjBinding (object) :
def __init__(self, pid) :
'''Do the primary initialization for this manager.'''
self.pid = pid
self.tools = Tools()
self.user = UserConfig()
self.userConfig = self.user.userConfig
self.config = Config(pid)
self.pg_back = ProjBackground(self.pid)
self.config.getProjectConfig()
self.config.getLayoutConfig()
self.projectConfig = self.config.projectConfig
self.layoutConfig = self.config.layoutConfig
self.useBackground = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useBackground'])
self.useDocInfo = self.tools.str2bool(self.layoutConfig['DocumentFeatures']['useDocInfo'])
self.projHome = os.path.join(os.environ['RAPUMA_PROJECTS'], self.pid)
self.local = ProjLocal(self.pid)
self.log = ProjLog(self.pid)
self.pdfViewerCmd = self.tools.getPdfViewerCommand(self.userConfig, self.projectConfig)
# Log messages for this module
self.errorCodes = {
'0205' : ['MSG', 'Unassigned message.'],
'0210' : ['MSG', 'No contents are specified for binding.'],
'0215' : ['ERR', 'Failed to bind contents into the [<<1>>] fille. Got error: [<<2>>]'],
'0220' : ['ERR', 'Could not copy [<<1>>] temp file to [<<2>>] saved binding file.'],
'0230' : ['MSG', 'Completed proccessing on the [<<1>>] binding file.'],
'0235' : ['ERR', 'Failed to complete proccessing on the [<<1>>] binding file.'],
'0240' : ['LOG', 'Recorded [<<1>>] rendered pages in the [<<2>>] binding file.'],
'0260' : ['ERR', 'PDF viewer failed with this error: [<<1>>]'],
'0265' : ['ERR', 'Rendered file not found: <<1>>'],
'0270' : ['WRN', 'PDF viewing is disabled.'],
'0280' : ['ERR', 'GS PDF file merge failed with this error: [<<1>>]'],
'0300' : ['MSG', 'File binding operation in process, please wait...']
}
###############################################################################
############################## Binding Functions ##############################
###############################################################################
######################## Error Code Block Series = 200 ########################
###############################################################################
# import pdb; pdb.set_trace()
def bind (self, save = False) :
'''Bind all groups in the order they are indicated by group bindOrder
settings. Note, because binding spans groups and the main body
(project.py) mainly just works on one group at a time, this has to
be called from outside project and project needs to be reinitialized
each time a group is rendered from here.'''
# import pdb; pdb.set_trace()
# Get the order of the groups to be bound.
bindOrder = {}
# Put a safty in here in case there are no groups yet
if not self.projectConfig.has_key('Groups') :
return False
# Build the bindOrder dict with ord num as key and file name as value
for gid in self.projectConfig['Groups'].keys() :
if not self.projectConfig['Groups'][gid].has_key('bindingOrder') :
self.projectConfig['Groups'][gid]['bindingOrder'] = 0
self.tools.writeConfFile(self.projectConfig)
if int(self.projectConfig['Groups'][gid]['bindingOrder']) > 0 :
gidPdfFile = os.path.join(self.local.projComponentFolder, gid, gid + '.pdf')
# bindOrder[self.projectConfig['Groups'][gid]['bindingOrder']] = self.projectConfig['Groups'][gid]['bindingFile']
bindOrder[self.projectConfig['Groups'][gid]['bindingOrder']] = gidPdfFile
bindGrpNum = len(bindOrder)
# Need not keep going if nothing was found
if bindGrpNum == 0 :
self.log.writeToLog(self.errorCodes['0210'])
return False
# Make an ordered key list
keyList = bindOrder.keys()
keyList.sort()
# Output the bind files in order according to the list we made
fileList = []
for key in keyList :
fileList.append(bindOrder[key])
# First merge the master pages together
tempFile = self.mergePdfFilesGs(fileList)
# Now add background and doc info if requested
bgFile = ''
if self.useBackground :
bgFile = self.pg_back.addBackground(tempFile)
if self.useDocInfo :
if bgFile :
bgFile = self.pg_back.addDocInfo(bgFile)
else :
bgFile = self.pg_back.addDocInfo(tempFile)
#.........這裏部分代碼省略.........