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;
}
}
}