Font question

  • Thread starter Thread starter Chubbly Geezer
  • Start date Start date
C

Chubbly Geezer

I'm using a particular font (for credit card symbols) within a crystal
report which looks fine when I preview, however when I run the report with
real data, the font is now shown correctly. It seems to revert back to a
standard font and displays letters instead of card symbols. Any ideas.?
Can I embed a font or include one in my VB app.?

Thanks
 
Thanks Ken

not quite working correctly however.

Am using the following code:
-----
Imports System.Runtime.InteropServices

Imports System.IO

Imports System.Drawing.Text



Private Sub frmCrystalViewer_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Try

Dim pfc As New PrivateFontCollection()

'load the resource

Dim fontStream As Stream =
Me.GetType().Assembly.GetManifestResourceStream("WARCSubscriptionsLetterGenerator.TRPI____.PFB")

'create an unsafe memory block for the data

Dim data As System.IntPtr = Marshal.AllocCoTaskMem(fontStream.Length)

'create a buffer to read in to

Dim fontdata() As Byte

ReDim fontdata(fontStream.Length)

'fetch the font program from the resource

fontStream.Read(fontdata, 0, fontStream.Length)

'copy the bytes to the unsafe memory block

Marshal.Copy(fontdata, 0, data, fontStream.Length)

'pass the font to the font collection

pfc.AddMemoryFont(data, fontStream.Length)

'close the resource stream

fontStream.Close()

'free the unsafe memory

Marshal.FreeCoTaskMem(data)

Catch objE As Exception

MessageBox.Show(objE.Message)

End Try

End Sub

-----

I am using an Adobe *.PFB font as shown above.

The code error on

pfc.AddMemoryFont(data, fontStream.Length)

with a 'File Not Found' message.

I am running this code on the form_load of a form that contains a crystal
report viewer and the font in question is within my crystal report. Am
assuming that as long as the font is held in memory, where ever I view the
font should display correctly.

Thx



Chubbly
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top