Преобразование структурированного XML в отшлифованный PDF документ является частой потребностью для систем отчетности и архивирования. Aspose.OCR Cloud SDK for .NET предоставляет мощную облачную библиотеку, позволяющую разработчикам .NET выполнять задачи, связанные с OCR, и генерировать документы без установки тяжёлых компонентов. В этом руководстве мы импортируем данные XML в PDF на C# с использованием SDK, пройдем полный пример кода и покажем, как достичь того же результата через REST API с помощью 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 к API Aspose.OCR Cloud. Это демонстрирует импорт XML‑данных в PDF через REST в .NET‑рабочем процессе без написания какого‑либо кода на C#.
- Аутентифицируйтесь и получите токен доступа
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"
- Загрузить исходный 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
- Выполнить операцию импорта 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"
}'
- Скачать сгенерированный 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. Ниже представлено пошаговое разбор самых важных разделов.
- Инициализировать OCR‑клиент
var ocrClient = new OcrApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
Класс OcrApi (см. API reference) обрабатывает аутентификацию и предоставляет методы для операций, связанных с OCR.
- Разбор XML‑файла с
XmlReader
using (XmlReader reader = XmlReader.Create(xmlPath))
{
// reading logic
}
XmlReader потоково читает XML, что идеально подходит для больших файлов и позволяет сохранять низкое потребление памяти.
- Создать новый PDF-документ
var pdfDoc = new Document();
var page = pdfDoc.Pages.Add();
Класс Document из Aspose.PDF создает контейнер PDF; первая страница добавляется для размещения содержимого.
- Добавьте заголовок и содержание как объекты
TextFragment
var titleFragment = new TextFragment(documentTitle) { /* styling */ };
var contentFragment = new TextFragment(documentContent) { /* styling */ };
page.Paragraphs.Add(titleFragment);
page.Paragraphs.Add(contentFragment);
TextFragment позволяет точно позиционировать текст и применять стили шрифтов.
- Сохранить PDF‑файл
pdfDoc.Save(pdfPath);
Сгенерированный PDF записывается на диск, готов к дальнейшей обработке или загрузке.
Тот же самый механизм можно вызвать через конечную точку import XML data to PDF Rest в .NET, позволяя использовать сценарий интеграции Import XML Data to PDF Rest C# для развертываний только в облаке.
Требования и настройка
Прежде чем начать, убедитесь, что у вас есть действующая учетная запись Aspose.OCR Cloud и установлен .NET SDK.
- Установите SDK через NuGet
dotnet add package Aspose.OCR-Cloud
Вы также можете загрузить последнюю версию пакета со страницы загрузки.
- Добавьте необходимые пространства имён
using Aspose.Pdf;
using Aspose.Pdf.Text;
using Aspose.OCR.Cloud;
- Настройте учетные данные клиента
Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET значениями из вашей панели управления Aspose Cloud. Эти учетные данные используются для получения токена доступа для REST‑вызовов.
- Установите временную лицензию для тестирования (по желанию, но рекомендуется)
// 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, как через нативный код, так и через REST API с cURL. Пример показывает, как эффективно разбирать XML, оформлять вывод PDF и аккуратно обрабатывать ошибки. Не забудьте защитить учетные данные клиента, использовать временную лицензию для разработки и перейти на полную лицензию при переходе в продакшн. При любых вопросах форумы сообщества Aspose и официальные каналы поддержки всегда готовы помочь.
Вопросы, которые могут у вас возникнуть
-
Как импортировать XML‑данные в PDF в C# без написания кода?
Вы можете использовать REST‑endpoint импорта XML‑данных в PDF в .NET, описанный в разделе cURL. Просто загрузите ваш XML‑файл, вызовите endpoint/xmlpdfи скачайте полученный PDF. -
Можно ли конвертировать несколько XML‑файлов в PDF за один запрос?
В данный момент API обрабатывает один файл за запрос, но вы можете написать цикл на C# или в оболочке, чтобы эффективно обрабатывать пакеты. -
Какие форматы файлов поддерживаются для выходного PDF?
SDK всегда генерирует стандартный файл PDF. Если вам нужны другие форматы, рассмотрите возможность использования Aspose.PDF Cloud SDK for .NET для дальнейшего преобразования PDF. -
Могу ли я настроить шрифты и цвета в сгенерированном PDF?
Да, изменяя свойстваTextStateобъектовTextFragment, вы можете задать размер шрифта, стиль и цвет. См. справка API для получения полной информации.