Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
PDFドキュメント管理アプリは、ドキュメントに注釈を付けるためのさまざまなツールを提供します。PDFの内部構造の観点から、これらのツールは注釈です。以下の種類の描画ツールをサポートしています。
注釈を追加するアプローチは、どの注釈でも一般的です。
以下のコードスニペットは、Aspose.PDF.Drawingライブラリでも動作します。
線の注釈の目的は、ページに単純な線や矢印を表示することです。
線を作成するには、新しいLineAnnotationオブジェクトを作成する必要があります。
LineAnnotationクラスのコンストラクタは4つのパラメータを取ります:
また、いくつかのプロパティを初期化する必要があります:
Title
- 通常、これはこのコメントを作成したユーザーの名前です。Subject
- 任意の文字列を指定できますが、一般的には注釈の名前です。線をスタイルするためには、色、幅、開始スタイル、終了スタイルを設定する必要があります。これらのプロパティは、PDFビューアで注釈がどのように表示され、動作するかを制御します。たとえば、StartingStyle
およびEndingStyle
プロパティは、線の端に描画される形状(開いた矢印、閉じた矢印、円など)を決定します。
以下のコードスニペットは、PDFファイルに線の注釈を追加する方法を示しています:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddLineAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments.pdf"))
{
// Create Line Annotation
var lineAnnotation = new Aspose.Pdf.Annotations.LineAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(550, 93, 562, 439),
new Aspose.Pdf.Point(556, 99), new Aspose.Pdf.Point(556, 443))
{
Title = "John Smith",
Color = Aspose.Pdf.Color.Red,
Width = 3,
StartingStyle = Aspose.Pdf.Annotations.LineEnding.OpenArrow,
EndingStyle = Aspose.Pdf.Annotations.LineEnding.OpenArrow,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 124, 1021, 266))
};
// Add annotation to the page
document.Pages[1].Annotations.Add(lineAnnotation);
// Save PDF document
document.Save(dataDir + "AddLineAnnotation_out.pdf");
}
}
SquareおよびCircle注釈は、ページに矩形または楕円を表示します。開くと、関連するメモのテキストを含むポップアップウィンドウが表示されます。四角形の注釈は、円の注釈(Aspose.Pdf.Annotations.CircleAnnotationクラスのインスタンス)と形状を除いて同じです。
新しい円または楕円の注釈を描くには、新しいCircleAnnotationオブジェクトを作成する必要があります。CircleAnnotation
クラスのコンストラクタは2つのパラメータを取ります:
また、CircleAnnotation
オブジェクトのいくつかのプロパティ(タイトル、色、内部色、不透明度など)を設定できます。これらのプロパティは、PDFビューアで注釈がどのように表示され、動作するかを制御します。ここで、四角形の注釈においても、InteriorColor
は塗りつぶしの色であり、Color
は境界の色です。
矩形を描くことは、円を描くことと同じです。以下のコードスニペットは、PDFページに円と四角形の注釈を追加する方法を示しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddCircleAndSquareAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "appartments.pdf"))
{
// Create Circle Annotation
var circleAnnotation = new Aspose.Pdf.Annotations.CircleAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(270, 160, 483, 383))
{
Title = "John Smith",
Subject = "Circle",
Color = Aspose.Pdf.Color.Red,
InteriorColor = Aspose.Pdf.Color.MistyRose,
Opacity = 0.5,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 316, 1021, 459))
};
// Create Square Annotation
var squareAnnotation = new Aspose.Pdf.Annotations.SquareAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(67, 317, 261, 459))
{
Title = "John Smith",
Subject = "Rectangle",
Color = Aspose.Pdf.Color.Blue,
InteriorColor = Aspose.Pdf.Color.BlueViolet,
Opacity = 0.25,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 196, 1021, 338))
};
// Add annotations to the page
document.Pages[1].Annotations.Add(circleAnnotation);
document.Pages[1].Annotations.Add(squareAnnotation);
// Save PDF document
document.Save(dataDir + "AddCircleAndSquareAnnotations_out.pdf");
}
}
例として、PDFドキュメントに四角形と円の注釈を追加した結果を示します:
ポリツールを使用すると、任意の数の辺を持つ形状や輪郭をドキュメントに作成できます。
多角形の注釈は、ページ上の多角形を表します。任意の数の頂点を持ち、直線で接続されています。 ポリラインの注釈も多角形に似ていますが、唯一の違いは、最初と最後の頂点が暗黙的に接続されていないことです。
PolygonAnnotationは多角形の注釈を担当します。PolygonAnnotationクラスのコンストラクタは3つのパラメータを取ります:
Color
とInteriorColor
は、それぞれ境界と塗りつぶしの色に使用されます。
PolygonAnnotationは多角形の注釈を担当します。PolygonAnnotationクラスのコンストラクタは3つのパラメータを取ります:
PolygonAnnotation
の代わりに、この形状を塗りつぶすことはできないため、InteriorColor
を使用する必要はありません。
以下のコードスニペットは、PDFファイルに多角形とポリラインの注釈を追加する方法を示しています:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddPolygonAndPolylineAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "appartments.pdf"))
{
// Create Polygon Annotation
var polygonAnnotation = new Aspose.Pdf.Annotations.PolygonAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(270, 193, 571, 383),
new Aspose.Pdf.Point[] {
new Aspose.Pdf.Point(274, 381),
new Aspose.Pdf.Point(555, 381),
new Aspose.Pdf.Point(555, 304),
new Aspose.Pdf.Point(570, 304),
new Aspose.Pdf.Point(570, 195),
new Aspose.Pdf.Point(274, 195)
})
{
Title = "John Smith",
Color = Aspose.Pdf.Color.Blue,
InteriorColor = Aspose.Pdf.Color.BlueViolet,
Opacity = 0.25,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 196, 1021, 338))
};
// Create Polyline Annotation
var polylineAnnotation = new Aspose.Pdf.Annotations.PolylineAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(270, 193, 571, 383),
new Aspose.Pdf.Point[] {
new Aspose.Pdf.Point(545, 150),
new Aspose.Pdf.Point(545, 190),
new Aspose.Pdf.Point(667, 190),
new Aspose.Pdf.Point(667, 110),
new Aspose.Pdf.Point(626, 111)
})
{
Title = "John Smith",
Color = Aspose.Pdf.Color.Red,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 196, 1021, 338))
};
// Add annotations to the page
document.Pages[1].Annotations.Add(polygonAnnotation);
document.Pages[1].Annotations.Add(polylineAnnotation);
// Save PDF document
document.Save(dataDir + "AddPolygonAndPolylineAnnotations_out.pdf");
}
}
すべての注釈はAnnotations
コレクションに保存されます。任意の注釈は、AnnotationType
プロパティを通じてそのタイプを示すことができます。したがって、LINQクエリを作成して、必要な注釈をフィルタリングできます。
以下の例は、PDFドキュメントの最初のページからすべての線の注釈を取得する方法を説明しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReadLineAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all line annotations from the first page
var lineAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Line)
.Cast<Aspose.Pdf.Annotations.LineAnnotation>();
// Iterate through each line annotation and print its coordinates
foreach (var la in lineAnnotations)
{
Console.WriteLine($"[{la.Starting.X},{la.Starting.Y}]-[{la.Ending.X},{la.Ending.Y}]");
}
}
}
以下の例は、PDFドキュメントの最初のページからすべてのポリラインの注釈を取得する方法を説明しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReadCircleAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all circle annotations from the first page
var circleAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Circle)
.Cast<Aspose.Pdf.Annotations.CircleAnnotation>();
// Iterate through each circle annotation and print its rectangle
foreach (var ca in circleAnnotations)
{
Console.WriteLine($"[{ca.Rect}]");
}
}
}
以下の例は、PDFドキュメントの最初のページからすべてのポリラインの注釈を取得する方法を説明しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReadSquareAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all square annotations from the first page
var squareAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Square)
.Cast<Aspose.Pdf.Annotations.SquareAnnotation>();
// Iterate through each square annotation and print its rectangle
foreach (var sq in squareAnnotations)
{
Console.WriteLine($"[{sq.Rect}]");
}
}
}
以下の例は、PDFドキュメントの最初のページからすべてのポリラインの注釈を取得する方法を説明しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReadPolylineAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all polyline annotations from the first page
var polyAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.PolyLine)
.Cast<Aspose.Pdf.Annotations.PolylineAnnotation>();
// Iterate through each polyline annotation and print its rectangle
foreach (var pa in polyAnnotations)
{
Console.WriteLine($"[{pa.Rect}]");
}
}
}
以下の例は、PDFドキュメントの最初のページからすべての多角形の注釈を取得する方法を説明しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReadPolygonAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all polygon annotations from the first page
var polyAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Polygon)
.Cast<Aspose.Pdf.Annotations.PolygonAnnotation>();
// Iterate through each polygon annotation and print its rectangle
foreach (var pa in polyAnnotations)
{
Console.WriteLine($"[{pa.Rect}]");
}
}
}
PDFから注釈を削除するアプローチは非常にシンプルです:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteLineAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all line annotations from the first page
var lineAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Line)
.Cast<Aspose.Pdf.Annotations.LineAnnotation>();
// Iterate through each line annotation and delete it
foreach (var la in lineAnnotations)
{
document.Pages[1].Annotations.Delete(la);
}
// Save PDF document
document.Save(dataDir + "DeleteLineAnnotations_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteCircleAndSquareAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all circle and square annotations from the first page
var figures = document.Pages[1].Annotations
.Where(a =>
a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Circle
|| a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Square);
// Iterate through each figure annotation and delete it
foreach (var fig in figures)
{
document.Pages[1].Annotations.Delete(fig);
}
// Save PDF document
document.Save(dataDir + "DeleteCircleAndSquareAnnotations_out.pdf");
}
}
以下のコードスニペットは、PDFファイルから多角形とポリラインの注釈を削除する方法を示しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeletePolylineAndPolygonAnnotations()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
// Get all polyline and polygon annotations from the first page
var polyAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.PolyLine
|| a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Polygon);
// Iterate through each polyline or polygon annotation and delete it
foreach (var pa in polyAnnotations)
{
document.Pages[1].Annotations.Delete(pa);
}
// Save PDF document
document.Save(dataDir + DeletePolylineAndPolygonAnnotations_out.pdf");
}
}
インク注釈は、1つ以上の離散的なパスで構成された手書きの「落書き」を表します。開くと、関連するメモのテキストを含むポップアップウィンドウが表示されます。
InkAnnotationは、1つ以上の離散的なポイントで構成された手書きの落書きを表します。以下のコードスニペットを使用して、PDFドキュメントにInkAnnotationを追加してみてください。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddInkAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "appartments.pdf"))
{
// Get first page
var page = document.Pages[1];
// Define the rectangle for the ink annotation
var arect = new Aspose.Pdf.Rectangle(156.574, 521.316, 541.168, 575.703);
// Create a list of ink paths
IList<Aspose.Pdf.Point[]> inkList = new List<Aspose.Pdf.Point[]>();
var arrpt = new[]
{
new Aspose.Pdf.Point(209.727, 542.263),
new Aspose.Pdf.Point(209.727, 541.94),
new Aspose.Pdf.Point(209.727, 541.616)
};
inkList.Add(arrpt);
// Create the ink annotation
var ia = new Aspose.Pdf.Annotations.InkAnnotation(page, arect, inkList)
{
Title = "John Smith",
Subject = "Pencil",
Color = Aspose.Pdf.Color.LightBlue,
CapStyle = Aspose.Pdf.Annotations.CapStyle.Rounded,
Opacity = 0.5
};
// Set the border for the annotation
var border = new Aspose.Pdf.Annotations.Border(ia)
{
Width = 25
};
ia.Border = border;
// Add the annotation to the page
page.Annotations.Add(ia);
// Save PDF document
document.Save(dataDir + "AddInkAnnotation_out.pdf");
}
}
InkAnnotationの幅は、LineInfoおよびBorderオブジェクトを使用して変更できます。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddInkAnnotationWithLineWidth()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create a list of ink paths
IList<Aspose.Pdf.Point[]> inkList = new List<Aspose.Pdf.Point[]>();
// Define line information
var lineInfo = new Aspose.Pdf.Facades.LineInfo
{
VerticeCoordinate = new float[] { 55, 55, 70, 70, 70, 90, 150, 60 },
Visibility = true,
LineColor = System.Drawing.Color.Red,
LineWidth = 2
};
// Convert line coordinates to Aspose.Pdf.Point array
int length = lineInfo.VerticeCoordinate.Length / 2;
var gesture = new Aspose.Pdf.Point[length];
for (int i = 0; i < length; i++)
{
gesture[i] = new Aspose.Pdf.Point(lineInfo.VerticeCoordinate[2 * i], lineInfo.VerticeCoordinate[2 * i + 1]);
}
// Add the gesture to the ink list
inkList.Add(gesture);
// Create the ink annotation
var a1 = new Aspose.Pdf.Annotations.InkAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 100, 300, 300), inkList)
{
Subject = "Test",
Title = "Title",
Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green)
};
// Set the border for the annotation
var border = new Aspose.Pdf.Annotations.Border(a1)
{
Width = 3,
Effect = Aspose.Pdf.Annotations.BorderEffect.Cloudy,
Dash = new Aspose.Pdf.Annotations.Dash(1, 1),
Style = Aspose.Pdf.Annotations.BorderStyle.Solid
};
a1.Border = border;
// Add the annotation to the page
page.Annotations.Add(a1);
// Save PDF document
document.Save(dataDir + "lnkAnnotationLineWidth_out.pdf");
}
}
以下のコードスニペットは、PDFファイルから円の注釈を削除する方法を示しています。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteCircleAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments_mod.pdf"))
{
var circleAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == AnnotationType.Circle)
.Cast<Aspose.Pdf.Annotations.CircleAnnotation>();
foreach (var ca in circleAnnotations)
{
document.Pages[1].Annotations.Delete(ca);
}
// Save PDF document
document.Save(dataDir + "DeleteCircleAnnotation_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.