إضافة علامات مائية إلى PDF في Java

تسمح لك عناصر العلامة المائية بوضع علامات بصرية دائمة على صفحة دون دمجها في محتوى المستند الرئيسي.

استخراج عناصر العلامة المائية من PDF

استخدم هذا المثال عندما تحتاج إلى فحص عناصر العلامة المائية الموجودة وقراءة نصها أو موقعها.

  1. افتح ملف PDF المصدر Document.
  2. مرّ على مجموعة القطع الأثرية للصفحة المستهدفة.
  3. صفِّ قطع الأثر المتعلقة بالعلامة المائية للترقيم واطبع نصها ومستطيلاتها.
public static void extractWatermarkFromPdf(Path inputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (Artifact artifact : document.getPages().get_Item(1).getArtifacts()) {
            if (artifact.getType() == Artifact.ArtifactType.Pagination
                    && artifact.getSubtype() == Artifact.ArtifactSubtype.Watermark) {
                System.out.println(artifact.getText() + " " + artifact.getRectangle());
            }
        }
    }
}

إضافة عنصر علامة مائية

استخدم هذا المثال عندما يجب أن تعرض الصفحة علامة مائية نصية متمركزة مع دوران مخصص، وتعتيم، وتحديد موضع الخلفية.

  1. افتح ملف PDF المصدر Document.
  2. أنشئ كائنًا من الفئة WatermarkArtifact واضبط حالة النص وإعدادات الموضع الخاصة به.
  3. أضف العلامة المائية إلى الصفحة واحفظ ملف الإخراج.
public static void addWatermarkArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        TextState textState = new TextState();
        textState.setFontSize(72);
        textState.setForegroundColor(Color.getBlueViolet());
        textState.setFontStyle(FontStyles.Bold);
        textState.setFont(FontRepository.findFont("Arial"));

        WatermarkArtifact watermark = new WatermarkArtifact();
        watermark.setTextAndState("WATERMARK", textState);
        watermark.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
        watermark.setArtifactVerticalAlignment(VerticalAlignment.Center);
        watermark.setRotation(60);
        watermark.setOpacity(0.2);
        watermark.setBackground(true);

        document.getPages().get_Item(1).getArtifacts().add(watermark);
        document.save(outputFile.toString());
    }
}

حذف عناصر العلامة المائية

استخدم هذا النهج عندما يجب إزالة عناصر العلامة المائية الموجودة من الصفحة.

  1. افتح ملف PDF المصدر Document.
  2. مرّ على مجموعة عناصر الصفحة بترتيب عكسي.
  3. احذف عناصر ترقيم الصفحات التي يكون النوع الفرعي لها هو العلامة المائية، ثم احفظ المستند.
public static void deleteWatermarkArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (int i = document.getPages().get_Item(1).getArtifacts().size(); i >= 1; i--) {
            Artifact artifact = document.getPages().get_Item(1).getArtifacts().get_Item(i);
            if (artifact.getType() == Artifact.ArtifactType.Pagination
                    && artifact.getSubtype() == Artifact.ArtifactSubtype.Watermark) {
                document.getPages().get_Item(1).getArtifacts().delete(artifact);
            }
        }

        document.save(outputFile.toString());
    }
}