In this article I will explain with an example, how to read vCard (.VCF) file information in ASP.Net using C# and VB.Net.
VCF Contact Cards
A vCard (.VCF) file is a standard for electronic business cards. vCards are used for storing and sharing Contact Information such as name, email, phone numbers, address, etc.
Install Thought.vCards package
HTML Markup
The HTML Markup consists of following controls:
Image – For displaying image.
Label – For displaying vCard (.VCF) file information.
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="10" valign="top">
<asp:Image ID="imgPhoto" runat="server" />
</td>
</tr>
<tr>
<td>Name:</td>
<td><asp:Label ID="lblName" runat="server" /></td>
</tr>
<tr>
<td>Company Name:</td>
<td><asp:Label ID="lblOrganization" runat="server" /></td>
</tr>
<tr>
<td>Title (Position):</td>
<td><asp:Label ID="lblTitle" runat="server" /></td>
</tr>
<tr>
<td>Mobile Number:</td>
<td><asp:Label ID="lblMobileNumber" runat="server" /></td>
</tr>
<tr>
<td>Home Number:</td>
<td><asp:Label ID="lblHomeNumber" runat="server" /></td>
</tr>
<tr>
<td>Work Number:</td>
<td><asp:Label ID="lblWorkNumber" runat="server" /></td>
</tr>
<tr>
<td>Email Address:</td>
<td><asp:Label ID="lblEmailAddress" runat="server" /></td>
</tr>
<tr>
<td>Website:</td>
<td><asp:Label ID="lblWebsite" runat="server" /></td>
</tr>
</table>
Namespace
You will need to import the following namespace.
C#
VB.Net
Reading and Importing vCard (.VCF) file information in ASP.Net
Inside the Page_Load event handler, the vCard (.VCF) class object is created and path of the vCard file is passed as parameter to it.
The information such as Name, Organization, Phone Numbers, Email Addresses, Websites, Photo and etc. of the contact are retrieved and set in their respective Label.
Then, a check is performed if Information such as Phone Numbers, Email Addresses and Websites is present in the vCard (.VCF) file, if present then it is set to their respective Label.
After that, if photo count is greater than 0 then BYTE Array is determined using GetBytes method and converted to BASE64 string and assigned to the ImageUrl property of the Image control.
C#
protected void Page_Load(object sender, EventArgs e)
{
//Read the vCard file into a vCard object.
vCard card = new vCard(Server.MapPath("~/vCards/Mudassar Khan.vcf"));
//Read Name.
lblName.Text = card.FormattedName;
//Read Organization.
lblOrganization.Text = card.Organization;
//Read Title.
lblTitle.Text = card.Title;
//Read Cell Phone Number.
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular) != null)
{
lblMobileNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber;
}
//Read Home Number.
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Home) != null)
{
lblHomeNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Home).FullNumber;
}
//Read Work Number.
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Work) != null)
{
lblWorkNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Work).FullNumber;
}
//Read Email Address.
if (card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet) != null)
{
lblEmailAddress.Text = card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet).Address;
}
//Read Website URL.
if (card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal) != null)
{
lblWebsite.Text = card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal).Url;
}
//Read Photo.
if (card.Photos.Count > 0)
{
imgPhoto.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(card.Photos[0].GetBytes());
}
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
'Read the vCard file into a vCard object.
Dim card As New vCard(Server.MapPath("~/vCards/Mudassar Khan.vcf"))
'Read Name.
lblName.Text = card.FormattedName
'Read Organization.
lblOrganization.Text = card.Organization
'Read Title.
lblTitle.Text = card.Title
'Read Cell Phone Number.
If card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular) IsNot Nothing Then
lblMobileNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber
End If
'Read Home Number.
If card.Phones.GetFirstChoice(vCardPhoneTypes.Home) IsNot Nothing Then
lblHomeNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Home).FullNumber
End If
'Read Work Number.
If card.Phones.GetFirstChoice(vCardPhoneTypes.Work) IsNot Nothing Then
lblWorkNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Work).FullNumber
End If
'Read Email Address.
If card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet) IsNot Nothing Then
lblEmailAddress.Text = card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet).Address
End If
'Read Website URL.
If card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal) IsNot Nothing Then
lblWebsite.Text = card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal).Url
End If
'Read Photo.
If card.Photos.Count > 0 Then
imgPhoto.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(card.Photos(0).GetBytes())
End If
End Sub
Screenshot
Downloads