AddEmbeddedFonts.cs
  1. //
  2. // このコードは、DioDocs for PDF のサンプルの一部として提供されています。
  3. // © MESCIUS inc. All rights reserved.
  4. //
  5. using System;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Drawing;
  9. using System.Collections.Generic;
  10. using GrapeCity.Documents.Pdf;
  11. using GrapeCity.Documents.Svg;
  12. using GrapeCity.Documents.Drawing;
  13. using GrapeCity.Documents.Text;
  14.  
  15. namespace DsPdfWeb.Demos.Basics
  16. {
  17. // このサンプルでは、フォントが埋め込まれていない既存の PDF を、
  18. // フォントが埋め込まれた PDF に変換する方法を紹介しています。
  19. public class AddEmbeddedFonts
  20. {
  21. public int CreatePDF(Stream stream)
  22. {
  23. // フォントが埋め込まれていない PDF を読み込みます。
  24. using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "CompleteJavaScriptBook-nofonts.pdf"));
  25. var docSrc = new GcPdfDocument();
  26. docSrc.Load(fs);
  27.  
  28. // 新しいドキュメントを作成し、元の PDF の各ページをその中に描画します。
  29. var doc = new GcPdfDocument();
  30. // 以下のコードにてフォントの埋め込みモードを設定できます。新しく作成した GcPdfDocument では、
  31. // EmbedSubset がデフォルトの埋め込みモードのため、このサンプルでは実際には必要ありません。
  32. // doc.FontEmbedMode = FontEmbedMode.EmbedSubset;
  33. foreach (var p in docSrc.Pages)
  34. {
  35. var pNew = doc.NewPage();
  36. pNew.Size = p.Size;
  37. pNew.Graphics.DrawPdfPage(p, p.Bounds);
  38. }
  39.  
  40. // PDF ドキュメントを保存します。
  41. doc.Save(stream);
  42. return doc.Pages.Count;
  43. }
  44. }
  45. }
  46.