首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像一样在一张打印中打印身份证的集合?

如何像一样在一张打印中打印身份证的集合?
EN

Stack Overflow用户
提问于 2017-10-31 07:33:08
回答 1查看 866关注 0票数 1

在我的申请中,我有一个表格,用来创建员工身份证。一切都是好的,但我正面临一个问题,在打印它通过添加所有选定的身份证到一个(S)页。类似地,在1页中打印大约4张风景卡片非常容易,这可以使用打印文档方法以及rdlc报告来完成。在其中,我使用printdocument的PrintPage事件来完成工作和rdlc报表的参数。但这两张每张卡的限制是4张。但我想要的是说,有二十名新雇员/工作人员的身份证是必需的,我想一次全部打印出来。

我试过什么?

PrintDocument方法

将所有身份证添加到DataGridView中,然后在PrintDocument的PrintPage事件上使用此代码

代码语言:javascript
复制
Dim i as integer = 25
For j as Integer = 0 To dgv.rowcount - 1
   e.Graphics.DrawImage(dgv.rows(j).Cells(0).Value, 25, i, 375, 236)
   i += 241
Next
i = 25

但每次打印最多只能打印4张卡片。我试着使用e.HasMorePages = True,但无法让它得到我想要的东西。

RDLC报告方法

创建一个DataSet、DS1,并添加一个列名与我的datagridview列名相同的表,然后使用DataSet、DS1创建一个rdlc报告,并在其中添加一个表,其中只有要显示的图像列。

但不幸的是,在这种情况下,这是最大的失败,因为它甚至不能显示一张图片。因此,我可以选择在报表上创建图片,并使用参数方法从表单中获取值,这再次限制我每次打印超过4张卡片。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 10:04:44

下面是一个在多个页面上打印项目列表的示例。在这种情况下,它对一页做了四次。

代码语言:javascript
复制
Const ITEMS_PER_PAGE As Integer = 4

Private items As List(Of Object)
Private itemIndex As Integer

Private Sub PrintDocument1_BeginPrint(sender As Object, e As PrintEventArgs) Handles PrintDocument1.BeginPrint
    'Start from the beginning of the list.
    itemIndex = 0
End Sub

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    For i = 1 To ITEMS_PER_PAGE
        If itemIndex = items.Count Then
            'We're done.
            Exit For
        End If

        Dim item = items(itemIndex)

        'Print item here.

        itemIndex += 1
    Next

    'Print another page if and only if we are not at the end of the list.
    e.HasMorePages = itemIndex < items.Count
End Sub

注意,itemIndex在调用PrintPage事件处理程序之间维护其值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47030047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档