本文整理汇总了Python中reportlab.lib.utils.getBytesIO函数的典型用法代码示例。如果您正苦于以下问题:Python getBytesIO函数的具体用法?Python getBytesIO怎么用?Python getBytesIO使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getBytesIO函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testFontFileFailures
def testFontFileFailures(self):
"Tests TTFontFile constructor error checks"
self.assertRaises(TTFError, TTFontFile, "nonexistent file")
self.assertRaises(TTFError, TTFontFile, getBytesIO(b""))
self.assertRaises(TTFError, TTFontFile, getBytesIO(b"invalid signature"))
self.assertRaises(TTFError, TTFontFile, getBytesIO(b"OTTO - OpenType not supported yet"))
self.assertRaises(TTFError, TTFontFile, getBytesIO(b"\0\1\0\0"))
示例2: testFontFileChecksum
def testFontFileChecksum(self):
"Tests TTFontFile and TTF parsing code"
F = TTFOpenFile("Vera.ttf")[1].read()
TTFontFile(getBytesIO(F), validate=1) # should not fail
F1 = F[:12345] + b"\xFF" + F[12346:] # change one byte
self.assertRaises(TTFError, TTFontFile, getBytesIO(F1), validate=1)
F1 = F[:8] + b"\xFF" + F[9:] # change one byte
self.assertRaises(TTFError, TTFontFile, getBytesIO(F1), validate=1)
示例3: testFontMaker
def testFontMaker(self):
"Tests TTFontMaker class"
ttf = TTFontMaker()
ttf.add("ABCD", b"xyzzy")
ttf.add("QUUX", b"123")
ttf.add("head", b"12345678xxxx")
stm = ttf.makeStream()
ttf = TTFontParser(getBytesIO(stm), 0)
self.assertEquals(ttf.get_table("ABCD"), b"xyzzy")
self.assertEquals(ttf.get_table("QUUX"), b"123")
示例4: _AsciiHexEncode
def _AsciiHexEncode(input):
"""Encodes input using ASCII-Hex coding.
This is a verbose encoding used for binary data within
a PDF file. One byte binary becomes two bytes of ASCII.
Helper function used by images."""
if isUnicode(input):
input = input.encode('utf-8')
output = getBytesIO()
output.write(binascii.b2a_hex(input))
output.write(b'>')
return output.getvalue()
示例5: trySomeColors
def trySomeColors(C,enforceColorSpace=None):
from reportlab.lib.utils import getBytesIO
out=getBytesIO()
canv = canvas.Canvas(out,enforceColorSpace=enforceColorSpace)
canv.setFont('Helvetica',10)
x = 0
y = 0
w,h = canv._pagesize
for c in C:
if y+10>h:
y = 0
x += 10
canv.setFillColor(c)
canv.rect(x,y,10,10,fill=1,stroke=0)
y += 10
canv.showPage()
canv.save()
示例6: drawToString
def drawToString(d,
showBoundary=rl_config.showBoundary,
dviPreview='',
title='Diagra EPS',
company='ReportLab',
dept='',
preview=0):
"Outputs the EPS to a string in memory"
f = getBytesIO()
drawToFile(d, f,
dviPreview=dviPreview,
title = title,
dept = dept,
company = company,
preview = preview,
showBoundary=showBoundary)
return f.getvalue()
示例7: makeStream
def makeStream(self):
"Finishes the generation and returns the TTF file as a string"
stm = getBytesIO()
write = stm.write
numTables = len(self.tables)
searchRange = 1
entrySelector = 0
while searchRange * 2 <= numTables:
searchRange = searchRange * 2
entrySelector = entrySelector + 1
searchRange = searchRange * 16
rangeShift = numTables * 16 - searchRange
# Header
write(pack(">lHHHH", 0x00010000, numTables, searchRange,
entrySelector, rangeShift))
# Table directory
tables = list(self.tables.items())
tables.sort() # XXX is this the correct order?
offset = 12 + numTables * 16
for tag, data in tables:
if tag == 'head':
head_start = offset
checksum = calcChecksum(data)
if isUnicodeType(tag):
tag = tag.encode('utf-8')
write(tag)
write(pack(">LLL", checksum, offset, len(data)))
paddedLength = (len(data)+3)&~3
offset = offset + paddedLength
# Table data
for tag, data in tables:
data += b"\0\0\0"
write(data[:len(data)&~3])
checksum = calcChecksum(stm.getvalue())
checksum = add32(0xB1B0AFBA, -checksum)
stm.seek(head_start + 8)
write(pack('>L', checksum))
return stm.getvalue()
示例8: _preview
def _preview(d,preview):
'''create a device dependent preview image from drawing d'''
from reportlab.graphics import renderPM
if isinstance(preview,(int,float)):
assert preview>0, "negative scaling is forbidden"
g = d
d = Drawing(g.width*preview, g.height*preview)
g.transform = (preview,0,0,preview,0,0) #scale so it fits
d.add(g)
pilf = getBytesIO()
transparent = getattr(g,'preview_transparent',None) or rl_config.eps_preview_transparent
kwds = dict(fmt='TIFF')
if transparent:
configPIL = {}
bg = configPIL['transparent'] = toColor(transparent)
kwds['configPIL'] = configPIL
kwds['bg'] = bg.int_rgb()
renderPM.drawToFile(d,pilf,**kwds)
return pilf.getvalue()
示例9: makeStream
def makeStream(self):
"Finishes the generation and returns the TTF file as a string"
stm = getBytesIO()
write = stm.write
tables = self.tables
numTables = len(tables)
searchRange = 1
entrySelector = 0
while searchRange * 2 <= numTables:
searchRange = searchRange * 2
entrySelector = entrySelector + 1
searchRange = searchRange * 16
rangeShift = numTables * 16 - searchRange
# Header
write(pack(">lHHHH", 0x00010000, numTables, searchRange,
entrySelector, rangeShift))
# Table directory
offset = 12 + numTables * 16
wStr = (lambda x:write(bytes(tag,'latin1'))) if isPy3 else write
tables_items = list(sorted(tables.items()))
for tag, data in tables_items:
if tag == 'head':
head_start = offset
checksum = calcChecksum(data)
wStr(tag)
write(pack(">LLL", checksum, offset, len(data)))
paddedLength = (len(data)+3)&~3
offset = offset + paddedLength
# Table data
for tag, data in tables_items:
data += b"\0\0\0"
write(data[:len(data)&~3])
checksum = calcChecksum(stm.getvalue())
checksum = add32(0xB1B0AFBA, -checksum)
stm.seek(head_start + 8)
write(pack('>L', checksum))
return stm.getvalue()
示例10: encryptPdfInMemory
def encryptPdfInMemory(inputPDF,
userPassword, ownerPassword=None,
canPrint=1, canModify=1, canCopy=1, canAnnotate=1,
strength=40):
"""accepts a PDF file 'as a byte array in memory'; return encrypted one.
This is a high level convenience and does not touch the hard disk in any way.
If you are encrypting the same file over and over again, it's better to use
pageCatcher and cache the results."""
try:
from rlextra.pageCatcher.pageCatcher import storeFormsInMemory, restoreFormsInMemory
except ImportError:
raise ImportError('''reportlab.lib.pdfencrypt.encryptPdfInMemory failed because rlextra cannot be imported.
See http://developer.reportlab.com''')
(bboxInfo, pickledForms) = storeFormsInMemory(inputPDF, all=1, BBoxes=1)
names = list(bboxInfo.keys())
firstPageSize = bboxInfo['PageForms0'][2:]
#now make a new PDF document
buf = getBytesIO()
canv = Canvas(buf, pagesize=firstPageSize)
# set a standard ID while debugging
if CLOBBERID:
canv._doc._ID = "[(xxxxxxxxxxxxxxxx)(xxxxxxxxxxxxxxxx)]"
encryptCanvas(canv,
userPassword, ownerPassword,
canPrint, canModify, canCopy, canAnnotate,
strength=strength)
formNames = restoreFormsInMemory(pickledForms, canv)
for formName in formNames:
#need to extract page size in future
canv.doForm(formName)
canv.showPage()
canv.save()
return buf.getvalue()
示例11: testSubsetting
def testSubsetting(self):
"Tests TTFontFile and TTF parsing code"
ttf = TTFontFile("Vera.ttf")
subset = ttf.makeSubset([0x41, 0x42])
subset = TTFontFile(getBytesIO(subset), 0)
for tag in ('cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'OS/2',
'post', 'cvt ', 'fpgm', 'glyf', 'loca', 'prep'):
self.assert_(subset.get_table(tag))
subset.seek_table('loca')
for n in range(4):
pos = subset.read_ushort() # this is actually offset / 2
self.failIf(pos % 2 != 0, "glyph %d at +%d should be long aligned" % (n, pos * 2))
self.assertEquals(subset.name, b"BitstreamVeraSans-Roman")
self.assertEquals(subset.flags, FF_SYMBOLIC)
self.assertEquals(subset.italicAngle, 0.0)
self.assertNear(subset.ascent,759.765625)
self.assertNear(subset.descent,-240.234375)
self.assertEquals(subset.capHeight, 759.765625)
self.assertNear(subset.bbox, [-183.10546875, -235.83984375, 1287.109375, 928.22265625])
self.assertEquals(subset.stemV, 87)
示例12: _showWidgetProperties
def _showWidgetProperties(self, widget):
"""Dump all properties of a widget."""
props = widget.getProperties()
keys = props.keys()
keys.sort()
lines = []
for key in keys:
value = props[key]
f = getBytesIO()
pprint.pprint(value, f)
value = f.getvalue()[:-1]
valueLines = value.split('\n')
for i in range(1, len(valueLines)):
valueLines[i] = ' '*(len(key)+3) + valueLines[i]
value = '\n'.join(valueLines)
lines.append('%s = %s' % (key, value))
text = '\n'.join(lines)
self.story.append(Paragraph("<i>Properties of Example Widget</i>", self.bt))
self.story.append(Paragraph("", self.bt))
self.story.append(Preformatted(text, self.code))
示例13: drawToString
def drawToString(d, msg="", showBoundary=rl_config._unset_,autoSize=1):
"Returns a PDF as a string in memory, without touching the disk"
s = getBytesIO()
drawToFile(d, s, msg=msg, showBoundary=showBoundary,autoSize=autoSize)
return s.getvalue()
示例14: drawToString
def drawToString(d, showBoundary=rl_config.showBoundary):
"Returns a PS as a string in memory, without touching the disk"
s = getBytesIO()
drawToFile(d, s, showBoundary=showBoundary)
return s.getvalue()
示例15: drawToString
def drawToString(d,fmt='GIF', dpi=72, bg=0xffffff, configPIL=None, showBoundary=rl_config._unset_):
s = getBytesIO()
drawToFile(d,s,fmt=fmt, dpi=dpi, bg=bg, configPIL=configPIL)
return s.getvalue()