PDF'yi çevrimiçi olarak redakte edin

Veri gizliliği nedeniyle PDF dosyalarından hassas ayrıntıları silme gereksinimimiz var, bu nedenle genellikle bir PDF belgesinin belirli bir sayfa bölgesinden sansürleme (metin, resim vb. kaldırma) yaparız. Ancak, büyük bir belge kümesiyle uğraşırken, bu gereksinimi karşılamak için API’leri kullanmamız gerekir.

Bu makalede, Aspose.PDF Cloud SDK for Java’nın RedactionAnnotation sınıfını kullanarak PDF’nin çevrimiçi olarak nasıl sansürleneceğine ilişkin adımları ele alacağız.

SDK Kurulumu

Aspose.PDF Cloud SDK for Java, Java geliştiricilerine özel bir programlama API’sidir ve Aspose.PDF Cloud API’nin üzerine kurulmuştur. Cloud API’lerimiz herhangi bir özel yazılım kurulumu olmadan herhangi bir platformdan kullanılabilir. Ancak SDK’yi kullanmak için önce onu sisteme kurmanız gerekir.

Cloud SDK Maven ve GitHub üzerinden indirilebilir. Şimdi, Aspose.Pdf.jar’ı Maven derleme projenizde indirmek ve kullanmak için pom.xml dosyanıza aşağıdaki ayrıntıları ekleyin.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

SDK kurulduktan sonra, bir sonraki adım kişiselleştirilmiş İstemci Kimliğinizi ve İstemci Gizli Anahtarınızı edinmektir. Lütfen Aspose.Cloud panosunu ziyaret edin ve GitHub veya Google hesabınız varsa, sadece Kaydolun. Aksi takdirde, Yeni Hesap Oluştur düğmesine tıklayın ve gerekli bilgileri sağlayın. Şimdi kimlik bilgilerini kullanarak panoya giriş yapın ve Uygulamalar bölümünü genişletin. İstemci Kimliği ve İstemci Gizli Anahtarı ayrıntılarını görmek için İstemci Kimlik Bilgileri bölümüne doğru aşağı kaydırın.

Java kullanarak Redaksiyon Açıklaması Ekleme

Aşağıdaki bölümde, Aspose.PDF Cloud SDK for Java’yı kullanarak PDF dosyalarının içeriğini silmek için dikdörtgen bir kutunun nasıl ekleneceğini açıkladık.

  • Öncelikle Aspose.Cloud panosundan aldığımız ClientId ve ClientSecret bilgilerini aktararak bir PdfApi nesnesi oluşturmamız gerekiyor.
  • İkinci olarak Annotation’ın sayfada ekleneceği bölgeyi belirtmek için Rectangle sınıfından bir nesne oluşturun.
  • Üçüncüsü, AnnotationFlags numaralandırmasından Varsayılan değerini seçin ve bunu AnnotationFlags türündeki Liste’ye ekleyin.
  • Şimdi RedactionAnnotation sınıfının bir örneğini oluşturun ve setRect(…) metodunu kullanarak dikdörtgen bölgeyi ayarlayın.
  • setHorizontalAlignment(…) metodunu kullanarak yatay hizalamayı ayarlayın ve Yatay Hizalama numaralandırmasından Orta’yı seçin.
  • Annotation’ın içini renkle doldurmak için setFillColor(…) metodunu kullanıp Color nesnesini geçirmeliyiz.
  • setModified(…) metodunu kullanarak açıklamanın son değiştirilme tarihini ayarlayın.
  • Son olarak, RedactionAnnotation türünde bir Liste oluşturalım ve bu listeye RedactAnnotation nesnesini ekleyelim.
  • Son olarak, PdfApi’nin postPageRedactionAnnotations(…) metodunu çağırın ve kaynak dosya adını, açıklamanın eklenmesi gereken sayfa numarasını geçirin. Ayrıca, redaksiyon sürecini başlatmak için bir argüman olarak RedactionAnnotation List’i geçirin.
// ClientID ve ClientSecret'ı https://dashboard.aspose.cloud/ adresinden edinin
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi örneği
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF belgesini girin
String sourcePDF = "PdfWithTable.pdf";

// PDF'in açıklama yerleştirilecek sayfası
int pageNumber = 1;

// redact açıklama bölgesini belirtmek için dikdörtgen nesnesi oluşturun
// bölge sayfanın sol altından hesaplanır
Rectangle rect = new Rectangle()

// ölçüm birimi noktadır
  .LLX(100.)
  .LLY(700.)
  .URX(200.)
  .URY(600.);

// AnnotationFlags dizisini oluştur
List<AnnotationFlags> flags = new ArrayList<>();

// AnnotationFlag'ı varsayılana ayarlayın
flags.add(AnnotationFlags.DEFAULT);

// noktaların ArrayList'ini oluştur
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// Redact Annotation nesnesini oluştur
RedactionAnnotation annotation = new RedactionAnnotation();

// Açıklamanın adını ayarlayın. 
// Bir belgede birden fazla açıklama olduğunda kullanışlıdır
annotation.setName("Name");
// Redact Annotation için dikdörtgen bölgeyi ayarlayın
annotation.setRect(rect);
annotation.setFlags(flags);

// yatay hizalamayı merkeze ayarla
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// ZIndex'i 1 olarak ayarlayın. 
annotation.setZindex(1);

// SlateBlue rengini Hex kodunda tanımlayın
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// Açıklama için dolgu rengini belirtin
annotation.setFillColor(color);

// Açıklamanın son değiştirildiği tarih ve saat.
annotation.setModified("05/21/2021 12:00:00.000 AM");

// Koordinatları belirterek 8xN sayıdan oluşan bir dizi ayarlayın 
// Kaldırılması amaçlanan içerik bölgesinin.
annotation.setQuadPoint(points);
			        
// RedactAnnotation türünde bir Liste Nesnesi oluşturun
List<RedactionAnnotation> annotations = new ArrayList<>();

// Daha önce oluşturulan Açıklamalar nesnesini RedactAnnotation dizisine ekle
annotations.add(annotation);

// PDF belgesine RedactAnnotation ekleyin
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());
Düzenlenmiş PDF belgesi

Resim 1:- PDF dosyasına Redact Annotation eklendi.

Yukarıdaki örnekte kullanılan örnek dosyaları şu adresten indirin:

Sayfa Redaksiyon Açıklamalarını Oku

Aspose.PDF for Java Cloud SDK ayrıca PDF belgesindeki mevcut Redact açıklamasına ilişkin bilgileri okuma yeteneklerini de sunar. Aşağıda verilen adımlar, Java kullanarak Açıklama ayrıntılarının nasıl okunacağını tanımlar.

// ClientID ve ClientSecret'ı https://dashboard.aspose.cloud/ adresinden edinin
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi örneği
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF belgesini girin
String sourcePDF = "PdfWithTable.pdf";

// Belge düzenleme açıklamalarını al
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// belgede mevcut olan açıklamaların sayısını yazdır
System.out.println(responseAnnotations.getAnnotations().getList().size());

Mevcut Redaksiyon Açıklamasını güncelle

Bir PDF belgesi zaten Redaction açıklamaları içeriyorsa, bunları API’yi kullanarak da güncelleyebiliriz. Aşağıda bir PDF belgesindeki mevcut açıklamaların nasıl güncelleneceğine dair ayrıntılar verilmiştir.

  • İstemci Kimliği ve İstemci Gizli Anahtar ayrıntılarını argüman olarak geçirerek bir PdfApi örneği oluşturun.
  • Açıklama bölgesini tanımlamak için bir Rectangle nesnesi oluşturun. Belgenin Sol Alt kısmından hesaplanır ve varsayılan birim Nokta’dır.
  • AnnotationFlags Listesi oluşturun ve listeye AnnotationFlags.DEFAULT değerini ekleyin.
  • Şimdi RedactionAnnotation nesnesini oluşturmamız ve açıklamanın dikdörtgen bölgesini tanımlamak için setRect(…) metodunu çağırmamız gerekiyor.
  • Annotation’ın son değiştirilme tarihini ayarlamak için setModified(…) metodunu kullanın.
  • Belgeden Açıklamalar listesini okumak için PdfApi çağrısının getDocumentRedactionAnnotations(…) metodunu çağırın.
  • responseAnnotations.getAnnotations().getList().get(0).getId() kullanarak belirli bir Annotation nesnesine erişin.
  • Son olarak, PDF dosyasındaki mevcut Redaksiyon Açıklamasını güncellemek için PdfApi sınıfının putRedactionAnnotation(…) metodunu çağırın.
// ClientID ve ClientSecret'ı https://dashboard.aspose.cloud/ adresinden edinin
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi örneği
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// PDF belgesini girin
String sourcePDF = "PdfWithAnnotations.pdf";	        
			        
// Açıklama için dikdörtgen bölge oluştur  
Rectangle rect = new Rectangle()
  .LLX(200.)
  .LLY(120.)
  .URX(150.)
  .URY(100.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// Redaction Annotation nesnesini oluştur
RedactionAnnotation annotation = new RedactionAnnotation();
// açıklama için isim belirleyin
annotation.setName("Name Updated");

// açıklama için dikdörtgen bölgeyi ayarla
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setZindex(1);
annotation.setModified("01/01/2018 12:02:03.000 AM");
annotation.setQuadPoint(points);

// SlateBlue rengini Hex kodunda tanımlayın
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);

// Açıklama için dolgu rengini belirtin
annotation.setFillColor(color);

// belgeden mevcut Açıklamayı al
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// 0 dizinindeki açıklamayı al
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();

// 0 dizinindeki Açıklamayı güncelle
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());
Redact Açıklaması Güncellendi

Resim 2:- Redact Açıklaması güncellendi.

Yukarıdaki örnekte kullanılan kaynak dosyaları aşağıdaki bağlantılardan indirilebilir

çözüm

Bu makalede, PDF belgelerinden hassas bilgilerin nasıl sansürleneceğine ilişkin adımları ele aldık. Redaction annotation’ın yanı sıra, API tarafından çok sayıda başka Annotation özelliği desteklenir ve bunların ayrıntıları Working with Annotation adresinde bulunabilir. Yetenekleri hakkında daha fazla bilgi edinmek için Product home page adresini ziyaret etmeyi düşünebilirsiniz. İlgili herhangi bir sorunuz varsa, lütfen Free Product support forum aracılığıyla bizimle iletişime geçmekten çekinmeyin.