Type1FontsDemo.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;

namespace DsPdfWeb.Demos
{
    // このサンプルでは、DsPdfのv4.1以降にて、Adobe Type1仕様のフォントを使用する
    // テキストを含むPDFの画像へのレンダリングがサポートされていることを確認できます。
    // このサンプルから生成された画像(例:TIFF)と、古いバージョンのDsPdf(v4.0以前)を使用し
    // 同じコードで生成された画像を比較すると、その違いを確認できます。
    public class Type1FontsDemo
    {
        public int CreatePDF(Stream stream)
        {
            var doc = new GcPdfDocument();
            // Adobe Type1フォントを使用したPDFを読み込み、そのPDFにテキストを追加し、
            // 他のサンプルと同様にPDFと画像(JPEGとTIFF)に保存します。
            // 読み込まれたPDFの元のテキストは、Type1フォントを使用しているため、
            // DsPdf v4.0以前を使用した場合、生成された画像に文字化けが発生していました。
            // v4.1からは、Type1フォントが正しくレンダリングされるようになります。
            using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "Type1FontSample.pdf"));
                doc.Load(fs);
                // ドキュメント内のページにテキストを追加します。
                var page = doc.Pages.Last;
                Common.Util.AddNote(
                    "このサンプルでは、DsPdf にて PDF を画像として保存する際に、Adobe Type1 フォントが正しくレンダリングされることを確認できます。" +
                    "これは、DsPdf v4.1 よりサポートされています。結果を見るには、生成された PDF が画像(例:TIFF)として保存されたものを開いてください。" +
                    "以前のバージョンの DsPdf で同じコードを使用すると、保存された画像にて文字化けが発生します。",
                    page,
                    new RectangleF(12, 12, 72 * 5, 0));
                // PDF ドキュメントを保存します。
                doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}