ActionSound1.cs
C# VB
//// This code is part of Document Solutions for PDF .NET demos.// Copyright (c) MESCIUS inc. All rights reserved.//using GrapeCity.Documents.Pdf;using GrapeCity.Documents.Pdf.AcroForms;using GrapeCity.Documents.Pdf.Actions;using GrapeCity.Documents.Pdf.Annotations;using GrapeCity.Documents.Text;using System.Drawing;using System.IO;
namespace DsPdfWeb.Demos{ // This sample creates a PDF with some pushbuttons, // and associates each button's MouseDown event // with an ActionSound that plays a sound file. public class ActionSound1 { public int CreatePDF(Stream stream) { string[] soundPaths = { Path.Combine("Resources", "Sounds", "ding.aiff"), Path.Combine("Resources", "Sounds", "dong.wav"), }; var doc = new GcPdfDocument(); var page = doc.NewPage();
var rc = Common.Util.AddNote( "This sample creates a PDF with some pushbuttons, " + "and associates each button's MouseDown event " + "with an ActionSound that plays a sound file.", page);
var resolution = page.Graphics.Resolution; var g = page.Graphics; var tf = new TextFormat() { Font = StandardFonts.Times, FontSize = 14 }; // Prep a simple layout: var ip = new PointF(resolution, rc.Bottom + resolution / 2); var fldOffset = resolution * 2.5f; var fldHeight = tf.FontSize * 1.2f; var dY = resolution * 0.4f;
// Add the buttons with ActionSound on MouseDown events: foreach (var soundPath in soundPaths) { var btn = new PushButtonField(); btn.Widget.Page = page; btn.Widget.Rect = new RectangleF(ip.X + fldOffset, ip.Y, resolution, fldHeight); btn.Widget.ButtonAppearance.Caption = Path.GetFileNameWithoutExtension(soundPath); var sound = new ActionSound(SoundObject.FromFile(soundPath)) { // Adjust sound properties if/as needed: Volume = 0.5f, }; btn.Widget.Events.MouseDown = sound; btn.Widget.Highlighting = HighlightingMode.Invert; doc.AcroForm.Fields.Add(btn); ip.Y += dY; }
// Done: doc.Save(stream); return doc.Pages.Count; } }}