作成日: 2024/06/27 最終更新日: 2024/06/27
文書種別
使用方法
詳細
既存のPDFを読み込み、FormXObjectとして描画することで、複数のPDFを重ね合わせたPDFを作成できます。元のPDF毎にレイヤーを分けることも可能です。
具体的には以下のような処理になります。
using GrapeCity.Documents.Drawing; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Pdf.Graphics; -----
// PDF読込 var docImage = new GcPdfDocument(); docImage.Load(File.OpenRead("背景.pdf")); var docText = new GcPdfDocument(); docText.Load(File.OpenRead("本文.pdf")); // 新規ドキュメントを作成、レイヤー定義 var doc = new GcPdfDocument(); var layerImage = doc.OptionalContent.AddLayer("背景"); var layerText = doc.OptionalContent.AddLayer("本文"); // 背景のFormXObjectを作成、レイヤー指定 var fxoImage = new FormXObject(doc, docImage.Pages.First()); fxoImage.Layer = layerImage; foreach (var pageText in docText.Pages) { // 本文と同じサイズでページを作成 var page = doc.NewPage(); page.Size = pageText.Size; var g = page.Graphics; // 本文のFormXObjectを作成、レイヤー指定 var fxoText = new FormXObject(doc, pageText); fxoText.Layer = layerText; // ページにFormXObjectを描画 g.DrawForm(fxoImage, page.Bounds, null, ImageAlign.CenterImage); g.DrawForm(fxoText, page.Bounds, null, ImageAlign.CenterImage); } // フォントの重複を削除 doc.OptimizeFonts(); // PDF保存 doc.Save("Overlay.pdf");