將結構化的 XML 轉換為精美的 PDF 文件是報告和歸檔系統的常見需求。 Aspose.OCR Cloud SDK for .NET 提供功能強大的雲端庫,讓 .NET 開發人員在不安裝大型組件的情況下執行 OCR 相關任務和文件生成。在本指南中,我們將使用 SDK 在 C# 中將 XML 資料匯入 PDF,逐步說明完整的程式碼範例,並展示如何使用 cURL 透過 REST API 獲得相同的結果。您還將了解所需的設定、處理大型 XML 負載的最佳實踐,以及如何取得測試用的臨時授權。

完整程式碼範例:將 XML 資料匯入 PDF(C#)

此範例示範如何在 C# 中使用 Aspose.OCR Cloud SDK for .NET 將 XML 資料匯入 PDF。

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();
                }
            }
        }
    }
}

注意: 此程式碼範例示範了核心功能。在將其用於您的專案之前,請確保更新任何檔案路徑和設定值以符合實際環境,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如遇任何問題,請參閱官方文件或聯繫支援團隊以獲得協助。

使用 cURL 的 REST API 將 XML 轉換為 PDF

如果您偏好純粹的 REST 方法,則可以使用針對 Aspose.OCR Cloud API 的 cURL 呼叫執行相同的操作。這展示了在 .NET 工作流程中將 XML 資料匯入 PDF(使用 REST),且無需編寫任何 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 文件。

了解在 C# 中將 XML 數據導入 PDF 的過程

上述程式碼範例遵循一個直接的流程,將 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. 使用 XmlReader 解析 XML 檔案
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 已寫入磁碟,準備好進行後續處理或下載。

相同的邏輯可以透過 .NET 中的 import XML data to PDF Rest 端點呼叫,從而啟用雲端專用部署的 Import XML Data to PDF Rest C# 整合情境。

先決條件與設定

在開始之前,請確保您擁有有效的 Aspose.OCR Cloud 帳戶,並已安裝 .NET SDK。

  1. 透過 NuGet 安裝 SDK
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 dashboard 中的值。這些憑證用於取得 REST 呼叫的存取權杖。

  1. 設定臨時許可證以進行測試(可選但建議)
   // No explicit license code required for the cloud library; use the temporary license page if needed.

在生產環境中使用,請從臨時許可頁面購買完整授權。

總結

您現在已經學會如何在 C# 中使用 Aspose.OCR Cloud SDK for .NET 將 XML 資料匯入 PDF,無論是透過原生程式碼還是使用 cURL 的 REST API。範例展示了如何有效地解析 XML、設定 PDF 輸出樣式,並優雅地處理錯誤。請記得保護您的客戶端憑證,在開發階段使用臨時授權,並在投入生產時升級為完整授權。如有任何問題,Aspose 社群論壇與官方支援渠道隨時為您提供協助。

您可能有的問題

  • 如何在 C# 中不編寫任何代碼就將 XML 數據導入 PDF?
    您可以使用在 cURL 部分描述的 .NET 中的 import XML data to PDF Rest 端點。只需上傳您的 XML 文件,調用 /xmlpdf 端點,然後下載生成的 PDF。

  • 是否可以在單一請求中將多個 XML 檔案轉換為 PDF?
    API 目前每次只能處理一個檔案,但您可以在 C# 或 shell 腳本中編寫迴圈,以有效地批次處理。

  • 支援哪些檔案格式作為輸出 PDF?
    SDK 總是產生標準的 PDF 檔案。如果您需要其他格式,請考慮使用 Aspose.PDF Cloud SDK for .NET 進一步轉換 PDF。

  • 我可以自訂產生的 PDF 中的字型和顏色嗎?
    是的,透過調整 TextState 屬性於 TextFragment 物件,您可以設定字型大小、樣式與顏色。詳情請參閱 API 參考。

閱讀更多