تحويل ملف PDF إلى تنسيقات أخرى

تحويل PDF إلى EPUB

EPUB (اختصار لـ Electronic Publication) هو معيار كتاب إلكتروني مجاني ومفتوح من منتدى النشر الرقمي الدولي (IDPF). تكون الملفات بامتداد .epub. تم تصميم EPUB لمحتوى قابل لإعادة التدفق، مما يعني أن قارئ EPUB يمكنه تحسين النص لجهاز عرض معين. EPUB يدعم أيضًا المحتوى الثابت التنسيق. يُقصد من التنسيق أن يكون تنسيقًا موحدًا يمكن للناشرين وبيوت التحويل استخدامه داخليًا، وكذلك للتوزيع والبيع. إنه يحل محل معيار الكتاب الإلكتروني المفتوح.

Aspose.PDF for C++ يدعم أيضًا ميزة تحويل مستندات PDF إلى تنسيق EPUB. يحتوي Aspose.PDF for C++ على فئة تسمى EpubSaveOptions والتي يمكن استخدامها كمعامل ثاني لطريقة Document.Save(..)، لإنشاء ملف EPUB. يرجى محاولة استخدام مقتطف الشيفرة التالي لتحقيق هذا المتطلب باستخدام C++.

void ConvertPDFtoEPUB()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.pdf");
    // String for output file name
    String outfilename("PDFToEPUB_out.epub");

    // Open document
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Save PDF file into EPUB format
    document->Save(_dataDir + outfilename, SaveFormat::Epub);
    std::clog << __func__ << ": Finish" << std::endl;
}

تحويل PDF إلى LaTeX/TeX

يدعم Aspose.PDF for C++ تحويل PDF إلى LaTeX/TeX. تنسيق ملف LaTeX هو تنسيق ملف نصي مع ترميز خاص ويستخدم في نظام إعداد المستندات القائم على TeX لتنسيق عالي الجودة.

لتحويل ملفات PDF إلى TeX، يحتوي Aspose.PDF على الفئة LaTeXSaveOptions التي توفر الخاصية OutDirectoryPath لحفظ الصور المؤقتة أثناء عملية التحويل.

يظهر مقتطف الشفرة التالي عملية تحويل ملفات PDF إلى تنسيق TEX باستخدام C++.

void ConvertPDFtoLaTeX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // سلسلة لاسم المسار
    String _dataDir("C:\\Samples\\Conversion\\");

    // سلسلة لاسم الملف المدخل
    String infilename("sample.pdf");
    // سلسلة لاسم الملف المخرج
    String outfilename("PDFToTeX_out.tex");

    // فتح المستند
    auto document = MakeObject<Document>(_dataDir + infilename);

    // إنشاء خيار حفظ LaTeX
    auto saveOptions = MakeObject<LaTeXSaveOptions>();

    // تعيين مسار دليل الخرج لكائن خيار الحفظ
    saveOptions->set_OutDirectoryPath(_dataDir);

    // حفظ ملف PDF بتنسيق LaTeX
    document->Save(_dataDir + outfilename, saveOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}

تحويل PDF إلى نص

يدعم Aspose.PDF for C++ تحويل وثيقة PDF كاملة وصفحة واحدة إلى ملف نصي.

تحويل وثيقة PDF كاملة إلى ملف نصي

يمكنك تحويل وثيقة PDF إلى ملف TXT باستخدام فئة TextAbsorber.

يوضح مقتطف الكود التالي كيفية استخراج النصوص من جميع الصفحات.

void ConvertPDFDocToTXT()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.pdf");
    // String for output file name
    String outfilename("input_Text_Extracted_out.txt");

    // Open document
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto ta = MakeObject<TextAbsorber>();
    ta->Visit(document);
    // Save the extracted text in text file
    System::IO::File::WriteAllText(_dataDir + outfilename, ta->get_Text());
    std::clog << __func__ << ": Finish" << std::endl;
}

تحويل صفحة PDF إلى ملف نصي

يمكنك تحويل مستند PDF إلى ملف TXT باستخدام Aspose.PDF لـ C++. يجب عليك استخدام TextAbsorber لحل هذه المهمة.

يشرح مقطع الشيفرة التالي كيفية استخراج النصوص من الصفحات المحددة.

void ConvertPDFPagestoTXT()
{
    std::clog << __func__ << ": Start" << std::endl;
    // سلسلة لمسار الاسم
    String _dataDir("C:\\Samples\\Conversion\\");

    // سلسلة لاسم الملف المدخل
    String infilename("sample-4pages.pdf");
    // سلسلة لاسم الملف الناتج
    String outfilename("sample-4pages_out.txt");

    // فتح المستند
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto ta = MakeObject<TextAbsorber>();

    auto pages = { 1, 3, 4 };
    try {
    for (auto page : pages)
    {
    ta->Visit(document->get_Pages()->idx_get(page));
    }
    // حفظ النص المستخرج في ملف نصي
    auto text = ta->get_Text();
    System::IO::File::WriteAllText(_dataDir + outfilename, text);
    }
    catch (Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

تحويل PDF إلى XPS

يوفر Aspose.PDF for C++ إمكانية تحويل ملفات PDF إلى تنسيق XPS. دعونا نحاول استخدام كود المثال المقدم لتحويل ملفات PDF إلى تنسيق XPS باستخدام C++.

يرتبط نوع ملف XPS بشكل أساسي بمواصفات XML Paper Specification من قبل شركة Microsoft Corporation. مواصفات XML Paper Specification (XPS)، والتي كانت تُعرف سابقًا باسم Metro وتحتوي على مفهوم التسويق Next Generation Print Path (NGPP)، هي مبادرة من Microsoft لدمج إنشاء المستندات وعرضها في نظام التشغيل Windows.

لتحويل ملفات PDF إلى XPS، يحتوي Aspose.PDF على الفئة XpsSaveOptions والتي تُستخدم كحجة ثانية لطريقة Document.Save(..) لتوليد ملف XPS.

الشفرة البرمجية التالية توضح عملية تحويل ملف PDF إلى تنسيق XPS.

void ConvertPDFtoXPS()
{
    std::clog << __func__ << ": Start" << std::endl;
    // سلسلة نصية لاسم المسار
    String _dataDir("C:\\Samples\\Conversion\\");

    // سلسلة نصية لاسم الملف المدخل
    String infilename("sample.pdf");
    // سلسلة نصية لاسم ملف الإخراج
    String outfilename("PDFToXPS_out.xps");

    // فتح المستند
    auto document = MakeObject<Document>(_dataDir + infilename);

    // إنشاء خيار حفظ LaTex
    auto saveOptions = MakeObject<XpsSaveOptions>();

    // حفظ ملف PDF بتنسيق XPS
    document->Save(_dataDir + outfilename, saveOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}