Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pdf/arabic/net/conversion-export/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,12 +214,19 @@
### [تحويل PDF إلى HTML باستخدام Aspose.PDF .NET: دليل شامل](./aspose-pdf-net-pdf-to-html-conversion/)
أتقن تحويل PDF إلى HTML باستخدام Aspose.PDF .NET. حسّن إمكانية الوصول إلى المستندات وتفاعلها مع المستخدمين من خلال خيارات قابلة للتخصيص.

### [حفظ PDF كـ HTML باستخدام Aspose – دليل كامل C#](./save-pdf-as-html-with-aspose-complete-c-guide/)

### [حفظ PDF كـ HTML باستخدام C# – دليل شامل خطوة بخطوة](./save-pdf-as-html-with-c-complete-step-by-step-guide/)

### [تحويل PDF إلى HTML باستخدام Aspose.PDF .NET](./pdf-to-html-conversion-aspose-dot-net/)
برنامج تعليمي لبرمجة Aspose.PDF Net

### [تحويل PDF إلى TIFF في .NET باستخدام Aspose.PDF: دليل خطوة بخطوة](./pdf-to-tiff-conversion-aspose-pdf-net/)
تعلّم كيفية تحويل مستندات PDF إلى صور TIFF باستخدام Aspose.PDF لـ .NET. أتقن أعماق الألوان المخصصة وتقنيات معالجة الصور المتقدمة.

### [تحويل PDF إلى PDF/X-1A، تصدير صفحة PNG وإضافة ختم نصي](./convert-pdf-to-pdf-x-1a-export-page-png-add-text-stamp/)
تعلم تحويل PDF إلى معيار PDF/X-1A، استخراج صفحة PNG وإضافة ختم نصي باستخدام Aspose.PDF .NET

### [كيفية حفظ ملف PDF باستخدام Aspose – دليل خطوة بخطوة](./how-to-save-pdf-with-aspose-step-by-step-guide/)
دليل شامل يوضح كيفية حفظ ملفات PDF باستخدام Aspose خطوة بخطوة باستخدام C#.
### [حفظ PDF كـ HTML باستخدام Aspose.PDF – دليل كامل C#](./save-pdf-as-html-using-aspose-pdf-complete-c-guide/)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
---
category: general
date: 2026-03-29
description: تحويل PDF إلى PDF/X‑1a وتصدير صفحة PDF كصورة PNG في عملية واحدة – كما
يمكنك تعلم كيفية إضافة ختم نصي إلى PDF باستخدام Aspose.Pdf (C#).
draft: false
keywords:
- convert pdf to pdf/x-1a
- export pdf page png
- add text stamp pdf
- Aspose.Pdf conversion
- PDF/X‑1a workflow
language: ar
og_description: تحويل PDF إلى PDF/X-1a وتصدير صفحة PDF كصورة PNG مع إضافة ختم نصي
PDF – دليل كامل بلغة C# باستخدام Aspose.Pdf.
og_title: تحويل PDF إلى PDF/X-1A، تصدير الصفحة بصيغة PNG وإضافة ختم نصي
tags:
- Aspose.Pdf
- C#
- PDF processing
title: تحويل PDF إلى PDF/X-1A، تصدير الصفحة كـ PNG وإضافة ختم نصي
url: /ar/net/conversion-export/convert-pdf-to-pdf-x-1a-export-page-png-add-text-stamp/
---

{{< blocks/products/pf/main-wrap-class >}}
{{< blocks/products/pf/main-container >}}
{{< blocks/products/pf/tutorial-page-section >}}

# تحويل pdf إلى pdf/x-1a، تصدير صفحة png وإضافة ختم نصي – دليل C# الكامل

هل احتجت إلى **convert pdf to pdf/x-1a** ولكنك أيضًا أردت معاينة سريعة بصيغة PNG للصفحة الأولى وختم نصي مخصص على نفس المستند؟ لست وحدك. في العديد من خطوط الإنتاج—فكر في الفحص المسبق للملفات الجاهزة للطباعة أو توليد التقارير الآلية—غالبًا ما تواجه هذا الجمع المحدد من المتطلبات.

في هذا البرنامج التعليمي سنستعرض سير عمل موحد واحد يقوم بثلاثة أشياء متتالية: **convert pdf to pdf/x-1a**، **export pdf page png**، و **add text stamp pdf**. يستخدم الكود مكتبة Aspose.Pdf لـ .NET، لذا ستحصل على حل احترافي دون الحاجة إلى التعامل مع تفاصيل PDF منخفضة المستوى. في النهاية ستحصل على برنامج C# قابل للتنفيذ يمكنك إدراجه في أي تطبيق كونسول، Azure Function، أو خطوة CI.

> **ما ستحصل عليه** – ملف مصدر كامل، شروحات خطوة بخطوة، نصائح لتجنب الأخطاء الشائعة، وطريقة سريعة للتحقق من النتيجة.

## المتطلبات المسبقة

- .NET 6.0 أو أحدث (تعمل الواجهة البرمجية مع .NET Framework 4.x أيضًا).
- حزمة NuGet Aspose.Pdf لـ .NET (`Aspose.Pdf`) – الإصدار 23.10 هو الحالي وقت الكتابة.
- ملف PDF إدخال (`input.pdf`) وملف ملف تعريف ICC (`Coated_Fogra39L_VIGC_300.icc`) موجودان في مجلد تتحكم فيه.
- إلمام أساسي بـ C# و Visual Studio (أو بيئتك المفضلة IDE).

إذا كان أي من ذلك غير مألوف لك، فقط قم بتثبيت حزمة NuGet باستخدام:

```bash
dotnet add package Aspose.Pdf --version 23.10.0
```

الآن لنبدأ.

## الخطوة 1: تحميل مستند PDF المصدر

أول شيء نقوم به هو فتح ملف PDF الذي نريد العمل عليه. تمثل فئة `Document` في Aspose.Pdf الملف بأكمله، وتقوم بتحميل المحتوى بشكل كسول، لذا لا تدفع تكلفة أداء حتى تتعامل فعليًا مع الصفحات.

```csharp
using Aspose.Pdf;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using Aspose.Pdf.Conversion;

// Adjust these paths to match your environment
string baseDir = @"C:\MyProjects\PdfDemo\";
string inputPath = Path.Combine(baseDir, "input.pdf");

// Load the PDF – this is where any file‑not‑found errors will surface
Document pdfDoc = new Document(inputPath);
```

*لماذا هذا مهم*: تحميل المستند مبكرًا يمنحنا كائنًا واحدًا يمكن تمريره للتحويل، والتصوير، والختم. إذا تخطيت عملية التحميل الصريحة وحاولت العمل على ملف غير موجود، ستحصل على استثناء `FileNotFoundException` غامض لاحقًا.

## الخطوة 2: تحويل المستند إلى PDF/X‑1a باستخدام ملف تعريف ICC مخصص

PDF/X‑1a هو المعيار الفعلي للملفات الجاهزة للطباعة. خطوة التحويل تسمح لك أيضًا بدمج **Output Intent** (ملف تعريف ICC) حتى تعرف محركات RIP اللاحقة بالضبط كيف يجب تفسير الألوان.

```csharp
// Prepare conversion options – we ask Aspose to delete any objects that would break PDF/X‑1a compliance
PdfFormatConversionOptions conversionOptions = new PdfFormatConversionOptions(
PdfFormat.PDF_X_1A, // Target format
ConvertErrorAction.Delete) // Drop non‑compliant objects automatically
{
IccProfileFileName = Path.Combine(baseDir, "Coated_Fogra39L_VIGC_300.icc"),
OutputIntent = new OutputIntent("FOGRA39") // Human‑readable name for the intent
};

// Perform the conversion in‑place
pdfDoc.Convert(conversionOptions);
```

*نصيحة احترافية*: إذا كنت بحاجة إلى معالجة أخطاء أكثر صرامة، استبدل `ConvertErrorAction.Delete` بـ `ConvertErrorAction.Throw`. بهذه الطريقة سيتوقف التحويل عند أول مشكلة توافق، وهو مفيد لخطوط أنابيب QA الآلية.

## الخطوة 3: تصدير الصفحة الأولى كـ PNG مع تحليل الخطوط

غالبًا ما تكون معاينة PNG مطلوبة لفحص بصري سريع أو لإنشاء صور مصغرة. من خلال تمكين `AnalyzeFonts`، يضمن Aspose أن أي خطوط مدمجة يتم تحويلها إلى نقطية بشكل صحيح، متجنبًا مفاجآت الحروف المفقودة.

```csharp
// Configure the PNG device – you can tweak resolution, color depth, etc.
PngDevice pngDevice = new PngDevice
{
RenderingOptions = new RenderingOptions
{
AnalyzeFonts = true, // Guarantees faithful text rendering
Resolution = 300 // 300 DPI is a good trade‑off for quality vs. size
}
};

// Export the first page (index is 1‑based)
string pngPath = Path.Combine(baseDir, "page1.png");
pngDevice.Process(pdfDoc.Pages[1], pngPath);
```

بعد تشغيل هذا ستجد `page1.png` بجوار ملفات المصدر. افتحه بأي عارض صور لتأكيد أن التحويل يبدو صحيحًا.

## الخطوة 4: إضافة ختم نصي يضبط حجم الخط تلقائيًا

**text stamp** هو طريقة مفيدة لإضافة علامة مائية أو تعليقات توضيحية إلى PDF دون تعديل تدفقات المحتوى الأساسية. ضبط `AutoAdjustFontSizeToFitStampRectangle` يعني أن المكتبة ستصغر أو تكبر النص بحيث لا يتجاوز أبدًا المستطيل الذي تحدده.

```csharp
// Create a stamp with the desired text
TextStamp autoSizeStamp = new TextStamp("Auto‑size")
{
AutoAdjustFontSizeToFitStampRectangle = true,
Width = 400, // Width of the stamp rectangle (points)
Height = 200, // Height of the stamp rectangle (points)
// Optional: position the stamp – here we center it on the page
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
// Optional: give it a semi‑transparent background for readability
Background = new BackgroundInfo(Color.FromRgb(255, 255, 0), 0.3f)
};

// Attach the stamp to the first page (you could loop over all pages if needed)
pdfDoc.Pages[1].AddStamp(autoSizeStamp);
```

*لماذا الحجم التلقائي؟* إذا غيرت لاحقًا نص الختم إلى شيء أطول (مثل طابع زمني ديناميكي)، لن تحتاج إلى حساب أحجام الخط يدويًا—الختم يتكيف تلقائيًا.

## الخطوة 5: حفظ مستند PDF المحدث

أخيرًا، احفظ كل شيء مرة أخرى على القرص. يمكنك إما استبدال الملف الأصلي أو إنشاء ملف جديد تمامًا؛ المثال أدناه ينشئ `output.pdf`.

```csharp
string outputPath = Path.Combine(baseDir, "output.pdf");
pdfDoc.Save(outputPath);
```

عند اكتمال الحفظ، ستحصل على:

1. ملف متوافق مع **PDF/X‑1a** (`output.pdf`).
2. معاينة **PNG** للصفحة الأولى (`page1.png`).
3. **text stamp** يتناسب تمامًا داخل مستطيله.

### قائمة التحقق السريعة

| ✅ الفحص | طريقة التحقق |
|--------|---------------|
| توافق PDF/X‑1a | افتح `output.pdf` في Adobe Acrobat → *Print Production* → *Preflight* واختر “PDF/X‑1a:2001”. |
| مظهر PNG صحيح | افتح `page1.png` في Windows Photo Viewer أو أي محرر صور. |
| ظهور الختم | مرّر عبر `output.pdf` – يجب أن يكون النص “Auto‑size” مركزيًا في الصفحة 1. |

![معاينة تحويل pdf إلى pdf/x-1a](image.png "معاينة تحويل pdf إلى pdf/x-1a تظهر الصفحة المختومة")

*نص بديل للصورة*: **معاينة تحويل pdf إلى pdf/x-1a مع ختم نصي بحجم تلقائي** – يوضح الـ PDF النهائي بعد جميع الخطوات.

## الاختلافات الشائعة وحالات الحافة

- **Multiple pages** – إذا كنت بحاجة إلى ختم كل صفحة، قم بالتكرار على `pdfDoc.Pages` واستدعِ `AddStamp` داخل الحلقة.
- **Different output format** – غيّر `PdfFormat.PDF_X_1A` إلى `PdfFormat.PDF_A_1B` للحصول على PDFs أرشيفية.
- **Higher‑resolution PNG** – اضبط `Resolution = 600` في `RenderingOptions` للحصول على صور مصغرة بجودة طباعة.
- **Custom font for the stamp** – عيّن `autoSizeStamp.Font = FontRepository.FindFont("Arial")` قبل إضافة الختم.
- **Error handling** – غلف كل خطوة رئيسية بـ `try/catch` وسجّل `ConversionException` أو `FileNotFoundException` لتسهيل عملية التصحيح.

## مثال كامل يعمل (جاهز للنسخ واللصق)

```csharp
using System;
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using Aspose.Pdf.Conversion;
using Aspose.Pdf.Color; // For BackgroundInfo color

class PdfX1aWorkflow
{
static void Main()
{
// -----------------------------------------------------------------
// 1️⃣ Setup paths
// -----------------------------------------------------------------
string baseDir = @"C:\MyProjects\PdfDemo\";
string inputPdf = Path.Combine(baseDir, "input.pdf");
string iccProfile = Path.Combine(baseDir, "Coated_Fogra39L_VIGC_300.icc");
string pngOutput = Path.Combine(baseDir, "page1.png");
string finalPdf = Path.Combine(baseDir, "output.pdf");

// -----------------------------------------------------------------
// 2️⃣ Load the source document
// -----------------------------------------------------------------
Document pdfDoc = new Document(inputPdf);

// -----------------------------------------------------------------
// 3️⃣ Convert to PDF/X‑1a (print‑ready)
// -----------------------------------------------------------------
PdfFormatConversionOptions convOpts = new PdfFormatConversionOptions(
PdfFormat.PDF_X_1A,
ConvertErrorAction.Delete)
{
IccProfileFileName = iccProfile,
OutputIntent = new OutputIntent("FOGRA39")
};
pdfDoc.Convert(convOpts);

// -----------------------------------------------------------------
// 4️⃣ Export first page as PNG (export pdf page png)
// -----------------------------------------------------------------
PngDevice pngDevice = new PngDevice
{
RenderingOptions = new RenderingOptions
{
AnalyzeFonts = true,
Resolution = 300
}
};
pngDevice.Process(pdfDoc.Pages[1], pngOutput);

// -----------------------------------------------------------------
// 5️⃣ Add auto‑sizing text stamp (add text stamp pdf)
// -----------------------------------------------------------------
TextStamp stamp = new TextStamp("Auto‑size")
{
AutoAdjustFontSizeToFitStampRectangle = true,
Width = 400,
Height = 200,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
Background = new BackgroundInfo(Color.FromRgb(255, 255, 0), 0.3f)
};
pdfDoc.Pages[1].AddStamp(stamp);

// 6️⃣ Save the updated PDF
pdfDoc.Save(finalPdf);
}
}
```

{{< /blocks/products/pf/tutorial-page-section >}}
{{< /blocks/products/pf/main-container >}}
{{< /blocks/products/pf/main-wrap-class >}}
{{< blocks/products/products-backtop-button >}}
Loading
Loading