找回密码
 立即注册

QQ登录

只需一步,快速开始

xudapeng

注册会员

4

主题

10

帖子

24

积分

注册会员

积分
24

活字格认证

最新发帖

[已处理] spread8打印问题

xudapeng
注册会员   /  发表于:2015-10-21 22:29  /   查看:10201  /  回复:11
用spread8自带的打印功能的时候,如何设置不能打印spread的内容。
比如设置hearder的时候用,.activesheet.printinfo.header
有没有类似的属性。谢了!

11 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-10-22 11:22:00
沙发
您好,

我对您的问题不是太理解,为什么要设置不能打印的内容?通常都是显示是什么样式就打印什么样式?
您是想对数据进行过滤还是做什么处理呢?
回复 使用道具 举报
xudapeng
注册会员   /  发表于:2015-10-22 20:57:00
板凳
回复 2楼frank.zhang的帖子

我想打印的东西,它是把spread的内容取出来,编辑之后,在进行打印。
因为我只知道spread,print()的方法,所以我想用这个方法,但是还不想打印spread的内容。
如果您知道别的打印的方法,请指导一下。
我现在用的vb.net2013,spread8.0。谢了
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-23 11:52:00
地板
您好,

我对您的问题理解是,需要打印一个Form的内容,数据来源是Spread。

非常抱歉,如果脱离Spread,您需要自己实现系统的打印方法。
具体可以参考:
http://www.cnblogs.com/liemkell/archive/2011/05/31/2064211.html

您可以看到实现打印的时候,需要将需要打印的元素,自己在程序中绘制,如果简单的话,绘制起来还是方便的。

如果对您的问题理解不正确,欢迎补充。
回复 使用道具 举报
xudapeng
注册会员   /  发表于:2015-10-23 13:14:00
5#
回复 4楼frank.zhang的帖子

上面的东西,我看了。但是我试了以后,不太好用。
在vb.net2013里,如何实现打印一些内容,请指导一下。
我是的代码
dim test as new system.drawing.printing.printdocument
test.print()
如何把要打印的内容加进去。
谢谢
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-10-23 13:26:00
6#
回复 5楼xudapeng的帖子

你好,你是想打印Spread里面的内容
但是你不想把里面有些东西打印出来对吗?

评分

参与人数 1金币 +500 收起 理由
frank.zhang + 500 协助回答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-23 13:56:00
7#
回复 5楼xudapeng的帖子

您好,

需要您提供截图和例子程序,以确保对问题理解的一致。
回复 使用道具 举报
xudapeng
注册会员   /  发表于:2015-10-23 14:53:00
8#
为什么我声明printDocument的对象后,没有printDocument.PrintPage这个属性
dim a as new printDocument
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-10-23 16:14:00
9#
回复 8楼xudapeng的帖子

亲,你到底要是什么需求?Spread的印刷,还是Spread的部分印刷,
还是别的。如果可以,请上传个Demo。

PrintPage是一个事件,不是属性,调用的方法也不是这么写的,Formwork
本身的打印你也可以去网上找到很多例子。
下面的代码是调用PrintPage事件的。你可以参考一下:
Imports System
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Windows.Forms

Public Class Form1
    Inherits System.Windows.Forms.Form
    Private WithEvents printButton As System.Windows.Forms.Button
    Private printFont As Font
    Private streamToPrint As StreamReader

    Public Sub New()
        ' The Windows Forms Designer requires the following call.
        InitializeComponent()
        InitializeForm()
    End Sub

    ' The Click event is raised when the user clicks the Print button.
    Private Sub printButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles printButton.Click
        Try
            streamToPrint = New StreamReader("C:\My Documents\MyFile.txt")
            Try
                printFont = New Font("Arial", 10)
                Dim pd As New PrintDocument()
                AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
                pd.Print()
            Finally
                streamToPrint.Close()
            End Try
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ' The PrintPage event is raised for each page to be printed.
    Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
        Dim linesPerPage As Single = 0
        Dim yPos As Single = 0
        Dim count As Integer = 0
        Dim leftMargin As Single = ev.MarginBounds.Left
        Dim topMargin As Single = ev.MarginBounds.Top
        Dim line As String = Nothing

        ' Calculate the number of lines per page.
        linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)

        ' Print each line of the file.
        While count < linesPerPage
            line = streamToPrint.ReadLine()
            If line Is Nothing Then
                Exit While
            End If
            yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
            ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
            count += 1
        End While

        ' If more lines exist, print another page.
        If (line IsNot Nothing) Then
            ev.HasMorePages = True
        Else
            ev.HasMorePages = False
        End If
    End Sub

    Private Sub InitializeForm()
        Me.components = New System.ComponentModel.Container()
        Me.printButton = New System.Windows.Forms.Button()

        Me.ClientSize = New System.Drawing.Size(504, 381)
        Me.Text = &quotrint Example"

        printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
        printButton.Location = New System.Drawing.Point(32, 110)
        printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat
        printButton.TabIndex = 0
        printButton.Text = &quotrint the file."
        printButton.Size = New System.Drawing.Size(136, 40)
        AddHandler printButton.Click, AddressOf printButton_Click

        Me.Controls.Add(printButton)
    End Sub


    ' This is the main entry point for the application.   
    Public Shared Sub Main()
        Application.Run(New Form1())
    End Sub

End Class

评分

参与人数 1金币 +999 收起 理由
frank.zhang + 999 协助回答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
xudapeng
注册会员   /  发表于:2015-10-26 13:43:00
10#
回复 9楼rbgongming的帖子

上面的问题解决了,谢谢!!
还有一个问题,就是我要打印多少份,用哪个属性啊,谢谢啊
比如我要打印10份!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部