كيفية طباعة ملف PDF في .NET Core

يعمل الكود التالي أيضًا مع مكتبة Aspose.PDF.Drawing.

طباعة مستند PDF في .NET Core

تسمح لنا مكتبة Aspose.PDF بتحويل ملفات PDF إلى XPS. يمكن أن تكون هذه الوظيفة مفيدة لتنظيم طباعة المستندات. دعونا نلقي نظرة على مثال لاستخدام الطابعة الافتراضية:

class Program
{
    static void Main()
    {
        // إنشاء الخيط الثانوي وتمرير طريقة الطباعة لمعامل ThreadStart المفوض للمنشئ.
        Thread printingThread = new Thread(() => PrintPDF(@"C:\tmp\doc-pdf.pdf"));

        // ضبط الخيط الذي سيستخدم PrintQueue.AddJob لخيط واحد.
        printingThread.SetApartmentState(ApartmentState.STA);

        // بدء الخيط الطباعي. ستنفذ الطريقة الممررة إلى منشئ الخيط.
        printingThread.Start();
    }//end Main

    private static void PrintPDF(string pdfFileName)
    {
        // إنشاء خادم الطباعة وطابور الطباعة.
        PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();

        Aspose.Pdf.Document document = new Document(pdfFileName);
        var xpsFileName = pdfFileName.Replace(".pdf", ".xps");
        document.Save(xpsFileName,SaveFormat.Xps);

        try
        {
            // طباعة ملف Xps مع توفير التحقق من XPS وإشعارات التقدم.
            PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(xpsFileName, xpsFileName, false);
            Console.WriteLine(xpsPrintJob.JobIdentifier);
        }
        catch (PrintJobException e)
        {
            Console.WriteLine("\n\t{0} لم يتم إضافته إلى قائمة الطباعة.", pdfFileName);
            if (e.InnerException != null && e.InnerException.Message == "File contains corrupted data.")
            {
                Console.WriteLine("\tليس ملف XPS صالح. استخدم أداة التوافق isXPS لتصحيحه.");
            }
            Console.WriteLine("\tالاستمرار مع الملف XPS التالي.\n");
        }
    }
}//end Program class

في هذا المثال، نحول مستند PDF إلى XPS ونضيفه كمهمة إلى قائمة الطابعة المحلية.