ویرایش PDF به صورت آنلاین

ما به دلیل محرمانه بودن داده ها نیاز به حذف جزئیات حساس از فایل های PDF داریم، بنابراین معمولاً از یک منطقه صفحه خاصی از یک سند PDF ویرایش می کنیم (متن، تصویر و غیره را حذف می کنیم).با این حال، هنگامی که با مجموعه بزرگی از اسناد سروکار داریم، باید از API برای انجام این نیاز استفاده کنیم.

در این مقاله، ما قصد داریم مراحل نحوه ویرایش آنلاین PDF را با استفاده از کلاس RedactionAnnotation از Aspose.PDF Cloud SDK for Java مورد بحث قرار دهیم.

نصب SDK

Aspose.PDF Cloud SDK for Java یک API برنامه نویسی خاص برای توسعه دهندگان Java است و بر روی Aspose.PDF Cloud API ساخته شده است. API های ابری ما می توانند از هر پلتفرمی بدون نصب نرم افزار خاصی استفاده شوند. با این حال، برای استفاده از SDK، ابتدا باید آن را روی سیستم نصب کنید.

Cloud SDK برای دانلود از طریق Maven و GitHub در دسترس است. اکنون جزئیات زیر را در فایل pom.xml خود اضافه کنید تا دانلود کنید و از Aspose.Pdf.jar در پروژه ساخت Maven خود استفاده کنید.

<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، مرحله بعدی دریافت Client ID شخصی و Client Secret است. لطفاً از Aspose.Cloud dashboard دیدن کنید و اگر حساب GitHub یا Google دارید، به سادگی ثبت نام کنید. در غیر این صورت، روی دکمه Create a new Account کلیک کنید و اطلاعات مورد نیاز را ارائه دهید. اکنون با استفاده از اعتبارنامه وارد داشبورد شوید و بخش Applications را گسترش دهید. برای دیدن اطلاعات Client ID و Client Secret به سمت پایین به بخش Client Credentials بروید.

اضافه کردن حاشیه نویسی ویرایش با استفاده از Java

در بخش زیر، مراحل اضافه کردن یک کادر مستطیلی برای حذف محتوای فایل‌های PDF با استفاده از Aspose.PDF Cloud SDK برای Java را توضیح داده‌ایم.

  • اول از همه، ما باید یک شی از PdfApi ایجاد کنیم، در حالی که اطلاعات ClientId و ClientSecret به دست آمده از داشبورد Aspose.Cloud را ارسال می کنیم.
  • در مرحله دوم، یک شی از کلاس Rectangle ایجاد کنید تا منطقه ای را در صفحه ای که Annotation اضافه می شود، مشخص کنید.
  • ثالثاً، مقدار Default را از EnnotationFlags enumeration انتخاب کرده و به لیست نوع AnnotationFlags اضافه کنید.
  • حالا یک نمونه از کلاس RedactionAnnotation ایجاد کنید و ناحیه مستطیلی را با استفاده از متد setRect(…) تنظیم کنید.
  • تراز افقی را با استفاده از متد setHorizontalAlignment(…) تنظیم کرده و از قسمت HorizontalAlignment enumeration Center را انتخاب کنید.
  • برای پر کردن رنگ داخل Annotation از متد setFillColor(…) استفاده کنید و شی Color را پاس کنید.
  • آخرین تاریخ تغییر حاشیه نویسی را با استفاده از روش setModified(…) تنظیم کنید.
  • ماقبل آخر، یک List از نوع RedactionAnnotation ایجاد کنید و شی RedactAnnotation را به این لیست اضافه کنید.
  • در نهایت، متد postPageRedactionAnnotations(…) PdfApi را فراخوانی کنید و نام فایل منبع، شماره صفحه ای را که باید حاشیه نویسی در آن اضافه شود، ارسال کنید. همچنین، لیست RedactionAnnotation را به عنوان آرگومان برای شروع فرآیند ویرایش ارسال کنید.
// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// نمونه createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// سند PDF را وارد کنید
String sourcePDF = "PdfWithTable.pdf";

// صفحه PDF برای قرار دادن حاشیه نویسی
int pageNumber = 1;

// برای تعیین ناحیه حاشیه نویسی redact شیء مستطیل ایجاد کنید
// منطقه از پایین - چپ صفحه محاسبه می شود
Rectangle rect = new Rectangle()

// واحد اندازه گیری نقطه است
  .LLX(100.)
  .LLY(700.)
  .URX(200.)
  .URY(600.);

// آرایه AnnotationFlags را ایجاد کنید
List<AnnotationFlags> flags = new ArrayList<>();

// AnnotationFlag را روی پیش فرض قرار دهید
flags.add(AnnotationFlags.DEFAULT);

// ArrayList از نقاط را ایجاد کنید
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// شی Redact Annotation ایجاد کنید
RedactionAnnotation annotation = new RedactionAnnotation();

// نام Annotation را تنظیم کنید. 
// زمانی مفید است که چندین حاشیه نویسی در یک سند داشته باشیم
annotation.setName("Name");
// ناحیه مستطیلی را برای Redact Annotation تنظیم کنید
annotation.setRect(rect);
annotation.setFlags(flags);

// تراز افقی را به عنوان مرکز تنظیم کنید
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// ZIndex را روی 1 قرار دهید. 
annotation.setZindex(1);

// رنگ SlateBlue را در کد Hex تعریف کنید
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// رنگ پر را برای Annotation مشخص کنید
annotation.setFillColor(color);

// تاریخ و ساعت آخرین تغییر حاشیه نویسی.
annotation.setModified("05/21/2021 12:00:00.000 AM");

// یک آرایه از اعداد 8xN تنظیم کنید و مختصات را مشخص کنید 
// منطقه محتوایی که قرار است حذف شود.
annotation.setQuadPoint(points);
			        
// یک List Object از نوع RedactAnnotation ایجاد کنید
List<RedactionAnnotation> annotations = new ArrayList<>();

// شی Annotations را که قبلاً ایجاد شده بود به آرایه RedactAnnotation اضافه کنید
annotations.add(annotation);

// RedactAnnotation را به سند PDF اضافه کنید
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());
سند PDF ویرایش شده

تصویر 1: - Annotation Redact به فایل PDF اضافه شد.

فایل های نمونه استفاده شده در مثال بالا را از اینجا دانلود کنید

حاشیه‌نویسی ویرایش صفحه را بخوانید

Aspose.PDF Cloud SDK برای Java همچنین قابلیت خواندن اطلاعات مربوط به حاشیه نویسی Redact موجود در سند PDF را ارائه می دهد. مراحل زیر نحوه خواندن جزئیات Annotation را با استفاده از Java مشخص می کند.

// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// نمونه createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// سند PDF را وارد کنید
String sourcePDF = "PdfWithTable.pdf";

// حاشیه نویسی ویرایش سند را دریافت کنید
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// تعداد حاشیه نویسی های موجود در سند را چاپ کنید
System.out.println(responseAnnotations.getAnnotations().getList().size());

حاشیه نویسی ویرایش موجود را به روز کنید

اگر یک سند PDF از قبل حاوی حاشیه نویسی ویرایش است، می توانیم با استفاده از API آنها را نیز به روز کنیم. در زیر جزئیاتی در مورد نحوه به روز رسانی حاشیه نویسی موجود در یک سند PDF ارائه شده است.

  • یک نمونه از PdfApi ایجاد کنید در حالی که شناسه مشتری و جزئیات Client Secret را به عنوان آرگومان ارسال می کنید.
  • یک شی Rectangle برای تعریف ناحیه حاشیه نویسی ایجاد کنید. از پایین سمت چپ سند محاسبه می‌شود و واحد پیش‌فرض Point است.
  • لیست AnnotationFlags را ایجاد کنید و مقدار AnnotationFlags.DEFAULT را به لیست اضافه کنید.
  • حال باید شی RedactionAnnotation را بسازیم و متد setRect(…) را فراخوانی کنیم تا ناحیه مستطیلی حاشیه تعریف شود.
  • از متد setModified(…) برای تنظیم آخرین تاریخ اصلاح Annotation استفاده کنید.
  • برای خواندن لیست Annotations از سند، متد getDocumentRedactionAnnotations(…) فراخوانی PdfApi را فراخوانی کنید.
  • با استفاده از answerAnnotations.getAnnotations().getList().get(0).getId().
  • در نهایت، متد putRedactionAnnotation(…) از کلاس PdfApi را برای به روز رسانی Redaction Annotation موجود در فایل PDF فراخوانی کنید.
// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// نمونه createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// سند PDF را وارد کنید
String sourcePDF = "PdfWithAnnotations.pdf";	        
			        
// ایجاد یک منطقه مستطیلی برای Annotation  
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
RedactionAnnotation annotation = new RedactionAnnotation();
// نام را برای حاشیه نویسی تنظیم کنید
annotation.setName("Name Updated");

// ناحیه مستطیلی را برای حاشیه نویسی تنظیم کنید
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 را در کد Hex تعریف کنید
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);

// رنگ پر را برای Annotation مشخص کنید
annotation.setFillColor(color);

// حاشیه نویسی موجود را از سند دریافت کنید
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// حاشیه نویسی را در شاخص 0 دریافت کنید
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();

// Annotation را در نمایه 0 به روز کنید
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());
Redact Annotation به روز شد

تصویر 2: - حاشیه نویسی Redact به روز شد.

فایل های منبع استفاده شده در مثال بالا را می توانید از لینک های زیر دانلود کنید

نتیجه گیری

در این مقاله، مراحل نحوه حذف اطلاعات حساس از اسناد PDF را مورد بحث قرار داده ایم. به غیر از حاشیه نویسی ویرایش، تعداد زیادی از ویژگی های حاشیه نویسی دیگر توسط API پشتیبانی می شوند و جزئیات آنها را می توان در کار با حاشیه نویسی پیدا کرد. برای کسب اطلاعات بیشتر در مورد قابلیت های آن می توانید از صفحه اصلی محصول دیدن کنید. اگر سؤال مرتبطی دارید، لطفاً از طریق تالار گفتمان پشتیبانی رایگان محصول تماس بگیرید.