دمج مستندات PS في PDF

حل C++ API لدمج العديد من ملفات PostScript

 

يمكن أن يحتوي تنسيق ملف PostScript على صفحات متعددة ، لكنه لا يمتلك القدرة على دمج ملفات متعددة في مستند واحد مثل تنسيق XPS. يوفر لك حل Aspose.Page API لـ C++ وظيفة دمج العديد من ملفات PS أو EPS في مستند PDF واحد.

يوضح المثال التالي من التعليمات البرمجية كيفية دمج ملفات PostScript باستخدام C++. إذا كنت بحاجة إلى معرفة كيفية دمج هذه الوظيفة في أحد حلول الويب أو دمج الملفات عبر الإنترنت ، فيمكنك تجربة الأداة متعددة الأنظمة الأساسية PS Merger .

لدمج ملفات PS و EPS ، نحتاج إلى:

  • Aspose.Page لـ C++ API وهي واجهة برمجة تطبيقات لمعالجة المستندات وتحويلها غنية بالميزات وقوية وسهلة الاستخدام لمنصة C++.

  • يمكنك تنزيل أحدث إصدار له مباشرةً ، فقط افتح مدير حزمة NuGet ، وابحث عن Aspose.Page.Cpp وتثبيته. يمكنك أيضًا استخدام الأمر التالي من Package Manager Console.

Package Manager Console Command


    PM> Install-Package Aspose.Page

خطوات دمج ملفات PostScript مع C++

  1. قم بتهيئة إخراج PDF وتدفقات إدخال PostScript.
  2. أنشئ مجموعة من ملفات PS لدمجها.
  3. استخدم فئة PdfSaveOptions لتحديد المعلمات الضرورية. تسمح لك هذه الفئة بتعيين معلمات إضافية أثناء الدمج.
  4. أنشئ مثيلاً لـ PdfDevice من دفق الإخراج الذي تم إنشاؤه سابقًا وتحديد الحجم وتنسيق الصورة.
  5. دمج الملفات. لمعرفة المزيد حول هذه الوظيفة ، انتقل إلى Aspose.Page الوثائق .

كود C++ لدمج PS في PDF

    using Aspose::Page::IO;
    using Aspose::Page::Presentation::Pdf;
    // Initialize PDF output stream
    System::SharedPtr<System::IO::FileStream> pdfStream = System::MakeObject<System::IO::FileStream>(outDir() + u"outputPDF_out.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    
    // Initialize PostScript input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir() + u"input.ps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);

    // Create an array of PostScript files that will be merged with the first one
    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.ps", dataDir() + u"input3.ps"});
 
    //Initialize options object with necessary parameters.
    System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>(suppressErrors);
    // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
    options->set_AdditionalFontsFolders(System::MakeArray<System::String>({ u"{FONT_FOLDER}" }));

    // Default page size is 595x842 and it is not mandatory to set it in PdfDevice
    System::SharedPtr<Aspose::Page::EPS::Device::PdfDevice> device = System::MakeObject<Aspose::Page::EPS::Device::PdfDevice>(pdfStream);


    {
	    auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream, &pdfStream]()
	    {
		    psStream->Close();
		    pdfStream->Close();
	    });

	    try
	    {
		    document->Merge(filesForMerge, device, options);
	    }
	    catch (...)
	    {
		    throw;
	    }
    }

دمج ملفات Encapsulated PostScript مع C++

لدمج EPS في PDF ، ستحتاج إلى اتخاذ نفس الخطوات لدمج PS إلى PDF. للتعرف على مثال رمز أكثر تفصيلاً ، انتقل إلى Aspose.Page الوثائق .

كود C++ لدمج EPS في PDF

    // Initialize PDF output stream
    System::SharedPtr<System::IO::FileStream> pdfStream = System::MakeObject<System::IO::FileStream>(outDir() + u"outputPDF_out.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    
    // Initialize EPS input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir() + u"input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);

    // Create an array of EPS files that will be merged with the first one
    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.eps", dataDir() + u"input3.eps"});
 
    //Initialize options object with necessary parameters.
    System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>(suppressErrors);
    // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
    options->set_AdditionalFontsFolders(System::MakeArray<System::String>({ u"{FONT_FOLDER}" }));

    // Default page size is 595x842 and it is not mandatory to set it in PdfDevice
    System::SharedPtr<Aspose::Page::EPS::Device::PdfDevice> device = System::MakeObject<Aspose::Page::EPS::Device::PdfDevice>(pdfStream);


    {
	    auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream, &pdfStream]()
	    {
		    psStream->Close();
		    pdfStream->Close();
	    });

	    try
	    {
		    document->Merge(filesForMerge, device, options);
	    }
	    catch (...)
	    {
		    throw;
	    }
    }

PS ما هو PS تنسيق الملف

تنسيق PS هو أحد تنسيقات لغة وصف الصفحة (PDL). إنه قادر على احتواء المعلومات الرسومية والنصية على الصفحة. هذا هو السبب في أن التنسيق كان مدعومًا من قبل معظم برامج تحرير الصور. ملف بوستسكريبت نفسه هو نوع من التعليمات للطابعات. يحتوي على معلومات حول ماذا وكيف تطبع من صفحتها.