รวมเอกสาร XPS เป็น PDF
โซลูชัน C++ API เพื่อรวมไฟล์ XPS หลายไฟล์
รูปแบบไฟล์ XPS ช่วยให้สามารถจัดเก็บเอกสารหลายชุดภายในไฟล์เดียวและยังสามารถบรรจุได้หลายหน้า โซลูชัน Aspose.Page API สำหรับ C++ ให้ความสามารถในการรวมไฟล์หลายไฟล์เป็นไฟล์เดียว ส่งผลให้ไฟล์ XPS หรือ PDF ที่มีเนื้อหารวมของไฟล์ต้นฉบับทั้งหมด
ที่นี่ คุณจะพบตัวอย่างโค้ดของวิธีใช้ API สำหรับการรวมไฟล์ XPS หากต้องการสำรวจว่าฟังก์ชันนี้สามารถรวมเข้ากับโซลูชันบนเว็บหรือใช้สำหรับการรวมไฟล์ออนไลน์ได้อย่างไร คุณสามารถลองใช้ข้ามแพลตฟอร์ม XPS Merger เครื่องมือ.
ในการรวมไฟล์ PS และ EPS คุณต้อง:
Aspose.Page สำหรับ C++ API ซึ่งเป็น API การจัดการและการแปลงเอกสารที่มีคุณลักษณะหลากหลาย ทรงพลัง และใช้งานง่ายสำหรับแพลตฟอร์ม C++
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยตรง เพียงแค่เปิด NuGet package manager แล้วค้นหา Aspose.Page.Cpp และติดตั้ง คุณสามารถใช้คำสั่งต่อไปนี้จาก Package Manager Console
Package Manager Console Command
PM> Install-Package Aspose.Page
ขั้นตอนในการรวมไฟล์ XPS หลายไฟล์เป็น PDF ด้วย C++
- กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
- เริ่มต้นเอาต์พุต PDF และสตรีมอินพุตไฟล์ XPS
- สร้างอินสแตนซ์ของ XpsDocument จากสตรีมอินพุตที่สร้างไว้ก่อนหน้านี้
- เริ่มต้นวัตถุตัวเลือกด้วยพารามิเตอร์ TextCompression, ImageCompression, JpegQualityLevel สำหรับไฟล์เอาต์พุตโดยใช้ PdfSaveOptions ชั้น.
- ใช้คลาส PdfDevice สร้างอุปกรณ์แสดงผลสำหรับรูปแบบ PDF
- รวมไฟล์ XPS เพื่อส่งออกเอกสาร XPS
รหัส C ++ เพื่อรวม XPS เป็น PDF
using Aspose::Page::XPS;
using Aspose::Page::IO;
using Aspose::Page::Presentation::Pdf;
// Input file
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(RunExamples::outDir() + u"XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(RunExamples::dataDir() + u"input xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// Load XPS document form the stream
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// or load XPS document directly from file. No xpsStream is needed then.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());
// Initialize options object with necessary parameters.
System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions> options = [&] { auto tmp_0 = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions>(); tmp_0->set_JpegQualityLevel(100); tmp_0->set_ImageCompression(Aspose::Page::Xps::Presentation::Pdf::PdfImageCompression::Jpeg); tmp_0->set_TextCompression(Aspose::Page::Xps::Presentation::Pdf::PdfTextCompression::Flate); tmp_0->set_PageNumbers(System::MakeArray<int32_t>({ 1, 2, 6 })); return tmp_0; }();
// Create rendering device for PDF format
System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfDevice>(pdfStream);
// Create an array of XPS files that will be merged with the first one
System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});
document->Merge(filesForMerge, device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
ขั้นตอนในการรวมไฟล์ XPS หลายไฟล์เป็นไฟล์เดียวด้วย C++
- เริ่มต้นเอาต์พุต XPS และสตรีมอินพุต
- สร้างอาร์เรย์ของไฟล์ XPS ที่จะรวมเข้ากับไฟล์แรก
- สร้างอินสแตนซ์ของ XpsDocument จากสตรีมอินพุตที่สร้างไว้ก่อนหน้านี้
- รวมไฟล์ XPS เพื่อส่งออกเอกสาร XPS
รหัส C ++ เพื่อรวม XPS เป็น XPS
// Output stream
System::SharedPtr<System::IO::Stream> outStream = System::IO::File::Open(RunExamples::outDir() + u"mergedXPSfiles.xps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ outStream });
// ------------------------------------------
try {
System::SharedPtr<System::IO::Stream> inStream = System::IO::File::Open(RunExamples::dataDir() + u"input.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ inStream });
// ------------------------------------------
try
{
// Load XPS document form the stream
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// or load XPS document directly from file. No xpsStream is needed then.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());
// Create an array of XPS files that will be merged with the first one
System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});
document->Merge(filesForMerge, outStream);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
XPS XPS รูปแบบไฟล์คืออะไร
รูปแบบ XPS คล้ายกับรูปแบบ PDF ทั้งสองรูปแบบเป็นภาษาคำอธิบายหน้า (PDL) EPS อิงตาม HTML ไม่ใช่ภาษา PostScript ไฟล์ .eps สามารถใส่มาร์กอัปของโครงสร้างของเอกสารพร้อมกับข้อมูลเกี่ยวกับลักษณะของเอกสารได้ นอกจากนี้ยังมีคำแนะนำเพิ่มเติมเกี่ยวกับวิธีการพิมพ์และแสดงผลเอกสาร คุณสมบัติของรูปแบบคือ แก้ไขคำอธิบายของเอกสาร ซึ่งหมายความว่าจะมีลักษณะเหมือนกันไม่ว่าใครจะเปิดจากระบบปฏิบัติการใด