PDFsharp & MigraDoc Foundation
http://forum.pdfsharp.com/

Changing Text color, using combobox
http://forum.pdfsharp.com/viewtopic.php?f=2&t=3979
Page 1 of 1

Author:  Rocky48 [ Sun Jun 02, 2019 3:19 pm ]
Post subject:  Changing Text color, using combobox

I am trying to get the color picked from a combobox into the XBrushes expression so that the user can change the color of the font to the color they wish. think I have sorted out getting the Font name variable into the code, but it does not work for XBrushes.
Due to my little experience of VB I am not sure how to express a variable in the Xbrushes class expression.
The error I get is: 'FColor is not a member of XBrushes'
Code:
Imports System.Data.SqlClient
Imports System.Drawing
Imports PdfSharp
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing.Layout
Enum pageOrientation
    Landscape
    Portrait
End Enum
Enum pagesize
    A4
    A5
End Enum

Public Class PrintFrm
    Private Const Lf As String = vbCrLf
    Private connectionString As String = "Data Source=DESKTOP-S7FRNAL\SQLEXPRESS;Initial Catalog=Verses_Find;Integrated Security=True"
    Public Property dt As Object

    Private Sub PrintFrm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim Print As New PrintFrm
        Me.TopMost = True
        Me.WindowState = FormWindowState.Maximized
        'TODO: This line of code loads data into the 'Verses_FindDataSet4.TxtColor' table. You can move, or remove it, as needed.
        Me.TxtColorTableAdapter.Fill(Me.Verses_FindDataSet4.TxtColor)
        'TODO: This line of code loads data into the 'Verses_FindDataSet3.CSize' table. You can move, or remove it, as needed.
        Me.CSizeTableAdapter.Fill(Me.Verses_FindDataSet3.CSize)

        For Each oFont As FontFamily In FontFamily.Families
            cboFont.Items.Add(oFont.Name)
        Next



        MessageBox.Show(Replace(txbVerse.Text, Chr(13) & Chr(10), " VBCrLf "))
        Dim cboVal1 As String
        Dim lstVal2 As Integer
        Dim cboVal3 As String
        Dim boxX As Integer
        Dim boxY As Integer
        Dim cellw As Integer
        Dim cellh As Integer
        Dim sql As String = Nothing
        Dim sqlAdaptor As SqlDataAdapter
        Dim dt As New DataTable
        Dim SID As Integer
        Dim ort As String
        Dim Narrative As String
        Narrative = Nothing
        ort = Nothing
        Dim FSize As Integer
        Using connection As New SqlConnection(connectionString)
            connection.Open()
            Dim selectStatement = $"Select SID, BoxX, BoxY, Cellw, Cellh, Size, ort, Narrative From CSize Where CID = {cboCSize}"
            sqlAdaptor = New SqlDataAdapter(selectStatement, connection)
            dt = New DataTable()
            sqlAdaptor.Fill(dt)
            MessageBox.Show(Narrative, "Card Size")
        End Using

        Dim document As PdfDocument
        ' Create a new PDF document
        document = New PdfDocument()
        document.Info.Title = "Created with PDFsharp"

        ' Create an empty page
        Dim page As PdfPage = document.AddPage
        If ort = "L" Then
            page.Orientation = CType(pageOrientation.Landscape, PdfSharp.PageOrientation)
            page.Width = XUnit.FromMillimeter(297)
            page.Height = XUnit.FromMillimeter(210)
        Else
            page.Orientation = CType(pageOrientation.Portrait, PdfSharp.PageOrientation)
            page.Width = XUnit.FromMillimeter(210)
            page.Height = XUnit.FromMillimeter(297)

        End If

        ' Draw the text
        Dim Ftext As String = txbVerse.Text
        Dim Font As String = Nothing

        cboVal1 = CStr(cboFont.SelectedValue)
        lstVal2 = CInt(lstFSize.SelectedValue)
        cboVal3 = CStr(cboColor.SelectedValue)

        Dim gfx As XGraphics
        gfx = XGraphics.FromPdfPage(page)
        Dim Cfont As XFont = New XFont(cboVal1, lstVal2, XFontStyle.Regular)
        Dim tf As XTextFormatter
        tf = New XTextFormatter(gfx)
       FColor As String = cboVal3
        Dim rect As XRect
        rect = New XRect(boxX, boxY, cellw, cellh)
        gfx.DrawRectangle(XBrushes.SeaShell, rect)
        tf.Alignment = XParagraphAlignment.Center
        tf.DrawString(Ftext, Cfont, XBrushes.FColor, rect, XStringFormats.TopLeft)

        ' Save the document
        Dim filename As String = "verse.pdf"
        document.Save(filename)

        ' ...and start a viewer.
        Process.Start(filename)
    End Sub



    Private Sub btnPasteVerse_Click(sender As Object, e As EventArgs) Handles btnPasteVerse.Click
        ' Determine if there is any text in the Clipboard to paste into the text box.
        If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then
            ' Determine if any text is selected in the text box.
            If txbVerse.SelectionLength > 0 Then
                ' Ask user if they want to paste over currently selected text.
                If MessageBox.Show("Do you want to paste over current selection?",
                    "Cut Example", MessageBoxButtons.YesNo) = DialogResult.No Then
                    ' Move selection to the point after the current selection and paste.
                    txbVerse.SelectionStart = txbVerse.SelectionStart +
                        txbVerse.SelectionLength
                End If
            End If
            ' Paste current text in Clipboard into text box.
            txbVerse.Paste()
        End If
    End Sub

    Private Sub txbVerse_TextChanged(sender As Object, e As EventArgs) Handles txbVerse.TextChanged
        Dim FSize As Single
        FSize = 24
        txbVerse.Font = New Font(cboFont.Text, FSize, FontStyle.Regular)
    End Sub

    Private Sub btnClose3_Click(sender As Object, e As EventArgs) Handles btnClose3.Click
        Close()
    End Sub
End Class


Can anyone help please?

Author:  Rocky48 [ Thu Jun 27, 2019 6:32 pm ]
Post subject:  Re: Changing Text color, using combobox

Just been advised that in PDFSharp Forms, there is a ColorComboBox clas namespace.
I have updated the dll, but can't workout how to use it.
I have found a ColorComboBox.cs file on Wiki but is written in c# and as I new to programming I don't what to do with it.
I have added the PDFSharp.Forms to the form and it understands it as legal namespace, but does not appear to have any properties.
Some info on how I can use this feature would be helpful, with example code.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/