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/ |