تحويل صيغ الملفات الأخرى إلى PDF في .NET

نظرة عامة

يشرح هذا المقال كيفية تحويل أنواع مختلفة من صيغ الملفات إلى PDF باستخدام C#. يغطي المواضيع التالية.

يعمل الشفرة البرمجية التالية أيضًا مع مكتبة Aspose.PDF.Drawing.

الصيغة: EPUB

الصيغة: Markdown

التنسيق: MD

التنسيق: PCL

التنسيق: Text

التنسيق: TXT

التنسيق: Plain Text

التنسيق: نص مُنسق مُسبقًا

التنسيق: نص مُعد مُسبقًا

التنسيق: XPS

تحويل EPUB إلى PDF

Aspose.PDF لـ .NET يتيح لك تحويل ملفات EPUB إلى تنسيق PDF بسهولة.

EPUB (اختصار للنشر الإلكتروني) هو معيار كتاب إلكتروني مجاني ومفتوح من منتدى النشر الرقمي الدولي (IDPF). EPUB (اختصار للنشر الإلكتروني) هو معيار مفتوح ومجاني للكتب الإلكترونية من المنتدى الدولي للنشر الرقمي (IDPF).

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

الخطوات: تحويل EPUB إلى PDF في C# الخطوات: تحويل EPUB إلى PDF باستخدام C#

  1. إنشاء مثيل من الفئة EpubLoadOptions.
  2. إنشاء مثيل من الفئة Document مع ذكر اسم الملف المصدر والخيارات.
  3. حفظ المستند بالاسم المطلوب للملف.

الكود التالي يوضح كيفية تحويل ملفات EPUB إلى صيغة PDF باستخدام C#.

public static void ConvertEPUBtoPDF()
{
    EpubLoadOptions option = new EpubLoadOptions();
    Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

يمكنك أيضاً تحديد حجم الصفحة للتحويل. لتعريف حجم صفحة جديد استخدم كائن SizeF وأمرره إلى مُنشئ EpubLoadOptions.

public static void ConvertEPUBtoPDFAdv()
{
    EpubLoadOptions option = new EpubLoadOptions(new SizeF(1190, 1684));
    Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

تحويل Markdown إلى PDF

هذه الميزة مدعومة بواسطة الإصدار 19.6 أو أعلى.

يوفر Aspose.PDF لـ .NET الوظيفة لإنشاء مستند PDF استنادًا إلى ملف بيانات Markdown الذي تم إدخاله. لتحويل Markdown إلى PDF، تحتاج إلى تهيئة المستند باستخدام MdLoadOptions.

يوضح الجزء التالي من الكود كيفية استخدام هذه الوظيفة مع مكتبة Aspose.PDF:

الخطوات: تحويل Markdown إلى PDF في C# | الخطوات: تحويل Markdown إلى PDF في C# | الخطوات: تحويل MD إلى PDF في C#

  1. قم بإنشاء نموذج من فئة MdLoadOptions .
  2. قم بإنشاء نموذج من فئة Document مع تحديد اسم الملف المصدر والخيارات.
  3. احفظ المستند بالاسم المطلوب للملف.
// مسار إلى دليل الوثائق.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// فتح مستند Markdown
Document pdfDocument= new Document(dataDir + "sample.md", new MdLoadOptions());
// حفظ المستند بصيغة PDF
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");

تحويل PCL إلى PDF

PCL (لغة أوامر الطابعة) هي لغة طابعة طورتها شركة Hewlett-Packard للوصول إلى الميزات القياسية للطابعة. PCL (لغة تحكم الطابعة) هي لغة طابعة تم تطويرها بواسطة هيوليت باكارد للوصول إلى ميزات الطابعة القياسية.

حاليًا فقط يتم دعم PCL5 والإصدارات الأقدم

مجموعات الأوامر الدعم الاستثناءات الوصف
أوامر التحكم في المهام
    <tr>
        <td>
            أوامر التحكم في الوظائف
        </td>
        <td>
            +
        </td>
        <td>
            وضع الطباعة الثنائية
        </td>
        <td>
            التحكم في عملية الطباعة: عدد النسخ، صندوق الخروج، طباعة بسيطة/ثنائية، الإزاحات اليسرى والعلوية وغيرها.
        </td>
    </tr>
    <tr>
        <td>
            أوامر التحكم في الصفحة
        </td>
        <td>
            +
        </td>
        <td>
            أمر تخطي التثقيب
        </td>
        <td>
            تحديد حجم الصفحة، الهوامش، توجيه الصفحة، المسافات بين السطور، المسافات بين الأحرف وغيرها.
        </td>
    </tr>
    <tr>
        <td>
            أوامر تحديد موضع المؤشر
        </td>
        <td>
            +
        </td>
        <td>
            &nbsp;
        </td>
        <td>
            تحديد موضع المؤشر وبالتالي أصول النصوص، الصور النقطية أو الصور المتجهة والتفاصيل.
        </td>
    </tr>

<tr>
    <td>
        تحديد موقع المؤشر وبالتالي مصادر النصوص، والصور النقطية أو الصور المتجهة والتفاصيل.
    </td>
</tr>
<tr>
    <td>
        أوامر اختيار الخط
    </td>
    <td>
        +
    </td>
    <td>
        <ol>
            <li>أمر طباعة البيانات الشفافة.</li>
            <li>الخطوط الناعمة المضمنة. في النسخة الحالية بدلاً من إنشاء خط ناعم، تختار مكتبتنا
                خطًا مناسبًا من الخطوط الصلبة الموجودة من نوع TrueType والمثبتة على جهاز الهدف. <br/>
                يتم تحديد الملاءمة بناءً على نسبة العرض إلى الارتفاع.<br/>
                هذه الميزة تعمل فقط لخطوط Bitmap وTrueType ولا
                تضمن أن النص المطبوع بالخط الناعم سيكون مطابقًا للنص الموجود في الملف المصدر.<br/>
                لأن رموز الأحرف في الخط الناعم قد لا تتطابق مع الرموز الافتراضية.
            </li>
            <li>مجموعات الرموز المعرفة من قبل المستخدم.</li>
        </ol>
    </td>
</tr>
  • مجموعات الرموز المُعرّفة من قبل المستخدم.
  • السماح بتحميل الخطوط اللينة (المضمنة) من ملف PCL وإدارتها في الذاكرة.
    أوامر الرسومات النقطية + أبيض وأسود فقط السماح بتحميل الصور النقطية من ملف PCL إلى الذاكرة، تحديد معاملات النقطية.
    مثل العرض، الارتفاع، نوع الضغط، الدقة إلخ.
    أوامر الألوان +   السماح بالتلوين لجميع الكائنات القابلة للطباعة.
    أوامر نموذج الطباعة ```
                 أوامر طباعة النموذج
            </td>
            <td>
                +
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                تسمح بملء النصوص والصور النقطية والمناطق المستطيلة بأنماط نقطية محددة مسبقًا وأنماط معرفة من المستخدم وتحديد وضع الشفافية للأنماط و
                صورة نقطية مصدر. <br> الأنماط المحددة مسبقًا هي الهاتشينج، الكروس-هاتش
                والتظليل.
            </td>
        </tr>
        <tr>
            <td>
                أوامر ملء منطقة المستطيل
            </td>
            <td>
                +
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                تسمح بإنشاء وملء المناطق المستطيلة بالأنماط.
            </td>
        </tr>
        <tr>
            <td>
                أوامر الرسومات البيانية الناقلة HP-GL/2
            </td>
            <td>
                +
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                أمر الرسم الناقل المغطى (SV)، أمر وضع الشفافية (TR)، أمر البيانات الشفافة (TD)، RO
    

    أمر Vector المفحوص (SV)، أمر وضع الشفافية (TR)، أمر البيانات الشفافة (TD)، RO (تدوير نظام الإحداثيات)، أمر الخطوط المتغيرة أو البتماب (SB)، أمر ميل الحروف (SL) و مسافة إضافية (ES) غير مطبقة وأوامر DV (تعريف مسار النص المتغير) محققة في نسخة تجريبية.

    تتيح تحميل صور HP-GL/2 الناقلية من ملف PCL إلى الذاكرة. تمتلك الصورة الناقلية نقطة أصل في الزاوية السفلية اليسرى من المنطقة القابلة للطباعة، يمكن تحجيمها، ترجمتها، تدويرها وقصها.
    يمكن أن تحتوي الصورة الناقلية على نص، كما في التسميات، وأشكال هندسية مثل المستطيل، الدائرة، البيضوية، الخط، القوس، منحنى بيزييه وأشكال معقدة مكونة من البسيطة.
    يمكن ملء الأشكال المغلقة بما في ذلك حروف التسميات بملء صلب أو نمط ناقل.
    يمكن أن يكون النمط التظليل، التقاطع، التظليل، الراستر المحدد من قبل المستخدم، تقاطع PCL أو تظليل وتقاطع PCL

    
    <tr>
        <td>
            الفقس، التظليل المتقاطع، التظليل، النقش المحدد من قبل المستخدم، الفقس بـ PCL أو التظليل المتقاطع و PCL
            المحدد من قبل المستخدم. الأنماط في PCL هي نقش. يمكن تدوير العلامات وتكبيرها وتوجيهها بشكل فردي في
            أربع اتجاهات: لأعلى، لأسفل، لليسار، ولليمين. الاتجاهان اليسار واليمين يتضمنان ترتيب الحروف واحدة تلو الأخرى.
            الاتجاهان لأعلى ولأسفل يتضمنان ترتيب الحروف واحدة تحت الأخرى.
        </td>
    </tr>
    <tr>
        <td>
            ماكرو
        </td>
        <td>
            ―
        </td>
        <td>
            &nbsp;
        </td>
        <td>
            يسمح بتحميل تسلسل من أوامر PCL إلى الذاكرة واستخدام هذا التسلسل عدة مرات، على سبيل المثال،
            لطباعة رأس الصفحة أو تعيين تنسيق واحد لمجموعة من الصفحات.
        </td>
    </tr>
    <tr>
        <td>
            نص يونيكود
        </td>
        <td>
            ―
        </td>
    
      السماح بطباعة الأحرف غير ASCII. لم يتم تنفيذها بسبب عدم وجود ملفات عينة تحتوي على نص Unicode
    PCL6 (PCL-XL)   تم تحقيق ذلك فقط في النسخة التجريبية بسبب نقص في ملفات الاختبار. الخطوط المضمنة أيضاً غير مدعومة.
    لا يدعم امتداد JetReady لأنه من المستحيل الحصول على مواصفات JetReady.
    صيغة ملف ثنائي.

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

    لتمكين التحويل من PCL إلى PDF، يوفر Aspose.PDF الصف PclLoadOptions الذي يستخدم لتهيئة كائن LoadOptions.

    للسماح بالتحويل من PCL إلى PDF، يوفر Aspose.PDF الفئة [`PclLoadOptions`](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions) التي تستخدم لتهيئة كائن LoadOptions.
    
    الرمز التالي يوضح عملية تحويل ملف PCL إلى تنسيق PDF.
    
    <a name="csharp-convert-pcl-to-pdf" id="csharp-convert-pcl-to-pdf"><strong><em>الخطوات:</em> تحويل PCL إلى PDF في C#</strong></a>
    
    1. إنشاء نموذج من فئة [PclLoadOptions](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions/).
    2. إنشاء نموذج من فئة [Document](https://reference.aspose.com/pdf/net/aspose.pdf/document/) مع ذكر اسم الملف المصدر والخيارات.
    3. حفظ المستند بالاسم المطلوب.
    
    ```csharp
    public static void ConvertPCLtoPDF()
    {
        PclLoadOptions options = new PclLoadOptions();
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    يمكنك أيضًا مراقبة اكتشاف الأخطاء خلال عملية التحويل. يمكنك أيضاً مراقبة اكتشاف الأخطاء أثناء عملية التحويل.

    public static void ConvertPCLtoPDFAvdanced()
    {
        PclLoadOptions options = new PclLoadOptions { SupressErrors = true };
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        if (options.Exceptions!=null)
            foreach (var ex in options.Exceptions)
            {
                Console.WriteLine(ex.Message);
            }
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    المشكلات المعروفة

    1. قد يختلف مصدر سلاسل النصوص والصور قليلاً عن تلك الموجودة في ملف PCL المصدر إذا لم تكن اتجاه الطباعة 0°. ينطبق الأمر نفسه على الصور المتجهة إذا تم تدوير نظام الإحداثيات للرسم المتجه (يسبقه أمر RO).
    2. قد يختلف مصدر تسميات الصور المتجهة عن تلك الموجودة في ملف PCL المصدر إذا تأثرت التسميات بتسلسل الأوامر: أصل التسمية (LO)، تعريف مسار النص المتغير (DV)، الاتجاه المطلق (DI) أو الاتجاه النسبي (DR).
    3. إذا احتوى ملف PCL المحلل على خطوط Intellifont أو Universal soft فسيتم إلقاء استثناء، لأن خطوط Intellifont وUniversal غير مدعومة على الإطلاق.
    4. إذا احتوى ملف PCL المحلل على أوامر الماكرو، فستختلف نتيجة التحليل اختلافًا كبيرًا عن الملف الأصلي، لأن أوامر الماكرو غير مدعومة.

    تحويل النص إلى PDF

    Aspose.PDF لـ .NET تدعم ميزة تحويل ملفات النص العادي والنص المنسق مسبقًا إلى تنسيق PDF.

    تحويل النص إلى PDF يعني إضافة فقرات النص إلى صفحة PDF. بالنسبة لملفات النص، نتعامل مع نوعين من النصوص: النص المنسق مسبقًا (على سبيل المثال، 25 سطرًا مع 80 حرفًا في كل سطر) والنص غير المنسق (النص العادي). حسب احتياجاتنا، يمكننا التحكم في هذه الإضافة بأنفسنا أو نتركها لخوارزميات المكتبة.

    تحويل PostScript إلى PDF

    Aspose.PDF لـ .NET يدعم ميزات تحويل ملفات PostScript إلى تنسيق PDF. إحدى الميزات من Aspose.PDF هي أنك يمكنك تحديد مجموعة من مجلدات الخطوط لاستخدامها أثناء التحويل.

    لتحويل ملف PostScript إلى تنسيق PDF، يقدم Aspose.PDF لـ .NET فئة PsLoadOptions التي تُستخدم لتهيئة كائن LoadOptions. يمكن بعد ذلك تمرير هذا الكائن كوسيطة إلى مُنشئ كائن Document، والذي سيساعد محرك تقديم PDF على تحديد تنسيق المستند المصدر.

    يمكن استخدام الشفرة التالية لتحويل ملف PostScript إلى تنسيق PDF باستخدام Aspose.PDF لـ .NET:

    // للأمثلة الكاملة وملفات البيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
    // المسار إلى دليل المستندات.
    string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    // إنشاء نسخة جديدة من PsLoadOptions
    PsLoadOptions options = new PsLoadOptions();
    // فتح مستند .ps باستخدام خيارات التحميل المُنشأة
    Document pdfDocument = new Document(_dataDir + "input.ps", options);
    // حفظ المستند
    pdfDocument.Save(dataDir + "PSToPDF.pdf");
    

    بالإضافة إلى ذلك، يمكنك تعيين مجموعة من مجلدات الخطوط التي سيتم استخدامها أثناء التحويل:

    public static void ConvertPostscriptToPDFAvdanced()
    {
        PsLoadOptions options = new PsLoadOptions
        {
            FontsFolders = new [] { @"c:\tmp\fonts1", @"c:\tmp\fonts2"}
        };
        Document pdfDocument = new Document(_dataDir + "input.ps", options);
        pdfDocument.Save(_dataDir + "ps_test.pdf");
    }
    

    تحويل XML إلى PDF

    يُستخدم تنسيق XML لتخزين البيانات المنظمة. هناك عدة طرق لتحويل XML إلى PDF في Aspose.PDF:

    1. تحويل أي بيانات XML إلى HTML باستخدام XSLT وتحويل HTML إلى PDF كما هو موضح أدناه
    2. إنشاء مستند XML باستخدام مخطط Aspose.PDF XSD
    3. استخدام مستند XML بناءً على معيار XSL-FO

    تحويل XSL-FO إلى PDF

    يمكن تنفيذ تحويل ملفات XSL-FO إلى PDF باستخدام تقنية Aspose.PDF التقليدية - استخدم كائن Document مع XslFoLoadOptions. ولكن أحيانًا قد تواجه هيكل الملف غير الصحيح. في هذه الحالة، يسمح محول XSL-FO بتعيين استراتيجية معالجة الأخطاء. يمكنك اختيار ThrowExceptionImmediately، TryIgnore أو InvokeCustomHandler.

    public static void Convert_XSLFO_to_PDF()
    {
        // إنشاء كائن XslFoLoadOption
        var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
        // تعيين استراتيجية معالجة الأخطاء
        options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
        // إنشاء كائن Document
        var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
        pdfDocument.Save(_dataDir + "data_xml.pdf");
    }
    

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

    تنسيق ملف LaTeX هو تنسيق ملف نصي يحتوي على ترميز في مشتق LaTeX من عائلة لغات TeX وLaTeX هو تنسيق مشتق من نظام TeX. LaTeX (ˈleɪtɛk/lay-tek أو lah-tek) هو نظام إعداد الوثائق ولغة ترميز الوثائق. يستخدم على نطاق واسع للتواصل والنشر العلمي في العديد من المجالات، بما في ذلك الرياضيات، والفيزياء، وعلوم الكمبيوتر. له دور بارز أيضًا في إعداد ونشر الكتب والمقالات التي تحتوي على مواد متعددة اللغات معقدة، مثل السنسكريتية والعربية، بما في ذلك الطبعات النقدية. يستخدم LaTeX برنامج تنسيق TeX لتنسيق مخرجاته، وهو مكتوب بنفسه في لغة ماكرو TeX.

    Aspose.PDF لـ .NET يدعم ميزة تحويل ملفات TeX إلى تنسيق PDF ولتحقيق هذا المطلب، فضاء الأسماء Aspose.Pdf يحتوي على فئة تُسمى LatexLoadOptions التي توفر القدرات لتحميل ملفات LaTex وعرض الناتج بتنسيق PDF باستخدام فئة المستند. يوضح الجزء التالي من الكود عملية تحويل ملف LaTex إلى تنسيق PDF باستخدام C#.

    public static void ConvertTeXtoPDF()
    {
        // إنشاء كائن خيار تحميل Latex
        TeXLoadOptions options = new TeXLoadOptions();
        // إنشاء كائن المستند
        Aspose.Pdf.Document pdfDocument= new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
        // حفظ الناتج في ملف PDF
        pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
    }