ReplaceText.cs
//
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using System.Text;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Pdf.AcroForms;
namespace DsPdfWeb.Demos
{
// このサンプルでは、FindTextParams クラスを使用してテキストをすべて検索し、
// GcPdfDocument.ReplaceText メソッドを使用して置換する方法を紹介しています。
//
// ここでは、請求書の右上にある以下のテキストを置換しています。
// 担当:"葡萄城 太郎" -> "葡萄 次郎"
// 電話:"022-777-8210" -> "050-5490-4661"
// 発行日:"2022年8月30日" -> 現在の日付
// メール:"dio@example.com" -> "docs@example.com"
public class ReplaceText
{
public int CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "invoicejp.pdf"));
doc.Load(fs);
// 以下のとおり置換します。
// "葡萄城 太郎" -> "葡萄 次郎"
// "022-777-8210" -> "050-5490-4661"
doc.ReplaceText(new FindTextParams("葡萄城 太郎", false, true), "葡萄 次郎");
doc.ReplaceText(new FindTextParams("022-777-8210", false, true), "050-5490-4661");
// "2022年8月30日" -> 現在の日付
var dt = DateTime.Now;
doc.ReplaceText(new FindTextParams("2022年8月30日", false, true), dt.ToLongDateString());
// "dio@example.com" -> "docs@example.com"
var font = GrapeCity.Documents.Text.Font.FromFile(Path.Combine("Resources", "Fonts", "ipam.ttc"));
doc.ReplaceText(new FindTextParams("dio@example.com", false, true), "docs@example.com", null, font);
// 参考として、オリジナルのPDFを追加します。
Common.Util.AddNote("参考として、修正前のオリジナルのPDFのコピーを次のページに追加しています。", doc.NewPage());
var docOrig = new GcPdfDocument();
docOrig.Load(fs);
doc.MergeWithDocument(docOrig);
// PDF ドキュメントを保存します。
doc.Save(stream);
return doc.Pages.Count;
}
}
}