تبدیل XML ساختار یافته به یک سند PDF صیقلی یک نیاز مکرر برای سیستم‌های گزارش‌دهی و بایگانی است.
Aspose.OCR Cloud SDK for .NET یک کتابخانه قدرتمند مبتنی بر ابر فراهم می‌کند که به توسعه‌دهندگان .NET امکان انجام وظایف مرتبط با OCR و تولید سند را بدون نصب مؤلفه‌های سنگین می‌دهد.
در این راهنما ما داده‌های XML را به PDF در C# با استفاده از SDK وارد می‌کنیم، یک مثال کامل کد را مرور می‌کنیم و نشان می‌دهیم چگونه می‌توان همان نتیجه را از طریق یک API REST با cURL به دست آورد.
همچنین نحوه تنظیمات مورد نیاز، بهترین روش برای مدیریت بارهای بزرگ XML و چگونگی دریافت یک لایسنس موقت برای تست را یاد خواهید گرفت.

مثال کامل کد: وارد کردن داده‌های XML به PDF در C#

این مثال نشان می‌دهد که چگونه می‌توان داده‌های XML را به PDF در C# با استفاده از Aspose.OCR Cloud SDK for .NET وارد کرد.

using System;
using System.IO;
using System.Xml;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using Aspose.OCR.Cloud;

namespace XmlToPdfDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Paths
            string xmlPath = "input.xml";
            string pdfPath = "output.pdf";

// Initialize Aspose.OCR Cloud client (credentials placeholder)
            var ocrClient = new OcrApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

// Parse XML efficiently using XmlReader
            var documentTitle = string.Empty;
            var documentContent = string.Empty;

try
            {
                using (XmlReader reader = XmlReader.Create(xmlPath))
                {
                    while (reader.Read())
                    {
                        if (reader.NodeType == XmlNodeType.Element)
                        {
                            switch (reader.Name)
                            {
                                case "Title":
                                    documentTitle = reader.ReadElementContentAsString();
                                    break;
                                case "Content":
                                    documentContent = reader.ReadElementContentAsString();
                                    break;
                            }
                        }
                    }
                }

// Create PDF document
                var pdfDoc = new Document();
                var page = pdfDoc.Pages.Add();

// Add title with larger font
                var titleFragment = new TextFragment(documentTitle)
                {
                    Position = new Position(0, page.PageInfo.Height - 50),
                    TextState = new TextState
                    {
                        FontSize = 20,
                        FontStyle = FontStyles.Bold,
                        ForegroundColor = Color.Black
                    }
                };
                page.Paragraphs.Add(titleFragment);

// Add content with normal font
                var contentFragment = new TextFragment(documentContent)
                {
                    Position = new Position(0, page.PageInfo.Height - 100),
                    TextState = new TextState
                    {
                        FontSize = 12,
                        FontStyle = FontStyles.Regular,
                        ForegroundColor = Color.Black
                    }
                };
                page.Paragraphs.Add(contentFragment);

// Save PDF
                pdfDoc.Save(pdfPath);
                Console.WriteLine($"PDF generated successfully at '{Path.GetFullPath(pdfPath)}'.");
            }
            catch (XmlException xmlEx)
            {
                Console.Error.WriteLine($"XML parsing error: {xmlEx.Message}");
            }
            catch (IOException ioEx)
            {
                Console.Error.WriteLine($"File I/O error: {ioEx.Message}");
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine($"Unexpected error: {ex.Message}");
            }
            finally
            {
                // Dispose OCR client if it implements IDisposable (placeholder)
                if (ocrClient is IDisposable disposableClient)
                {
                    disposableClient.Dispose();
                }
            }
        }
    }
}

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را به‌گونه‌ای به‌روزرسانی کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند، و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.

تبدیل XML به PDF با استفاده از REST API و cURL

اگر ترجیح می‌دهید از روش صرفاً REST استفاده کنید، همان عملیات می‌تواند با فراخوانی‌های cURL علیه Aspose.OCR Cloud API انجام شود. این نشان می‌دهد که چگونه می‌توانید داده‌های XML را به PDF Rest در جریان کاری .NET وارد کنید بدون نوشتن هیچ کد C# ای.

  1. احراز هویت و دریافت توکن دسترسی
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. بارگذاری فایل منبع XML
curl -X PUT "https://api.aspose.cloud/v3.0/ocr/storage/file/input.xml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/xml" \
     --data-binary @input.xml
  1. اجرای عملیات وارد کردن داده‌های XML به PDF
   curl -X POST "https://api.aspose.cloud/v3.0/ocr/xmlpdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
              "inputFile": "input.xml",
              "outputFile": "output.pdf"
            }'
  1. PDF تولید شده را دانلود کنید
curl -X GET "https://api.aspose.cloud/v3.0/ocr/storage/file/output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

برای جزئیات بیشتر در مورد پارامترهای درخواست و گزینه‌های اضافی، به مستندات رسمی API مراجعه کنید.

درک فرآیند وارد کردن داده‌های XML به PDF در C#

مثال کد بالا یک جریان ساده برای وارد کردن داده‌های XML به PDF در C# را دنبال می‌کند در حالی که از Aspose.OCR Cloud SDK for .NET استفاده می‌کند. در ادامه تجزیه و تحلیل گام‌به‌گام مهم‌ترین بخش‌ها ارائه شده است.

  1. راه‌اندازی مشتری OCR
var ocrClient = new OcrApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

کلاس OcrApi (به مرجع API مراجعه کنید) احراز هویت را مدیریت می‌کند و روش‌هایی برای عملیات مرتبط با OCR فراهم می‌سازد.

  1. تجزیهٔ فایل XML با XmlReader
using (XmlReader reader = XmlReader.Create(xmlPath))
{
    // reading logic
}

XmlReader XML را به صورت جریان می‌خواند که برای فایل‌های بزرگ ایده‌آل است و مصرف حافظه را کم نگه می‌دارد.

  1. یک سند PDF جدید ایجاد کنید
var pdfDoc = new Document();
var page = pdfDoc.Pages.Add();

Document کلاس از Aspose.PDF یک محفظه PDF ایجاد می‌کند؛ صفحه اول برای میزبانی محتوا اضافه می‌شود.

  1. عنوان و محتوا را به عنوان اشیاء TextFragment اضافه کنید
var titleFragment = new TextFragment(documentTitle) { /* styling */ };
var contentFragment = new TextFragment(documentContent) { /* styling */ };
page.Paragraphs.Add(titleFragment);
page.Paragraphs.Add(contentFragment);

TextFragment به شما امکان می‌دهد متن را به‌دقت موقعیت‌یابی کنید و سبک‌های قلم را اعمال کنید.

  1. ذخیره‌سازی فایل PDF
pdfDoc.Save(pdfPath);

PDF تولید شده بر روی دیسک نوشته می‌شود و آماده پردازش‌های بعدی یا دانلود است.

منطق یکسان می‌تواند از طریق نقطهٔ انتهایی import XML data to PDF Rest در .NET فراخوانی شود و سناریوی ادغام Import XML Data to PDF Rest C# را برای استقرارهای فقط‑ابری فعال می‌کند.

پیش‌نیازها و راه‌اندازی

قبل از شروع، مطمئن شوید که یک حساب کاربری معتبر Aspose.OCR Cloud دارید و SDK .NET نصب شده است.

  1. نصب SDK از طریق NuGet
dotnet add package Aspose.OCR-Cloud

شما همچنین می‌توانید آخرین بسته را از صفحهٔ دانلود دریافت کنید.

  1. افزودن فضای نام‌های مورد نیاز
   using Aspose.Pdf;
   using Aspose.Pdf.Text;
   using Aspose.OCR.Cloud;
  1. پیکربندی اعتبارهای کلاینت خود

YOUR_CLIENT_ID و YOUR_CLIENT_SECRET را با مقادیر موجود در داشبورد Aspose Cloud خود جایگزین کنید. این اعتبارها برای دریافت یک توکن دسترسی برای تماس‌های REST استفاده می‌شوند.

  1. مجوز موقت برای تست را تنظیم کنید (اختیاری اما توصیه‌شده)
   // No explicit license code required for the cloud library; use the temporary license page if needed.

برای استفاده در محیط تولید، یک لایسنس کامل را از صفحه لایسنس موقت خریداری کنید.

جمع‌بندی

شما اکنون یاد گرفته‌اید که چگونه داده‌های XML را به PDF در C# با استفاده از Aspose.OCR Cloud SDK for .NET وارد کنید، هم از طریق کد بومی و هم از طریق یک API REST با cURL. این مثال نشان می‌دهد که چگونه XML را به‌صورت کارآمد تجزیه کنید، خروجی PDF را استایل دهید و خطاها را به‌صورت ملایم مدیریت کنید. به‌خاطر داشته باشید که اعتبارنامه‌های مشتری خود را ایمن کنید، برای توسعه از یک لایسنس موقت استفاده کنید و هنگام انتقال به محیط تولید، به یک لایسنس کامل ارتقا دهید. برای هرگونه سؤال، انجمن‌های جامعه Aspose و کانال‌های پشتیبانی رسمی همیشه آماده کمک هستند.

سوالاتی که ممکن است داشته باشید

  • چگونه می‌توانم داده‌های XML را به PDF در C# وارد کنم بدون نوشتن کد؟
    می‌توانید از سرویس Rest وارد کردن داده‌های XML به PDF در .NET که در بخش cURL توضیح داده شده استفاده کنید. به سادگی فایل XML خود را بارگذاری کنید، به نقطه انتهایی /xmlpdf فراخوانی کنید و PDF تولید شده را دانلود کنید.

  • آیا امکان تبدیل چندین فایل XML به PDF در یک درخواست وجود دارد؟
    API در حال حاضر یک فایل را در هر درخواست پردازش می‌کند، اما می‌توانید یک حلقه را در C# یا یک اسکریپت شل بنویسید تا به‌صورت کارآمد دسته‌ها را مدیریت کنید.

  • چه قالب‌های فایل برای خروجی PDF پشتیبانی می‌شوند؟
    SDK همیشه یک فایل استاندارد PDF تولید می‌کند. اگر به قالب‌های دیگر نیاز دارید، می‌توانید از Aspose.PDF Cloud SDK for .NET برای تبدیل PDF استفاده کنید.

  • آیا می‌توانم قلم‌ها و رنگ‌ها را در PDF تولید شده سفارشی کنم؟
    بله، با تنظیم ویژگی‌های TextState از اشیاء TextFragment می‌توانید اندازه قلم، سبک و رنگ را تنظیم کنید. برای جزئیات کامل به API reference مراجعه کنید.

Read More