C#を使用した追加の注釈
Contents
[
Hide
]
既存のPDFファイルにキャレット注釈を追加する方法
キャレット注釈は、テキスト編集を示す記号です。キャレット注釈はマークアップ注釈でもあるため、CaretクラスはMarkupクラスから派生し、キャレット注釈のプロパティを取得または設定し、キャレット注釈の外観の流れをリセットする機能も提供します。
次のコードスニペットは、Aspose.PDF.Drawing ライブラリとも動作します。
キャレット注釈を作成する手順:
- PDFファイルを読み込む - 新しい Document。
- 新しい Caret Annotation を作成し、キャレットパラメーター(新しいRectangle、タイトル、サブジェクト、フラグ、色、幅、StartingStyleおよびEndingStyle)を設定します。この注釈はテキストの挿入を示すために使用されます。
- 新しいStrikeOutAnnotationを作成し、パラメーターを設定します(新しいRectangle、タイトル、色、新しいQuadPointsと新しいポイント、Subject、InReplyTo、ReplyType)。
- その後、ページにアノテーションを追加できます。
以下のコードスニペットは、PDFファイルにCaret Annotationを追加する方法を示しています:
using Aspose.Pdf.Annotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aspose.Pdf.Examples.Advanced
{
class ExampleCaretAnnotation
{
// ドキュメントディレクトリへのパス。
private const string _dataDir = "..\\..\\..\\..\\Samples";
public static void AddCaretAnnotation()
{
// PDFファイルを読み込む
Document document = new Document(System.IO.Path.Combine(_dataDir, "sample.pdf"));
// このアノテーションはテキストの挿入を示すために使用されます
var caretAnnotation1 = new CaretAnnotation(document.Pages[1], new Rectangle(299.988, 713.664, 308.708, 720.769))
{
Title = "Aspose User",
Subject = "Inserted text 1",
Flags = AnnotationFlags.Print,
Color = Color.Blue
};
// このアノテーションはテキストの置換を示すために使用されます
var caretAnnotation2 = new CaretAnnotation(document.Pages[1], new Rectangle(361.246, 727.908, 370.081, 735.107))
{
Flags = AnnotationFlags.Print,
Subject = "Inserted text 2",
Title = "Aspose User",
Color = Color.Blue
};
var strikeOutAnnotation = new StrikeOutAnnotation(document.Pages[1],
new Rectangle(318.407, 727.826, 368.916, 740.098))
{
Color = Color.Blue,
QuadPoints = new[] {
new Point(321.66, 739.416),
new Point(365.664, 739.416),
new Point(321.66, 728.508),
new Point(365.664, 728.508)
},
Subject = "Cross-out",
InReplyTo = caretAnnotation2,
ReplyType = ReplyType.Group
};
document.Pages[1].Annotations.Add(caretAnnotation1);
document.Pages[1].Annotations.Add(caretAnnotation2);
document.Pages[1].Annotations.Add(strikeOutAnnotation);
document.Save(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
}
キャレット注釈を取得する
次のコードスニペットを使用して、PDFドキュメントでキャレット注釈を取得してください。
public static void GetCaretAnnotation()
{
// PDFファイルをロードする
Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
var caretAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == AnnotationType.Caret)
.Cast<CaretAnnotation>();
foreach (var ca in caretAnnotations)
{
Console.WriteLine($"{ca.Rect}");
}
}
キャレット注釈を削除する
次のコードスニペットは、PDFファイルからキャレット注釈を削除する方法を示しています。
public static void DeleteCaretAnnotation()
{
// PDFファイルをロードする
Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
var caretAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == AnnotationType.Caret)
.Cast<CaretAnnotation>();
foreach (var ca in caretAnnotations)
{
document.Pages[1].Annotations.Delete(ca);
}
document.Save(System.IO.Path.Combine(_dataDir, "sample_caret_del.pdf"));
}
特定のページ領域をRedaction Annotationで塗りつぶす方法 - Aspose.PDF for .NET
Aspose.PDF for .NETは、既存のPDFファイルでアノテーションを追加および操作する機能をサポートしています。最近、いくつかのお客様からPDFドキュメントの特定のページ領域からテキストや画像などの要素を削除する(塗りつぶす)要望がありました。この要求を満たすために、特定のページ領域を塗りつぶすために使用できるRedactionAnnotationというクラスが提供されています。また、既存のRedactionAnnotationsを操作して塗りつぶすこともできます(つまり、アノテーションをフラット化し、その下のテキストを削除します)。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// ドキュメントを開く
Document doc = new Document(dataDir + "input.pdf");
// 特定のページ領域のRedactionAnnotationインスタンスを作成
RedactionAnnotation annot = new RedactionAnnotation(doc.Pages[1], new Aspose.Pdf.Rectangle(200, 500, 300, 600));
annot.FillColor = Aspose.Pdf.Color.Green;
annot.BorderColor = Aspose.Pdf.Color.Yellow;
annot.Color = Aspose.Pdf.Color.Blue;
// 塗りつぶしアノテーションに印刷されるテキスト
annot.OverlayText = "REDACTED";
annot.TextAlignment = Aspose.Pdf.HorizontalAlignment.Center;
// 塗りつぶしアノテーションにオーバーレイテキストを繰り返す
annot.Repeat = true;
// アノテーションを最初のページのアノテーションコレクションに追加
doc.Pages[1].Annotations.Add(annot);
// アノテーションをフラット化し、ページの内容(テキストや画像を削除)を塗りつぶす
annot.Redact();
dataDir = dataDir + "RedactPage_out.pdf";
doc.Save(dataDir);
ファサードアプローチ
Aspose.PDF.Facades 名前空間には、PDFファイル内の既存のアノテーションを操作する機能を提供する PdfAnnotationEditor というクラスもあります。このクラスには、特定のページ領域を削除する機能を提供する RedactArea(..) というメソッドが含まれています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
Aspose.Pdf.Facades.PdfAnnotationEditor editor = new Aspose.Pdf.Facades.PdfAnnotationEditor();
// 特定のページ領域を隠蔽
editor.RedactArea(1, new Aspose.Pdf.Rectangle(100, 100, 20, 70), System.Drawing.Color.White);
editor.BindPdf(dataDir + "input.pdf");
editor.Save(dataDir + "FacadesApproach_out.pdf");