- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在使用 reportlab 从动态数据中自动生成 pdf 报告。由于内容有时太大而无法以纵向显示,因此我正在尝试切换到横向以显示大型内容。
这是我的报告生成方式:
主要功能:
doc = DocTemplate(...) //Doctemplate is a customed BaseDocTemplate class
array = []
some_data= "Here is some data displayed in portrait"
array.append(Paragraph(some_data))
large_data = "this data is too large to be displayed in portrait"
array.append(Paragraph(large_data))
... // Some more data is added after this
doc.build(array, canvasmaker=NumberedCanvas)
我正在寻找一种能够在每一步从纵向切换到横向的方法,因为我不知道显示它所需的页数。我对 reportlab 还很陌生,甚至对 python 还有些陌生,所以我看不到如何在最后构建整个文档时正确使用 reportlab 提供的解决方案(PageTemplates、flowables)。
这是我在这个案例中的其他有用的类:
class DocTemplate(BaseDocTemplate, ):
def __init__(self, filename, **kw):
apply(BaseDocTemplate.__init__, (self, filename), kw)
f = Frame(2.6*cm, 2.8*cm, 16*cm, 22.7*cm, id='f')
pt = PageTemplate('RectPage', [f], onPage=beforeDrawPage, onPageEnd=afterDrawPage)
//beforeDrawPage and afterDrawPage fill the headers of the page (that also need to be in landscape)
self.addPageTemplates(pt)
我想我应该添加另一个页面模板或框架,但我不知道如何在数据附加阶段从一个切换到另一个。
class NumberedCanvas(canvas.Canvas):
def __init__(self, *args, **kwargs):
canvas.Canvas.__init__(self, *args, **kwargs)
self._saved_page_states = []
def showPage(self):
self._saved_page_states.append(dict(self.__dict__))
self._startPage()
def save(self):
"""add page info to each page (page x of y)"""
num_pages = len(self._saved_page_states)
for state in self._saved_page_states:
self.__dict__.update(state)
self.draw_page_number(num_pages)
canvas.Canvas.showPage(self)
self.setTitle("Title")
canvas.Canvas.save(self)
self._doc.SaveToFile(self._filename, self)
def draw_page_number(self, page_count):
self.setFont("Helvetica", 11)
self.drawRightString(18.5*cm, 26.8*cm,
"PAGE %d / %d" % (self._pageNumber, page_count))
我希望我没有忘记任何要清楚的事情。
非常感谢。
最佳答案
使用页面大小模块中已有的横向和纵向功能。
from reportlab.lib.pagesizes import letter, landscape
c = canvas.Canvas(file, pagesize=landscape(letter))
关于python - 报告实验室 : How to switch between portrait and landscape?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5913682/
我的问题: 对于某些要求,我的 Activity 需要两种不同的 xml 布局: 一个用于横向模式。 还有一个用于Landscape-reverse 模式(横向颠倒)。 不幸的是,Android 不允
如何检测手机的 4 个面中的哪一个面朝上。 我可以检测纵向/横向模式,但如何区分 landscape-turned-on-left-side 和 landscape-turned-on-right-s
我现在搜索了一天,但没有找到合适的解决方案。我的应用程序由一个 Tab Bar Controller 和一个 Navigation Controllers 组成。我希望所有屏幕都只有纵向屏幕,但只有一
需要说明的是,我的问题不是读取左右横向的航向值。它工作正常 我正在使用位置管理器并减去 90° 以读取横向右侧的航向值和横向左侧的 270°,默认情况下设备始终被视为纵向模式,这就是我们必须进行此调整
这个问题与here构成的问题非常相似。 我的问题是我有一张 map ,像这样: 该 map 是使用2D Perlin噪波制作的,然后遍历创建的高度图,根据相应元素的高度或坡度为地形中的每个元素分配类型
我已经编写了自己的 Perlin Noise 实现,并且运行良好。我可以通过改变频率来“放大”和缩小,但是当我放大时,噪音变得越来越平滑。 假设我有一个显示大陆的景观。我想放大到一个城市大小的区域(或
我正在探索线性遗传规划的世界,但我发现自己陷入了这个问题。在我看来,即使是最简单的问题的错误情况也非常不顺利。特别是,错误景观似乎总是包含这些巨大的恒定错误差距(解决方案的适应性仅为零的差距)。这使进
我已经正确配置了应用程序,它只能横向运行。当我在 Emulator (v.24.4.0.0) 上运行它时,Android 以纵向模式启动。应用程序以横向运行,但图片旋转并且窗口标题被隐藏,因为在纵向模
我有这样写的媒体查询: @media only screen and (max-device-width: 600px) and (orientation: portrait) { .img-resp
我有一个计算子网表的应用程序。 但如果我改变方向,TextViews 就是空的。 我为此寻找一个听众。欢迎替代方案:D在监听器中,我会重新计算表格。 最佳答案 在您的 Activity 中使用以下代码
我正在使用 iTextSharp 生成大型文档。在本文档中,我想要一些横向的特定页面。其余的都是肖像。有谁知道我该怎么做?开始一个新文档不是一种选择。 谢谢! 最佳答案 您可以设置文档大小,它会影响下
当 Activity 处于横向模式时如何滚动浏览 Activity, 场景:我的 textview 有大约一千个单词和几个按钮,当 Activity 处于横向模式时如何应用滚动 最佳答案 用 Scro
我试图为我的应用程序强制使用“横向”模式,因为我的应用程序绝对不是为“纵向”模式设计的。我怎样才能做到这一点? 最佳答案 现在可以使用 HTML5 webapp list 。见下文。 原答案: 您无法
我不明白为什么 iPhone“横向”上的 font-size 属性看起来比纵向或桌面浏览器大... 我有 body font-size: 100% 对于图片内的文字 17px 肖像 景观 我保证在横向
我试图为我的应用程序强制使用“横向”模式,因为我的应用程序绝对不是为“纵向”模式设计的。我怎样才能做到这一点? 最佳答案 现在可以使用 HTML5 webapp list 。见下文。 原答案: 您无法
直到最近我还在使用 Eclipse,在 Eclipse 中我只是创建了一个文件夹/res/layout-landscape 并在其中放置了替代的横向布局。 但是,似乎在 Android Studio
我想使用横向打印。在 Firefox 中,它总是以纵向打印吗?其他浏览器使用 landscape.@media print{ @page { 尺寸:景观; margin :0; } 最佳答案 我已经看
在 iOS6 上,我有一种方法可以让我的导航式应用程序中的一个 View Controller 在我按下时自动旋转到横向。 (基本上呈现一个伪造的 View Controller 并在 viewWil
我正在开发 iPad 应用程序,在 modalView Controller 中显示一些 View 。在景观中,当我单击 UITextField 进行一些输入时,模态视图 Controller 会上升
我想在默认情况下以横向左侧启动我的应用程序。但我想保留将其转为横向的可能性。有办法吗? (因为应用程序现在默认以横向方式启动) 最佳答案 如果您的应用仅适用于 iOS 8+,只需将 UIInterfa
我是一名优秀的程序员,十分优秀!