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

namespace GcPdfWeb.Samples
{
    // このサンプルは、HelloWorld サンプルで作成されたPDFファイルを読み込み、
    // 最初のページに短いテキストを追加し、結果を保存します。
    public class LoadPDF
    {
        public void CreatePDF(Stream stream)
        {
            GcPdfDocument doc = new GcPdfDocument();
            // 重要:GcPdfDocument.Load() メソッドを使用して既存のPDFファイルを操作する場合、
            // そのメソッドに渡されたストリームは、ドキュメントを操作している間は開いたままに
            // しておく必要があります。 
            // これは、Load() メソッドが PDF ドキュメント全体をすぐにメモリに読み込まず、
            // 必要に応じて PDF のさまざまな部分を読み込むためです。 
            // ストリームは読み込みにのみ使用され、元のファイル自体は変更されません。
            // 変更を保存するには、通常どおり GcPdfDocument.Save() メソッドの
            // オーバーロードの1つを呼び出す必要があります。
            using (var fs = new FileStream(Path.Combine("Resources", "PDFs", "HelloWorld.pdf"), FileMode.Open, FileAccess.Read))
            {
                doc.Load(fs);
                // ドキュメント内の(唯一の)ページにメモを追加します。
                var page = doc.Pages.Last;
                Common.Util.AddNote(
                    "これは既存の PDF ファイル(HelloWorld.pdf)の文書に追加した文字列です。",
                    page,
                    new RectangleF(72, 72 * 3, page.Size.Width - 72 * 2, 72));
                // PDF ドキュメントを保存します。
                doc.Save(stream);
            }
        }
    }
}