تعليقات الشكل عبر Java
Contents
[
Hide
]
تشمل تعليقات الشكل في هذا القسم أنواع التعليقات الهندسية مثل المربعات والدوائر والمتعددات والخطوط المتعددة والخطوط.
إضافة تعليقات توضيحية للمربع والدائرة والمضلع والخط المتعدد النقاط
استخدم هذه الأمثلة عندما تحتاج إلى وضع تعليقات توضيحية هندسية بألوان مخصصة أو شفافية أو بيانات منبثقة أو مصفوفات نقاط.
- افتح ملف PDF المصدر Document.
- أنشئ التعليق التوضيحي للشكل المطلوب واضبط مستطيله والنقاط والخصائص البصرية.
- أضف التعليق التوضيحي إلى الصفحة واحفظ المستند المحدث.
public static void squareAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
SquareAnnotation squareAnnotation = new SquareAnnotation(
document.getPages().get_Item(1),
new Rectangle(60, 600, 250, 450, true));
squareAnnotation.setTitle("John Smith");
squareAnnotation.setColor(Color.getBlue());
squareAnnotation.setInteriorColor(Color.getBlueViolet());
squareAnnotation.setOpacity(0.25);
document.getPages().get_Item(1).getAnnotations().add(squareAnnotation);
document.save(outputFile.toString());
}
}
public static void circleAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
CircleAnnotation circleAnnotation = new CircleAnnotation(
document.getPages().get_Item(1),
new Rectangle(270, 160, 483, 383, true));
circleAnnotation.setTitle("John Smith");
circleAnnotation.setColor(Color.getRed());
circleAnnotation.setInteriorColor(Color.getMistyRose());
circleAnnotation.setOpacity(0.5);
circleAnnotation.setPopup(new PopupAnnotation(
document.getPages().get_Item(1),
new Rectangle(842, 316, 1021, 459, true)));
document.getPages().get_Item(1).getAnnotations().add(circleAnnotation);
document.save(outputFile.toString());
}
}
public static void polygonAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
PolygonAnnotation polygonAnnotation = new PolygonAnnotation(
document.getPages().get_Item(1),
new Rectangle(200, 300, 400, 400, true),
new Point[]{
new Point(200, 300),
new Point(220, 300),
new Point(250, 330),
new Point(300, 304),
new Point(300, 400)
});
polygonAnnotation.setTitle("John Smith");
polygonAnnotation.setColor(Color.getBlue());
polygonAnnotation.setInteriorColor(Color.getBlueViolet());
polygonAnnotation.setOpacity(0.25);
document.getPages().get_Item(1).getAnnotations().add(polygonAnnotation);
document.save(outputFile.toString());
}
}
public static void polylineAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
PolylineAnnotation polylineAnnotation = new PolylineAnnotation(
document.getPages().get_Item(1),
new Rectangle(270, 193, 571, 383, true),
new Point[]{
new Point(545, 150),
new Point(545, 190),
new Point(667, 190),
new Point(667, 110),
new Point(626, 111)
});
polylineAnnotation.setTitle("John Smith");
polylineAnnotation.setColor(Color.getRed());
polylineAnnotation.setPopup(new PopupAnnotation(
document.getPages().get_Item(1),
new Rectangle(842, 196, 1021, 338, true)));
document.getPages().get_Item(1).getAnnotations().add(polylineAnnotation);
document.save(outputFile.toString());
}
}
احصل على تعليقات توضيحية للمربع، الدائرة، المضلع، وخط متعدد النقاط
تقوم هذه الأمثلة بفحص مجموعة تعليقات الصفحة وتطبع مستطيلات التعليقات الهندسية حسب النوع.
- افتح ملف PDF المصدر Document.
- مرّ على التعليقات التوضيحية للصفحة.
- صفِّ حسب المطلوب AnnotationType القيمة واطبع المستطيل.
public static void squareAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Square) {
System.out.println(annotation.getRect());
}
}
}
}
public static void circleAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Circle) {
System.out.println(annotation.getRect());
}
}
}
}
public static void polygonAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Polygon) {
System.out.println(annotation.getRect());
}
}
}
}
public static void polylineAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.PolyLine) {
System.out.println(annotation.getRect());
}
}
}
}
حذف التعليقات التوضيحية للمربع، الدائرة، المضلع، والخط المتعدد
استخدم هذه الأمثلة عندما يجب إزالة تعليقات الشكل من نوع محدد من الصفحة.
- افتح ملف PDF المصدر Document.
- اجمع التعليقات التوضيحية من النوع الهندسي المطلوب.
- احذف التعليقات التوضيحية المجمعة واحفظ ملف الإخراج.
public static void squareAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Square) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
public static void circleAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Circle) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
public static void polygonAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Polygon) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
public static void polylineAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.PolyLine) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
إضافة تعليق خطي
هذا المثال يُنشئ تعليقا بخط يحتوي على نهايات سهم، وتنسيق حدود، وملاحظة منبثقة.
- افتح ملف PDF المصدر Document.
- أنشئ كائنًا من الفئة LineAnnotation مع نقاط البدء والنهاية.
- اضبط المظهر، أضف النافذة المنبثقة، واحفظ المستند.
public static void lineAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
LineAnnotation lineAnnotation = new LineAnnotation(
document.getPages().get_Item(1),
new Rectangle(550, 93, 562, 439, true),
new Point(556, 99),
new Point(556, 443));
lineAnnotation.setTitle("John Smith");
lineAnnotation.setColor(Color.getRed());
lineAnnotation.setStartingStyle(LineEnding.OpenArrow);
lineAnnotation.setEndingStyle(LineEnding.OpenArrow);
Border border = new Border(lineAnnotation);
border.setWidth(3);
lineAnnotation.setBorder(border);
PopupAnnotation popup = new PopupAnnotation(
document.getPages().get_Item(1),
new Rectangle(842, 124, 1021, 266, true));
lineAnnotation.setPopup(popup);
document.getPages().get_Item(1).getAnnotations().add(lineAnnotation);
document.save(outputFile.toString());
}
}
احصل على تعليقات الخط
يقوم هذا المثال بقراءة تعليقات الخطوط وطباعة إحداثيات البداية والنهاية لها.
- افتح ملف PDF المصدر Document.
- مرّ على تعليقات الصفحة واختيارها AnnotationType.
Line. - حوّل كل تطابق إلى LineAnnotation وطبع إحداثياته.
public static void lineAnnotationsGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Line) {
LineAnnotation la = (LineAnnotation) annotation;
System.out.printf("[%s,%s]-[%s,%s]%n",
la.getStarting().getX(), la.getStarting().getY(),
la.getEnding().getX(), la.getEnding().getY());
}
}
}
}
حذف تعليقات الخط
استخدم هذا النهج عندما يجب إزالة تعليقات الخط من الصفحة.
- افتح ملف PDF المصدر Document.
- اجمع التعليقات التوضيحية من النوع AnnotationType.
Line. - احذف التعليقات المجمعة واحفظ المستند.
public static void lineAnnotationsDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
Page page = document.getPages().get_Item(1);
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : page.getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Line) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
page.getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}