SoundAnnotations.cs
// 
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © MESCIUS inc. All rights reserved.
// 
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Pdf.Annotations;

namespace DsPdfWeb.Demos.Basics
{
    // このサンプルは、PDF ドキュメントに音声注釈を追加する方法を示します。
    public class SoundAnnotations
    {
        public int CreatePDF(Stream stream)
        {
            var doc = new GcPdfDocument();
            var page = doc.NewPage();
            // 注釈の作成者のユーザー名
            var user1 = "Aiff Ding";
            var user2 = "Wav Dong";

            var tf = new TextFormat() { Font = StandardFonts.Helvetica, FontSize = 10 };
            var noteWidth = 72 * 3;
            var gap = 8;

            var rc = Common.Util.AddNote(
                "このサンプルは、DsPdf を使用して音声注釈を追加する方法を示します。" +
                "注釈に関連付けられているトラックは、それをサポートしているビューワで再生できます。" +
                "PDF は、音声注釈で AIFF および WAV トラックをサポートします。",
                page);

            // AIFF 音声注釈
            var ip = new PointF(rc.X, rc.Bottom + gap);
            rc = Common.Util.AddNote("赤色の音声注釈がこのメモの右側に配置されています。音声を再生するにはアイコンをダブルクリックします。",
                page, new RectangleF(ip.X, ip.Y, noteWidth, 100));
            var aiffAnnot = new SoundAnnotation()
            {
                UserName = user1,
                Contents = "AIFF トラックによる音声注釈です。",
                Rect = new RectangleF(rc.Right, rc.Top, 24, 24),
                Icon = SoundAnnotationIcon.Speaker,
                Color = Color.Red,
                Sound = SoundObject.FromFile(Path.Combine("Resources", "Sounds", "ding.aiff"), AudioFormat.Aiff)
            };
            page.Annotations.Add(aiffAnnot);

            // WAV 音声注釈
            ip = new PointF(rc.X, rc.Bottom + gap);
            rc = Common.Util.AddNote("青色の音声注釈がこのノートの右側に配置されています。音声を再生するにはアイコンをダブルクリックします。",
                page, new RectangleF(ip.X, ip.Y, noteWidth, 100));
            var wavAnnot = new SoundAnnotation()
            {
                UserName = user2,
                Contents = "WAV トラックによる音声注釈です。",
                Rect = new RectangleF(rc.Right, rc.Top, 24, 24),
                Icon = SoundAnnotationIcon.Mic,
                Color = Color.Blue,
                Sound = SoundObject.FromFile(Path.Combine("Resources", "Sounds", "dong.wav"), AudioFormat.Wav)
            };
            page.Annotations.Add(wavAnnot);

            // PDF ドキュメントを保存します。
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}