ActionSound1.cs
- //
- // This code is part of Document Solutions for PDF 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;
- }
- }
- }
-