Конвертация EPUB в PDF
Aspose.PDF for C++ позволяет просто конвертировать файлы EPUB в формат PDF.
EPUB (сокращение от электронное издание) — это бесплатный и открытый стандарт электронных книг от Международного форума цифрового издательства (IDPF). Файлы имеют расширение .epub. EPUB предназначен для контента с возможностью переформатирования, что означает, что EPUB-ридер может оптимизировать текст для конкретного устройства отображения.
EPUB также поддерживает контент с фиксированной версткой. Формат предназначен как единый формат, который издатели и конверсионные компании могут использовать внутри компании, а также для распространения и продажи. Он заменяет стандарт Open eBook. Версия EPUB 3 также одобрена Book Industry Study Group (BISG), ведущей торговой ассоциацией книжной отрасли для стандартизованных передовых практик, исследований, информации и мероприятий, для упаковки контента.
Этапы конвертации:
- Создайте String Class для имени пути и имени файла.
- Создайте экземпляр класса EpubLoadOptions.
- Создайте экземпляр класса Document с упоминанием имени исходного файла и опциями.
- Загрузите и Сохраните входной файл.
Следующий фрагмент кода показывает, как конвертировать файлы EPUB в формат PDF с помощью C++.
void ConvertEPUBtoPDF()
{
std::clog << "EPUB to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("aliceDynamic.epub");
String outfilename("epub_test.pdf");
auto options = MakeObject<EpubLoadOptions>();
try {
auto document = MakeObject<Document>(_dataDir + infilename, options);
document->Save(_dataDir + outfilename);
}
catch (System::Exception ex) {
std::cerr << ex->get_Message() << std::endl;
}
std::clog << "EPUB to PDF convert: End" << std::endl;
}
Попробуйте конвертировать EPUB в PDF онлайн
Aspose.PDF для C++ предлагает вам бесплатное онлайн-приложение “EPUB в PDF”, где вы можете исследовать функциональность и качество работы.
Конвертация текста в PDF
Aspose.PDF для C++ поддерживает функцию конвертации простого текста и предварительно форматированного текстового файла в формат PDF.
Конвертация текста в PDF означает добавление текстовых фрагментов на страницу PDF. Что касается текстовых файлов, мы имеем дело с 2 типами текста: предварительное форматирование (например, 25 строк с 80 символами в строке) и неформатированный текст (простой текст). В зависимости от наших потребностей, мы можем контролировать это добавление самостоятельно или доверить его алгоритмам библиотеки.
Конвертация простого текстового файла в PDF
В случае простого текстового файла мы можем использовать следующую технику:
-
Создайте String Class для имени пути и имени файла.
-
Прочитайте исходный текстовый файл с использованием TextReader
-
Создайте объект Document.
-
Добавьте Page в коллекцию страниц документа.
-
Создайте новый объект TextFragment и передайте объект TextReader его конструктору.
-
Добавьте новый текстовый абзац в коллекцию абзацев и передайте объект TextFragment.
-
Загрузите и сохраните входной файл.
void ConvertTextToPDF()
{
std::clog << "Text to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("sample.txt");
String outfilename("TextToPDF.pdf");
// Read the source text file
String content = System::IO::File::ReadAllText(_dataDir + infilename);
// Instantiate a Document object by calling its empty constructor
auto document = MakeObject<Document>();
// Add a new page in Pages collection of Document
auto page = document->get_Pages()->Add();
// Create an instance of TextFragmet and pass the text from reader object to its constructor as argument
auto text = MakeObject<TextFragment>(content);
// Add a new text paragraph in paragraphs collection and pass the TextFragment object
auto paragraphs = page->get_Paragraphs();
paragraphs->Add(text);
// Save resultant PDF file
document->Save(_dataDir + outfilename);
std::clog << "Text to PDF convert: End" << std::endl;
}
Преобразование заранее отформатированного текстового файла в PDF
Преобразование заранее отформатированного текста похоже на обычный текст, но вам необходимо выполнить некоторые дополнительные действия, такие как установка полей, типа и размера шрифта. Очевидно, что шрифт должен быть моноширинным (например, Courier New).
Следуйте этим шагам для преобразования заранее отформатированного текста в PDF с помощью C++:
- Создайте объект Document, вызвав его пустой конструктор.
- Установите левые и правые поля для лучшего представления.
- Создайте объект Document и добавьте новую страницу в коллекцию Pages.
- Загрузите и сохраните входной файл изображения.
void ConvertPreFormattedTextToPdf()
{
std::clog << "Преобразование заранее отформатированного текста в PDF: Начало" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("rfc822.txt");
String outfilename("TextToPDF.pdf");
// Чтение текстового файла как массива строк
auto lines = System::IO::File::ReadAllLines(_dataDir + infilename);
// Создание объекта Document, вызвав его пустой конструктор
auto document = MakeObject<Document>();
// Добавление новой страницы в коллекцию Pages объекта Document
auto page = document->get_Pages()->Add();
// Установка левых и правых полей для лучшего представления
page->get_PageInfo()->get_Margin()->set_Left(20);
page->get_PageInfo()->get_Margin()->set_Right(10);
page->get_PageInfo()->get_DefaultTextState()->set_Font(FontRepository::FindFont(u"Courier New"));
page->get_PageInfo()->get_DefaultTextState()->set_FontSize(12);
for (int index = 0; index < lines->get_Length(); index++)
{
// проверка, содержит ли строка символ "перевод страницы"
// см. https://en.wikipedia.org/wiki/Page_break
auto line = lines->idx_get(index);
if (line.StartsWith(u"\x0c"))
{
if (document->get_Pages()->get_Count() > 3) break;
page = document->get_Pages()->Add();
// Установка левых и правых полей для лучшего представления
page->get_PageInfo()->get_Margin()->set_Left(20);
page->get_PageInfo()->get_Margin()->set_Right(10);
page->get_PageInfo()->get_DefaultTextState()->set_Font(FontRepository::FindFont(u"Courier New"));
page->get_PageInfo()->get_DefaultTextState()->set_FontSize(12);
}
else
{
// Создание экземпляра TextFragment и
// передача строки в его конструктор в качестве аргумента
auto text = MakeObject<TextFragment>(line);
// Добавление нового текстового параграфа в коллекцию параграфов и передача объекта TextFragment
page->get_Paragraphs()->Add(text);
}
}
// Сохранение результирующего PDF-файла
document->Save(_dataDir + outfilename);
std::clog << "Преобразование заранее отформатированного текста в PDF: Завершено" << std::endl;
}
Попробуйте преобразовать ТЕКСТ в PDF онлайн
Aspose.PDF для C++ предлагает вам бесплатное онлайн-приложение “Text to PDF”, где вы можете попробовать исследовать функциональность и качество его работы.
Преобразование XPS в PDF
Aspose.PDF для C++ поддерживает функцию преобразования файлов XPS в формат PDF. Ознакомьтесь с этой статьей, чтобы решить ваши задачи.
Тип файла XPS в первую очередь связан с XML Paper Specification от Microsoft Corporation. XML Paper Specification (XPS), ранее кодовое имя Metro и охватывающее концепцию маркетинга Next Generation Print Path (NGPP), является инициативой Microsoft по интеграции создания и просмотра документов в свою операционную систему Windows.
Для конвертации XPS в PDF с помощью Aspose.PDF для C++, мы представили класс под названием XpsLoadOption, который используется для инициализации объекта LoadOptions. Позже этот объект передается в качестве аргумента во время инициализации объекта Document и помогает PDF-движку рендеринга определить формат входного документа.
Следующий фрагмент кода показывает процесс конвертации файла XPS в формат PDF с использованием C++.
void ConvertXPStoPDF()
{
std::clog << "XPS to PDF convert: Start" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilename("sample.oxps");
String outfilename("XPStoPDF.pdf");
auto options = MakeObject<XpsLoadOptions>();
try {
auto document = MakeObject<Document>(_dataDir + infilename, options);
document->Save(_dataDir + outfilename);
}
catch (System::Exception ex) {
std::cerr << ex->get_Message() << std::endl;
};
std::clog << "XPS to PDF convert: Finish" << std::endl;
}
Попробуйте преобразовать формат XPS в PDF онлайн
Aspose.PDF для C++ предлагает вам бесплатное онлайн-приложение “XPS to PDF”, где вы можете попробовать исследовать функциональность и качество его работы.
Преобразование XML в PDF
Формат XML используется для хранения структурированных данных. Существует несколько способов преобразования XML в PDF в Aspose.PDF.
Преобразование XSL-FO в PDF
- Создайте Класс String для имени пути и имени файла.
- Создайте экземпляр объекта XslFoLoadOption.
- Установите стратегию обработки ошибок.
- Создайте экземпляр объекта Document.
- Сохранить входной файл изображения.
void Convert_XSLFO_to_PDF()
{
std::clog << "XSL-FO в PDF конвертация: Начало" << std::endl;
String _dataDir("C:\\Samples\\Conversion\\");
String infilenameXSL("c:\\samples\\employees.xslt");
String infilenameXML("c:\\samples\\employees.xml");
String outfilename("XMLFOtoPDF.pdf");
// Создать объект XslFoLoadOption
auto options = new XslFoLoadOptions(infilenameXSL);
// Установить стратегию обработки ошибок
options->ParsingErrorsHandlingType = XslFoLoadOptions::ParsingErrorsHandlingTypes::ThrowExceptionImmediately;
// Создать объект Document
auto document = MakeObject<Document>(infilenameXML, options);
document->Save(_dataDir + outfilename);
}
Попробуйте конвертировать XML в PDF онлайн
Aspose.PDF для C++ предлагает вам бесплатное приложение онлайн “XML в PDF”, где вы можете попробовать исследовать функциональность и качество работы.